Compatível com ChromeOS: especificação do alto-falante com microfone v1.3

Versão: 1.3
Última atualização: 06/09/2024

Legenda

Verbo do produto Ação de desenvolvimento
"MUST" Requisitos obrigatórios do produto
"DEVE" Recomendação opcional
"MAIO" Opcional

Visão geral

Este documento descreve os requisitos de um dispositivo USB + Bluetooth compatível com ChromeOS alto-falante e microfone atendem. Esta especificação não se destina a produtos WWCB nem a projetado e certificado com um Chromebook.

USB

Segurança

Dongle sem fio de 2,4 GHz

  • O dispositivo sem fio de 2,4 GHz só é pareado automaticamente com o receptor (dongle) que vem com a caixa.
  • É necessária uma ação do usuário (no dispositivo ou por meio de um app) para parear o fone de ouvido com outro receptor ou parear o novo fone de ouvido com o receptor existente.
  • Se um app for necessário para alterar o pareamento de fone de ouvido/receptor, ele precisará ser executado no ChromeOS, por exemplo, por uma extensão. O aplicativo também pode ser um aplicativo da web usando WebUSB/WebHID.
  • Se o pareamento for implementado por meio de uma extensão, a extensão poderá apenas tenham acesso a portas USB. Scripts de conteúdo são explicitamente proibidos.

Firmware e conector

  • O fone de ouvido precisa ser declarado como um dispositivo de áudio com uma interface de áudio correta (0x01).
    • É preciso que haja um descritor correspondente para entrada e saída terminal.
      • É recomendável informar o tipo de terminal da classe de áudio USB (UAC, na sigla em inglês)
  • Se tiver algum botão, ele precisa ser declarado como um HID.
  • O fone de ouvido deve atender às normas do firmware e conector do WWCB .

Software

Formato

Consulte Formato de áudio.

O dispositivo tem descritor de interface de áudio de entrada e saída.

  • Exemplo de descritor de interface de áudio

    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              0
    

Se as taxas de amostragem de entrada e saída forem diferentes, o dispositivo deverá ser são compatíveis com reprodução e captura em diferentes taxas de amostragem ao mesmo tempo. Caso contrário, o dispositivo precisa refletir o mesmo valor no Descriptor de interface de streaming de áudio -> tSamFreq.

  • Exemplo de taxa de amostragem da saída de áudio USB de 48 K

    AudioStreaming Interface Descriptor:
      bLength                11
      bDescriptorType        36
      bDescriptorSubtype      2 (FORMAT_TYPE)
      bFormatType             1 (FORMAT_TYPE_I)
      bNrChannels             2
      bSubframeSize           2
      bBitResolution         16
      bSamFreqType            1 Discrete
      tSamFreq[ 0]        48000
    Endpoint Descriptor:
      bLength                 9
      bDescriptorType         5
      bEndpointAddress     0x02  EP 2 OUT(Output)
      bmAttributes            9
        Transfer Type            Isochronous
        Synch Type               Adaptive
        Usage Type               Data
    
  • Exemplo de taxa de amostragem da entrada de áudio USB de 44,1 K

    AudioStreaming Interface Descriptor:
      bLength                11
      bDescriptorType        36
      bDescriptorSubtype      2 (FORMAT_TYPE)
      bFormatType             1 (FORMAT_TYPE_I)
      bNrChannels             2
      bSubframeSize           2
      bBitResolution         16
      bSamFreqType            1 Discrete
      tSamFreq[ 0]        44100
    Endpoint Descriptor:
      bLength                 9
      bDescriptorType         5
      bEndpointAddress     0x81  EP 1 In(Input)
      bmAttributes            9
        Transfer Type            Isochronous
        Synch Type               Adaptive
        Usage Type               Data
    

Códigos HID

  • Para cada evento HID, só é possível transmitir um evento por vez.
  • O código de evento correto e o código de evento correspondente precisam ser recebidos quando o botão é pressionado.
    • Por exemplo, aumentar o volume. evtest só podem observar um evento de aumento de volume, e o código precisa ser KEY_VOLUME_UP
  • Se houver alguma interface projetada para fornecer as seguintes funcionalidades, os O periférico USB precisa ser compatível com a emissão ou o recebimento do HID correspondente eventos de acordo com o HID do USB.org especificação.
