Розпізнавання злитної мови з великим словником

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

На першому етапі мовний сигнал перетворюється звуковий препроцесором на послідовність спектральних векторів Y=y1,y2,…,yT, як описано раніше. Кожен вектор є стислим поданням короткочасного мовного спектру на інтервалі, як правило, близько 25 мс зі зсувом інтервалів на 10 мс. Типова фраза з десяти слів по 6-7 звуків у кожному може мати тривалість біля 3 с і зображатися послідовністю з T=300 спектральних векторів.

У загальному, фраза складається з послідовності слів . Робота системи розпізнавання полягає у визначенні найбільш імовірної послідовності слів , маючи мовний сигнал Y. Для цього використовується правило Байєса:

.

Ця рівність показує, що для знаходження найбільш правдоподібної послідовності слів W, повинна бути знайдена послідовність, що робить максимальним добуток P(W) та P(Y|W).Так як знаменник P(Y) не залежить від W, то його при розпізнаванні ігнорують.

Перший із співмножників представляє апріорну ймовірність спостереження W незалежно від спостереження мовного сигналу. Ця ймовірність визначається моделлю мови.

Другий співмножник представляє ймовірність спостереження послідовності векторів Y при заданій послідовності слів W. Ця ймовірність визначається звуковою моделлю.

На рис.9.9 наведена структура типової системи статистичного розпізнавання. Вона включає чотири складових.

 

Рис.9.9. Структура системи розпізнавання мови

 

Розглянемо кожну з цих чотирьох складових більш детально.

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

Звукова модель. Мета звукової моделі – дати метод обчислення правдоподібності P(Y|W) будь-якої послідовності звукових векторів Y при заданій послідовності слів W.

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

Замість цього послідовності слів розбиваються на базові “будівельні” блоки (звуки), які називаються фонемами.

Кожна фонема зображається прихованою моделлю за Марківим (англійська назва – hidden Markov model (HMM)). HMM-модель складається з низки станів, з’єднаних дугами. HMM-модель фонеми, як правило, має три породжуючих стани (рис.). Формальні вхідний і вихідний стани дозволяють об’єднувати моделі фонем, щоб утворювати слова і об’єднувати слова з метою отримати фрази.

Рис.9.10. HMM-модель фонеми

HMM простіше зрозуміти як генератор послідовностей спектральних векторів. Це автомат зі скінченним числом станів, який змінює свій стан у кожний дискретний момент часу. Коли в момент часу t він переходить у стан j , утворюється спектральний вектор yt з щільністю ймовірності bj(yt). Більш того, перехід із стану i в стан j також імовірнісний і задається дискретною ймовірністю aij. Рис. дає приклад цього процесу, коли модель проходить послідовність станів X=1,2,2,3,4,4,5 і утворює послідовність векторів Y=y1,y2, y3, y4, y5.

Сумісна ймовірність послідовності векторів Y та послідовності станів X при певній заданій моделі M обчислюється просто як добуток ймовірностей переходів та ймовірностей виходів. Тобто, для послідовності станів X на рис.

