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

我們會繼續在先前的實驗和 Chrome M68 中,新增實驗性的 MediaStreamTrack 限制,藉此控管使用的 echo canceller、新增對 Windows 原生 echo 取消程式的支援,以及改善 macOS 原生 echo 取消程式的功能。上述所有操作都需要來源試用完成,因此你必須註冊或使用指令列旗標啟動 Chrome,才能試用。詳情請參閱下文

新功能

首先最重要的是,現在可以在 getUserMedia 呼叫中加入新限制,以控制正在使用哪個 echo 取消程式,例如:

echoCancellationType: type

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

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

如果退出限制,Chrome 就會像以往一樣選取 echo 取消程式:如果硬體消除回音,系統會採用該設定,否則 Chrome 的軟體 echo 取消程式將會停用。如果沒有指定限制,Chrome 一律不會選擇其中一個實驗性 echo 取消程式之一。

echoCancellationType 的運作方式與任何其他限制一樣,因此您可以將 system 指定為理想值,讓 Chrome 在可用時使用,或者改回使用 browser。Chrome 一律提供 browser echoCancellationType如要找出系統選擇的 echo 取消工具,您可以在 getUserMedia 音軌上呼叫 getSettings(),並查看 echoCancellationType 欄位的值。

最後,您可以呼叫 MediaStreamTrack 上的 getCapabilities() 來檢查可用的 echo 取消器。不過,InputDeviceInfo 尚未實作 echoCancellationType

Windows 回音消除功能支援

我們已擴充原生 echo 取消程式支援功能,讓使用 Voice Capture DSP 元件納入 Windows。與 macOS echo 取消工具一樣,我們希望評估其效能,看看在較靠近音訊硬體的情況下,是否擁有比軟體解決方案更好的效能。與 macOS 的案例相反,我們在 Windows 上的初始測試並沒有什麼效果。我們會持續調整實作,看看是否能提高成效。目前,最好避免對 Windows echo 取消程式進行任何大規模的實驗。請在本機電腦或本機電腦

改善 macOS 回音消除支援功能

在先前的實驗期間,macOS 實作無法正確追蹤使用的輸出裝置。因此,無法透過非電腦預設裝置取消回音。在多數情況下,這不一定是問題,因為 macOS 可以在耳機等已連接或未接上電源的情況下,自動切換預設裝置。不過,這項功能在所有情況下都無法正常運作。

這項功能已新增至 Chrome M68,並同時為 macOS 和 Windows echo 取消程式實作。Chrome 的軟體 echo 取消工具並未受到這項功能的影響,因為這項功能會使用內部回送機制來取得播放音訊來取消。

如何啟用實驗

如要在網站上取得這個新行為,您必須申請「針對原生 AEC 的實驗性支援」來源試用。如果只是要在本機試用,可以透過指令列啟用實驗:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

在指令列上傳遞此標記後,全球的 Chrome 就能為目前的工作階段使用新的 echoCancellationType 限制。透過這項限制,您就可以依上文所述,測試應用程式中的原生 echo 取消工具。這與先前試用時使用的指令列旗標相同;在 Chrome M68 中,系統會啟用新功能。啟用新的來源試用只會啟用新功能,不會在舊版 Chrome 中觸發先前的試用。

提供意見

與先前的實驗相同,我們期望瞭解 macOS 和 Windows echo 取消器的質性效能 (主要為前者)。此外,我們也希望針對新的 echoCancellationType 限制的實際運作成效、易用程度等提供意見,包括在 getSettingsgetCapabilities 中使用。

我們也會說明 Chrome 在使用原生 echo 取消器時與其他應用程式互動的方式,以及發生穩定性問題或其他實作問題。

如果你正在試用這項服務,請透過這個錯誤提交意見回饋。請盡可能附上使用的硬體 (OS 版本、硬體型號、麥克風/耳機等)。如果進行更大規模的實驗,無論是客觀或主觀性,還是重視通話品質的比較統計資料連結。