Поделиться через


Пространственный звук для разработчиков приложений для Windows, Xbox и Hololens 2

Замечание

Эта документация предназначена для аудитории разработчиков. Сведения о поддержке конечных пользователей для включения пространственного звука на устройстве см. в статье "Включение пространственного звука" в Windows 10.

Microsoft Spatial Sound — это решение на уровне платформы Майкрософт для поддержки пространственного звука в Xbox, Windows и HoloLens 2, что позволяет поддерживать звуковую подсказку как вокруг, так и высотой (выше или ниже прослушивателя). Пространственный звук можно использовать классическими приложениями Windows (Win32), а также приложениями универсальной платформы Windows (UWP) на поддерживаемых платформах. API пространственного звука позволяют разработчикам создавать звуковые объекты, которые выдают звук из позиций в трехмерном пространстве. Динамические звуковые объекты позволяют выдавать звук из произвольной позиции в пространстве, что может меняться с течением времени. Можно также указать, что звуковые объекты выдают звук из одного из 17 предварительно определенных статических каналов (8.1.4.4), которые могут представлять реальные или виртуализированные динамики. Фактический формат выходных данных выбирается пользователем и может быть абстрагирован из реализаций Пространственного звука Майкрософт; звук будет представлен существующим динамикам, наушникам и приемникам домашнего театра без каких-либо изменений кода или содержимого. Платформа полностью поддерживает кодирование Dolby Atmos в реальном времени для HDMI и стереофонических наушников, DTS:X для наушников, а также Windows Sonic для стереофонических наушников. Наконец, приложения Microsoft Spatial Sound следуют политике микширования системы, и их звук также будет смешиваться с приложениями, не поддерживающими пространственный звук. Поддержка пространственного звука Майкрософт также интегрирована в Media Foundation; приложения, использующие основу мультимедиа, могут успешно воспроизводить содержимое Dolby Atmos без дополнительной реализации.

Пространственный звук с microsoft Spatial Sound поддерживает телевизоры, домашние кинотеатры и звуковые панели, поддерживающие Dolby Atmos. Пространственный звук также можно использовать с любой парой наушников, которые принадлежат потребителю, с помощью технологий Windows Sonic, Dolby Atmos и DTS Headphone:X.

Включение пространственного звука Майкрософт

Независимо от того, является ли разработчик или потребитель, пользователь должен включить Microsoft Spatial Sound на своем устройстве, чтобы услышать пространственный звук.

Windows

На компьютерах с Windows это делается с помощью страницы свойств для заданного выходного устройства. На панели управления "Звук " выберите выходное устройство и щелкните свойства устройства. В разделе "Пространственный звук " страницы, если устройство поддерживает пространственный звук, можно выбрать один из доступных форматов в раскрывающемся списке "Пространственный формат звука ".

включение пространственного звука на панели управления звуком

Вы также можете включить пространственный звук Майкрософт, щелкнув правой кнопкой мыши значок Громкость на панели задач.

включение пространственного звука с панели задач

Xbox

В Xbox возможности пространственного звука Майкрософт всегда доступны для потребителя и включены с помощью параметров Windows в разделе "Общие —> громкость и звук".

Кнопка звука HDMI заполняется всеми форматами, поддерживаемыми приемником аудио -видео (AVR) или звуковой панелью или телевизором, подключенным непосредственно к консоли Xbox. Параметр "Оптический звук" доступен только в старых консоли Xbox, а не в серии Xbox X|S и выше.

Снимок экрана страницы

Обратите внимание, что выбор параметров "Dolby Atmos для домашнего кинотеатра (только HDMI)" или "DTS:X для домашнего кинотеатра (только HDMI)" в звуке HDMI предложит пользователю скачать и установить Dolby Access или приложения DTS Sound Unbound, если они еще не установлены.

Снимок экрана: страница

Выберите Dolby Atmos для наушников, DTS Headphone:X или Windows Sonic для наушников в раскрывающемся списке "Формат гарнитуры" в разделе "Звук гарнитуры"

Снимок экрана страницы настроек общих параметров громкости и вывода, на котором показано включение пространственного звука для наушников.

