| | Download PDF in english | |
| | Скачать PDF версию на русском языке |
|
Назаров А.Г., к.т.н, IntegrIT This e-mail address is being protected from spambots. You need JavaScript enabled to view it |
Широкое развитие рынка мобильных устройств и повышение их вычислительной мощности привело к появлению возможностей с их помощью осуществлять те коммуникационные функции, которые ранее были доступны только для устройств профессионального назначения или премиального класса. Например, обеспечивать аудио и видео конференс-связь между несколькими пользователями с помощью разнообразных популярных сервисов, таких как FaceTime, Skype, Oovoo, Qik. Удешевление стоимости компонентов и широкое внедрение в рынок процессоров класса ARM двигает рынок к использованию их в разнообразных устройствах, например, пультах оперативной и диспетчерской связи, где ранее применялись специализированные процессоры.
С другой стороны, пользователи становятся более требовательными к качеству связи, и традиционные системы с полосой стандартного телефонного канала (300-3400 Гц) уже не могут удовлетворить людей. Постепенно внедряется технология широкополосной (50-7000 Гц) IP-телефонии, дающая повышенное качество речи при приемлемом увеличении полосы, занимаемой трафиком.
Одним из ключевых компонентом IP-телефонии и коммуникационных платформ является акустический эхокомпенсатор. В современной терминологии он является скорее не просто подавителем эха, а скорее основным блоком для препроцессинга речи, включающим эхо, шумоподавление, функции автоматической регулировки уровня речи и общей эквализации речевого сигнала с микрофонного входа.
Одной из серьезнейших проблем, возникающей на пути применения таких эхокомпенсаторов является отсутствие общепринятой спецификации и методов тестирования, позволяющей сравнивать продукты разных производителей по совокупности параметров. Стоит отметить, что международное сообщество постоянно находится в поиске методов стандартизации методов спецификации свойств эхо и шумоподавителей. Целый набор международных рекомендаций (P.501, P.862 и проч.) описывают общие методики тестирования качества, в том числе специфицируют источники и приемники синтезированной речи, построение акустических комнат и проч. Некоторое время назад даже существовала рекомендация ITU-T G.167, посвященная специфицированию акустических шумоподавителей. Однако, она в целом была ориентирована на практически идеальные условия инсталляции и была далека от реального применения в мобильных устройствах.
Данная статья рассматривает основные требования, предъявляемые к акустическому эхоподавителю, а также обращает внимание на те проблемы, с которыми сталкиваются разработчики ПО коммуникационных платформ при его использовании.
Спектр проблем, связанных с акустическим эхоподавлением довольно широк, и мы рассмотрим только часть из них
оптимизация задержки
особенности аудиотракта устройств и их влияние на эхоподавление
типичные искажения сигналов
совместное шумо и эхоподавление
ресурсные ограничения для процессоров класса ARM
Задержка является важнейшей характеристикой аудио подсистемы. Известно, что субъективное качество речи (MOS quality) и сложность восприятия при двустороннем общении сильно ухудшается при увеличении задержки. Рекомендация G.114 приводит некоторые экспериментальные результаты, иллюстрирующие этот эффект.

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

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

Мы видим, что он использует сигнал с выхода динамика (обычно обозначаемый как Rin) для синтеза эха с тем, чтобы затем скомпенсировать эхосигнал, пришедший с микрофонного входа (Sin). Очевидно, что такой классический эхоподавитель весьма чувствителен к асинхронности сигналов Rin и Sin и при наличии даже небольшой асинхронности (часто неуловимой на слух) может оказаться совершенно неработоспособным.
Это создает проблемы при интеграции и вот почему. Как правило, операционные системы типа Linux, Android не приспособлены для обеспечения синхронности вывода речи и еe ввода. В целом, на слух речь может выглядеть вполне синхронной, но достигается это за счет манипуляций с буферами ввода-вывода, которые могут приводить к периодической вставке или удалению отсчетов аудио сигнала, что эквивалентно постоянно изменяемой вариации задержки.
Настоящую синхронность можно обеспечить либо написанием специального аудиодрайвера, работающего в режиме ядра операционной системы, либо вводом дополнительных буферов ввода-вывода, сглаживающими асинхронность. Таким образом общая задержка по сравнению с асинхронными драйверами может существенно вырасти (на 100-150 мсек). Между тем, такая задержка уже становится неприемлемой для полноценной высококачественной связи. Например, рекомендация ITU-T G.114 специфицирует одностороннюю задержку в 150 мсек как максимальную для приемлемого восприятия человеком.
Какие могут быть выходы? Одним из вариантов, если есть возможность модифицировать аппаратный дизайн, является включение в аудиотракт дополнительного кодека (или использование стереоканала), который будет оцифровывать сигнал, поступающий непосредственно на динамик. При этом именно эти данные можно использовать как Rin для эхоподавителя, а так как они будут вычитываться вместе с микрофонным сигналом, то асинхронность ввода вывода не будет играть роли. Тем самым, можно будет использовать асинхронные драйвера, имеющие минимальную задержку.

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

