1. AEC(音響エコーキャンセラ)の基本原理
エコーキャンセリング(AEC: Acoustic Echo Cancellation)は、スピーカーから出た音が再びマイクに入って相手に戻る「エコー」を消す技術です。原理は単純で「自分のスピーカーが今鳴らしている音」をリアルタイムに引き算します。具体的には適応フィルタ(NLMSやRLSアルゴリズム)でスピーカー出力からマイク入力への音響経路を学習し、その学習結果を使ってマイク入力からスピーカー成分を差し引きます。理論は1960年代から存在しましたが、低遅延でリアルタイム動作する実装が一般化したのは2010年代以降。Zoom/Teams/Google Meetはこれを各社独自実装で組み込んでいます。
2. ダブルトーク検出|同時発話への対応
AECで難しいのが「両者が同時に話す(ダブルトーク)」場面です。素朴な引き算アルゴリズムだと、自分が話している間は学習が破綻し、エコー消去が効かなくなったり、逆に自分の声まで消してしまうケースがあります。これを防ぐのが「ダブルトーク検出器」で、両者発話中は適応フィルタの学習を一時停止します。Zoomで「相手が話してるときだけクリアで、両方話すと自分の声が途切れる」現象が起きるのは、このダブルトーク検出器が過敏に効いているサインです。Zoomの設定で「ノイズ抑制:低」にすると改善することがあります。
3. ノイズ抑制(noiseSuppression)の仕組み
ノイズ抑制は「定常的に存在するノイズ(エアコン音・ファン音・キーボード音・道路騒音)」を識別して消す技術です。原理は①無音区間でノイズプロファイル学習→②音声区間ではノイズ部分だけ周波数領域で差し引き、というスペクトル減算法が基本。最近はディープラーニングベースのノイズ抑制(RNNoise、NVIDIA RTX Voice、Krispなど)が広がり、人間の声と非声を機械学習で区別する高度な方式が主流になっています。副作用として「ささやき声まで消す」「キーボード音と一緒に自分の咳まで消える」ケースがあり、医療系・教育系の会議では「ノイズ抑制:オフ」が推奨されることもあります。
4. 自動ゲイン調整(autoGainControl)の挙動
autoGainControl(AGC)は、入力音量が小さければ自動で増幅、大きければ自動で減衰させる機能です。Web会議では話し手によって声の大きさが違うため、自動でレベルを揃えるのが目的。便利な反面、副作用として「無音時に背景ノイズが大きく拾われる(増幅される)」「咳・くしゃみ・笑い声の直後にしばらく音量が下がる」現象が起きます。Zoomで「自分の声が時々小さく聞こえる」と言われるなら、AGCのオン・オフを切り替えて試すとよいです。ブラウザのMediaTrackConstraintsで autoGainControl: false を指定すれば無効化できますが、Zoom/Teamsアプリ側のAGCは個別設定からの制御になります。
5. MediaTrackConstraintsでの制御方法
ブラウザ標準のMediaDevices.getUserMedia()は、第2引数のMediaTrackConstraintsで音声処理のON/OFFを指定可能です。{audio: {echoCancellation: true, noiseSuppression: true, autoGainControl: true}}のようにbooleanで指定。trueがデフォルトで、falseにすると生のマイク入力が取得できます。手軽屋のマイクテストは「マイクが正しく動くか」を確認するツールなので、生入力に近い設定を採用しています。Zoom/Teamsはアプリ側で別途独自のAEC/NS/AGCを実装しているため、ブラウザの設定とは独立です。「ブラウザでは雑音が乗るのにZoomでは乗らない」現象は、ZoomがアプリレベルでKrisp相当の処理をしているからです。
6. AirPods・WHシリーズの「会議モード」と相互作用
BluetoothヘッドセットのAirPods(特にPro)やSONY WHシリーズには、ヘッドセット側のチップで独自のノイズキャンセリング(マイク用ノイズ抑制)が組み込まれています。この処理はOS/ブラウザ/会議アプリよりも前段で動くため、ZoomやTeamsの設定で「ノイズ抑制:オフ」にしてもデバイス側で消されたものは戻りません。逆に「ノイズ抑制:高」にすると二重・三重のノイズ抑制で「籠った音」になるケースも。Bluetoothヘッドセット使用時は、会議アプリ側のノイズ抑制を「低」または「自動」に下げる方が音質が安定します。AirPods 4・Pro 2では「マイクモード」(標準/声を分離/ワイドスペクトル)の選択肢もあり、用途に応じて切替可能です。
手軽屋ツール実践手順
- マイクテストを開く
- 静かな環境でマイクを開始→無音状態のレベルを見る(10以下なら静音、20超えるとノイズ多い)
- 「あー」と話してレベルメーターが40〜70まで動くか確認
- 録音→再生で雑音・籠り・音割れを耳で確認
- 気になる場合はZoom/Teams側の「ノイズ抑制」設定を低〜中で試す
- Bluetoothヘッドセットを使う場合は会議アプリ側のノイズ抑制を「低」に下げる