Міністерство Освіти та Науки України
Національний Університет „Львівська Політехніка”
Лабораторна робота №2
З предмету: „Проектування комп’ютерних засобів цифрової обробки сигналів та зображень”
На тему: „ Моделювання роботи препроцесора для попередньої обробки мовних сигналів”
Виконав:
студент групи СКС-5
Львів
2005
1.Мета роботи
Опрацювати та випробувати в середовищі MATLAB 6.0 програму, яка реалізує етапи попередньої обробки мовних зразків.
2.Основні теоретичні відомості
Сучасні системи для розпізнавання суцільної мови з великим словником ґрунтуються на принципах статистичного розпізнавання образів [3,4]. На рис.1 показана структура типової системи статистичного розпізнавання, що включає чотири складових.
Складові виконують такі функції:
- звуковий препроцесор здійснює початковий етап обробки, на якому з мовного сигналу вибирається вся необхідна звукова інформація в компактному вигляді;
- звукова модель забезпечує обчислення правдоподібності будь-якої послідовності звукових векторів при заданій послідовності слів;
- модель мови забезпечує обчислення апріорної ймовірності послідовності слів незалежно від спостереження мовного сигналу. Для цього треба забезпечити механізм оцінки ймовірності певного слова у фразі, якщо знаємо попередні слова;
- класифікатор зводить воєдино дані від трьох раніше описаних компонент і знаходить найбільш імовірний текст (транскрипцію).
Принципи статистичного розпізнавання образів полягають у наступному [4].
На першому етапі мовний зразок перетворюється звуковим процесором на послідовність звукових векторів EMBED Equation.3EMBED Equation.3. Кожен вектор є стислим поданням короткочасного мовного спектру на інтервалі, як правило, близько 25 мс зі зсувом інтервалів на 10 мс. Типова фраза з десяти слів по 6-7 звуків у кожному може мати тривалість біля 3 с і представлятися послідовністю з Т=300 звукових векторів.
У загальному, фраза складається з послідовності слів EMBED Equation.3. Робота системи розпізнавання полягає у визначенні найбільш імовірної послідовності слів EMBED Equation.3, маючи звуковий сигнал Y. Для цього використовується правило Байєса [4]:
EMBED Equation.3.
Ця рівність показує, що для знаходження найбільш правдоподібної послідовності слів W, повинна бути знайдена послідовність, що робить максимальним добуток P(W) та P(Y/W).Так як значення знаменника P(Y) не залежить від W, то його при розпізнаванні ігнорують.
Перший із співмножників є апріорною ймовірністю спостереження W незалежно від спостереження мовного сигналу. Ця ймовірність визначається моделлю мови.
Другий співмножник є ймовірністю спостереження послідовності векторів Y при заданій послідовності слівW. Ця ймовірність визначається звуковою моделлю.
В звуковій моделі послідовності слів розбиваються на базові звуки – фонеми. Кожна індивідуальна фонема представляється прихованою моделлю за Марковим (англійська назва – hidden Markov model (HMM)). HMM-модель фонеми, як правило, має три породжуючі стани та вхідний і вихідний стан. Вхідний і вихідний стани дозволяють моделям фонем об’єднуватися, щоб утворювати слова та об’єднувати слова для утворення речень (послідовності слів).
Розглянемо більш детально функції препроцесора для попередньої обробки мовних сигналів.
Звуковий препроцесор
Потрібен початковий етап обробки, на якому з мовного сигналу вибирається вся необхідна звукова інформація в компактному вигляді.
Принципове припущення, яке робиться в сучасних розпізнавачах [3,4] є те, що мовний сигнал розглядається як стаціонарний (тобто спектральні характеристики відносно постійні) на інтервалі в кілька десятків мілісекунд. Тому основною функцією попередньої обробки є розбиття вхідного мовного сигналу на інтервали [1 - 4] і отримання для кожного інтервалу згладженої спектральної оцінки. Зсув між інтервалами звичайно рівний 10 мс. Інтервали, як правило , перекриваються і мають тривалість 25 мс. Як звичайно для обробки такого типу до кожного інтервалу на початку застосовується функція вікна (наприклад, вікно Гемінга). Часто застосовують високочастотне підсилення, щоб компенсувати послаблення, спричинене розсіюванням звуку від губ.
Щоб отримати спектральні оцінки використовується швидке перетворення Фур’є.
Фур’є спектр згладжується додаванням спектральних коефіцієнтів у межах “трикутних” частотних смуг розташованих на нелінійній (подібній до логарифмічної) Mel-шкалі [4]. Для граничної частоти мови (16 КГц) беруть 24 таких частотних смуги. Mel-шкала введена для наближення частотного розділення людського вуха, яке є лінійним до 1000 Гц та логарифмічним понад 1000 Гц.
З метою зробити статистику оціненого спектру потужності мови близькою до Гауссової до виходів набору фільтрів застосовується логарифмічний стиск.
До прологарифмованих коефіцієнтів застосовують дискретне косинусне перетворення. Це зосереджує спектральну інформацію в кепстральних коефіцієнтах з малими номерами, а також декорелює їх, дозволяючи при наступному статистичному моделюванні використовувати діагональні коваріаційні матриці. Перші 12 кепстральних коефіцієнтів та логарифм енергії інтервалу сигналу утворюють базовий 13-елементний звуковий вектор.
Є ряд додаткових перетворень, які можна застосувати для отримання остаточного звукового вектора.
Для зменшення мультиплікативного шуму на звукових векторах роблять нормалізацію кепстральних коефіцієнтів. Для кожної з дванадцяти компонент обчислюються середні значення по всіх звукових векторах даного мовного зразка. Ці середні значення віднімаються від відповідних компонент всіх звукових векторів даного мовного зразка.
Компоненти логарифму енергії даного мовного зразка, які менші від максимального значення на 50 дБ, заміняються на значення цього порогу. Потім всі значення логарифму енергії масштабуються так, щоб максимальне значення стає рівним 1,0.
Припускається, що кожен звуковий вектор не зв’язаний зі своїми сусідами. Це досить грубе припущеня, бо фізичні обмеження голосового тракту людини передбачають плавні переходи між сусідніми спектральними оцінками. Проте додавання різниць та різниць різниць базових елементів значно пом’якшує припущення. Переважно для цього беруться два попередні та два наступні вектори. У результаті отримуємо 39-елементний вектор [4]. Кілька інших можливих варіантів отримання звукових векторів описано в [3].
Попередня обробка мовних зразків (реалізація звукового препроцесора) ISOLET
База даних ISOLET складається з 7800 мовних зразків окремо вимовлених звуків англійської мови. Два зразки кожного звуку були записані від 150 осіб. Зразки дискретизовані з частотою 16 КГц та мають розрядність 16. Середня тривалість зразків - 0,5 с.
Етапи попередньої обробки мовних зразків у базі даних ISOLET детально описані нижче.
1. Оцифрований (дискретизований за часом та квантований за рівнем) мовний сигнал розбиваємо на блоки по 25.6 мс із зсувом кожні 10 мс , тобто, блоки по 409 відліків кожен блок, із зсувом на 160 відліків.
2. Пропускаємо блоки через фільтр першого порядку
EMBED Equation.3 ,
де Sn – n-й відлік у блоці.
3. Застосовуємо до блоку вікно Гемінга згідно з виразом
EMBED Equation.3 для n =1,...,409
4. Збільшуємо довжину блоку до 512 елементів за рахунок доповнення його вкінці потрібною кількістю нулів. Після цього застосовуємо дискретне перетворення Фур’є й отримуємо 256 спектральних комплексних значень.
5. Нульовий член ігноруємо, а величини решта 255 спектральних значень усереднюємо. Усереднення реалізуємо як 24 трикутні смугопропускні фільтри. Нижня, середня та верхня частоти подані в таблиці. Вони апроксимують Mel-шкалу згідно з формулою
g=2595 log10(1+ f / 700),
де g – частота в Mel, f – частота в Герцах.
6. Логарифмуємо отримані 24 середні значення.
7. Обчислюємо перші 12 значень дискретного косинусного перетворення.
EMBED Equation.3 для i=1…12
де mj - значення логарифму j-го середнього значення.
8. У кінець додаємо тринадцятий елемент, енергію поточного блока EMBED Equation.3 .
Далі можна обчислювати ще 26 елементів. Це ”різниця” та “різниця-різниць” коефіцієнти. 13 “дельт” [O(u)t]14,….,[O(u)t]26 апроксимують степінь зміни базових коефіцієнтів косинусного перетворення та енергетичних коефіцієнтів. Їх обчислюємо так:
EMBED Equation.3
13 “дельта-дельт” EMBED Equation.3 , які апроксимують прискорення базових коефіцієнтів косинусного перетворення Фур’є та енергетичних коефіцієнтів, отримуємо за наведеною вище формулою.
Кожний логарифмічний енергетичний профіль запису скануємо і низькочастотні
значення заміняємо значенням на 50дБ нижче пікового значення. Потім енергетичний профіль масштабуємо так, щоб пікове значення було 1.0.
3. Блок-схема попередньої обробки мовного сигналу
Початок
Визначення вхідних розмірів сигналу
Розбиття на блоки мовного сигналу
Застосування до блоків фільтру 1-го порядку
Застосування вікна Хемінга
Збільшення значень до 512 та застосування ДПФ
Реалізація усереднення 24-ма трикутними смугопропускними фільтрами
Виведення результатів попередніх пунктів
Кінець
4. Результат виконання індивідуального завдання
а) програма на мові сценаріїв MATLAB 6.0, яка реалізує етапи попередньої обробки мовного сигналу:
clear all;
vybirka = 1 ;
signal = wavread(‘Alma.wav’) ;
subplot(3,3,1); plot(signal);title(‘Alma.wav’);
d = length(signal) ; %d = 15108
i = 1 ; %i = 14721
while i < d - 408
vybirka = vybirka + 1 ; % vybirka = 93
y = signal(i : i + 408) ;
S(1) = 0.0 ;
for n = 2 : 409
S(n) = y(n) - y(n - 1) ;
end;
for n = 1 : 409
D(n) = (0.54 - 0.46 * cos(2 * pi * (n - 1) / 408)) * S(n) ;
end;
B = abs(fft(D ,512)) ;
C = B(1:256);
Hz = [0; 74.24; 156.4; 247.2; 347.6; 458.7; 531.6; 717.5; 867.9 ; 1034; 1213; 1422;1647; 1895; 2171; 2475; 2812; 3184; 3596; 4052; 4556; 5113; 5730;6412; 7166; 8000];
for n = 1 : 26
V(n) = round (Hz(n) * 256 / 8000) ;
V(1) = 1;
end;
Sum = 0 ;
R(1 : 24) = 0;
for j = 1 : 24
N = V(j + 2) - V(j);
N1 = V(j + 1) - V(j);
D1 = 1 / N1;
for k = 1 : N1
Sum = Sum - S(k + V(j)) * D1 * k;
end;
N2 = V(j + 2) - V(j + 1);
D2 = 1 / N2;
for k = 1 : N2
Sum = Sum - S(k + V(j + 1)) * (1 - D2 * k) ;
end;
R(j) = Sum / N ;
Result (vybirka,j) = R(j);
end;
i = i + 160;
end;
subplot(3,3,2); plot(y);title(' 409 values ');
subplot(3,3,3); plot(S);title(' applying filters');
subplot(3,3,4); plot(D);title(' Hemming');
subplot(3,3,5); plot(B);title(' 512 fft ');
subplot(3,3,6); plot(C);title(' 256 elements ');
subplot(3,3,7); plot(Result(vybirka,1:24));
title(' 24-element vector');
б) результати опрацювання заданого мовного сигналу:
Графічне вікно середовища MATLAB 6.0, у якому ілюструються етапи попередньої обробки мовного зразка example.wav згідно з наведеною програмою, показано на рисунку 2.
Рисунок 2
V = [1 2 5 8 11 15 17 23 28 33 39 46 53 61 69 79 90 102
115 130 146 164 183 205 229 256]
5. Висновок
При виконанні даної лабораторної роботи було опрацьовано та випробувано в середовищі MATLAB 6.0 програму, яка реалізує етапи попередньої обробки мовних зразків, на власному мовному сигналі.