O Android 13 oferece suporte ao áudio espacial com APIs que permitem aos desenvolvedores de apps descobrir se a combinação atual de implementação do smartphone, 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 oferecer um efeito de espacialização de áudio com suporte para rastreamento de movimentos da cabeça com o nível de desempenho e latência necessários, usando a nova arquitetura de pipeline de áudio e a integração de framework de sensor. O protocolo HID especifica como conectar um dispositivo de monitoramento da posição da cabeça por Bluetooth e disponibilizá-lo como um dispositivo HID usando o framework de sensores do Android. Consulte Áudio espacial e rastreamento de cabeça para 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 smartphone Android executando Android 13 e versões mais recentes e fones de ouvido compatíveis com sensor de rastreamento de cabeça.
Diretrizes para implementação de modos de áudio espacial dinâmicos e estáticos
O áudio espacial estático não exige rastreamento da cabeça, então não é necessário ter uma funcionalidade específica no fone de ouvido. Todos os fones de ouvido com e sem fio são compatíveis com áudio espacial estático.
Implementação da API
Os OEMs PRECISAM implementar a classe Spatializer
introduzida no Android 12. A implementação precisa passar nos testes do CTS
introduzidos para a
classe Spatializer
.
Uma implementação robusta da API garante que os desenvolvedores de apps, principalmente os 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 do usuário
Depois de implementar a classe Spatializer
, valide se a interface tem o seguinte comportamento:
Quando o fone de ouvido compatível com áudio espacial é pareado, as configurações do dispositivo Bluetooth para esse fone mostram uma chave Áudio espacial:
Figura 1. Configuração de áudio espacial.
As configurações ficam disponíveis quando o fone de ouvido está desconectado.
O estado padrão do Áudio Espacial após o pareamento inicial do headset é ativado.
O estado selecionado pelo usuário, ativado ou desativado, persiste após a reinicialização do smartphone ou o cancelamento e o pareamento do headset.
Comportamento funcional
Formatos de áudio
Os seguintes formatos de áudio PRECISAM ser renderizados pelo efeito de espacialização 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 oferecer suporte aos seguintes formatos/configurações de canal:
- Dolby Digital Plus
- Canais 5.1.2, 7.1, 7.1.2 e 7.1.4
Reprodução de conteúdo estéreo
O conteúdo estéreo não pode ser renderizado pelo mecanismo de efeitos do espacializador, mesmo que o áudio espacial esteja ativado. Se uma implementação permitir a espacialização de conteúdo estéreo, ela precisará apresentar uma interface personalizada que permita ao usuário ativar ou desativar esse recurso com facilidade. Quando o áudio espacial está ativado, é preciso ser possível fazer a transição entre a reprodução de conteúdo espacializado multicanal e conteúdo estéreo não espacializado sem exigir mudanças nas configurações do usuário, reconexão ou reconfiguração do headset. A transição entre conteúdo de áudio espacial e conteúdo estéreo precisa ocorrer com o mínimo de interrupção no áudio.
Transições e simultaneidade de casos de uso
Lide com casos de uso especiais da seguinte maneira:
- As notificações precisam ser misturadas com o conteúdo de áudio espacial da mesma forma que são com o conteúdo de áudio não espacial.
- Os toques precisam poder ser misturados com conteúdo de áudio espacial. No entanto, por padrão, o mecanismo de seleção de áudio pausa o conteúdo de áudio espacial quando há um toque.
- Ao atender ou fazer uma ligação ou videoconferência, a reprodução de áudio espacial precisa ser pausada. A reprodução de áudio espacial precisa ser retomada com as mesmas configurações quando a chamada terminar. A reconfiguração de um caminho de áudio para alternar do modo de áudio espacial para o modo de conversa precisa acontecer de forma rápida e integrada para não afetar a experiência da chamada.
Renderização em alto-falantes
Não é necessário ter suporte para espacialização de áudio em alto-falantes ou modo transaural.
Diretrizes para implementação do rastreamento da cabeça
Esta seção se concentra no áudio espacial dinâmico, que tem requisitos específicos de headset.
Interface do usuário
Após a implementação e o pareamento do headset compatível com áudio espacial, valide se a interface tem o seguinte comportamento:
Nas configurações do dispositivo Bluetooth, quando a opção Áudio espacial do fone de ouvido está ativada, a opção Rastreamento da cabeça aparece em Áudio espacial:
Figura 2. Configuração de áudio espacial e rastreamento da cabeça.
A configuração de rastreamento da cabeça NÃO fica visível quando o áudio espacial está desativado.
O estado padrão do rastreamento da cabeça após o pareamento inicial do headset é ativado.
O estado selecionado pelo usuário, ativado ou desativado, precisa persistir durante uma reinicialização do smartphone ou o cancelamento e o pareamento do headset.
Comportamento funcional
Relatórios de postura da cabeça
- As informações de postura da cabeça, nas coordenadas x, y e z, enviadas do headset para o dispositivo Android, precisam refletir os movimentos da cabeça do usuário de forma rápida e precisa.
- A transmissão da postura da cabeça pela conexão Bluetooth precisa seguir o protocolo definido pelo HID.
- O fone de ouvido só pode enviar as informações de rastreamento da cabeça para o smartphone Android quando o usuário ativa a opção Rastreamento da cabeça na interface de configurações 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 do fone de ouvido da mudança no som causada por esse movimento. A latência do rastreamento da cabeça não pode exceder 150 ms.
Taxa de relatório de postura da cabeça
Quando o rastreamento da cabeça está ativo, o headset precisa informar a postura da cabeça em uma base periódica recomendada de aproximadamente 20 ms. Para evitar acionar a lógica de detecção de entrada obsoleta no smartphone durante uma instabilidade de transmissão do Bluetooth, o tempo máximo entre duas atualizações não pode exceder 40 ms.
Otimização de energia
Para otimizar a energia, recomendamos que a implementação use os mecanismos de troca 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 do AOSP da estrutura de áudio e da pilha Bluetooth já são compatíveis com os indicadores para controlar a troca de codecs. Se a implementação do OEM usar a HAL de áudio principal para áudio Bluetooth, conhecida como modo de descarga de codec, o OEM precisa garantir que a HAL de áudio transmita esses sinais entre a HAL de áudio e a pilha Bluetooth.
Troca de codec
Quando o áudio espacial dinâmico e o rastreamento da 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 baixa potência, como Advanced Audio Coding (AAC).
Siga estas regras durante a troca de codec:
- Rastreie apenas a atividade nos seguintes fluxos de saída da HAL de áudio:
- Saída dedicada do espacializador
- Fluxos específicos de mídia, como buffer profundo ou reprodução de descarga compactada
Quando todas as transmissões relevantes estiverem inativas e a transmissão do espacializador for iniciada, inicie a transmissão Bluetooth com
isLowLatency
definido comotrue
para especificar um codec de baixa latência.Quando todos os streams relevantes estiverem inativos e um stream de mídia for iniciado, inicie o stream Bluetooth com
isLowLatency
definido comofalse
para especificar um codec de baixa potência.Se um stream de mídia estiver ativo e o stream do espacializador for iniciado, reinicie o stream Bluetooth com
isLowLatency
definido comotrue
.
No lado do headset, ele precisa ser compatível com os decodificadores de baixa latência e baixo consumo de energia e implementar o protocolo padrão de seleção de codec.
Ajuste do modo de latência
O ajuste do modo de latência ocorre quando o codec de baixa latência é selecionado.
Com base na ativação ou desativação do rastreamento da cabeça, o ajuste do modo de latência usa mecanismos disponíveis para reduzir ou aumentar a latência e alcançar o melhor compromisso entre latência, energia e qualidade de áudio. Quando o áudio espacial e o rastreamento da cabeça estão ativados, 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 oferece economia de energia significativa e maior robustez do link de áudio Bluetooth quando apenas o á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 headset Bluetooth.
Consulte Rastreamento da cabeça com LE Audio para ajustes do modo de latência com LE Audio.