-
Diese
Erfindung betrifft Verfahren zum Quantisieren von Sprache und zum
Bewahren der Qualität
von Sprache während
der Anwesenheit von Bitfehlern.
-
Relevante
Veröffentlichungen
umfassen: J. L. Flanagan, Speech Analysis, Synthesis and Perception, Springer-Verlag
1972, S. 378–386
(erörtert
einen Phasenvocoder – ein
Frequenzbasis-Sprachanalyse-Synthese-System); Quatieri, et al., "Speech Transformations
Based on a Sinusoidal Representation", IEEE TASSP, Band ASSP34, Nr. 6, Dez.
1986, S. 1449–1986
(erörtert
ein Analyse-Synthese-Verfahren
auf der Basis einer Sinusdarstellung); Griffin, "Multiband Excitation Vocoder", Ph. D. Thesis,
M. I. T, 1987 (erörtert
einen Mehrbandanregungs-Sprachcodierer mit 8000 bps); Griffin, et
al., "A High Quality
9.6 kbps Speech Coding System", Proc.
ICASSP 86, S. 125–128,
Tokio, Japan, 13.–20.
April 1986 (erörtert
einen Mehrbandanregungs-Sprachcodierer mit 9600 bps); Griffin, et
al., "A New Model-Based
Speech Analysis/Synthesis System",
Proc. ICASSP 85, S. 513–516,
Tampa, FL., 26.–29.
März 1985
(erörtert
ein Mehrbandanregungs-Sprachmodell); Hardwick, "A 4.8 kbps Multi-Band Excitation Speech
Coder", S. M. Thesis,
M. I. T, Mai 1988 (erörtert
einen Mehrbandanregungs-Sprachcodierer
mit 4800 bps); McAulay et al., "Mid-Rate
Coding Based on a Sinusoidal Representation of Speech", Proc. ICASSP 85,
S. 945–948,
Tampa, FL., 26.–29.
März 1985
(erörtert
eine Sprachcodierung auf der Basis einer Sinusdarstellung); Campbell
et al., "The New
4800 bps Voice Coding Standard",
Mil Speech Tech Conference, Nov. 1989 (erörtert eine Fehlerkorrektur
in Sprachcodierern mit niedriger Rate); Campbell et al., "CELP Coding for Land
Mobile Radio Applications",
Proc. ICASSP 90, S. 465–468,
Albequerque, NM. 3.–6. April
1990 (erörtert
die Fehlerkorrektur in Sprachcodierern mit niedriger Rate); Levesque
et al., Error Control Techniques for Digital Communication, Wiley,
1985, S. 157–170
(erörtert
die Fehlerkorrektur im allgemeinen); Jayant et al., Digital Coding
of Waveforms, Prentice-Hall, 1984 (erörtert die Quantisierung im
allgemeinen); Makhoul, et al., "Vector
Quantization in Speech Coding",
Proc. IEEE, 1985, S. 1551–1588
(erörtert
die Vektorquantisierung im allgemeinen); Jayant et al., "Adaptive Postfiltering
of 16 kb/s-ADPCM Speech",
Proc. ICASSP 86, S. 829–832,
Tokio, Japan, 13.–20.
April 1986 (erörtert
die adaptive Nachfilterung von Sprache). Der Inhalt dieser Veröffentlichungen
wird durch den Hinweis hierin aufgenommen.
-
Das
Problem der Sprachcodierung (Komprimieren von Sprache in eine kleine
Anzahl von Bits) weist eine große
Anzahl von Anwendungen auf und hat folglich eine beträchtliche
Aufmerksamkeit in der Literatur erlangt. Eine Klasse von Sprachcodierern
(Vocodern), die ausgedehnt untersucht und in der Praxis verwendet wurden,
basieren auf einem zugrundeliegenden Sprachmodell. Beispiele von
dieser Klasse von Vocodern umfassen Vocoder mit linearer Vorhersage,
homomorphe Vocoder und Kanalvocoder. In diesen Vocodern wird die
Sprache auf Kurzzeitbasis als Reaktion eines linearen Systems, das
durch eine periodische Impulsfolge für stimmhafte Töne oder
statistisches Rauschen für
stimmlose Töne
angeregt wird, modellhaft dargestellt. Für diese Klasse von Vocodern
wird die Sprache analysiert, indem zuerst die Sprache unter Verwendung
eines Fensters wie z.B. eines Hamming-Fensters segmentiert wird.
Dann werden für
jedes Sprachsegment die Anregungsparameter und Systemparameter abgeschätzt und
quantisiert. Die Anregungsparameter bestehen aus der Entscheidung
stimmhaft/stimmlos und der Tonhöhenperiode.
Die Systemparameter bestehen aus der Spektralhüllkurve oder der Impulsreaktion
des Systems. Um Sprache zu rekonstruieren, werden die quantisierten
Anregungsparameter verwendet, um ein Anregungssignal zu synthetisieren,
das aus einer periodischen Impulsfolge in stimmhaften Bereichen
oder statistischem Rauschen in stimmlosen Bereichen besteht. Dieses Anregungssignal
wird dann unter Verwendung der quantisierten Systemparameter gefiltert.
-
Selbst
wenn Vocoder auf der Basis dieses zugrundeliegenden Sprachmodells
bei der Erzeugung von verständlicher
Sprache ziemlich erfolgreich waren, waren sie bei der Erzeugung
von Sprache mit hoher Qualität
nicht erfolgreich. Folglich wurden sie für die Sprachcodierung mit hoher
Qualität
nicht umfangreich verwendet. Die schlechte Qualität der rekonstruierten
Sprache liegt teilweise an der ungenauen Abschätzung der Modellparameter und
teilweise an Begrenzungen im Sprachmodell.
-
Ein
neues Sprachmodell, das als Mehrbandanregungs-(MBE)Sprachmodell
bezeichnet wird, wurde von Griffin und Lim 1984 entwickelt. Sprachcodierer
auf der Basis dieses neuen Sprachmodells wurden von Griffin und
Lim 1986 entwickelt und von ihnen wurde gezeigt, daß sie in
der Lage sind, Sprache mit hoher Qualität mit Raten oberhalb 8000 bps
(Bits pro Sekunde) zu erzeugen. Die anschließende Arbeit von Hardwick und Lim
erzeugte einen MBE-Sprachcodierer mit 4800 bps, der auch in der
Lage war, Sprache mit hoher Qualität zu erzeugen. Dieser Sprachcodierer
mit 4800 bps verwendete raffiniertere Quantisierungsverfahren, um
eine ähnliche
Qualität
bei 4800 bps zu erzielen, die frühere
MBE-Sprachcodierer bei 8000 bps erzielt hatten.
-
Der
MBE-Sprachcodierer mit 4800 bps verwendete ein MBE-Analyse/Synthese-System, um die MBE-Sprachmodellparameter
abzuschätzen
und Sprache aus den abgeschätzten
MBE-Sprachmodellparametern zu synthetisieren. Ein diskretes Sprachsignal,
das mit s(n) bezeichnet wird, wird durch Abtasten eines analogen
Sprachsignals erhalten. Dies wird typischerweise mit einer Abtastrate
von 8 kHz durchgeführt,
obwohl andere Abtastraten leicht durch eine problemlose Änderung
der verschiedenen Systemparameter angepaßt werden können. Das System unterteilt
das diskrete Sprachsignal in kleine überlappende Segmente oder Segmente
durch Multiplizieren von s(n) mit einem Fenster w(n) (wie z.B. einem
Hamming-Fenster oder einem Kaiser-Fenster), um ein Fenstersignal
sw(n) zu erhalten. Jedes Sprachsegment wird
dann analysiert, um einen Satz von MBE-Sprachmodellparametern zu erhalten,
die dieses Segment charakterisieren. Die MBE-Sprachmodellparameter
bestehen aus einer Grundfrequenz, die zur Tonhöhenperiode äquivalent ist, einem Satz von Entscheidungen
stimmhaft/stimmlos, einem Satz von Spektralamplituden und wahlweise
einem Satz von Spektralphasen. Diese Modellparameter werden dann
unter Verwendung einer festen Anzahl von Bits für jedes Segment quantisiert.
Die resultierenden Bits können
dann verwendet werden, um das Sprachsignal zu rekonstruieren, indem
zuerst die MBE-Modellparameter aus den Bits rekonstruiert werden
und dann die Sprache aus den Modellparametern synthetisiert wird.
Ein Blockdiagramm eines typischen MBE-Sprachcodierers ist in 1 gezeigt.
-
Der
MBE-Sprachcodierer mit 4800 bps erforderte die Verwendung eines
raffinierten Verfahrens, um die Spektralamplituden zu quantisieren.
Für jedes
Sprachsegment variierte die Anzahl von Bits, die verwendet werden
konnten, um die Spektralamplituden zu quantisieren, zwischen 50
und 125 Bits. Außerdem
variiert die Anzahl von Spektralamplituden für jedes Segment zwischen 9
und 60. Ein Quantisierungsverfahren wurde ausgedacht, das alle Spektralamplituden
mit der Anzahl von Bits, die für
jedes Segment zur Verfügung
standen, effizient darstellen konnte. Obwohl dieses Spektralamplituden-Quantisierungsverfahren
zur Verwendung in einem MBE-Sprachcodierer ausgelegt war, sind die
Quantisierungsverfahren gleichermaßen in einer Anzahl von verschiedenen
Sprachcodierverfahren nützlich,
wie z.B. im Sinustransformationscodierer und im Oberwellencodierer.
Für ein
spezielles Sprachsegment bezeichnet L^ die Anzahl von Spektralamplituden
in diesem Segment. Der Wert von L^ wird von der Grundfrequenz ω^
0 gemäß der Beziehung
abgeleitet, wobei 0 ≤ β ≤ 1,0 die Sprachbandbreite
relativ zur Hälfte
der Abtastrate bestimmt. Die Funktion ⎣x⎦, auf
die in Gleichung (1) Bezug genommen wird, ist gleich der größten ganzen
Zahl, die kleiner als oder gleich x ist. Die L^ Spektralamplituden
werden mit M^
l für 1 ≤ l ≤ L^ bezeichnet, wobei M^
l die
Spektralamplitude mit der niedrigsten Frequenz ist und M^
L die
Spektralamplitude mit der höchsten
Frequenz ist.
-
Die
Spektralamplituden für
das aktuelle Sprachsegment werden durch zuerst Berechnen eines Satzes von
Vorhersageresten, die die Menge der Spektralamplituden angeben,
die sich zwischen dem aktuellen Sprachsegment und dem vorherigen
Sprachsegment geändert
haben, quantisiert. Wenn L^
0 die Anzahl von Spektralamplituden
im aktuellen Sprachsegment bezeichnet und L^
–1 die
Anzahl von Spektralamplituden im vorherigen Sprachsegment bezeichnet,
dann sind die Vorhersagereste T^
l für 1 ≤ l ≤ L^
0 gegeben
durch:
wobei
M l 0 die Spektralamplituden des aktuellen Sprachsegments
bezeichnet und
M l –1 die
quantisierten Spektralamplituden des vorherigen Sprachsegments bezeichnet.
Die Konstante γ ist
typischerweise gleich 0,7, ein beliebiger Wert im Bereich von 0 ≤ γ ≤ 1 kann jedoch
verwendet werden.
-
Die
Vorhersagereste werden in Blöcke
von K Elementen unterteilt, wobei der Wert von K typischerweise
im Bereich von 4 ≤ K ≤ 12 liegt.
Wenn L^ nicht gleichmäßig durch
K teilbar ist, dann enthält
der Block mit der höchsten
Frequenz weniger als K Elemente. Dies ist in 2 für L^ = 34
und K = 8 gezeigt.
-
Jeder
der Vorhersagerestblöcke
wird dann unter Verwendung einer diskreten Cosinustransformation (DCT)
transformiert, die definiert ist durch
-
-
Die
Länge der
Transformation für
jeden Block J ist gleich der Anzahl von Elementen im Block. Daher werden
alle bis auf den Block mit der höchsten
Frequenz mit einer DCT mit der Länge
K transformiert, während die
Länge der
DCT für
den Block mit der höchsten
Frequenz geringer als oder gleich K ist. Da die DCT eine invertierbare
Transformation ist, legen die L^ DCT-Koeffizienten die Spektralamplituden-Vorhersagereste
für das
aktuelle Segment vollständig
fest.
-
Die
Gesamtzahl an Bits, die zum Quantisieren der Spektralamplituden
zur Verfügung
stehen, wird unter den DCT-Koeffizienten gemäß einer Bitzuweisungsregel
aufgeteilt. Diese Regel versucht, den wahrnehmbar wichtigeren Niederfrequenzblöcken mehr
Bits zu geben als den wahrnehmbar weniger wichtigen Hochfrequenzblöcken. Außerdem verteilt
die Bitzuweisungsregel die Bits innerhalb eines Blocks an die DCT-Koeffizienten
gemäß ihren
relativen Langzeitvarianzen. Diese Methode gleicht die Bitzuweisung
auf die Wahrnehmungseigenschaften von Sprache und auf die Quantisierungseigenschaften
der DCT ab.
-
Jeder
DCT-Koeffizient wird unter Verwendung der Anzahl von Bits, die durch
die Bitzuweisungsregel festgelegt wird, quantisiert. Typischerweise
wird eine gleichmäßige Quantisierung
verwendet, eine ungleichmäßige oder
Vektorquantisierung kann jedoch auch verwendet werden. Die Schrittweite
für jeden
Quantisierer wird aus der Langzeitvarianz der DCT-Koeffizienten
und aus der Anzahl von Bits, die zum Quantisieren jedes Koeffizienten
verwendet werden, bestimmt. Tabelle 1 zeigt die typische Variation
der Schrittweite als Funktion der Anzahl von Bits für eine Langzeitvarianz
gleich σ2.
-
Sobald
jeder DCT-Koeffizient unter Verwendung der Anzahl von Bits, die
durch die Bitzuweisungsregel festgelegt wird, quantisiert wurde,
kann die binäre
Darstellung in Abhängigkeit
von der Anwendung übertragen, gespeichert
usw. werden.
-
-
Tabelle
1: Schrittweite von gleichmäßigen Quantisierern
-
Die
Spektralamplituden können
aus der binären
Darstellung rekonstruiert werden, indem zuerst die quantisierten
DCT-Koeffizienten für
jeden Block rekonstruiert werden, die inverse DCT an jedem Block
durchgeführt
wird und sie dann mit den quantisierten Spektralamplituden des vorherigen
Segments unter Verwendung des Inversen von Gleichung (2) kombiniert
werden. Die inverse DCT ist gegeben durch
wobei
die Länge
J für jeden
Block so gewählt
wird, daß sie
die Anzahl von Elementen in diesem Block ist, α(j) gegeben ist durch
-
-
Ein
potentielles Problem bei dem MBE-Sprachcodierer mit 4800 bps besteht
darin, daß die
wahrgenommene Qualität
der rekonstruierten Sprache signifikant verringert sein kann, wenn
Bitfehler zur binären
Darstellung der MBE-Modellparameter
hinzugefügt
werden. Da Bitfehler in vielen Sprachcodiereranwendungen existieren,
muß ein
robuster Sprachcodierer Bitfehler korrigieren, erkennen und/oder
tolerieren können.
Ein Verfahren, das als sehr erfolgreich festgestellt wurde, besteht
darin, Fehlerkorrekturcodes in der binären Darstellung der Modellparameter
zu verwenden. Fehlerkorrekturcodes ermöglichen, daß seltene Bitfehler korrigiert
werden, und sie ermöglichen,
daß das
System die Fehlerrate abschätzt.
Die Abschätzung
der Fehlerrate kann dann verwendet werden, um die Modellparameter
adaptiv zu verarbeiten, um den Effekt von irgendwelchen restlichen
Bitfehlern zu verringern. Typischerweise wird die Fehlerrate durch
Zählen
der Anzahl von durch die Fehlerkorrekturcodes im aktuellen Segment
korrigierten (oder erkannten) Fehlern und dann Verwenden dieser
Information, um die aktuelle Abschätzung der Fehlerrate zu aktualisieren,
abgeschätzt.
Wenn beispielsweise jedes Segment einen (23,12)-Golay-Code enthält, der
diese Fehler aus den 23 Bits korrigieren kann, und ε
T die
Anzahl von Fehlern (0–3)
bezeichnet, die im aktuellen Segment korrigiert wurden, dann wird
die aktuelle Abschätzung
der Fehlerrate, ε
R, gemäß:
aktualisiert, wobei β eine Konstante
im Bereich von 0 ≤ β ≤ 1 ist, die
die Anpassungsfähigkeit
von ε
R steuert.
-
Wenn
Fehlerkorrekturcodes oder Fehlererkennungscodes verwendet werden,
werden die Bits, die die Sprachmodellparameter darstellen, in einen
anderen Satz von Bits umgewandelt, die gegen Bitfehler unempfindlicher
sind. Die Verwendung von Fehlerkorrektur- oder -erkennungscodes
erhöht
typischerweise die Anzahl von Bits, die übertragen oder gespeichert
werden müssen.
Die Anzahl von zusätzlichen
Bits, die übertragen werden
müssen,
steht gewöhnlich
mit der Unempfindlichkeit des Fehlerkorrektur- oder -erkennungscodes
in Beziehung. In den meisten Anwendungen ist es erwünscht, die
Gesamtzahl an Bits, die übertragen
oder gespeichert werden, zu minimieren. In diesem Fall müssen die Fehlerkorrektur-
oder -erkennungscodes ausgewählt
werden, um die Gesamtsystemleistung zu maximieren.
-
Ein
weiteres Problem in dieser Klasse von Sprachcodiersystemen besteht
darin, daß Begrenzungen in
der Abschätzung
der Sprachmodellparameter eine Qualitätsverschlechterung in der synthetisierten
Sprache verursachen können.
Die anschließende
Quantisierung der Modellparameter induziert eine weitere Verschlechterung.
Diese Verschlechterung kann die Form einer nachhallenden oder gedämpften Qualität für die synthetisierte
Sprache annehmen. Außerdem
kann Hintergrundrauschen oder andere Artefakte vorliegen, die in
der Originalsprache nicht vorhanden waren. Diese Form der Verschlechterung
tritt selbst dann auf, wenn keine Bitfehler in den Sprachdaten vorhanden
sind, Bitfehler können
jedoch dieses Problem schlimmer machen. Typischerweise versuchen
Sprachcodiersysteme, die Parameterabschätzer und Parameterquantisierer zu
optimieren, um diese Form der Verschlechterung zu minimieren. Andere
Systeme versuchen, die Verschlechterungen durch Nachfilterung zu
verringern. Bei der Nachfilterung wird die Ausgangssprache in der Zeitdomäne mit einem
adaptiven Allpolfilter gefiltert, um die Formatspitzen zu schärfen. Dieses
Verfahren ermöglicht
keine Feinsteuerung über
den Spektralverbesserungsprozeß und
es ist rechenaufwendig und ineffizient für Frequenzdomänen-Sprachcodierer.
-
Die
hierin beschriebene Erfindung gilt für viele verschiedene Sprachcodierverfahren,
die umfassen, aber nicht begrenzt sind auf lineare vorhersagende
Sprachcodierer, Kanalvocoder, homomorphe Vocoder, Sinustransformationscodierer,
Mehrbandanregungs-Sprachcodierer und Sprachcodierer mit verbesserter
Mehrbandanregung (IMBE). Für
den Zweck des Beschreibens dieser Erfindung im einzelnen verwenden
wir den IMBE-Sprachcodierer
mit 6,4 kbps, der vor kurzem als Teil des INMARSAT-M-(International Marine
Satellite Organization)Satellitenkommunikationssystems normiert
wurde. Dieser Codierer verwendet ein unempfindliches Sprachmodell,
das als Mehrbandanregungs-(MBE)Sprachmodell bezeichnet wird.
-
Effiziente
Verfahren zum Quantisieren der MBE-Modellparameter wurden entwickelt.
Diese Verfahren sind in der Lage, die Modellparameter mit theoretisch
jeglicher Bitrate oberhalb 2 kbps zu quantisieren. Der IMBE-Sprachcodierer
mit 6,4 kbps, der im INMARSAT-M-Satellitenkommunikationssystem verwendet
wird, verwendet eine Datenblockrate von 50 Hz. Daher stehen 128
Bits pro Datenblock zur Verfügung.
Von diesen 128 Bits sind 45 Bits zur Vorwärtsfehlerkorrektur reserviert.
Die restlichen 83 Bits pro Datenblock werden verwendet, um die MBE-Modellparameter zu
quantisieren, die aus einer Grundfrequenz ω^0,
einem Satz von V/UV-Entscheidungen v^k für 1 ≤ k ≤ K^ und einem
Satz von Spektralamplituden M^l für 1 ≤ l ≤ L^ bestehen. Die
Werte von K^ und L^ variieren in Abhängigkeit
von der Grundfrequenz jedes Datenblocks. Die 83 verfügbaren Bits
werden unter den Modellparametern aufgeteilt, wie in Tabelle 2 gezeigt.
-
Tabelle
2: Bitzuweisung unter Modellparametern
-
Die
Grundfrequenz wird durch zuerst Umwandeln derselben in ihre äquivalente
Tonhöhenperiode
unter Verwendung von Gleichung (7) quantisiert.
-
-
Der
Wert von P^0 ist typischerweise auf den Bereich
20 ≤ P^0 ≤ 120
eingeschränkt,
wobei eine Abtastrate von 8 kHz angenommen wird. In dem IMBE-System
mit 6,4 kbps wird dieser Parameter unter Verwendung von 8 Bits und
einer Schrittweite von 0,5 gleichmäßig quantisiert. Dies entspricht
einer Tonhöhengenauigkeit
von einem halben Abtastwert.
-
Die K^ V/UV-Entscheidungen
sind binäre
Werte. Daher können
sie unter Verwendung eines einzelnen Bits pro Entscheidung codiert
werden. Das System mit 6,4 kbps verwendet ein Maximum von 12 Entscheidungen
und die Breite jedes Frequenzbandes ist gleich 3 ω^0.
Die Breite des höchsten
Frequenzbandes wird so eingestellt, daß es Frequenzen bis zu 3,8
kHz umfaßt.
-
Die
Spektralamplituden werden durch Bilden eines Satzes von Vorhersageresten
quantisiert. Jeder Vorhersagerest ist die Differenz zwischen dem
Logarithmus der Spektralamplitude für den aktuellen Datenblock
und dem Logarithmus der Spektralamplitude, die dieselbe Frequenz
im vorherigen Sprachdatenblock darstellt. Die Spektralamplituden-Vorhersagereste
werden dann in sechs Blöcke
unterteilt, die jeweils ungefähr dieselbe
Anzahl von Vorhersageresten enthalten. Jeder der sechs Blöcke wird
dann mit einer diskreten Cosinustransformation (DCT) transformiert
und die DC-Koeffizienten von jedem der sechs Blöcke werden zu einem Vorhersagerestblock-Mittelwert-(PRBA)Vektor
mit 6 Elementen kombiniert. Der Mittelwert wird vom PRBA-Vektor
subtrahiert und unter Verwendung eines ungleichmäßigen Quantisierers mit 6 Bits
quantisiert. Der PRBA-Vektor mit Mittelwert Null wird dann unter
Verwendung eines Vektorquantisierers mit 10 Bits vektorquantisiert.
Das PRBA-Codebuch mit 10 Bits wurde unter Verwendung eines Clusteralgorithmus
mit k Mittelwerten an einem großen
Trainingssatz entworfen, der aus PRBA-Vektoren mit Mittelwert Null
aus einer Vielfalt von Sprachmaterial bestand. Die DCT-Koeffizienten
höherer
Ordnung, die nicht im PRBA-Vektor enthalten sind, werden mit skalaren
gleichmäßigen Quantisierern
unter Verwendung der 59 – K^ restlichen
Bits quantisiert. Die Bitzuweisungs- und Quantisiererschrittweiten
basieren auf den Langzeitvarianzen der DCT-Koeffizienten höherer Ordnung.
-
Es
bestehen verschiedene Vorteile für
dieses Quantisierungsverfahren. Erstens stellt es eine sehr gute
Wiedergabetreue unter Verwendung einer kleinen Anzahl von Bits bereit
und es behält
diese Wiedergabetreue bei, wenn L^ über seinen Bereich variiert.
Außerdem
liegen die Rechenanforderungen dieser Methode durchaus innerhalb
der Grenzen, die für
eine Echtzeitimplementierung unter Verwendung eines einzelnen DSP wie
z.B. des AT&T
DSP32C erforderlich sind. Schließlich trennt dieses Quantisierungsverfahren
die Spektralamplituden in einige Komponenten, wie z.B. den Mittelwert
des PRBA-Vektors, die gegen Bitfehler empfindlich sind, und eine
große
Anzahl von anderen Komponenten, die gegen Bitfehler nicht sehr empfindlich
sind. Eine Vorwärtsfehlerkorrektur
kann dann in einer effizienten Weise verwendet werden, indem ein
hoher Grad an Schutz für
die wenigen empfindlichen Komponenten und ein geringerer Grad an
Schutz für
die restlichen Komponenten bereitgestellt wird. Dies wird im nächsten Abschnitt
erörtert.
-
EP-A-0336658
offenbart ein Vektorquantisierungssystem für Sprachcodierung, einschließlich der
Darstellung einer Spektralhüllkurve
mit glatter Amplitude durch die Amplitudenreaktion eines Allpol-
oder Pol-Nullstellen-Modells.
-
Das
Dokument "Adaptive
postfiltering applied to speech in noise" von Robert J Conway et al., 1990 IEEE,
offenbart die Filterung von Sprache, die durch Rauschen verfälscht wird,
um die Verständlichkeit
(anstatt die Qualität)
der Sprache zu verbessern. Die Filterung verwendet ein Pol-Nullstellen-Filter
mit Polen, die bei den Formantenfrequenzen angeordnet sind, und
mit Nullen, die in den Tälern
zwischen den Formanten angeordnet sind, wodurch die Bereiche des
Spektrums, die die für
die Verständlichkeit
am meisten entscheidende Information enthalten, verbessert werden.
-
Gemäß der vorliegenden
Erfindung umfaßt
ein Verfahren zum Verbessern von Sprache das Aufteilen des Sprachsignals
in Segmente, das Bestimmen von Frequenzdomänendarstellungen eines Segments,
um eine Spektralhüllkurve
des Segments bereitzustellen, das Erzeugen einer geglätteten Spektralhüllkurve
des Segments, das Erzeugen einer verbesserten Spektralhüllkurve
durch Vergrößern einiger
Frequenzbereiche der Spektralhüllkurve,
für die
die Spektralhüllkurve
eine größere Amplitude
aufweist als die geglättete,
und das Verkleinern einiger Frequenzbereiche, für die die Spektralhüllkurve
eine geringere Amplitude aufweist als die geglättete Hüllkurve, und das Synthetisieren
von Sprache aus der verbesserten Spektralhüllkurve.
-
Weitere
Merkmale und Vorteile der Erfindung sind aus der folgenden Beschreibung
von bevorzugten Ausführungsbeispielen
und aus den Ansprüchen
ersichtlich.
-
Kurzbeschreibung
der Zeichnungen
-
1–2 sind
Diagramme, die Sprachcodierverfahren des Standes der Technik zeigen.
-
3 ist
ein Ablaufplan, der ein bevorzugtes Ausführungsbeispiel der Erfindung
zeigt, bei dem die Spektralamplituden-Vorhersage jegliche Änderung
der Grundfrequenz berücksichtigt.
-
4 ist
ein Ablaufplan, der ein bevorzugtes Ausführungsbeispiel der Erfindung
zeigt, bei dem die Spektralamplituden in eine feste Anzahl von Blöcken unterteilt
werden.
-
5 ist
ein Ablaufplan, der ein bevorzugtes Ausführungsbeispiel der Erfindung
zeigt, bei dem ein Vorhersagerestblock-Mittelwertvektor gebildet
wird.
-
6 ist
ein Ablaufplan, der ein bevorzugtes Ausführungsbeispiel der Erfindung
zeigt, bei dem der Vorhersagerestblock-Mittelwertvektor vektorquantisiert
wird.
-
7 ist
ein Ablaufplan, der ein bevorzugtes Ausführungsbeispiel der Erfindung
zeigt, bei dem der Vorhersagerestblock-Mittelwertvektor mit einer
DCT und einer Skalarquantisierung quantisiert wird.
-
8 ist
ein Ablaufplan, der ein bevorzugtes Ausführungsbeispiel des erfindungsgemäßen Codierers zeigt,
wobei verschiedene Fehlerkorrekturcodes für verschiedene Modellparameterbits
verwendet werden.
-
9 ist
ein Ablaufplan, der ein bevorzugtes Ausführungsbeispiel des erfindungsgemäßen Decodierers
zeigt, wobei verschiedene Fehlerkorrekturcodes für verschiedene Modellparameterbits
verwendet werden.
-
10 ist
ein Ablaufplan, der ein bevorzugtes Ausführungsbeispiel der Erfindung
zeigt, wobei eine Verbesserung der Frequenzdomänen-Spektralhüllkurvenparameter dargestellt
ist.
-
Beschreibung
der bevorzugten Ausführungsbeispiele
der Erfindung
-
Im
Stand der Technik wurden die Spektralamplituden-Vorhersagereste
unter Verwendung von Gleichung (2) gebildet. Dieses Verfahren berücksichtigt
keine Veränderung
der Grundfrequenz zwischen dem vorherigen Segment und dem aktuellen
Segment. Um die Änderung
der Grundfrequenz zu berücksichtigen,
wurde ein neues Verfahren entwickelt, das zunächst die Spektralamplituden
des vorherigen Segments interpoliert. Dies wird typischerweise unter
Verwendung einer linearen Interpolation durchgeführt, es könnten jedoch auch verschiedene
andere Interpolationsformen verwendet werden. Dann werden die interpolierten
Spektralamplituden des vorherigen Segments bei den Frequenzpunkten,
die den Vielfachen der Grundfrequenz des aktuellen Segments entsprechen,
erneut abgetastet. Diese Kombination einer Interpolation und erneuten
Abtastung erzeugt einen Satz von vorhergesagten Spektralamplituden,
die hinsichtlich jeglicher Änderung
der Grundfrequenz zwischen den Segmenten korrigiert wurden.
-
Typischerweise
wird ein Bruchteil des Logarithmus mit der Basis Zwei der vorhergesagten
Spektralamplituden von dem Logarithmus mit der Basis Zwei der Spektralamplituden
des aktuellen Segments subtrahiert. Wenn eine lineare Interpolation
verwendet wird, um die vorhergesagten Spektralamplituden zu berechnen,
dann kann dies mathematisch ausgedrückt werden als:
wobei δ
l durch
gegeben ist, wobei γ eine Konstante
ist, die 0 ≤ γ ≤ 1 unterliegt.
Typischerweise gilt γ =
0,7, es können
jedoch auch andere Werte für γ verwendet
werden. Beispielsweise könnte γ von Segment
zu Segment adaptiv verändert
werden, um die Leistung zu verbessern. Die Parameter ω^ 0 / 0 und ω^ –1 / 0 in Gleichung
(9) beziehen sich auf die Grundfrequenz des aktuellen Segments bzw.
des vorherigen Segments. In dem Fall, in dem die zwei Grundfrequenzen
gleich sind, ist das neue Verfahren identisch zum alten Verfahren.
In anderen Fällen
erzeugt das neue Verfahren einen Vorhersagerest mit niedrigerer
Varianz als das alte Verfahren. Dies ermöglicht, daß die Vorhersagereste für eine gegebene
Anzahl von Bits mit einer geringeren Verzerrung quantisiert werden.
-
In
einem weiteren Aspekt der Erfindung wurde ein neues Verfahren entwickelt,
um die Spektralamplituden-Vorhersagereste in Blöcke aufzuteilen. Bei dem alten
Verfahren wurden die L^ Vorhersagereste aus dem aktuellen Segment
in Blöcke
von K Elementen aufgeteilt, wobei K = 8 ein typischer Wert ist.
Unter Verwendung dieses Verfahrens wurde festgestellt, daß die Eigenschaften
jedes Blocks für
große
und kleine Werte von L^ signifikant unterschiedlich sind. Dies verringerte
die Quantisierungseffizienz, wodurch die Verzerrung der Spektralamplituden
erhöht
wurde. Um die Eigenschaften jedes Blocks gleichmäßiger zu machen, wurde ein neues
Verfahren ausgedacht, das die L^ Vorhersagereste in eine feste Anzahl
von Blöcken
aufteilt. Die Länge jedes
Blocks wird derart gewählt,
daß alle
Blöcke
innerhalb eines Segments nahezu dieselbe Länge aufweisen und die Summe
der Längen
aller Blöcke
innerhalb eines Segments gleich L^ ist. Typischerweise wird die Gesamtzahl
der Vorhersagereste in 6 Blöcke
aufgeteilt, wobei die Länge
jedes Blocks gleich
ist. Wenn L^ nicht gleichmäßig durch
6 teilbar ist, dann wird die Länge
von einem oder mehreren Blöcken
mit höherer
Frequenz um Eins erhöht,
so daß alle
Spektralamplituden in einem der sechs Blöcke enthalten sind. Dieses
neue Verfahren ist in
4 für den Fall gezeigt, in dem
6 Blöcke
verwendet werden und L^ = 34. Bei diesem neuen Verfahren ist der ungefähre Prozentsatz
der in jedem Block enthaltenen Vorhersagereste von L^ unabhängig. Dies
verringert die Variation der Eigenschaften jedes Blocks und es ermöglicht eine
effizientere Quantisierung der Vorhersagereste.
-
Die
Quantisierung der Vorhersagereste kann durch Bilden eines Vorhersagerestblock-Mittelwert-(PRBA)Vektors
weiter verbessert werden. Die Länge
des PRBA-Vektors ist gleich der Anzahl von Blöcken im aktuellen Segment.
Die Elemente dieses Vektors entsprechen dem Mittelwert der Vorhersagereste
innerhalb jedes Blocks. Da der erste DCT-Koeffizient gleich dem
Mittelwert (oder DC-Wert) ist, kann der PRBA-Vektor aus dem ersten
DCT-Koeffizienten
aus jedem Block gebildet werden. Dies ist in 5 für den Fall
gezeigt, in dem 6 Blöcke
im aktuellen Segment vorliegen und L^ = 34 ist. Dieser Prozeß kann durch
Bilden von zusätzlichen
Vektoren aus dem zweiten (oder dritten, vierten usw.) DCT-Koeffizienten
aus jedem Block verallgemeinert werden.
-
Die
Elemente des PRBA-Vektors sind stark korreliert. Daher kann eine
Anzahl von Verfahren verwendet werden, um die Quantisierung der
Spektralamplituden zu verbessern. Ein Verfahren, das verwendet werden
kann, um eine sehr geringe Verzerrung mit einer kleinen Anzahl von
Bits zu erzielen, ist die Vektorquantisierung. Bei diesem Verfahren
wird ein Codebuch konstruiert, das eine Anzahl von typischen PRBA-Vektoren enthält. Der
PRBA-Vektor aus dem aktuellen Segment wird mit jedem der Codebuch-Vektoren
verglichen, und derjenige mit dem geringsten Fehler wird als quantisierter
PRBA-Vektor gewählt.
Der Codebuchindex des gewählten
Vektors wird verwendet, um die binäre Darstellung des PRBA-Vektors
zu bilden. Es wurde ein Verfahren zur Durchführung der Vektorquantisierung
des PRBA-Vektors entwickelt, das die Reihe eines ungleichmäßigen Quantisierers
mit 6 Bits für
den Mittelwert des Vektors und einen Vektorquantisierer mit 10 Bits
für die restliche
Information verwendet. Dieses Verfahren ist in 6 für den Fall
gezeigt, in dem der PRBA-Vektor immer
6 Elemente enthält.
Typische Werte für
die Quantisierer mit 6 Bits und 10 Bits sind im beigefügten Anhang
angegeben.
-
Ein
alternatives Verfahren zur Quantisierung des PRBA-Vektors wurde
ebenfalls entwickelt. Dieses Verfahren erfordert weniger Berechnung
und Speicherung als das Verfahren der Vektorquantisierung. Bei diesem
Verfahren wird der PRBA-Vektor
zuerst mit einer DCT, wie in Gleichung (3) definiert, transformiert.
Die Länge
der DCT ist gleich der Anzahl von Elementen im PRBA-Vektor. Die
DCT-Koeffizienten
werden dann in einer Weise ähnlich
der im Stand der Technik erörterten
quantisiert. Zuerst wird eine Bitzuweisungsregel verwendet, um die
Gesamtzahl der zur Quantisierung des PRBA-Vektors verwendeten Bits
unter den DCT-Koeffizienten zu verteilen. Eine Skalarquantisierung
(entweder gleichmäßig oder
ungleichmäßig) wird
dann verwendet, um jeden DCT-Koeffizienten unter Verwendung der
durch die Bitzuweisungsregel festgelegten Anzahl an Bits zu quantisieren.
Dies ist in 7 für den Fall gezeigt, in dem
der PRBA-Vektor immer 6 Elemente enthält.
-
Verschiedene
andere Verfahren können
verwendet werden, um den PRBA-Vektor effizient zu quantisieren.
Beispielsweise könnten
andere Transformationen, wie z.B. die diskrete Fouriertransformation,
die schnelle Fouriertransformation, die Karhunen-Louve-Transformation,
anstelle der DCT verwendet werden. Außerdem kann die Vektorquantisierung
mit der DCT oder einer anderen Transformation kombiniert werden.
Die aus diesem Aspekt der Erfindung gewonnenen Verbesserungen können mit
einer breiten Vielfalt von Quantisierungsverfahren verwendet werden.
-
In
einem weiteren Aspekt wurde ein neues Verfahren zum Verringern der
wahrnehmbaren Wirkung von Bitfehlern entwickelt. Fehlerkorrekturcodes
werden wie im Stand der Technik verwendet, um seltene Bitfehler
zu korrigieren und eine Abschätzung
der Fehlerrate εR vorzusehen. Das neue Verfahren verwendet
die Abschätzung
der Fehlerrate, um die Entscheidungen stimmhaft/stimmlos zu glätten, um
die wahrgenommene Wirkung von irgendwelchen restlichen Bitfehlern zu
verringern. Dies wird durch zunächst
Vergleichen der Fehlerrate mit einer Schwelle, welche die Rate bedeutet,
bei der die Verzerrung von unkorrekten Bitfehlern in den Entscheidungen
stimmhaft/stimmlos signifikant ist, durchgeführt. Der exakte Wert dieser
Schwelle hängt
von der Menge an Fehlerkorrektur ab, die auf die Entscheidungen
stimmhaft/stimmlos angewendet wird, aber ein Schwellenwert von 0,003
ist typisch, wenn wenig Fehlerkorrektur angewendet wurde. Wenn die
abgeschätzte Fehlerrate εR unter
dieser Schwelle liegt, dann werden die Entscheidungen stimmhaft/stimmlos
nicht gestört. Wenn εR über dieser
Schwelle liegt, dann wird jede Spektralamplitude, für die die
Gleichung (10) erfüllt
ist, als stimmhaft deklariert.
-
-
Obwohl
Gleichung (10) einen Schwellenwert von 0,003 annimmt, kann dieses
Verfahren leicht modifiziert werden, um andere Schwellenwerte anzunehmen.
Der Parameter S
E ist ein Maß für die lokale
mittlere Energie, die in den Spektralamplituden enthalten ist. Dieser
Parameter wird typischerweise bei jedem Segment gemäß:
aktualisiert,
wobei R
0 durch
gegeben ist.
-
Der
Anfangswert von SE wird auf einen willkürlichen
Anfangswert im Bereich von 0 ≤ SE ≤ 10000,0
gesetzt. Der Zweck dieses Parameters besteht darin, die Abhängigkeit
von Gleichung (10) vom mittleren Signalpegel zu verringern. Dies
gewährleistet,
daß das
neue Verfahren für
Signale mit niedrigem Pegel ebenso gut funktioniert wie für Signale
mit hohem Pegel.
-
Die
speziellen Formen der Gleichungen (10), (11) und (12) und die innerhalb
von diesen enthaltenen Konstanten können leicht modifiziert werden,
während
die wesentlichen Bestandteile des neuen Verfahrens beibehalten werden.
Die Hauptbestandteile dieses neuen Verfahrens sind zunächst die
Verwendung einer Abschätzung
der Fehlerrate, um festzustellen, ob die Entscheidungen stimmhaft/stimmlos
geglättet
werden müssen.
Wenn eine Glättung
erforderlich ist, werden die Entscheidungen stimmhaft/stimmlos gestört, so daß alle Spektralamplituden
mit hoher Energie als stimmhaft deklariert werden. Dies beseitigt
jegliche hochenergetischen Übergänge von
stimmhaft zu stimmlos oder stimmlos zu stimmhaft zwischen den Segmenten,
und es verbessert folglich die wahrgenommene Qualität der rekonstruierten
Sprache in Gegenwart von Bitfehlern.
-
In
unserer Erfindung teilen wir die quantisierten Sprachmodellparameterbits
gemäß ihrer
Empfindlichkeit gegen Bitfehler in drei oder mehr verschiedene Gruppen
auf und dann verwenden wir verschiedene Fehlerkorrektur- oder -erkennungscodes
für jede
Gruppe. Typischerweise wird die Gruppe von Datenbits, die als am
empfindlichsten gegen Bitfehler bestimmt wird, unter Verwendung
von sehr wirksamen Fehlerkorrekturcodes geschützt. Weniger wirksame Fehlerkorrektur-
oder -erkennungscodes, die weniger zusätzliche Bits erfordern, werden
verwendet, um die weniger empfindlichen Datenbits zu schützen. Dieses
neue Verfahren ermöglicht,
daß die
Menge an Fehlerkorrektur oder -erkennung, die jeder Gruppe gegeben
wird, auf ihre Empfindlichkeit gegen Bitfehler abgestimmt wird.
Verglichen mit dem Stand der Technik besitzt dieses Verfahren den
Vorteil, daß die
durch Bitfehler verursachte Verschlechterung verringert wird und
die Anzahl der für
eine Vorwärtsfehlerkorrektur
erforderlichen Bits ebenfalls verringert wird.
-
Die
spezielle Wahl der Fehlerkorrektur- oder -erkennungscodes, die verwendet
wird, hängt
von der Bitfehlerstatistik des Übertragungs-
oder Speichermediums und der gewünschten
Bitrate ab. Die empfindlichste Gruppe von Bits wird typischerweise
mit einem wirksamen Fehlerkorrekturcode, wie z.B. einem Hamming-Code,
einem BCH-Code, einem Golay-Code oder einem Reed-Solomon-Code, geschützt. Weniger empfindliche Gruppen
von Datenbits können
diese Codes oder einen Fehlererkennungscode verwenden. Schließlich können die
am wenigsten empfindlichen Gruppen Fehlerkorrektur- oder -erkennungscodes
verwenden oder sie können
keine Form einer Fehlerkorrektur oder -erkennung verwenden. Die
Erfindung wird hierin unter Verwendung einer speziellen Wahl von
Fehlerkorrektur und -erkennungscodes beschrieben, die sich für einen
IMBE-Sprachcodierer für
Satellitenübertragungen
mit 6,4 kbps gut eignete.
-
Bei
dem IMBE-Sprachcodierer mit 6,4 kbps, der für das INMARSAT-M-Satellitenkommunikationssystem
normiert wurde, werden die 45 Bits pro Datenblock, die für eine Vorwärtsfehlerkorrektur
reserviert sind, unter [23,12]-Golay-Codes,
welche bis zu 3 Fehler korrigieren können, [15,11]-Hamming-Codes, die einzelne Fehler
und Paritätsbits
korrigieren können,
aufgeteilt. Die sechs höchstwertigen
Bits von der Grundfrequenz und die drei höchstwertigen Bits vom Mittelwert
des PRBA-Vektors werden zuerst mit drei Paritätskontrollbits kombiniert und
dann in einem [23,12]-Golay-Code codiert. Ein zweiter Golay-Code
wird verwendet, um die drei höchstwertigen
Bis von dem PRBA-Vektor und die neun empfindlichsten Bits von den
DCT-Koeffizienten höherer
Ordnung zu codieren. Alle restlichen Bits außer den sieben am wenigsten
empfindlichen Bits werden dann in fünf [15,11]-Hamming-Codes codiert.
Die sieben niedrigstwertigen Bits werden nicht mit Fehlerkorrekturcodes
geschützt.
-
Vor
der Übertragung
werden die 128 Bits, die ein spezielles Sprachsegment darstellen,
derart verschachtelt, daß mindestens
fünf Bits
irgendwelche zwei Bits von demselben Codewort trennen. Dieses Merkmal
verteilt die Wirkung von Kurzbündelfehlern über mehrere
verschiedene Codeworte, wodurch die Wahrscheinlichkeit, daß die Fehler
korrigiert werden können,
erhöht
wird.
-
Am
Decodierer werden die empfangenen Bits durch Golay- und Hamming-Decodierer geleitet,
die versuchen, jegliche Bitfehler aus den Datenbits zu entfernen.
Die drei Paritätskontrollbits
werden geprüft,
und wenn keine unkorrigierbaren Bitfehler erkannt werden, dann werden
die empfangenen Bits verwendet, um die MBE-Modellparameter für den aktuellen
Datenblock zu rekonstruieren. Ansonsten, wenn ein unkorrigierbarer Bitfehler
erkannt wird, dann werden die empfangenen Bits für den aktuellen Datenblock
ignoriert und die Modellparameter aus dem vorherigen Datenblock
werden für
den aktuellen Datenblock wiederholt.
-
Es
wurde festgestellt, daß die
Verwendung von Datenblockwiederholungen die wahrnehmbare Qualität der Sprache
verbessert, wenn Bitfehler vorliegen. Die Erfindung untersucht jeden
Datenblock von empfangenen Bits und stellt fest, ob der aktuelle
Datenblock wahrscheinlich eine große Anzahl von unkorrigierbaren Bitfehlern
enthält.
Ein Verfahren, das zur Erkennung von unkorrigierbaren Bitfehlern
verwendet wird, besteht darin, zusätzliche Paritätsbits zu
prüfen,
die in die Daten eingefügt
werden. Die Erfindung stellt auch fest, ob ein großes Bündel von
Bitfehlern angetroffen wurde, durch Vergleichen der Anzahl von korrigierbaren
Bitfehlern mit der lokalen Abschätzung
der Fehlerrate. Wenn die Anzahl von korrigierbaren Bitfehlern wesentlich
größer ist
als die lokale Abschätzung
der Fehlerrate, dann wird eine Datenblockwiederholung durchgeführt. Außerdem prüft die Erfindung
jeden Datenblock auf ungültige
Bitsequenzen (d.h. Gruppen von Bits, die der Codierer niemals überträgt). Wenn
eine ungültige
Bitsequenz erkannt wird, wird eine Datenblockwiederholung durchgeführt.
-
Die
Golay- und Hamming-Decodierer stellen auch eine Information über die
Anzahl der korrigierbaren Bitfehler in den Daten bereit. Diese Information
wird vom Decodierer verwendet, um die Bitfehlerrate abzuschätzen. Die
Abschätzung
der Bitfehlerrate wird verwendet, um adaptive Glättungsvorrichtungen zu steuern, die
die wahrgenommene Sprachqualität
in Gegenwart von unkorrigierbaren Bitfehlern erhöhen. Außerdem kann die Abschätzung der
Fehlerrate zur Durchführung
von Datenblockwiederholungen in schlechten Fehlerumgebungen verwendet
werden.
-
Dieser
Aspekt der Erfindung kann mit einer Weichentscheidungscodierung
verwendet werden, um die Leistung weiter zu verbessern. Die Weichentscheidungsdecodierung
verwendet eine zusätzliche
Information über
die Wahrscheinlichkeit für
jedes Bit, daß es
fehlerhaft ist, um die Fehlerkorrektur- und -erkennungsfähigkeiten
von vielen verschiedenen Codes zu verbessern. Da diese zusätzliche
Information häufig
von einem Demodulator in einem digitalen Übertragungssystem erhältlich ist,
kann sie eine verbesserte Unempfindlichkeit für Bitfehler bereitstellen,
ohne zusätzliche
Bits zum Fehlerschutz zu erfordern.
-
Die
Erfindung verwendet ein neues Verfahren zur Frequenzdomänenparameter-Verbesserung, das die
Qualität
der synthetisierten Sprache verbessert. Die Erfindung findet zunächst die
wahrnehmbar wichtigen Bereiche des Sprachspektrums auf. Die Erfindung
erhöht
dann die Amplitude der wahrnehmbar wichtigen Frequenzbereiche relativ
zu anderen Frequenzbereichen. Das bevorzugte Verfahren zur Durchführung der
Frequenzdomänenparameter-Verbesserung besteht
darin, die Spektralhüllkurve
zu glätten,
um die allgemeine Form des Spektrums abzuschätzen. Das Spektrum kann durch
Anpassen eines Modells niedriger Ordnung, wie z.B. eines Allpolmodells,
eines Cepstral-Modells oder eines Polynommodells, an die Spektralhüllkurve
geglättet
werden. Die geglättete
Spektralhüllkurve
wird dann mit der ungeglätteten
Spektralhüllkurve
verglichen und wahrnehmbar wichtige Spektralbereiche werden als
Bereiche identifiziert, in denen die ungeglättete Spektralhüllkurve
eine größere Energie
aufweist als die geglättete
Spektralhüllkurve.
Ebenso werden Bereiche, in denen die ungeglättete Spektralhüllkurve
weniger Energie aufweist als die geglättete Spektralhüllkurve,
als wahrnehmbar weniger wichtig identifiziert. Die Parameterverbesserung
wird durch Erhöhen
der Amplitude von wahrnehmbar wichtigen Frequenzbereichen und Senken
der Amplitude von wahrnehmbar weniger wichtigen Frequenzbereichen
durchgeführt.
Dieses neue Verbesserungsverfahren erhöht die Sprachqualität durch
Beseitigen oder Verringern von vielen der Artefakte, die während der
Abschätzung
und Quantisierung der Sprachparameter eingeführt werden. Außerdem verbessert
dieses neue Verfahren die Sprachverständlichkeit durch Schärfen der
wahrnehmbar wichtigen Sprachformanten.
-
Beim
IMBE-Sprachdecodierer wird ein Allpolmodell erster Ordnung für jeden
Datenblock an die Spektralhüllkurve
angepaßt.
Dies wird durch Abschätzen
der Korrelationsparameter R
0 und R
1 aus den decodierten Modellparametern gemäß den folgenden
Gleichungen durchgeführt,
wobei M ^
l für 1 ≤ l ≤ L ^ die decodierten
Spektralamplituden für
den aktuellen Datenblock sind und ω ^
0 die
decodierte Grundfrequenz für
den aktuellen Datenblock ist. Die Korrelationsparameter R
0 und R
1 können zur
Abschätzung
eines Allpolmodells erster Ordnung verwendet werden. Dieses Modell
wird bei den Frequenzen ausgewertet, die den Spektralamplituden
für den
aktuellen Datenblock entsprechen (d.h. k·ω ^
0 für 1 ≤ l ≤ L ^), und zur
Erzeugung eines Satzes von Gewichten W
l gemäß der folgenden
Formel verwendet.
-
-
Diese
Gewichte geben das Verhältnis
des geglätteten
Allpolspektrums zu den IMBE-Spektralamplituden an. Sie werden dann
verwendet, um das Ausmaß der
Parameterverbesserung, die auf jede Spektralamplitude angewendet
wird, individuell zu steuern. Diese Beziehung wird in der folgenden
Gleichung ausgedrückt,
wobei
M l für 1 ≤ l ≤ L ^ die verbesserten
Spektralamplituden für
den aktuellen Datenblock sind.
-
Die
verbesserten Spektralamplituden werden dann zur Durchführung der
Sprachsynthese verwendet. Die Verwendung der verbesserten Modellparameter
verbessert die Sprachqualität
relativ zur Synthese aus den nicht verbesserten Modellparametern.