Смекни!
smekni.com

Разработка программного канального вокодера (стр. 2 из 3)

Полученный набор параметров, оптимизированный по критерию точности и минимальной разрядности представления, передается в цифровом виде по каналу связи в реальном времени, а на приемном конце осуществляется синтез речевого сигнала по перечисленным параметрам. Таким путем удается снизить информационную емкость речевого сигнала до уровня 16000 - 1200 бит/сек, причем с сохранением разборчивости и индивидуальных особенностей речи говорящего.


1.1.3. Другие способы кодирования

Следующим шагом в направлении дальнейшего увеличения компрессии является создание фонемного вокодера. Как известно, минимальной слогоразличительной (и словоразличительной) единицей речи является фонема. Поэтому создание устойчивого метода распознавания фонем позволит снизить скорость кодирования речевой информации до 100 бит/сек, что соответствует информационной скорости текста. Следует отметить, что на приемной стороне речь будет восстановлена синтезатором речи по фонемному тексту, при этом информация об индивидуальности диктора будет утрачена.

1.2. Канальные вокодеры

Канальный вокодер представляет собой совокуп­ность двух основных частей - ана­лизирующей (передающая сторона) и синтезирующей(приемная), кото­рые содержат идентичные наборы(гребенки) по­лосовых фильтров, перекрывающих оп­ределенный частотный интервал. Структура канального вокодера представлена на рисунке 9.1:



Рисунок 9.1 - Структурная схема канального вокодера

Рисунок 9.2 - АЧХ гребенки фильтров

Фильтры блока анализа обеспечивают тональное раз­деление спектра сигнала. Для перекрытия всей полосы звуковых частот, наряду с полосовыми, в гребенке используют фильтры НЧ и ВЧ (в самых низкочастотном и высоко­частотном каналах). Типовая амплитудно-частотная характеристика гребенки фильтров, в случае равномерного разделения каналов может иметь следующий вид:

Детектор и фильтр НЧ в каждом канале выде­ляют огибающую сигнала данного канала, и каждая из них характеризует энергию речевого спект­ра в соответствующей полосе частот для фрагмента речи (длина фрагмента 5-30 мс). Для более компактной передачи выходы каждого из каналов могут логарифмироваться и кодироваться с помощью дельта импульсной кодовой модуляции(ДИКМ)[1].

От числа частотных полос зависит разборчивость синтезированной речи. Хорошие результаты получаются при числе каналов 15-16 (полоса 100 Гц... 4 кГц). Для улучшения качества восстановленной речи при выборе центральных частот и ширины полос пропускания канальных фильтров целесообразно использовать критические полосы слуха[1].

При выборе типа фильтров необ­ходимо иметь в виду, что спект­ральные составляющие сигнала вбли­зи центральной частоты резонансных фильтров подвергаются существенным фазовым сдвигам, а это приводит к изменению тембра, даже если ампли­тудные соотношения сохранены. Причем при увеличении порядка фильт­ров фазовый сдвиг увеличивается, явля­ясь причиной характерной для вокодера неестественности речи. С другой сторо­ны, при недостаточной крутизне спа­да АЧХ фильтров появляется “смазанность” синтезированной речи. Практика показыва­ет, что оптимальный результат соот­ветствует АЧХ фильтров при крутизне их спада при­мерно 36 дБ на октаву.

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

Кроме оценки энергии сигнала в частотных полосах, в блоке анализа также производится оценка характера речевого фрагмента. В детекторе тон/шум(Т-Ш) оценивается: вокализованным или фрикативным является данный фрагмент речевого сигнала. Такой детектор может быть реализован через определение числа переходов через ноль речевого сигнала (для вокализованных фрагментов в отличие от фрикативных число переходов через ноль невелико) или оценкой энергии сигнала в полосах до 800 Гц и более 2КГц (структурная схема такого детектора представлена на рисунке 9.3).

Рисунок 9.3 – Структура детектора тон-шум

Также в блоке анализа происходит определение частоты основного тона для вокализованных фрагментов речи. Для этого в структуру блока анализа вводится выделитель основного тона (ВОТ). Известно, что значение ОТ для разных голосов может изменяться почти в 10 раз - от 2 до 18 мс. Это обстоятельство создает немало трудностей при оценке ОТ, так как слух очень чувствителен к его искажениям. На сегодняшний день известно большое количество алгоритмов оценки ОТ, оперирующих как непосредственно с временным представлением речевого сигнала, так и со спектром речи. Например, метод Голда-Рабинера[2,5], автокореляционный метод[1,2], SIFT(simplified inverse filter tracking) алгоритм [2].