Если пространственный звук Майкрософт недоступен (например, при воспроизведении на встроенных стереофонических динамиках ноутбука или если пользователь явно не включил Microsoft Spatial Sound, как указано выше), число доступных динамических объектов, возвращаемых ISpatialAudioClient::GetMaxDynamicObjectCount для приложения, будет равно 0.

HoloLens 2

В HoloLens 2 функция Microsoft Spatial Sound включена по умолчанию и использует аппаратное отключение DSP, разработанное специально для Windows Sonic для наушников.

Промежуточное программное обеспечение для пространственного звука и звука Microsoft

Многие разработчики приложений и игр используют сторонние решения аудио-рендеринг движков, которые часто включают сложные инструменты разработки и прослушивания. Корпорация Майкрософт сотрудничала с несколькими из этих поставщиков решений для реализации Microsoft Spatial Sound в существующих средах разработки. Это часто означает, что API, рассмотренные здесь, абстрагируются от представления приложения; они упаковываются в виде подключаемых модулей обработки цифрового сигнала (DSP), которые приложение может создавать, и которые аудиоразработчик приложения может использовать для смешивания с основой канала Пространственного звука Майкрософт, подмиксом или для отправки отдельных голосов в подключаемые модули экземпляра динамических объектов по мере надобности. Для получения поддержки технологии Microsoft Spatial Sound обратитесь к поставщику вашего аудио программного обеспечения промежуточного слоя.

Пространственный звук Майкрософт для отрисовщиков звука

Многие аудио рендереры нацелены на конечную точку API сеансов аудио Windows (WASAPI) IAudioClient, где приложение передает буферы смешанных и соответствующих формату аудиоданных в приемник звука WASAPI; Переданные буферы затем используются для смешивания с другими клиентами, окончательной обработки на уровне системы и рендеринга.

Пространственные конечные точки Microsoft Spatial Sound реализованы как ISpatialAudioClient, который имеет множество сходств с IAudioClient. Он поддерживает статические звуковые объекты, формируя базу канала, с поддержкой до 8.1.4.4 каналов (8 каналов вокруг прослушивателя – Слева, Справа, Центр, Слева от центра, Справа от центра, Слева сзади, Справа сзади и Центр сзади; 1 канал низких частот; 4 канала выше прослушивателя; 4 канала ниже прослушивателя). Он поддерживает динамические звуковые объекты, которые могут быть произвольно расположены в трехмерном пространстве.

Общий шаблон кода реализации для ISpatialAudioClient :

  • Создайте статические и /или динамические звуковые объекты.
  • Заполняйте аудиобуфер каждого объекта на каждом кадре, чтобы система могла его отрисовать.
  • Обновите трехмерные позиции динамических объектов по требованию — как часто (или редко), в зависимости от потребностей приложения.

Обратите внимание, что текущий формат вывода (динамики или наушники: Windows Sonic для наушников, Dolby Atmos или DTS Headphone:X) абстрагируется от приведенной выше реализации. Разработчик приложения может сосредоточиться на пространственном звуке без необходимости изменять подход в зависимости от формата. Приложения, которые хотят, чтобы их поведение различалось в зависимости от формата выходных данных, могут запрашивать используемый формат, но абстракция означает, что от приложений не требуется обрабатывать эти форматы.

Интеграция пространственного звука Microsoft с аудио рендерами

