ΣSigmaStudio English

Акустическая компенсация эха

Блок акустической компенсации эха (AEC) предназначен для удаления эха, реверберации и нежелательных добавленных звуков из сигнала, проходящего через акустическое пространство. Как показано на диаграмме ниже, звук, исходящий от удаленного говорящего, известный как «Far End In» (вход дальней стороны), подается параллельно на путь DSP и на акустический тракт. Акустический тракт состоит из усилителя/громкоговорителя, акустической среды и микрофона, возвращающего сигнал в DSP. Блок AEC основан на адаптивном FIR-фильтре. Алгоритм непрерывно адаптирует этот фильтр для моделирования акустического тракта. Затем выходной сигнал фильтра вычитается из сигнала акустического тракта для получения «чистого» выходного сигнала, из которого линейная часть акустического эха в значительной степени удалена. Блок AEC также вычисляет остаточный сигнал, содержащий нелинейные акустические артефакты. Этот сигнал отправляется в блок подавления остаточного эха (RES), который дополнительно восстанавливает входной сигнал. Затем сигнал (опционально) пропускается через функцию шумоподавления для формирования выходного сигнала, известного как «Far End Out» (выход дальней стороны).

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

Адаптивный фильтр в блоке AEC удалит любой сигнал, который является частью входного сигнала дальней стороны. Это может быть чрезвычайно полезно. Например, если музыка, играющая в ближнем пространстве, добавляется к входному сигналу дальней стороны, она будет подавлена адаптивным фильтром вместе с сигналом, поступающим от дальней стороны. Это обеспечивает полнодуплексную связь во время воспроизведения музыки (или любого известного сигнала) в ближнем пространстве. Продолжая приведенный выше пример: если водитель слушает музыку во время разговора по громкой связи, музыку не нужно ставить на паузу во время разговора. Как голос удаленного собеседника, так и музыка будут удалены из сигнала, снятого микрофоном, и только голос локального говорящего будет отправлен на выход дальней стороны.

Существуют два блока, которые вместе составляют алгоритм акустической компенсации эха, реализованный на SigmaDSP. Основной блок (AEC) удаляет линейную часть эха и реверберации. Он работает в области потоковой обработки и выполняет большую часть функциональности. Второй блок (RES) работает в частотной области и дополняет основной блок AEC, выполняя нелинейную обработку остаточного эхо-сигнала. Подавление остаточного эха значительно улучшает производительность, и все контрольные показатели производительности были получены при совместном использовании двух блоков. Однако блок RES, строго говоря, необязателен.

Дополнительный блок шумоподавления также показан на диаграмме ниже. Хотя формально он не является частью алгоритма AEC, они чаще используются вместе. Блок шумоподавления также работает в частотной области и может следовать за подавлением остаточного эха в блочной/частотной области без дополнительных затрат. Блок шумоподавления, однако, полезен во многих приложениях, не требующих AEC.

Акустическая компенсация эха

Большинство реализаций AEC, включая эту, оптимизированы для речи. В связи с этим полоса пропускания уменьшена для минимизации вычислительных ресурсов. Существуют три широко признанных стандарта полосы пропускания: узкая полоса (NB) использует частоту дискретизации 8 кГц (полоса пропускания 4 кГц). Это полоса, исторически использовавшаяся в телефонии (PSTN). Широкая полоса (WB) использует частоту дискретизации 16 кГц (полоса пропускания 8 кГц). Это наиболее часто используемая реализация для новых продуктов, и именно она документирована ниже. Базовая реализация SigmaDSP является узкополосной. Однако широкополосную реализацию можно создать с помощью двух узкополосных блоков: один для нижних частот, другой для верхних. Документация и примеры проектов являются широкополосными и реализованы именно таким образом. Сверхширокая полоса (UWB) использует частоту дискретизации 32 кГц (полоса пропускания 16 кГц). UWB AEC редко используется в речевых приложениях.

