Implementación de audio espacial de alta calidad y seguimiento de cabeza.

Android 13 introduce soporte para audio espacial al proporcionar API que permiten a los desarrolladores de aplicaciones descubrir si la combinación actual de implementación del teléfono, auriculares conectados y configuración del usuario permite la reproducción de contenido de audio multicanal de manera inmersiva.

Los OEM pueden proporcionar un efecto de audio espacializador con soporte para seguimiento de cabeza con el nivel de rendimiento y latencia requeridos, utilizando la nueva arquitectura de canalización de audio y la integración del marco de sensores. El protocolo HID especifica cómo conectar un dispositivo de seguimiento de cabeza a través de Bluetooth y hacerlo disponible como dispositivo HID a través del marco de sensores de Android. Consulte Audio espacial y Seguimiento de cabeza para obtener más requisitos y validación.

Las pautas de esta página se aplican a una solución de audio espacial que adopta las nuevas API de audio espacial y la arquitectura de audio con un teléfono Android con Android 13 y superior y auriculares compatibles con sensor de seguimiento de cabeza.

Directrices para la implementación de modos de audio espacial dinámico y estático.

El audio espacial estático no requiere seguimiento de la cabeza, por lo que no se requiere una funcionalidad específica en los auriculares. Todos los auriculares inalámbricos y con cable pueden admitir audio espacial estático.

Implementación de API

Los OEM DEBEN implementar la clase Spatializer introducida en Android 12. La implementación debe pasar las pruebas CTS introducidas para la clase Spatializer .

Una implementación API sólida garantiza que los desarrolladores de aplicaciones, en particular los servicios de transmisión de medios, puedan confiar en un comportamiento consistente en todo el ecosistema y elegir el mejor contenido según las capacidades del dispositivo, el contexto de representación actual y las elecciones del usuario.

Interfaz de usuario

Después de implementar la clase Spatializer , valide que su UI tenga el siguiente comportamiento:

  • Cuando los auriculares con capacidad de audio espacial están emparejados, la configuración del dispositivo Bluetooth para estos auriculares muestra un interruptor de Audio espacial :

    spatial-audio-ui

    Figura 1. Configuración de audio espacial.

  • La configuración está disponible cuando el auricular está desconectado.

  • El estado predeterminado del audio espacial después de emparejar inicialmente los auriculares está configurado como habilitado .

  • El estado seleccionado por el usuario, ya sea habilitado o deshabilitado, persiste en el reinicio del teléfono o en la desvinculación y vinculación de los auriculares.

Comportamiento funcional

Formatos de audio

Los siguientes formatos de audio DEBEN ser renderizados por el efecto espacializador cuando el audio espacial está habilitado y el dispositivo de renderizado es un auricular con cable o Bluetooth:

  • AAC, 5.1 canales
  • PCM sin procesar, 5.1 canales

Para una mejor experiencia de usuario, recomendamos encarecidamente admitir los siguientes formatos/configuraciones de canales:

  • Dolby Digital Plus
  • 5.1.2, 7.1, 7.1.2, 7.1.4 canales

Reproducción de contenido estéreo

El contenido estéreo no se debe representar a través del motor de efectos del espacializador, incluso si el audio espacial está habilitado. Si una implementación permite la espacialización del contenido estéreo, debe presentar una interfaz de usuario personalizada que permita al usuario activar o desactivar esta función fácilmente. Cuando el audio espacial está habilitado, debe ser posible realizar la transición entre la reproducción de contenido multicanal espacializado y contenido estéreo no espacializado sin requerir ningún cambio en la configuración del usuario o la reconexión o reconfiguración de los auriculares. La transición entre contenido de audio espacial y contenido estéreo debe ocurrir con una interrupción mínima del audio.

Transiciones de casos de uso y simultaneidad

Maneje los casos de uso especiales de la siguiente manera:

  • Las notificaciones deben mezclarse con el contenido de audio espacial de la misma manera que con el contenido de audio no espacial.
  • Se debe permitir que los tonos de llamada se mezclen con contenido de audio espacial. Sin embargo, de forma predeterminada, el mecanismo de enfoque de audio pausa el contenido de audio espacial cuando hay un tono de llamada.
  • Al responder o realizar una llamada telefónica o una videoconferencia, la reproducción de audio espacial debe pausarse. La reproducción de audio espacial debe reanudarse con la misma configuración de audio espacial cuando finaliza la llamada. La reconfiguración de una ruta de audio para cambiar del modo de audio espacial al modo conversacional debe realizarse con la suficiente rapidez y fluidez para que no afecte la experiencia de la llamada.

Renderizado sobre altavoces

No se requiere compatibilidad con la espacialización de audio a través de altavoces o modo transaural .

Directrices para la implementación del seguimiento de la cabeza.

Esta sección se centra en el audio espacial dinámico, que tiene requisitos específicos para los auriculares.

Interfaz de usuario

