Zusammenfassung - Universität Ulm

Transcription

Zusammenfassung - Universität Ulm
Merkmalsextraktion mit Hilfe des
LPC-Modells
Stephanie Wist
Fakultät für Informatik
Universität Ulm
Abstract
Im folgenden werde ich mit möglichst wenigen mathematischen Hilfsmittlen den
Aufbau und die Funktionsweise des LPC-Modells erläutern. Dazu zuerst ein kurzer
Überblick über das LPC-Verfahren, seine Vorgehensweise und seine Anwendungsgebiete. Danach wird auf die einzelnen Merkmale eingegangen, die mit dem LPCModell bestimmt werden können, und wie diese Erkennung im einzelnen funktioniert.
1
Was ist LPC?
LPC steht für Linear Predictive Coding, zu deutsch: Lineare Prädiktion. Es
ist ein Verfahren um analoge Signale - speziell menschliche Sprache - zu
analysieren und auf Parameter abzubilden, indem ein spezieller Wert mit
Hilfe einer linearen Funktion aus zeitlich vorhergehenden Werten vorhergesagt wird. Dabei wird ausgenutzt, dass das menschliche Sprachsignal über
verhältnismässig lange Zeiträume (bis zu 22ms) fast unveränderlich ist, und
auch der Vokaltrakt, der die Sprache moduliert, sich nur langsam und stetig
ändern kann. Die Anzahl der verwendeten Parameter schwankt zwischen den
verschiedenen LPC-Verfahren. Es hat sich jedoch gezeigt, dass die Wahl von
vielen Filterkoeffizienten die Sprachqualität nicht wesentlich verbessert, da
die wesentlichen Merkmale bereits in den ersten 12 Parametern vertreten sind.
Dabei gilt die Faustformel, dass zwei Paramter für die Nachbildung der Stimmritze und jeweils zwei Parameter für einen Formanten benötigt werden. Die die
menschliche Sprache nur bis zu fünf Formanten besitzt, reichen demzufolge 12
Parameter für eine gute Näherung aus (vgl Fig. 7). Ein LPC-Verfahren, dass
zur Analyse p Parameter verwendet, wird oft als LPC-Verfahren p-ter Ordnung bezeichnet. bezeichnet. Das älteste LPC-Verfahren zur Spracherkennung
– LPC-10 – wurde erstmals 1984 vorgeschlagen und verwendet 10 Parameter
für stimmhafte Laute und 4 für stimmlose und besitzt somit die Ordnung 10.
29 November 2004
2
Das LPC-Modell
Fig. 1. Quelle-Filter-Modell für das LPC-Verfahren
Das LPC-Verfahren basiert auf einem einfachen Quelle-Filter-Modell. Das
Modell ist der menschlichen Sprachbildung nachempfunden. Die menschliche
Sprache wird erzeugt, indem der Luftstrom aus den Lungen durch die Stimmritze und an den Stimmbändern vorbei gepresst wird und diese bei stimmhaften
Lauten zum Schwingen gebracht werden. Danach findet eine zusätzliche Artikulierung durch die Form der Mund- und Nasenhöhle statt. Für das QuelleFilter-Modell wird die menschliche Lunge als Quelle betrachtet, die entweder
ein periodisches Signal u(n) – für stimmhafte Laute – oder weisses Rauschen
für stimmlose Laute erzeugt, und die Stimmbänder, Rachen und Mundhöhle
als eine Röhre mit variablem Durchmesser gesehen. Die Erzeugung spezieller
Laute geschieht nun beim Quelle-Filter-Modell dadurch, dass das digitale Filter durch die entsprechenden variablen Parameter der Form dieser virtuellen
Röhre so angepasst wird, dass es das Signal möglichst orginalgetreu moduliert. Da auch die Lautstärke, dh. das Volumen an Luft, dass aus der Lunge
gepresst wird, eine wichtige Rolle bei der menschlichen Sprache spielt, wird im
Quelle-Filter-Modell das periodische oder aperiodische Signal u(n) zusätzlich
mit einem Verstärkungsfaktor G multipliziert.
3
Schritte zur Durchführung einer LPC-Analyse
In diesem Abschnitt sollen nochmals kurz alle Schritte aufgeführt werden, die
für eine LPC-Analyse notwendig sind. Zuerst wird das einkommende Signal
abgetastet und geglättet. Danach wird das Signal in Segmente mit jeweils N
Abtastwerten zerlegt. Dabei gilt, dass das nächste Segment M Abtastwerte
nach dem Anfang des jeweiligen Segments beginnt. Ist M kleiner als N , so
findet eine Überlappung statt, so dass einige Abtastwerte bei zwei oder mehr
Segmenten die Filterkoeffizienten beeinflussen. Ist M grösser als N , so gibt es
2
Fig. 2. Schritte zur Analyse und Synthese von Sprachsignalen
Abtastwerte, die in der Analyse ignoriert werden. Allgemein hängt die Wahl
von M und N von der Genauigkeit und Menge der Daten ab, die gewünscht
sind. Die einzelnen Segmente werden mit einer Fensterfunktion w mutlipliziert,
so dass bei der Berechnung der Filterparameter alle Werte ausserhalb des Bereiches als 0 angesehen werden. Für die Fensterfunktion wird meist eine Hammingfunktion verwendet, da sich herausgestellt hat, das bei Multiplikation mit
einem reinen Rechteckssignal der Fehler bei der Vorhersage speziell am Anfang
und am Ende eines Segmentes sehr gross war. Das liegt daran, das die ersten
Werte am Anfang eines Segments mit Hilfe von Werten vorhergesagt werden
sollen, die ausserhalb dieses Segements liegen und deshalb 0 sind. Genauso
verhält es sich am Ende des Segments. Hier sollen Werte ausserhalb des Segmentes vorhergesagt werden, die durch die Multiplikation mit der Fensterfunktion 0 sind. Die Hammingfunktion dämpft die Werte am Anfang und am
Ende des Segments und verhindert so einen übermässig grossen Fehler bei der
Prädiktion. Anschliessend wird für jedes Segment zuerst die Autokorrelation
berechnet, und anschliessend die Merkmale und Filterkoeffizienten extrahiert.
An dieser Stelle sind die Filterkoeffizienten und die Sprachmerkmale aus dem
Signal extrahiert. Die beiden letzten Schritte in Fig. 2 dienen hauptsächlich
der Stabilisierung der Cepstral-Koeffizienten und sollen hier nicht weiter betrachtet werden.
Fig. 3. Beispiel für überlappende Segmente. Es gilt: M = 1/3N
3
4
Erkennen von Sprachmerkmalen
4.1 Welche Merkmale können mit dem LPC-Modell erkannt werden?
Während der Analyse wird von den einzelnen Segmenten Parameter bestimmt,
die für eine spätere Rekonstruktion nötig sind. Dies beinhaltet speziell:
• die Lautstärke des aktuellen Segments. Dies entspricht dem Verstärkungsfaktor
G.
• die darin enthaltene Energie.
• die Klassifizierung in stimmhafte und stimmlose Laute. Dies entspricht den
beiden Formen von u(n).
• die Periodendauer bei stimmhaften Signalen.
• und speziell die Filterkoeffizienten, durch die das Sprachsignal beschrieben
werden kann.
4.2 Bestimmung von stimmhaften und stimmlosen Lauten
Die Unterscheidung zwischen stimmhaften und stimmlosen Lauten ist für die
Spracherkennung und vor allem für die Synthese von Sprachsignalen wichtig,
da ihnen unterschiedliche Signalformen zugrunde liegen.
Fig. 4. Stimmhaftes ”e” im Wort
”Test”
Fig. 5. Stimmloses ”s” im Wort
”Test”
Das wichtigste Unterscheidungsmerkmal zwischen stimmhaften und stimmlosen Lauten ist die Wellenform, die Energie und der Frequenzbereich des
Segments. Stimmhafte Laute bestehen aus einem periodischen Signal mit hoher Energie und einen Frequenzbereich um 800-1600 Hz. Stimmlose Laute
hingegen haben meistens eine sehr zufällige und chaotische Wellenform und
werden deshalb beim LPC-Modell auch mit weissem Rauschen nachgebildet.
4
Desweiteren ist die Energie in stimmlosen Lauten sehr viel niedriger als bei
den stimmhaften und auch der Frequenzbereich liegt mit etwa 2400-3200 Hz
deutlich höher. Diese Unterschiede werden von dem LPC-Modell direkt zur
Klassifikation eines Lautes in stimmhaft oder stimmlos benutzt. Zunächst
wird versucht, den Laut über seine Energie einzuordnen. Dazu wird eine
voreingestellte Schranke benötigt, nach der die Unterscheidung vorgenommen wird. Jedoch lassen sich nicht alle Signale direkt nach ihrer Energie
einsortieren. Auch wird diese Methode bei lauter Sprache bzw. lauten Hintergrundgeräuschen – durch ihre hohe Energie – sehr viele Signale falsch klassifizieren. Deshalb wird in einem zweiten Schritt ausgenutzt, dass stimmhafte
Laute eine hohe Energie aber niedrige Frequenzen, und stimmlose Laute jedoch hohe Frequenzen besitzen. Dies bedeutet aber auch, dass das Signal bei
stimmlosen Lauten sehr viel häufiger die x-Achse schneidet als bei stimmhaften
Lauten. Deshalb wird zusätzlich die Anzahl der Nulldurchgänge ermittelt und
mit Durchschnittswerten von typisch stimmhaften und stimmlosen Segmenten
verglichen. Desweiteren werden bei der Klassifikation Segmente nicht einzeln
betrachtet, sonder möglichst immer in ihrem Umfeld. Damit soll verhindert
werden, dass in einer Gruppe stimmhafter Segmente ein stimmloses Segment
ist (oder umgekehrt).
4.3 Berechnung der Filterkoeffizienten
Wie weiter oben erwähnt wurde, versucht das LPC-Verfahren, das aktuelle
Sprachsignal aus den vorangehenden Signalen zu berechnen. Dazu werden die
Filterkoeffizienten möglichst passend aus abgetasteten Signalwerten bestimmt.
Dabei werden die Koeffizienten derart gewählt, dass die Fehlerquadratsumme
über die letzten so berechneten N Abtastwerte minimal wird. Wie man auch in
Fig. 6 sieht, ist die Vorhersage für einen stimmhaften Laut genauer möglich, als
für einen stimmlosen. Dies liegt am Signal-Charakter des stimmlosen Lautes,
da es einen sehr chaotischen und zufälligen Verlauf hat, und sich demzufolge
nur bedingt durch zeitlich davorliegende Abtastwerte voraussagen lässt. Auch
spielt die Anzahl der Signalwerte eine Rolle, die zur Vorhersage herangezogen
werden (vgl. Fig. 7). Im folgenden werde ich von p abgetasteten Signalwerten
ausgehen. Für das aktuell abgetastete Signal gilt:
s(n) =
p
X
ak s(n − k) + Gu(n)
(1)
k=1
Betrachtet man nun das aktuelle Signal als Linearkombination aus den vorherigen Werten, so erhält man als Näherungswert s̃(n):
s̃(n) =
p
X
ak s(n − k)
(2)
k=1
5
Den auftretenten Fehler zu jedem Zeitpunkt kann man nun wie folgt berechnen:
p
X
en = s(n) − s̃(n) = s(n) −
ak s(n − k)
(3)
k=1
Im Idealfall entspräche der Fehler Gu(n). Dies wird jedoch in der Praxis kaum
erreicht, da das Signal in einem Segment nicht gleichförmig ist, sondern leichten Schwankungen unterworfen ist.
Im folgenden soll die Fehlerquadratsumme über N Abtastwerte minimiert werden. Dazu wird das aktuelle Sprachsegment mit einer Fensterfunktion w multipliziert, mit:


 s(n + m)w(m)