Когда требуется акустическая компенсация эха

AEC необходима, когда сигнал дальней стороны (голос, исходящий с другого конца линии связи) воспроизводится через громкоговоритель в реверберирующем акустическом пространстве и улавливается микрофоном. Если бы алгоритм AEC не был реализован, эхо, соответствующее задержке распространения звука от динамика до микрофона, а также любая реверберация, возвращались бы на дальний конец. Помимо неестественного звучания и неприятного прослушивания, эти артефакты значительно снижают разборчивость речи. Блок-схема показывает алгоритм, подавляющий выходной сигнал только одного динамика, улавливаемый одним микрофоном. Экземпляр этого полного сигнального тракта должен быть повторен для каждого микрофона в системе. Однако существуют способы подавления выходных сигналов нескольких динамиков, каждый из которых воспроизводит свой сигнал. Это требует, чтобы пространственное соотношение между громкоговорителями и микрофоном было фиксированным и измерялось как импульсная характеристика. Некоторые изменения импульсной характеристики, например, вызванные поглощением и отражениями от людей в пространстве, будут скомпенсированы адаптивным фильтром. Такой тип конфигурации должен быть спроектирован и настроен как система, адаптированная к известной среде, в рамках финальной настройки.

Наиболее распространенное применение акустической компенсации эха — полнодуплексная связь в телефонных системах, таких как система громкой связи в автомобиле или спикерфон. Однако AEC требуется в самых разных приложениях помимо этих, например, в автомобильных системах экстренного вызова eCall, предварительной обработке голосового пользовательского интерфейса, интеркомах, громкой связи для лежачих больных в больницах или пациентов на домашнем уходе и т. д. Также все более распространенным является использование в «активных» аудиториях, лекционных залах и конференц-залах. В них используются стационарные микрофоны, покрывающие площадь комнаты, вместо близко расположенных микрофонов для каждого потенциально говорящего человека. Это гарантирует, что все в комнате слышат говорящего, а также позволяет легко включать микрофоны для вопросов из аудитории, не передавая микрофон по кругу. Такая система менее разрушительна и упрощает запись совещания. Аналогично, автомобильные системы внутренней связи, обеспечивающие улучшенную коммуникацию между пассажирами, также полагаются на AEC.

Соответствие стандартам и тестирование

Алгоритм AEC-RES соответствует требованиям самых высокопроизводительных телекоммуникационных стандартов, включая тесты Skype for Business. Это более строгий стандарт, чем большинство стандартов ITU, поэтому данная реализация предварительно квалифицирована для многих приложений. Одним из заметных исключений являются автомобильные системы экстренного вызова eCall, такие как те, что обязательны в Европе и Российской Федерации (ГЛОНАСС). ADI также находится в процессе квалификации и сбора данных для этих приложений. Все измерения проводятся в акустической лаборатории ADI с использованием международного отраслевого стандартного оборудования и программного обеспечения ACQUA от HEAD Acoustics (Германия). Для получения более подробной информации об этих тестах, копий данных, сведений по интерпретации результатов и дополнительных запросов на тестирование, пожалуйста, свяжитесь с SigmaStudioLicensing.

Реализация AEC на SigmaDSP

Блоки SigmaStudio

Как указано выше, реализация состоит из двух блоков. Основной блок адаптивного фильтра AEC работает в потоковой области и является узкополосной реализацией. Широкополосную реализацию можно создать, используя два таких блока, как показано ниже. Второй блок работает в частотной области и выполняет дополнительную обработку нелинейного остатка (RES). На второй блок алгоритма подаются три сигнала: (1) выходной сигнал блока AEC за вычетом сигнала с микрофона, (2) выходной сигнал FIR-фильтра из блока AEC до вычитания сигнала микрофона и (3) прямой сигнал с микрофона.

Блоки SigmaStudio Блоки SigmaStudio
Блоки SigmaStudio Блоки SigmaStudio

