В настоящее время я работаю над проектом WebRTC, и возникают проблемы с аудио эхо, когда не используется наушники или внешний микрофон, есть ли работа вокруг или исправить для этогоWebRTC Acoustic Echo дезактивация
ответ
В настоящее время не существует лучшим решения для эха аннулирования в 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>
технология эхоподавления может существовать на многих уровнях - программного обеспечения, в браузере, в ОС, а иногда даже в вашем аппаратном микрофон - иногда эти технологии могут мешать друг другу.
Не зная вашу систему, я бы рекомендовал проверить настройки звука вашей системы, чтобы убедиться, что у вас нет полезной обработки на слишком многих уровнях.
К примеру, на OSX, есть шумоподавления использования окружающей среды функции под НАСТ.ЗВУКОМ что unintuitively работает лучше для меня с WebRTC, когда я перехожу от. Вы хотите, чтобы один шеф-повар попытался отменить эхо одновременно.
Если вы работаете на веб-сайте для других клиентов, то в программном обеспечении вы не можете многое сделать, и я ожидаю, что большинство систем будут работать, если не идеально, прилично хорошо, хотя гарнитура всегда будет лучше.
Да, у меня нет проблем, если я использую гарнитуру, но эхо все еще существует, если я не использовал его, потому что мой голос вернулся из динамика других людей, и это вызвало эхо или обратную связь, для этого есть какое-то другое решение. – Ihsan
@ShinjiKagehisa какой браузер, система и микрофон? – jib
chrome, firefox using osx, windows, linux и встроенный микрофон – Ihsan
WebRTC является протоколом передачи P2P данных и не имеет ничего общего со звуком. –
@ polkovnikov.ph вы думаете о RTCPeerConnection. По историческим причинам WebRTC часто используется в качестве зонтичного термина как для API, так и для API getUserMedia. Даже одноранговые соединения не являются агрегированными данными, а имеют дело с аудио и видео. – jib