P(Y,X|M)=a12·b2(y1a22·b2(y2a23·b3(y3a34·b4(y4a44·b4(y5a45

Більш загально, сумісна ймовірність послідовності векторів Y та деякої послідовності станів X=x(0),x(1),x(2),…,x(T),x(T+1) дорівнює

де x(0) вхідний, а x(T+1) вихідний стан моделі.

На практиці, звичайно, відома лише послідовність Y, а послідовність X невідома. Ось звідки взялася назва прихована за Марківим модель. Проте, потрібну ймовірність P(Y|M) легко знаходимо додаючи величини P(Y,X|M) для всіх можливих послідовностей станів X. Розроблено ефективний рекурсивний метод виконання цих обчислень, який називається алгоритмом руху вперед-назад. Суттєвою особливістю цього алгоритму є те, що він дозволяє обчислити ймовірність перебування в заданому стані моделі в заданий момент часу. З нього випливає дуже проста і ефективна процедура Баума-Велча знаходження за критерієм максимальної правдоподібності оцінок параметрів a та b моделі. Слід зауважити, що поява процедури Баума-Велча стала ключовим фактором домінування HMM в звуковій моделі.

Вважається, що наведене рівняння треба переписати в логарифмічній формі та розділити члени a і b

Імовірності переходу моделюють темпоральну структуру даних. Кожен доданок у першій сумі може розглядатися як ціна руху з одного стану в інший. У цьому разі маємо дуже бідну модель зміни реальної мови, але це не є критичним, оскільки на практиці в наведеному виразі домінують імовірності . Кожен стан HMM забезпечує спектральний вектор-прототип, а функція логарифму ймовірності виходу дає метрику відстані і, значить, можливість порівняти поточні спектральні вектори з прототипом.

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

,

де cjv - вага v–го доданка для j–го стану; G(yt,μjv,Σjv) позначає багатовимірний розподіл Гауса з середнім вектором μjv та коваріаційною матрицею Σjv рівний

n означає розмірність спектральних векторів, | | - визначник матриці, T – транспонування вектора.

Приблизно 10 компонент лінійної комбінації дають добрі показники для системи розпізнавання.

На ранній стадії досліджень вважалося, що вимагається лише одна HMM для кожної фонеми.

Число фонем в українській мові рівне 38. Здавалось би, потрібно здійснити навчання лише 38 HMM-моделей. На практиці, проте, контекстні ефекти спричиняють значні зміни у способі утворення звуків (так зване явище коартикуляції). Тому, щоб досягти доброго фонетичного розрізнення, треба навчати різні HMM для різних контекстів.

Найбільш загальним є підхід з використанням трифонів, коли кожна фонема має окрему HMM-модель для кожної індивідуальної пари сусідів зліва та справа. В останніх публікаціях згадується і про використання квінфонів (сукупностей 5 сусідніх звуків: два сусіди зліва і два сусіди справа).

Наприклад, нехай позначення x-y+z представляє фонему y, що трапилась після x і перед z. Тоді фраза “Цей комп’ютер” подається послідовністю фонем È ц е і к о м п і у т е р È, де È позначає паузу. Якщо використовуються HMM-моделі трифонів, то фраза буде описуватися так:

È-ц+е ц-е+і е-і+к і-к+о к-о+м о-м+п м-п+і п-і+у і-у+т у-т+е т-е+р е-р+È

При 38 фонемах є 383=54872 можливих трифони, проте не всі трапляються через обмеження української мови.

Загальне число трифонів, необхідних для практичного вжитку, залежить від вибраної множини фонем, словника та граматичних обмежень.

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

1. Навчальну базу даних, у якій є мовні записи та відповідні їм тексти.

Для англійської мови існує багато загальнодоступних баз даних мовних зразків (ISOLET, CONNEX,Resource Management Database, Wall Street Journal Database та інші). Створення таких баз даних для української мови є завданням на часі.

Як для української, так і для англійської мов, завданням є якнайкраще розбиття мовного запису на фонеми відповідно до тексту.

2 Цільову функцію, яка разом з навчальною базою даних може бути використана, щоб поміряти “відповідність” HMM. Найбільш широко вживаною є цільова функція максимальної правдоподібності:

O - повна множина спектральних векторів усіх навчальних речень;

Ou - спектральні вектори u-го навчального речення;

Wu - синтезована HMM-модель для u -го навчального речення

λ – множина параметрів HMM-моделей усіх навчальних речень;

λu - множина параметрів HMM-моделі для u -го навчального речення.

3. Процедуру оптимізації, яку можемо використати, щоб максимізувати цільову функцію.

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

Таким чином, навчання звукової моделі зводиться до послідовним ітерацій, на кожній з яких перераховуємо всі параметри HMM-моделей усіх навчальних речень. Ітерації припиняємо, коли різниця двох послідовних значень цільової функції стає меншою від наперед заданої величини.

Звідки взяти початкові значення (до початку навчання) параметрів моделей усіх навчальних речень?

Один можливий варіант: вручну розбити невелику кількість навчальних речень на окремі фонеми та їх стани, і за рахунок цього отримати певні початкові оцінки параметрів (виходячи з 38 різних звуків).

Інший, ширше вживаний сьогодні варіант, так званого плоского старту: взяти як початкові значення парметрів будь-які теоретично можливі їх значення.

Ключовим у використанні звукової моделі є зменшення числа параметрів, які треба оцінити. Це необхідно, бо надто велике число оцінюваних параметрів приводить при обмежених навчальних даних до нереальних оцінок Крім того, зменшення числа параметрів зменшує обчислювальну складність.

Ця проблема настільки серйозна, що використовуються додаткові еврістичні обмеження:

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

2.Коваріаційна матриця розподілів припускається діагональною.

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

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

Наприклад, трифон м-о-р в слові море та трифон н-о-л в слові ноль можна вважати такими, що описують подібні звукові ситуації: як у першому, так і в другому випадку середній звук о має сусіда зліва квазіперіодичний звук (м або н) та сусіда справа квазіперіодичний звук (р або л).

Вибір того, які стани зв’язувати, здійснюється за допомогою фонетичних вирішуючих дерев. Це передбачає побудову бінарного дерева для кожного стану кожної фонеми. У кожному вузлі такого дерева ставиться питання, на яке треба відповісти “так” або “ні”. Питання відносяться до фонетичного оточення (контексту) безпосередньо зліва і справа. Одне дерево будується для кожного стану кожної фонеми, щоб розбити на підмножини всі відповідні стани всіх відповідних трифонів.

У результаті такого зв’язування замість 383=54872 трифонів отримуємо 2000–8000 зв’язаних трифонів.

На етапі підготовки навчальних даних для звукової моделі диктор вільно начитує запропонований текст в мікрофон, і в результаті маємо відповідний цьому тексту (множині речень) мовний сигнал.

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

Простий, але ефективний шлях зробити це – використати N-ки слів, у яких приймається, що дане слово wk залежить лише від попередніх N-1 слів, тобто

.

N-ки слів одночасно мають у собі граматику, смисл і предметну область та зосереджуються на локальних залежностях. Більш того, розподіли ймовірностей для N-ок можна обчислити прямо з текстових навчальних даних. Тому не потрібно мати такі точні лінгвістичні правила, як формальна граматика мови.

У принципі, N-ки можна оцінити простим підрахунком частоти повторюваності слова в навчальних текстах і зберігати ці дані в таблицях. Наприклад, для випадку трійок слів (N=3)

де t(wk,wk-1,wk-2) число появ трійок wk,wk-1,wk-2 в навчальних даних та b(wk-1,wk-2) число появ двійок слів wk-1,wk-2.

Проблема полягає в тому, що при словнику V слів є V3 можливих трійок. Навіть для помірного словника в 10000 слів це дуже велике число. Тому багато трійок не з’явиться в навчальних даних, а багато інших з’явиться лише раз чи двічі. Внаслідок цього отримані для них згідно з наведеним виразом оцінки будуть нереальними.

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

Класифікатор (декодер). Ця складова системи зводить воєдино дані від трьох раніше описаних компонент і знаходить найбільш імовірний текст (транскрипцію).

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

Для розуміння проблеми декодування, уявимо конструювання такого дерева, де на початку є галуження до будь-якого можливого початкового слова в реченні. Усі перші слова потім з’єднуються зі всіми можливими черговими словами і так далі. Це проілюстровано на рис. а). Зрозуміло, що таке дерево буде дуже великим, але якщо брати його достатньої глибини, воно в принципі зобразило б усі можливі речення.

а)

 

б)

 

в)

Рис.9.11.

 

Замінимо кожне слово в цьому дереві послідовністю моделей згідно з його вимовою. Якщо є кілька можливих вимов, то можна дати паралельне з’єднання моделей в межах слова. Рис. б) показує фрагмент дерева, деталізованого введенням моделей. Нарешті, зіллємо моделі однакових фонем або фонем, які за рахунок зв’язування потрапили в одну групу. Це проілюстровано на рис. в).

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

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

Цей базовий алгоритм руху міток ґарантує знаходження найкращого можливого маршруту, проте, на жаль, його реалізація потребувала б занадто багато часу і пам’яті.

Щоб уможливити реалізацію алгоритму, використовуємо відсікання можливих варіантів. На кожному часовому інтервалі, фіксуємо найбільший для всіх міток рахунок, і всі мітки, чиї рахунки відрізняються за модулем від найбільшого рахунку більше, ніж на певну наперед встановлену величину (ширину пучка), знищуємо. Оскільки в пам’яті тепер треба зберігати лише активні мітки, які потрапляють у пучок, в кожен момент часу потрібен лише фрагмент описаного раніше дерева. Коли мітки рухаються вперед, пред ними створюємо нову структуру дерева, а стару структуру позаду знищуємо.

Ескіз програмної реалізації системи розпізнавання злитної мови з великим словником можна, зокрема, знайти за адресою www.isip.msstste.edu.