Compartir a través de


Sonido espacial para desarrolladores de aplicaciones para Windows, Xbox y Hololens 2

Nota

Esta documentación está destinada a un público de desarrolladores. Para obtener compatibilidad con el usuario final para habilitar el sonido espacial en el dispositivo, consulta Cómo activar el sonido espacial en Windows 10.

Microsoft Spatial Sound es la solución de nivel de plataforma de Microsoft para admitir sonidos espaciales en Xbox, Windows y HoloLens 2, lo que permite las indicaciones de audio envolventes y de elevación (por encima o por debajo del agente de escucha). Las aplicaciones de escritorio de Windows (Win32) pueden aprovechar el sonido espacial, así como las aplicaciones para la Plataforma universal de Windows (UWP) en plataformas compatibles. Las API de sonido espacial permiten a los desarrolladores crear objetos de audio que emiten audio a partir de posiciones en espacio 3D. Los objetos de audio dinámicos permiten emitir audio desde una posición arbitraria en el espacio, lo que puede cambiar con el tiempo. También puede especificar que los objetos de audio emiten sonido de uno de los 17 canales estáticos predefinidos (8.1.4.4) que pueden representar altavoces reales o virtualizados. El usuario selecciona el formato de salida real y se puede abstraer de las implementaciones de Sonido espacial de Microsoft; el audio se presentará a los altavoces, auriculares y receptores de cine doméstico existentes sin necesidad de cambios de código o contenido. La plataforma es totalmente compatible con la codificación Dolby Atmos en tiempo real para la salida de auriculares HDMI y estéreo, DTS:X para auriculares y Windows Sonic para auriculares para auriculares para auriculares estéreo. Por último, las aplicaciones de Sonido espacial de Microsoft cumplen la directiva de mezcla del sistema y su audio también se combinará con aplicaciones no compatibles espacialmente. La compatibilidad con Microsoft Spatial Sound también se integra en Media Foundation; Las aplicaciones que usan media foundation pueden reproducir correctamente el contenido dolby Atmos sin ninguna implementación adicional.

El sonido espacial con Microsoft Spatial Sound admite televisores, cines domésticos y barras de sonido que admiten Dolby Atmos. El sonido espacial también se puede usar con cualquier par de auriculares que el consumidor pueda poseer, con audio representado por la plataforma mediante Windows Sonic para auriculares, Dolby Atmos para auriculares o DTS Headphone:X.

Habilitación del sonido espacial de Microsoft

Ya sea como desarrollador o consumidor, un usuario debe habilitar Microsoft Spatial Sound en su dispositivo para escuchar el sonido espacializado.

Windows

En equipos Windows, esto se hace a través de la página de propiedades de un dispositivo de salida de sonido determinado. En el panel de control sonido, seleccione un dispositivo de salida y haga clic en Propiedades del dispositivo. En la sección sonido espacial de de la página, si el dispositivo admite sonido espacial, puede seleccionar uno de los formatos disponibles en la lista desplegable Formato de sonido espacial.

habilitar el sonido espacial en el panel de control de sonido

También puede habilitar Microsoft Spatial Sound si hace clic con el botón derecho en el icono Volumen de la barra de tareas.

habilitar el sonido espacial desde el de la barra de tareas

Xbox

En Xbox, las funcionalidades de sonido espacial de Microsoft siempre están disponibles para el consumidor y se habilitan a través de la aplicación Configuración en General: volumen> volumen & salida de audio.

El botón de audio HDMI se rellena con todos los formatos compatibles con el receptor de vídeo de audio (AVR) o la barra de sonido o el televisor que está conectado directamente a la consola Xbox. La opción "Audio óptico" solo está disponible en consolas Xbox anteriores y no en Xbox Series X|S y versiones posteriores.

Captura de pantalla de la página Configuración de salida del volumen general & que muestra la lista desplegable de audio HDMI.

Tenga en cuenta que al seleccionar las opciones "Dolby Atmos para cine doméstico (solo HDMI)" o "DTS:X para cine doméstico (solo HDMI)" en audio HDMI se le pedirá al usuario que descargue e instale Dolby Access o DTS Sound Unbound aplicaciones si aún no está instalada.

Captura de pantalla de la página Configuración de salida del volumen general & que muestra la selección de DTS Digital Surround.

Seleccione Dolby Atmos para auriculares, DTS Headset:X o Windows Sonic for Headsets en la lista desplegable Headset format en Audio de auriculares

