22.6 Sinteza și recunoașterea vorbirii

Generarea și recunoașterea pe computer a vorbirii sunt probleme formidabile; au fost încercate multe abordări, cu un succes moderat. Aceasta este o zonă activă a cercetării DSP și, fără îndoială, va rămâne așa pentru mulți ani care vor veni. Veți fi foarte dezamăgit dacă vă așteptați ca această secțiune să descrie cum să construiți circuite de sinteză și recunoaștere a vorbirii. Numai o scurtă prezentare a abordărilor tipice poate fi prezentată aici. Înainte de a începe, trebuie subliniat faptul că majoritatea produselor comerciale care produc vorbirea cu sunet uman nu o sintetizează, ci doar redă un segment înregistrat digital de la un vorbitor uman. Această abordare are o calitate excelentă a sunetului, însă este limitată la cuvintele și expresiile preînregistrate.

Aproape toate tehnicile de sinteză și recunoaștere a vorbirii se bazează pe modelul de producere a vorbirii umane prezentat în Fig. 22-8. Majoritatea sunetelor limbajului uman pot fi clasificate ca fiind sonore, sau sunt fricative. Sunetele sonore apar atunci când aerul este forțat din plămâni, prin corzile vocale în afara gurii și/sau nasului. Corzile vocale sunt două clape subțiri de țesut întinse peste fluxul de aer, chiar în spatele mărului lui Adam. Ca răspuns la variația tensiunii musculare, corzile vocale vibrează la frecvențe cuprinse între 50 și 1000 Hz, ducând la suflarea periodică a aerului injectat în gât. Vocalele sunt un exemplu de sunete sonore. În figura 22-8, sunetele sonore sunt reprezentate prin generatorul de impulsuri, cu înălțimea (adică, frecvența fundamentală a formei de undă) fiind un parametru reglabil.

Figura 22-8 Modelul vorbirii umane.
Pe un segment scurt de timp, aprox. 2 la 40 milisecunde, vorbirea poate fi modelată prin trei parametri: (1) selecția unei excitații periodice sau de zgomot, (2) înălțimea excitației periodice, și (3) coeficienții unui filtru liniar recursiv ce imită răspunsul tractului vocal.

În comparație, sunetele fricative provin din zgomot aleator, nu din vibrațiile corzilor vocale. Aceasta se întâmplă atunci când fluxul de aer este aproape blocat de limbă, buze și/sau dinți, ducând la turbulența aerului în apropierea constricției. Sunetele fricative includ: s, f, sh, z, v și th. În modelul din figura 22-8, fricativele sunt reprezentate de un generator de zgomot.

Ambele aceste surse de sunet sunt modificate de cavitățile acustice formate din limbă, buze, gură, gât și fose nazale. Deoarece propagarea sunetului prin aceste structuri este un proces liniar, acesta poate fi reprezentat ca un filtru liniar cu un răspuns la impuls ales adecvat. În majoritatea cazurilor, în model se utilizează un filtru recursiv, cu coeficienții de recurență care specifică caracteristicile filtrului. Deoarece cavitățile acustice au dimensiuni de câțiva centimetri, răspunsul în frecvență este în primul rând o serie de rezonanțe în gama KHz. În jargonul procesării audio, aceste vârfuri de rezonanță sunt numite frecvențe de format. Prin schimbarea poziției relative a limbii și a buzelor, frecvențele de format pot fi schimbate atât în ​​frecvență cât și în amplitudine.

Figura 22-9 prezintă o modalitate obișnuită de a afișa semnalele de vorbire, spectrograma vocală sau amprenta vocală. Semnalul audio este împărțit în segmente scurte, de exemplu 2 până la 40 de milisecunde, iar FFT e folosită pentru a găsi spectrul de frecvențe al fiecărui segment.Spectrele sunt plasate unul lângă celălalt și transformate într-o imagine în tonuri de gri (amplitudinea scăzută devine lumină, iar amplitudinea înaltă devine întunecată). Aceasta oferă o modalitate grafică de observare a modului în care conținutul de frecvență al vorbirii se schimbă în timp. Lungimea segmentului este aleasă ca un compromis între rezoluția frecvenței (favorizată de segmente mai lungi) și rezoluția de timp (favorizată de segmente mai scurte).

După cum s-a demonstrat prin a în rain, sunetele sonore au o formă de undă periodică în domeniu timp, arătată în (a), și un spectru de frecvență, care este o serie de armonice distanțate regulat, prezentat în (b). În comparație, s din storm, arată că fricativele au un semnal zgomotos în domeniu timp, ca în (c), și un spectru zgomotos, afișat în (d). Aceste spectre arată, de asemenea, modelarea de către frecvențele de format pentru ambele sunete. De asemenea, observați că afișarea timp-frecvență a cuvântului rain arată similar de ambele ori când el este spus.

