Thursday, January 15, 2015

Talegenkendelse: Akustisk Model

Den sidste artikel beskriver, hvordan et software modul kaldet "Frontend" behandler et lydsignal, så det kan bruges til talegenkendelse. En kort opsummering lyder: lydsignalet deles i små samples, hvert sample bliver analyseret og konverteret til 39 beskrivende parametre (en vektor). Dvs. at et lydsignal bliver konverteret til en sekvens af vektorer og denne sekvens af vektorer fungerer som input til den akustiske model.
I denne artikel beskrives den akustiske model fra et generelt synspunkt med fokus på proces uden at gå ind i maskinlæringsteknikker.

Akustisk modellering

Den akustiske model skal konvertere sekvenser ef MFCC-vektorer (eller PLP-vektorer) til sekvenser af foner. Foner blev beskrevet i den første artikel og er en repræsentation af en lyd. F.eks. er [ˈlegə] den fonetiske repræsentation eller lydskriften af ordet 'ligge' [1].

Hvorfor foner? Hvorfor ikke ord eller bogstaver?

Der findes for mange ord i et sprog til, at man kan lave korrespondancen mellem lyde og ord direkte. Ordforrådet er simpelthen for stort og udtalen af et ord kan variere meget pga. dialekt, sociolekt alder mm. På dansk findes også sammensatte navneord, hvilket gør ordforrådet teoretisk uendeligt.
Ofte er det heller ikke muligt at høre forskel på ét ord eller flere ord i normal tale. F.eks. udtales ordet 'det', bogstavet 'd' og toordsforbindelsen 'det er' ens på flere danske dialekter.

Et relateret problem er årsag til at man ikke bruger bogstaver. Mange bogstaver udtales ikke i dansk. I eksemplet ovenfor udtales bogstavet 't' ikke, mens det udtales i 'tilbage', 'rette' og 'kat'. 
Bogstavet 'a' kan også udtales forskelligt. Det første 'a' i 'Danmark' udtales anderledes end det sidste 'a'. Igen er en direkte korrespondance eller mapning fra lyde til bogstaver meget kompliceret og upraktisk.

Derimod findes der en meget direkte korrespondance mellem foner og lyde. Samtidig findes der ikke et uendeligt antal foner. I IPA[2,3] findes der 107 foner (hvis man ikke medregner diakritika) og et enkelt sprog bruger kun en delmængde af IPA. 

Trifoner

Forsøg har vist at brugen af foner ikke er tilstrækkelig til at beskrive talesprog. Akustisk set er der væsentlig forskel på udtalen af [m] i ordene 'lampe' og 'bombe'. Årsagen til forskellen ligger i de fysiske taleorganer. Under udtalen af [m] er taleorganerne påvirket af den lyd, som blev udtalt lige inden [m] - i eksemplerne henholdsvis [a] og [o] - og den lyd, der skal udtales lige efter [m] - i begge eksempler [b]. Denne form for påvirkning kaldes for koartikulation. Taleorganerne når ikke de helt rigtige positioner for udtalen af [m] fordi de skal bevæge sig fra positionerne for [a] og [o] til [m]-positionerne. Inden taleorganerne når [m]-positionerne bevæger de sig mod positionerne for udtalen af [b]. 
For at tage højde for koartikulation, altså at den fonetiske kontekst påvirker udtalen af en lyd, deles foner i trifoner. Fonen [i] deles derfor i tre trifoner: [i_b], [i_i], og [i_e] som henholdsvis er starten på i-lyden, midten af i-lyden og slutningen af i-lyden. En trifonmodel for fonen [l] kan ses herunder:

En trifonmodel for [l]
I figuren er fonen [l] øverst, mens de tre trifoner, der beskriver [l], er nederst i figuren. Pilene er transitioner mellem de fonetiske repræsentationer. Dvs. at alle 3 trifoner skal findes i den rigtige rækkefølge i vektorsekvensen for at genkende et [l].