Так как ISpatialAudioClient — это приемник звука, который потребляет данные, средство отрисовки звука имеет несколько вариантов взаимодействия с данными и доставки звуковых данных в него. Существует три часто используемых метода интеграции (и для звуковых названий с помощью промежуточного слоя вы можете увидеть эквивалентные подключаемые модули, доступные на основе этих вариантов):

  • 7.1.4 панорамирование и голос управления: Отрисовщики, которые уже поддерживают 7.1 аудиораздельных каналов, могут просто добавить поддержку четырех дополнительных высотных каналов, поддерживаемых набором статичных каналов ISpatialAudioClient. Любое зонирование канала, которое они ранее выполняли (вероятно, уже используя координаты x, y, z), теперь можно обновить для включения в него каналов высоты. Это часто обеспечивает минимальное нарушение работы отрисовщика и звуковых процессов приложений, сигналов, потоков и управления смешиваниями. Используя наушники, обратите внимание, что полное звучание приложения будет пространственным — так что даже стерео музыка может ощущаться как вынесенная наружу от слушателя.
  • Поддержка существующей конечной точки, а также добавление шины 7.1.4 (и панорамировщиков): некоторые заголовки могут выбирать использовать две конечные точки: существующую стерео WASAPI конечную точку (для содержимого "прямо в уши", не предназначенного для пространственной обработки) вместе со статической конфигурацией каналов ISpatialAudioClient, поддерживающей 7.1.4 (или даже до 8.1.4.4). Конечно, управление взаимодействием между двумя миксами представляет дополнительные проблемы создателям содержимого, хотя синхронизация поддерживается, так как экземпляры WASAPI и ISAC, активные в данный момент времени, используют одинаковый размер буфера и одинаковые часы для обработки.
  • Используйте динамические звуковые объекты для определенных голосов или подмиксов: этот метод, возможно, предлагает наиболее подробное и точное позиционирование, но может привести к загрязнению микса, и включает использование динамических звуковых объектов ISpatialAudioClient. Обратите внимание, что метаданные и аудиобуфер доставляются в рендерер, поэтому эти звуки будут недоступными для остальной части микса данных приложения. Кроме того, поскольку существует ограниченное количество динамических звуковых объектов, которые доступны, системе обработки придется обдумать реализацию методов приоритизации — отсечения, совместного размещения звука, смешивания со статическим каналом и т. д. Игры часто использовали этот метод для отдельных "героев" звуков, таких как вертолет, который будет двигаться над слушателем.

Отрисовщики также могут смешивать и комбинировать эти подходы.

Последствия ресурсов среды выполнения пространственных звуков Майкрософт

В Windows и Xbox количество доступных голосов зависит от используемого формата. Форматы Dolby Atmos поддерживают в общей сложности 32 активных объекта (поэтому, если используется канальная основа 7.1.4, 20 дополнительных динамических звуковых объектов могут быть активными). Windows Sonic for Headphones поддерживает 128 общих активных объектов, при этом канал низкочастотных эффектов (LFE) не учитывается как объект, поэтому, когда используется канал 8.1.4.4, активными могут быть 112 динамических звуковых объектов.

Для приложений универсальной платформы Windows, работающих на игровых консоли Xbox One, кодирование в режиме реального времени (для Dolby Atmos для домашнего театра, Dolby Atmos для наушников, DTS:X для домашнего театра, DTS Headphone:X и Windows Sonic для наушников) выполняется в оборудовании без затрат на ЦП.

Начиная с обновления ОС Xbox 2303 и пакета средств разработки игр (GDK), ограничения ресурсов на Xbox обновляются до следующих значений:

Формат Максимальное количество статических объектов (Дно канала) Максимальное число динамических объектов
Приложения Серии Xbox X|S, UWP и >=2303 GDK
Максимальное число динамических объектов
Xbox Series X|S, XDK & <2303 GDK
Максимальное число динамических объектов
Xbox One
Dolby Atmos для домашнего театра (HDMI) 12 (7.1.4) 20 20 20
DTS:X для домашнего театра (HDMI) 17 (8.1.4.4) 20 20 16
Dolby Atmos (Наушники) 17 (8.1.4.4) 128 20 16
DTS Headphone:X (наушники) 17 (8.1.4.4) 200 20 16
Windows Sonic (Наушники) 17 (8.1.4.4) 220 20 15

Начиная с майского выпуска сервисных обновлений для сборки Windows 22621, ограничения ресурсов в Windows обновляются до следующих значений:

Формат Максимальное количество статических объектов (Дно канала) Максимальное число динамических объектов
Windows
Максимальное число динамических объектов
HoloLens 2
Dolby Atmos домашний кинотеатр (HDMI) 12 (7.1.4) 20 N/A
DTS:X для домашнего театра (HDMI) 17 (8.1.4.4) 32 N/A
Dolby Atmos (Наушники) 17 (8.1.4.4) 128 N/A
Dolby Atmos (встроенные динамики) 17 (8.1.4.4) 128 N/A
DTS Headphone:X (наушники) 17 (8.1.4.4) 128 N/A
DTS:X Ultra (встроенные динамики) 17 (8.1.4.4) 128 N/A
Windows Sonic (Наушники) 17 (8.1.4.4) 128 31

