Beschreibung
Verfahren zur Codierung und zur Übertragung von Sprachsignalen
Die Erfindung betrifft ein Verfahren zur Codierung von Sprachsignalen, insbesondere unter der Einbeziehung mehrerer Codebücher, über deren Einträge das Sprachsignal approximiert wird, und ein Verfahren zur Übertragung von Sprachsignalen.
In digitalen Sprachkommunikationssystemen wie dem Festnetz, dem Internet, oder einem digitalen Mobilnetz werden Sprachcodierverfahren eingesetzt, um die zu übertragende Bitrate zu senken. Die Sprachcodierverfahren liefern üblicherweise einen Bitstrom sprachcodierter Bits, der in Rahmen aufgeteilt ist, die jeweils beispielsweise 20 ms des Sprachsignals repräsentieren. Die Bits innerhalb eines Rahmens repräsentieren im allgemeinen einen bestimmten Satz an Parametern. Ein Rahmen wiederum ist vielfach in Subrahmen aufgeteilt, so dass manche Parameter einmal pro Rahmen, andere einmal pro Subrahmen übertragen werden. Als Beispiel sei der US-TDMA Enhanced Fullrate (EFR) Sprachcodec mit 7.4 kbps gegeben, das heißt 148 Bit pro 20 ms-Rahmen. Ein Rahmen besteht hier aus 4 Subrahmen.
Im folgenden wird anhand dieses Sprachcodierverfahrens exemplarisch die Bedeutung der in sogenannten CELP-Codern (code- excited linear prediction) auftretenden Parameter vorgestellt: - 10 Koeffizienten eines sogenannten LPC-Synthese-Filters (linear predictive coding) . Sie werden mit 26 Bit/Rahmen guantisiert. Das Filter repräsentiert die spektrale Einhüllende des Sprachsignals im Bereich des aktuellen Rahmens. Das Anregungssignal für dieses Filter setzt sich additiv aus einem mit einem sogenannten "adaptiven Verstärkungsfaktor" g_l gewichteten sogenannten "adaptiven Anregungssignal" S_a und einem mit einem sogenannten "festen Ver-
Stärkungsfaktor" g_2 gewichteten sogenannten "festen Anregungssignal" S_f zusammen.
- Mittels 4x17 Bit werden vier Subrahmen des festen Anregungssignals cruantisiert . Die feste Anregung S_f besteht aus einem Eintrag des sogenannten "festen Codebuchs", welcher mit dem festen Verstärkungsfaktor g_2 gewichtet ist. Die Einträge des festen Codebuchs bestehen je aus einer Pulssequenz, die nur zu wenigen Zeitpunkten von Null verschieden ist. - Mittels 2x8 Bit und 2x5 Bit werden vier Werte einer Sprachgrundfrequenz repräsentiert. Das adaptive Anregungssignal in sogenannten Analyse-durch-Synthese CELP-Codierverfahren bestimmt sich aus dem Anregungssignal des LPC- Synthesefilters, verzögert um eine Periode der Sprachgrund- frequenz . Alle möglichen quantisierten Sprachgrundfrequenzen konstituieren das sogenannte "adaptive Codebuch", das die entsprechend verschobenen AnregungsSignale enthält.
- Mittels 4x7 Bit werden vier Verstärkungsfaktorpaare pro Rahmen vektor uantisiert . Der "adaptive Verstärkungsfaktor" wird auf das adaptive Anregungssignal angewandt, der "feste Verstärkungsfaktor" wird auf das feste Anregungssignal angewandt. Das Gesamtanregungssignal des LPC-Synthese-Filters setzt sich dann, wie oben bereits erwähnt, additiv aus den gewichteten adaptiven und festen AnregungsSignalen zusam- men.
Die Einträge eines Codebuches werden allgemein Codewörter oder Codevektoren genannt .
Das adaptive Codebuch nennt sich "adaptiv", weil die in ihm enthaltenen Codevektoren keine Konstanten darstellen oder gar abgespeichert vorliegen, sondern sie werden für jeden Subrahmen adaptiv aus der Vergangenheit des Gesamtanregungssignals des LPC-Synthesefilters bestimmt. Das feste Codebuch ist insofern "fest", als seine Codevektoren entweder fest abgespei- chert vorliegen (Rauschanregung) oder zumindest über determinierte Rechenvorschritten errechnet werden (algebraisches Codebuch) , die nicht abhängig von dem jeweiligen Subrahmen
sind. Die jeweils zugeordneten Verstärkungsfaktoren werden üblicherweise auch als "adaptiv" beziehungsweise "fest" bezeichnet. Es ist anzumerken, dass alle 4 Parametertypen, ad- aptives und festes Anregungssignal, sowie adaptiver und fe- ster Verstärkungsfaktor, selbstverständlich in jedem Subrahmen zu bestimmen sind, und in diesem Sinne alle "adaptiver Natur" sind. Im weiteren soll jedoch an der zuvor eingeführten Terminologie - die auch in der Literatur üblich ist - festgehalten werden beziehungsweise anstelle von "adaptiver Verstärkungsfaktor" der Begriff "erster Verstärkungsfaktor" und anstelle von "fester Verstärkungsfaktor" der Begriff zweiter Verstärkungsfaktor verwendet werden.
Das Anregungssignal Sv soll nach einer LPC-Synthese-Filterung möglichst genau den zu dieser Zeit auftretenden Sprachabschnitt, das Sprachsignal S, widerspiegeln.
Die Parameter g_l, g_2 , S_a, S_f werden also so gewählt, dass damit das Sprachsignal S möglichst gut dargestellt werden kann.
Das Anregungssignal Sv = g_l * S_a + g_2 * S_f approximiert somit nach LPC-Synthese-Filterungauf der Empfängerseite das Sprachsignal .
Der Beitrag der einzelnen Summanden g_l * S_a beziehungsweise g_2 * S_f zum gesamten Anregungssignal S1 variiert in Abhängigkeit von den sprachlichen Besonderheiten des Sprachsignalabschnittes .
Sprachsignale enthalten Folgen von Rahmen oder Subrahmen, in denen sie als stationär, also ohne zeitliche Entwicklung ihrer statistischen Eigenschaften modelliert werden können. Hierbei handelt es sich um periodische Abschnitte, die beispielsweise Vokale darstellen können. Diese Periodizität fließt über den Beitrag g_l *S_a in das gesamte Anregungssignal Sλ ein.
Es gibt jedoch auch zutiefst nicht-stationäre Sprachsignalabschnitte, wie beispielsweise sogenannte "Onsets" beziehungsweise "Sprach-Onsets" . Hierbei handelt es sich etwa um Plosi- vlaute am Anfang eines Wortes. In diesem Fall stellt der Su - mand g_2 * S_f den dominanten Beitrag zum Anregungssignal Sx dar.
Die statistischen Eigenschaften eines Rahmens oder Subrahmens mit einem Onset lassen sich in der Regel nicht aus zurückliegenden Rahmen oder Subrahmen schätzen. Bei einem Onset ist insbesondere keine Langzeitperiodizität festzustellen, das heißt der Wert einer Sprachgrundfrequenz ist völlig aussage- und nutzlos. Der sich aus adaptivem Verstärkungsfaktor und Eintrag des adpativen Codebuchs zusammensetzende Beitrag, der ja eine Langzeitperiodizität im Sprachsignal zum Ausdruck bringt, ist demnach bei Onsets eher hinderlich als nützlich zur Codierung des Sprachsignalabschnittes. Der Beitrag eines adaptiven Anregungssignals zum Gesamtanregungssignal bei Onsets kann regelrecht schaden: Findet sich überhaupt keine Pe- riodizität, das heißt kein geeignetes adaptives Anregungs- signal im Rahmen der adaptiven Codebuchsuche, so ergibt sich der optimale adaptive Verstärkungsfaktor zu Null.
Oftmals werden nun adaptiver und fester Verstärkungsfaktor g_l und g_2 als Zahlenpaar (g_l,g_2) mittels eines weiteren Codebuches für die Verstärkungsfaktoren quantisiert. In diesem Fall einer parallelen, voneinander abhängigen Quantisierung der Parameter spricht man von Vektorquantisierung. Dieses Codebuch hat natürlich nur eine beschränkte Größe, typischerweise 7 Bits, wodurch sich also 27 =128 Einträge reali- sieren lassen, deren Indizes beispielsweise von 0 bis 127 laufen.
Es werden an den Empfänger nur die Indizes übertragen, wodurch sich im Vergleich zur herkömmlichen Übertragung nach skalarer Quantisierung von g_l und g_2 separat eine Datenkom- pression ergibt. Unter skalarer Quantisierung wird eine individuelle, voneinander unabhängige Quantisierung der Parameter
verstanden. Die Anzahl der Einträge in diesem Codebuch ist wie oben bereits gesagt, begrenzt.
Daher werden als Eintrag in dieses Codebuch diejenigen Zahlenpaare (g_l, g_2) verwendet, durch deren Gesamtheit, also Zahlenpaare mit Index 0-127, sich alle möglichen auftretenden Kombinationen von g_l und g_2 bestmöglich darstellen lassen. Diese stehen dann herkömmlicherweise einer sogenannten Vektorquantisierung zur Verfügung. Bei einem adaptiven Verstärkungsfaktor g_l = 0 können prinzipiell beliebige Werte des festen Verstärkungsfaktors g_2 auftreten, da bei nichtperiodischen Sprachabschnitten wie bereits dargelegt, eben der adaptive Anteil g_l * S_a wesentlich kleiner ist als der feste Anteil, somit das Anregungssignal Sx für das LPC- Synthese-Filter durch letzteren bestimmt wird und der feste Anteil in diesem Fall nicht aus in der Vergangenheit liegenden Werten berechnet werden kann.
Um also auch in diesem Fall g_l = 0 eine optimale Anpassung des Anregungssignales S nach LPC-Ξynthesefilterung über eine Anpassung der Parameter g_l, g_2 , S_l, S_2 an das ursprüngli- ehe Sprachsignal S vornehmen zu können, müßten sehr viele Wertepaare
(g_l = 0, g_2) in das Codebuch aufgenommen werden, was natürlich aus Speicherplatzgründen nicht möglich ist. Insofern erhält man bei einer Anpassung der Parameter im Fal- le g_l = 0 zumeist einen nicht gut passenden Wert für g_2. Das führt zu unerwünschten Signalanteilen im gesamten Anregungssignal Ξ' nach der Quantisierung.
Die meisten konventionell verwendeten Sprachcodierer lösen dieses Problem überhaupt nicht.
Manche Sprachcodierer, so zum Beispiel der GSM Enhanced- Fullrate-Coder (GSM-EFR) , führen eine Skalarquantisierung der Verstärkungsfaktoren durch. Das heißt in diesem Falle, dass der adaptive Verstärkungsfaktor mit 4 Bit pro Subrahmen und der feste Verstärkungsfaktor mit 5 Bit pro Subrahmen individuell und unabhängig voneinander quantisiert werden. Das hat den Vorteil, dass bei bestimmten nicht-stationären Sp achab-
schnitten, beispielsweise bei den Onsets, der adaptive Verstärkungsfaktor leicht zu Null quantisiert werden kann, und der feste Verstärkungsfaktor einen davon unabhängigen Wert nach Quantisierung annehmen kann. Es hat aber gegenüber der Vektorquantisierung den Nachteil geringerer Codiereffizienz: Im GSM-EFR-Coder benötigt man 4+5 = 9 Bit für die Verstärkungsfaktoren, bei einer Vektorquantisierung reichen 7 Bit aus . Ein weiterer Nachteil hier ist auch, dass keine zusätzlichen Bits zur Verfügung stehen, um die feste Anregung beziehungsweise den festen Verstärkungsfaktor entsprechend genauer zu quantisieren. Die Bits des adaptiven Codebuchs, das heißt der Sprachgrundfrequenz, bleiben im Falle, dass der adaptive Verstärkungsfaktor zu Null gewählt wurde, ungenutzt. Der GSM-Halfrate-Coder (GSM-HR) arbeitet demgegenüber in mehreren Modi. Ein Modus sieht vor, dass in bestimmten Subrahmen, beispielsweise solchen, die Onsets darstellen, das adaptive Codebuch durch ein zweites festes Codebuch ersetzt wird. Das löst zwar in gewisser Weise das Problem, erfordert aber eine relativ hohe Komplexität und auch Speicherbedarf für das zweite Codebuch. Auch steigt die Anfälligkeit gegenüber Bitfehlern bei der Übertragung, da modusabhängig ein völlig neuer Codecparameter genutzt wird. Überdies muss bei dem GSM-HR- Codec die Abschaltung des adaptiven Codebuchs explizit über Modusbits signalisiert werden.
Der vorliegenden Erfindung liegt also die Aufgabe zugrunde, ein Verfahren zur Codierung und zur Übertragung anzugeben, das speicherplatz-sparend, effizient und wenig fehleranfällig arbeitet, insbesondere komplexitäts- und codier-effizient abläuft und zugleich eine hohe Signalqualität nach der Decodie- rung aufweist.
Diese Aufgabe wird durch die unabhängigen Ansprüche 1 und 6 gelöst, Weiterbildungen ergeben sich aus den unabhängigen Ansprüchen.
Erfindungsgemäß wird bei bestimmten Werten eines Signalklassifikators der Wert des ersten Verstärkungsfaktors, welcher einem adaptiven Codebuch zugeordnet ist, festgesetzt. Dadurch lässt sich eine Reduktion der Datenmenge erreichen, die zur Darstellung der Gesamtheit von erstem Verstärkungsfaktor und adaptiven Codebucheintrag benötigt wird. Das Sprachsignal wird in einzelne Zeitabschnitte zerlegt. Diese Abschnitte können beispielsweise Rahmen (Frames) oder Sub-Rahmen (Sub-Frames) darstellen. Der Signalklassifikator sagt beispielsweise aus, ob ein stationärer oder ein nicht-stationärer Sprachabschnitt vorliegt, also ob es sich etwa um einen Sprach-Onset handelt. Liegt nun ein derartiger Fall vor, so kann dem ersten Verstärkungsfaktor ein durch den Signalklassifikator festgeleg- ter Wert zugeordnet werden. Beispielsweise durch entsprechende Indizierung kann dieser Wert des ersten Verstärkungsfaktors derart festgelegt werden, daß diese Darstellung des Wertes weniger Bits benötigt als eine herkömmliche Darstellung. Ebenso ist es natürlich alternativ, optional oder zusätzlich möglich, eine Kompression zu erzielen, indem, wenn der erste Verstärkungsfaktor festgelegt wird, die Darstellung des Eintrags des adaptiven Codebuchs komprimiert wird. Somit ergibt sich eine im Vergleich zum Stand der Technik codiereffiziente Darstellung zumindest eines Parameters, der im Zu- ge der Sprachcodierung auftritt.
Insbesondere erweist sich dieses Verfahren als vorteilhaft, wenn der erste Verstärkungsfaktor auf Null festgesetzt wird. Dadurch wird die Qualität des sprach-decodierten Signals er- höht, da, wie eingangs dargelegt, beispielsweise weniger Quantisierungsfehlersignalanteile bei nicht-stationären Sprachabschnitten auftreten.
Eine andere Weiterbildung sieht vor, daß der zweite Verstär- kungsfaktor skalar quantisiert ist, falls der erste Verstärkungsfaktor festgesetzt ist. Beispielsweise kann dann die
Auflösung der Quantisierung des zweiten Verstärkungsfaktors erhöht werden.
Somit kann beispielsweise im Falle von Sprach-Onsets, die durch den festen Anteil der Anregung g_2 * S_f dargestellt werden, ein erweiterter Wertebereich für den zweiten Verstärkungsfaktor zugelassen werden, was eine genauere Beschreibung eines derartigen Sprachsignalabschnittes ermöglicht.
In einer anderen Weiterbildung ist es vorgesehen, daß der Co- dierer mit einer festen Datenrate arbeitet, das heisst, für einen Abschnitt eines Sprachsignals ist eine feste Datenmenge vorgesehen. Die erzielte Reduktion der Datenmenge zur Darstellung des ersten Verstärkungsfaktors und alternativ oder optional des adaptiven Codebuch-Eintrages, kann dahingehend ausgenutzt werden, daß der nun nicht mit Daten belegte Anteil der Datenmenge zur Darstellung anderer Parameter verwendet wird, welche bei der Sprachcodierung auftreten. In einer anderen Weiterbildung ist vorgesehen, daß der Sprachabschnitt mit einer reduzierten Datenmenge dargestellt wird. Dieses Verfahren kann insbesondere bei der Verwendung eines Codierverfahrens mit variabler Bitrate Anwendung finden.
Desweiteren betrifft die Erfindung ein Verfahren zur Übertra- gung von Sprachsignalen, die gemäß einem der vorhergehenden Ansprüche codiert sind. Wesentlich ist hierbei, daß der erste Verstärkungsfaktor oder/und der adaptive Codebuch-Eintrag nicht übertragen wird.
Insbesondere weist dieses Verfahren Vorteile auf, wenn dem
Empfänger, beispielsweise dem Decodierer, durch eine Information angezeigt wird, daß diese Reduktion in der Datenmenge zur Darstellung einzelner Parameter vorgenommen wurde. Diese Information kann beispielsweise einen Anteil des durch die Reduktion nicht mit Daten belegten Datenmenge belegen oder auch zusätzlich zu der Datenmenge des Rahmens oder SubRahmens gesendet werden.
Im folgenden wird die Erfindung anhand einiger Ausführungsbeispiele erläutert, die teilweise durch Figuren erläutert werden. Es zeigen
Figur 1 einen Überblick über das Analyse-durch-Synthese- Prinzip in der Sprachcodierung, Figur 2 die Verwendung von adaptivem und festem Codebuch mit den zughörigen Verstärkungsfaktoren.
Figur 1 zeigt den schematischen Ablauf einer Sprachcodierung nach dem Analyse-durch-Synthese-Prinzip.
Im wesentlichen wird das originäre Sprachsignal 10 mit einem synthetisierten Sprachsignal 11 verglichen. Das synthetisier- te Sprachsignal 11 soll derart sein, daß die Abweichung zwischen dem synthetisierten Sprachsignal 11 und dem originären Sprachsignal 10 minimal ist. Diese Abweichung wird gegebenenfalls noch spektral gewichtet. Dies geschieht über ein Wichtungsfilter W(z) . Das synthetisierte Sprachsignal wird mit Hilfe eines LPC-Synthesefilters H(z) hergestellt. Dieses Synthesefilter wird über ein Anregungssignal 12 angeregt. Die Parameter dieses Anregungssignales 12 (und gegebenenfalls auch die Koeffizienten des LPC-Synthesefilters) werden letztlich übertragen und sollten daher möglichst effizient codiert sein.
Die Erfindung zielt also auf eine möglichst effiziente Darstellung der Parameter ab, welche den Anregungsgenerator beschreiben. In Figur 2 ist der Anregungsgenerator ohne nachgeschaltetem LPC-Synthese-Filter im Detail zu sehen.
Das Anregungssignal 12 setzt sich zusammen aus einem adaptiven Anteil, mittels dem überwiegend periodische Sprachabschnitte dargestellt werden und einem festen Anteil, der zur Darstellung nichtperiodischer Abschnitte dient. Dies wurde im einzelnen bereits eingangs dargelegt. Zur Darstellung des adaptiven Anteils dient das adaptive Codebuch 1, dessen Einträge mit einem ersten Verstärkungsfaktor 3 gewichtet werden.
Die Einträge des adaptiven Codebuchs 1 sind durch die vorhergehenden Sprachabschnitte festgelegt. Dies geschieht über eine Rückkoppelschleife 2. Der erste Verstärkungsfaktor 3 wird durch die Anpassung an das originäre Sprachsignal 10 be- stimmt. Das feste Codebuch 4 enthält, wie der Name schon sagt, Einträge, welche nicht von einem vorhergehenden Zeitabschnitt bestimmt sind. Jeder Eintrag im Codebuch, das sogenannte Codewort, ein algebraischer Codevektor, ist eine Pulssequenz, die nur zu wenigen, definierten Zeitpunkten Werte ungleich 0 aufweist. Es wird dieser Eintrag oder Anregungssequenz gewählt, mittels der die Abweichung des synthetisierten Signals 11 zum originären Sprachsignal 10 minimiert wird. Der dem festen Codebuch zugeordnete Verstärkungsfaktor 5 wird dementsprechend festgelegt . Zunächst ist vorgesehen, dass für jeden Rahmen ein sogenannter Signalklassifikator berechnet wird. Dieser Signalklassi- fikator kann beispielsweise eine binäre Entscheidung liefern, ob das adaptive Codebuch genutzt werden soll oder nicht. Zu diesem Zweck kann es sich um einen Onset-Erkenner handeln. Es ist vorgesehen, dass in Abhängigkeit von dem Klassifikator der adaptive Verstärkungsfaktor zu Null gesetzt wird, das heißt die adaptive Anregung nicht in das Gesamtanregungs- signal des LPC-Synthesefilters eingeht. Es ist darüber hinaus vorgesehen, dass zumindest ein Parameter nicht mehr übertra- gen wird. Hierfür gibt es mehrere sinnvolle Alternativen:
- Wird beispielsweise der Wert 0 für den adaptiven Verstärkungsfaktor übertragen, so muss der adaptive Codebucheintrag (das heißt die Sprachgrundfrequenz) nicht mehr übertragen werden, da er ja auf Empfangsseite eh mit einer Null multipliziert würde.
- Wird beispielsweise das Nullsetzen der adaptiven Anregung dem Decoder durch ein reserviertes Wort des adaptiven Code- buchs (das heißt der Sprachgrundfrequenz) signalisiert, so braucht der adaptive Verstärkungsfaktor nicht mehr übertragen zu werden. Im Falle einer Vektorquantisierung von adaptivem
und festem Verstärkungsfaktor könnte der feste Verstärkungsfaktor beispielsweise skalar quantisiert werden.
- Wird der Klassifikator durch ein explizites Bit übertragen, so kann im Falle eines Onsets sogar auf die Übertragung von adaptivem Codebucheintrag (Sprachgrundfrequenz) und adaptivem Verstärkungsfaktor verzichtet werden.
Vorteil jeder dieser möglichen Realisierungen ist, dass im Vergleich zur State-of-the-Art eine geringere Zahl an Bits übertragen werden kann. Bei Codierverfahren mit fester Bitrate können diese Bits nun genutzt werden, um die Quantisierung des festen Verstärkungsfaktors, und/oder die Quantisierung der festen Anregung, und/oder die Quantisierung der LPC- Koeffizienten zu verbessern. Im allgemeinen kann jeder verbleibende Codec-Parameter potentiell von einer verbesserten Quantisierung profitieren. Im Gegensatz zum GSM-HR-Coder ist kein neuer Parameter vorgesehen (das heißt kein zweites festes Codebuch) , stattdessen aber die verbesserte Quantisie- rung bereits vorhandener Parameter. Dies spart Rechenkomplexität, Speicherbedarf, und ermöglicht die Berücksichtigung spezifischer Eigenarten von Subrahmen mit Onsets. Durch geschickte Einbettung der zusätzlich nutzbaren Bits in die Quantisierungstabellen anderer Codecparameter kann zudem speichereffizient codiert werden.
Zusammenfassend lässt sich sagen, daß durch das Nullsetzen der adaptiven Anregung im Falle eines Onsets, und durch Nutzung freiwerdender Bits der adaptiven Anregung beziehungswei- sedes adaptiven Verstärkungsfaktors eine verbesserte Quantisierung verbleibender Codec-Parameter erzielt werden kann.
Eine geschickte Einbettung der zusätzlich freiwerdenden Bits soll im Folgenden kurz skizziert werden. Angenommen, das Nullsetzen der adaptiven Anregung wird durch ein reserviertes Wort im adaptiven Codebuch signalisiert. Dann kann der feste Verstärkungsfaktor, der zuvor mit 7 Bit gemeinsam mit 'dem ad-
aptiven Verstärkungsfaktor vektor-quantisiert wurde, bei in etwa gleichem Quantisierungsfehler beispielsweise skalar mit 5 Bit quantisiert werden. Die mit 5 Bit quantisierten Werte des festen Verstärkungsfaktors könnten sich aus einer 25%- Untermenge des 7 Bit-Vektorcodebuchs ergeben, und zwar eine mit beliebigen 5 Bit aus den 7 Bit adressierbare Untermenge. Eine solche Realisierung des 5 Bit Skalarquantisierers spart zusätzlichen Speicher. Die freiwerdenden 2 Bit können nun beispielsweise zur genaueren Quantisierung der festen Anre- gung genutzt werden.
Neben den hier aufgeführten Beispielen liegt eine Vielzahl weiterer AusführungsVarianten im Rahmen der Erfindung, die von einem Fachmann anhand der Ausführungen ohne großen Auf- wand in die Praxis umgesetzt werden können.