Modellen har 3 fordele:
  1. Konverterer en sekvens af trifoner til en fon
  2. Tager højde for lydens varighed
  3. Isolerer det mest stabile signal
Ad 1) Trifonmodeller er en vigtig del af den akustiske model, således at den akustiske model stadig konverterer sekvenser af vektorer til fonsekvenser. 

Ad 2) Udtalen af en lyd (såsom en fon eller en trifon) tager længere tid end det tidsvindue en enkelt vektor repræsenterer. Som nævnt i den forrige artikel beskriver en MFCC-vektor som regel 25 millisekunder og der vil være et mange-til-én forhold mellem vektorer og trifoner (og foner). Det er illustreret i talegenkendelsesmodellen:


Talegenkendelsesmodel med diskretiseret talestrøm


Ad 3) Hvis et signal er stabilt over en periode er det nemmere at genkende.  I figuren herunder kan man se at signalet ikke er regelmæssigt i starten af [i], men at amplituden øges indtil ca. midten af figuren. Derefter er signalet mere stabilt indtil amplituden igen falder i den sidste 1/4 af figuren.


Udtale af [i]
Signalet i midten af fonen er mest stabilt mens starten og slutningen er mere kaotisk. Dvs. at den trifon, som repræsenterer midten af en fon, er nemmere at genkende og det forbedrer genkendelsesgraden.
Talegenkendere som gør brug af trifonmodellering kaldes Context-dependent (CD) til forskel for Context-independent (CI) som modellerer foner direkte.


Akustisk modellering som klassificeringsproblem

I maskinlæring er der forskellige klassificeringsproblemer. Et af de mest brugte er sekvensklassificering, hvor man gerne vil klassificere hele sekvenser såsom fonsekvenser, tekststrenge eller billeder. Selvom det virker åbenlyst at håndtere akustisk modellering (konvertering af en vektorsekvens til en fonsekvens) som sekvensklassificeringer det desværre ikke muligt at anvende direkte. Konvertering er det operationelle ord, men kunne også være oversættelse. I sekvensklassificering sammenligner man sekvenser og vælger f.eks. den mest sandsynlige sekvens. Men det forudsætter at man har en mængde sekvenser først. Dvs. at en oversættelse fra vektorer til foner ikke kan anses som et sekvensklassificeringsproblem, men er et skridt man tager inden sekvensklassificering.
Af den årsag bruges mange metoder til at tage højde for kontekstafhængighed mellem lyde. Indtil videre har vi beskrevet hvordan man tager den første og anden afledte funktion af Mel- og PLP-koefficienter, LDA-analyse (forrige artikel under Detaljer) og sidst brugen af trifoner. Der vil være flere eksempler i senere artikler.


Detaljer

I detaljesektionen vil vi gå lidt mere i dybden med maskinlæring til akustisk modellering.

Klassificeringsoutput

Som nævnt er en fordel ved foner kontra ord og bogstaver, at der er færre foner. Da akustisk modellering er formuleret som et klassificeringsproblem er det vigtigt at vælge det rigtige output alfabet eller mængde af symboler. Symboler skal forstås som en generalisering af foner, ord og bogstaver og kunne også kaldes klasser (fra 'klassificering'). Det sæt man vælger, skal reflektere ægte, forekommende forskelle i lyden, men hvis sættet er for stort møder man et problem kendt som data sparsity eller datamangel. Hvis forskellene man gerne vil lære er små og der er få eksempler at lære fra, vil klassificeringen blive meget svær. Det er en bedre ide at begrænse antallet af klasser, så klassificeringen bliver mere præcis.

Senoner

