Compatibile con ChromeOS - Specifiche altoparlante con microfono v1.3

Versione: 1.3
Ultimo aggiornamento: 06/09/2024

Legend

Product Verb Azione di sviluppo
"MUST" Requisito di prodotto obbligatorio
"SHOULD" Consiglio facoltativo
"MAY" Consigliabili

Panoramica

Questo documento descrive i requisiti soddisfatti da un microfono con altoparlante USB+Bluetooth compatibile con ChromeOS. Questa specifica non è per i prodotti WWCB né per un prodotto progettato e certificato insieme a un Chromebook.

USB

Sicurezza

Dongle wireless a 2,4 GHz

  • Il dispositivo wireless a 2,4 GHz si accoppia automaticamente solo con il ricevitore (dongle) incluso nella confezione.
  • Per accoppiare le cuffie con un altro ricevitore o accoppiare nuove cuffie con un ricevitore esistente, è necessaria un'azione dell'utente (sul dispositivo o tramite un'app).
  • Se un'app è necessaria per modificare l'accoppiamento di cuffie/ricevitore, deve essere eseguita su ChromeOS, ad esempio tramite un'estensione. L'app può anche essere un'app web che utilizza WebUSB/WebHID.
  • Se l'accoppiamento viene implementato tramite un'estensione, questa deve solo avere accesso alle porte USB. Gli script di contenuti sono esplicitamente vietati.

Firmware e connettore

  • Le cuffie devono essere dichiarate come dispositivo audio con un descrittore di interfaccia audio (0x01) corretto.
    • Deve essere presente un descrittore corrispondente per il terminale di input e output.
  • Se ha un pulsante, deve essere dichiarato come HID.
  • Le cuffie devono soddisfare i requisiti di firmware e connettore WWCB.

Software

Formato

Consulta Formato audio.

Per il dispositivo sono presenti sia il descrittore dell'interfaccia audio di input che quello di output.

  • Esempio di descrittore dell'interfaccia audio

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

Se le frequenze di campionamento dell'input e dell'output sono diverse, il dispositivo deve essere in grado di supportare la riproduzione e l'acquisizione a frequenze di campionamento diverse contemporaneamente. In caso contrario, il dispositivo deve riflettere lo stesso valore nel descrittore dell'interfaccia AudioStreaming -> tSamFreq.

  • Esempio di frequenza di campionamento dell'uscita audio USB a 48 kHz

    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
    
  • Esempio di frequenza di campionamento dell'input audio USB a 44,1 kHz

    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
    

Codici HID

  • Per ogni evento HID, può trasmettere un solo evento alla volta.
  • Quando viene premuto il pulsante, devono essere ricevuti il codice evento corretto e il codice evento corrispondente.
    • Ad esempio, aumenta il volume. evtest può osservare un solo evento di aumento del volume e il codice deve essere KEY_VOLUME_UP.
  • Se è presente un'interfaccia progettata per fornire le seguenti funzionalità, la periferica USB deve supportare l'emissione o la ricezione degli eventi HID corrispondenti in base alla specifica HID di USB.org.
Pagina del consumatore (0x0c)
Nome chiave ID di utilizzo HID Tipo di utilizzo
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
Pagina Telefonia (0x0b)
Nome chiave ID di utilizzo HID Tipo di utilizzo
Interruttore di sgancio 0x20 OOC
Ringer 0x9e OOC
Pagina LED (0x08)
Nome chiave ID di utilizzo HID Tipo di utilizzo
Disattiva audio 0x09 OOC
Off-Hook 0x17 OOC
Anello 0x18 OOC

Rilevamento jack

Se un dispositivo USB non supporta la classe audio USB (UAC), mostrerà sempre un nodo di output nella barra di sistema di ChromeOS. Tuttavia, se il dispositivo USB supporta UAC, il sistema sarà in grado di rilevare correttamente un jack audio da 3,5 mm quando il dispositivo è inserito.

  • CrOS Must use presence detection for 3.5mm jacks
    • Deve eseguire il rilevamento dell'inserimento tramite uno dei seguenti metodi:

Requisiti Bluetooth generali

Consulta ChromeOS Compatible - Bluetooth Specification.

Formato audio

Riproduzione Registrazione
Frequenza di campionamento ≥ 16 kHz ≥ 16 kHz
Formato S16_LE S16_LE
  • Il numero e la configurazione del canale devono essere corretti.
  • Tutte le frequenze di campionamento dichiarate supportate dalle cuffie devono funzionare correttamente.
    • La deviazione tra la frequenza misurata e la frequenza di campionamento deve essere ≤ 0,1% .
    • L'errore standard per la regressione lineare della velocità misurata deve essere < 30.
  • Le cuffie devono supportare la riproduzione o l'acquisizione a diverse frequenze di campionamento che dichiarano di supportare.

    Ad esempio, riproduci l'audio a una frequenza inferiore a 44,1 kHz, ma acquisisci la voce a una frequenza inferiore a 48 kHz contemporaneamente.

    • In caso contrario, ChromeOS richiede l'aggiunta di un file di configurazione specifico per impedirlo a livello di sistema.

Qualità audio

Acquisizione percorso - Disattiva audio

  • Se esiste un'interfaccia per consentire agli utenti di disattivare l'audio del dispositivo, questa deve
    • Mantenere lo stato di disattivazione dell'audio in modo che non sia interessato da:
      • Apertura e chiusura del dispositivo.
      • Passaggio a un altro dispositivo di input.
  • Se l'utente preme il pulsante Muto sulle cuffie o su ChromeOS, lo stato di disattivazione dell'audio deve cambiare.
  • Se lo stato di disattivazione audio cambia, l'indicatore dello stato di disattivazione audio (ad es. il LED) delle cuffie deve cambiare.

Latenza audio

Latenza

  • Latenza di output
    • La riproduzione audio deve iniziare ≤500 ms dopo un'azione dell'utente che avvia la riproduzione.
      • Può richiedere una deroga se l'OEM del dispositivo può dimostrare che non viene introdotto eco quando non soddisfa questo requisito.

Sincronizzazione A/V

  • La riproduzione audio deve essere sincronizzata con la riproduzione video. La riproduzione audio può anticipare il video di ≤25 ms o ritardare il video di ≤95 ms.

Cronologia delle revisioni

Data Versione Note
2024-09-06 1.3 Specifiche compatibili con ChromeOS derivate. Pubblicazione iniziale del sito partner.
2022-09-14 1,2 Aggiornato alla versione 1.2.
2022-08-19 1.1 Aggiornato alla versione 1.1.
2022-08-18 1,0 È stata creata la specifica WWCB correlata.