Bazele recunoașterii vorbirii într-un sistem de dictare - spectrul științei

Bazele recunoașterii vorbirii într-un sistem de dictare

Sistemul de recunoaștere a vorbirii IBM Speech Server Series (ISSS) convertește textul vorbit în text scris în timp real și cu o precizie de recunoaștere extrem de ridicată și îl afișează pe ecran (Fig. 1). A fost dezvoltat în ultimii ani în laboratoarele de produse IBM din Boca Raton (Florida) și Viena, precum și în centrele științifice din Roma, Paris, Sevilla, Hursley (Marea Britanie) și Heidelberg. Un grup de cercetare condus de Frederic Jelinek, Robert Mercer și Lalit Bahl la laboratorul de cercetare Thomas J. Watson din IBM din Yorktown Heights (New York) a creat premisele esențiale pentru această dezvoltare prin cercetarea de bază.

recunoașterii

Utilizarea ISSS necesită în prezent așa-numita vorbire discretă, adică dictarea cu pauze (chiar dacă aproape la fel de scurtă pe cât doriți) între cuvinte. Această restricție a fost păstrată din motive de precizie a recunoașterii; nu este necesar din motive de sistem.

Recunoașterea unui semnal de vorbire începe cu preprocesarea: în conformitate cu procesarea sunetului în urechea umană, sistemul folosește mai întâi o transformare Fourier pentru a calcula cât de intens sunt prezente anumite frecvențe fixe în semnalul sonor la punctul respectiv în timp - mai precis: într-un interval de timp precedent puțin mai lung. Aceste informații sunt preluate la fiecare sutime de secundă și transmise la următoarea etapă de procesare ca așa-numitul vector de caracteristici. S-a dovedit a fi util să rezumăm valorile punctelor învecinate în timp și să extragem informațiile importante pentru diferențiere cu o metodă statistică, așa-numita analiză discriminantă. Vectorii caracteristici rafinați obținuți în acest mod conțin informațiile esențiale deja în formă condensată.

Dacă articulăm un anumit sunet - de exemplu un a - vectorii caracteristici detectați în acest timp vor fi mai asemănători unii cu alții decât un vector caracteristică pentru alt sunet. Dacă cineva le imaginează - așa cum este obișnuit cu vectorii - ca puncte într-un spațiu cu dimensiuni ridicate, atunci vectorii caracteristici sau punctele aparținând unui anumit sunet formează un nor în acest spațiu. Poziția și forma lor exacte sunt diferite pentru fiecare difuzor; este determinat într-o fază de instruire specifică vorbitorului sistemului.

Din motive de economie computațională, norii sunt descriși aproximativ cu ajutorul unor forme standard computaționale deosebit de simple. Se presupune, ca să spunem așa, că norii sunt sferici sau eliptici și că axele lor principale sunt paralele cu axele sistemului de coordonate (distribuții normale cu o matrice de covarianță diagonală). Un nor care se abate foarte mult de la forma standard poate fi aproximat de mai mulți nori standard.

Preprocesarea transformă o enunțare a vorbirii într-o secvență temporală de vectori de caracteristici; În spațiul abstract, un punct saltează din nor în nor. În principiu, un program de recunoaștere a vorbirii ar trebui să identifice norul corect în fiecare caz pe baza vectorilor de caracteristici. Secvența de nori găsită în acest mod ar rezulta apoi direct într-o transcriere fonetică a semnalului de vorbire.

În practică, însă, situația este mult mai complicată. De obicei, după antrenament, există mult mai mulți nori în spațiul vectorilor de caracteristici decât sunete. Deci, nu există o atribuire clară de sunete (foneme) către nori în spațiul nostru de caracteristici. Mai degrabă, fiecare fonem folosește puncte din mai mulți nori; ordinea lor este doar aproximativ stabilită, dar nu secvența cronologică exactă. Deci, majoritatea vorbitorilor fac un ocol spre nor pentru e la sfârșitul unui singur pronunțat w; în cursul w, norul u poate fi folosit scurt între ele și așa mai departe. La urma urmei, norii nu sunt focalizați și se suprapun reciproc.

Lanțuri Markov

