Больше встроенного эхоподавления

Мы продолжаем предыдущий эксперимент и в Chrome M68 добавили экспериментальное ограничение MediaStreamTrack для контроля того, какой эхоподавитель используется, добавили поддержку встроенного эхокомпенсатора в Windows, а также улучшили функциональность встроенного эхокомпенсатора. на MacOS. Как и раньше, все это находится в рамках пробной версии Origin , поэтому вам придется зарегистрироваться или запустить Chrome с флагом командной строки, если вы хотите опробовать его. Дополнительную информацию см. ниже .

Что нового?

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

echoCancellationType: type

где type может быть одним из:

  • browser для использования программной реализации, предоставляемой браузером; или
  • system использовать реализацию, предоставляемую базовой системой. На данный момент это одна из реализаций в macOS и Windows.

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

Поскольку echoCancellationType работает как любое другое ограничение, можно указать system как идеальное значение и заставить Chrome использовать его, если оно доступно, или в противном случае вернуться к browser значению. browser echoCancellationType всегда доступен в Chrome. Чтобы выяснить, какой эхоподавитель был выбран, вы можете вызвать getSettings() на аудиодорожке getUserMedia и проверить значение поля echoCancellationType .

Наконец, вы можете проверить, какие эхокомпенсаторы доступны для MediaStreamTrack , вызвав для него getCapabilities() . Однако echoCancellationType еще не реализован для InputDeviceInfo .

Поддержка эхоподавления Windows

Мы расширили встроенную поддержку эхокомпенсатора, включив в нее Windows с использованием компонента Voice Capture DSP . Как и в случае с эхоподавителем macOS, мы хотим оценить его производительность и посмотреть, есть ли случаи, когда он работает лучше, чем наше программное решение, хотя бы из-за его размещения ближе к аудиооборудованию. В отличие от случая с macOS, наше первоначальное тестирование на Windows оказалось не очень многообещающим. Мы продолжим настраивать реализацию, чтобы увидеть, сможем ли мы заставить ее работать лучше. На данный момент, вероятно, лучше избегать экспериментов с эхокомпенсатором Windows в больших масштабах. Попробуйте его в контролируемых настройках, например, на локальном компьютере, но не ждите, что он будет работать безупречно!

Улучшена поддержка эхоподавления macOS.

Во время предыдущего эксперимента реализации macOS не хватало возможности правильно отслеживать, какое устройство вывода использовалось. Это означало, что он не сможет отменить эхо от любого устройства, которое не было устройством компьютера по умолчанию. Во многих случаях это могло не быть проблемой, поскольку macOS может автоматически переключать устройства по умолчанию при подключении или отключении гарнитуры и т. д. Однако не во всех случаях это будет работать правильно.

Эта функция была добавлена ​​в Chrome M68 и реализована как для эхокомпенсатора macOS, так и для Windows. Программный эхоподавитель Chrome не пострадал от отсутствия функциональности, поскольку он использует внутреннюю петлю для отмены воспроизведения звука.

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

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

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

Передача этого флага в командной строке делает новое ограничение echoCancellationType глобально доступным в Chrome для текущего сеанса. Используя это ограничение, вы затем можете протестировать собственные подавители эха в своем приложении, как описано выше. Это тот же флаг командной строки, что и в предыдущей пробной версии; в Chrome M68 это включит новую функциональность. Включение новой пробной версии Origin активирует только новые функции, но не активирует предыдущую пробную версию в старых версиях Chrome.

Оформление отзыва

Как и в предыдущем эксперименте, нас интересуют качественные характеристики эхокомпенсаторов macOS и Windows; прежде всего первое. Мы также хотели бы получить отзывы о том, насколько хорошо новое ограничение echoCancellationType работает на практике, насколько просто его использовать и т. д. Это включает в себя его включение в getSettings и getCapabilities .

Нас также интересует, как Chrome взаимодействует с другими приложениями при использовании этих встроенных эхокомпенсаторов, а также любые проблемы со стабильностью или другие проблемы с реализацией.

Если вы пробуете это, пожалуйста, оставьте свой отзыв в этой ошибке . Если возможно, укажите, какое оборудование использовалось (версия ОС, модель оборудования, микрофон/гарнитура/и т. д.). При проведении более масштабных экспериментов приветствуются ссылки на сравнительную статистику качества аудиовызовов; будь то объективное или субъективное.