Página do consumidor (0x0c)
Nome da chave ID de uso de HID Tipo de uso
KEY_PLAY 0x0b0 OOC
KEY_PAUSE 0x0b1 OOC
KEY_NEXTSONG 0x0b5 OSC
KEY_PREVIOUSSONG 0x0b6 OSC
KEY_STOPCD 0x0b7 OSC
KEY_PLAYPAUSE 0x0cd OSC
KEY_PREVIOUSSONG 0x0b6 OSC
KEY_MUTE 0x0e2 OOC
KEY_VOLUMEUP 0x0e9 RTC
KEY_VOLUMEDOWN 0x0ea RTC
Página de telefonia (0x0b)
Nome da chave ID de uso de HID Tipo de uso
Interruptor de gancho 0x20 OOC
Campainha 0x9e OOC
Página de LED (0x08)
Nome da chave ID de uso de HID Tipo de uso
Desativar som 0x09 OOC
Desconectado 0x17 OOC
Tocar 0x18 OOC

Detecção de Jack

Se um dispositivo USB não for compatível com a classe de áudio USB (UAC), ele sempre mostrará um de saída na bandeja do sistema ChromeOS. No entanto, se o dispositivo USB oferecer suporte ao UAC, o sistema poderá detectar corretamente uma entrada de áudio de 3,5 mm quando o dispositivo for inserido.

  • O CrOS precisa usar a detecção de presença para entradas de 3,5 mm
    • É necessário executar a detecção de inserção por meio de uma das seguintes opções:

Requisitos gerais do Bluetooth

Consulte Compatibilidade com o ChromeOS: especificação Bluetooth.

Formato de áudio

Reprodução Gravação
Taxa de amostragem ≥ 16 kHz ≥ 16 kHz
Formato S16_LE S16_LE
  • O número e a configuração do canal precisam estar corretos.
  • Todas as taxas de amostragem que o fone de ouvido declara com suporte precisam funcionar corretamente.
    • O desvio entre a taxa medida e a taxa de amostragem precisa ser ≤ 0,1%.
    • O erro padrão para a regressão linear da taxa medida precisa ser < 30.
  • O fone de ouvido precisa oferecer suporte à reprodução ou captura com diferentes taxas de amostragem.

    Por exemplo, reproduzir áudio abaixo de 44,1 kHz, mas capturar voz abaixo de 48 kHz. ao mesmo tempo.

    • Caso contrário, o ChromeOS precisará adicionar um arquivo de configuração específico ao impedir isso no sistema.

Qualidade do áudio

Caminho de captura: Ignorar

  • Se houver alguma interface para os usuários silenciarem o dispositivo de áudio, ela deve
    • Mantenha o estado de silêncio de uma forma que não seja afetada por:
      • Abrindo e fechando o dispositivo.
      • Alternando para outro dispositivo de entrada.
  • Se o usuário pressionar o botão de silenciar no headset ou no ChromeOS, o estado de silenciamento vai mudar.
  • Se o estado de silêncio mudar, o indicador de estado de silêncio (por exemplo, LED) no headset também precisa mudar.

Latência de áudio

Latência

  • Latência de saída
    • A reprodução de áudio precisa começar em ≤500 ms após uma ação do usuário que inicie a reprodução.
      • Pode solicitar uma renúncia se o OEM do dispositivo puder provar que não há eco quando falha nesse requisito.

Sincronização A/V

  • A reprodução do áudio deve ser sincronizada com a reprodução do vídeo. Reprodução de áudio pode conduzir o vídeo em ≤25 ms ou reduzir o vídeo em ≤95 ms.

Histórico de revisões

Data Versão Observações
2024-09-06 1.3 Especificação compatível com o ChromeOS derivada. Publicação inicial do site do parceiro.
2022-09-14 1.2 Atualizado para a v1.2.
2022-08-19 1.1 Atualização para a v1.1.
2022-08-18 1,0 A especificação do WWCB relacionada foi criada.