Når man udvider antallet af outputklasser fra foner til trifoner støder man ofte ind i data sparsity-problemer. Hvis man har et sæt på 40 foner som skal udvides til trifoner ender man med et klassificeringsproblem med 64000 klasser (n^3).
For at realisere gevinster i klassificeringsnøjagtighed fra trifonmodellering, men ikke støde ind i datamangel, bruger man en teknik kendt som Semi-tied covariance. Teorien er at trifoner, som ligner hinanden i høj grad, bliver lagt sammen. F.eks. er trifonerne [i_m] og [i_n], som repræsenterer slutningen af [i] til henholdsvis [m] og [n], ofte så ens at de forveksles. Sammenlægningen er praktisk set mindre problematisk, da midten af fonen (trifonen [i_i]) stadig er unik. 
Pga. sammenlægningen kalder man nu trifoner for senoner,  da der ikke længere er direkte korrespondance mellem en fon og de senoner som trifonmodellen består af. Det er terminologi, som er ligeså forvirrende som fon/fonem distinktionen, men som er meget udbredt i udvikling og forskning og af den grund har vi medtaget forklaringen.

Alignering af vektorer og foner

For at lære korrespondancen mellem vektorer og foner skal man finde en alignering. Det foregår enten ved at bruge en eksisterende akustisk model til at generere aligneringen eller ved at starte fra bunden. 
Hvis aligneringen skal bygges op fra bunden starter man med at antage en ækvidistant alignering. Hvis en fonsekvens bestående af 150 foner skal aligneres med en vektorsekvens deles vektorsekvensen i 150 lige store dele. Derefter træner man en akustisk model. Denne akustiske model bruges til at generere en ny alignering, som vil være mere nøjagtig en den ækvidistante alignering. Derefter trænes endnu en akustisk model, som bruges til at lave endnu en alignering, på baggrund af hvilken man træner en akustisk model osv. osv. Denne iterative algoritme kaldes for Expectation-Maximisation algoritmen eller bare EM-algoritmen. Algoritmen stopper når aligneringen ikke ændrer sig mere eller klassificeringen ikke forbedres.

Vektoralfabet

Uanset om der er tale om MFCC-, PLP-, eller LDA-vektorer lider akustisk modellering under det faktum, at to vektorer aldrig vil være ens. To vektorer for den samme lyd kan have meget forskellige værdier og man står nu med udfordringen at finde en funktion der kan mappe en vektor, som man ikke har set før, til en fon. Dette faktum adskiller akustisk modellering fra stort set alt andet i sprogteknologien som beskæftiger sig med ord, ordklasser, syntaks, semantik mv.
Ved at antage at værdierne i vektorerne er produceret af en normalfordeling har man fundet en metode til at klassificere akustiske vektorer. I hver iteration af EM-algoritmen klassificerer man de vektorer man har i træningsdata til foner baseret på den alignering man har til rådighed. For hver fon estimerer man en normalfordeling (dvs. middelværdi og varians) for alle parametre. Når man skal udregne sandsynligheden for at en vektor skal klassificeres som en given fon udregner man sandsynligheden for alle parametre, givet de er produceret af de normalfordelinger, der er estimeret for den fon. De sandsynligheder kombineres til en enkelt sandsynlighed for hver vektor givet en fon. For den mest sandsynlige vektor givet en fon vælges denne fon som klassificering.

Er vektorparametre normalfordelt?

Ikke altid og det er ikke muligt at forudsige, hvorvidt de vil være det eller ej. Derfor bruger man ikke normalfordelinger, men gaussiske miksturer (en normalfordeling kaldes også en gaussisk fordeling). Ideen er, at man med flere gaussiske distributioner kan modellere distributioner, der ikke er normalfordelte.

2 normalfordelinger
Her ses 2 normalfordelinger med hver deres parametre. Vha. en matematisk formulering kan man kombinere 2 eller flere normalfordelinger til en gaussisk mikstur på trods af overlap mm. På den måde er man stadig i stand til at estimere gode modeller eller beskrivelser for parametre i akustiske vektorer.
1 gaussisk mikstur

Af denne grund kaldes klassiske akustiske modeller for Gaussian Mixture Models (GMM).