O Android 13 introduz suporte para áudio espacial, fornecendo APIs que permitem aos desenvolvedores de aplicativos descobrir se a combinação atual de implementação de telefone, fone de ouvido conectado e configurações do usuário permite a reprodução de conteúdo de áudio multicanal de maneira imersiva.
Os OEMs podem fornecer um efeito de áudio espacializador com suporte para rastreamento de cabeça com o nível de desempenho e latência necessários, usando a nova arquitetura de pipeline de áudio e integração de estrutura de sensor. O protocolo HID especifica como conectar um dispositivo de rastreamento de cabeça via Bluetooth e disponibilizá-lo como um dispositivo HID por meio da estrutura do sensor Android. Consulte Áudio Espacial e Rastreamento de Cabeça para obter mais requisitos e validação.
As diretrizes nesta página se aplicam a uma solução de áudio espacial que adota as novas APIs de áudio espacial e arquitetura de áudio com um telefone Android com Android 13 e superior e fones de ouvido compatíveis com sensor de rastreamento de cabeça.
Diretrizes para implementação de modos de áudio espacial dinâmico e estático
O áudio espacial estático não requer rastreamento de cabeça, portanto, funcionalidade específica não é necessária no fone de ouvido. Todos os fones de ouvido com e sem fio podem suportar áudio espacial estático.
Implementação de API
Os OEMs DEVEM implementar a classe Spatializer
introduzida no Android 12. A implementação deve passar nos testes CTS introduzidos para a classe Spatializer
.
Uma implementação robusta de API garante que os desenvolvedores de aplicativos, especialmente serviços de streaming de mídia, possam contar com um comportamento consistente em todo o ecossistema e escolher o melhor conteúdo de acordo com os recursos do dispositivo, o contexto de renderização atual e as escolhas do usuário.
Interface de usuário
Depois de implementar a classe Spatializer
, valide se sua UI tem o seguinte comportamento:
Quando o fone de ouvido com capacidade de áudio espacial está emparelhado, as configurações do dispositivo Bluetooth para este fone de ouvido exibem uma alternância de áudio espacial :
Figura 1. Configuração de áudio espacial.
As configurações estão disponíveis quando o fone de ouvido está desconectado.
O estado padrão do áudio espacial após o emparelhamento inicial do fone de ouvido é definido como ativado .
O estado selecionado pelo usuário, seja ativado ou desativado, persiste na reinicialização do telefone ou no desemparelhamento e emparelhamento do fone de ouvido.
Comportamento funcional
Formatos de áudio
Os seguintes formatos de áudio DEVEM ser renderizados pelo efeito espacializador quando o áudio espacial está ativado e o dispositivo de renderização é um fone de ouvido com fio ou Bluetooth:
- AAC, 5.1 canais
- PCM bruto, 5.1 canais
Para uma melhor experiência do usuário, recomendamos fortemente o suporte aos seguintes formatos/configurações de canal:
- Dolby Digital Plus
- 5.1.2, 7.1, 7.1.2, 7.1.4 canais
Reprodução de conteúdo estéreo
O conteúdo estéreo não deve ser renderizado por meio do mecanismo de efeito espacializador, mesmo se o áudio espacial estiver ativado. Se uma implementação permitir a espacialização do conteúdo estéreo, ela deverá apresentar uma UI customizada que permita ao usuário ativar ou desativar esse recurso facilmente. Quando o áudio espacial está ativado, deve ser possível fazer a transição entre a reprodução de conteúdo multicanal espacializado para conteúdo estéreo não espacializado sem exigir quaisquer alterações nas configurações do usuário ou reconexão ou reconfiguração do fone de ouvido. A transição entre o conteúdo de áudio espacial e o conteúdo estéreo deve ocorrer com interrupção mínima de áudio.
Use transições de casos e simultaneidade
Lide com casos de uso especiais da seguinte maneira:
- As notificações devem ser misturadas com o conteúdo de áudio espacial da mesma maneira que com o conteúdo de áudio não espacial.
- Os toques devem poder ser misturados com conteúdo de áudio espacial. No entanto, por padrão, o mecanismo de foco de áudio pausa o conteúdo de áudio espacial quando há toque.
- Ao atender ou fazer uma chamada telefônica ou videoconferência, a reprodução do áudio espacial deve ser pausada. A reprodução de áudio espacial deve ser retomada com as mesmas configurações de áudio espacial quando a chamada terminar. A reconfiguração de um caminho de áudio para alternar do modo de áudio espacial para o modo de conversação deve acontecer de forma rápida e contínua o suficiente para não afetar a experiência de chamada.
Renderizando pelos alto-falantes
Não é necessário suporte para espacialização de áudio em alto-falantes ou modo transaural .
Diretrizes para implementação de rastreamento de cabeça
Esta seção se concentra no áudio espacial dinâmico, que possui requisitos específicos para fones de ouvido.
Interface de usuário
Após a implementação e o emparelhamento do fone de ouvido com capacidade de áudio espacial, valide se sua IU tem o seguinte comportamento:
Nas configurações do dispositivo Bluetooth, quando a configuração de Áudio Espacial do fone de ouvido está ativada, uma configuração de rastreamento de cabeça aparece em Áudio Espacial :
Figura 2. Configuração de áudio espacial e rastreamento de cabeça.
A configuração de rastreamento de cabeça NÃO fica visível quando o áudio espacial está desativado.
O estado padrão para rastreamento de cabeça após o emparelhamento inicial do fone de ouvido é definido como ativado .
O estado selecionado pelo usuário, seja ativado ou desativado, deve persistir durante a reinicialização do telefone ou desemparelhamento e emparelhamento do fone de ouvido.
Comportamento funcional
Relatório de pose de cabeça
- As informações de pose da cabeça, em coordenadas x, y e z, enviadas do fone de ouvido para o dispositivo Android, devem refletir os movimentos da cabeça do usuário com rapidez e precisão.
- O relatório da pose da cabeça pelo link Bluetooth deve seguir o protocolo definido pelo HID .
- O fone de ouvido deve enviar as informações de rastreamento de cabeça para o telefone Android somente quando o usuário ativar o rastreamento de cabeça na interface de configuração do dispositivo Bluetooth.
Desempenho
Latência
A latência de rastreamento da cabeça é definida como o tempo que leva desde o movimento da cabeça capturado pela unidade de medição inercial (IMU) até a detecção pelos transdutores de fone de ouvido da mudança no som causada por esse movimento. A latência de rastreamento de cabeça não deve exceder 150 ms.
Taxa de relatórios de pose de cabeça
Quando o rastreamento da cabeça está ativo, o fone de ouvido deve relatar a posição da cabeça periodicamente recomendada, durante aproximadamente 20 ms. Para evitar o acionamento da lógica de detecção de entrada obsoleta no telefone durante uma tremulação de transmissão do Bluetooth, o tempo máximo entre duas atualizações não deve exceder 40 ms.
Otimização de energia
Para otimizar a potência, recomendamos que a implementação use os mecanismos de comutação de codec Bluetooth e seleção de modo de latência fornecidos pelas interfaces HAL de áudio e HAL de áudio Bluetooth .
As implementações AOSP da estrutura de áudio e da pilha Bluetooth já suportam os sinais para controlar a comutação de codecs. Se a implementação do OEM usar o HAL de áudio primário para áudio Bluetooth, conhecido como modo de descarregamento de codec , o OEM deverá garantir que o HAL de áudio retransmita esses sinais entre o HAL de áudio e a pilha Bluetooth.
Troca de codec
Quando o áudio espacial dinâmico e o rastreamento de cabeça estiverem ativados, use um codec de baixa latência, como o Opus . Ao reproduzir conteúdo de áudio não espacial, use um codec de baixo consumo de energia, como Advanced Audio Coding (AAC) .
Siga estas regras durante a troca de codec:
- Rastreie apenas a atividade nos seguintes fluxos de saída de áudio HAL:
- Saída dedicada do espacializador
- Fluxos específicos de mídia, como buffer profundo ou reprodução de descarregamento compactada
Quando todos os fluxos relevantes estiverem ociosos e o fluxo do espacializador for iniciado, inicie o fluxo Bluetooth com
isLowLatency
definido comotrue
para especificar um codec de baixa latência.Quando todos os fluxos relevantes estiverem ociosos e um fluxo de mídia for iniciado, inicie o fluxo Bluetooth com
isLowLatency
definido comofalse
para especificar um codec de baixo consumo de energia.Se um fluxo de mídia estiver ativo e o fluxo do espacializador for iniciado, reinicie o fluxo Bluetooth com
isLowLatency
definido comotrue
.
No lado do fone de ouvido, o fone de ouvido deve suportar decodificadores de baixa latência e baixo consumo de energia e implementar o protocolo de seleção de codec padrão.
Ajuste do modo de latência
O ajuste do modo de latência ocorre quando o codec de baixa latência é selecionado.
Com base no fato de o rastreamento da cabeça estar ativado ou desativado, o ajuste do modo de latência usa mecanismos disponíveis para reduzir ou aumentar a latência para alcançar o melhor compromisso entre latência, potência e qualidade de áudio. Quando o áudio espacial está ativado e o rastreamento da cabeça está ativado, o modo de baixa latência é escolhido. Quando o áudio espacial está ativado e o rastreamento da cabeça está desativado, o modo de latência livre é selecionado. O ajuste de latência proporciona economia significativa de energia e maior robustez do link de áudio Bluetooth quando apenas áudio espacial estático é solicitado. O mecanismo de ajuste de latência mais comum é a redução ou extensão do tamanho do buffer de jitter no fone de ouvido Bluetooth.