Cu toate acestea, problema nu este de nerezolvat, așa cum arată propria noastră capacitate de a înțelege limba. Pentru a formaliza matematic cunoștințele anterioare umane și a le pune astfel la dispoziția computerului, unei enunțări lingvistice (de exemplu un cuvânt) i se atribuie așa-numitul proces Markov. În primul rând, aceasta este indicația probabilităților cu care o stare (vector caracteristică) dintr-un anumit set de stări permise este urmată de alta. Aceasta este de obicei reprezentată de așa-numitul lanț Markov (Fig. 2). Realizarea unui proces Markov constă în faptul că, pornind de la o stare inițială, o stare ulterioară este determinată întâmplător în funcție de probabilitățile de tranziție valabile pentru starea inițială, de la aceasta o stare ulterioară și așa mai departe.

Lanțurile Markov sunt un mijloc standard de statistici pentru modelarea proceselor temporale. Ceea ce este nou în ceea ce privește aplicația pentru recunoașterea vorbirii este că stările nu sunt vectori de caracteristici, ci nori - mai exact: distribuții de probabilitate ale vectorilor de caracteristici. Deoarece un vector caracteristică poate aparține mai multor nori, nu este ușor să se deducă secvența de stări asociată (nori) dintr-o secvență observată de vectori caracteristici (vezi caseta de la pagina 92); acest lucru rămâne - inițial - ascuns, motiv pentru care termenul de modele ascunse Markov a devenit ceva obișnuit. Ceea ce pare a fi o complicație inutilă este atât de reușită, deoarece modelele ascunse Markov cu estomparea lor încorporată pot reproduce foarte bine inexactitatea naturală a articulației.

Pentru faza de învățare, un vorbitor trebuie să citească un text de aproximativ trei sferturi de oră. Din numeroasele realizări ale fiecărui sunet vorbit, sistemul calculează apoi valorile estimate pentru probabilitățile de staționare și tranziție ale unui proces Markov asociat. În același timp, parametrii norilor sunt estimate. Într-un anumit sens, cunoștințele despre modul în care acest difuzor este folosit pentru a pronunța un sunet sunt stocate în aceste numere.

Pentru marea majoritate a cuvintelor care nu au apărut în textul de instruire, dar totuși trebuie recunoscute, procesul Markov asociat trebuie să fie construit din datele disponibile. Cu ajutorul unui sistem bazat pe cunoaștere pe care l-au scris Klaus Wothke și alți lingviști în informatică de la IBM din Heidelberg, succesiunea fonemelor care alcătuiesc forma vorbită poate fi derivată din forma scrisă a unui cuvânt; un lanț Markov aparține fiecărui fonem, din a cărui concatenare se obține lanțul Markov pentru întregul cuvânt.

Dacă acum sistemul trebuie să recunoască sunetul corect în contextul unei enunțuri în timpul funcționării, trebuie să decidă care dintre un număr mare de lanțuri Markov imaginabile are cea mai mare probabilitate de a genera observația prezentă (secvența vectorială caracteristică). Aici se folosește o metodă pe care inginerul american de comunicare Andrew J. Viterbi a propus-o în 1967 într-un context complet diferit (vezi caseta de la pagina 92). Numai cu aceste principii și implementarea lor în algoritmi foarte eficienți a fost posibilă distincția exactă a fonemelor limbajului uman în computer.

Deoarece sistemul funcționează cu lanțuri Markov nu numai pentru foneme individuale, ci și pentru secvențe de foneme - în special cuvinte -, întrebarea nu este pur și simplu care dintre cele mai posibile foneme tocmai a fost rostită cel mai probabil, ci care, ținând cont de fragmentele de cuvinte deja auzite sunt cele mai probabile.

În acest sens, metoda sa de lucru seamănă cu percepția oamenilor: nu ne înregistrăm imparțial, ci încercăm să încadrăm ceea ce percepem în ipoteze deja parțial preconcepute. Prin această lucrare de reconstrucție (pentru care a fost inventată fraza „analiză prin sinteză”) suntem capabili să corectăm incompletitudinea și fluctuațiile în forma obiectelor.

Această procedură poate fi generalizată în continuare în recunoașterea vorbirii automate prin combinarea modelelor de cuvinte fonetice în structuri de date mai mari, din care cea mai probabilă dintre un număr mare de ipoteze de cuvinte poate fi determinată de clasamentul Viterbi.

