macOS 原生回声消除

从 10.12 (Sierra) 版本开始,macOS 包含原生回声消除器。您可以在 Chrome M66 中通过以下方式实验性启用该功能:选择加入源试用,或在启动 Chrome 时提供命令行 flag;详见下文

启用实验后,系统会针对启用了 echoCancellation 约束条件的 getUserMedia 流使用 macOS 原生回声消除器。在其他平台和较低版本的 macOS 上,启用该实验实际上不会产生任何效果;系统会像以前一样使用相同的回声消除器(通常是 WebRTC 中的软件回声消除器)。

我们为什么要这样做?

我们希望评估 macOS 原生回声消除器的性能。作为 Apple 开发的组件,它可以针对 Apple 的硬件进行专门调整。它在音频流水线中的位置也应该会降低对 Chrome 中可能发生的某些音频故障的敏感性。

什么是回声消除器?

回声消除器会尝试从麦克风信号中移除扬声器播放的任何声音。如果不启用此功能,您在通话中说的话会被对方的麦克风拾取,然后发送回给您。您会听到自己的回声!

如何启用实验

如需在您的网站上实现此新行为,您需要注册“macOS 原生回音取消”来源试用计划。如果您只想在本地试用,可以在命令行中启用该实验:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

在命令行中传递此标志可在 Chrome 中为当前会话全局启用此功能。

通过此实验,我们希望评估使用 macOS 原生回声消除器时是否存在任何质量差异,例如:

  • 回声消除效果如何?
  • 它在处理双重对话场景(即双方同时说话)时表现如何?
  • 如果没有回声需要取消,这会对音频质量产生负面影响吗?
  • 某些音频设备(例如头戴式耳机)是否会导致问题?
  • 等等

我们还想了解 Chrome 在 macOS 上使用原生回声消除器时如何与其他应用交互,以及实现过程中是否存在任何稳定性问题或其他问题。

如果您要试用此功能,请在此 bug 中提交反馈。如果可能,请附上所用硬件(macOS 版本、硬件型号、麦克风/头戴式耳机等)。如果您要开展更多大规模实验,请提供音频通话质量的比较统计信息链接,无论是客观还是主观的。