Captura de pantalla de la página De configuración de salida del volumen general & que muestra la habilitación del sonido espacial para auriculares.

Cuando Microsoft Spatial Sound no está disponible (por ejemplo, cuando se reproduce en altavoces estéreo para portátiles incrustados o si el usuario no ha habilitado explícitamente El sonido espacial de Microsoft por encima), el número de objetos dinámicos disponibles devueltos por ISpatialAudioClient::GetMaxDynamicObjectCount a una aplicación será 0.

HoloLens 2

En HoloLens 2, El sonido espacial de Microsoft está habilitado de forma predeterminada y usa la descarga de DSP de hardware diseñada específicamente para Windows Sonic para auriculares.

Middleware de audio y sonido espacial de Microsoft

Muchos desarrolladores de aplicaciones y juegos usan soluciones de motor de representación de audio de terceros, que a menudo incluyen herramientas sofisticadas de creación y audición. Microsoft se ha asociado con varios de estos proveedores de soluciones para implementar Microsoft Spatial Sound en sus entornos de creación existentes. Esto suele significar que las API que se describen aquí se abstraen de la vista de la aplicación; se encapsulan como complementos de procesamiento de señales digitales (DSP) que la aplicación puede crear instancias, y que el implementador de audio de la aplicación puede usar para mezclarse en una cama, submezcla o enviar voces individuales a complementos de instancia de objeto dinámicos según sea necesario. Consulte con el proveedor de soluciones de middleware de audio para obtener su nivel de compatibilidad con Microsoft Spatial Sound.

Sonido espacial de Microsoft para representadores de audio

Muchos representadores de audio tienen como destino una API de sesión de audio de Windows (WASAPI) punto de conexión de IAudioClient, donde la aplicación alimenta los búferes de datos de audio mixtos y con formato a un receptor de audio WASAPI; Después, los búferes entregados se consumen para mezclar con otros clientes, el procesamiento final de nivel de sistema y la representación.

Los puntos de conexión espaciales de Microsoft Spatial Sound se implementan como ISpatialAudioClient, que tiene muchas similitudes con IAudioClient. Admite objetos de sonido estáticos que forman un cama de canal, con soporte para hasta 8.1.4.4 canales (8 canales alrededor del agente de escucha : Izquierda, Derecha, Centro, Lado izquierdo, Lado derecho, Back Left, Back Right y Back Center; 1 canal de efectos de baja frecuencia; 4 canales por encima del agente de escucha; 4 canales por debajo del agente de escucha). Además, admite objetos de sonido dinámicos, que se pueden colocar arbitrariamente en el espacio 3D.

El patrón de codificación de implementación general para ISpatialAudioClient es:

  • Cree objetos de audio estáticos o dinámicos.
  • Alimenta el búfer de audio de cada fotograma de cada objeto para que el sistema pueda representarlo.
  • Actualice las posiciones 3D de los objetos dinámicos a petición, con la frecuencia (o con poca frecuencia) que desea la aplicación.

Tenga en cuenta que el formato de salida actual (altavoces o auriculares; Windows Sonic for Headphones, Dolby Atmos o DTS Headphone:X) se abstrae de la implementación anterior: el desarrollador de aplicaciones puede centrarse en el sonido espacial sin necesidad de dinamizar en función del formato. Las aplicaciones que quieren que su comportamiento diverge en función del formato de salida pueden consultar el formato en uso, pero la abstracción significa que una aplicación no es necesaria para controlar estos formatos.

Integración de sonido espacial de Microsoft con representadores de audio

