Implementação de áudio espacial de alta qualidade e rastreamento da cabeça

O Android 13 introduz o suporte ao áudio espacial oferecendo APIs que permitiam aos desenvolvedores de apps descobrir se a combinação atual de dispositivos do dispositivo, o fone de ouvido conectado e as configurações do usuário permitem a reprodução do conteúdo de áudio multicanal de maneira imersiva.

Os OEMs podem fornecer um efeito de áudio espacializador com suporte para rastreamento da cabeça com o nível de desempenho e latência necessários, usando o novo pipeline de áudio e a integração do framework de sensor. O O protocolo HID especifica como conectar um dispositivo de rastreamento da cabeça por Bluetooth e disponibilizá-lo como um HID com o framework de sensores do Android. Consulte Áudio espacial e rastreamento da cabeça para conferir mais requisitos e validação.

As diretrizes nesta página se aplicam a uma solução de áudio espacial que adota novas APIs de áudio espacial e arquitetura de áudio com um smartphone Android em execução Android 13 e versões mais recentes e fones de ouvido compatíveis com sensor de rastreamento da cabeça.

Diretrizes para a implementação de modos de áudio espacial dinâmico e estático

O áudio espacial estático não exige rastreamento da cabeça, então não é necessária no fone de ouvido. Todos os fones de ouvido com e sem fio podem ter suporte e o áudio espacial estático.

Implementação da API

Os OEMs PRECISAM implementar Spatializer. introduzida no Android 12. A implementação precisa passar nos testes CTS introduzido para a classe Spatializer.

Uma implementação robusta de API garante que os desenvolvedores de apps, principalmente as serviços de streaming, podem ter um comportamento consistente em todo o ecossistema escolha o melhor conteúdo de acordo com os recursos do dispositivo, a renderização atual contexto e escolhas do usuário.

Interface do usuário

Depois de implementar o Spatializer , confirme se a interface tem o seguinte comportamento:

  • Quando o fone de ouvido compatível com áudio espacial estiver pareado, o dispositivo Bluetooth As configurações do fone de ouvido exibem o botão Áudio espacial:

    interface de á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 primeiro pareamento do fone de ouvido é definida como enabled.

  • O estado selecionado pelo usuário, ativado ou desativado, persiste a um smartphone reinicializar ou desparear e parear o fone de ouvido.

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:

  • AAC, canais 5.1
  • PCM bruto, canais 5.1

Para uma melhor experiência do usuário, recomendamos que você ofereça suporte aos seguintes formatos/configurações de canal:

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

Reprodução de conteúdo estéreo

O conteúdo estéreo não pode ser renderizado com o mecanismo de efeito espacial, mesmo se o áudio espacial estiver ativado. Se uma implementação permitir conteúdo estéreo espacialização, ele precisa apresentar uma interface personalizada que permita ao usuário transformar esse recurso ou desativá-los facilmente. Quando o áudio espacial estiver ativado, será possível transição entre a reprodução de conteúdo multicanal espacialmente conteúdo estéreo não espacial sem exigir nenhuma alteração nas configurações do usuário ou reconexão ou reconfiguração do headset. A transição entre o áudio espacial e o conteúdo estéreo devem ocorrer com interrupção mínima do áudio.

Transições de casos de uso e simultaneidade

Gerencie casos de uso especiais da seguinte maneira:

  • As notificações devem ser misturadas ao conteúdo de áudio espacial da mesma forma assim como acontece com conteúdo de áudio não espacial.
  • É preciso permitir a combinação dos toques 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 tem um toque.
  • Ao atender ou fazer uma ligação ou videoconferência, o espaço a reprodução de áudio precisa ser pausada. A reprodução de áudio espacial deve ser retomada com a mesma configurações de áudio espacial quando a ligação é encerrada. Reconfiguração de um caminho de áudio para mudar do modo de áudio espacial para o modo de conversação precisa acontecer rapidamente e perfeitamente sem problemas para não afetar a experiência da ligação.

Renderização em alto-falantes

O suporte à espacialização do áudio em alto-falantes, ou modo transaural, não é obrigatórios.