s(n + m) = 
0
0≤m≤N −1
(4)
sonst
Das heisst:
E=
N
−1
X
e2n
n=0
=
N
−1
X
(s(n) −
n=0
p
X
ak s(n − k))2
(5)
k=1
Da E eine Linearkombination von quadratischen Funktionen ist, und E für
sehr grosse positive oder negative Werte von ak grösser wird, ist dieser Extrempunkt das einzige Minimum von E. E wird minimal für:
p
N
−1
X
X
∂E
=0=−
2(s(n) −
ak s(n − k))s(n − i)
∂ai
n=0
k=1
= −2
N
−1
X
s(n)s(n − i) + 2
n=0
p
N
−1 X
X
!
für i = 1..p (6)
ak s(n − k)s(n − i)
(7)
n=0 k=1
Durch Umformung erhält man:
N
−1
X
n=0
s(n)s(n − i) =
p
X
k=1
ak
N
−1
X
s(n − k)s(n − i)
(8)
n=0
Aus diesen p Gleichungen lassen sich nun die p Koeffizienten bzw Filterparameter berechnen. Dafür gibt es verschiedene Verfahren. Die beiden meistbenutzen sind zum einen die Berechnung über die Autokorrelation des Signals,
zum anderen über die Kovarianz. Die Methode über die Autokorrelation ist
einfacher zu berechnen und hat auch noch einige weitere Vorteile, auf die ich
6
im Laufe dieses Abschnittes eingehen möchte. Die ersten Schritte sind jedoch
gleich.
Zuerst wird die Kovarianzmatrix über ihre Elemente φi,k definiert als:
φi,k =
N
−1
X
s(n − i)s(n − k)
(9)
n=0
und:
φi,0 =
p
X
φi,k ak
(10)
k=1
In Matrixform ergibt dies für die p Gleichungen:



 φ1,0 




 φ2,0 




