最初の一歩は必ず権限
WebページはMedia Capture and Streamsインターフェースを通じて音声入力を要求します。ブラウザはユーザーに権限確認を表示し、ページは許可された後でのみメディアストリームを取得できます。権限を与えたからといって録音をアップロードする必要はありません。ストリームをローカル処理ノードだけに接続することも、ユーザーの明示的な操作後にエンコードして送信することもできます。
安全な設計では、「マイクを使うこと」と「データがどこへ行くか」の両方を説明する必要があります。ブラウザの権限アイコンだけでは、保存・公開・削除のルールまでは分かりません。
Web Audioはオーディオグラフ
Web Audioでは、処理の流れをノード接続で表します。マイクや音声ファイルがソース、ゲイン・フィルター・アナライザーが中間ノード、スピーカーやメモリバッファが出力です。AnalyserNodeは直近の信号について時間領域データと、FFTで得た周波数領域データを提供できます。FFTサイズを大きくすると一般に周波数分解能は細かくなりますが、計算量と時間窓も大きくなります。
MelodyCanvasにはマイク入力がなく、サンプルバッファ、ピッチシフト、時間スケジューリングで音楽を合成します。一方FrostNoteはマイクの音声フレームを読み、ブラウザ内でF0を推定し、リアルタイムの結果を画面に描画します。
ローカル処理とサーバー側処理の選び方
| 方式 | 利点 | 制限と責任 |
|---|---|---|
| ブラウザ内ローカル | 低遅延で、元音声を端末から出さずに処理でき、即時フィードバックや合成に向いています。 | デバイス性能、ブラウザ差、ページのライフサイクルに制約され、複雑なモデルは動かしにくくなります。 |
| サーバー側 | ツールチェーンを統一でき、一貫した音声デコード、音響特徴抽出、より大きなモデルを実行できます。 | データ転送が必要になるため、保持期間、アクセス制御、エラー時の削除、公開範囲を明確にする必要があります。 |
CVoiceとInsightは特徴実装の一貫性を保つためサーバー側分析を選び、FrostNoteとMelodyCanvasは即時操作のためローカル処理を選んでいます。すべての場面に最適な単一方式はありません。
「ローカル」でもプライバシー意識は必要
ローカル分析はアップロードを減らしますが、リスクがなくなるわけではありません。ページは必要なときだけ権限を求め、使わないメディアトラックを停止し、メモリ内の録音を解放し、音声デバイスの特徴をサイト横断識別に使わないようにすべきです。W3C仕様も、音声処理能力がデバイス特性を露出し得ると指摘しており、製品目的と無関係な情報は収集すべきではありません。