Základy rozpoznávania reči v diktátovom systéme - spektrum vedy
Základy rozpoznávania reči v diktátovom systéme
Systém rozpoznávania reči IBM Speech Server Series (ISSS) prevádza hovorený text na písaný text v reálnom čase as mimoriadne vysokou presnosťou rozpoznávania a zobrazuje ho na obrazovke (obr. 1). Bol vyvinutý v posledných rokoch v produktových laboratóriách IBM v Boca Raton na Floride a vo Viedni, ako aj vo vedeckých centrách v Ríme, Paríži, Seville, Hursley (Veľká Británia) a Heidelbergu. Výskumná skupina pod vedením Frederica Jelinka, Roberta Mercera a Lalita Bahla vo výskumnom laboratóriu Thomasa J. Watsona v IBM v Yorktown Heights (New York) vytvorila základné predpoklady pre tento vývoj prostredníctvom základného výskumu.

Používanie ISSS si v súčasnosti vyžaduje takzvané diskrétne rozprávanie, to znamená diktovanie medzi slovami (aj keď takmer tak krátkymi, ako chcete). Toto obmedzenie bolo zachované z dôvodu presnosti rozpoznania; nie je to potrebné zo systémových dôvodov.
Rozpoznávanie rečového signálu začína predspracovaním: V súlade so spracovaním zvuku v ľudskom uchu systém najskôr pomocou Fourierovej transformácie vypočíta, ako intenzívne sú v zvukovom signáli v danom časovom okamihu určité pevné frekvencie - presnejšie: v o niečo dlhšom predchádzajúcom časovom intervale. Táto informácia sa zachytáva každú stotinu sekundy a odovzdáva sa do ďalšej fázy spracovania ako takzvaný vektor funkcií. Ukázalo sa ako užitočné sumarizovať hodnoty susedných bodov v čase a získať informácie dôležité pre diferenciáciu pomocou štatistickej metódy, takzvanej diskriminačnej analýzy. Takto získané rafinované vektory znakov obsahujú základné informácie už v zhustenej podobe.
Ak vyslovíme určitý zvuk - napríklad a -, vektory znakov zistené počas tejto doby budú navzájom viac podobné ako vektor znakov pre iný zvuk. Ak si ich niekto predstavuje - ako je to u vektorov obvyklé - ako body vo vysokorozmernom priestore, potom vektory znakov alebo body patriace k určitému zvuku tvoria v tomto priestore oblak. Ich presná poloha a tvar sú pre každého reproduktora odlišné; určuje sa to vo fáze tréningu systému pre konkrétneho reproduktora.
Z dôvodov výpočtovej ekonomiky sú oblaky približne opísané pomocou výpočtovo obzvlášť jednoduchých štandardných foriem. Jeden predpokladá, akoby boli oblaky sférické alebo eliptické a že ich hlavné osi ležia rovnobežne s osami súradnicového systému (normálne rozdelenie s diagonálnou kovariančnou maticou). Mrak, ktorý sa výrazne odchyľuje od štandardného tvaru, je možné priblížiť niekoľkými štandardnými mrakmi.
Predbežné spracovanie premení rečový prejav na časovú postupnosť vektorov znakov; V abstraktnom priestore sa bod skáče akoby z mraku do mraku. Program rozpoznávania reči by v zásade musel identifikovať správny oblak v každom prípade iba na základe vektorov znakov. Takto nájdený sled mračien by potom priamo viedol k fonetickému prepisu rečového signálu.
V praxi je však situácia omnoho komplikovanejšia. Typicky je po tréningu v priestore vektorov funkcií podstatne viac oblakov ako zvukov. Takže v našom priestorovom priestore neexistuje jasné priradenie zvukov (fonémov) k oblakom. Každá fonéma skôr využíva body z niekoľkých oblakov; ich poradie je určené iba zhruba, ale nie presná chronologická postupnosť. Väčšina rečníkov teda na konci jedného vysloveného w odbočí do oblaku na e; v priebehu w sa u-cloud môže krátko použiť medzi tým atď. Mraky sú koniec koncov neostré a navzájom sa prekrývajú.
Markovove reťaze
Ako však ukazuje naša vlastná schopnosť porozumieť jazyku, problém nie je neriešiteľný. S cieľom matematicky formalizovať predchádzajúce ľudské vedomosti, a tým ich sprístupniť počítaču, je jazykovému výroku (napríklad slovu) priradený takzvaný Markovov proces. Najskôr ide o indikáciu pravdepodobností, s ktorými za jedným stavom (vektorom funkcií) z určitej množiny povolených stavov nasleduje ďalší. Zvyčajne to predstavuje takzvaný Markovov reťazec (obr. 2). Jedna implementácia Markovovho procesu spočíva v tom, že počnúc počiatočným stavom je následný stav určený náhodou v súlade s pravdepodobnosťami prechodu platnými pre počiatočný stav, z tohto následného stavu atď.
Markovove reťazce sú štandardným štatistickým prostriedkom na modelovanie časových procesov. Čo je nové v aplikácii na rozpoznávanie reči, je to, že stavy nie sú vektory znakov, ale mraky - presnejšie: rozdelenie pravdepodobnosti vektorov znakov. Pretože vektor znakov môže patriť do niekoľkých oblakov, nie je ľahké odvodiť súvisiacu postupnosť stavov (oblakov) z pozorovanej postupnosti vektorov znakov (pozri rámček na strane 92); toto zostáva - spočiatku - skryté, a preto sa pojem skrytý Markovov model stal bežným. To, čo sa javí ako zbytočná komplikácia, je také úspešné, pretože skryté Markovove modely so zabudovaným rozmazaním dokážu veľmi dobre reprodukovať prirodzenú nepresnosť artikulácie.
V rámci fázy učenia sa musí rečník prečítať text v dĺžke asi trištvrte hodiny. Z početných realizácií každého hovoreného zvuku systém potom počíta odhadované hodnoty pravdepodobností zotrvania a prechodu súvisiaceho Markovovho procesu. Zároveň sa odhadujú parametre oblakov. V istom zmysle sú vedomosti o tom, ako sa tento reproduktor používa na vyslovenie zvuku, uložené v týchto číslach.
Pre drvivú väčšinu slov, ktoré sa v tréningovom texte neobjavili, ale napriek tomu ich treba rozpoznať, musí byť súvisiaci Markovov proces zostavený z dostupných údajov. S pomocou systému založeného na vedomostiach, ktorý napísal Klaus Wothke a ďalší počítačoví lingvisti z IBM v Heidelbergu, možno z písanej formy slova odvodiť postupnosť fonémov, ktoré tvoria hovorenú formu; Markovov reťazec patrí do každej fonémy, z ktorej zreťazenia sa získa Markovov reťazec pre celé slovo.
Ak má teraz systém počas prevádzky rozpoznávať správny zvuk v kontexte výpovede, musí rozhodnúť, ktorý z veľkého počtu možných Markovových reťazcov má najväčšiu pravdepodobnosť generovania súčasného pozorovania (postupnosť vektorov znakov). Používa sa tu metóda, ktorú navrhol americký komunikačný inžinier Andrew J. Viterbi v roku 1967 v úplne inom kontexte (pozri rámček na strane 92). Iba s týmito princípmi a ich implementáciou do veľmi efektívnych algoritmov bolo možné presne rozlíšiť fonémy ľudského jazyka v počítači.
Pretože systém pracuje s Markovovými reťazcami nielen pre jednotlivé fonémy, ale aj pre sekvencie fonémov - najmä slová -, nie je len otázkou, ktorá z niekoľkých možných fonémov práve bola vyslovená najpravdepodobnejšie, ale ktorá, berúc do úvahy fragmenty slov, ktoré ste už počuli, sú najpravdepodobnejšie.
V tomto zmysle jeho pracovná metóda pripomína vnímanie ľudí: Neregistrujeme sa nestranne, ale snažíme sa to, čo vnímame, zapadnúť do už čiastočne predpojatých hypotéz. Prostredníctvom týchto rekonštrukčných prác (pre ktoré bola vytvorená fráza „analýza syntézou“) sme schopní opraviť neúplnosť a výkyvy v tvare objektov.
Tento postup možno ďalej zovšeobecniť v strojovom rozpoznávaní reči kombináciou fonetických slovných modelov do väčších dátových štruktúr, z ktorých je podľa Viterbiho poradia možné určiť najpravdepodobnejšiu z veľkého počtu slovných hypotéz.
Prepracované jazykové modely
Pravidelný vzťah medzi výslovnosťou a pravopisom - nevyhnutný predpoklad pre vytvorenie fonetického slovného modelu - je napríklad v nemčine a angličtine oveľa komplikovanejší ako v španielčine. Doteraz opísané modelové znázornenie bolo preto vylepšené, čo prispieva k značnému zlepšeniu presnosti rozpoznávania. Program ISSS prebieha v dvoch krokoch.
Doteraz opísaným princípom bolo rozdeliť slová na fonémy a potom sformulovať Markovov reťazec pre každú fonému. Nemá vôbec zmysel vynechať fonému ako úroveň popisu rozpoznávania reči? Nestačilo by na fonetické znázornenie slova jednoducho vystopovať markovský reťazec cez oblaky priestoru funkcií? To by malo výhodu v tom, že by sa dalo veľmi presne pochopiť jemnosť výslovnosti, ako sú rozmazanie a skratky,.
Zatiaľ čo Markovov reťazec pre fonému má zvyčajne 7 stavov (oblakov) a 13 prechodov, dalo by sa formulovať pomerne dlhé, napriek tomu veľmi jednoducho štruktúrované Markovove reťazce, ktoré odkazujú iba na vektory funkcií a ich postupnosť: Pre každý uzol existuje prechod do samotného uzla, do nasledujúceho uzla a do nasledujúceho predošlého v prípade, že v reťazci údajov chýba vektor funkcií zodpovedajúci nasledujúcemu uzlu. Takto získaný slovný model je založený iba na priamo pozorovaných akustických javoch, a preto dostal názov fenonický základný tvar, ktorý možno preložiť ako „fenonický základný tvar“.
V tejto podobe je však slovo model stále nepraktické. Pretože každé slovo je modelované priamo vektormi znakov, z písomnej formy slova už nie je možné odvodiť hypotézy jeho akustickej realizácie. Pre každé slovo by sa teda musel trénovať samostatný fenonický model. To je neekonomické a nie je vhodné pre prax.
Tu prichádza na rad druhý rozhodujúci krok, ktorý odlišuje systém rozpoznávania reči ISSS. Je zrejmé, že fenonický model má zmysel, ak odkazuje na najmenšie možné fonetické jednotky. Bolo by potrebné nájsť spôsob, ako čo najmenšie odvodiť tieto najmenšie fonetické jednotky z písomnej formy slova. Prístup k tomu sú fonetické rozhodovacie stromy.
Cieľom je nahradiť tradičné, dosť hrubé pravidlá výslovnosti pravidlami, ktoré sú empiricky získané z rozsiahlych údajov. Výslovnosť napísaného písmena - presnejšie: postupnosť písmen predstavujúcich fonému, napríklad sch - závisí od kontextu; s sa vyslovuje v Amselovi a v Emslande. Tiež tu možno zaznamenať miešanie závislé od kontextu.
Program teraz štruktúruje množinu akustických realizácií foném s (alebo ľubovoľnú fonému) delením celkovej množiny na dve podskupiny, ktoré sú čo najhomogénnejšie (samy o sebe jednotné) v závislosti od kontextu. (Ak chcete zistiť, či sú si dve sekvencie vektorov znakov podobné, môžete dokonca ignorovať ich sekvenciu pre veľmi krátke úseky rečového signálu - ako ukázali skúsenosti; stačí porovnať ich frekvencie, čo je oveľa menej zložité.) Kritériá tohto rozdelenia musia byť nikto sa netvári; program ich automaticky počíta. Berú sa do úvahy kontexty až piatich foném pred a po popise.
Každá podskupina je zase rozdelená do dvoch podskupín, ktoré sú čo najhomogénnejšie atď. Uplatňuje sa štatistické kritérium maximálneho zisku informácií. Rozdelenie pokračuje, kým prestane existovať výrazný nárast informácií.
Celkovo sa získa hierarchická (stromovitá) štruktúra, na ktorej koncoch (tzv. Listy) sa zhromaždí množstvo kontextov s takmer rovnakou výslovnosťou pre fonému. Takáto štatisticky odvodená výslovnosť foném sa v anglickom žargóne nazýva leafeme, čo by sa dalo preložiť ako zvuk listu. Hlasom s môže byť napríklad listový zvuk alebo zvuk, ktorý sa krátko objaví, keď sú zmiešané a a u.
Na konci tohto postupu možno každé slovo modelovať ako sériu okvetných lístkov. A teraz má zmysel opísať listové zvuky fenonickým modelom, to znamená iba s ohľadom na vektory funkcií. Zachovala sa tým ekomónia modelu fonetického slova, ale dosiahol sa značný pokrok v dolaďovaní podrobností výslovnosti a kontextových variantov foném. Výsledkom je mimoriadne uspokojivá kvalita rozpoznávača reči v reálnom čase.
Jazykové modely
Pomocou doteraz popísaných metód získa rozpoznávač reči presnejšie číslo, ktoré označuje, aké pravdepodobné je súčasný rečový signál, ak sa predpokladá určité slovo alebo postupnosť slov. Hovorme tomu syntéza pravdepodobnosť. Naopak, vlastne chceme vedieť, ktorá postupnosť slov je najpravdepodobnejšia, ak človek vezme rečový signál tak, ako je daný.
Pre tento inverzný záver z jednej podmienenej pravdepodobnosti na druhú je potrebné použiť Bayesovu vetu zo štatistík, ktorá siaha až k anglickému matematikovi Thomasovi Bayesovi (1702 až 1761) (porovnaj kapitoly 1 a 5 mojej knihy „Neistá znalosť“, Heidelberg 1993). Hovorí sa v ňom, že pre daný rečový signál je pravdepodobnosť postupnosti slov úmerná súčinu syntézy a základnej pravdepodobnosti postupnosti slov. Ak je napríklad pravdepodobnosť syntézy slova „Kant“ vyššia ako pravdepodobnosť slova „ruka“, ale systém rozpoznávania reči sa používa v lekárskej oblasti, kde sú ruky spomenuté oveľa častejšie ako filozofi, mal by napriek tomu dospieť k záveru „ruka“.
Ako však nájdete - mimo všetkých akustických hľadísk - základnú pravdepodobnosť slova alebo frázy? Všetky systémy, ktoré sa v súčasnosti používajú, nepoužívajú prístupy založené na znalostiach a porozumenie textu, ale štatistické jazykové modely. Tieto zaznamenávajú slovné spojenia na základe pozorovaných slovných postupností.
V našom nástroji na rozpoznávanie reči používame frekvenčné pozorovania na trojslovných sekvenciách (trigramoch) vo veľkých zbierkach textov, ako sú napríklad tie, ktoré dodávajú zákazníci. Toto počítanie tu nestačí, je zrejmé, keď sa vezme do úvahy, že si možno predstaviť viac ako bilión trigramov s 20 000 slovami. Aj rozsiahle korpusy textu zriedka dosahujú túto veľkosť. Musíte teda odhadnúť frekvencie nepozorovaných trigramov a tiež opraviť pozorované frekvencie odhadmi. K tomu používame procesy, ktoré pôvodne pochádzajú z biostatistiky.
Robíme prieskum v oblasti jazykových modelov. Takže sa snažíme spresniť frekvenčné modely pre trigramy zahrnutím časti reči. Vďaka tomu je napríklad k dispozícii poznatok, že systémový člen - podstatné meno je oveľa bežnejší ako jeho reverz.
V nemčine sú v textoch početné slovné spojenia (napríklad „kĺbová artróza“), ktoré zbytočne zaťažujú slovnú zásobu, pretože ich zložky („kĺbová“ a „artróza“) sú v slovnej zásobe zvyčajne zaznamenané ako samostatné slová. V súčasnosti vyvíjame nový prístup k odhadu frekvencií zložených komponentov.
Na druhej strane sa javí ako užitočné doplniť zohľadnenie kontextu pevnej dĺžky, podobne ako pri trigramoch, pozorovaním slov, ktoré sú ďalej. Najmä v nemčine sa veľmi často vyskytujú rozsiahle závislosti („Prišiel až neskoro večer“). Zdá sa byť nádejným nájsť príslušné kontexty s pravidlovými štatistickými štruktúrami a formulovať na nich jazykové modely.
Stále teda existuje veľa výskumných úloh, ktoré sú relevantné pre prax. Napriek tomu už stojí za to zvážiť použitie rozpoznávania reči na pracovisku.