Modele de limbaj rafinate

Relația regulată dintre pronunție și ortografie - o condiție prealabilă pentru crearea unui model de cuvânt fonetic - este mult mai complicată în germană și engleză decât în ​​spaniolă, de exemplu. Prin urmare, reprezentarea modelului descrisă până acum a fost rafinată, ceea ce contribuie la o îmbunătățire considerabilă a preciziei recunoașterii. Programul ISSS se desfășoară în doi pași.

Principiul descris până acum a fost împărțirea cuvintelor în foneme și apoi formularea unui lanț Markov pentru fiecare fonem. Nu are sens să lăsați deloc fonemul ca nivel de descriere pentru recunoașterea vorbirii? Nu ar fi suficient să urmăriți pur și simplu un lanț Markov prin norii spațiului caracteristic pentru reprezentarea fonetică a unui cuvânt? Acest lucru ar avea avantajul că s-ar putea înțelege foarte precis subtilitățile pronunției, cum ar fi buclele și abrevierile.

În timp ce un lanț Markov pentru un fonem are de obicei 7 stări (nori) și 13 tranziții, s-ar putea formula lanțuri Markov destul de lungi, însă foarte simplu structurate, care se referă doar la vectori de caracteristici și la secvența lor: Există o tranziție pentru fiecare nod la nodul însuși, la următorul nod și la următorul, dar unul în cazul în care vectorul caracteristică corespunzător nodului următor lipsește în lanțul de date. Cuvântul model obținut în acest mod se bazează doar pe fenomenele acustice observate direct și, prin urmare, i s-a dat denumirea de formă de bază fenonică, care poate fi tradusă ca „formă de bază fenonică”.

Cu toate acestea, în această formă, cuvântul model este încă impracticabil. Deoarece fiecare cuvânt este modelat direct de vectori de caracteristici, nu mai este posibil să derivăm ipoteze despre realizarea sa acustică din forma scrisă a cuvântului. Deci, un model fenonic separat ar trebui instruit pentru fiecare cuvânt. Acest lucru este neeconomic și nu este potrivit pentru practică.

Aici intervine al doilea pas decisiv, care distinge sistemul de recunoaștere a vorbirii ISSS. Evident, un model fenonic are sens dacă se referă la cele mai mici unități fonetice posibile. Ar trebui să găsim o modalitate de a deduce aceste cele mai mici unități fonetice cât mai exact posibil din forma scrisă a unui cuvânt. Abordarea în acest sens sunt arborii de decizie fonetică.

Ideea este de a înlocui regulile de pronunție tradiționale, destul de aspre, cu reguli care sunt obținute empiric din date extinse. Pronunția unei litere scrise - mai precis: o succesiune de litere reprezentând un fonem, cum ar fi sch - depinde de context; s se pronunță exprimat în Amsel și exprimat în Emsland. Amestecarea dependentă de context poate fi, de asemenea, înregistrată aici.

Programul structurează acum setul de realizări acustice ale fonemului (sau oricărui fonem) împărțind setul total în două subseturi cât mai omogene (uniforme în sine) în funcție de context. (Pentru a determina dacă două secvențe de vectori de caracteristici sunt similare, se poate ignora chiar secvența lor pentru secțiuni foarte scurte ale semnalului de vorbire - așa cum a arătat experiența; este suficient să le comparați frecvențele, ceea ce este mult mai puțin complex.) nimeni nu se preface; acestea sunt calculate automat de program. Sunt luate în considerare contexte de până la cinci foneme înainte și după cel de descris.

Fiecare subset este la rândul său împărțit în două subseturi cât mai omogene și așa mai departe. Se aplică criteriul statistic al câștigului maxim de informații. Diviziunea continuă până când nu mai există un câștig semnificativ în informație.

În general, se obține o structură ierarhică (în formă de copac), la capetele căreia (așa-numitele frunze) sunt adunate o serie de contexte cu aproape aceeași pronunție pentru fonem. O astfel de pronunție de foneme derivate din punct de vedere statistic se numește leafeme în jargonul englez, care ar putea fi tradusă ca sunet de frunză. S vocale, de exemplu, ar putea fi un sunet de frunze sau sunetul care apare scurt atunci când a și u sunt amestecate.