Часть эхо-сигнала возникает из-за механической связи между динамиком и микрофоном. Хотя производители и предпринимают меры по демпфированию как динамиков, так и микрофонов, в небольшом корпусе мобильного устройства довольно затруднительно сделать низкий уровень проникания сигнала напрямую через корпусные элементы. Помимо довольно высокого уровня такого сигнала, для него характерен довольно высокий уровень нелинейных искажений, а также в ряде случаев и наличие ярко выраженных резонансных пиков.
Второй источник эха — собственно отражения от элементов окружения устройства. Эхо при этом складывается как из рассеянных компонент по всей длине эхопути, так и из сосредоточенных отражений. В этом случае довольно характерно быстрые флуктуации по фазе и по амплитуде эха. Сам общий эхопуть оказывается достаточно большим даже для небольших помещений. Общепринятыми параметрами, достаточными для работы в большинстве помещений считаются величины 256 мсек, а для больших или вытянутых помещений эхопуть достигает величин 512 мсек и даже более.
Вообще, для мобильных устройств довольно характерен высокий уровень интермодуляции и нелинейных искажений. Это обуславливается как собственными свойствами микрофонов и динамиков, использованием нелинейных выходных усилителей для минимизации энергопотребления, резонансами в корпусных элементах и проч. В целом, уровень нелинейных искажений порядка -10 дБ и интермодуляции -15 дБ является скорее нормой, чем дефектом. Отдельно необходимо отметить, что в ряде устройств свою лепту вносят, как ни странно, штатные аудиодрайвера. Производители добавляют в них функции автоматической регулировки усиления и нелинейной обработки для уменьшения уровня шума, а также зачастую, и эквализации для компенсации частотной характеристики микрофона. Однако это может катастрофически повлиять на эхокомпенсатор, так как ему придется отрабатывать изменения сигнала АРУ как изменение эха, а любая нелинейная обработка для него выглядит как дополнительные нелинейные искажения. Таким образом, сделанное производителем АРУ и шумоподавление может существенно ухудшить подавление эха.
Таким образом, особенности аудиотракта накладывают перечень требований к эхокомпенсатору:
он должен иметь слабую чувствительность к нелинейным и интермодуляционным искажениям
он должен поддерживать эхопуть до 512 мсек
он должен иметь средства работы на различных частотах дискретизации сигнала
скорость адаптации должна быть высокой, чтобы минимизировать влияние встроенного АРУ
он должен иметь средства борьбы с нежелательными резонансами, а также иметь возможность коррекции ЧХ микрофонного тракта
Особенностью применения мобильных устройств является использование их в условиях высокого уровня внешних шумов и достаточно быстро меняющейся шумовой обстановки. При этом шумы носят разнообразный характер и могут быть как широкополосные, так и частотно-селективные. Казалось бы, в офисных помещениях шумов должно быть немного, но возникают дополнительные шумы, являющиеся гармониками сетевых частот, производимые люминесцентными и энергосберегающими лампами. Их спектр весьма заметен даже на частотах выше 1 кГц. В целом, типичный уровень шумов может составлять величину порядка 10-15 дБ от уровня речи. В таких условиях, эхоподавитель должен обеспечивать совместное эхо и шумоподавление, в противном случае могут возникать следующие негативные эффекты
замедление скорости сходимости подавителя эха
ухудшение качества речи, особенно за счет проглатывания коротких фонем, шипящих звуков и искажения слабой речи
ухудшение подавления в режиме двойного разговора либо появления остаточного эха на фоне подавленного шума в паузах
замедление адаптации шумоподавителя на изменение внешнего шума в присутствии значительного эха или двойного разговора
возникновение так называемого музыкального шума в паузах или металлизация речи
существенное изменение тембра речи, подавление обертонов и высокочастотных составляющих
Также необходимо отметить, что шумоподавитель, как правило, имеет собственную довольно большую вносимую алгоритмическую задержку — обычно не менее 30 мсек. И поэтому, объединение шумоподавителя и эхоподавителя уменьшает общую алгоритмическую задержку.
Ниже показаны 2 типичных случая использования эхокомпенсатора в условиях повышенного уровня шумов. Видно, что и при использовании в автомобиле и на улице, шумовая обстановка нестабильна и требует быстрой реакции как на частотно селективные помехи, так и на изменение фонового шума.

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

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