Dado que ISpatialAudioClient es un receptor de audio que consume datos, un representador de audio tiene varias opciones para interactuar con él y entregar datos de audio. Hay tres técnicas de integración usadas habitualmente (y para títulos que usan middleware de audio, es posible que vea complementos equivalentes disponibles en función de estas opciones):

  • 7.1.4 paneles yde voz de maestro: los representadores que ya admiten puntos de conexión 7.1 pueden optar simplemente por agregar compatibilidad con los cuatro canales de altura adicionales que admite el ISpatialAudioClient admite la cama de canales estáticos. Cualquier movimiento panorámico de canales que haya realizado anteriormente (probablemente ya aprovechando coordenadas x,y, z) se puede actualizar para incluir ahora estos canales de alto. Esto suele proporcionar la menor interrupción en los flujos de trabajo de representación y audio de la aplicación, la señal, el flujo y el control de mezcla. En los auriculares, tenga en cuenta que la combinación completa de aplicaciones se espacializará, por lo que incluso la música estéreo se puede percibir como "externalizada" del agente de escucha.
  • Mantener el punto de conexión existente, además de agregar un bus 7.1.4 (y paneles): algunos títulos pueden optar por mantener dos puntos de conexión: su punto de conexión WASAPI estéreo existente (para el contenido "directo a los oídos" no diseñado para ser espacializado) junto con un ISpatialAudioClient cama de canal estático compatible con 7.1.4 (o incluso hasta 8.1.4.4). Por supuesto, la administración de interacciones entre dos combinaciones presenta desafíos adicionales a los creadores de contenido, aunque se mantiene la sincronización, ya que las instancias WASAPI e ISAC activas en un momento dado usan el mismo tamaño de búfer y reloj para su procesamiento.
  • Usar objetos de sonido dinámicos para determinadas voces o submezclas: Ofrecer quizás el posicionamiento más detallado o preciso, pero posiblemente crear opacidad de mezcla, esta técnica implica el uso de ISpatialAudioClient objetos de sonido dinámicos. Tenga en cuenta que los metadatos más el búfer de audio se entregan al representador, por lo que estos sonidos serán opacos en el resto de la combinación de aplicaciones. Además, dado que hay un número limitado de objetos de sonido dinámico disponibles, el representador tendrá que considerar la posibilidad de implementar técnicas de priorización: selección, colocalización de sonido, fusión con la cama de canal estático, etc. Los juegos han usado con frecuencia esta técnica para sonidos "héroes" individuales, como un helicóptero que se moverá por encima del agente de escucha.

Los representadores también pueden mezclar y coincidir entre estos enfoques.

Implicaciones de recursos del entorno de ejecución de sonido espacial de Microsoft

En Windows y Xbox, el número de voces disponibles varía en función del formato en uso. Los formatos Dolby Atmos admiten 32 objetos activos totales (por lo que si está en uso una cama de canal 7.1.4, 20 objetos de sonido dinámico adicionales pueden estar activos). Windows Sonic for Headphones admite 128 objetos activos totales, con el canal Efectos de baja frecuencia (LFE) que realmente no se cuenta como un objeto , por lo que cuando se usa una cama de canal 8.1.4.4, 112 objetos de sonido dinámicos pueden estar activos.

Para las aplicaciones de la Plataforma universal de Windows que se ejecutan en consolas de juegos de Xbox One, la codificación en tiempo real (para Dolby Atmos para Home Theater, Dolby Atmos para auriculares, DTS:X para Home Theater, DTS Headphone:X y Windows Sonic for Headphones) se realiza en hardware sin costo de CPU.

A partir de la actualización del sistema operativo Xbox 2303 y el Kit de desarrollo de juegos (GDK), los límites de recursos de Xbox se actualizan a los valores siguientes:

Formato Max Static Objects (Channel Bed) Objetos dinámicos máximos
Xbox Series X|S, aplicaciones para UWP & >=2303 GDK
Objetos dinámicos máximos
Xbox Series X|S, XDK & <2303 GDK
Objetos dinámicos máximos
Xbox One
Dolby Atmos for Home Theater (HDMI) 12 (7.1.4) 20 20 20
DTS:X para cine doméstico (HDMI) 17 (8.1.4.4) 20 20 16
Dolby Atmos (auriculares) 17 (8.1.4.4) 128 20 16
Auriculares DTS:X (auriculares) 17 (8.1.4.4) 200 20 16
Windows Sonic (auriculares) 17 (8.1.4.4) 220 20 15

A partir de la versión de mantenimiento de mayo en la compilación 22621 de Windows, los límites de recursos en Windows se actualizan a los valores siguientes:

Formato Max Static Objects (Channel Bed) Objetos dinámicos máximos
Windows
Objetos dinámicos máximos
HoloLens 2
Dolby Atmos home theater (HDMI) 12 (7.1.4) 20 N/A
DTS:X para cine doméstico (HDMI) 17 (8.1.4.4) 32 N/A
Dolby Atmos (auriculares) 17 (8.1.4.4) 128 N/A
Dolby Atmos (altavoces integrados) 17 (8.1.4.4) 128 N/A
Auriculares DTS:X (auriculares) 17 (8.1.4.4) 128 N/A
DTS:X Ultra (altavoces integrados) 17 (8.1.4.4) 128 N/A
Windows Sonic (auriculares) 17 (8.1.4.4) 128 31