φ 
 3,0 




 ··· 




=

 φ2,1


φ
 3,1


···


a 
φ2,2 φ2,3 · · · φ2,p 
 2 






φ3,2 φ3,3 · · · φ3,p 
  a3 
(11)




···




··· ··· ··· ···
ap
φp,1 φp,2 φp,3 · · · φp,p
φp,0


 φ1,1 φ1,2 φ1,3 · · · φ1,p   a1 



oder:
Φ0 = Φa
(12)
Die Filterkoeffizienten kann man an dieser Stelle mit Hilfe der Kovarianzmethode bestimmen, indem man die inverse Matrix von Φ berechnet. Diese
existiert aufgrund der Symmetrie von Φ, da φi,k = φk,i . Es gilt dann:
a = Φ−1 Φ0
(13)
An dieser Stelle kann man die Kovarianzmatrix auch in eine Autokorrelationsmatrix umformen. Durch die Multiplikation mit w(m) kann man φi,j umschreiben zu:
N −1−(i−j)
φi,j =
X
s(n)s(n + (i − j))
(14)
n=0
da für Werte ausserhalb des Fensters s(n) = 0 gesetzt wurde. Nun hängt φi,j
nicht mehr direkt von i und j sondern nur noch von der Differenz i − j ab.
7
Damit lässt sich φi,j schreiben als:
φi,j = ri−j
(15)
und damit gilt:
ri,j = rk =
N −1−k
X
s(n)s(n + k)
(16)
n=0
Nun erhält man für Φ eine Toeplitz-Matrix:



 r1 




 r1 




