Алгоритмы реализации детектора активности речи (VAD-Voice Activity Detector)
Методы обнаружения активности диктора (абонента) разделяются на следующие три группы:
- на основе обработки аналогового сигнала;
- на основе обработки цифрового сигнала;
- комбинированные методы.
Для пакетной передачи речи в системах телекоммуникаций наибольший интерес представляют методы второй группы. В этом случае реализация обнаружителей речи в значительной степени зависит от метода преобразования речевого сигнала.
Наиболее простым классификатором речевого сигнала является детектор активности речи (VAD — Voice Activity Detector), который выделяет во входном речевом сигнале активную речь и паузы. При этом фрагменты сигнала, классифицируемые как активная речь, кодируются каким-либо из известных алгоритмов (как правило, методом CELP) с типичной скоростью 4...8 кбит/с. Фрагменты, классифицированные как паузы, кодируются и передаются с очень низкой скоростью (порядка 0,1...0,2 кбит/с) или не передаются вообще. Передача минимальной информации о паузных фрагментах предпочтительна.
При использовании детектора активности речи возможны следующие нежелательные явления: разрывы в речи и возможность того, что шум будет неправильно идентифицирован как речь. Разрывы могут существенно снизить общее качество речи. Вероятность идентификации речи как шума или шума как речи должна быть минимизирована, так как высокий коэффициент активности будет увеличивать интерференцию.
При генерации шума на стороне декодера он (шум) должен быть похож на натуральный, например на шум машины или поезда. Этот шум называется комфортным шумом.
Реализация алгоритмов VAD базируется на следующих положениях:
- речь является нестационарным сигналом. Форма ее спектра обычно изменяется через короткие отрезки времени – 20...30 с;
- фоновый шум обычно стационарен на более длинном отрезке времени, немного изменяясь со временем;
- уровень речевого сигнала обычно выше уровня фонового шума (в противном случае речь была бы неразборчивой).
Сложность задачи построения VAD обусловлена такими факторами, как акустические шумы – наличие шумового фона помещения; наличие коротких шумовых импульсов, которые не несут информации (не являются фонемами или частями фонем), но образуются в процессе синтеза речи; высокими требования к точности и быстроте анализа и др. Последний фактор особенно важен при идентификации активности абонента в случае появления в начале слов коротких фонем, соответствующих взрывным звукам – г, к, п, б, д и т.п., длительность которых не превышает 20...25 мс. Срезание начальных фонем в этих случаях особенно нежелательно, так как это может снизить разборчивость речи.
В системах, где уровень фонового шума очень низок, для определения участков тишины можно использовать простой энергетический порог сигнала. Иллюстрация работы такой разновидности VAD представлена на рисунке 5.7. Входной аналоговый сигнал поступает на вход устройства сравнения, в котором измеряется его амплитуда, и сравнивается с заданным пороговым значением. При превышении амплитудой входного сигнала заданного порога, сигнал поступает на вход кодека и кодируется по определенному алгоритму (интервал Т2 – Т3). Если амплитуда входного сигнала ниже порогового значения (Т1 – Т2), то в момент времени Т1 передается только служебная информация (длиной в несколько бит) о начале паузы, а в момент Т2 о ее окончании. Для выбора порогового значения необходимо постоянно отслеживать уровень шума.
Рис. 5.7. Обнаружение пауз речевого сигнала с помощью энергетической характеристики речевого сигнала
В предложенном подходе выделения интервалов активности и пауз есть один существенный недостаток: зачастую энергия невокализованных звуков (глухие согласные ф, х, ш, с и т. д.) мала и незначительно отличается от энергии шума (паузы) и поэтому, на первом же этапе оценки окон (сравнение значений кратковременной энергии с пороговым уровнем) появляется опасность потери невокализованных звуков, т.е. принятие их за шум. Исходя из этого, необходимо либо снижать пороговое значение, что может привести к обратному эффекту (принятие шумов вместе с невокализованными звуками), либо вместо энергетической характеристики сигнала использовать результаты анализа тонкой структуры частотных характеристик звуков и паузы.
В системах, где существует переменный фоновый шум, нужно использовать более сложный алгоритм. Этот случай типичен для подвижных систем, где радиостанция размещается на движущемся объекте. В этих системах уровень шума очень высок и изменяется, что делает невозможным при использовании только простого энергетического порога отличить смесь речи с фоновым шумом от одного фонового шума. Так как уровень фонового шума может меняться, порог должен быть адаптивным. Однако значение порога должно обновляться только при отсутствии речи. Для этого проверяются спектральные характеристики для определения, похож ли данный отрезок на речь с часто изменяющейся формой спектра или на шум со стационарной спектральной плотностью. Так как речь может быть классифицирована как голос с очень слабо изменяющимся сильным основным тоном, то для большей уверенности в том, что выделена речь, можно также рассматривать изменение в периодичности внутри фрейма.
Структурная схема VAD с обработкой в частотной области, применяемого в системе GSM, приведена на рис. 5.8. Ее работа основана на различии спектральных характеристик речи и шума. VAD определяет спектральные отклонения входного воздействия от спектра фонового шума. Это осуществляется инверсным фильтром, коэффициенты которого устанавливаются применительно к воздействию на входе только фонового шума.
При наличии на входе речи и шума инверсный фильтр осуществляет подавление компонентов шума и снижает его интенсивность. Энергия смеси сигнала и шума на выходе инверсного фильтра сравнивается с порогом, который устанавливается в период воздействия на входе только шума. Этот порог находится выше уровня энергии шумового сигнала. Превышение порогового уровня принимается за наличие на входе реализации сигнал+шум.
Исходными данными для работы алгоритма определения голосовой активности являются р+1 коэффициент автокорреляции и четыре коэффициента запаздывания долгосрочного предсказателя (один для каждого из четырех подфреймов), которые вычисляются на каждом фрейме кодером источника RPE-LTP (где р – порядок LPC-анализа). Решение VAD принимается для каждого фрейма в конце текущей последовательности процессов обработки.
Остаточная энергия LPC может быть определена при инверсной LPC-фильтрации текущего фрейма входного сигнала с дальнейшим суммированием площадей остаточного сигнала. Процесс включает в себе два этапа обработки: инверсную LPC-фильтрацию и вычисление энергии. Для повышения эффективности вычислений эти два процесса могут быть объединены в один следующим образом:
(5.10)
где Е – остаточная энергия; r(i) и A(i) – коэффициенты автокорреляции входного сигнала и средние LPC-коэффициенты, задаваемые соответственно:
(5.11)
где N – размер фрейма анализа (160 выборок);
(5.12)
где aau - средний коэффициент. Уравнение (5.11) вычисляется кодером источника для определения его собственных LPC-параметров, и для его использования в алгоритме VAD дополнительных вычислений не требуется.
Так как спектральные характеристики фонового шума приняты стационарными на большом отрезке времени, в алгоритме VAD используется усреднение значений автокорреляционной функции, относящихся к последнему фрейму. С этой целью два набора коэффициентов автокорреляции вычисляются следующим образом:
(5.13)
где h представляет текущий фрейм; h-1 – предыдущий фрейм и так далее до К-1 фрейма; К – число фреймов, используемых для вычисления средних значений, обычно принимается равным четырем.
Средние LPC-параметры as вычисляются на основе средних коэффициентов автокорреляции с использованием алгоритма Дурбина. Коэффициенты автокорреляции средних LPC-параметров затем вычисляются с использованием
(5.14)
Рисунок 5.8. Структурная схема VAD с обработкой в частотной области
Для определения, является ли сигнал стационарным или нет, средний спектр, представленный усредненными автокорреляционными LPC-параметрами Аa, сравнивается со средними значениями автокорреляции сигнала, вычисленными в текущем фрейме с использованием уравнения
(5.15)
Если разница между Dfh и Dfh-i больше, чем установка порога, текущей фрейм считается нестационарным, если же меньше, текущий фрейм объявляется стационарным.
Так как речевой сигнал может быть спектрально стационарным длительное время, для различения речи и фонового шума в качестве индикатора используется периодичность речи. Значения задержек LTP для четырех подфреймов сравниваются с наименьшим значением задержки. Если оставшиеся задержки очень близки к минимальной задержке, фрейм считается периодическим, в противном случае – апериодическим.
Перед принятием окончательного Решения путем сравнения Е с пределом энергетического порога Uu выполняется проверка для выяснения, не нужно ли обновить значение порога. Порог обновляется, если изменение входного сигнала очень мало, что очень легко подтверждается проверкой значения r(0), или если высока вероятность появления неречевого сигнала, что проверяется с использованием ранее вычисленной информации о периодичности и стационарности. В первом случае, когда r(0) меньше установленного значения Uниж, это показывает на отсутствие сигнала на входе. Энергетический порог устанавливается на его нижний предел, и VAD принимает решение. Во втором случае, когда r(0) выше Uниж для решения о следующем шаге используются вычисленные ранее флаги стационарности и периодичности стац и период. Если флаги стац и период показывают, что текущий входной фрейм стационарный и апериодический, выполняется адаптация. Однако для уверенности, что сигнал не временно стационарный, проверяется несколько (обычно восемь) фреймов, чтобы определить, остаются ли условия для адаптации до того, как эта адаптация будет выполнена. В этом случае кроме обновления энергетического порога Uu, средние LPC параметры aau, которые используются для инверсного фильтра, также обновляются на вновь вычисленный набор а.
После предшествующих этапов обработки путем сравнения Е с Uu принимается окончательное решение, ели Е>Uu, то принимается решение наличии речи. Если принимается решение о наличии неречевого сигнала, применяются методы для ограничения возможности разрывов потока речи. Обычно это выполняется путем убавления этапа «накапливание» на входе VAD. Перед принятием окончательного решения о том, что речевой сигнал отсутствует, нужно последовательно продетектировать несколько «неречевых» фреймов. Число таких фреймов определяется длиной отказа накапливания, который составляет 60...100мс (или 5-6 фреймов), или после интервала накопления, все еще есть признаки наличия «не-речи», то выход VAD используется для сообщения этой информации контроллеру прерывистой передачи.
Формирование комфортного шума управляется речевым кодером. Когда VAD обнаружит, что разговор прекращен, передатчик остается включенным еще в течение следующих пяти фреймов. Во время первых четырех фреймов характеристики фонового шума оцениваются путем усреднения коэффициента усиления и коэффициентов фильтра LРC-анализа. Эти усредненные значения передаются в следующем пятом фрейме, где и содержится информация о комфортном шуме (SID-фрейм). В декодере комфортный шум генерируется на основе LPC-анализа SID-фрейма. Для возможности адаптации комфортного шума SID-фреймы посылаются в течение речевых пауз каждые 480 мс.