HØit Nr. 2-99
Previous article Next article TOC: Nr. 2, 1999 Previous Issue Next Issue About HØit

Gjenkjenning av lyder - et lyttende nevralt nettverk


Martin Kermit

Gjenkjenning av forskjellige lyder er et forskningsfelt med mange interessante anvendelser. Etter hvert som utviklingen har gått mer i retning av stemmekontrollerte telefon-tjenester og programvare har det blitt lagt ned store mengder arbeid i å gjøre automatisk gjenkjenning av talelyd. Andre anvendelser av mer generell interesse, er å benytte gjenkjenning av lyder innen medisinsk diagnostisering eller til detektering av ulyder i en industriell sammenheng. Denne artikkelen beskriver et system som er i stand til å gjøre gjenkjenning av generelle lyder basert på utvelgelse av spesifikke lydsegmenter som karakteriserer en spesiell lyd.

1. Innledning

Mye av forskningen innen gjenkjenning av lyder skjer innen firmaer som utvikler programmer som kan aktiveres ved at personen som sitter bak tastaturet snakker til maskinen. De som har fulgt med i utviklingen på dette feltet har fått med seg at et norskeid firma på Voss nylig fikk i gang et samarbeid med Microsoft om utvikling av en stemmeaktivert tekstbehandler. Det norske firmaet har satset stort, og med sine over 100 ansatte vil vi nok høre mer om dette i fremtiden. I tillegg rapporterer Aftenposten nylig om et samarbeid mellom NTNU og Telenor som har ført til at trøndere nå kan føre en telefondialog med en maskin som vet når bussen går.

Siden denne typen kommersiell forskning foregår bak lukkede dører, kan vi vanlig dødelige bare gjette hvilke mekanismer som benyttes, og dermed bare forholde oss til det som publiseres offentlig. Likevel ligger vi ikke på latsiden her på Høgskolen i Østfold selv om vi ikke har de samme ressursene til rådighet som våre kollegaer i Seattle. I denne artikkelen presenteres et relativt enkelt, men veldig effektivt system som kan klassifisere lyder på generell basis, basert på utvelgelse av karakteristiske segmenter i forskjellige lyder [1]. Dersom en utvelgelse av disse segmentene gjøres korrekt, vil slike lydsegmenter kunne benyttes som eksempler på spesifikke lyder som senere skal gjenkjennes.

2. Det foreslåtte systemet

Slik som nevnt i avsnittet over, ligger nøkkelen til suksess i å isolere en eller annen form for en unik egenskap i lyden som skal klassifiseres. Denne unike egenskapen er ofte bare tilstede i en veldig kort periode i lydsignalet og ofte repetert flere ganger i samme lyd med små variasjoner. Et eksempel vises i Figur 1, hvor bølgeformen til det uttalte ordet entropy er inntegnet på toppen. På bunnen av den samme figuren er fire perioder av vokalen E fremhevet som illustrasjon. De fire periodene har mulige kandidater for et unikt segment representativt for vokalen uthevet.

Figur 1

Figur 1: Illustrativt eksempel på en karakteristisk region brukt til å representere en vokal i et ord. Vokalen E blir her gjenkjent med flere vokalperioder basert på at den karakteriske regionen benyttes som identifikator for vokalen.

2.1 Preprosessering

Selv om et lite segment av et lydsignal kan benyttes til en relativ unik representasjon av lydsignalet, vil en repetisjon av segmentet inneholde en variasjon i forhold til den originale representasjonen. For å kompensere for disse variasjonene, benyttes en Haar-wavelet transformasjon som et preprosesseringsverktøy. Wavelets har som kjent en dempende effekt på variasjoner hos signaler. Dermed vil det lille, utvalgte, karakteristiske lydsegmentet Haar-transformeres for å lage en slags gjennomsnittsrepresentasjon for segmentet og nærliggende sample-verdier. Vi skal ikke forklare denne prosedyren nærmere i denne artikkelen, men heller henvise til [1] og [2].

2.2 Identifikasjonsprosedyre

Selve gjenkjenningsprosessen utføres av et nevralt nettverk kjent som O-algoritmen [3 og 4]. O-algoritmen gjennomfører en similaritetstesting mellom to datamengder. Det ene datasettet ligger fast i det nevrale nettverket som et sett med vekter. Disse vektene er i vårt tilfelle identiske med de Haar-transformerte segmentene som ble utvalgt som representasjoner for en spesifikk lyd. Nettverket har mulighet for å lagre flere slike segmenter samtidig, slik at gjenkjenning av flere lyder (for eksempel alle de 9 norske vokalene) kan foregå samtidig. Når så en ny lyd kommer inn for klassifisering, vil det nevrale nettverket måle similariteten mellom den nye lyden og lyden som er lagret i nettverket. Denne similaritetsmålingen likner på en chi-kvadrat test. Dersom likheten er stor nok, vil det nevrale nettverket rapportere at en lyd er oppfanget. Hvis ikke, vil nettverket ti stille.