Параметры и настройка

Основной блок AEC имеет два пользовательских параметра. Первый — длина адаптивного FIR-фильтра. Длина фильтра по умолчанию составляет 640 отводов. Второй — фильтр верхних частот, по умолчанию установленный на 150 Гц. Весь блок и фильтр верхних частот имеют переключатели включения/отключения.

Длина фильтра AEC (отводы)

В основе блока AEC лежит адаптивный FIR-фильтр. Этот параметр задает количество отводов FIR-фильтра. Фильтр можно представить как модель импульсной характеристики акустического тракта от громкоговорителя до микрофона, а также реверберации и эха, которые необходимо подавить. Длина этого фильтра связана с длиной этой импульсной характеристики и продолжительностью, в течение которой блок может эффективно подавлять эхо. Значение по умолчанию — 640 отводов. При частоте дискретизации 16 кГц это соответствует приблизительно 40 мс или 13,8 м распространения звука. Обратите внимание, что тестирование на соответствие стандартам проводилось с параметрами по умолчанию, и нет гарантии производительности при изменении этого параметра.

Фильтр верхних частот AEC (HPF)

Фильтр верхних частот, по умолчанию установленный на 150 Гц, удаляет низкочастотный гул и другие звуки ниже частотного диапазона речи. Частоту среза этого фильтра можно регулировать в соответствии с условиями применения. Обратите внимание, что тестирование на соответствие стандартам проводилось с параметрами по умолчанию, и нет гарантии производительности при изменении этого параметра.

Временное сглаживание RES

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

Спектральное сглаживание RES

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

Коэффициент сглаживания RES

Коэффициент сглаживания регулирует степень сглаживания, применяемого при обработке остаточной, нелинейной части акустического эха и реверберации. Обратите внимание, что тестирование на соответствие стандартам проводилось со значением по умолчанию 0.7, и нет гарантии производительности при изменении этого параметра.

Использование алгоритма в проекте SigmaStudio

Пробные DLL для оценки

Блоки AEC доступны в пробных версиях, которые отключаются через 30 минут. На каждом блоке на схеме есть счетчик, который отсчитывает секунды до отключения звука (на изображении выше показаны полные 1800 секунд). Таймер сбрасывается при каждой компиляции-компоновке-загрузке.

Пробные версии блоков AEC и RES можно загрузить с помощью функции «Downloadable Add-Ins» в SigmaStudio версии 4.2 и новее. Доступ к загрузкам можно найти в меню «Tools» (Инструменты):

Пробные DLL для оценки

Пример кода

Примеры проектов сигнального потока можно найти здесь.

Сигнальный поток на схеме

Децимация до 16 кГц

Как упоминалось выше, реализация с частотой дискретизации 16 кГц (полоса пропускания 8 кГц) известна как широкополосная AEC и в настоящее время является наиболее востребованным вариантом полосы пропускания. Входной сигнал 48 кГц может быть прорежен в три раза до 16 кГц либо с помощью аппаратного ASRC, либо с помощью FIR-фильтра антиалиасинга и блока децимации, как показано ниже. Коэффициенты FIR-фильтра можно найти здесь.

Сигнальный поток на схеме

Разделение сигнала на высокие и низкие полосы с помощью QMF

Базовый строительный блок AEC оптимизирован для входа 8 кГц и может использоваться напрямую для реализации узкополосной AEC. Для реализации широкополосной AEC сигнал 16 кГц разделяется на два потока по 8 кГц с помощью квадратурного зеркального фильтра (QMF). Один поток представляет нижние частоты, другой — верхние. Тот же фильтр применяется к входному сигналу микрофона, как показано ниже. Коэффициенты FIR-фильтра приведены здесь для нижней полосы и верхней полосы.

Сигнальный поток на схеме

Пропустите высокие и низкие полосы через отдельные блоки AEC