Diretrizes para a implementação do rastreamento da cabeça

Esta seção se concentra no áudio espacial dinâmico, que tem recursos de e cumprimento de requisitos regulatórios.

Interface do usuário

Após a implementação e o pareamento do fone de ouvido compatível com áudio espacial, valide que a interface tem o seguinte comportamento:

  • Nas configurações do dispositivo Bluetooth, quando a configuração Áudio espacial do fone de ouvido estiver ativado, uma configuração de rastreamento da cabeça aparecerá em Áudio espacial:

    Ht-ui

    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 para o rastreamento da cabeça após o pareamento inicial do fone de ouvido é definida como enabled.

  • O estado selecionado pelo usuário, ativado ou desativado, deve persistir por uma telefone reiniciar ou desparear e parear o headset.

Comportamento funcional

Relatório de postura da cabeça

  • Informações de posição da cabeça, em coordenadas x, y e z, enviadas do fone de ouvido para do dispositivo Android, precisa refletir os movimentos da cabeça do usuário de forma rápida e com mais precisão.
  • Os relatórios de poses da cabeça pelo link Bluetooth precisam seguir o protocolo definido sobre HID.
  • O fone de ouvido precisa enviar as informações de rastreamento da cabeça para o smartphone Android. somente quando o usuário ativa o rastreamento da cabeça na configuração do dispositivo Bluetooth; de ML pela IU.

Desempenho

Latência

A latência de rastreamento da cabeça é definida como o tempo decorrido entre o movimento da cabeça capturada pela unidade de medida de inércia (IMU, na sigla em inglês) aos transdutores dos fones de ouvido detecção da alteração no som causada por esse movimento. Latência de rastreamento da cabeça não pode exceder 150 ms.

Taxa do relatório de posições da cabeça

Quando o rastreamento da cabeça está ativo, o fone de ouvido precisa informar a posição da cabeça em um base periódica recomendada de aproximadamente 20 ms. Para evitar o acionamento de arquivos lógica de detecção de entrada no smartphone durante uma instabilidade na 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 o comutação de codecs Bluetooth e mecanismos de seleção do modo de latência fornecidos pelo HAL de áudio e HAL de áudio Bluetooth do Google Cloud.

As implementações AOSP do framework de áudio e da pilha Bluetooth já oferecer suporte aos sinais 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 descarregamento de codec, a O OEM precisa garantir que a HAL de áudio redirecione esses sinais entre a HAL de áudio e a pilha de Bluetooth.

Troca de codecs

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 vídeos não espaciais conteúdo de áudio, use um codec de baixo consumo de energia, como Codificação de áudio avançada (AAC, na sigla em inglês).

Siga estas regras durante a troca de codecs:

  • Rastreie somente a atividade nos seguintes streams de saída da HAL de áudio:
    • Saída do espacializador dedicado
    • Streams específicos de mídia, como buffer profundo ou descarregamento compactado reprodução
.
  • Quando todos os streams relevantes estiverem inativos e o stream do espacializador for iniciado, inicie o stream Bluetooth com isLowLatency definido como true 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 como false para especificar um codec de baixo consumo de energia.

  • Se um stream de mídia estiver ativo e o stream do espacial for iniciado, reinicie o Stream Bluetooth com isLowLatency definido como true.

No lado do fone de ouvido, o fone de ouvido precisa ser compatível com os atributos de baixa latência e baixo decodificadores e implementam 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 rastreamento da cabeça ativado ou desativado, o ajuste do modo de latência usa disponíveis para reduzir ou aumentar a latência e alcançar os melhores entre latência, potência e qualidade de áudio. Quando o áudio espacial é estiver ativado e o rastreamento da cabeça estiver ativado, o modo de baixa latência será escolhido. Quando áudio espacial ativado e rastreamento da cabeça desativado, o modo de latência livre é selecionada. O ajuste de latência proporciona economia significativa de energia e a robustez do link de áudio Bluetooth quando apenas o áudio espacial estático estiver solicitado. O mecanismo de ajuste de latência mais comum é a redução ou extensão do tamanho do buffer de instabilidade no fone de ouvido Bluetooth.