2.3 Utvelgelse av segmenter

En rett frem metode å velge ut slike karakteristiske segmenter fra lydsignaler er å visuelt inspisere lyden for fremstående egenskaper, slik som for eksempel en spesifikk defekt i en hjertelyd eller en skarp overgang karakteristisk for et språklig fonem.

Dersom ingen slik informasjon foreligger for lyden som skal klassifiseres, vil en prøv og feil metode måtte benyttes. Slik vil det ofte være i praksis. Repetert trening med mulige kandidater for unike segmenter og testing igjen mot andre kandidater kan utføres iterativt inntil tilfredsstillende oppførsel oppnås.

2.4 Gjenkjenning i praksis

Etter at tilfredsstillende segmenter for de ulike lydene som skal gjenkjennes er plukket ut, kan nettverket så benyttes til å gjenkjenne nye lyder. Dette gjøres ved å danne et vindu lik lengden av segmentet som skal gjenkjennes. Dette vinduet traverseres så bit for bit gjennom hele lydsignalet som skal klassifiseres. Denne prosedyren vises i Figur 2, hvor gjenkjenning av vokaler er benyttet som eksempel.

Figur 2

Figur 2: Oversikt over gjenkjenningssystemet. Øverst i figuren ser vi hvordan en lyd først taes opp, samples, for så å velge ut en del av lydsamplingen som så skal representere lyden i det nevrale nettverket. Deretter utføres Haar-transformen, før segmentet så lagres i det nevrale nettverket. Nedenfor ser vi tilsvarende prosedyre for gjenkjenning som en iterativ traversering av hele lydsignalet mens det letes etter identifiserbare lyder. Eksempelet viser gjenkjenning av vokaler, ved at det nevrale nettverket til høyre i figuren gir signaler om hvilken vokal som eventuelt blir oppdaget i lydsignalet.

3. Resultater

Det beskrevne systemet har vært benyttet med hell på diverse problemstillinger. På et datasett bestående av 10 prøver for hver av de 9 norske vokalene, oppnådde nettverket en gjenkjenning på 92%, og kun få promiller feiltolkninger.

På gjenkjenning av vokaler i et datasett med talelyd i form av ord, var treffsikkerheten noe dårligere, noe som må tilskrives at vokalene blir dårligere uttalt i ord, samt at enkelte vokallyder likner mer på hverandre når de er inneholdt i sammensatte talelyder.

Vi har også testet systemet for gjenkjenning av musikk-instrumenter i en musikalsk komposisjon med flere samtidige instrumenter. Her var gjenkjenningen på totalt 75% og ingen feildeteksjoner.

4. Konklusjon

Alt i alt har vi utviklet et relativt robust system for gjenkjenning av lyder generelt. Systemet er svært enkelt og lite regnekrevende, og kan dermed muligens benyttes til on-line prosessering uten at dette har vært prøvd.

I tiden fremover vil vi prøve å gjøre utvelgelsesmetoden mer robust og eventuelt vurdere andre typer preprosessering en bare Haar-transformen som beskrevet her. Vi vil også prøve med andre typer data hentet fra medisinske problemstillinger, slik som for eksempel snorkelyder og hjertelyder.

Referanser

[1] Martin Kermit og Åge J. Eide. Audio signal identification via pattern capture and template matching. (In press) Pattern recognition Letters, 1999. Elsevier Science Publishers

[2] Martin Kermit, Kari Bodal, Åge J. Eide, Trond Haug, Thomas Lindblad, og Terje Lindén. Steady state vowel recognition using the O-algorithm. In M. H. Hamza, editor, Artificial Intelligence and Soft Computing (ASC'99), pages 362-367. IASTED, Hawaii, Honolulu, USA, 1999.

[3] Åge J. Eide and Thomas Lindblad. Artificial neural networks as measuring devices. Nuclear Instruments and Methods in Physics Research, A317:607-608, 1992.

[4] Thomas Lindblad, Clark S. Lindsey and Åge J. Eide. Radial basis function (RBF) neural networks. In J. David Irvin, editor, The industrial Electronics handbook, pages 1014-1018. CRC Press and IEEE Press, 1997.

Previous article Next article TOC: Nr. 2, 1999 Previous Issue Next Issue About HØit
HØit Nr. 2-99


Copyright: 1998, 1999, Høgskolen i Østfold. Last Update: November.99, Jan Høiberg.