提供更多原生回音消除功能

我們將繼續進行先前的實驗,並在 Chrome M68 中新增實驗性 MediaStreamTrack 限制,以控制要使用的回音消除器,並新增 Windows 原生回音消除器的支援功能,以及改善 macOS 原生回音消除器的功能。如同先前所述,這一切都需要透過來源試用才能使用,因此如要試用,您必須先註冊,或是透過指令列標記啟動 Chrome。詳情請參閱下文

新功能

首先,現在可以在 getUserMedia 呼叫中加入新的限制,藉此控制要使用的回音消除器,例如:

echoCancellationType: type

其中 type 可以是下列任一值:

  • browser 使用瀏覽器提供的軟體實作項目。
  • system 使用基礎系統提供的實作項目。目前,這是 macOS 和 Windows 上的實作方式之一。

如果不設定限制條件,Chrome 會像往常一樣選取回音消除器:如果有硬體回音消除器,就會使用該工具,否則就會使用 Chrome 的軟體回音消除器。如果未指定限制條件,Chrome 將永遠不會選擇這項試驗中兩種實驗性回音消除器中的其中一種。

echoCancellationType 的運作方式與其他限制條件相同,因此您可以將 system 指定為理想值,並在 Chrome 可使用該值時使用該值,否則則改用 browserbrowser echoCancellationType 一律可在 Chrome 中使用。如要找出系統選取的回音消除器,您可以在 getUserMedia 音訊音軌上呼叫 getSettings(),然後檢查 echoCancellationType 欄位的值。

最後,您可以對 MediaStreamTrack 呼叫 getCapabilities(),查看哪些回音消除器可用於 MediaStreamTrack。不過,echoCancellationType 尚未在 InputDeviceInfo 中實作。

支援 Windows 回音消除功能

我們已擴充原生回音消除器支援功能,納入使用 Voice Capture DSP 元件的 Windows。就像 macOS 回音消除器一樣,我們想評估這項功能的效能,並瞭解在某些情況下,它是否比我們的軟體解決方案更有效,因為它會更靠近音訊硬體。與 macOS 不同,我們在 Windows 上的初步測試結果並不理想。我們會持續調整導入方式,看看是否能讓成效變得更好。目前,建議您不要在更大規模的情況下嘗試使用 Windows 回音消除器。請在受控環境中試用 (例如在本機機器上),但不要期望它能完美運作!

改善 macOS 回音消除支援

在先前的實驗中,macOS 實作無法正確追蹤所使用的輸出裝置。這表示無法透過電腦的預設裝置以外的裝置取消回音。在許多情況下,這可能不是問題,因為 macOS 會在耳機等裝置插入或拔除時自動切換預設裝置。但並非在所有情況下都能正常運作。

這項功能已新增至 Chrome M68,並且已為 macOS 和 Windows 回音消除器實作。Chrome 的軟體回音消除器並未受到這項功能缺失的影響,因為它會使用內部迴圈來讓播放音訊取消。

如何啟用實驗

如要在網站上啟用這項新功能,您必須註冊「原生 AEC 實驗性支援」Origin Trial。如果您只想在本機試用,可以透過指令列啟用實驗:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

在指令列上傳遞這個標記,即可讓 Chrome 在目前工作階段中全域提供新的 echoCancellationType 限制。您可以使用這項限制,按照上述方式測試應用程式中的原生回音消除器。這個指令列標記與先前的測試相同,在 Chrome M68 中會啟用新功能。啟用新原點測試功能只會啟用新功能,不會觸發舊版 Chrome 中的舊測試。

提交意見回饋

和先前的實驗一樣,我們對 macOS 和 Windows 回音消除器的質量表現感興趣,尤其是前者。我們也想知道新 echoCancellationType 限制在實際應用中的運作情形,以及使用難易度等相關意見回饋,包括在 getSettingsgetCapabilities 中加入這項限制。

我們也想瞭解 Chrome 在使用這些原生回音消除器時,如何與其他應用程式互動,以及實作時的任何穩定性問題或其他問題。

如果您嘗試這個功能,請在這個錯誤中提交意見回饋。盡可能提供使用的硬體 (OS 版本、硬體型號、麥克風 / 耳機 / 等)。如果進行更多大規模實驗,請提供音訊通話品質比較統計資料的連結,無論是客觀或主觀皆可。