Розробка програмного канального вокодера

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Міністерство Освіти і Науки України

Курсовий проект

На тему: «Розробка програмного канального вокодера»

за курсом «Цифрова обробка сигналів»

200 6

АНОТАЦІЯ

У даному проекті описаний процес створення канального вокодера. Описана програма на мові Matlab, модель, створена за допомогою системи Matlab Simulink, а так само програма на DSK TMS 320 C 6711 (5402), використовує можливості CODE COMPOSER STUDIO v .2, що здійснює стиснення і відновлення мовного сигналу в реальному часі до рівня не більше 4800 біт / с з задовільною якістю відновленого мовного сигналу (потрібно забезпечити розбірливість мовлення, при цьому впізнаваність диктора не обов'язкова).

На захист студент представляє:

- Пояснювальну записку;

- Електронну презентацію проекту у вигляді файлу формату. Ppt,. Pdf або. Ps;

- Повністю налагоджене програмне забезпечення.

Пояснювальна записка повинна виконуватися відповідно до вимог діючих стандартів та містити наступні розділи:

- Вступ;

- Огляд існуючих систем і методів розв'язання задачі у відповідності з темою курсового проекту;

- Обгрунтування методу розв'язання задачі;

- Розробка структурної схеми системи і розрахунок необхідних системних параметрів;

- Розробка програмної моделі системи на мові МАТЛАБ;

- Результати тестування моделі системи;

- Розробка програмного забезпечення системи на мові Сі для реалізації її на цифровому сигнальному процесорі;

- Аналіз обчислювальної складності;

- Аналіз результатів реалізації системи в реальному часі на цифровому сигнальному процесорі;

- Коротке керівництво користувача;

- Висновок;

- Бібліографічний список;

- Програми:

- Тексти програм мовою МАТЛАБ;

- Тексти програм на мові Сі.

ВСТУП

В даний час, з розвитком обчислювальної техніки, вартість сигнальних процесорів досить не велика і постійно зменшується, при цьому збільшується продуктивність знову випущених моделей процесорів. При цьому вартість каналів зв'язку залишається на досить високому рівні, тому що створення сучасних цифрових каналів зв'язку вимагає значних капіталовкладень, а існуючі аналогові лінії зв'язку не витримують зростаючого навантаження. Тому розробка систем стиснення мовних сигналів, з метою передачі їх по каналах зв'язку, є однією з актуальних завдань сьогодення.

Вокодер (від англ. Voice - голос, coder - кодувальник) представляє собою електронний пристрій, призначений для аналізу та синтезу звуків людського голосу.

Вперше вокодером був названий винайдений в 1936 році американським інженером Гомером Дадлеем апарат, сужающий смугу частот, необхідну для передачі мовного сигналу по каналах зв'язку. У наступні десятиліття з'явилося безліч різновидів вокодера, застосовуваних у системах зв'язку. У них передається не сама мова, а певні параметри мовного сигналу, по яких його потім можна відновити в місці прийому. Широко застосовують вокодер в акустичних дослідженнях, під час навчання іноземних мов, в мовної терапії.

Перший розділ пояснювальної записки присвячений огляду існуючих систем і методів побудови стиснення мови за допомогою канальних вокодеров обгрунтування методу вирішення даної задачі.

У другому розділі КП розробка структурної схеми системи і розрахунок необхідних системних параметрів для побудови канального вокодера;

Розробка програмної моделі системи на мові Matlab і результати тестування моделі системи наведені в третьому розділі.

У четвертому розділі описано процес розробки програмного забезпечення проектованої системи канального вокодера на мові Сі для реалізації її на цифровому сигнальному процесорі.

У п'ятому розділі проведений аналіз обчислювальної складності, розробленої системи стиснення мови, а так само аналіз результатів реалізації даної системи в реальному часі на цифровому сигнальному процесорі, і коротке керівництво користувача системи стиснення.

У додатках наводяться тексти розроблених програм на мові МАТЛАБ і Сі.

ПОСТАНОВКА ЗАВДАННЯ НА ПРОЕКТУВАННЯ

Розробити та реалізувати на ЦПОСІ TMS 320 C 6711 (5402) систему стиснення мови (рекомендується реалізувати канальний вокодер), що здійснює стиснення і відновлення мовного сигналу в реальному часі до рівня не більше 4800 біт / с. Вважати, що вихідний мовний сигнал представлений у вигляді послідовності 16-розрядних відліків c частотою дискретизації 8кГц. Необхідно забезпечити задовільну якість відновленого мовного сигналу (потрібно забезпечити розбірливість мовлення, при цьому впізнаваність диктора не обов'язкова).

1. СИСТЕМИ СТИСКУ МОВИ

Голосовий тракт людини являє собою акустичну трубу, яка з одного боку закінчується голосовими зв'язками, а з іншого губами. Форма голосового тракту визначається положенням губ, щелеп язика і м'якого неба.

Звуки в цій системі утворюються трьома способами. Вокалізованих (дзвінкі) звуки - шляхом порушення голосового тракту квазіпериодичним імпульсами повітряного тиску, створюваними вібраціями голосових зв'язок. Фрикативні звуки утворюються проштовхуванням повітря через звуження в певних областях голосового тракту, в результаті чого виникає турбуленція, яка є джерелом шуму, збудливого голосовий тракт. Вибухові звуки утворюються шляхом створення надлишкового тиску в області повного змикання голосового тракту з наступним його швидким розмиканням. Всі ці джерела створюють широкосмугове порушення голосового тракту, який у свою чергу діє як лінійний фільтр зі змінними в часі параметрами.

На рис. 14 наведена модель джерела мовлення на основі цифрового представлення мовних сигналів. Передбачається, що в цій моделі дискретні відліки мовного сигналу формуються на виході ЦФ зі змінними параметрами, який апроксимує передавальні властивості голосового тракту, зумовлені формою імпульсів збудження.



Рисунок 14 - Модель джерела мови

На часовому інтервалі порядку 10ms характеристики ЦФ можна вважати незмінними. На кожному такому інтервалі ЦФ може бути охарактеризований сукупністю своїх коефіцієнтів. У разі вокалізованих мови ЦФ збуджується генератором квазіканоніческой імпульсної послідовності, відстань між сусідніми імпульсами якого відповідає періоду основного тону. На інтервалах невокалізованной мови ЦФ збуджується генератором випадкових чисел, який виробляє шумовий сигнал з рівномірною спектральною щільністю. В обох випадках сигнал, що надійшов на ЦФ, управляється по амплітуді.

На розглянутій моделі базуються численні способи представлення мовних сигналів. За складністю реалізації ці способи кодування мови займають широкий діапазон від найпростішої періодичної дискретизації до оцінок параметрів моделі зображеної на рис.14.

Існує кілька підходів до стиснення мовних сигналів:

- Кодування форми хвилі мовного сигналу;

- Кодування параметрів мовного тракту людини і джерела порушення;

- Кодування символьної інформації (фонем);

- Кодування лінгвістичної інформації (слів, фраз і т.п.).

1.1 Безпосереднє кодування форми мовного сигналу

Вихідний мовний сигнал являє собою акустичну хвилю (хвиля тиску в повітрі), яку можна перетворити в електричний сигнал за допомогою мікрофона. Будемо вважати, що спектр мовного сигналу лежить в діапазоні від 100 до 4000 гц. Динамічний діапазон зміни амплітуди, достатній для опису мовних сигналів, складає 12 двійкових розрядів.

Першим кроком, що забезпечує стиснення мовного сигналу, є спроба забезпечення рівномірної відносної точності вимірювання значення амплітуди сигналу. Для цього 14-12-ти розрядний динамічний діапазон амплітуди розбивають на 8 логарифмічних піддіапазонів, в кожному з яких значення амплітуди кодують 5 розрядами і, таким чином, досягають скорочення інформації до 64000 біт / с (кодування за m - і A-законам відповідно зі стандартом ITU-G.711). Наступним кроком є адаптивна диференціальна імпульсно-кодова модуляція (АДІКМ), (наприклад, у відповідності зі стандартами G.721 або G.726 8-40000 біт / с), за допомогою якої здійснюють кодування (апроксимацію) ступеня збільшення амплітуди сигналу в часі. Таким шляхом вдається досягти ступеня стиснення мовного сигналу порядку 32000-16000 біт / сек., Причому прийнятне (комерційне) якість мови (за критерієм ставлення: полезний_сігнал / шум) забезпечується до 24000 біт / сек. При більш низьких швидкостях кодування зберігається розбірливість мови, але характерні сильні нелінійні і частотні спотворення сигналу і погіршення ставлення сигнал / шум. Подальше зменшення інформаційної ємності сигналу за допомогою даного підходу вважається неефективним.

1.1.2. Параметричне кодування

Низькошвидкісне кодування складається з двох основних процесів:

- Параметричне представлення мовного сигналу мінімальним набором параметрів, що характеризують джерело збудження і акустичний фільтр, що визначає передатну функцію голосового тракту;

- Дискретизація мовних параметрів для їх передачі по каналу зв'язку при використанні мінімальної ємності каналу.

Для параметричного опису мови зазвичай використовується підхід, заснований на обчисленні параметрів, що описують передавальну функцію мовного тракту людини і функцію збудження. Такими параметрами можуть бути: осереднені значення енергії мовного сигналу, розбитого на ряд частотних смуг, або коефіцієнти лінійного передбачення (чи, пов'язані з ними, коефіцієнти відбиття). Зазвичай для кодування мови використовуються 8-10 параметрів (один з перерахованих вище наборів), що обчислюються на інтервалах порядку 5-30 мс (так як на такому інтервалі мова може вважатися стаціонарним процесом), крім того, обчислюється параметр, що характеризує зміну амплітуди або потужності сигналу, період основного тону мови, а також ознака типу тон / шум / пауза, що характеризує спосіб порушення мовного сигналу.

Отриманий набір параметрів, оптимізований за критерієм точності та мінімальної розрядності подання, передається в цифровому вигляді по каналу зв'язку в реальному часі, а на приймальному кінці здійснюється синтез мовного сигналу по перерахованих параметрами. Таким шляхом вдається знизити інформаційну ємність мовного сигналу до рівня 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

Рішення завдання синтезу цифрових рекурсивних фільтрів (РФ) зводиться до знаходження коефіцієнтів a k і b k різницевого рівняння:

(9. 1)

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

При проектуванні фільтрів зазвичай ставлять такі вимоги до їх амплітудно-частотних характеристиках (АЧХ):

- Межі смуг пропускання і затримування (відповідно w 1 і w 2);

- Загасання в смузі затримання (Н 2);

- Коефіцієнт передачі в смузі пропускання (Н 1 - зазвичай він дорівнює 1);

- Допуск на відхилення реальної АЧХ від бажаної в смузі пропускання (D 1).

У пакеті М ATLAB для синтезу РФ існує ряд функцій:

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

- Cheby 1 - апроксимація фільтра Чебишева першого типу;

- Cheby 2 - апроксимація фільтра Чебишева другого типу (інверсний фільтр Чебишева);

- Ellip - апроксимація еліптичного фільтра (фільтр Кауера).

Наприклад, виклик функції butter в пакеті MATLAB може мати наступний синтаксис:

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

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

Для розрахунку близько фільтра Баттерворта, забезпечує необхідні характеристики (Н 1, Н 2, D 1) у пакеті 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 - АЧХ і ФЧХ п олосового фільтра Баттерворта

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

Від числа частотних смуг залежить розбірливість синтезованої мови. Гарні результати виходять при числі каналів 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 (abs (H)));

axis ([0 pi -100 10]);

end;

hold off;

Гребінка складається з цифрових фільтрів Баттерворта, так як це найбільш поширений НІХ-фільтрів.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
54.5кб. | скачати


Схожі роботи:
Розробка програмного модуля
Розробка програмного забезпечення
Розробка програмного продукту Тестер
Розробка програмного продукту Тестер
Розробка програмного продукту на мові високого рівня
Розробка інтернет магазину з продажу програмного забезпечення
Розробка програмного модуля для обчислення інтеграла
Розробка універсального програмного модуля УПМ для РЕУ
Розробка програмного забезпечення з автоматизації навчального процесу в коледжі
© Усі права захищені
написати до нас