La sfârșitul acestei proceduri, fiecare cuvânt poate fi modelat ca o succesiune de petale. Și acum are sens să descriem sunetele frunzelor printr-un model fenonic, adică doar luând în considerare vectorii caracteristici. Acest lucru a păstrat ecomonia modelului de cuvânt fonetic, dar a făcut progrese considerabile în reglarea fină a detaliilor pronunției și a variantelor de context ale fonemelor. Rezultatul este o calitate extrem de satisfăcătoare a recunoașterii vorbirii în timp real.

Modele de limbaj

Cu ajutorul metodelor descrise până acum, recunoașterea vorbirii obține, mai precis, un număr care indică cât de probabil este semnalul de vorbire actual dacă este asumat un anumit cuvânt sau o secvență de cuvinte. Să numim asta probabilitatea de sinteză. Dimpotrivă, vrem să știm ce secvență de cuvinte este cea mai probabilă dacă se ia semnalul de vorbire așa cum este dat.

Pentru această concluzie inversă de la o probabilitate condiționată la cealaltă, urmează să fie folosită teorema lui Bayes din statistici, care revine la matematicianul englez Thomas Bayes (1702-1761) (comparați capitolele 1 și 5 din cartea mea „Cunoaștere incertă”, Heidelberg 1993). Se spune că pentru un semnal de vorbire dat, probabilitatea unei secvențe de cuvinte este proporțională cu produsul sintezei și probabilitatea de bază a secvenței de cuvinte. Dacă, de exemplu, probabilitatea de sinteză pentru cuvântul „Kant” este mai mare decât cea pentru „mână”, dar sistemul de recunoaștere a vorbirii este utilizat în domeniul medical, unde mâinile sunt menționate mult mai des decât filozofii, atunci ar trebui totuși să încheie „mână”.

Dar cum găsiți - în afara tuturor considerațiilor acustice - probabilitatea de bază a unui cuvânt sau frază? Toate sistemele utilizate în prezent nu utilizează abordări bazate pe cunoaștere, orientate spre înțelegerea textului, ci modele de limbaj statistic. Aceste înregistrări de conexiuni de cuvinte pe baza secvențelor de cuvinte observate.

În sistemul nostru de recunoaștere a vorbirii, folosim observații de frecvență pe secvențe de trei cuvinte (trigrame) în colecții mari de texte, cum ar fi cele furnizate de clienți. Că numărătoarea singură nu este suficientă aici devine evidentă atunci când se consideră că mai mult de un miliard de trigrame sunt concepute cu 20.000 de cuvinte. Chiar și corpusuri extinse de text ating rar această dimensiune. Prin urmare, trebuie să estimați frecvențele trigramelor neobservate și, de asemenea, să corectați frecvențele observate făcând estimări. Pentru a face acest lucru, folosim procese care provin inițial din biostatistică.

Facem unele cercetări în domeniul modelelor lingvistice. Deci, încercăm să rafinăm modelele de frecvență pentru trigrame, incluzând partea de vorbire. Acest lucru face ca, de exemplu, să se cunoască faptul că secvența articol - substantiv este mult mai comună decât inversul, disponibilă sistemului.

În limba germană există numeroși compuși de cuvinte (cum ar fi „artroză articulară”) în texte care pun presiune inutilă asupra vocabularului deoarece componentele lor („articulație” și „artroză”) sunt de obicei deja înregistrate în vocabular ca cuvinte separate. În prezent dezvoltăm o nouă abordare pentru estimarea frecvențelor componentelor compozite.

Pe de altă parte, este logic să se completeze luarea în considerare a unui context de lungime fixă, ca în cazul trigramelor, prin observarea cuvintelor care sunt mai îndepărtate. În special în limba germană, dependențele la scară largă apar foarte des („El nu a sosit decât seara târziu”). Pare promițător aici să aflăm contexte relevante cu structuri statistice asemănătoare regulilor și să formulăm modele lingvistice pe ele.

Deci, există încă numeroase sarcini de cercetare relevante pentru practică. Cu toate acestea, merită deja să luați în considerare utilizarea recunoașterii vorbirii la locul de muncă.