前回の実験に引き続き、Chrome M68 では、使用されるエコー キャンセラを制御する試験運用版の MediaStreamTrack
制約を追加し、Windows でネイティブ エコー キャンセラのサポートを追加しました。また、macOS でネイティブ エコー キャンセラの機能を改善しました。これまでと同様に、これらはすべてオリジン トライアルの対象であるため、試すには登録するか、コマンドライン フラグを使用して Chrome を起動する必要があります。詳しくは、以下をご覧ください。
最新情報
まず、getUserMedia
呼び出しに新しい制約を含めることで、使用されるエコー キャンセラを制御できるようになりました。次に例を示します。
echoCancellationType: type
ここで、type
は次のいずれかになります。
browser
: ブラウザが提供するソフトウェア実装を使用する。system
: 基盤となるシステムから提供される実装を使用します。現在、これは macOS と Windows での実装の 1 つです。
制約を指定しないと、Chrome はこれまでどおりエコー キャンセラを選択します。ハードウェア エコー キャンセレーションが存在する場合はそれが使用され、存在しない場合は Chrome のソフトウェア エコー キャンセレーションが使用されます。制約を指定しないと、Chrome は、この試験運用の一部である 2 つの試験運用エコー キャンセラーのいずれかを選択することはありません。
echoCancellationType
は他の制約と同様に機能するため、system
を理想的な値として指定し、利用可能な場合は Chrome で使用し、そうでない場合は browser
にフォールバックできます。browser
echoCancellationType は Chrome で常に使用できます。どのエコー キャンセラが選択されたかを確認するには、getUserMedia オーディオ トラックで getSettings()
を呼び出して、echoCancellationType
フィールドの値を確認します。
最後に、MediaStreamTrack
で getCapabilities()
を呼び出すと、MediaStreamTrack
で利用可能なエコー キャンセラを確認できます。ただし、echoCancellationType
は InputDeviceInfo
にまだ実装されていません。
Windows エコー キャンセレーションのサポート
ネイティブ エコー キャンセラーのサポートが拡張され、Voice Capture DSP コンポーネントを使用する Windows がサポートされるようになりました。macOS のエコー キャンセラーと同様に、そのパフォーマンスを評価し、音声ハードウェアに近い場所に配置するだけで、Google のソフトウェア ソリューションよりも優れたパフォーマンスを発揮するケースがあるかどうかを確認します。macOS とは対照的に、Windows での初期テストは非常に有望ではありませんでした。パフォーマンスを改善できるかどうかを確認するため、実装を継続的に調整していきます。現時点では、Windows エコー キャンセラーを大規模にテストしないことをおすすめします。ローカルマシンなど、制御された設定で試してみてください。ただし、完璧に動作するとは限りません。
macOS のエコー キャンセルのサポートを改善
前回のテストでは、macOS の実装で、使用されている出力デバイスを正しく追跡できませんでした。つまり、パソコンのデフォルト デバイス以外のデバイスからエコーをキャンセルすることはできませんでした。ヘッドセットなどの接続や切断時に macOS がデフォルト デバイスを自動的に切り替えるため、多くの場合、これは問題ではなかった可能性があります。ただし、すべてのケースで正しく動作するとは限りません。
この機能は Chrome M68 に追加され、macOS と Windows のエコー キャンセラーの両方に実装されています。Chrome のソフトウェア エコー キャンセラは、内部ループバックを使用して再生音声をキャンセルするため、この機能の欠如の影響を受けていません。
テストを有効にする方法
サイトにこの新しい動作を適用するには、「ネイティブ AEC の試験運用版サポート」オリジン トライアルに登録する必要があります。ローカルで試すだけの場合は、コマンドラインで試験運用版を有効にできます。
chrome --enable-blink-features=ExperimentalHardwareEchoCancellation
コマンドラインでこのフラグを渡すと、現在のセッションの Chrome で新しい echoCancellationType
制約をグローバルに使用できるようになります。この制約を使用して、上記のようにアプリのネイティブ エコー キャンセラをテストできます。これは、以前のトライアルと同じコマンドライン フラグです。Chrome M68 では、このフラグによって新しい機能が有効になります。新しいオリジン トライアルを有効にすると、新しい機能のみが有効になります。古いバージョンの Chrome で以前のトライアルがトリガーされることはありません。
フィードバックの提出
前回のテストと同様に、Google は macOS と Windows のエコー キャンセラーの質的なパフォーマンス(主に前者)に関心を持っています。また、新しい echoCancellationType
制約の実用性や使いやすさなど、フィードバックをお寄せください。getSettings
と getCapabilities
への組み込みも含みます。
また、これらのネイティブ エコー キャンセラを使用しているときに Chrome が他のアプリとどのように連携するか、実装に関する安定性の問題やその他の問題についても関心があります。
試用している場合は、こちらのバグにフィードバックを送信してください。可能であれば、使用したハードウェア(OS バージョン、ハードウェア モデル、マイク / ヘッドセットなど)を含めます。大規模なテストを行う場合は、音声通話品質に関する比較統計情報へのリンク(客観的または主観的)を記載することをおすすめします。