ハードウェア ノイズ キャンセレーションを無効にする

Chrome 64 では、echoCancellation 制約が有効になっている getUserMedia オーディオ ストリームに対して新しい動作が試行されています。新しい点は、このようなストリームでは、ストリームの実行中にハードウェア ノイズ キャンセレーションが一時的に無効になることです。これにより、エコー キャンセラのパフォーマンスが向上すると予想しています。この機能は試験運用版のため、明示的に有効にする必要があります。下記をご覧ください

現時点では、この動作は特定の入力デバイスで macOS でのみサポートされています。サポートは、[システム環境設定] の [サウンド] パネルで切り替え可能な「アンビエント ノイズ低減」機能を持つデバイスに限定されます。

背景

エコー キャンセラは、マイクで拾われた音声信号から、スピーカーで再生される音を除去しようとします。この設定を行わないと、通話の一方の当事者として発話した内容が、相手側のマイクで拾われたうえで返送されます。自分のエコーが聞こえます。

エコーを効果的に除去するには、WebRTC のエコー キャンセラ(Chrome で使用)でマイクから可能な限りクリーンな音声信号を得る必要があります。ハードウェア ノイズ キャンセレーションなど、音声がエコー キャンセラに到達する前に適用される処理(ハードウェア ノイズ キャンセレーションなど)は、通常はパフォーマンスの低下につながります。さらに、ソフトウェアのノイズ キャンセレーションは、エコー キャンセラが処理を終えた後にすでに実施されています。

新しい動作の詳細

ウェブ デベロッパーは、オリジン トライアルを有効にすることで、サイトで新しい動作を有効にできます。エンドユーザーは、Chrome の起動時にコマンドライン フラグを渡すことで、グローバルに有効にできます。詳細については、下記をご覧ください

これが有効で、ウェブページが getUserMedia を呼び出して入力デバイスから音声を取得すると、次の処理が行われます。

  • echoCancellation 制約を有効にすると、新しく作成された音声ストリームの間、ハードウェア ノイズ キャンセレーションがオフになります。

  • この設定はシステム全体に適用されるため、同じデバイス(同じマイク)からのすべての音声入力ストリームに適用されます。

  • ハードウェア ノイズ キャンセレーションをオフにする最後のストリームが終了すると、ハードウェア ノイズ キャンセレーションはオンに戻ります。

  • ハードウェア ノイズ キャンセレーションがすでに無効になっていた場合、Chrome はその状態を変更しません。

  • echoCancellation を有効にせずに getUserMedia が呼び出された場合、Chrome はハードウェア ノイズ サプレッションの処理を行いません。

この設定はユーザーが制御することもできるため、ユーザーと特定のやり取りが行われます。

  • Chrome でハードウェア ノイズ キャンセレーションがオフになっていて、ユーザーがオンに戻しても、Chrome はそのストリームに対してハードウェア ノイズ キャンセレーションを再び無効にしようとしません。

  • Chrome でハードウェア ノイズ キャンセレーションがオフになっていて、ユーザーがオンに戻してもう一度オフにした場合、ストリームの終了時に Chrome で再び有効になります。

この動作は、テストを有効にするだけで有効になります。API を変更する必要はありません。

テストを有効にする方法

サイトでこの新しい動作を利用するには、「ハードウェア ノイズ キャンセレーションを無効にする」オリジン トライアル登録する必要があります。ローカルで試す場合は、コマンドラインで有効にすることもできます。

chrome --enable-blink-features=DisableHardwareNoiseSuppression

このフラグをコマンドラインで渡すと、この機能が現在のセッションでグローバルに有効になります。

このテストでは、以下の 2 つの点を評価します。

  • ハードウェア ノイズ キャンセレーションのオン / オフの切り替え。

  • Chrome 内からこの設定を変更すると、エンドユーザーやエンドユーザーが実行する他のソフトウェアにどのような影響がありますか?

この両方の点について、ぜひフィードバックをお寄せください。この機能をオンにすると 通話品質が改善しますか予期しない動作を引き起こすような実装の問題がないか。いずれにしても、これをお試しになる場合は、このバグに関するフィードバックをお送りください。可能であれば、使用したマイクやヘッドセットなど、周囲のノイズ低減をサポートしているかどうかも記載してください。より大規模なテストを行う場合は、通話品質の比較統計へのリンクがあると便利です。