Bluetooth Low Energy オーディオ

Bluetooth Low Energy Audio(LEA)により、バッテリー寿命を損なうことなくハイファイ音声を受信し、さまざまなユースケースをシームレスに切り替えることができます。Android 13(API レベル 33)には、LEA のサポートが組み込まれています。

LEA ソースデバイスのマーケット シェアが拡大するまでは、ほとんどの LEA ヘッドセットがデュアルモードになります。ユーザーは、デュアルモード ヘッドセットで両方のトランスポートをペア設定してセットアップできる必要があります。

ユースケース

LEA は、次のようなユースケースで統合できます。

  • 音声の共有: 複数の音声ストリームを 1 つ以上の音声シンク デバイスに同時に共有できます。ソースデバイスと接続済みデバイス間でオーディオが同期されます。

  • 音声のブロードキャスト: ユーザーは、友だちや家族に音声をブロードキャストできるほか、情報発信、エンターテイメント、ユーザー補助のための公開ブロードキャストに接続することもできます。

  • LC3 オーディオ コーデックのサポート: これはデフォルトのオーディオ コーデックであり、A2DP(メディア)で使用される SBC コーデックと、HFP(音声)で使用される mSBC コーデックに代わるものです。LC3 は、より効率的で再構成可能であり、品質も優れています。

  • 音声サンプリングの改善: ヘッドセットでマイクを使用する際に、高音質の出力を維持できるようになりました。Bluetooth マイクを使用すると、Bluetooth クラシックの音質が低下します。BLE Audio では、入力と出力のサンプリングは 32 kHz に達します。

  • ステレオ マイク: ヒアラブルは、ステレオ マイクで音声を録音し、空間オーディオを強化できます。

  • Hearing Aid Profile(HAP)のサポート: HAP は、従来の ASHA プロトコルよりもアクセシビリティと使いやすさが向上しています。補聴器を使用して電話や VoIP アプリケーションを利用できます。

  • 拡張属性プロトコル(EATT)のサポート: EATT を使用すると、デベロッパーはペア設定されたヒアラブルに複数のコマンドを一度に送信できます。

重要なシナリオ

ユースケースには、主に次の 4 つのカテゴリがあります。

  1. 会話型: 低レイテンシの通信ルーティングを必要とするダイヤル アプリや VoIP アプリは、高品質の音声とバッテリー使用量の削減を実現します。

  2. ゲーム: マイクと高音質再生を同時に使用できるため、ゲームで高品質の音声をヒアラブルにストリーミングできます。ゲームアプリは、ゲームが Bluetooth マイクを使用可能な状態にすると、BLE 音声入力にアクセスできます。その後、プレーヤーがピア プレーヤーとのライブ会話を開始すると、ゲームアプリは遅延なくマイクデータを使用できます。

  3. メディア: メディア アプリケーションは、オーディオ マネージャーの優先デバイスを設定できます。ユーザーは、システムの設定で優先デバイスを変更することで、この設定をオーバーライドできます。

  4. ユーザー補助: BLE Audio をサポートする補聴器でマイクを使用できるようになりました。これにより、通話中に補聴器を継続して使用できます。

BLE オーディオの API とメソッド

BLE Audio hearables をサポートするには、次の API とメソッドが必要です。

AudioManager

  • setCommunicationDevice() は、音声通話やビデオ通話などのコミュニケーション ユースケースで使用するオーディオ機器を選択します。このメソッドは、音声チャット アプリケーションやビデオチャット アプリケーションで、プラットフォームによってデフォルトで選択されたものとは異なるオーディオ機器を選択するために使用できます。この API は、非推奨の API startBluetoothSco()stopBluetoothSco()setSpeakerphoneOn() に代わるものです。
  • clearCommunicationDevice() は、アプリが通話またはセッションを終了した後に呼び出され、ユーザーがさまざまなアプリ間を移動する際に優れたエクスペリエンスを確保するのに役立ちます。