Полосы нижних и верхних частот на 8 кГц подаются на отдельные блоки AEC. Для нижней полосы добавляется фильтр подавления постоянной составляющей. Помимо обработанного выходного сигнала дальней стороны, сигнал микрофона пропускается вместе с прямым выходом адаптивного FIR-фильтра (до вычитания сигнала микрофона). Этот выход FIR-фильтра используется блоком RES для дополнительной обработки нелинейных остаточных эхо-сигналов в частотной области.

Сигнальный поток на схеме

Передайте выходной сигнал блока AEC в блочную область для остаточной, нелинейной обработки в частотной области

Три выхода для каждой из двух частотных полос затем подаются в область блочной обработки. Они соответствуют входам и выходам на вкладке «Block Schematic», отдельной от потоковой обработки.

Сигнальный поток на схеме

В блочной области передайте сигналы в блок остаточной нелинейной обработки

Ячейка синтеза применяет окно Ханна к каждому блоку отсчетов с 50% перекрытием. Блок преобразуется в частотную область с помощью БПФ с действительным входом и комплексным выходом. Этот комплексный спектр передается в блок RES для остаточной нелинейной обработки AEC, применяется обратное БПФ, и сигнал реконструируется с 50% перекрытием и суммированием обратно во временную область. Три входа блока RES показаны на общей блок-схеме выше. Коэффициенты окна приведены здесь для окна анализа и окна синтеза.

Сигнальный поток на схеме

Реконструируйте сигнал 16 кГц с помощью QMF-фильтра

Процесс обратим: потоки 8 кГц повышаются до 16 кГц, и верхняя и нижняя частотные полосы объединяются с использованием тех же коэффициентов, что и для нижней полосы квадратурного зеркального фильтра.

Сигнальный поток на схеме

Интерполируйте с коэффициентом 3, чтобы вернуть сигнал к 48 кГц для дальнейшей обработки и вывода

Затем сигнал 16 кГц повторно дискретизируется с использованием этих коэффициентов FIR-фильтра антиалиасинга до 48 кГц для возможной дальнейшей обработки и вывода на ЦАП.

Сигнальный поток на схеме

Руководства пользователя для плагинов

Лицензирование

ADI взимает лицензионный сбор за каждое отгруженное конечное изделие. Если на одном DSP работает более одного блока AEC или в системе несколько процессоров SigmaDSP, сбор взимается только один раз. Пожалуйста, свяжитесь с SigmaStudioLicensing для получения информации о лицензировании.

Licensing в SigmaStudio: настройка и параметры

Блок акустической компенсации эха (Acoustic Echo Cancellation, AEC) — это специализированный алгоритм в среде SigmaStudio для процессоров семейства SigmaDSP ADAU от Analog Devices. Его назначение — удаление эха, реверберации и нежелательных добавленных звуков из сигнала, проходящего через акустическое пространство, что необходимо для организации качественной полнодуплексной связи в системах громкой связи, спикерфонах и автомобильных hands-free устройствах. Принцип работы AEC основан на адаптивном FIR-фильтре. Сигнал дальней стороны («Far End In») подается параллельно на путь DSP и на акустический тракт, состоящий из усилителя, громкоговорителя, среды и микрофона. Алгоритм непрерывно адаптирует FIR-фильтр для моделирования импульсной характеристики этого тракта. Выход фильтра вычитается из сигнала, снятого микрофоном, что позволяет устранить линейную часть эха. Остаточный сигнал с нелинейными артефактами направляется в блок подавления остаточного эха (RES), после чего сигнал может быть дополнительно обработан функцией шумоподавления и выдан как «Far End Out». Важной особенностью алгоритма является приостановка адаптации фильтра при обнаружении в акустическом тракте локальных звуков, не связанных с сигналом дальней стороны. Это позволяет человеку говорить непосредственно в микрофон без искажений: собеседник на дальнем конце слышит только голос локального говорящего.