WebRTC 声学回声消除
WebRTC Acoustic Echo cancelation
我目前正在从事 webrtc 项目,在不使用耳机或外接麦克风时遇到音频回声问题,是否有任何解决方法或修复此问题
回声消除应该在 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>
回声消除技术可以存在于许多层面 - 浏览器中的软件,OS,有时甚至在你的硬件麦克风中 - 有时这些技术会相互干扰。
我不了解你的系统,我建议你检查一下你系统的声音设置,以确保你没有在太多级别上进行有用的处理。
例如,在 OSX 上,声音设置 下的使用环境降噪 功能效果更好对我来说,当我关闭 时使用 WebRTC。您只希望一位厨师同时尝试消除回声。
如果您正在为其他客户开发网站,那么您在软件方面无能为力,我希望大多数系统都能正常工作,即使不完美,也不错,尽管耳机总是更好.
目前webrtc中回声消除没有最好的解决方案,所以我找到的最好的解决方案是使用AEC软件,或者内置回声消除软件
即使使用视频 echoCancellation 约束
我也遇到了同样的问题
我终于可以删除 echo/noise 添加 属性 muted="true"
到您的 local 视频元素并将音量设置为 0 document.getElementById("localVideo").volume = 0
这不会阻止您的 localStream 发出声音,但会消除您本地的噪音。
我目前正在从事 webrtc 项目,在不使用耳机或外接麦克风时遇到音频回声问题,是否有任何解决方法或修复此问题
回声消除应该在 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>
回声消除技术可以存在于许多层面 - 浏览器中的软件,OS,有时甚至在你的硬件麦克风中 - 有时这些技术会相互干扰。
我不了解你的系统,我建议你检查一下你系统的声音设置,以确保你没有在太多级别上进行有用的处理。
例如,在 OSX 上,声音设置 下的使用环境降噪 功能效果更好对我来说,当我关闭 时使用 WebRTC。您只希望一位厨师同时尝试消除回声。
如果您正在为其他客户开发网站,那么您在软件方面无能为力,我希望大多数系统都能正常工作,即使不完美,也不错,尽管耳机总是更好.
目前webrtc中回声消除没有最好的解决方案,所以我找到的最好的解决方案是使用AEC软件,或者内置回声消除软件
即使使用视频 echoCancellation 约束
我也遇到了同样的问题我终于可以删除 echo/noise 添加 属性 muted="true"
到您的 local 视频元素并将音量设置为 0 document.getElementById("localVideo").volume = 0
这不会阻止您的 localStream 发出声音,但会消除您本地的噪音。