Учебная работа. Курсовая работа: Разработка программного канального вокодера
Министерство Образования и Науки Украины
Курсовой проект
: «Разработка программного канального вокодера»
по курсу
«Цифровая обработка сигналов»
2006
АННОТАЦИЯ
В данном проекте описан процесс сотворения канального вокодера. Описана программка на языке Matlab, модель, сделанная при помощи системы Matlab Simulink, а так же программка на DSK TMS320C6711(5402), использующая способности CODE COMPOSER STUDIO v.2, осуществляющая сжатие и восстановление речевого сигнала в настоящем времени до уровня не наиболее 4800 бит/с с удовлетворительным качеством восстановленного речевого сигнала (требуется обеспечить разборчивость речи, при всем этом узнаваемость диктора не неотклонима).
На защиту студент представляет:
— объяснительную записку;
— электрическую презентацию проекта в виде файла формата .ppt, .pdf либо .ps;
— на сто процентов отлаженное программное обеспечение.
Объяснительная записка обязана производиться в согласовании с требованиями работающих эталонов и содержать последующие разделы:
— введение;
— обзор имеющихся систем и способов решения задачки в согласовании с темой курсового проекта;
— обоснование способа решения задачки;
— разработка структурной схемы системы и расчет нужных системных характеристик;
— разработка программной модели системы на языке МАТЛАБ;
— результаты тестирования модели системы;
— разработка программного обеспечения системы на языке Си для реализации ее на цифровом сигнальном микропроцессоре;
— анализ вычислительной трудности;
— анализ результатов реализации системы в настоящем времени на цифровом сигнальном микропроцессоре;
— короткое управление юзера;
— заключение;
— библиографический перечень;
— приложения:
— тексты программ на языке МАТЛАБ;
— тексты программ на языке Си.
ВВЕДЕНИЕ
В истинное время, с развитием вычислительной техники, стоимость сигнальных микропроцессоров достаточно не велика и повсевременно миниатюризируется, при всем этом возрастает производительность вновь выпускаемых моделей микропроцессоров. При всем этом стоимость каналов связи остается на довольно высочайшем уровне, потому что создание современных цифровых каналов связи просит значимых финансовложений, а имеющиеся аналоговые полосы связи не выдерживают растущей перегрузки. Потому разработка систем сжатия речевых сигналов, с целью передачи их по каналам связи, является одной из животрепещущих задач современности.
Вокодер (от англ. voice — глас, coder — кодировщик) представляет собой электрическое устройство, предназначенное для анализа и синтеза звуков людского голоса.
В первый раз вокодером был назван изобретенный в 1936 году южноамериканским инженером Гомером Дадлеем аппарат, сужающий полосу частот, требуемую для передачи речевого сигнала по каналам связи. В следующие 10летия возникло огромное количество разновидностей вокодера, используемых в системах связи. В их передается не сама речь, а определенные характеристики речевого сигнала, по которым его затем можно вернуть в месте приема. Обширно используют вокодер в акустических исследовательских работах, при обучении зарубежным языкам, в речевой для снятия либо устранения симптомов и проявлений терапии
Во 2-м разделе КП разработка структурной схемы системы и расчет нужных системных характеристик для построения канального вокодера;
Разработка программной модели системы на языке Matlab и результаты тестирования модели системы приведены в 3-ем разделе.
В четвертом разделе описан процесс разработки программного обеспечения проектируемой системы канального вокодера на языке Си для реализации ее на цифровом сигнальном микропроцессоре.
В 5-ом разделе произведен анализ вычислительной трудности, разработанной системы сжатия речи, а так же анализ результатов реализации данной системы в настоящем времени на цифровом сигнальном микропроцессоре, и короткое управление юзера системы сжатия.
В приложениях приводятся тексты разработанных программ на языке МАТЛАБ и Си.
ПОСТАНОВКА задачки НА ПРОЕКТИРОВАНИЕ
Создать и воплотить на ЦПОС TMS320C6711(5402) систему сжатия речи (рекомендуется воплотить канальный вокодер), осуществляющую сжатие и восстановление речевого сигнала в настоящем времени до уровня не наиболее 4800 бит/с. Считать, что начальный речевой сигнал представлен в виде последовательности 16-разрядных отсчетов c частотой дискретизации 8КГц. нужно обеспечить удовлетворительное свойство восстановленного речевого сигнала (требуется обеспечить разборчивость речи, при всем этом узнаваемость диктора не неотклонима).
1.
системы СЖАТИЯ РЕЧИ
Голосовой тракт человека представляет собой акустическую трубу, которая с одной стороны оканчивается голосовыми связками, а с иной губками. Форма голосового тракта определяется положением губ, челюстей языка и мягкого неба.
Звуки в данной для нас системе образуются 3-мя методами. Вокализованные (гулкие) звуки — методом возбуждения голосового тракта квазипериодическими импульсами воздушного давления, создаваемыми вибрациями голосовых связок. Фрикативные звуки образуются проталкиванием воздуха через сужения в определенных областях голосового тракта, в итоге чего же возникает турбуленция, которая является источником шума, возбуждающего голосовой тракт. Взрывные звуки образуются методом сотворения лишнего давления в области полного смыкания голосового тракта с следующим его резвым размыканием. Все эти источники делают широкополосное возбуждение голосового тракта, который в свою очередь действует как линейный фильтр с изменяющимися во времени параметрами.
На рис. 14 приведена модель источника речи на базе цифрового представления речевых сигналов. Предполагается, что в данной для нас модели дискретные отсчеты речевого сигнала формируются на выходе ЦФ с переменными параметрами, который аппроксимирует передаточные характеристики голосового тракта, обусловленные формой импульсов возбуждения.
Набросок 14 — Модель источника речи
На временном интервале порядка 10ms свойства ЦФ можно считать постоянными. На любом таком интервале ЦФ быть может охарактеризован совокупой собственных коэффициентов. В случае вокализованной речи ЦФ возбуждается генератором квазиканонической импульсной последовательности, расстояние меж примыкающими импульсами которого соответствует периоду основного тона. На интервалах невокализованной речи ЦФ возбуждается генератором случайных чисел, который производит шумовой сигнал с равномерной спектральной плотностью. В обоих вариантах сигнал, поступивший на ЦФ, управляется по амплитуде.
На рассмотренной модели базируются бессчетные методы представления речевых сигналов. По трудности реализации эти методы кодировки речи занимают широкий спектр от простейшей повторяющейся дискретизации до оценок характеристик модели изображенной на рис.14.
Существует несколько подходов к сжатию речевых сигналов:
— кодирование формы волны речевого сигнала;
— кодирование характеристик речевого тракта человека и источника возбуждения;
— кодирование символьной инфы (фонем);
— кодирование лингвистической инфы (слов, фраз и т.п.).
1.1 Конкретное кодирование формы речевого сигнала
Начальный речевой сигнал представляет собой акустическую волну (волна давления в воздухе), которую можно конвертировать в электронный сигнал при помощи микрофона. Будем считать, что диапазон речевого сигнала лежит в спектре от 100 до 4000 гц. Динамический спектр конфигурации амплитуды, достаточный для описания речевых сигналов, составляет 12 двоичных разрядов.
Первым шагом, обеспечивающим сжатие речевого сигнала, является попытка обеспечения равномерной относительной точности измерения значения амплитуды сигнала. Для этого 14-12-ти разрядный динамический спектр амплитуды разбивают на 8 логарифмических поддиапазонов, в любом из которых инфы до 64000 бит/с (кодирование по m- и A- законам в согласовании со эталоном ITU -G.711). Последующим шагом является адаптивная дифференциальная импульсно-кодовая модуляция (АДИКМ), (к примеру, в согласовании со эталонами G.721 либо G.726 8-40000 бит/с), при помощи которой производят кодирование (аппроксимацию) степени приращения амплитуды сигнала во времени. Таковым методом удается достигнуть степени сжатия речевого сигнала порядка 32000-16000 бит/сек., при этом применимое (коммерческое) свойство речи (по аспекту дела: полезный_сигнал/шум) обеспечивается до 24000 бит/сек. При наиболее низких скоростях кодировки сохраняется разборчивость речи, но свойственны мощные нелинейные и частотные преломления сигнала и ухудшение дела сигнал/шум. Предстоящее уменьшение информационной емкости сигнала при помощи данного подхода считается неэффективным.
Низкоскоростное кодирование складывается из 2-ух главных действий:
— параметрическое человека и функцию возбуждения. Таковыми параметрами могут являться: осредненные значения энергии речевого сигнала, разбитого на ряд частотных полос, либо коэффициенты линейного пророчества (либо, связанные с ними, коэффициенты отражения). Обычно для кодировки речи употребляются 8-10 характеристик (один из перечисленных выше наборов), вычисляемых на интервалах порядка 5-30 мс (потому что на таком интервале речь может считаться стационарным действием), не считая того, рассчитывается параметр, характеризующий изменение амплитуды или мощности сигнала, период основного тона речи, также признак типа тон/шум/пауза, характеризующий метод возбуждения речевого сигнала.
Приобретенный набор характеристик, оптимизированный по аспекту точности и малой разрядности представления, передается в цифровом виде по каналу связи в настоящем времени, а на приемном конце осуществляется синтез речевого сигнала по перечисленным характеристикам. Таковым методом удается понизить информационную емкость речевого сигнала до уровня 16000 — 1200 бит/сек, при этом с сохранением разборчивости и личных особенностей речи говорящего.
Последующим шагом в направлении предстоящего роста компрессии является создание фонемного вокодера. Как понятно, малой слогоразличительной (и словоразличительной) единицей речи является фонема. Потому создание устойчивого способа определения фонем дозволит понизить скорость кодировки речевой инфы до 100 бит/сек, что соответствует информационной скорости текста. Необходимо подчеркнуть, что на приемной стороне речь будет восстановлена синтезатором речи по фонемному тексту, при всем этом информация о особенности диктора будет утрачена.
1.2. К
заднепроходные вокодеры
Канальный вокодер представляет собой совокупность 2-ух главных частей — анализирующей (передающая сторона) и синтезирующей(приемная), которые содержат схожие наборы(гребенки) полосовых фильтров, перекрывающих определенный частотный интервал. структура канального вокодера представлена на рисунке 9.1:
Набросок 9.1 — Структурная схема канального вокодера
Набросок 9.2 — АЧХ гребенки фильтров
Фильтры блока анализа обеспечивают тональное разделение диапазона сигнала. Для перекрытия всей полосы звуковых частот, вместе с полосовыми, в гребенке употребляют фильтры НЧ и ВЧ (в самых низкочастотном и высокочастотном каналах). Типовая амплитудно-частотная черта гребенки фильтров, в случае равномерного разделения каналов может иметь последующий вид:
Сенсор и фильтр НЧ в любом канале выделяют огибающую сигнала данного канала, и любая из их охарактеризовывает энергию речевого спектра в соответственной полосе частот для фрагмента речи (длина фрагмента 5-30 мс). Для наиболее малогабаритной передачи выходы всякого из каналов могут логарифмироваться и кодироваться при помощи дельта импульсной кодовой модуляции(ДИКМ)[1].
От числа частотных полос зависит разборчивость синтезированной речи. Отличные результаты получаются при числе каналов 15-16 (полоса 100 Гц … 4 кГц). Для улучшения свойства восстановленной речи при выбирании центральных частот и ширины полос пропускания канальных фильтров целенаправлено применять критичные полосы слуха[1].
При выбирании типа фильтров необходимо подразумевать, что спектральные составляющие сигнала вблизи центральной частоты резонансных фильтров подвергаются значимым фазовым сдвигам, а это приводит к изменению тембра, даже если амплитудные соотношения сохранены. При этом при увеличении порядка фильтров фазовый сдвиг возрастает, являясь предпосылкой соответствующей для вокодера противоестественности речи. С иной стороны, при недостаточной крутизне спада АЧХ фильтров возникает “смазанность” синтезированной речи. Практика показывает, что лучший итог соответствует АЧХ фильтров при крутизне их спада примерно 36 дБ на октаву.
Частоту среза канального фильтра НЧ выбирают в 10 раз наименьшей центральной частоты полосового фильтра канала, но может быть внедрение схожих фильтров низких частот с частотой среза около 25 Гц , что несколько понижает свойство восстановленного речевого сигнала.
Не считая оценки энергии сигнала в частотных полосах, в блоке анализа также делается оценка нрава речевого фрагмента. В сенсоре тон/шум(Т-Ш) оценивается: вокализованным либо фрикативным является данный фрагмент речевого сигнала. Таковой сенсор быть может реализован через определение числа переходов через ноль речевого сигнала (для вокализованных фрагментов в отличие от фрикативных число переходов через ноль невелико) либо оценкой энергии сигнала в полосах до 800 Гц и наиболее 2КГц (структурная схема такового сенсора представлена на рисунке 9.3).
Набросок 9.3 – структура сенсора тон-шум
Также в блоке анализа происходит определение частоты основного тона для вокализованных фрагментов речи. Для этого в структуру блока анализа вводится выделитель основного тона (ВОТ). Понятно, что событие делает много проблем при оценке ОТ, потому что слух весьма чувствителен к его искажениям. На нынешний денек понятно огромное количество алгоритмов оценки ОТ, оперирующих как конкретно с временным представлением речевого сигнала, так и со диапазоном речи. к примеру, способ Голда-Рабинера[2,5], автокореляционный способ[1,2], SIFT(simplified inverse filter tracking) метод [2].
Таковым образом, для всякого фрагмента речевого сигнала на приемную сторону передается признак тон-шум(1 бит), частота основного тона, в случае вокализованного фрагмента(5-6 бит), значения энергии сигнала по каналам (при использовании ДИКМ наименее 5 бит на канал).
На приемной стороне, в случае если принят вокализованный фрагмент, в качестве источника возбуждения гребенки фильтров выступает генератор повторяющихся сигналов(ГТ). В качестве сигнала возбуждения быть может выбрана последовательность специального вида импульсов[1] с периодом равным частоте основного тона данного фрагмента (также принимаемой из канала связи). В случае невокализованого фрагмента, в качестве сигнала возбуждения употребляется белоснежный шум(ГШ), который быть может получен при помощи генератора случайный чисел.
Сигнал возбуждения множится на значения энергии для всякого из каналов, опосля чего же поступает на фильтр соответственного канала (гребенка фильтров блока синтеза на сто процентов подобна гребенке блока анализа).
Для получения выходного синтезированного речевого сигнала выходы всех каналов блока синтеза суммируются.
2. синтез цифровых рекурсивных фильтров с внедрением
пакета MATLAB
Решение задачки синтеза цифровых рекурсивных фильтров(РФ
(9.1)
Известны прямые и косвенные способы синтеза рекурсивных цифровых фильтров[4,1]. Прямые способы основаны на конкретном определении характеристик цифровых РФ
При проектировании фильтров обычно задают последующие требования к их амплитудно-частотным чертам(АЧХ):
— границы полос пропускания и задерживания (соответственно w1
и w2
);
— затухание в полосе задерживания (Н2
);
— коэффициент передачи в полосе пропускания(Н1
— обычно он равен 1);
— допуск на отклонение настоящей АЧХ от хотимой в полосе пропускания(D1
).
В пакете МATLAB для синтеза РФ
—
ellip
– аппроксимация эллиптического фильтра(фильтр Кауэра).
к примеру, вызов функции butter
в пакете MATLAB может иметь последующий синтаксис:
Для расчета порядка фильтра Баттерворта, обеспечивающего требуемые свойства(Н1
, Н2
, D1
) в пакете MATLAB употребляется функция buttord
, имеющая последующий синтаксис:
Пример. При помощи пакета MATLAB отыскать коэффициенты и выстроить свойства полосового фильтра Баттерворта с полосой пропускания от 60 до 200Гц (частота дискретизации 1кГц), с пульсациями в полосе пропускания не наиболее 3 дБ и затуханием в полосе задерживания не наименее 40 дБ .
Ниже представлен текст программки, а на рисунке 9.4 показаны свойства приобретенного фильтра.
Набросок 9.4 — АЧХ и ФЧХ полосового фильтра Баттерворта
синтез гребенки фильтров
От числа частотных полос зависит разборчивость синтезированной речи. Отличные результаты получаются при числе каналов 15-16 (полоса 100 Гц … 4 кГц). По условию поставленной задачки нужно создать вокодер для сжатия и передачи по каналу связи речи без идентификации диктора, то для уменьшения количества передаваемой инфы можно уменьшить количество каналов до 12-14. На рисунке 3.1 представлена реализация применяемой при кодировке гребенки фильтров, состоящей из 12 полосовых фильтров, ФНЧ и ФВЧ.
Набросок 3.1 – гребанка фильтров.
Нижеследующий текст программки на матлабе дозволяет высчитать нужные свойства фильтров и выстроить АЧХ гребенки фильтров.
n_bands = 15;
fd1 = 8000
[n,Wn] = buttord(100/fd1, 300/fd1, 2, 50);
[b{1},a{1}] = butter(n, Wn);
[n,Wn] = buttord([125/fd1 300/fd1], [20/fd1 500/fd1], 4, 40);
[b{2},a{2}] = butter(n, Wn);
[n,Wn] = buttord([305/fd1 485/fd1], [105/fd1 685/fd1], 3, 40);
[b{3},a{3}] = butter(n, Wn);
[n,Wn] = buttord([500/fd1 690/fd1], [300/fd1 890/fd1], 3, 40);
[b{4},a{4}] = butter(n, Wn);
[n,Wn] = buttord([700/fd1 880/fd1], [500/fd1 1080/fd1], 2, 40);
[b{5},a{5}] = butter(n, Wn);
[n,Wn] = buttord([900/fd1 1080/fd1], [700/fd1 1280/fd1], 2, 40);
[b{6},a{6}] = butter(n, Wn);
[n,Wn] = buttord([1100/fd1 1380/fd1], [900/fd1 1580/fd1], 2, 45);
[b{7},a{7}] = butter(n, Wn);
[n,Wn] = buttord([1400/fd1 1680/fd1], [1200/fd1 1880/fd1], 2, 47);
[b{8},a{8}] = butter(n, Wn);
[n,Wn] = buttord([1700/fd1 1980/fd1], [1500/fd1 2180/fd1], 2, 50);
[b{9},a{9}] = butter(n, Wn);
[n,Wn] = buttord([2000/fd1 2330/fd1], [1800/fd1 2530/fd1], 2, 50);
[b{10},a{10}] = butter(n, Wn);
[n,Wn] = buttord([2350/fd1 2670/fd1], [2150/fd1 2870/fd1], 2, 50);
[b{11},a{11}] = butter(n, Wn);
[n,Wn] = buttord([2700/fd1 3070/fd1], [2500/fd1 3270/fd1], 2, 50);
[b{12},a{12}] = butter(n, Wn);
[n,Wn] = buttord([3100/fd1 3470/fd1], [2900/fd1 3670/fd1], 2, 50);
[b{13},a{13}] = butter(n, Wn);
[n,Wn] = buttord([3500/fd1 3880/fd1], [3300/fd1 4080/fd1], 2, 50);
[b{14},a{14}] = butter(n, Wn);
[n,Wn] = buttord(3900/fd1, 3700/fd1, 2, 50);
[b{n_bands},a{n_bands}] = butter(n, Wn, ‘high’);
hold on;
for i=1:n_bands,
[H,W] = freqz(b{i}, a{i}, [0:0.01:pi]);
plot(W,20*log10(абс(H)));
axis([0 pi -100 10]);
end;
hold off;
Гребенка состоит из цифровых фильтров Баттерворта, потому что это более всераспространенный БИХ-фильтров.
]]>