BluetoothProfile

  • BluetoothLeAudio は、プロキシ オブジェクトを介して Bluetooth サービスを制御します。

Telecom InCallService

Telecom CallControl

オーディオ デバイス情報

  • AudioDeviceInfo.TYPE_BLE_HEADSET は、オーディオ機器タイプを LEA デバイスとして記述します。ヒアラブル デバイスが LEA デバイスかどうかを識別するために使用されます。

音声レコーダー

  • setPreferredDevice() は、使用する音声ルーティングの優先デバイスを設定します。ユーザーはシステム設定でこの設定をオーバーライドできます。

Bluetooth アダプター

  • isLeAudioSupported(): デバイスのハードウェアが LE Audio をサポートしているかどうかを示す @BluetoothStatusCodes 定数(FEATURE_SUPPORTEDFEATURE_NOT_SUPPORTED、またはエラーコード)を返します。
  • isLeAudioBroadcastSourceSupported(): デバイスのハードウェアが LE Audio ブロードキャスト ソースをサポートしているかどうかを示す @BluetoothStatusCodes 定数(FEATURE_SUPPORTEDFEATURE_NOT_SUPPORTED、またはエラーコード)を返します。

ユースケースに基づくガイド

以下に、特定のユースケースに基づく LEA の実装に関するガイドラインを示します。

音声通信アプリケーション

音声通信アプリケーションは、状態を自己管理するか、音声ルーティングと状態ロジックを自動的に行う Telecom API を使用して、音声ルーティングとデバイスの状態を管理できます。

この 2 つのソリューションにより、オーディオ ルーティングをすばやく簡単に制御し、Bluetooth デバイスを切り替えることができます。詳しくは、通信事業者が管理する通話に関するガイドをご覧ください。

音声録音アプリ

  • メディア レコーダー: メディア レコーダーを使用して音声を録音する際に、Bluetooth ウェアラブルが LEA をサポートしている場合はステレオで録音できるようになりました。音声録音ガイドをご覧ください。

LE Audio(LEA)ヘッドセットの推奨事項

LEA ヘッドセットのリリースが進むにつれて、実際のテストでユーザー エクスペリエンスを低下させる問題が発見されました。この仕様では、これらの問題のすべてを網羅していません。次の表に、Android ユーザーのエンドツーエンドのエクスペリエンスを向上させるために LEA ヘッドセット メーカーが従うべき推奨事項の一覧を示します。

説明 コンテキスト
デュアルモード ヘッドセットの Cross Transport Key Derivation(CTKD)をサポートします。
  • Classic-to-LE ペアリングと LE-to-Classic ペアリングの両方でキー導出をサポート。
LEA ソースデバイスのマーケット シェアが拡大するまで、ほとんどの新しい LEA ヘッドセットはデュアルモードになります。ユーザーがデュアルモード ヘッドセットをシームレスにペア設定し、両方のトランスポートを設定できるようにすることが重要です。これは Google ファスト ペアリングでも重要です。

LEA ヘッドセットをソースデバイスに確実に再接続したい場合は、ターゲット アナウンス(TA)をサポートします。

LE オーディオ イヤホンは、TA を使用して、セントラル デバイスからの着信接続をリクエストする必要があります。

今後の BT SIG に追加されます。