En las versiones anteriores de Windows, Xbox y HoloLens, se aplican los siguientes límites de recursos.

Formato Max Static Objects (Channel Bed) Objetos dinámicos máximos
Xbox One
Objetos dinámicos máximos
Windows
Objetos dinámicos máximos
HoloLens 2
Dolby Atmos para cine doméstico (HDMI) 12 (7.1.4) 20 20 N/A
DTS:X para cine doméstico (HDMI) 17 (8.1.4.4) 16 32 N/A
Dolby Atmos (auriculares) 17 (8.1.4.4) 16 16 N/A
Dolby Atmos (altavoces integrados) 17 (8.1.4.4) N/A 16 N/A
Auriculares DTS:X (auriculares) 17 (8.1.4.4) 16 32 N/A
DTS Ultra (altavoces integrados) 17 (8.1.4.4) N/A 32 N/A
Windows Sonic para auriculares 17 (8.1.4.4) 15 112 31

Las aplicaciones también deben tener en cuenta las siguientes implicaciones de recursos:

  • ancho de banda de almacenamiento y disco: el contenido lineal creado previamente a la versión 7.1.4 suele ser mayor que 7.1 contenido lineal (aunque los códecs perceptuales ya suelen aprovechar la correlación de canales para hacer esto mucho menos que los 50% canales más reales de datos de audio).
  • otros costos de procesamiento de señales digitales: algunos efectos globales anteriores ahora pueden convertirse en instancias por objeto de sonido dinámico. Además, es posible que algunos creadores de contenido deseen actualizar algunos efectos de DSP para admitir canales adicionales o usarlos de forma única.

Indicaciones de espacialización de sonido y sonido de Microsoft

Microsoft Spatial Sound se centra en la simulación de posicionamiento de sonido en una esfera idealizada alrededor del agente de escucha. Windows Sonic for Headphones, DTS Headphone:X y Dolby Atmos implementan la asignación de altavoces y la virtualización a los auriculares, pero ten en cuenta que muchos otros aspectos de la simulación espacial de sonido, ya implementadas normalmente en formas habilitadas para creadores de contenido, quedan a los motores existentes. Los creadores de contenido siguen usando las herramientas y los procesos de juego existentes que anteriormente tenían para estas indicaciones espaciales como Así, la atenuación basada en distancia y el filtrado, la oclusión y la obstrucción, y la reverberación ambiental.

Recursos adicionales

Interfaces de sonido espacial

Interfaz Descripción
ISpatialAudioClient Permite a un cliente crear secuencias de audio que emiten audio desde una posición en el espacio 3D.
ISpatialAudioObject Representa un objeto que proporciona datos de audio que se van a representar desde una posición en el espacio 3D, en relación con el usuario.
ISpatialAudioObjectRenderStream Proporciona métodos para controlar un flujo de representación de objetos de audio espacial, incluido el inicio, la detención y el restablecimiento de la secuencia.
ISpatialAudioObjectRenderStreamNotify Proporciona notificaciones para que los clientes de audio espacial respondan a los cambios en el estado de un ISpatialAudioObjectRenderStream.

 

Nota

Al usar las interfacesISpatialAudioClient deen un título del Kit de desarrollo de Xbox One (XDK), primero debes llamar a EnableSpatialAudio antes de llamar a IMMDeviceEnumerator::EnumAudioEndpoints o IMMDeviceEnumerator::GetDefaultAudioEndpoint. Si no lo hace, se producirá un error E_NOINTERFACE que se devuelve de la llamada a Activate. EnableSpatialAudio solo está disponible para los títulos XDK y no es necesario llamar a para las aplicaciones de la Plataforma universal de Windows que se ejecutan en Xbox One ni para ningún dispositivo que no sea Xbox One.

 

Estructuras de sonido espacial

Estructura Descripción
spatialAudioObjectRenderStreamActivationParams Representa parámetros de activación para una secuencia de representación de audio espacial.
SpatialAudioClientActivationParams Representa parámetros de activación opcionales para una secuencia de representación de audio espacial.

 

Enumeraciones de sonido espacial

Enumeración Descripción
audioObjectType de Especifica el tipo de ISpatialAudioObject.