Попередня обробка мовних зразків (реалізація звукового препроцесора)
Результатом попереднього опрацювання мовних сигналів є отримання множини спектральних векторів, які характеризують цей сигнал і використовуються для подальшого розпізнавання.
Принципове припущення, яке робиться в сучасних розпізнавачах є те, що мовний сигнал розглядається як стаціонарний (тобто його спектральні характеристики відносно постійні) на інтервалі в кілька десятків мілісекунд. Тому основною функцією попереднього опрацювання є розбити вхідну мовний сигнал на інтервали і для кожного інтервалу отримати згладжені спектральні оцінки.
Типова величина одного інтервалу - 25,6 мс. Сусідні інтервали беруться зі зсувом відносно попереднього інтервалу. Вживана величина перекриття інтервалів рівна 10 мс.У результаті попереднього опрацювання кожного з вказаних інтервалів отримуємо вектор з кількох десятків спектральних значень. Блок-схема алгоритму попереднього опрацювання мовного сигналу наведена на рис.. Кроки, які слід виконати для попереднього опрацювання кожного інтервалу мовного сигналу, детально описані далі.
Як приклад розглядаємо мовні зразки, дискретизовані з частотою 16 КГц та з розрядністю 16 біт. Дискретизований мовний сигнал розбиваємо на інтервали тривалістю 25,6 мс, тобто 409 відліків. Інтервали перекриваються зі зсувом на 10 мс (160 відліків).
Блок-схема алгоритму попереднього опрацювання мовного сигналу
Далі даються етапи попереднього опрацювання мовних сигналів.
1. Оцифрований (дискретизований у часі та квантований за рівнем) мовний сигнал розбиваємо на блоки по 25,6 мс із зсувом кожні 10 мс , тобто, блоки по 409 відліків кожен блок, із зсувом на 160 відліків.
2. Як правило, застосовують високочастотне підсилення, щоб компенсувати послаблення, спричинене розсіюванням від губ. Для цього блоки сигналу пропускають через фільтр першого порядку
S(1)=0; S(n)=y(n)-y(n-1), n=2…409,
де yn – n-й відлік у блоці.
3. Для опрацювань такого типу до кожного блоку застосовують функцію вікна. У даному випадку береться вікно Гемінга згідно з таким виразом
D(n)=(0,54-0,46·cos(2·(n-1)/408))·S(n) для n =1,...,409.
4. Щоб отримати спектральні оцінки використовується дискретне перетворення Фур’є. У цьому разі збільшуємо довжину блоку до 512 елементів за рахунок доповнення його справа потрібною кількістю нулів. Після цього застосовуємо швидке перетворення Фур’є довжиною 512 точок і отримуємо 512 спектральних комплексних значень. Оскільки 512 значень, до яких застосовуємо перетворення Фур’є, є дійсними, то отримані спектральні комплексні значення попарно спряжені: друге значення з 512-м, третє – з 511-м і т.д. Тому останні 256 комплексних значень перетворення ігноруємо, бо вони комплексно спряжені з попередніми й не несуть нової інформації.
5. Для перших 256 комплексних спектральних значень знаходимо їх амплітуди. Амплітудний спектр Фур’є згладжується (усереднюється) додаванням амплітуд спектральних коефіцієнтів у межах “трикутних” частотних смуг розташованих на нелінійній (подібній до логарифмічної) Mel-шкалі. Для граничної частоти мови рівної 16 КГц беруть 24 таких частотних смуги. Mel-шкала введена для наближення частотного розділення людського вуха, яке є лінійним до 1000 Гц та логарифмічним понад 1000 Гц.
Фур’є спектр згладжувався додаванням 255 останніх спектральних коефіцієнтів ( перший коефіцієнт – постійна складова спектру ігнорувався) у межах “трикутних” частотних смуг розташованих на нелінійній (подібній до логарифмічної) Mel-шкалі.
Перший амплітудний коефіцієнт – постійну складову спектру – ігноруємо, , а амплітуди решти 255 спектральних значень усереднюємо. Усереднення реалізуємо як 24 трикутні смугопропускні фільтри. Нижня, середня та верхня частоти таких смуг подані в табл.
Кожний трикутний фільтр знаходить зважене середнє тих амплітудних спектральних значень, які відповідають частотам у межах між нижньою та верхньою частотою для даного фільтра. Якщо амплітуда відповідає точно середній частоті смуги, то вона множиться на коефіцієнт рівний одиниці. При пересуванні відповідної амплітудному значенню частоти від середини до нижньої чи верхньої межі коефіцієнт зменшується від одиниці до нуля. Отримані добутки амплітуд на коефіцієнти додаються й діляться на число амплітудних значень. У результаті знаходимо зважене середнє для даної смуги частот.
256 амплітудам відповідають частоти від 0 Гц до 8000 Гц, тобто крок пересування дорівнює 8000/256=31,25 Гц. Це означає, що першій амплітуді відповідає частота 0 Гц, другій – 31,25 Гц, третій – 62,5 Гц і т.д.
Наприклад, для першої смуги частот Mel-шкали: нижня частота – 0 Гц, середня частота – 74,24 Гц, верхня частота – 156,4 Гц.
Отже, в першу смугу частот потрапляють перша (0 Гц), друга (31,25 Гц), третя (62,5 Гц), четверта (93,75 Гц), п’ята (125 Гц) та шоста (156,25 Гц) амплітуди.
Згідно з рис. третій амплітуді відповідає коефіцієнт рівний 62,5/74,24≈0,84; а п’ятій амплітуді – коефіцієнт рівний (156,4-125)/(156,4-74,24) ≈0,38.
Таблиця. Mel-шкала частот
Смуга |
Нижня частота |
Середня частота |
Верхня частота |
1 |
0,000 Гц |
74,24 Гц |
156,4 Гц |
2 |
74,24 Гц |
156,4 Гц |
247,2 Гц |
3 |
156,4 Гц |
247,2 Гц |
347,6 Гц |
4 |
247,2 Гц |
347,6 Гц |
458,7 Гц |
5 |
347,6 Гц |
458,7 Гц |
581,6 Гц |
6 |
458,7 Гц |
581,6 Гц |
717,5 Гц |
7 |
581,6 Гц |
717,5 Гц |
867,9 Гц |
8 |
717,5 Гц |
867,9 Гц |
1034 Гц |
9 |
867,9 Гц |
1034 Гц |
1218 Гц |
10 |
1034 Гц |
1218 Гц |
1422 Гц |
11 |
1218 Гц |
1422 Гц |
1647 Гц |
12 |
1422 Гц |
1647 Гц |
1895 Гц |
13 |
1647 Гц |
1895 Гц |
2171 Гц |
14 |
1895 Гц |
2171 Гц |
2475 Гц |
15 |
2171 Гц |
2475 Гц |
2812 Гц |
16 |
2475 Гц |
2812 Гц |
3184 Гц |
17 |
2812 Гц |
3184 Гц |
3596 Гц |
18 |
3184 Гц |
3596 Гц |
4052 Гц |
19 |
3596 Гц |
4052 Гц |
4556 Гц |
20 |
4052 Гц |
4556 Гц |
5113 Гц |
21 |
4556 Гц |
5113 Гц |
5730 Гц |
22 |
5113 Гц |
5730 Гц |
6412 Гц |
23 |
5730 Гц |
6412 Гц |
7166 Гц |
24 |
6412 Гц |
7166 Гц |
8000 Гц |
У результаті описаних дій отримуємо 24-елементний спектральний (акустичний) вектор.
На закінчення виконуємо нормалізацію акустичних векторів у межах одного мовного зразка. Для цього знаходимо найбільшу довжину вектора та значення всіх векторів множимо на величину, обернену до цієї довжини.
Для моделювання алгоритму попереднього опрацювання мовних сигналів вибрано середовище MATLAB.
На даний час MATLAB (у сучасній версії 6.5) - це високоефективна мова інженерних і наукових обчислень. Він підтримує математичні обчислення, візуалізацію наукової графіки і програмування з використанням легко освоюваного операційного оточення, коли задачі і їхні рішення можуть бути представлені у скороченнях, близьких до математичних. MATLAB - це інтерактивна система, основним об’єктом якої є масив, для якого не потрібно вказувати розмірність явно. Це дозволяє вирішувати багато обчислювальних задач, які пов'язані з векторно-матричними формулюваннями, істотно скорочуючи час при цьому.
Графічне вікно середовища MATLAB 6.5, у якому ілюструються етапи 1-5 попереднього опрацювання мовного сигналу показано на рис.
Етапи попереднього опрацювання