電話またはヘッドセットのいずれかで接続を開始できる BR/EDR のページング モデルとは異なり、LEA の接続は中央デバイスで開始する必要があります。現在、多くのヘッドセットは TA を使用していません。つまり、中央デバイスは、許可リストに追加しないと周辺機器に再接続できない可能性があります。ただし、許可リストの回避策により、ヘッドセットが別のセントラル デバイスに接続できなくなる可能性があります。そのため、マルチポイント接続を中断する可能性のある回避策なしで、中央デバイスが確実に再接続できるように、LEA ヘッドセットが TA を適切にサポートすることが重要です。
デュアルモード イヤホンの検出を最適化
  • プライマリ イヤホン - BR/EDR コンポーネントは、そのパブリック アドレスを使用してアドバタイズし、EIR を通じて利用可能な名前でインクワイアとページスキャンを有効にし、デバイス クラス(CoD)のメジャー サービス クラスで LE オーディオ ビット 14 を 1 に設定すべきです。
  • プライマリ イヤホン - LE コンポーネント: プライマリ イヤホンは、BR/EDR コンポーネントと同じパブリック アドレスと BR/EDR コンポーネントと同じ完全なローカル名を使用して、接続可能で検出可能な(制限付きまたは一般)アドバタイズメントを実行し、外観カテゴリをリモート デバイスのタイプに一致する適切な外観カテゴリに設定する必要があります。これは、セントラル デバイスがこの情報を使用して UI と音声ルーティング ポリシーを調整することを想定しているためです。
  • セカンダリ イヤホン - LE のみ: セカンダリ イヤホンは、リモート デバイスのタイプに一致する適切な外観カテゴリとして設定された外観カテゴリで、接続可能で検出不可能なアドバタイズを実行すべきです。これは、セントラル デバイスがこの情報を使用して UI とオーディオ ルーティング ポリシーを調整することを想定しています。

    イヤホンは、CSIP グループからリーダーを動的に選択してプライマリ デバイスにする必要があります。イヤホンがデュアルモードの場合、ペア設定後に LE と Classic の両方の機能が正しく動作するように、プライマリ デバイスもデュアルモードである必要があります。

これにより、デュアルモード LEA イヤホンが Bluetooth 設定に重複して表示されるのを防ぎます。重複して表示されると、ユーザーが混乱し、LEA ペアリング エクスペリエンスが損なわれる可能性があります。

動的リーダー選出は、増分ペア設定されるデュアルモード デバイスで特に重要です。たとえば、初回ペア設定時にイヤホンが 1 つしか利用できない場合は、デュアルモード デバイスとして認識されるようにします。ユーザーが後で 2 つ目のイヤホンとペア設定する場合、LE コンポーネントとのペア設定のみが必要で、CSIP によって Android でグループ化されます。

ペア設定中は、BR/EDR コンポーネントがすでにデバイスの公開アドレスを付近のデバイスに公開しているため、ID アドレスが推奨されます。

拡張属性プロトコル(EATT)をサポートします。 ペア設定と接続のレイテンシが短縮されます。
堅牢な GATT キャッシュ保存をサポートします。 接続のレイテンシが短縮されます(特に TWS イヤホン)。
接続のサブレートをサポート。 パケット スケジューリングの柔軟性が向上し、バッテリーを節約できる可能性があります。
再生とキャプチャの両方の前処理と後処理で、信号処理パイプラインが 16、24、32、48 kHz で動作し、より高い周波数をサポートできるようにしてください。 LEA 通話または VoIP キャプチャ パスとメディア再生でサポートされる高いサンプリング レートを活用します。
LE Power Control をサポート 電力管理の改善

コンテキスト タイプのサポート

説明 コンテキスト
ヘッドセットが特定のコンテキスト タイプを明示的にサポートしていない場合を除き、割り当て番号 6.12.3 で指定されているすべてのコンテキスト タイプを使用します。 たとえば、コンテキスト タイプ「Game」がサポートされていない場合、Android はゲーム音を送信します。特に、「Unspecified」コンテキスト タイプは「任意のコンテキスト タイプ」を意味するものではなく、サポートされていないコンテキスト タイプをカバーするものでもないことに注意してください。

セントラル デバイスが周辺機器の ASCS とやり取りする場合、周辺機器はセントラル デバイスの MCS と TBS に接続する必要があります。

セントラル デバイスは、A2DP または HFP の使用にフォールバックする可能性があるため、ストリーミング ルートとして LE Audio を常に使用するとは限りません。ペリフェラル デバイスは、セントラル デバイスがストリーミングに LE Audio を使用するかどうかを示すものとして ASCS のインタラクションを使用できます。

ASCS のインタラクションの例としては、読み取り、書き込み、通知の登録などがあります。