С вычислительной точки зрения ресурсы определяются двумя факторами:
собственно процедурой фильтрации
поиском оптимальной импульсной характеристики и алгоритмом слежения
На первом сэкономить невозможно, вторую часть можно тем или иным способом сделать меньшей, чем первую, за счет более редкой адаптации коэффициентов. К примеру, делая это не на каждый отсчет входного сигнала, а существенно реже. Обычно реже 5-10 мсек делать это невозможно, из-за вариации речевого сигнала на этом интервале и уменьшения скорости сходимости. Грубо можно полагать, что алгоритм слежения и обновления импульсной характеристики может занимать до 25% ресурсов от процедуры фильтрации.
Процедура фильтрации может быть сделана как во временной области, так и в частотной. Несмотря на то, что в литературе частотный метод превозносится, как полностью решающий все проблемы с потреблением ресурсов, это оказывается не совсем так.
В временном методе все определяется фильтрацией. Как мы уже отмечали, для широкополосного эхоподавителя необходимо иметь эхопуть до 512 мсек, что соответствует фильтру длиной 8192 отвода, работающего на частоте дискретизации 16 кГц. Общее количество операций типа multiple-accumulate (MAC) составляет при этом около 130 миллионов. Процессор класса ARM9e способен выполнять примерно 0.75 MAC за цикл (если учитывать накладные расходы на загрузку операндов), процессор класса ARM11 — примерно 1.5 MAC за цикл.
Итого, учитывая приблизительно 30% расходы на кэш и 25% расходы на остальные части эхоподавителя, получим приблизительно следующие цифры:
|
Платформа |
MIPS |
|
ARM9E |
280 MIPS |
|
ARM11 |
143 MIPS |
В частотном методе при проведении оценок необходимо оттолкнуться от производительности процессора по операции FFT. Одним из промоутируемых свойств процессоров ARM11 являлось то, что они поддерживают множество SIMD операций, которые возможно эффективно утилизировать при реализации FFT (SHADD16 и проч.). Это действительно верно, но FFT для больших длин страдает от потери разрядности, ведь SIMD операции возможны только над 16-битными операндами. Дополнительное адаптивное масштабирование требует дополнительных вычислений и все это приводит к тому, что выигрыш ARM11 над ARM9e не столь велик, как изначально ожидалось. Для длины FFT 8192 производительность на реальном процессоре с учетом кэша составляет приблизительно
|
Платформа |
Такты |
|
ARM9E |
500000 |
|
ARM11 |
320000 |
Заметим также, что в частотном методе фильтрация делается один раз на блок отсчетов, после чего производится процедура обновления импульсной характеристики, поэтому накладные расходы на нее могут быть существенно выше, чем в во временном методе. Но для простоты положим, что накладные расходы составляют те же 25%. Для процедуры фильтрации нужно делать как минимум 3 FFT (для вычисления спектра сигнала, частотной характеристики и обратного преобразования сигнала из частотной области во временную), интервал же обновления не должен превышать 10 мсек, как мы уже замечали ранее.
Таким образом, для частотных методов оценки дают:
|
Платформа |
MIPS |
|
ARM9E |
188 MIPS |
|
ARM11 |
120 MIPS |
Как мы видим, выигрыш не столь уж велик, особенно на ARM11. Выигрыш может быть и больше, но это требует увеличения интервала обновления импульсной характеристики, что может существенно влиять скорость сходимости, на процедуру обнаружения двойного разговора и проч.
Дополнительными накладными расходами будут алгоритм шумоподавления, компенсация нелинейных искажений и проч. В целом, они добавят величину порядка 10-15 MIPS для ARM11 и 15-25 для ARM9e. Стоит также заметить, что описанная классическая процедура эхоподавления вне зависимости от используемого алгоритма адаптации сильно страдает от асинхронности ввода . Дополнительные меры, которые позволяют снизить ее зависимость от асинхронности приводят к дополнительному увеличению потребления ресурсов.
Таким образом, мы видим, что классические методы эхоподавления как в частотной, так и во временной области дают весьма высокое потребление ресурсов (порядка 150 MIPS для ARM11 и 200 MIPS для ARM9e) для эхокомпенсаторов, работающих в широкополосном режиме с частотой дискретизации 16 кГц. Поэтому в реальных алгоритмах используются разнообразные сложные методы понижения вычислительной сложности при сохранении качества, что является сложной научно-технической задачей. Во многих применениях разумным подходом является отказ от широкополосного режима и работа в стандартном узкополосном режиме с частотой дискретизации 8 кГц, либо уменьшение максимального эхопути в 512 мсек вдвое. При этом вычислительные расходы будут приблизительно вдвое меньше. Однако в любом случае вычислительная сложность остается достаточно высокой, что является важным фактором, который следует учитывать при использовании эхоподавителя.
Что еще следует учитывать при использовании эхоподавителя? В первую очередь то, что объем потребляемой им памяти данных весьма велик и составляет величины около 100-150 кбайт плюс дополнительно порядка 50-100 кбайт временных данных. И, что самое главное, эта память в течении работы все время обновляется. Как следствие, на процессорах с малым кэшем (16 или 32 кбайт) производительность может существенно пострадать. Также падение общей производительности может быть заметно при использовании его совместно с другими приложениями, работающими в многопоточной среде операционной системы и активно использующими кэш. Например, приложения, обрабатывающие видео, также ресурсоемки и осуществляют активный обмен с памятью через кэш. Поэтому следует обращать внимание на аккуратное совместное использование временной памяти между приложениями.
В целом, можно заключить, что для процессоров класса ARM9e задача акустического эхоподавления довольно тяжела и целесообразнее использовать более мощные ядра ARM11. Использование DSP процессоров, например процессоров семейства C64xx или DSP ядра процессоров OMAP, как правило, обеспечивает существенное уменьшение ресурсопотребления (до 3-5 раз по сравнению с ARM11).
Описанные выше проблемы успешно решены в программном компоненте для препроцессинга речи CrystalSpeech от компании IntegrIT. Ниже приведена сводная таблица технических характеристик и его свойств.
|
Параметр |
Спецификация |
|
Режимы работы |
узкополосный (частота дискретизации 8 кГц), широкополосный (частота дискретизации 16 кГц), дополнительно комплектуется универсальными ресемплерами для поддержки популярных частот дискретизации |
|
Устойчивость к вариации задержки |
есть |
|
Компенсация нелинейных и интермодуляционных искажений |
есть |
|
Дополнительное подавление гармоник 50 Гц шумов |
есть |
|
Генератор комфортного шума |
есть |
|
Эхопуть |
до 512 мсек |
|
Компенсация задержки в аудиодрайверах |
до 512 мсек |
|
Общая алгоритмическая задержка |
60 мсек |
|
Корректор ЧХ микрофонного тракта с блокировкой резонансов |
есть |
|
АРУ для речевого сигнала |
есть |
|
Шумоподавление |
комбинированное с эхоподавлением |
|
Коррекция музыкального шума |
есть |
|
Типовое потребление ресурсов |
44 MIPS (узкополосный режим), 75 MIPS (широкополосный режим) для процессора ARM11 |
|
Максимальное потребление памяти |
120 кбайт памяти данных плюс 50 кбайт временных переменных (широкополосный режим) |
|
Поддерживаемые платформы |
ARM9e, ARM11, Cortex, Marvell Kirkwood/Armada, C64xx/DaVinci/OMAP, Tensilica HiFi2/ConnXD2, x86 |
|
Операционные системы |
Linux, Maemo/MeeGo, Windows, Windows CE/Mobile, Android, DSP-BIOS |
|
|
|
CrystalSpeech включает интеллектуальную систему эхо и шумоподавления, выделяющую голос абонента на фоне шума и акустических помех и обеспечивающую естественное качество звучания. Это позволяет пользователям комфортно общаться в самых разнообразных условиях, даже при экстремально высоких уровнях шума. Технология эхоподавления специально адаптирована под использование в различных мобильных устройствах таких, как ноутбуки и коммуникаторы, где собственное качество звука лимитировано механическим исполнением корпусов, малым размером динамиков и сильной акустической связью между микрофоном и динамиками.
Уникально низкое потребление ресурсов даже на мобильных процессорах и мультиплатформенная реализация позволяют использовать технологию в самых разнообразных приложениях – от мультимедийных гаджетов до высокопроизводительных серверов конференц-связи.
Программные решения компании IntegrIT используются российскими и зарубежными производителями телекоммуникационного оборудования. Широкий выбор программных VoIP компонентов, оптимизированных для наиболее популярных современных процессоров, позволяет производителям оборудования быстрее выводить на рынок свои изделия, сокращая время и ресурсы на собственные разработки. Подробную информацию о CrystalSpeech и других продуктах можно получить по ссылке www.integrit.com/products.