【问题标题】:WebRTC Acoustic Echo cancelationWebRTC 声学回声消除
【发布时间】:2016-09-20 07:25:35
【问题描述】:

我目前正在从事 webrtc 项目,并且在不使用耳机或外部麦克风时遇到音频回声问题,是否有任何解决方法或解决方法

【问题讨论】:

  • WebRTC 是一种 P2P 数据传输协议,与音频没有任何共同之处。
  • @polkovnikov.ph 您正在考虑 RTCPeerConnection。由于历史原因,WebRTC 经常被用作它和getUserMedia API 的总称。甚至对等连接也不是数据不可知论者,而是专门处理音频和视频。

标签: javascript webrtc aec


【解决方案1】:

回声消除应该在 WebRTC 中默认开启。你可以关掉它来听听区别:

navigator.mediaDevices.getUserMedia({ audio: { echoCancellation: false } })
  .then(stream => audio.srcObject = stream)
  .catch(e => log(e));

var log = msg => div.innerHTML += msg + "<br>";
<audio id="audio" controls autoplay></audio><br>
<div id="div"></div>
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>

回声消除技术可以存在于许多层面 - 浏览器中的软件、操作系统,有时甚至是硬件麦克风 - 有时这些技术会相互干扰。

不了解您的系统,我建议您检查系统的声音设置,以确保您没有在太多级别上进行有用的处理。

例如,在 OSX 上,声音设置下有一个使用环境噪音降低功能,当我打开 关闭。您只希望一位厨师同时尝试消除回声。

如果您正在为其他客户开发网站,那么您在软件方面无能为力,我希望大多数系统都能正常工作,即使不是完美,也能很好地工作,尽管耳机总是更好。

【讨论】:

  • 是的,如果我使用耳机,我没有问题,但如果我不使用它,回声仍然存在,因为我的声音从其他人的扬声器返回并导致回声或反馈,有任何其他解决方案为此?。
  • @ShinjiKagehisa 什么浏览器、系统和麦克风?
  • chrome、firefox 使用 osx、windows、linux 和内置麦克风
  • @ShinjiKagehisa 实际上,如果您听到您的声音从其他人的扬声器返回,那么可能回声在 他们的 系统上。我会尝试不同的参与者来隔离回声的来源(我知道你提到了修复它的耳机,这是令人困惑的)。
【解决方案2】:

目前webrtc中没有回声消除的最佳解决方案,所以我找到的最佳解决方案是使用AEC软件,或者内置回声消除软件

【讨论】:

    【解决方案3】:

    即使有视频 echoCancellation 约束,我也遇到了同样的问题

    我终于可以删除回声/噪音,将属性muted="true" 添加到您的 local 视频元素并将音量设置为 0 document.getElementById("localVideo").volume = 0

    这不会阻止您的 localStream 发出声音,但会消除您本地的噪音。

    【讨论】:

      猜你喜欢
      • 2020-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多