はじめに
ブラウザで動作する Web Speech API の SpeechRecognition機能(音声認識)を対象としています.
調査、実験不足が否めないため、不正確な情報や誤りが含まれている可能性があります。
目的
音声データが外部サーバーへ送信される可能性について、主要ブラウザにおける仕様を調査し、セキュアな利用可否を判断することを目的とします。
結論から
仕様と実装
Web Speech APIの標準仕様は存在しますが、具体的な音声認識エンジンの実装は各ブラウザベンダーに委ねられている
外部サーバーの利用
Chrome や Edge は公式ドキュメントで、音声認識処理のためにデータを外部サーバーへ送信することを明記されている。(chrome 恐らく gcp。edge は azure )
web speech api を経由して cloud 音声認識を使用した場合の、明確な規約は発見できず、データの扱いが不鮮明である
オフライン動作の謎
一方、ネットワークを遮断した状態でも音声認識が動作しており、常に外部サーバーが必須ではない
総評
- 多くのブラウザで何らかの条件下で音声データが外部へ送信される可能性は高いと考えられる
- 機密性の高い音声データを扱う際には、この点を十分に考慮する必要がある思われる
各ブラウザの web speech api 対応状況
chrome / edge / safari などの主要なブラウザは対応している
各ブラウザの実際の動作状況
検証方法
Google の音声認識のデモサイトを利用し、各環境での動作を確認する
結果
node、os | chrome | edge | safari |
---|---|---|---|
mac m3 sequoia | 🟢 | x | 🟢 |
win 11 | 🟢 | 🟢 | 🟢 |
android (pixel 7a) | 🟢 | 🟢 | n/a |
iphone (10) | 🟢 | 🟢 | 🟢 |
mac edge のみ language-not-supported
などのエラーで動作不可であった
edge の動作は不安定という情報もある様です. (AI調べ)
ネットワーク遮断実験
条件
mac 上の chrome / safari を用い、ネットワーク遮断の上で音声認識が動作するか実験を行う
結果
ネットワーク状態に関わらず動作し、文字起こしは行われた
双方の認識精度を簡単に確認した限りでは、大きな差異はなく、フォールバックして動作しているのかなど、詳細動作の判断は難しい
補足: ネットワークログの解析
chrome://net-export/
https://netlog-viewer.appspot.com/#import
ブラウザの開発者ツール(ネットワークタブ)では、音声認識中の通信は行われていない様子でした
chrome の 詳細log機能を用い、ログ解析したところ、音声認識実行時に何らかの通信が行われている痕跡があった
音声合成、読み上げの場合
音声合成、読み上げについては、明らかに別の音声タイプにフォールバックしておりネットワークに依存しているケースもある様子です
公式などのドキュメント調査
以下、主に引用となります
mdn
メモ: Chrome など一部のブラウザーでは、ウェブページ上で音声認識を使用するとサーバーベースの認識エンジンが使用されます。音声を認識処理するためにウェブサービスへ送信するため、オフラインでは動作しません。
w3c draft report
Web Speech APIは、ウェブ開発者が、標準的な音声認識ソフトウェアやスクリーンリーダーを使用する際には通常利用できないような、音声入力およびテキスト読み上げ出力の機能をウェブブラウザ上で提供できるようにすることを目的としています。
このAPI自体は、その基盤となる音声認識や音声合成の実装に依存せず、サーバーベースとクライアントベース(組み込み型)の両方の認識・合成をサポートすることが可能です
google: chrome 139 新機能
on device 強制機能が追加されている.
つまり、外部送信される可能性が元々あると解釈できる
GCP へ送信されると過程した場合、トレーニングなどに用いられる可能性がある
これは恐らく processLocally
という flag で管理されており、safari では support されていない
この機能により、Web Speech API にデバイス上の音声認識のサポートが追加され、ウェブサイトで音声と文字変換された音声の両方が処理のためにサードパーティのサービスに送信されないようにすることができます。
Web Speech APIにオンデバイス音声認識のサポートを追加します。これによりウェブサイトは、音声データも書き起こされたテキストも、処理のために第三者のサービスへ送信されることがないように保証できます。
ms
Microsoft Edgeに実装されているWeb Speech APIはAzure Cognitive Servicesを使用するため、音声データはデバイスの外部に送信されます。
apple
明確な情報を見つけられず.
siri を使用可能との情報もあるので、その場合、外部送信される可能性は高いと思われる
ただし、mac os で siri を無効化しても音声認識は動作したため不明確ではある
一部のアプリケーションやウェブサイトは、あなたのMacの音声認識にアクセスでき、録音した音声をAppleに送信してリクエストを処理します。
SafariはSiriと同じ音声エンジンによる音声認識をサポートします。つまり、ウェブ開発者は50を超える言語と方言の高品質な書き起こしのメリットを享受できるのです。
cloud の speech to text 機能を用いた場合の規約
GCP、azure 共にユーザーから同意が得られた場合のみ、データを使用する事があるとの事。
web speech api 経由で利用した場合同一かは不明と思われる
余談: chat gpt、gemini の UI から試行
双方明確に外部 API を使用しており、edge でも利用可能.
各ブラウザへ対応するためか、音声データの収集などの理由から独自の endpont を作っていると推測する.
以上、乱雑で確度が低い情報ですが、外部送信される可能性はあると思われます