Для предыдущих выпусков Windows, Xbox и HoloLens применяются следующие ограничения ресурсов.

Формат Максимальное количество статических объектов (Дно канала) Максимальное число динамических объектов
Xbox One
Максимальное число динамических объектов
Windows
Максимальное число динамических объектов
HoloLens 2
Dolby Atmos для домашнего театра (HDMI) 12 (7.1.4) 20 20 N/A
DTS:X для домашнего театра (HDMI) 17 (8.1.4.4) 16 32 N/A
Dolby Atmos (Наушники) 17 (8.1.4.4) 16 16 N/A
Dolby Atmos (встроенные динамики) 17 (8.1.4.4) N/A 16 N/A
DTS Headphone:X (наушники) 17 (8.1.4.4) 16 32 N/A
DTS Ultra (встроенные динамики) 17 (8.1.4.4) N/A 32 N/A
Windows Sonic для наушников 17 (8.1.4.4) 15 112 31

Приложения также должны учитывать следующие последствия ресурсов:

  • Пропускная способность хранилища/диска: линейное содержимое, предварительно созданное для 7.1.4, обычно больше линейного содержимого 7.1 (хотя перцептуальные кодеки уже часто используют корреляцию каналов, чтобы сделать это значительно менее заметным, чем 50% дополнительных фактических каналов аудиоданных).
  • Другие затраты на обработку цифровых сигналов: некоторые ранее глобальные эффекты теперь могут быть инстанцированными для каждого динамического звукового объекта. Кроме того, некоторые создатели содержимого могут потребовать обновления некоторых эффектов DSP для поддержки дополнительных каналов или их уникального использования.

Подсказки пространственной специализации звука и Microsoft Spatial Sound

Пространственный звук Майкрософт ориентирован на имитацию позиционирования звука на идеализированной сфере вокруг прослушивателя. Windows Sonic для наушников, DTS Headphone:X и Dolby Atmos реализуют сопоставление каналов и виртуализацию звука в наушниках, но обратите внимание, что многие другие аспекты пространственного моделирования звука, уже реализованные методами, используемыми создателями контента, остаются в текущих движках. Создатели содержимого продолжают использовать существующие игровые инструменты и процессы, которые они ранее имели для таких пространственных сигналов, как Doppler, дистанцирование и фильтрация, окклюзии и препятствия, а также реверберации окружающей среды.

Дополнительные ресурсы

Интерфейсы пространственного звука

Интерфейс Description
ISpatialAudioClient Позволяет клиенту создавать звуковые потоки, которые выдают звук из положения в трехмерном пространстве.
ISpatialAudioObject Представляет объект, предоставляющий звуковые данные для воспроизведения из расположения в трёхмерном пространстве относительно пользователя.
ISpatialAudioObjectRenderStream Предоставляет методы для управления потоком отрисовки пространственного звукового объекта, включая запуск, остановку и сброс потока.
ISpatialAudioObjectRenderStreamNotify Предоставляет уведомления для клиентов пространственного звука для реагирования на изменения состояния ISpatialAudioObjectRenderStream.

 

Замечание

При использовании интерфейсов ISpatialAudioClient в заголовке набора средств разработки Xbox One (XDK) необходимо сначала вызвать EnableSpatialAudio перед вызовом IMMDeviceEnumerator::EnumAudioEndpoints или IMMDeviceEnumerator::GetDefaultAudioEndpoint. Невыполнение этого приведет к ошибке E_NOINTERFACE, которая будет возвращена из вызова функции Activate. EnableSpatialAudio доступен только для программ XDK и не требуется вызов для приложений Универсальной Windows Платформы, работающих на Xbox One, или для каких-либо устройств, кроме Xbox One.

 

Пространственные звуковые структуры

Структура Description
SpatialAudioObjectRenderStreamActivationParams Представляет параметры активации для потока пространственной отрисовки звука.
SpatialAudioClientActivationParams Представляет необязательные параметры активации для потока рендеринга пространственного звука.

 

Перечисления пространственных звуков

Enumeration Description
AudioObjectType Указывает тип ISpatialAudioObject.