Auracastの裏側

みなさん、はじめまして。STマイクロエレクトロニクス株式会社でSTM32無線SoCのFAEマネージャをしております、石塚です。メーカーエンジニアの無線化を支援するため、ムセンコネクトの無線化講座で解説記事を掲載させていただくことになりました。どうぞよろしくお願いいたします。
早速ですが、最近よく聞くAuracast™って何だろうと思われている方、すでにムセンコネクトの様々な記事やビデオを見て、概要はわかっているはずですね。ですが、Bluetoothはなんとなくわかっているけども、もう少し踏み込んで、どのようにAuracast™を実現しているのかを知りたいという技術志向の高い皆様に、今回はAuracast™の裏側を解説します。
できるだけ容易に、けれども専門用語も押さえつつ、「Auracast™理解した!」を目指します。
解説を始める前に、簡単に会社の紹介と、プロフィールを。
STマイクロエレクトロニクスについて

STは、50,000名以上の従業員を擁し、包括的なサプライ・チェーンと最先端の製造設備を有する世界的な総合半導体メーカーです。
約20万社を超えるお客様や数千社のパートナー企業と協力しながら、お客様のビジネス創出や持続可能な社会をサポートする半導体ソリューションの開発ならびにエコシステムの構築に取り組んでいます。
STのテクノロジーは、スマート・モビリティ、電力エネルギー管理の効率化、クラウド接続型自律デバイスの普及を可能にします。
STは、2027年までのカーボン・ニュートラル(スコープ1、2、および3の一部)の実現を目標にしています。
さらに詳しい情報はSTのウェブサイト(http://www.st.com)をご覧ください。
筆者プロフィール
幼稚園で将来の夢は「えんじにあ」と宣言し、ぶれることなく50年弱エンジニア。
小学生の時にZ80、中学/高校でH8、大学ではDSPをおもちゃに、社会人になってからは計測器メーカーで燃料電池測定装置の設計製造、DSP FAE、半導体・IoTソリューションを提供する商社でのFAEを経て、2019年よりSTにて、STM32のFAE。
自宅での自作無線センサーのネットワークを構築する変態ぶりが会社の目に留まり、近年STM32の無線SoCである、STM32Wシリーズのサポートを担当。
Auracast™を例えるならば
Auracast™はすでにブログなどで紹介されているので、ここでは別の切り口で例えてみます。
ずばり、TVやラジオの仕組みそのもの!
TVやラジオは見たい、聞きたいときに電源を入れれば、様々な放送局の中から1つを選択して見聞きすることができますが、Auracast™も周囲に飛び交うAuracast™無線放送局から一つを選んで、音声や音楽を聞くことができます。
Auracast™は、BLEを使った無線オーディオ同報配信システムそのものです。
様々な音声を同時にお届け
TVでは、放送局からメインのオーディオとは別の内容の副音声や、他の言語で同じ内容を同時送信する仕組みがあります。例えば、スポーツ中継の解説者の裏側で、元選手などが面白く試合を解説する副音声や、映画の多言語吹替の同時送信などです。
Auracast™も同様に、1つの放送局に複数のオーディオを束ねることが可能で、ユーザはその中から1つ(モノラル)、あるいは2つ(ステレオ)、場合によってはマルチチャネルオーディオとして聞くことが可能です。
Auracast™データ階層
ここで、Auracast™のデータの階層をご説明します。
Auracast™データは3階層からなっており、下からLevel 3 – BIS、Level 2 – BISサブグループ、Level 1 – BIGとなります。

- BISは先のTVやラジオの例での、オーディオデータそのものです。
その他、BIS番号、そのBISをイヤフォンの左チャネル、あるいは右チャネルなど、どのオーディオ出力チャネルで再生するかの情報を含んでいます。 - BISサブグループは最低1つ存在し、そのサブグループに含まれるBISの数や、番組の説明、オーディオの言語などの属性情報(メタデータ)を格納しています。
また、オーディオ圧縮に使用したコーデックのタイプや設定などが含まれており、Auracast™レシーバはその情報を基にデコードして再生します。 - BIG(Broadcast Isochrones Group)はAuracast™の放送局単位を表しており、Auracast™トランスミッタから送信されるデータには、最低1つのBIGが含まれています。
BIGには、プレゼンテーションディレイ(後ほど解説)と、BISサブグループ数の情報が含まれています。
同時に送信できるけども…
Auracast™トランスミッタから送信されるデータの量には限りがあり、最大データレートは1.4Mbpsです。
この中に多くのBIG/BISを含めることは難しく、この記事を執筆時点において、多くのAuracast™トランスミッタが対応するBIGは基本1つです。また、オーディオの品質にもよりますが、16kHz/16ビットの音声とした場合、最大4つのBISが限界です。
ペアリングやコネクトを必要としないAuracast™
通常、Bluetooth経由で音楽を聴く場合、明示的にスマフォなどのオーディオトランスミッタからレシーバのヘッドフォンやイヤフォンに対して、ペアリングやコネクトを行う必要があります。
一方で、Auracast™トランスミッタは、PA(Periodic Advertising)と呼ばれるアドバタイジング(同報送信)の仕組みを使ってデータを送信しているので、レシーバ側でAuracast™のデータを受信するために、ペアリングやコネクトを必要としないのです。TVやラジオと同じですね。
PAは、通常のアドバタイズ(プライマリーアドバタイジング)される情報を基に、追加の拡張アドバタイジングデータをタイミングよく受け取る仕組みです。アドバタイズされるデータには、拡張アドバタイジングデータが送信される無線送信チャネル番号、そしてタイミング情報が含まれています。
なぜならば、Bluetoothのプライマリアドバタイジングでは、既知の無線送信チャネル番号である、37ch、38ch、39chの順番に送信されますが、拡張アドバタイジングデータは、チャネルホッピングされる0~36chで送信されるため、受信するためにはどの無線送信チャネルで、かつ、どのタイミングで送信されるかを事前に知っておく必要があるのです。
Auracast™トランスミッタの探索と情報の取得

Auracast™トランスミッタはまず、3つのアドバタイジングデータを順番に送ります。
- ADV_EXT_IND
- AUX_ADV_IND
- AUX_SYNC_IND
Auracast™レシーバはまず、 ADV_EXT_INDをアドバタイズしているBluetoothデバイスをスキャンして探します。ADV_EXT_INDには、 PAの仕組みで送信していること、AUX_ADV_INDが送信される無線送信チャネル番号とタイミング情報が含まれています。
次に、ADV_EXT_INDで示された無線送信チャネルでスキャンすると、 AUX_ADV_IND を取得できます。AUX_ADV_INDには、Bluetoothデバイス名、Auracast™放送局名、Auracast™で使われる各種のサービス情報、次に必要となるAUX_SYNC_INDの無線送信チャネル番号とSyncInfoが含まれています。このAUX_ADV_IND によってAuracast™データであることが判明します。
続いて、AUX_ADV_INDで示された無線送信チャネルをスキャンすると、AUX_SYNC_INDを取得できます。AUX_SYNC_INDは通常10msec(もしくは7.5msec)ごとに送信され、残りのAuracast™の放送局に関する情報(BIGInfo)が含まれています。また、BISの無線送信チャネル番号とタイミング情報が含まれています。
同一エリア内に複数のAuracast™トランスミッタがある場合、 Auracast™レシーバはそれぞれのAuracast™トランスミッタから送信される先の情報を取得し、内部でデータベース化します。これにより、複数のAuracast™放送局から目的のものを選局することが可能になります。
BISの取得と低消費電力化
ユーザが1つのAuracast™放送局を選択すると、最新のBIGInfoに示されたタイミング情報を基に、 AUX_SYNC_INDによって示された無線送信チャネルでスキャンし、BISを取得します。
Auracast™レシーバは、SyncInfoやBIGInfoに含まれる正確な送信タイミング情報を使い、適切なタイミングで受信回路を動かしてスキャンを行うことで、無駄な受信時間を減らし、低消費電力化を実現しています。
複数BISを同期再生させる仕組み
続いて、1つのBIGに、2つのBISがステレオオーディオデータとして含まれていて、Auracast™対応TWSイヤフォンでステレオ再生するユースケースを基に、同期再生の仕組みを説明します。

図の左側、LC3 24kHzとあるのは、音声圧縮コーデックのLC3エンコーダーを示しています。LchとRchのそれぞれでエンコードを行い、2つのBISを生成し、Auracast™トランスミッタによって、1つのBIGにして送信しています。図の右側は、送信されるAuracast™のデータ構造になります。
2つのBISは時間差をもってAuracast™レシーバに到達しますが、BISデータ到達直後にTWSイヤフォンの左右各々のAuracast™レシーバ部がBISをデコードして再生してしまうと、左右間のオーディオタイミングにずれが発生します。

なので、Auracast™レシーバは、Auracast™トランスミッタから提供されるBIGのデータに含まれているプレゼンテーションディレイの値を使って、再生タイミングの同期を行います。
再生タイミングは、BIGに含まれる最後のBISの送信完了タイミングからプレゼンテーションディレイ時間後になります。
Auracast™オーディオシステム遅延
従来のBluetooth Classicを使ったイヤフォンで、通称音ゲーと呼ばれるゲームの音楽のタイミングに合わせてプレイするゲームをすると、映像と音が一致しないことがあります。動画を見たときも、映像とセリフのタイミングが一致しないということがあります。これが、俗にいう「(音の)遅延が大きい」ということです。Bluetooth SIGの定めるBluetoothオーディオ仕様で実現したシステムの場合、数百msecの遅延が発生することもざらです。
一方、Auracast™の仕事をしていると皆さんよく質問されるのが、「Auracast™は低遅延だって聞くけども、遅延って、どれくらいなんですか?」という点です。これに関しては、音質以上に気にされる方が多いようです。
遅延の要素は大きく、トランスミッタ側とレシーバ側に分かれ、合わせたものをシステム遅延とします。

Auracast™トランスミッタは10msec(あるいは7.5msec)間隔で、BIGの送信を行っています。
図の例は、先ほどの同期再生させる仕組みのTWSイヤフォンにおける、Auracast™トランスミッタへのオーディオデータの入力(Capture)から、Auracast™レシーバから最初のオーディオデータが出力される(Rendering Point)までの様子を、横軸=時間軸として表したものです。
最初に、Auracast™トランスミッタ側です。図の上側の部分です。
- Capture
10msec(もしくは7.5msec)分のオーディオデータを入力オーディオバッファに蓄える時間 - LC3 Encoding
LC3エンコーダーによって圧縮する時間(例では合計約5msec)
Auracast™が実装されるBLE SoCの処理性能に依存し、10msec(もしくは7.5msec)以内に完了させることができた場合、もっとも少ない遅延となる - Transport Delay
Transmission + Re-Transmission (例では約3.3msec)- Transmission
無線によって送信される時間 - Re-Transmission
高い信頼性が求められる場合、複数回同じBISsを送信する時間
- Transmission
次にAuracast™レシーバ側です。図の点線で囲まれている部分です。
- Presentation Delay
最後のBISが送信完了するタイミングから同期再生に必要な遅延時間(+40msec、もしくは+10、+20msec)
Transport Delay+Presentation Delayの合計時間内に、以下の処理を完了する必要がある- LC3 Decoding (通常Encodingが必要とする時間より短い)
- その他必要な処理(PLCなど)
- Audio Processing
デコードされたオーディオデータに対するイコライザ処理などのポストプロセッシング - Rendering
出力オーディオバッファにオーディオデータをコピー
与えられた時間内に処理を完了するために、 Auracast™を実装するBLE SoCは、自身の処理能力に合わせて処理内容を調整する必要があります。
これら1~4の時間例を足し合わせると、およそ、28.3~58.3msecになります。
Auracast™のセキュリティ
基本的に、Auracast™のシステムは同報送信を目的としており、多数のユーザに同期したオーディオ再生を提供するソリューションです。ですが、送信する内容によっては選局できないようにしつつ暗号化をして試聴できるユーザに制限をかけたい場合があります。
この場合、Auracast™ではAuracast™放送局固有のBroadcast_Codeを入力しないと再生することができない仕組みを設けています。
今回この仕組みについては説明をいたしませんが、データそのものが暗号化されるため、Broadcast_Codeがなければ試聴することは不可能になっています。
STM32WBA 2.4GHz 無線SoCによるAuracast™
STは、使用する無線周波数帯やテクノロジーに合わせたSTM32ワイヤレスSoCシリーズを複数提供していますが、Auracast™に対応しているSoCは、STM32WBAシリーズになります。
STM32WBAシリーズは、最大100MHzで動作するARM Cortex-M33 コアを中心に、最大2MBのデュアルバンクFlashメモリと512KBのRAMを搭載し、Bluetooth LE 5.4の規格に対応した無線SoCです。

STM32WBA Auracast™開発エコシステム
また、STは、STM32WBAでAuracast™ソリューションを実現するために、評価ボードと、無償のSTM32WBA Cubeソフトウェア開発エコシステムを提供しています。
- STM32WBA55G-DK1評価ボード
オーディオ入出力や、OLEDディスプレイ、ジョイスティックなどを装備 - STM32WBA CubeWBAソフトウェアパッケージ
Auracast™トランスミッタとレシーバサンプルプロジェクトファイル、他を提供 - STM32 CubeMX / CubeIDE
STM32WBAプロジェクトファイルを自由に生成、編集、ビルド、オンボードデバッグ可能な、統合開発環境



STM32WBAを使ったAuracast™ユースケース
多くのAuracast™トランスミッタは、2BISのものが多く、より高音質のステレオ音楽を複数の人と共有して聞くことを目的としています。
STでは、4つの16kHz 16ビットオーディオデータを入力し、単一のSTM32WBAで1BIG/4BISのAuracast™送信可能なサンプルプロジェクトとドキュメントを別途提供しています。
このサンプルコードを使って、以下のユースケースの実現が可能です。
- 同時通訳音声送信システム
PCオンプレ、もしくはクラウド型同時通訳会議システムから提供される4か国語の同時翻訳音声データを、PCとUSB接続した単一のSTM32WBA Auracast™トランスミッタで送信。
会議システム専用のレシーバだけでなく、市販のAuracast™対応イヤフォン、補聴器などを使って聞くことが可能になり、レシーバを使うユーザを選びません。 - 多言語音声案内/解説送信システム
美術館や博物館の展示物を4ヶ国語で解説したものを、単一のSTM32WBA Auracast™トランスミッタで送信。
専用の受信機は必要なく、市販のAuracast™対応イヤフォンや補聴器などを使って聞くことが可能になり、レシーバを使うユーザを選びません。また、展示物に近づくだけで、その展示物の解説のAuracast™放送局に切り替わるなどの応用が期待できます。
まとめ(最後に)
ただ単純にAuracast™のレシーバで音楽を聴くだけでなく、その裏側でどのようなことが起きているのか、その一端をご理解いただけましたか?
この記事で解説しきれなかったAuracast™の詳細な情報は、以下のサイトから情報の入手を推奨します。

このブログの内容のほとんどが、上記のガイドで提供されている資料を基に作成されました。
また、Auracast™の基本となるLE-Audioに関する詳細な解説が、以下から入手可能です。

読者の皆様によって多くのAuracast™ソリューションが新たに開発され、新たなユースケースが生み出され、Auracast™がより豊かな生活を実現していくことにつながればいいなと思います。
STが提供するソリューションのお問い合わせは、以下までお願いいたします。
STマイクロエレクトロニクス 株式会社
マイクロコントローラ製品部
st-mcu-fun@st-jp.jp