Отключение аппаратного шумоподавления

В Chrome 64 мы пробуем новое поведение для аудиопотоков getUserMedia, у которых включено ограничение echoCancellation . Новым является то, что такие потоки временно отключают аппаратное подавление шума на время потока. Мы ожидаем, что это улучшит работу эхокомпенсатора. Поскольку эта функция является экспериментальной, ее необходимо явно включить; см. ниже .

На данный момент такое поведение поддерживается только для определенных устройств ввода и только в macOS. Поддержка ограничена устройствами, у которых есть переключаемое «подавление окружающего шума» на панели «Звук» в Системных настройках .

Фон

Эхоподавитель пытается удалить любой звук, воспроизводимый через динамики, из аудиосигнала, улавливаемого микрофоном. Без этого то, что вы говорите как одна из сторон разговора, будет уловлено микрофоном другой стороны, а затем отправлено обратно вам. Вы услышите эхо самого себя!

Чтобы успешно удалить эхо, эхоподавитель WebRTC (который используется в Chrome) должен получать как можно более чистый аудиосигнал с микрофона. Обработка, применяемая до того, как звук достигнет эхоподавителя, например аппаратное подавление шума, обычно ухудшает его производительность. Более того, программное подавление шума уже есть, но только после того, как эхокомпенсатор проделал его обработку.

Подробности нового поведения

Веб-разработчики могут включить новое поведение на своих сайтах, выбрав пробную версию Origin . Конечные пользователи могут включить его глобально, передав флаг командной строки при запуске Chrome. Дополнительную информацию см. ниже .

Когда эта функция включена и веб-страница вызывает getUserMedia для получения звука с устройства ввода, происходит следующее:

  • Если ограничение echoCancellation включено, аппаратное подавление шума будет отключено на время вновь созданного аудиопотока.

  • Поскольку этот параметр является общесистемным, он будет применяться ко всем входным аудиопотокам с одного и того же устройства (т. е. с одного и того же микрофона).

  • Как только последний поток, который хочет отключить аппаратное подавление шума, закрывается, аппаратное подавление шума снова включается.

  • Если аппаратное подавление шума уже было отключено заранее, Chrome не изменит свое состояние.

  • Если getUserMedia вызывается без включенной функции echoCancellation , Chrome не будет использовать аппаратное подавление шума.

Поскольку этот параметр также контролируется пользователем, существуют некоторые специфические взаимодействия с пользователем:

  • Если Chrome отключил аппаратное подавление шума, а пользователь снова включил его, Chrome не будет пытаться снова отключить его для этого потока.

  • Если Chrome отключил аппаратное подавление шума, а пользователь снова включил его, а затем снова выключил, Chrome все равно снова включит его после завершения потока.

Поведение вступает в силу, просто включив эксперимент. Никаких изменений API не требуется.

Как включить эксперимент

Чтобы получить это новое поведение на своем сайте, вам необходимо подписаться на пробную версию Origin «Отключить аппаратное шумоподавление». Если вы просто хотите опробовать его локально, его также можно включить в командной строке:

chrome --enable-blink-features=DisableHardwareNoiseSuppression

Передача этого флага в командной строке включает эту функцию глобально для текущего сеанса.

Есть несколько аспектов, которые мы хотим оценить с помощью этого эксперимента:

  • Качественные различия между включенным и выключенным аппаратным шумоподавлением.

  • Как изменение этого параметра в Chrome повлияет на конечного пользователя и другое программное обеспечение, которое он может использовать?

Мы заинтересованы в обратной связи по обоим этим аспектам. Звонки лучше или хуже с включенной этой функцией? Есть ли проблемы с реализацией, вызывающие неожиданное поведение? В любом случае, если вы пробуете это сделать, пожалуйста, отправьте отзыв об этой ошибке . Если возможно, укажите, какой микрофон/гарнитура/т. д. использовался и поддерживает ли он подавление окружающего шума. Если вы проводите более масштабные эксперименты, приветствуются ссылки на сравнительную статистику качества аудиовызовов.