ChromeOS 対応 - スピーカー マイク仕様 v1.3

バージョン: 1.3
最終更新日: 2024-09-06

Legend

Product Verb 開発アクション
「MUST」 必須のプロダクト要件
「SHOULD」 オプションの推奨事項
"MAY" 推奨

概要

このドキュメントでは、ChromeOS 互換の USB+Bluetooth スピーカーフォンが満たす要件について説明します。この仕様は、WWCB 製品や、Chromebook とともに設計および認定された製品を対象としていません。

USB

セキュリティ

2.4 GHz ワイヤレス ドングル

  • 2.4 GHz ワイヤレス デバイスは、箱に同梱されているレシーバー(ドングル)とのみ自動ペア設定されます。
  • ヘッドセットを別のレシーバーとペア設定したり、新しいヘッドセットを既存のレシーバーとペア設定したりするには、ユーザーが操作(デバイス上またはアプリ経由)を行う必要があります。
  • ヘッドセット/レシーバーのペア設定を変更する必要があるアプリは、拡張機能などを介して ChromeOS で実行する必要があります。アプリは、WebUSB/WebHID を使用するウェブアプリにすることもできます。
  • ペア設定が拡張機能で実装されている場合、拡張機能は USB ポートにのみアクセスできる必要があります。コンテンツ スクリプトが明示的に禁止されています。

ファームウェアとコネクタ

  • ヘッドセットは、正しいオーディオ インターフェース(0x01)記述子を持つオーディオ デバイスとして宣言されなければなりません。
    • 入力ターミナルと出力ターミナルの両方に、対応する記述子が 1 つずつ必要です。
  • ボタンがある場合は、HID として宣言する必要があります。
  • ヘッドセットは、WWCB ファームウェアとコネクタの要件を満たしている必要があります。

ソフトウェア

形式

音声形式をご覧ください。

入力と出力の両方のオーディオ インターフェース記述子を持つデバイスの場合。

  • オーディオ インターフェース記述子の例

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

入力と出力のサンプルレートが異なる場合、デバイスは異なるサンプルレートでの再生とキャプチャを同時にサポートできる必要があります。それ以外の場合、デバイスは AudioStreaming Interface Descriptor -> tSamFreq に同じ値を反映しなければなりません。

  • 48k USB オーディオ出力サンプルレートの例

    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
    
  • 44.1k USB オーディオ入力サンプルレートの例

    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
    

HID コード

  • HID イベントごとに、一度に 1 つのイベントのみを送信できます。
  • ボタンを押すと、正しいイベント コードと対応するイベント コードが受信されるはずです。
    • たとえば、音量を上げます。evtest は音量アップ イベントを 1 つだけ監視でき、コードは KEY_VOLUME_UP でなければなりません。
  • 次の機能を提供するように設計されたインターフェースがある場合、USB 周辺機器は USB.org HID 仕様に従って、対応する HID イベントの送信または受信をサポートする必要があります。
コンシューマーのページ(0x0c)
キー名 HID 使用状況 ID 使用タイプ
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
テレフォニー ページ(0x0b)
キー名 HID 使用状況 ID 使用タイプ
フックスイッチ 0x20 OOC
着信音 0x9e OOC
LED ページ(0x08)
キー名 HID 使用状況 ID 使用タイプ
ミュート 0x09 OOC
オフフック 0x17 OOC
着信音 0x18 OOC

ジャック検出

USB デバイスが USB Audio Class(UAC)をサポートしていない場合、ChromeOS システムトレイに常に出力ノードが表示されます。ただし、USB デバイスが UAC をサポートしている場合、デバイスが挿入されると、システムは 3.5 mm オーディオ ジャックを正しく検出できます。

  • CrOS は 3.5 mm ジャックの所在検知機能を使用しなければなりません
    • 次のいずれかを使用して挿入検出を実行する必要があります。

Bluetooth の一般的な要件

ChromeOS 互換性 - Bluetooth 仕様を参照してください。

オーディオ形式

再生 録画
サンプルレート 16 kHz 以上 16 kHz 以上
形式 S16_LE S16_LE
  • チャンネル番号と構成が正しい必要があります。
  • ヘッドセットがサポートを宣言するすべてのサンプリング レートが正しく動作する必要があります。
    • 測定レートとサンプリング レートの偏差は 0.1% 以下でなければなりません。
    • 測定されたレートの線形回帰の標準誤差は 30 未満でなければなりません。
  • ヘッドセットは、サポートを表明するさまざまなサンプルレートでの再生またはキャプチャをサポートする必要があります。

    たとえば、44.1 kHz 未満の音声を再生しながら、48 kHz 未満の音声を同時にキャプチャします。

    • それ以外の場合は、システム側で防止するために、ChromeOS で特定の構成ファイルを追加する必要があります。

音質

Capture Path - Mute

  • ユーザーが音声デバイスをミュートできるインターフェースがある場合、それは
    • 次の影響を受けない方法でミュート状態を維持します。
      • デバイスを開閉する。
      • 別の入力デバイスに切り替えます。
  • ユーザーがヘッドセットまたは ChromeOS のミュートボタンを押すと、ミュート状態が変化しなければなりません。
  • ミュート状態が変化した場合、ヘッドセットのミュート状態インジケーター(LED など)も変化しなければなりません。

オーディオ レイテンシ

レイテンシ

  • 出力レイテンシ
    • 音声再生は、再生を開始するユーザー アクションから 500 ミリ秒以内に開始する必要があります。
      • デバイス OEM がこの要件を満たしていない場合にエコーが発生しないことを証明できる場合は、免除をリクエストできます。

A/V 同期

  • 音声再生は動画再生と同期する必要があります。音声再生は動画より ≤25 ミリ秒先行するか、動画より ≤95 ミリ秒遅延する可能性があります。

変更履歴

日付 バージョン メモ
2024-09-06 1.3 ChromeOS 対応の仕様を導出。パートナー サイトの初回公開。
2022-09-14 1.2 v1.2 に更新しました。
2022-08-19 1.1 v1.1 に更新しました。
2022-08-18 1.0 関連する WWCB 仕様が作成されました。