Таким образом, для каждого фрагмента речевого сигнала на приемную сторону передается признак тон-шум(1 бит), частота основного тона, в случае вокализованного фрагмента(5-6 бит), значения энергии сигнала по каналам (при использовании ДИКМ менее 5 бит на канал).

На приемной стороне, в случае если принят вокализованный фрагмент, в качестве источника возбуждения гребенки фильтров выступает генератор периодических сигналов(ГТ). В качестве сигнала возбуждения может быть выбрана последовательность специального вида импульсов[1] с периодом равным частоте основного тона данного фрагмента (также принимаемой из канала связи). В случае невокализованого фрагмента, в качестве сигнала возбуждения используется белый шум(ГШ), который может быть получен с помощью генератора случайный чисел.

Сигнал возбуждения умножается на значения энергии для каждого из каналов, после чего поступает на фильтр соответствующего канала (гребенка фильтров блока синтеза полностью аналогична гребенке блока анализа).

Для получения выходного синтезированного речевого сигнала выходы всех каналов блока синтеза суммируются.

2. Синтез цифровых рекурсивных фильтров с использованием

пакета MATLAB

Решение задачи синтеза цифровых рекурсивных фильтров(РФ) сводится к нахождению коэффициентов ak и bk разностного уравнения:

(9.1)

Известны прямые и косвенные методы синтеза рекурсивных цифровых фильтров[4,1]. Прямые методы основаны на непосредственном определении параметров цифровых РФ по заданным временным или частотным характеристикам. Косвенные методы синтеза цифровых РФ основаны на дискретизации аналогового фильтра-прототипа, удовлетворяющего заданным требованиям. Существуют различные способы аппроксимации аналоговых фильтров[6,1]. На практике широко применяется аппроксимация АЧХ аналоговых фильтров с помощью полиномов Баттерворта, Чебышева, Бесселя, Кауэра.

При проектировании фильтров обычно задают следующие требования к их амплитудно-частотным характеристикам(АЧХ):

- границы полос пропускания и задерживания (соответственно w1 и w2);

- затухание в полосе задерживания (Н2);

- коэффициент передачи в полосе пропускания(Н1- обычно он равен 1);

- допуск на отклонение реальной АЧХ от желаемой в полосе пропускания(D1).

В пакете МATLAB для синтеза РФ существует ряд функций:

- butter – аппроксимация фильтра Баттерворта;

- cheby1 – аппроксимация фильтра Чебышева первого типа;

- cheby2 – аппроксимация фильтра Чебышева второго типа(инверсный фильтр Чебышева);

- ellip – аппроксимация эллиптического фильтра(фильтр Кауэра).

Например, вызов функции butter в пакете MATLAB может иметь следующий синтаксис:

[b,a] = butter(n,Wn);

[b,a] = butter(n,Wn,'ftype').

Для расчета порядка фильтра Баттерворта, обеспечивающего требуемые характеристики(Н1, Н2, D1) в пакете MATLAB используется функция buttord, имеющая следующий синтаксис:

[n,Wn] = buttord(Wp,Ws,Rp,Rs).

Пример. С помощью пакета MATLAB найти коэффициенты и построить характеристики полосового фильтра Баттерворта с полосой пропускания от 60 до 200Гц(частота дискретизации 1кГц), с пульсациями в полосе пропускания не более 3 дБ и затуханием в полосе задерживания не менее 40 дБ.

Ниже представлен текст программы, а на рисунке 9.4 показаны характеристики полученного фильтра.

Wp = [60 200]/500; %расчет нормированных граничных частот полосы пропускания

Ws = [50 250]/500; %расчет нормированных граничных частот полосы задерживания

Rp = 3; Rs = 40;% задаем величину пульсаций и затухание

[n,Wn] = buttord(Wp,Ws,Rp,Rs)% определяем порядок фильтра и частоты среза

>>n =16

>>Wn =[0.1198 0.4005]

[b,a] = butter(n,Wn);%находим коэффициенты фильтра

freqz(b,a,128,1000)% строим характеристики фильтра

title('АЧХ и ФЧХ полосового фильтра Баттерворта')


Рисунок 9.4 - АЧХ и ФЧХ полосового фильтра Баттерворта

Синтез гребенки фильтров