Într-o perioadă scurtă de timp, să zicem 25 ms, un semnal de vorbire poate fi aproximat prin specificarea a trei parametri: (1) selectarea unei excitații de zgomot periodic sau aleatoriu, (2) frecvența undei periodice (dacă este utilizată), și (3) coeficienții filtrului digital folosiți pentru a imita răspunsul tractului vocal. Vorbirea continuă poate fi apoi sintetizată prin actualizarea continuă a acestor trei parametri de aproximativ 40 de ori pe secundă. Această abordare a fost responsabilă pentru succesele comerciale timpurii ale DSP: Speak & Spell, un ajutor electronic de învățare pe scară largă pentru copii. Calitatea sunetului acestui tip de sinteză a vorbirii este slabă, sună foarte mecanică și nu este chiar umană. Dar, aceasta necesită o rată de date foarte scăzută, doar câteva kbit/sec.

Aceasta este, de asemenea, baza pentru metoda codării predictive liniare (LPC) de compresie a vorbirii. Vorbirea umană înregistrată digital este fragmentată în segmente scurte și fiecare este caracterizat în funcție de cei trei parametri ai modelului. Aceasta necesită, în mod obișnuit, aproximativ o duzină de octeți pe segment sau între 2 și 6 kbyte/ sec. Informațiile despre segment sunt transmise sau stocate după cum este necesar și apoi reconstruite cu ajutorul sintetizatorului de vorbire.

Algoritmii de recunoaștere a vorbirii fac acest lucru un pas mai departe prin încercarea de a recunoaște modelele din parametrii extrași. Aceasta implică de obicei compararea informațiilor despre segmente cu șabloanele sunetelor stocate anterior, în încercarea de a identifica cuvintele rostite. Problema este că această metodă nu funcționează foarte bine. Este utilă pentru unele aplicații, dar este mult sub capabilitățile ascultătorilor umani. Pentru a înțelege de ce recunoașterea vorbirii este atât de dificilă pentru computere, imaginați-vă pe cineva vorbind, în mod neașteptat, următoarea frază:

Larger run medical buy dogs fortunate almost when.

Desigur, nu veți înțelege sensul acestei propoziții, deoarece nu are. Mai important, probabil nu veți înțelege nici măcar toate cuvintele individuale care au fost rostite. Acest lucru este fundamental pentru modul în care oamenii percep și înțeleg vorbirea. Cuvintele sunt recunoscute prin sunetele lor, dar și de contextul propoziției și de așteptările ascultătorului. De exemplu, imaginați-vă cele două propoziții:

The child wore a spider ring on Halloween.
He was an American
spy during the war.
Copilul purta un inel păianjen de Halloween.
Era spion american în timpul războiului.

Chiar dacă s-au produs exact aceleași sunete pentru a transmite cuvintele subliniate, ascultătorii au auzit cuvintele corecte din context. Din cunoștințele acumulate despre lume, știți că copiii nu pot fi agenți secreți și oamenii nu devin bijuterii înfricoșătoare în timpul războiului. De obicei, acest lucru nu este un act conștient, ci o parte inerentă a auzului uman.

Figura 22-9 Spectogramă vocală.
Spectograma frazei: The rainbow was seen after the rain storm. Figurile (a) și (b) arată semnalele în timp și frecvență pentru a pronunțat în rain. Figurile (c) și (d) arată semnalele în timp și frecvență pentru s în storm.

Majoritatea algoritmilor de recunoaștere a vorbirii se bazează numai pe sunetul cuvintelor individuale, și nu pe contextul lor. Ei încearcă să recunoască cuvinte, dar nu să înțeleagă vorbirea. Acest lucru îi plasează într-un dezavantaj extraordinar față de ascultătorii umani. Trei neplăceri sunt comune în sistemele de recunoaștere a vorbirii:

(1) Vorbirea recunoscută trebuie să aibă pauze distincte între cuvinte. Aceasta elimină necesitatea ca algoritmul să se ocupe de fraze care sună în același fel, dar sunt compuse din cuvinte diferite (adică spyder ring și spy during). Acest lucru este lent și incomod pentru oamenii obișnuiți să vorbească într-un flux suprapus.

(2) Vocabularul este adesea limitat la câteva sute de cuvinte. Aceasta înseamnă că algoritmul trebuie doar să caute un set limitat pentru a găsi cea mai bună potrivire. Pe măsură ce vocabularul este mărit, timpul de recunoaștere și rata de eroare cresc.

(3) Algoritmul trebuie să fie instruit pe fiecare vorbitor. Acest lucru necesită ca fiecare persoană care utilizează sistemul să vorbească fiecare cuvânt pentru a fi recunoscut, adesea necesitând repetarea a cinci până la zece ori. Această bază de date personalizată mărește mult acuratețea recunoașterii cuvântului, dar este incomodă și consumatoare de timp.

Premiul pentru dezvoltarea unei tehnologii reușite de recunoaștere a vorbirii este enorm. Vorbirea este cel mai rapid și mai eficient mod de a comunica pentru oameni. Recunoașterea vorbelor are potențialul de a înlocui scrierea, tastarea, intrarea de la tastatură și comanda electronică furnizată de întrerupătoare și butoane. Trebuie doar să lucreze puțin mai bine pentru a deveni acceptată de piața comercială. Progresul în recunoașterea vorbirii va proveni probabil din zonele inteligenței artificiale și din rețelele neuronale, la fel ca și prin DSP în sine. Nu te gândi la asta ca la o dificultate tehnică ; gândiți-vă la aceasta ca pe o oportunitate tehnică.

Secțiunea următoare: Prelucrarea audio neliniară