Tras la implementación y el emparejamiento de los auriculares con capacidad de audio espacial, valide que su interfaz de usuario tenga el siguiente comportamiento:

  • En la configuración del dispositivo Bluetooth, cuando la configuración de Audio espacial para los auriculares está habilitada, aparece una configuración de Seguimiento de cabeza en Audio espacial :

    ht-ui

    Figura 2. Configuración de audio espacial y seguimiento de cabeza.

  • La configuración de seguimiento de cabeza NO es visible cuando el audio espacial está desactivado.

  • El estado predeterminado para el seguimiento de la cabeza después de emparejar inicialmente los auriculares está configurado como habilitado .

  • El estado seleccionado por el usuario, ya sea habilitado o deshabilitado, debe persistir a través de un reinicio del teléfono o desemparejando y emparejando los auriculares.

Comportamiento funcional

Informe de pose de cabeza

  • La información de la postura de la cabeza, en coordenadas x, y y z, enviada desde los auriculares al dispositivo Android, debe reflejar los movimientos de la cabeza del usuario de forma rápida y precisa.
  • Los informes de postura de la cabeza a través del enlace Bluetooth deben seguir el protocolo definido a través de HID .
  • Los auriculares deben enviar la información de seguimiento de la cabeza al teléfono Android solo cuando el usuario habilita el seguimiento de la cabeza en la interfaz de usuario de configuración del dispositivo Bluetooth.

Actuación

Latencia

La latencia de seguimiento de la cabeza se define como el tiempo que transcurre desde que el movimiento de la cabeza capturado por la unidad de medición inercial (IMU) hasta que los transductores de los auriculares detectan el cambio en el sonido causado por este movimiento. La latencia de seguimiento de la cabeza no debe exceder los 150 ms.

Tasa de informes de posturas de cabeza

Cuando el seguimiento de la cabeza está activo, el auricular debe informar la postura de la cabeza con la periodicidad recomendada de aproximadamente 20 ms. Para evitar que se active la lógica de detección de entrada obsoleta en el teléfono durante una fluctuación de transmisión del Bluetooth, el tiempo máximo entre dos actualizaciones no debe exceder los 40 ms.

Optimización de energía

Para optimizar la energía, recomendamos que la implementación utilice los mecanismos de selección del modo de latencia y conmutación de códec Bluetooth proporcionados por las interfaces de audio HAL y Bluetooth audio HAL .

Las implementaciones AOSP del marco de audio y la pila Bluetooth ya admiten señales para controlar la conmutación de códec. Si la implementación del OEM utiliza el HAL de audio principal para el audio Bluetooth, conocido como modo de descarga de códec , el OEM debe asegurarse de que el HAL de audio transmita esas señales entre el HAL de audio y la pila de Bluetooth.

Cambio de códec

Cuando el audio espacial dinámico y el seguimiento de la cabeza estén activados, utilice un códec de baja latencia, como Opus . Cuando reproduzca contenido de audio no espacial, utilice un códec de bajo consumo, como Advanced Audio Coding (AAC) .

Siga estas reglas durante el cambio de códec:

  • Realice un seguimiento únicamente de la actividad en las siguientes transmisiones de salida de audio HAL:
    • Salida espacializadora dedicada
    • Secuencias de medios específicos, como búfer profundo o reproducción de descarga comprimida
  • Cuando todas las transmisiones relevantes estén inactivas y se inicie la transmisión del espacializador, inicie la transmisión de Bluetooth con isLowLatency establecido en true para especificar un códec de baja latencia.

  • Cuando todas las transmisiones relevantes estén inactivas y se inicie una transmisión multimedia, inicie la transmisión Bluetooth con isLowLatency configurado en false para especificar un códec de bajo consumo.

  • Si hay una transmisión multimedia activa y se inicia la transmisión del espacializador, reinicie la transmisión Bluetooth con isLowLatency configurado en true .

En el lado de los auriculares, los auriculares deben admitir decodificadores de baja latencia y de baja potencia e implementar el protocolo de selección de códec estándar.

Ajuste del modo de latencia

El ajuste del modo de latencia se produce cuando se selecciona el códec de baja latencia.

Según si el seguimiento de la cabeza está activado o desactivado, el ajuste del modo de latencia utiliza los mecanismos disponibles para reducir o aumentar la latencia y alcanzar el mejor compromiso entre latencia, potencia y calidad de audio. Cuando el audio espacial está habilitado y el seguimiento de la cabeza está habilitado, se elige el modo de baja latencia. Cuando el audio espacial está habilitado y el seguimiento de la cabeza está deshabilitado, se selecciona el modo de latencia libre. El ajuste de latencia proporciona importantes ahorros de energía y una mayor solidez del enlace de audio Bluetooth cuando solo se solicita audio espacial estático. El mecanismo de ajuste de latencia más común es la reducción o extensión del tamaño del búfer de fluctuación en los auriculares Bluetooth.