r 
 3 




···




=
rp
 r1


 r2


r
 3


···




r1 r1 · · · r1   a 1 











···
···






a
r2 r2 · · · r2 
 2


r3 r3 · · · r3 
  a3
··· ··· ···
rp rp rp · · · rp
(17)
ap
Toeplitz-Matrizen haben den Vorteil, dass sie sich sehr schnell berechnen
lassen. Im Folgenden ist der Durbin − Algorithmus angegeben, der diese Matrix schnell und effizient löst und dabei die einzelnen Kovarianz-Parameter
berechnet, die stabiler sind als die eigentlichen Filterkoeffizienten und deshalb
teilweise auch zur Analyse und Synthese des Sprachsignals herangezogen werden.
Durbin-Algorithmus (iterativ, mit i = 1, 2, .., p) :
E (0) = r0

k i = r i −
(18)
i−1
X
j=1

αji−1 r|i−j|  /E (i−1)
(19)
(i)
αi = k i
(i)
(20)
αj = αji−1 − ki αi−j
(i−1)
(21)
E (i) = (1 − ki2 )E (i−1)
(22)
Dabei gilt:
(p)
am = Filterkoeffizienten = αm
(23)
8
km = PARCOR Koeffizienten
(24)
1 − km
gm = log area Koeffizienten = log
1 + km
!
(25)
4.4 Bestimmung der Grundfrequenz bei stimmhaften Segmenten
Die Grundfrequenz im Sprachsignal entsteht durch die periodische Vibration
der Stimmbänder. Diese sind bei einem stimmlosen Laut nicht beteiligt, was
sich auch an ihrem aperiodischen Charakter sehen lässt. Aus diesem Grund
wird und kann man die Grundfrequenz nur bei stimmhaften Signalen bestimmen. Jedoch ist diese Berechnung äusserst aufwendig.
• Zum einen lässt sich die Grundfrequenz direkt über die Autokorrelationskoeffizienten rk bestimmen. Denn rk besitzt ein Maximum, wenn k der
Grundfrequenz entspricht. Jedoch ist diese Methode sehr fehleranfällig. Das
Maximum wird meist durch einen Vergleich des Signals mit einem Schwellenwert ermittelt. Das muss aber nicht zwangsweise die Grundfrequenz sein.
Auch durch sonstige Resonanzen im Vokaltrakt oder Interferenzen kann
dieser Schwellenwert überschritten werden.
• LPC-10 verwendet einen anderen Ansatz. Es benutzt die average magnitude
difference function - kurz AM DF - mit:
0 +n
1 kX
|yi − yi−p |
AM DF (p) =
N i=k0
mit Grundperiode p
(26)
Da die Grundperiode bei der menschlichen Sprache zwischen 2.5ms und
19.5ms liegen muss, kann man verschiedene Werte für p einsetzen und so
das Minimum etwa durch Ausprobieren ermitteln. Für Signale, die mit 8kHz
abgetastet werden wie z.B. bei LPC-10, bedeutet dies: 20 ≤ p ≤ 120. Die
Grundfrequenz selbst ist reziprok zur Grundperiode.
• Eine weiter Möglichkeit ist die Berechnung über das Cepstrum. Dabei wird
ausgenutzt, dass die Grundfrequenz zwischen 50 und 400 Hz liegt, also im
tiefen Frequenzspektrum. Diese werden beim Cepstrum hervorgehoben und
deutlich weiter rechts auf der Frequenzachse abgebildet, als die höheren
Frequenzen. Die Grundperiode macht sich nun als deutliche Spitze im Bereich zwischen 2.5ms und 19.5 bemerkbar, und kann somit leicht ermittelt
werden. Bei stimmlosen Signalen fehlt diese charakteristische Spitze.
9
4.5 Berechnung der Verstärkung G
Zur Berechnung des Verstärkungsfaktor G muss folgende Gleichung gelöst
werden:
G2 = 1 −
p
1 X
a k rk
r0 k=1
(27)
Wurde die Bestimmung der Filterkoeffizienten über die Autokorrelation des
Signals und den Durbin-Algorithmus vorgenommen, so lässt sich G aus deren
Zwischenergebnissen berechnen als:
G=
q
E (0) /E (p)
(28)
4.6 Berechnung der Energie im Segment
Die Energie im Segment lässt sich sehr einfach über die Autokorrelation berechnen. Es gilt:
E = r0 =
N
−1
X
s2 (n)
(29)
n=0
Wurden die Filterkoeffizienten bereits über die Autokorrelationsmethode berechnet, so fällt die Energie bei der Berechnung automatisch als Nebenprodukt ab.
4.7 Berechnung des Cepstrum
Das Cepstrum lässt sich direkt aus den Filterkoeffizienten berechnen. Und
zwar als:
X
1 k−1
ck = a k =
ici ak−i
k i=1
mit1 ≤ k ≤ p
(30)
Das Cepstrum ist eine weitere Möglichkeit zur Darstellung und Analyse von
Sprachsignalen. Die Parameter entsprechen der Rücktransformierten des logarithmisch dargestellten Betragsspektrums und sind im allgemeinen stabiler
als die Filterkoeffizienten selbst.
10
4.8 Probleme des LPC-Modells
Das LPC-Modell ist ein stark vereinfachtes Modell für die menschliche Spracherzeugung. Es ist sehr gut geeignet, um stimmhafte Laute nachzubilden und
zu erkennen, und auch stimmlose Laute können noch mit guter Näherung
reproduziert werden. Jedoch liegen in der Vereinfachung des Modells auch
Probleme. Diese beziehen sich hauptsächlich auf folgende Punkte:
• Durch Approximation des Stimmbereichs als einfache Röhre wird ignoriert, dass neben der Mundhöhle auch der Nasenraum an der Sprachbildung
beteiligt ist. Da dieser in die Analyse und Synthese nicht miteinfliesst, kann
man mit dem LPC-Modell nasale Laute nur sehr schlecht erkennen bzw.
unterscheiden.
• Im LPC-Modell wird nur zwischen stimmhaften und stimmlosen Lauten
unterschieden. Allerdings gibt es auch in der deutschen Sprache Laute, die
sowohl stimmhafte als auch stimmlose Merkmale aufweisen. Diese Laute
werden vom LPC-Modell aber entweder als stimmhaft oder als stimmlos
klassifiziert, so dass sie bei der Synthese nicht korrekt reproduziert werden
können, da sie eigentlich eine Mischform darstellen.
• Die Merkmalserkennung kann speziell bei lauten Hintergrundgeräuschen
schnell fehlerhaft werden, da LPC diese nicht als solches erkennen kann und
sie deshalb in die Analyse des eigentliches Sprachsignals mit einfliessen.
• Das LPC-Verfahren eignet sich nur für das Komprimieren und Erkennen von
menschlicher Sprache. Bei anderen analogen Signalen ist im Normalfall die
Fehlerrate zu gross, da diese im Gegensatz zur menschlichen Sprache meist
nicht partiell konstant sind und nicht durch ein dem Quelle-Filter-Modell
entsprechenden Verfahren erzeugt werden können.
5
Fazit
Das LPC-Modell analysiert das Sprachsignal, indem es versucht, den Weg der
menschlichen Spracherzeugung nachzubilden. Dazu werden Filterkoeffizienten berechnet, die es erlauben, den menschlichen Vokaltrakt möglichst gut zu
simulieren. Ebenso wird bestimmt, ob ein Signal stimmhaft oder stimmlos ist,
wieviel Energie es enthält und was seine Grundfrequenz ist. Durch diese Fülle
von Parametern eignet sich meiner Meinung nach das LPC-Verfahren sehr gut
zur Spracherkennung, da es die speziefischen Merkmale aus dem Sprachsignal extrahiert. Diese Parameter lassen sich nun im Folgenden mit den unterschiedlichsten Methoden auswerten und verarbeiten. Die Sprachübertragung
bei der die Parameter übertragen werden und an der anderen Seite wieder synthetisiert werden ist nur eine Anwendungsmöglichkeit. Genauso kann man die
Parameter analysieren und auf das Sprachsignal reagieren. Man denke hier
11
zum Beispiel an Spracherkennungssoftware, die es erlaubt, vom Nutzer per
Sprache ferngesteuert zu werden.
References
[1] L.R. Rabiner und R.W. Schafer Digital Processing of Speech Signals (Prentice
Hall, Englewood Cliffs, New Jersey, 1978)
[2] Jeremy Bradbury Linear Predictive Coding (December 2000)
[3] Bernd Eppinger und Eberhard Herter Sprachverarbeitung (Carl Hanser Verlag,
München, Wien)
[4] http://mi.eng.cam.ac.uk/∼ajr/SpeechAnalysis
12
Fig. 6. Änderung des Vorhersagefehlers bezüglich der Anzahl der Parameter
13
Fig. 7. Spektrum für einen stimmhaften Laut für verschiedene Vorhersage-Ordnungen p
14