Малюнак 1. Схема працэсу прызнання
Існуюць чатыры асноўных кроку да выканання прызнанне. Кожны крок будзе растлумачана коратка тут і больш падрабязна далей у гэтым дакуменце.
Па-першае, мы лічбавання прамовы, што мы хочам, каб прызнаць, для тэлефоннай размовы частата дыскрэтызацыі 8000 выбарак у секунду. Па-другое, мы вылічыў функцыі, якія ўяўляюць спэктральнай вобласці змест прамовы (рэгіёнаў моцную энергію на пэўных частотах). Гэтыя асаблівасці вылічаецца кожныя 10 мс, з аднаго 10-мс частку пад назвай кадра. Па-трэцяе, нейронавыя сеткі (таксама званы ANN, шматслаёвы перцептрон або MLP) выкарыстоўваецца для класіфікацыі мноства гэтых функцый у фанетычнай аснове катэгорый у кожным кадры. Па-чацвёртае, пошук Витерби выкарыстоўваецца для супастаўлення ацэнкі нейронных сеткі выхад мэтавага слова (словы, якія мяркуюцца ў уваходнага слова), з тым каб вызначыць словы, якія, хутчэй за ўсё, вымавіў.
Акрамя таго, можна прааналізаваць вынікі, гледзячы на ўпэўненасць мы маем у топ-скоринга слова. Слова можа быць адхіленая як па-за лексікі калі давер падае ніжэй загадзя пэўнага парога. Даверу значэння заўсёды вылічаецца па CSLU Інструментарый падчас прызнання, але мы ў цяперашні час не выкарыстоўваць гэтыя значэння ў час агульнага прызначэння прызнанне.
Цяпер мы паедзем ў трохі больш падрабязна.
Малюнак 2. Графічнае адлюстраванне працэсу прызнання
Аблічбаваны сігнал пераўтворыцца ў прадстаўленні спэктральнай вобласці, адзін з двух набораў функцый можа быць выкарыстаны, у залежнасці ад распазнавання. Для бягучай распознавателя на агульныя мэты, мы выкарыстоўваем дванаццаць Мел-частотных кепстральных каэфіцыентаў (КМПЦ каэфіцыентаў), дванаццаць MFCC дэльта функцыі, якія паказваюць на ступень спектральныя змены, адной энергіі функцыю, і адзін дэльта-функцыя энергіі (у агульнай складанасці 26 асаблівасці на кадр). Cepstral-сярэдняга аднімання (CMS) каэфіцыентаў MFCC робіцца для выдалення некаторых ўздзеяння шуму. Для апошніх лічбаў распознавателя (будзе выпушчаная з версіі 2.0 Toolkit), мы выкарыстоўваем дванаццаць MFCC асабліва з CMS, адной энергіі функцыя з аналізу КМПЦ, дванаццаць ўспрымання-лінейнай прадказанні (ПАП) асабліва з памяншэннем шуму пры апрацоўцы RASTA, і адзін Функцыя энергіі з аналізу ПАП (у агульнай складанасці 26 асаблівасці ў кадры).
Каб даць некаторую інфармацыю пра змест акустычных ўзяць кантэксце акно магчымасцяў, як паказана на вертыкальныя лініі ў правай верхняй дыяграмы на малюнку 2. Гэта азначае, проста прымаючы рамках цікавасць, а таксама кадры, якія -60, -30, 30 і 60 мс ад рамкі інтарэсаў. Гэта зроблена, каб прыняць пад увагу дынамічны характар гаворкі: асоба фанемы часта залежыць не толькі ад спектральных асаблівасцяў ў адной кропцы ў часе, але гэта будзе таксама залежаць ад таго, як асаблівасці змены з цягам часу.
Мы пасылаем асабліва ў кантэксце акна нейронных сеткі для класіфікацыі (26 асаблівасцяў кожнага кадра з хуткасцю 5 кадраў = 130 функцый). Выхад нейронных сеткі класіфікацыі кожнага ўваходнага кадра, вымераныя ў тэрмінах верагоднасці фанемы аснове катэгорый. Адпраўляючы кантэксце вокны для ўсіх кадраў словы для нейронных сеткі, мы можам пабудаваць матрыцы верагоднасцяў фанемы аснове катэгорый з цягам часу. У гэтым прыкладзе з-выхад сеткі нейронавыя, слова быць прызнаным у два і больш цёмныя вобласці ў T, T U <, U і катэгорый паказваюць большай верагоднасці гэтых класаў у названых раз.
Мэтавых слова вымаўлення Затым раскласці ў радках фанетычнай аснове катэгорый, і пошук Витерби выкарыстоўваецца, каб знайсці лепшы шлях праз матрыцу верагоднасцяў для кожнага юрыдычнай радка. Выхад прызнанне слова радок, якая адпавядае гэтаму лепшы шлях.
Малюнак 3. Кантэкстнае-залежныя Мадэляванне
Так што катэгорыі павінны нейронных сеткі класіфікаваць? Відавочным выбарам з'яўляецца адной катэгорыі для кожнай фанемы, таму такія словы, як "так" будзе мець тры cateogries:/у /,/Е /, і/з /. Ранняе распазнавання былі пабудаваны такім чынам, але было ўстаноўлена, што фанемы маюць такое вялікае ўплыў на суседнія фанемы,/Е /, што варта/S/можа значна адрознівацца ад/E /, што варта, скажам,/б /. Для таго, каб растлумачыць гэтыя coarticulatory эфекты, цяперашняя стратэгія з'яўляецца падзяліць кожную фонему ў адзін, два ці тры часткі, у залежнасці ад тыповай працягласці, што фанемы, а таксама колькі гэта фанем будзе залежаць ад навакольнага фону. Фанемы/E /, напрыклад, можа быць пад уплывам фанемы як на правую і левую бок, але яна таксама можа быць досыць доўгім, па працягласці, што сярэдняя частка не так шмат залежыць ад навакольнага фону. Як вынік, мы падзялілі/E/на тры часткі. Фанемы/п /, з іншага боку, таксама можа быць доўга па часе, але гэта не паўплывала шмат навакольнымі фанем, мы можам падзяліць/п/на дзве часткі, або захаваць яе ў якасці фанемы з адной часткі. Такія рашэнні прымаюцца на аснове ведаў акустычнай фанетыкі, а таксама практычны вопыт.
Калі б мы мадэлі кожны фанемы ў левы і правы кантэксты любой іншай фанемы, не было б на каля 5000 розных катэгорый для класіфікацыі. Для таго, каб спрасціць гэтую сітуацыю, мы група катэгорый, якія падобныя ў адным з васьмі шырокіх кантэкстах. Напрыклад,/у/Спектральна падобныя на перадпакоі галосныя, і так ён прызначаны (нараўне з іншымі галоснымі пярэдняга, такія як/гу/і/IH /) у шырокім кантэксце "$ фронту". Фанем/S/з'яўляецца шчылінны, і так ён прызначаны, нараўне з/ж/і/ш /, у шырокім кантэксце "$ трэння". Знак даляра абазначэння, калі мы маем на ўвазе шырокі кантэкст, а не адной фанемы. Такім чынам, наша мадэль/E/у "так", то становіцца $ пярэдняй <E (/ E/у кантэксце папярэдняга галоснага спераду), <E> (/ E/ў сярэдзіне, не контекстуальный эфекты), і E> $ трэння (/ E/у кантэксце наступных шчыліннай). Для слоўніка-незалежная сістэма,/E/будзе падзелены на 17 катэгорый: 8 катэгорый для кожнага папярэдняга шырокім кантэксце, 8 катэгорый у кожнай з наступных шырокім кантэксце, і адзін кантэкстнае-indpendent катэгорыі.
Метад выкарыстання шырокіх кантэкстах вынікі ў 576 катэгорыях для ўсіх амерыканскага варыянту ангельскай мовы фанем, якая з'яўляецца больш вылічальнай магчыма. Акрамя таго, катэгорыі, якія не часта сустракаюцца ў навучальных карпусоў могуць быць прывязаны да акустычна падобных катэгорый, якія маюць больш дадзеных для навучання; такім чынам, колькасць катэгорый трэніравацца на можа быць зніжана з 576 да 544. Бягучы сеткі агульнага карыстання мае 544 катэгорый прадукцыі, але фанем, якія належаць кожнаму шырокім кантэксце былі вызначаны з выкарыстаннем кіраваных дадзенымі метад, а не акустычных фанетычных ведаў.
Малюнак 4. Нейронавыя сеткі аснове верагоднасці вылічэнняў.
Нейронавая сетка налічвае 130 ўваходных вузлоў, па адным для кожнай функцыі ў акне кантэксце 5-кадра. Ёсць 200 схаваных вузлоў, і 544 вузлоў выхад. Агульнага прызначэння сеткі, якая выкарыстоўваецца ў ОГИ навучаўся выкарыстаннем 1500 узораў з кожнай катэгорыі, з дадзенымі, узятымі з ОГИ нумары, Так/Не, Apple, і апавяданні карпусоў, а таксама НАЙНЕКС PhoneBook корпус. Адна важная рэч, каб адзначыць, што выхады нейронных сеткі выкарыстоўваюцца ў якасці адзнакі апастэрыёрная верагоднасць, іншымі словамі, мы не бярэм катэгорыі з найбольшай колькасцю ачкоў і сказаць: "Добра, у кадры 42 мы знайшлі ў катэгорыі > $ сярэдзіне ". Замест гэтага сетка выкарыстоўваецца для ацэнкі верагоднасці кожнай катэгорыі, так што мы маглі б сказаць: "Добра, у кадры 42 мы выявілі 82% proability ў> $ сярэдзіне, 7% верагоднасці ў> $ фронту, 7 % верагоднасць гу> $ сярэдзіне, 3% верагоднасць <iy>, і блізкая да нуля верагоднасць для ўсіх іншых катэгорый. " Гэта было паказана Bourlard і Wellekens (НПВ 89) і Рычард і Липпман (нейронных вылічэнняў 1991), што нейронавыя сеткі можна класіфікаваць такім чынам прадастаўлена дастаткова дадзеных для навучання і утоеных вузлоў.
Малюнак 5. Витерби пошук
Пасля таго як мы матрыцы, як фанэтычны верагоднасці змяняюцца з часам, мы хочам шукаць прыдатнае слова. Перш чым зрабіць гэта, нам трэба вылічыць мноства прававых радкоў фанетычных катэгорый. Гэты набор залежыць ад словамі, мы хочам, каб прызнаць і магчымы парадак слоў, таму мы аб'ядноўваем вымаўленне мадэлі для кожнага з нашых слоў (напрыклад, "так" = $ SIL <y, y> $ сярэдзіне, $ пярэдняй <E, <E>, E> $ трэння, $ сярэдзіне <s, s> $ SIL) з граматыкі (якая вызначае, што словы могуць адбывацца ў якім парадку). У прыкладзе, паказаным тут, у нас ёсць просты шлях пошуку, які можа распазнаць толькі "так" або "не", абодва з якіх павінны быць да і пасля маўчаннем. У пошуках, калі мы глядзім на новы кадр, мы пераходу ў новы стан, калі верагоднасць новай катэгорыі больш, чым верагоднасць бягучай катэгорыі. У канцы пошуку, мы бал, хутчэй за ўсё, паслядоўнасць катэгорыі і шлях, па катэгорыях, якія былі выкарыстаныя для стварэння лепшы вынік. Мы можам стаць на гэты шлях і лёгка вызначыць адпаведнае слова (ці паслядоўнасць слоў). Гэтае слова мае найлепшае згоду з ўваходнымі дадзенымі, і таму слова, што, хутчэй за ўсё, вымавіў.
Малюнак 6. Витерби Прыклад пошуку
Гэтая лічба сляды пошуку шляхоў для "так" і "няма" праз гіпатэтычнай матрыцы верагоднасцяў. Хоць адзнака для "няма" з'яўляецца вельмі нізкім, ён усё яшчэ можна знайсці найбольш верагодны шлях для гэтага слова, калі "так" не было ў нашым лексіконе. Пошук Витерби можна зразумець, прачытаўшы наступныя Код алгарытм псеўда (з абазначэння запазычаных з паперы ў Рабінер, падручнік на схаваных Маркоўскіх мадэлях і выбраныя прыкладання ў распазнанні мовы):
/* initialization */
given N is the number of categories,
given T is the number of frames,
given matrix B[j][t]: category probabilities (neural network outputs),
with 1 <= j <= N, 1 <= t <= T
given matrix A[i][j]: probability of transitioning from category i to category j,
with 1 <= i <= N, 1 <= j <= N
initialize delta[i][1] to B[i][1], with 1 <= i <= N
initialize psi[i][1] to 0, with 1 <= i <= N
/* main loop: compute delta (scores) and psi (category values corresponding */
/* to best scores). max_score is probability of being in state i and */
/* transitioning from state i to state j */
for each frame t from 2 to T {
for each category j from 1 to N {
max_score = LOWEST_POSSIBLE_VALUE
max_index = 0
for each category i from 1 to N {
if (delta[i][t-1] * A[i][j] > max_score) {
max_score = delta[i][t-1] * A[i][j]
max_index = i
}
}
delta[j][t] = max_score * B[j][t]
psi[j][t] = max_index
}
}
/* backtracking to find state (category) sequence */
max_score = LOWEST_POSSIBLE_VALUE
max_index = 0
for each category i from 1 to N {
if (delta[i][T] > max_score) {
max_score = delta[i][T]
max_index = i
}
}
state[T] = max_index
for each frame t from T-1 to 1 {
state[t] = psi[state[t+1]][t+1]
}
Заўважым, што звычайна гэты алгарытм рэалізуецца з дапамогай лог-дамен нумары, каб пазбегнуць страты значнасці выкліканых множання разам шмат значэнняў, меншых, чым адзін.
Малюнак 7. Слова плямістасць
Word-плямістасць дазваляе нам знайсці слова або фразу дзесьці ў выказванні, нават калі чалавек сказаў: "Ну, дайце мне падумаць, да лепшых часоў.... <target слова рубрыкі тое, што я жадаў".
Змаўчанні граматыкі для прызнання аднаго слова або фразы
ЛЮБЫ <target слова або phrase> ЛЮБЫ
Гэта азначае, што мы прызнаем, "нічога", а затым адно з слоў з нашага лексікону, а затым "нічога". "Усё, што" ў нейкі рамкі вызначаецца як адзнака за маўчанне ў той рамкі або лікам N-га лепшыя фанетычныя катэгорыі ў гэтым кадры, што больш. Значэнне па змаўчанні для N-мэты распазнавання наогул 16. Па сутнасці, мы кажам, што мы прызнаем мэтавай слова, калі яго ацэнка лепш, чым адзнака атрыманая шляхам множання значэнняў ўсіх 16-й лепшых значэнняў (або, калі яго ацэнка лепш, чым адзнака за маўчанне). Гэта забяспечвае вымярэнне, якое не залежыць ад фіксаванага парога (калі сігнал шумна, ацэнкі для мэтавай слоў і 16-га лепшыя значэння будзе памяншацца) і граматыкі (не робіцца ніякіх здагадак аб тым, што староннія гаворка на самой справе).
Значэнне 16 быў вызначаны эмпірычнаму і могуць быць зменены карыстальнікам у cslurp або cslush пакетаў.
Пытанні або каментары? Калі ласка, дашліце ліст на першы аўтар, Джон-Пол Hosom; hosom на cslu кропка Оги кропка адукацыі.