-
Die vorliegende Erfindung bezieht sich auf einen Anregungs-Vektor-Generator und ein
Verfahren, geeignet zum Erhalten einer hoch qualitativen, synthetisierten Sprache, die in
einem Sprachcodec verwendet wird.
-
Die EP-A-680 032 offenbart ein Verfahren zur Quantisierung von Eingangs-Vektoren mit
einer Umanordnung von Vektor-Elementen eines Kandidaten-Vektors.
-
Ein Sprachcodierer vom CELP-Typ (Code Exited Linear Prediction) führt eine lineare
Vorhersage für jeden Rahmen, erhalten durch Segmentieren einer Sprache zu einem
gegebenen Zeitpunkt, und für Code vorhersagende Restbestandteile (Anregungs-Signale), die
von einer linearen Vorhersage Rahmen für Rahmen resultieren, unter Verwendung eines
adaptiven Codebuchs, das alte Anregungs-Vektoren besitzt, die darin gespeichert sind,
und eines Zufalls-Codebuchs, das eine Vielzahl von Zufalls-Code-Vektoren, die darin
gespeichert sind, besitzt, aus. Zum Beispiel offenbart "Code-Exited Linear Prediction (CELP):
High-Quality Speech at Very Low Bit Rate", M. R. Schroeder, Proc. ICASSP' 85, Seiten
937-940, einen Sprachcodierer vom CELP-Typ.
-
Fig. 1 stellt die schematische Struktur eines Sprach-Codierers vom CELP-Typ dar. Der
Sprachcodierer vom CELP-Typ separiert vokale Informationen in Anregungs-
Informationen und vokale Traktat-Informationen und codiert sie. In Bezug auf die vokalen
Traktat-Informationen wird ein Eingangs-Sprachsignal 10 zu einem Filter-Koeffizienten-
Analyseabschnitt 11 für eine lineare Vorhersage eingegeben, und lineare Vorhersage-
Koeffizienten (linear predictive coeficients - LPCs) werden durch einen Filter-Koeffizienten
Quantisierungs-Abschnitt 12 codiert. Ein Zuführen der linearen Vorhersage-Koeffizienten
zu einem Synthese-Filter 13 ermöglicht, daß Vokal-Traktat-Informationen zu Anregungs-
Informationen in dem Synthesefilter 13 hinzugefügt werden. In Bezug auf die Anregungs-
Informationen wird eine Anregungs-Vektor-Suche in einem adaptiven Codebuch 14 und
einem Random-Codebuch 15 für jedes Segment, erhalten durch weiteres Segmentieren
eines Rahmens (bezeichnet als Unterrahmen), ausgeführt. Die Suche in dem adaptiven
Codebuch 14 und die Suche in dem Random-Codebuch 15 sind Prozesse zur
Bestimmung der Code-Nummer und -Verstärkung (Pitch-Verstärkung) eines adaptiven Code-
Vektors, was eine Codierverzerrung in einer Gleichung 1 minimiert, und die Code-Nummer
und -Verstärkung (Random-Code-Verstärkung) eines Random-Code-Vektors verarbeitet.
-
ν - (gaHp + gcHc) ² (1)
-
ν: Sprachsignal (Vektor)
-
H: Impuls-Ansprech-Convolutions-Matrix des
-
Synthesefilter,
-
wobei
-
h: Impuls-Ansprechen (Vektor) des Synthese-Filters.
-
L: Rahmenlänge
-
p: adaptiver Code-Vektor
-
c: Random-Code-Vektor
-
ga: adaptive Code-Verstärkung (Pitch-Verstärkung)
-
gc: Random-Code-Verstärkung
-
Da eine Suche in Form einer geschlossenen Schleife den Code, der die Gleichung 1
minimiert, einen großen Berechnungsumfang für die Code-Suche allerdings umfaßt, führt ein
Sprach-Codierer vom gewöhnlichen CELP-Typ zuerst eine adaptive Codebuch-Suche
durch, um die Code-Nummer eines adaptiven Code-Sektors zu spezifizieren, und führt
dann eine Random-Codebuch-Suche basierend auf dem gesuchten Ergebnis durch, um
die Code-Nummer eines Random-Code-Vektors zu spezifizieren.
-
Die Sprach-Codierer-Suche durch den Sprach-Codierer vom CELP-Typ wird nun unter
Bezugnahme auf die Fig. 2A bis 2C beschrieben. In den Figuren ist ein Code x ein Ziel
bzw. Target-Vektor für die Random-Codebuch-Suche, erhalten durch eine Gleichung 2. Es
wird angenommen, daß die adaptive Codebuch-Suche bereits durchgeführt worden ist.
-
x = v - gaHp (2)
-
wobei
-
x: Target (Vektor) für die Random-Codebuch-Suche
-
v: Sprachsignal (Vektor)
-
H: Impuls-Ansprech-Convolutions-Matrix H des Synthese-Filters
-
p: adaptiver Code-Vektor
-
ga: adaptive Code-Verstärkung (pitch Verstärkung)
-
Die Random-Codebuch-Suche ist ein Prozeß eines Spezifizierens eines Random-Code-
Vektors c, der eine Codier-Verzerrung minimiert, die durch eine Gleichung 3 in einem
Verzerrungs-Kalkulator 16, wie in Fig. 2A dargestellt ist, definiert ist.
-
x - gcHc 2 (3)
-
wobei
-
x: für die Random-Codebuch-Suche
-
H: Impuls-Ansprech-Convolutions-Matrix des Synthese-Filters
-
c: Random-Code-Vektor
-
gc: Random-Code-Verstärkung
-
Der Verzerrungs-Kalkulator 16 steuert einen Steuerschalter 21, um einen Random-Code-
Vektor, der von dem Random-Codebuch 15 gelesen werden soll, bis der Random-Code-
Vektor c spezifiziert ist, umzuschalten.
-
Ein tatsächlicher Sprach-Codierer vom CELP-Typ besitzt eine Struktur entsprechend Fig.
2B, um die berechnungsmäßigen Komplexitäten zu reduzieren, und ein Verzerrungs-
Kalkulator 16' führt einen Prozeß eines Spezifizierens einer Code-Nummer aus, die eine
Verzerrungsmeldung in einer Gleichung 4 spezifiziert.
-
wobei
-
x: Target (Vektor) für die Random-Codebuch-Suche
-
H: Impuls-Ansprech-Convolutions-Matrix des Synthese-Filters
-
Ht: transponierte Matrix von H
-
Xt: Zeit-Umkehr-Synthese von x unter Verwendung von H (x't = xtH)
-
c: Random-Code-Vektor.
-
Insbesondere ist der Random-Codebuch-Steuerschalter 21 mit einem Anschluß des
Random-Codebuchs 15 verbunden und der Random-Code-Vektor c wird von einer Adresse
entsprechend zu diesem Anschluß gelesen. Der gelesene Random-Code-Vektor c wird mit
Vokal-Traktat-Informationen durch den Synthese-Filter 13 synthtetisiert, was einen
synthetisierten Vektor Hc erzeugt. Dann berechnet der Verzerrungs-Kalkulator 16' eine
Verzerrungs-Messung in der Gleichung 4 unter Verwendung eines Vektors x', erhalten durch
einen Zeitumkehr-Prozeß eines Targets x, wobei sich der Vektor Hc aus einer Synthese
des Random-Code-Vektors in dem Synthese-Filter und dem Random-Code-Vektor c
ergibt. Wenn der Random-Codebuch-Steuerschalter 21 umgeschaltet ist, wird eine
Berechnung der Verzerrungs-Messung für jeden Random-Code-Vektor in dem Random-
Codebuch durchgeführt.
-
Abschließend wird die Zahl des Random-Codebuch-Steuerschalters 21, der verbunden
worden ist, als die Verzerrungs-Messung in der Gleichung 4 maximal wurde, zu einem
Code-Ausgabe-Abschnitt 17 als die Code-Nummer des Random-Code-Vektors geschickt.
Fig. 2C stellt eine Teilstruktur eines Sprach-Decodierers dar. Die Umschaltung des
Random-Codebuch-Steuerschalters 21 wird in einer solchen Art und Weise gesteuert, um den
Random-Code-Vektor auszulesen, der eine übermittelte Code-Nummer besaß. Nachdem
eine übertragene Random-Code-Verstärkung gc und ein Filter-Koeffizient in einem
Verstärker 23 und einem Synthese-Filter 24 eingestellt sind, wird ein Random-Code-Vektor
ausgelesen, um eine synthetisierte Sprache zurückzuspeichern.
-
In dem vorstehend beschriebenen Sprach-Codierer/Sprach-Decodierer ist es, desto
größer die Anzahl von Random-Code-Vektoren, gespeichert als Anregungs-Information in
dem Random-Codebuch 15, ist, desto mehr möglich, einen Random-Code-Vektor nahe zu
dem Anregungs-Vektor einer tatsächlichen Sprache zu suchen. Wenn die Kapazität des
Random-Codebuchs (ROM) begrenzt ist, ist es allerdings nicht möglich, unzählige
Random-Code-Vektoren entsprechend zu allen Anregungs-Vektoren in dem Random-
Codebuch zu speichern. Dies beschränkt eine Verbesserung in Bezug auf die Qualität von
Sprachen.
-
Auch ist eine algebraische Anregung vorgeschlagen worden, die wesentlich die
berechnungsmäßigen Komplexitäten einer Codier-Verzerrung in einem Verzerrungs-Kalkulator
reduzieren kann und ein Random-Codebuch (ROM) elimieren kann (beschrieben in "8
KBIT/S ACELP CODLNG OF SPEECH WITH 10 MS SPEECH-FRAME: A CANDIDATE
FOR CCITT STANDARDIZATION": R. Salami, C. Laflamme, j-P. Adoul. ICASSP '94,
Seiten II-97 bis II-100, 1994).
-
Die algebraische Anregung reduziert beträchtlich die Komplexitäten einer Berechnung
einer Codier-Verzerrung durch vorheriges Berechnen der Ergebnisse einer Konvolution des
Impuls-Anprechverhaltens eines Synthese-Filters und eines Zeit umgekehrten Targets und
die Autokorrelation des Synthese-Filters und Entwickeln davon in einem Speicher.
Weiterhin wird ein ROM, in dem Random-Code-Vektoren gespeichert worden sind, durch
algebraisches Erzeugen von Random-Code-Vektoren eliminiert. Ein CS-ACELP und ACELP,
die die algebraische Anregung verwenden, sind jeweils als G. 729 und G. 723.1 von dem
ITU-T empfohlen worden.
-
In dem Sprach-Codierer/Sprach-Decodierer vom CELP-Typ, ausgestattet mit der
vorstehend beschriebenen, algebraischen Anregung, in einem Random-Codebuch-Abschnitt,
wird allerdings ein Target für eine Random-Codebuch-Suche immer mit einem Impuls-
Sequenz-Vektor codiert, was der Verbesserung in Bezug auf eine Sprach-Qualität eine
Grenze auferlegt.
-
Es ist die Aufgabe der vorliegenden Erfindung, einen Anregungs-Vektor-Generator und ein
entsprechendes Verfahren zu schaffen, die ermöglichen, daß ein Anregungs-Vektor nahe
zu einer tatsächlichen Sprache erzeugt wird, und die die Sprach-Qualität verbessern
können.
-
Diese Aufgabe wird durch die Gegenstände der Ansprüche 1 und 11 jeweils gelöst.
Kurze Beschreibung der Zeichnungen
-
Fig. 1 zeigt ein schematisches Diagramm eines herkömmlichen Sprach-Codierers vom
CELP-Typ;
-
Fig. 2A zeigt ein Blockdiagramm eines Anregungs-Vektor-Erzeugungs-Abschnitts in dem
Sprach-Codierer in Fig. 1;
-
Fig. 2B zeigt ein Blockdiagramm einer Modifikation des Anregungs-Vektor-Erzeugungs-
Abschnitts, der so ausgelegt ist, um die Berechnungskosten zu reduzieren;
-
Fig. 2C zeigt ein Blockdiagramm eines Anregungs-Vektor-Erzeugungs-Abschnitts in einem
Sprach-Decodierer, der als ein Paar mit dem Sprach-Codierer in Fig. 1 verwendet wird;
-
Fig. 3 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers gemäß
einem ersten Mode;
-
Fig. 4 zeigt ein Blockdiagramm eines Anregungs-Vektor-Generators, eingesetzt in dem
Sprach-Codierer gemäß dem ersten Mode;
-
Fig. 5 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers gemäß
einem zweiten Mode;
-
Fig. 6 zeigt ein Blockdiagramm eines Anregungs-Vektor-Generators, eingesetzt in dem
Sprach-Codierer gemäß dem zweiten Mode;
-
Fig. 7 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers gemäß
einem dritten und einem vierten Mode;
-
Fig. 8 zeigt ein Blockdiagramm eines Anregungs-Vektor-Generators, eingesetzt in dem
Sprach-Codierer gemäß dem dritten Mode;
-
Fig. 9 zeigt ein Blockdiagramm eines nicht-linearen, digitalen Filters, eingesetzt in dem
Sprach-Codierer gemäß dem vierten Mode;
-
Fig. 10 zeigt ein Diagramm der Addierer-Charakteristik des nicht-linearen, digitalen Filters,
dargestellt in Fig. 9;
-
Fig. 11 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gemäß einem fünften Mode;
-
Fig. 12 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gemäß einem sechsten Mode;
-
Fig. 13A zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gemäß einem siebten Mode;
-
Fig. 13B zeigt ein Blockdiagramm der wesentlichen Bereiche des Sprach-Codierers
gemäß dem siebten Mode;
-
Fig. 14 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Decodierers
gemäß einem achten Mode;
-
Fig. 15 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gemäß einem neunten Mode;
-
Fig. 16 zeigt ein Blockdiagramm eines ein Quantisierungs-Target-LSP hinzufügenden
Abschnitts, eingesetzt in dem Sprach-Codierer gemäß dem neunten Mode;
-
Fig. 17 zeigt ein Blockdiagramm eines LSP-Quantisierungs/Decodierungs-Abschnitts,
eingesetzt in dem Sprach-Codierer gemäß dem neunten Mode;
-
Fig. 18 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gemäß einem zehnten Mode;
-
Fig. 19A zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gemäß einem elften Mode;
-
Fig. 19B zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Decodierers
gemäß dem elften Mode;
-
Fig. 20 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gerüäß einem zwölften Mode;
-
Fig. 21 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gemäß einem dreizehnten Mode;
-
Fig. 22 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gemäß einem vierzehnten Mode;
-
Fig. 23 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gemäß einem fünfzehnten Mode;
-
Fig. 24 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gemäß einem sechzehnten Mode;
-
Fig. 25 zeigt ein Blockdiagramm eines Vektor-Quantisierungs-Abschnitts in einem
sechzehnten Mode;
-
Fig. 26 zeigt ein Blockdiagramm eines Parameter-Codier-Abschnitts eines Sprach-
Codierers gemäß einem siebzehnten Mode; und
-
Fig. 27 zeigt ein Blockdiagramm einer Rausch-Aufhebungs-Einrichtung gemäß einem
achtzehnten Mode.
Beste Moden zum Ausführen der Erfindung
-
Bevorzugte Moden der vorliegenden Erfindung werden nun speziell unter Bezugnahme
auf die beigefügten Zeichnungen beschrieben.
(Erster Mode)
-
Fig. 3 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers gemäß
diesem Mode. Dieser Sprach-Codierer weist einen Anregungs-Vektor-Generator 30, der
einen Seed-Speicher-Abschnitt 31 und einen Oszillator 32 besitzt, und einen LPC-
Synthese-Filter 33 auf.
-
Seeds (Oszilations-Seeds) 34, ausgegeben von dem Seed-Speicher-Abschnitt 31, werden
zu dem Oszillator 32 eingegeben. Der Oszillator 32 gibt unterschiedliche Vektor-
Sequenzen gemäß den Werten der Eingabe-Seeds aus. Der Oszillator 32 oszilliert den
Inhalt entsprechend zu dem Wert des Seeds (Oszillations-Seed) 34 und gibt einen
Anregungs-Vektor 35 als eine Vektor-Sequenz aus. Der LPC-Synthese-Filter 33 wird mit Vokal-
Traktat-Informationen in der Form der Impuls-Ansprech-Konvolutions-Matrix des Synthese-Filters
versorgt und führt eine Konvolution in Bezug auf den Anregungs-Vektor 35 mit
dem Impuls-Ansprechen durch, was eine synthetisierte Sprache 36 ergibt. Die Impuls-
Ansprech-Konvolution des Anregungs-Vektors 35 wird als LPC-Synthese bezeichnet.
-
Fig. 4 stellt die spezifische Struktur des Anregungs-Vektors-Generators 30 dar. Ein Seed,
das von dem Seed-Speicher-Abschnitt 31 gelesen werden soll, wird durch einen
Steuerschalter 31 für den Seed-Speicher-Abschnitt entsprechend einem Steuersignal, gegeben
von einem Verzerrungs-Kalkulator, umgeschaltet.
-
Ein einfaches Speichern einer Vielzahl von Seeds zum Ausgeben unterschiedlicher
Vektor-Sequenzen von dem Oszillator 32 in dem Seed-Speicher-Abschnitt 31 kann
ermöglichen, daß mehr Random-Code-Vektoren mit weniger Kapazität, verglichen mit einem Fall,
bei dem komplizierte Random-Code-Vektoren direkt in einem Random-Codebuch
gespeichert werden, erzeugt werden.
-
Obwohl dieser Mode als ein Sprach-Codierer beschrieben worden ist, kann der
Anregungs-Vektor-Generator 30 an einen Sprach-Decodierer angepaßt werden. In diesem Fall
besitzt der Sprach-Decodierer einen Seed-Speicher-Abschnitt mit denselben Inhalten wie
diejenigen des Seed-Speicher-Abschnitts 31 des Sprach-Codierers und der Steuerschalter
41 für den Seed-Speicher-Abschnitt wird mit einer Seed-Nummer, ausgewählt zu dem
Zeitpunkt eines Codierens, versorgt.
(Zweiter Mode)
-
Fig. 5 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers gemäß
diesem Mode. Dieser Sprach-Codierer weist einen Anregungs-Vektor-Generator 50, der
einen Seed-Speicher-Abschnitt 51 und einen nicht-linearen Oszillator 52 besitzt, und einen
LPC-Synthese-Filter 53 auf.
-
Seeds (Oszilations-Seeds) 54, ausgegeben von dem Seed-Speicher-Abschnitt 51, werden
zu dem nicht-linearen Oszillator 52 eingegeben. Ein Anregungs-Vektor 55 als eine Vektor-
Sequenz, ausgegeben von dem nicht-linearen Oszillator 52, wird zu dem LPC-Synthese-
Filter 53 eingegeben. Der Ausgang des LPC-Synthese-Filters 53 ist eine synthetisierte
Sprache 56.
-
Der nicht-lineare Oszillator 52 gibt unterschiedliche Vektor-Sequenzen gemäß den Werten
der Eingabe-Seeds 54 aus und der LPC-Synthese-Filter 53 führt eine LPC-Synthese in
Bezug auf den Eingabe-Anregungs-Vektor 55 durch, um die synthetisierte Sprache 56
auszugeben.
-
Fig. 6 stellt die funktionalen Blöcke des Anregungs-Vektors-Generators 50 dar. Ein Seed,
das von dem Seed-Speicher-Abschnitt 51 gelesen werden soll, wird durch einen
Steuerschalter 51 für den Seed-Speicher-Abschnitt entsprechend einem Steuersignal, gegeben
von einem Verzerrungs-Kalkulator, umgeschaltet.
-
Die Verwendung des nicht-Linearen Oszillators 52 als ein Oszillator in dem Anregungs-
Vektor 50 kann eine Divergenz mit einer Oszillation entsprechend der nicht-linearen
Charakteristik unterdrücken und kann praktische Anregungs-Vektoren liefern.
-
Obwohl dieser Mode als ein Sprach-Codierer beschrieben worden ist, kann der
Anregungs-Vektor-Generator 50 an einen Sprach-Decodierer angepaßt werden. In diesem Fall
besitzt der Sprach-Decodierer einen Seed-Speicher-Abschnitt mit denselben Inhalten wie
diejenigen des Seed-Speicher-Abschnitts 51 des Sprach-Codierers und der Steuerschalter
41 für den Seed-Speicher-Abschnitt wird mit einer Seed-Nummer ausgewählt, zu dem
Zeitpunkt eines Codierens, versorgt.
(Dritter Mode)
-
Fig. 7 stellt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers gemäß
diesem Mode dar. Dieser Sprach-Codierer weist einen Anregungs-Vektor-Generator 70,
der einen Seed-Speicher-Abschnitt 71 und einen nicht-linearen, digitalen Filter 72 besitzt,
und einen LPC-Synthese-Filter 73 auf. In dem Diagramm bezeichnet das Bezugszeichen
"74" einen Seed (Oszillations-Seed), der von dem Seed-Speicher-Abschnitt 71
ausgegeben ist und zu dem nicht-linearen, digitalen Filter 72 eingegeben ist, das Bezugszeichen
"75" ist ein Anregungs-Vektor als eine Vektor-Sequenz-Ausgabe von dem nicht-linearen,
digitalen Filter 72, und das Bezugszeichen "76" ist ein synthetisierter Sprach-Ausgang von
dem LPC-Synthese-Fillter 73.
-
Der Anregungs-Vektor-Generator 70 besitzt einen Steuerschalter 41 für den Seed-
Speicher-Abschnitt, der einen Seed umschaltet, der von dem Seed-Speicher 71 gelesen
werden soll, entsprechend einem Steuersignal, das von einem Verzerrungs-Kalkulator
gegeben ist, wie dies in Fig. 8 dargestellt ist.
-
Der nicht-lineare, digitale Filter 72 gibt unterschiedliche Vektor-Sequenzen gemäß den
Werten der Eingabe-Seeds aus, und der LPC-Synthese-Filter 73 führt eine LPC-Synthese
in Bezug auf den Eingabe-Anregungs-Vektor 75 durch, um die synthetisierte Sprache 76
auszugeben.
-
Die Verwendung des nicht-linearen, digitalen Filters 72 als ein Oszillator in dem
Anregungs-Vektor 70 kann eine Divergenz mit einer Oszillation entsprechend der nicht-linearen
Charakteristik unterdrücken und kann praktische Anregungs-Vektoren liefern. Obwohl
dieser Mode als ein Sprach-Codierer beschrieben worden ist, kann der Anregungs-Vektor-
Generator 70 an einen Sprach-Decodierer angepaßt werden. In diesem Falle besitzt der
Sprach-Decodierer einen Seed-Speicher-Abschnitt mit denselben Inhalten wie diejenigen
des Seed-Speicher-Abschnitts 71 des Sprach-Codierers, und der Steuerschalter 71 für
den Seed-Speicher-Abschnitt wird zu einer Seed-Nummer, ausgewählt zu dem Zeitpunkt
eines Codierens, zugeführt.
(Vierter Mode)
-
Ein Sprach-Codierer gemäß diesem Mode weist einen Anregungs-Vektor-Generator 70,
der einen Seed-Speicher-Abschnitt 73 und einen nicht-linearen, digitalen Filter 72 besitzt,
und einen LPC-Synthese-Filter 73 auf, wie in Fig. 7 dargestellt ist.
-
Insbesondere besitzt der nicht-lineare, digitale Filter 72 eine Struktur, wie sie in Fig. 9
gezeigt ist. Dieser nicht-lineare, digitale Filter 72 umfaßt einen Addierer 91, der eine nicht-
lineare Addierer-Charakteristik besitzt, wie dies in Fig. 10 dargestellt ist, Filter-Zustand-
Halte-Abschnitte 92 bis 93, die zum Beibehalten der Zustände (die Werte von y(k - 1) bis (k -
N)) des digitalen Filters geeignet sind, und Multiplier 94 bis 95, die parallel zu den
Ausgängen der jeweiligen Filter-Zustand-Halte-Abschnitte 92-93 verbunden sind,
multiplizieren Filter-Zustände mit Verstärkungen und geben die Ergebnisse zu dem Addierer 91 aus.
Die Anfangswerte der Filter-Zustände sind in den Filter-Zustand-Halte-Abschnitten 92-93
durch Seeds, gelesen von dem Seed-Speicher-Abschnitt 71, eingestellt. Die Werte der
Verstärkungen der Multiplier 94-95 sind so festgelegt, daß die Polarität des digitalen Filters
außerhalb eines Einheits-Kreises auf einer Z-Ebene liegt.
-
Fig. 10 zeigt ein konzeptmäßiges Diagramm der nicht-linearen Addierer-Charakteristik des
Addierers 91, ausgestattet in dem nicht-linearen, digitalen Filter 72, und stellt die
Eingabe/Ausgabe-Beziehung des Addierers 91 dar, der eine 2-Komplement-Charakteristik
besitzt. Der Addierer 91 fordert zuerst die Summe von Addierer-Eingaben oder die Summe
der Eingabe-Werte zu dem Addierer 91 an und verwendet dann die nicht-lineare
Charakteristik, dargestellt in Fig. 10, um einen Addierer-Ausgang entsprechend zu der
Eingangssumme zu berechnen.
-
Insbesondere ist der nicht-lineare, digitale Filter 72 ein All-Pol-Modell zweiter Ordnung, so
daß die zwei Filter-Zustand-Halte-Abschnitte 92 und 93 in Reihe verbunden sind, und die
Multiplier 94 und 95 sind mit den Ausgängen der Filter-Zustand-Halte-Abschnitte 92 und
93 verbunden. Weiterhin wird der digitale Filter, bei dem die nicht-lineare Addierer-
Charakteristik des Addierers 91 eine 2-Komplement-Charakteristik ist, verwendet.
Weiterhin hält der Seed-Speicher-Abschnitt 71 Seed-Vektoren von 32 Worten, wie dies
insbesondere in Tabelle 1 beschrieben ist.
Tabelle 1: Seed-Vektoren zum Erzeugen von Random-Code-Vektoren
-
In den so gebildeten Sprach-Codierer werden Seed-Vektoren, gelesen von dem Seed-
Speicher-Abschnitt 71, als Anfangs-Werte zu den Filter-Zustand-Halte-Abschnitten 92 und
93 des nicht-linearen, digitalen Filters 72 gegeben. Zu jedem Zeitpunkt, zu dem Null zu
dem Addierer 91 von einem Eingangs-Vektor (Null-Sequenzen) eingegeben wird, gibt der
nicht-Lineare, digitale Filter 72 eine Abtastung (y (k)) zu einem Zeitpunkt aus, die
sequentiell als ein Filter-Zustand zu den Filter-Zustand-Halte-Abschnitten 92 und 93 übertragen ist.
Zu diesem Zeitpunkt multiplizieren die Multiplier 94 und 95 die Filter-Zustände,
ausgegeben von den Filter-Zustand-Halte-Abschnitten 92 und 93, mit Verstärkungen a1 und a2
jeweils. Der Addierer 91 addiert die Ausgänge der Multiplier 94 und 95, um die Summe der
Addierer-Eingänge zu erhalten, und erzeugt einen Addierer-Ausgang, der zwischen +1 bis
-1 basierend auf der Charakteristik in Fig. 10 unterdrückt wird. Dieser Addierer-Ausgang
(y (k + 1)) wird als ein Anregungs-Vektor ausgegeben und wird sequentiell zu den Filter-
Zustand-Halte-Abschnitten 92 und 93 übertragen, um eine neue Abtastung (y (k + 2)) zu
erzeugen.
-
Da die Koeffizienten 1 bis N der Multiplier 94-95 so festgelegt sind, daß insbesondere die
Pole des nicht-linearen, digitalen Filters außerhalb eines Einheits-Kreises auf der Z-Ebene
gemäß diesem Mode liegen, um dadurch den Addierer 91 mit einer nicht-linearen
Addierer-Charakteristik auszustatten, kann die Divergenz des Ausgangs gerade dann
unterdrückt werden, wenn der Eingang zu dem nicht-Linearen, digitalen Filter 72 groß wird, und
Anregungs-Vektoren, die gut für die praktische Verwendung sind, können erzeugt
beibehalten werden. Weiterhin kann die Zufälligkeit von Anregungs-Vektoren, die erzeugt
werden sollen, sichergestellt werden.
-
Obwohl dieser Mode als ein Sprach-Codierer beschrieben worden ist, kann der
Anregungs-Vektor-Generator 70 an einen Sprach-Decodierer angepaßt werden. In diesem Fall
besitzt der Sprach-Decodierer einen Seed-Speicher-Abschnitt mit denselben Inhalten wie
diejenigen des Seed-Speicher-Abschnitts 71 des Sprach-Codierers, und der
Steuerschalter 41 für den Seed-Speicher-Abschnitt wird zu einer Seed-Nummer, ausgewählt zu dem
Zeitpunkt eines Codierens, zugeführt.
(Fünfter Mode)
-
Fig. 11 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Godierers
gemäß diesem Mode. Dieser Sprach-Codierer weist einen Anregungs-Vektor-Generator 110
auf, der einen Anregungs-Vektor-Speicher-Abschnitt 111 und einen Generator 112 für
einen hinzugefügten Anregungs-Vektor und einen LPC-Synthese-Filter 113 besitzt.
-
Der Anregungs-Vektor-Speicher-Abschnitt 111 behält alte Anregungs-Vektoren bei, die
durch einen Steuerschalter gelesen sind, und zwar unter Empfang eines Steuersignals
von einem nicht dargestellten Verzerrungs-Kalkulator.
-
Der Generator 112 für den hinzugefügten Anregungs-Vektor führt einen vorbestimmten
Prozeß durch, angezeigt durch einen Anregungs-Vektor für die Zahl des hinzugefügten
Anregungs-Vektors, in Bezug auf einen alten Anregungs-Vektor, der von dem Speicher-
Abschnitt 111 gelesen ist, um einen neuen Anregungs-Vektor zu produzieren. Der
Generator 112 für den hinzugefügten Anregungs-Vektor besitzt eine Funktion eines
Umschaltens des Prozeß-Inhalts für einen alten Anregungs-Vektor entsprechend der Zahl des
hinzugefügten Anregungs-Vektors. Gemäß dem so gebildeten Sprach-Codierer ist eine Zahl
für den hinzugefügten Anregungs-Vektor von dem Verzerrungs-Kalkulator gegeben, der,
zum Beispiel, eine Anregungs-Vektor-Suche ausführt. Der Generator 112 für den
hinzugefügten Anregungs-Vektor führt unterschiedliche Prozesse in Bezug auf alte Anregungs-
Vektoren in Abhängigkeit von dem Wert der Zahl des eingegebenen, hinzugefügten
Anregungs-Vektors aus, um unterschiedliche, hinzugefügte Anregungs-Vektoren zu erzeugen,
und der LPC-Synthese-Filter 113 führt eine LPC-Synthese in Bezug auf den Eingabe-
Anregungs-Vektor durch, um eine synthetisierte Sprach auszugeben.
-
Gemäß diesem Mode können Zufalls- bzw. Random-Anregungs-Vektoren einfach durch
Speichern von weniger alten Anregungs-Vektoren in dem Anregungs-Vektor-Speicher-
Abschnitt 111 und Umschalten der Prozeß-Inhalte mittels des Generators 112 für den
hinzugefügten Anregungs-Vektor erzeugt werden, und es ist nicht notwendig, Random-Code-
Vektoren direkt in einem Random-Codebuch (ROM) zu speichen. Dies kann wesentlich
die Speicherkapazität reduzieren.
-
Obwohl dieser Mode als ein Sprach-Codierer beschrieben worden ist, kann der
Anregungs-Vektor-Generator 110 an einen Sprach-Decodierer angepaßt werden. In diesem
Fall besitzt der Sprach-Decodierer einen Anregungs-Vektor-Speicher-Abschnitt mit
denselben Inhalten wie diejenigen des Anregungs-Vektor-Speicher-Abschnitts 111 des
Sprach-Codierers, und eine Zahl für einen hinzugefügten Anregungs-Vektor, ausgewählt
zu dem Zeitpunkt eines Codierens, wird zu dem Generator 112 für den hinzugefügten
Anregungs-Vektor gegeben.
(Sechster Mode)
-
Fig. 12 stellt die funktionalen Blöcke eines Anregungs-Vektor-Generators gemäß diesem
Mode dar. Dieser Anregungs-Vektor-Generator weist einen Generator 120 für einen
hinzugefügten Anregungs-Vektor und einen Anregungs-Vektor-Speicher-Abschnitt 121 auf,
wo eine Vielzahl von Element-Vektoren 1 bis N gespeichert ist.
-
Der Generator 120 für den hinzugefügten Anregungs-Vektor umfaßt einen Lese-Abschnitt
122, der einen Prozeß eines Lesens einer Vielzahl von Element-Vektoren
unterschiedlicher Längen von unterschiedlichen Positionen in dem Anregungs-Vektor-Speicher-
Abschnitt 121 durchführt, einen Umkehr-Abschnitt 123, der einen Prozeß zum Sortieren
der gelesenen Element-Vektoren in der umgekehrten Reihenfolge durchführt, einen
Muiltplizier-Abschnitt 124, der einen Prozeß eines Multiplizierens einer Vielzahl von Vektoren
nach dem Umkehrprozeß durch unterschiedliche Verstärkungen jeweils durchführt, einen
Dezimier-Abschnitt 125, der einen Prozeß eines Verkürzens der Vektor-Längen einer Vielzahl
von Vektoren nach der Muliplikation durchführt, einen Interpolations-Abschnitt 126,
der einen Prozeß einer Verlängerung der Vektor-Längen der verdünnten Vektoren
durchführt, einen Addier-Abschnitt 127, der einen Prozeß eines Addierens der interpolierten
Vektoren durchführt, und einen Prozeß-Bestimmungs/Instruier-Abschnitt 128, der eine
Funktion eines Bestimmens eines spezifischen Verarbeitungsschemas gemäß dem Wert
der eingegebenen Nummer des hinzugefügten Anregungs-Vektors und zum Instruieren
der individuellen Abschnitte und eine Funktion eines Haltens einer Konversions-Liste
(Tabelle 2) zwischen Nummern und Prozessen, auf die zu dem Zeitpunkt eines Bestimmens
der spezifischen Prozeß-Inhalte Bezug genommen wird, besitzt.
Tabelle 2: Konversions-Liste zwischen Zahlen und Prozessen
-
Der Generator 120 für den hinzugefügten Anregungs-Vektor wird nun genauer
beschrieben. Der Generator 120 für den hinzugefügten Anregungs-Vektor bestimmt spezifische
Verarbeitungsschemata für den Lese-Abschnitt 122, den Umkehr-Abschnitt 123, den
Multiplizier-Abschnitt 124, den Dezimier-Abschnitt 125, den interpolierenden Abschnitt 126
und den Addier-Abschnitt 127 durch Vergleichen der eingegebenen Nummer für den
hinzugefügten Anregungs-Vektor (die eine Sequenz von sieben Bits ist, die irgendeinen
ganzzahligen Wert von 0 bis 127 annimmt) mit der Konversions-Liste zwischen Nummern
und Prozessen (Tabelle 2), und berichtet die spezifischen Verarbeitungsschemata an die
jeweiligen Abschnitte.
-
Der Lese-Abschnitt 122 extrahiert zuerst einen Element-Vektor 1 (V1) einer Länge von
100 von einem Ende des Anregungs-Vektor-Speicher-Abschnitts 121 zu der Position von
n1, wobei eine Sequenz der unteren vier Bits der eingegebenen Nummer des hinzugefügten
Anregungs-Vektors Aufmerksamkeit geschenkt wird (n1: ein ganzzahliger Wert von
0 bis 15). Dann extrahiert der Lese-Abschnitt 122 einen Element-Vektor 2 (V2) einer
Länge von 78 von dem Ende des Anregungs-Vektor-Speicher-Abschnitts 121 zu der Position
von n2 + 14 (ein ganzzahliger Wert von 14 bis 45), wobei Aufmerksamkeit einer Sequenz
von fünf Bits geschenkt wird (n2: ein ganzzahliger Wert von 14 bis 45), der die niedrigeren
zwei Bits und die oberen drei Bits der eingegebenen Zahl des hinzugefügten Anregungs-
Vektors verknüpft miteinander besitzt. Weiterhin führt der Lese-Abschnitt 122 einen
Prozeß eines Extrahierens eines Element-Vektors 3 (V3) einer Länge von Ns (= 52) von
einem Ende des Anregungs-Vektor-Speicher-Abschnitts 121 zu der Position von n3 + 46 (ein
ganzzahliger Wert von 46 bis 47) durch, wobei die Aufmerksamkeit einer Sequenz der
oberen fünf Bits der eingegebenen Zahl bzw. Nummer des hinzugefügten Anregungs-
Vektors gegeben wird (n3: ein ganzzahliger Wert von 0 bis 31), und Versenden von V1, V2
und V3 zu dem Umkehr-Abschnitt 123. Der Umkehr-Abschnitt 123 führt einen Prozeß
eines Verschickens eines Vektors, der V1, V2 und V3 in der umgekehrten Reihenfolge
umgeordnet besitzt, zu dem Muffiiplizier-Abschnitt 124 als neue V9, V2 und V3 durch, wenn
das am wenigsten signifikante Bit der Nummer des hinzugefügten Anregungs-Vektors "0"
ist, und verschickt V1, V2 und V3, wie sie sind; zu dem Multiplizier-Abschnitt 124, wenn
das am wenigsten signifikante Bit "1" ist.
-
Es wird die Aufmerksamkeit auf eine Sequenz von zwei Bits gerichtet, die die oberen
siebten und sechsten Bits der Zahl des hinzugefügten Anregungs-Vektors verknüpft
besitzen, wobei der Multiplizier-Abschnitt 124 die Amplitude von V2 mit -2 multipliziert, wenn
die Bit-Sequenz "00" ist, die Amplitude von V3 mit -2 multipliziert, wenn die Bit-Sequenz
"01" ist, die Amplitude von V1 mit -2 multipliziert, wenn die Bit-Sequenz "10" ist, oder die
Amplitude von V2 mit 2 multipliziert, wenn die Bit-Sequenz "11" ist, und schickt das
Ergebnis als neue V1, V2 und V3 zu dem Dezimier-Abschnitt 125.
-
Es wird die Aufmerksamkeit auf eine Sequenz von zwei Bits gerichtet, die das obere vierte
und dritte Bit der Zahl des hinzugefügten Anregungs-Vektors verknüpft besitzt, wobei der
Dezimier-Abschnitt 125
-
(a) Vektoren von 26 Abtastungen, extrahiert jede andere Abtastung von V1, V2 und
V3, als neue V1, V2 und V3 zu dem interpolierenden Abschnitt 126 schickt, wenn die Bit-
Sequenz "00" ist,
-
(b) Vektoren von 26 Abtastungen, extrahiert jede andere Abtastung von V1, V3 und
jede dritte Abtastung von V2, als neue V1, V3 und V2 zu dem interpolierenden Abschnitt
126 schickt, wenn die Bit-Sequenz "01" ist,
-
(c) Vektoren von 26 Abtastungen, extrahiert jede vierte Abtastung von V1 jede
andere Abtastung von V1, V2 und V3 als neue V1, V2 und V3 zu dem interpolierenden
Abschnitt 126 schickt, wenn die Bit-Sequenz "10" ist, und
-
(d) Vektoren von 26 Abtastungen, extrahiert jede vierte Abtastung von V1, jede
dritte Abtastung von V2 und jede andere Abtastung von V3, als neue V1, V2 und V3 zu
dem Interpolier-Abschnitt 126 schickt, wenn die Bit-Sequenz "11" ist.
-
Die Aufmerksamkeit wird auf das obere dritte Bit der Nummer des hinzugefügten
Anregungs-Vektors gerichtet, wobei der Interpolier-Abschnitt 126
-
(a) Vektoren, die V1, V2 und V3 jeweils substituiert in geraden Abtastungen von 0-
Vektoren einer Länge Ns (= 52) haben, als neue V1, V2 und V3 zu dem Addier-Abschnitt
127 schickt, wenn der Wert des dritten Bits "0" ist, und
-
(b) Vektoren, die V1, V2 und V3 jeweils substituiert in ungeraden Abtastungen von
0-Vektoren einer Länge Ns (= 52) besitzen, als neue V1, V2 und V3 zu dem Addier-
Abschnitt 127 schickt, wenn der Wert des dritten Bits "1" ist.
-
Der Addier-Abschnitt 127 addiert die drei Vektoren (V1, V2 und V3), erzeugt durch den
interpolierenden Abschnitt 126, um einen addierten Anregungs-Vektor zu erzeugen.
Gemäß diesem Mode wird, wie aus dem Vorstehenden ersichtlich ist, eine Vielzahl von
Prozessen unter einem Zufall entsprechend der Nummer des hinzugefügten Anregungs-
Vektors kombiniert, um Random-Anregungs-Vektoren zu erzeugen, so daß es nicht
notwendig ist, Random-Code-Vektoren zu speichern, wie sie in einem Random-Codebuch
/ROM) vorliegen, um eine wesentliche Reduktion in der Speicherkapazität sicherzustellen.
Es ist anzumerken, daß die Verwendung des Ariregungs-Vektor-Generators dieses Modes
in dem Sprach-Codierer des fünften Mode ermöglichen kann, daß komplizierte und
Random-Anregungs-Vektoren erzeugt werden, und zwar ohne die Verwendung eines
Random-Codebuchs mit großer Kapazität.
(Siebter Mode)
-
Einer Beschreibung wird nun von einem siebten Mode angegeben, bei dem der
Anregungs-Vektor-Generator irgendeines der vorstehend beschriebenen ersten bis sechsten
Moden in einem Sprach-Codierer vom CELP-Typ verwendet wird, der auf einem PSI-
CELP basiert, das Standard-Sprach-Codier/Decodier-System für digitale, portable PDC-
Telefone in Japan.
-
Fig. 13A stellt ein Blockdiagramm eines Sprach-Codierers gemäß dem siebten Mode dar.
In diesem Sprach-Codierer werden digitale Eingabe-Sprach-Daten 1300 zu einem Puffer
1301 Rahmen für Rahmen (Rahmen-Länge Nf = 104) zugeführt. Zu diesem Zeitpunkt
werden alte Daten in dem Puffer 1301 durch neue Daten, die zugeführt sind, aktualisiert.
Ein Rahmen-Energie-Quantisier/Decodierer-Abschnitt 1302 liest zuerst einen
Verarbeitungs-Rahmen s (i) (0 ≤ i ≤ Nf - 1) einer Länge Nf (= 104) von dem Puffer 1301 und
erfordert eine durchschnittliche Energie- bzw. Leistungs-Verstärkung amp von Abtastungen in
diesem Verarbeitungs-Rahmen von einer Gleichung 5 an.
-
wobei
-
amp: durchschnittliche Energie von Proben in einem Verarbeitungs-Rahmen
-
I: Element-Nummer (0 ≤ i ≤ Nf - 1) in dem Verarbeitungs-Rahmen
-
s(i): Abtastungen in dem Verarbeitungs-Rahmen
-
Nf: Verarbeitungs-Rahmenlänge (= 52)
-
Die erhaltene, durchschnittliche Energie-Verstärkung von Proben in dem Verarbeitungs-
Rahmen wird zu einem logarithmisch umgewandelten Wert amplog von einer Gleichung 6
konvertiert
-
wobei
-
amplog: logarithmisch konvertierter Wert der durchschnittlichen Energie von Abtastungen
in dem Verarbeitungs-Rahmen
-
amp: durchschnittliche Energie von Proben in dem Verarbeitungs-Rahmen.
-
Das angeforderte amplog wird einer skalaren Quantisierung unter Verwendung einer
Skalar-Quantisierungs-Tabelle Cpow von 10 Worten unterworfen, wie in Tabelle 3
dargestellt ist, gespeichert in einem Energie-Quantisierungs-Tabellen-Speicher-Abschnitt 1303,
um einen Index einer Energie Ipow von vier Bits anzufordern, wobei eine decodierte
Rahmen-Energie spow von dem erhaltenen Index einer Energie Ipow erhalten wird, und der
Index der Energie Ipow und die decodierten Rahmen-Energie spow werden zu einem
Parameter-Codier-Abschnitt 1331 zugeführt. Der Energie-Quantisierungs-Tabellen-Speicher-
Abschnitt 1303 hält eine Energie-Skalar-Quantisierungs-Tabelle (Tabelle 3) aus 16
Worten, auf die dann Bezug genommen wird, wenn der Rahmen-Energie-
Quantisierungs/Decodier-Abschnitt 1302 eine skalare Quantisierung des logarithmisch
umgewandelten Werts der durchschnittlichen Energie der Abtastungen in dem
Verarbeitungs-Rahmen ausführt.
Tabelle 3: Energie-Skalar-Quantisierungs-Tabelle
-
Ein LPC-Analysier-Abschnitt 1304 liest zuerst Analyse-Segment-Daten einer Analyse-
Segment-Länge Nw (= 256) von dem Puffer 1301 aus, multipliziert die gelesenen Analyse-
Segment-Daten durch ein Hamming-Fenster einer Fenster-Länge Nw (= 256), um eine
nach Hamming mit Fenster versehene Analyse-Daten zu erhalten, und fordert die
Autokorrelations-Funktion der erhaltenen nach Hamming mit Fenster versehenen Analyse-Daten
zu einer Vorhersage-Reihenfolge Np (= 10) an. Die erhaltene Autokorrelations-Funktion
wird mit einer Log-Fenster-Tabelle (Tabelle 4) aus 10 Worten, gespeichert in einem Log-
Fenster-Speicher-Abschnitt 1305, multipliziert, um eine nach Hamming mit Fenster
versehene Autokorrelations-Funktion zu erhalten, führt eine lineare Vorhersage-Analyse in
Bezug auf die erhaltene, nach Hamming mit Fenster versehene Autokorrelations-Funktion
durch, um einen LPC-Parameter α (i) (1 ≤ i ≤ Np) zu berechnen, und gibt den Parameter
zu einem Pitch-Vorselektor 1308 aus.
Tabelle 4: Log-Fenster-Tabelle
-
Als nächstes wird der erhaltene LPC-Parameter α (1) zu einem LSP (Line Spectrum Pair-
Linien-Spektum-Paar) ω (i) (1 ≤ i ≤ Np) konvertiert, was wiederum zu einem LSP-
Quantisier/Decodier-Abschnitt 1306 ausgegeben wird. Der Log-Fenster-Speicher-
Abschnitt 1305 hält eine Log-Fenster-Tabelle, auf die der LPC-Analysier-Abschnitt Bezug
nimmt.
-
Der LSP-Quantisier/Decodierer-Abschnitt 1306 nimmt zuerst auf eine Vektor-
Quantisierungs-Tabelle eines LSP, gespeichert in einem LSP-Quantisierungs-Tabellen-
Speicher-Abschnitt 1307, Bezug, um eine Vektor-Quantisierung in Bezug auf das LSP,
empfangen von dem LPC-Analysier-Abschnitt 1304, durchzuführen, um dadurch einen
optimalen Index auszuwählen, und schickt den ausgewählten Index als einen LSP-Code
Ilsp zu dem Parameter-Codier-Abschnitt 1331. Dann wird ein Zentroid entsprechend zu
dem LSP-Code als ein decodiertes LSP ωq (1) (1 ≤ i ≤ Np) von dem LSP-Quantisierungs-
Tabellen-Speicher-Abschnitt 1307 gelesen und das gelesene, decodierte LSP wird zu
einem LSP-Interpolations-Abschnitt 1311 geschickt. Weiterhin wird das decodierte LSP zu
einer LPC konvertiert, um ein decodiertes LSP αq (i) (1 ≤ i ≤ Np) zu erhalten, was
wiederum zu einem spektralen Gewichtungs-Filter-Koeffizienten-Kalkulator 1312 und einem
wahrnehmbaren, gewichteten LPC-Synthese-Filter-Koeffizienten-Kalkulator 1314
geschickt wird. Der LSP-Quantisierungs-Tabellen-Speicher-Abschnitt 1307 hält eine LSP-
Vektor-Quantisierungs-Tabelle, auf die der LSP-Quantisier/Decodier-Abschnitt 1306
Bezug nimmt, wenn eine Vektor-Quantisierung in Bezug auf LSP durchgeführt wird.
Der Pitch-Vorselektor 1308 unterwirft zuerst die Verarbeitungs-Rahmen-Daten s(i) (0 ≤ i ≤
Nf - 1), gelesen von dem Puffer 1301, einer inversen Filterung und zur Verwendung der
LPC α(i) (1 ≤ i ≤ Np), empfangen von dem LPC-Analysier-Abschnitt 1304, um ein lineares
Vorhersage-Rest-Signal res(i) (0 ≤ i ≤ Nf - 1) zu erhalten, berechnet die Energie bzw.
Hochzahl des erhaltenen, linearen Vorhersage-Rest-Signals res(i), fordert eine normierte,
vorhersagende Rest-Energie resid an, die von der Normierung der Energie des berechneten
Rest-Signals erhalten ist, mit der Energie von Sprach-Proben eines Verarbeitungs-
Unterrahmens an, und schickt die normierte, Vorhersage-Rest-Energie zu dem Parameter-
Codier-Abschnitt 1331. Als nächstes wird das lineare Vorhersage- bzw. Prädikative-Rest-
Signal res(i) durch ein Hamming-Fenster einer Länge Nw (= 256) multipliziert, um ein mit
Hamming-Fenster versehenes, lineares Vorhersage-Rest-Signal resw(i) (0 ≤ i ≤ Nw - 1) zu
erzeugen, und eine Autokorrelations-Funktion φ int(i) des erzeugten resw(i) wird über
einen Bereich von Lmin -2 ≤ i ≤ Lmax + 2 erhalten (wobei Lmin 16 in dem kürzesten
Analyse-Segment eines langen, vorhersagenden Koeffizienten ist, und Lmax 128 in dem
längsten Analyse-Segment eines fangen, vorhersagenden Koeffizienten ist). Ein Polyphasen-
Filter-Koeffizient Cppf (Tabelle 5) aus 28 Worten, gespeichert in einem Polyphasen-
Koeffizienten-Speicher-Abschnitt 1309, wird in die erhaltene Autokorrelations-Funktion φ
int(i) konvolutiert, um eine Autokorrelations-Funktion φ dq(i) an einer fraktionalen Position,
verschoben um -¹/&sub4; von einer integer lag int, eine Autokorrelations-Funktion φ aq(i) an einer
fraktionalen Position, verschoben um +¹/&sub4; von der integer lag int, und einer
Autokorrelations-Funktion φ ah(i) an einer fraktionalen Position, verschoben um +¹/&sub2; von der integer
lag int zu erhalten.
Tabelle 5: Polyphasen-Filter-Koeffizienten Cppf
-
Weiterhin wird für jedes Argument i in einem Bereich von Lmin -2 ≤ i ≤ Lmax +2 ein
Prozeß einer Gleichung 7 eines Substituierens des größten einen von φ int(i), φ dp(i), φ aq(i)
und φ ah(i) in φ max(i) durchgeführt, um (Lmax - Lmin + 1) Teile von φ max(i) zu erhalten.
-
φmax(i) = MAX(φint(i),φdq(i),φaq(i),φah(i))
-
φmax(i): maximaler Wert von φint(i),φdq(i),φaq(i),φah(i) (7)
-
wobei
-
φ max(i): der maximale Wert unter φint(i),φdq(i),φaq(i),φah(i)
-
I: Analyse-Segment eines langen Vorhersage-Koeffizienten (Lmin ≤ i ≤ Lmax)
-
Lmin: kürzestes Analyse-Segment (= 16) des langen Vorhersage-Koeffizienten
-
Lmax: längstes Analyse-Segment (= 128) des langen Vorhersage-Koeffizienten
-
φint(i): Autokorrelations-Funktion eines integer lag (int) eines Vorhersage-Rest-Signals
-
φdp(i): Autokorrelations-Funktion eines fraktionalen lag (int-1/4) des Vorhersage-Rest-
Signals
-
φaq(i): Autokorrelations-Funktion eines fraktionalen lag (int+1/4) des Vorhersage-Rest-
Signals
-
φah(i): Autokorrelations-Funktion eines fraktionalen lag (int+1/2) des Vorhersage-Rest-
Signals.
-
Größere, obere sechs werden von den angeforderten (Lmax - Lmin + 1) Teilen von
φmax(i) ausgewählt und werden als Pitch-Kandidaten psel(i) (0 ≤ i ≤ 5) gesichert, und das
Linear-Vorhersage-Rest-Signal res(i) und die ersten Pitch-Kandidaten psel(0) werden zu
einem Pitch-Gewichtungs-Filter-Kalkulator 1310 und psel(i) (0 ≤ i ≤ 5) zu einem adaptiven
Code-Vektor-Generator 1319 geschickt.
-
Der Polyphasen-Koeffizienten-Speicher-Abschnitt 1309 hält Polyphasen-Filter-
Koeffizienten, auf die dann Bezug genommen wird, wenn der Pitch-Vorselektor 1308 die
Autokorrelation des linearen Vorhersage-Rest-Signals zu einer fraktionalen lag Präzision
anfordert und wenn der adaptive Code-Vektor-Generator 1319 adaptive Code-Vektoren zu
einer fraktionalen Präzision produziert.
-
Der Pitch-Gewichtungs-Filter-Kalkulator 1310 fordert Pitch-Vorhersage-Koeffizienten cov(i)
(0 ≤ i ≤ 2) einer dritten Ordnung von den linearen Vorhersage-Resten res(i) und dem
ersten Pitch-Kandidaten psel(0), erhalten von dem Pitch-Vorselektor 1308, an. Das Impuls-
Ansprechverhalten eines Pitch-Gewichtungs-Filters Q(z) wird von einer Gleichung erhalten,
die die angeforderten Pitch-Vorhersage-Koeffzienten cov(i) (0 ≤ i ≤ 2) verwendet, und
wird zu dem spektralen Gewichtungs-Filter-Koeffizienten-Kalkulator 1312 und einem
Wahrnehmungs-Gewichtungs-Filter-Koeffizienten-Kalkulator 1313 geschickt.
-
Q(z) = 1 + cov(i) · λpi · z - psel(0) + i - 1 (8)
-
wobei
-
Q(z): Übertragungs-Funktionen des Pitch-Gewichtungs-Filters
-
cov(i): Pitch-Vorhersage-Koeffizienten (0 ≤ i ≤ 2)
-
λpi: Pitch-Gewichfungs-Konstante (= 0,4)
-
psel(0): erster Pitch-Kandidat.
-
Der LSP-Interpolations-Abschnitt 1311 fordert zuerst eine decodierte, interpolierte LSP
wintp(n,i) (1 ≤ i ≤ Np) Unterrahmen für Unterrahmen von einer Gleichung 9 an, die eine
decodierte LSP ωq(i) für den momentanen Verarbeitungs-Rahmen, erhalten durch den
LSP-Quantisierungs/Decodier-Abschnitt 1306, und eine decodierte LSP ωqp(i) für einen
vorhergehenden Verarbeitungs-Rahmen, der erhalten worden ist und früher gesichert
worden ist, verwendet.
-
wobei
-
ωintp(n,j): interpolierte LSP des n-ten Unterrahmens
-
n: Unterrahmen-Nummer (= 1,2)
-
ωp(i): decodierte LSP eines Verarbeitungs-Rahmens
-
ωqp(i): decodierte LSP eines vorherigen Verarbeitungs-Rahmens.
-
Eine decodierte, interpolierte LPC αq(n, i) (1 ≤ i ≤ Np) wird durch Konvertieren der
angeforderten ωintp(n, i) zu einer LPC erhalten, und die angeforderte, decodierte, interpolierte
LPC αq(n, i) (1 ≤ i ≤ Np) wird zu dem spektralen Gewichtungs-Filter-Koeffizienten-
Kalkulator 1312 und dem wahrnehmbaren, gewichteten LPC-Synthese-Filter-
Koeffizienten-Kalkulator 1314 geschickt.
-
Der Spektral-Gewichtungs-Filter-Koeffizienten-Kalkulator 1312, der einen spektralen
Gewichtungs-Filter I(z) von einem MA-Typ in einer Gleichung 10 bildet, schickt sein Impuls-
Ansprechverhalten zu dem Wahrnehmungs-Gewichtungs-Filter-Koeffizienten-Kalkulator
1313.
-
I(z) = αfir(i)xz-i (10)
-
wobei
-
I(z): Übertragungs-Funktion des spektralen Gewichtungs-Filter vom MA-Typ
-
Nfir: Filter-Ordnung (= 11) von I(z)
-
αfir(i): Filter-Ordnung (1 ≤ i ≤ Nfir) von I(z).
-
Es ist anzumerken, daß das Impuls-Ansprechverhalten afir(i) (1 ≤ i ≤ Nfir) in der Gleichung
10 ein Impuls-Ansprechverhalten eines spektralen Gewichtungs-Filters G(z) vom ARMA-
Typ ist, gegeben durch eine Gleichung 11, abgeschnitten nach Nfir (= 11).
-
wobei
-
G(z): Übertragungs-Funktion des spektralen Gewichtungs-Filters
-
n: Unterrahmen-Zahl (= 1,2)
-
Np: LPC-Analyse-Ordnung (= 10)
-
α(n,i): decodierte, interpolierte LSP des n-ten Unterrahmens
-
λma: Zähler-Konstante (= 0,9) von G(z)
-
λar: Nenner-Konstante (= 0,4) von G(z).
-
Der Wahrnehmungs-Gewichtungs-Filter-Koeffizienten-Kalkulator 1313 bildet zuerst
einen wahrnehmbaren Gewichtungs-Filter W(z), der ein Impuls-Ansprechverhalten hat,
das Ergebnisse einer Konvolution des Impuls-Ansprechverhaltens des spektralen
Gewichtungs-Filters I(z), empfangen von dem Spektral-Gewichtungs-Filter-Koeffizienten-
Kalkulator 1312, und des Impuls-Ansprechverhaltens des Pitch-Gewichtungs-Filters Q(z),
empfangen von dem Pitch-Gewichtungs-Filter-Kalkulator 1310, hat und schickt das
Impuls-Ansprechverhalten des gebildeten Wahrnehmungs-Gewichtungs-Filfers W(z) zu dem
wahrnehmungsmäßig gewichteten LPC-Synthese-Filter-Koeffizienten-Kalkulator 1314 und
einem Wahrnehmungs-Gewichtungs-Abschnitt 1315.
-
Der wahrnehmungsmäßig gewichtete LPC-Synthese-Filter-Koeffizienten-Kalkulator
1314 bildet einen wahrnehmungsmäßig gewichteten LPC-Synthese-Filter H(z) von einer
Gleichung 12 basierend auf der decodierten, interpoüerten LPC αq(n, i), empfangen von
dem LSP Interpolations-Abschnitt 1311, und dem Wahrnehmungs-Gewichtungs-Filter
W(z), empfangen von dem Wahrnehmungs-Gewichtungs-Filter-Koeffizienten-Kalkulator
1313.
-
wobei
-
H(z): Übertragungs-Funktion des wahrnehmungsmäßig gewichteten Synthese-Filters
-
Np: LPC Analyse-Ordnung
-
αq(n, 1): decodierte, interpolierte LPC des n-ten Unterrahmens
-
n: Unterrahmen Zahl (= 1,2)
-
W(z): Übertragungs-Funktion des Wahrnehmungs-Gewichtungs-Filters (I(z) und Q(z),
kaskadenartig verbunden).
-
Der Koeffizient des gebildeten, wahrnehmungsmäßig gewichteten LPC-Synthese-Filters
H(z) wird zu einem Target-Vektor-Generator A 1316, einem wahrnehmungsmäßig
pewichteten LPC-Umkehr-Synthese-Filter A1317, einem wahrnehmungsmäßig gewichteten
LPC-Synthese-Filter A1321, einem wahrnehmungsmäßig gewichteten LPC-Umkehr-
Synthese-Filter B1326 und einem wahrnehmungsmäßig gewichteten LPC-Synthese-Filter
B1329 geschickt.
-
Der wahrnehmungsmäßig gewichtende Abschnitt 1315 gibt ein Unterrahmen-
Signal, gelesen von dem Puffer 1301, zu dem wahrnehmungsmäßig gewichteten LPC-
Synthese-Filter H(z) in einem Null-Zustand ein und schickt seine Ausgänge als
wahrnehmungsmäßig gewichtete Reste spw(i) (0 ≤ i ≤ Ns - 1) zu dem Target-Vektor-Generator
A1316.
-
Der Target-Vektor-Generator A1316 subtrahiert ein Null-Eingangs-
Ansprechverhalten Zres(i) (0 ≤ i ≤ Ns - 1), das ein Ausgang ist, wenn eine Null-Sequenz zu
dem wahrnehmungsmäßig gewichteten LPC-Synthese-Filter H(z), erhalten durch den
wahrnehmungsmäßig gewichteten LPC-Synthese-Filter-Koeffizienten-Kalkulator 1314,
eingegeben ist, von den wahrnehmungsmäßig gewichteten Resten spw(i) (0 ≤ i ≤ Ns - 1),
erhalten durch den wahrnehmungsmäßig gewichtenden Abschnitt 1315, und schickt das
Subtraktions-Ergebnis zu dem wahrnehmungsmäßig gewichteten LPC-Umkehr-Synthese-
Filter A1317 und einen Target-Vektor-Generator B 1325 als einen Target-Vektor r(i) (0 ≤ i
≤ Ns - 1) zur Auswahl eines Anregungs-Vektors.
-
Der wahrnehmungsmäßig gewichtete LPC-Umkehr-Synthese-Filter A 1317 sortiert die
Target-Vektoren r(i) (0 ≤ i ≤ Ns - 1), empfangen von dem Target-Vektor-Generator A 1316
in einer Zeit-Umkehr-Ordnung, gibt die erhaltenen Vektoren zu dem wahrnehmungsmäßig
gewichteten LPC-Synthese-Filter H(z) mit dem Anfangszustand von Null ein und sortiert
seine Ausgänge wieder in einer Zeit-Umkehr-Ordnung, um eine Zeit-Umkehr-Synthese
rh(k) (0 ≤ i ≤ Ns - 1) des Target-Vektors zu erhalten, und schickt den Vektor zu einem
Komparator A 1322.
-
Gespeichert in einem adaptiven Codebuch 1318 sind erste Anregungs-Vektoren,
auf die dann Bezug genommen wird, wenn der adaptive Code-Vektor-Generator 1319
adaptive Code-Vektoren erzeugt. Der adaptive Code-Vektor-Generator 1319 erzeugt in Nac
Teile von adaptiven Code-Vektoren Pacb(i, k) (0 ≤ i ≤ Nac - 1, 0 ≤ k ≤≤ Ns - 1, 6 ≤ Nac ≤ 24),
und zwar basierend auf sechs Pitch-Kandidaten psel(j) (0 ≤ j ≤ 5), empfangen von dem
Pitch-Vorselektor 1308, und schickt die Vektoren zu einem adaptiven/festgelegten
Selektor 1320. Insbesondere werden, wie in Tabelle 6 dargestellt ist, adaptive Code-Vektoren
für vier Arten von fraktionalen lag-Positionen pro einzelner Integer-lag-Position erzeugt,
wenn 16 psel(j) 44 gilt, adaptive Code-Vektoren werden für zwei Arten von fraktionalen
lag-Positionen pro einzelner integer lag-Position erzeugt, wenn 46 ≤ psel(j) ≤ 64 gilt, und
adaptive Code-Vektoren werden für integer lag-Positionen erzeugt, wenn 65 ≤ psel(j) ≤
128 gilt. Hierfür ist, in Abhängigkeit von dem Wert von psel(j) (0 ≤ j ≤ 5), die Zahl von
adaptiven Code-Vektor-Kandidaten Nac 6 bei einem Minimum und 24 bei einem Maximum.
Tabelle 6: Gesamte Anzahl von adaptiven Code-Vektoren und festgelegten Code-
Vektoren
Gesamte Anzahl von Vektoren 255
-
Anzahl von adaptiven Code-Vektoren 222
-
16 ≤ psel(i) ≤ 44 116 (29 · vier Arten von fraktionalen lags)
-
45 ≤ psel(i) ≤ 64 42 (21 · zwei Arten von fraktionalen lags)
-
65 ≤ psel(i) ≤ 128 64 (64 · eine Art eines fraktionalen lag)
-
Zahl von festgelegten Code-Vektoren 32 (16 · zwei Arten von Coden)
-
Adaptive Code-Vektoren zu einer fraktionalen Präzision werden über eine Interpolation
erzeugt, die die Koeffizienten des Polyphasen-Filter, gespeichert in dem Polyphasen-
Koeffizienten-Speicher-Abschnitt 1309, konvolutiert.
-
Eine Interpolation entsprechend dem Wert von lagf(i) bedeutet eine Interpolation
entsprechend einer Integer-lag-Position, wenn lagf(i) = 0 eine Interpolation entsprechend einer
fraktionalen lag-Position ist, verschoben um -1/2 von einer integer lag-Position, wenn
lagf(i) = 1 ist, eine Interpolation entsprechend einer fraktionalen lag-Position, verschoben
um +1/4 von einer Integer-lag-Position, wenn lagf(i) = 2 ist, und eine Interpolation
entsprechend einer fraktionalen lag-Position, verschoben um -1/4 von einer integer lag-Position,
wenn lagf(i) = 3 ist.
-
Der adaptive/festgelegte Selektor 1320 empfängt zuerst adaptive Code-Vektoren der Nac-
6 bis 24 Kandidaten, erzeugt durch den Adaptiv-Code-Vektor-Generator 1319, und schickt
die Vektoren zu dem wahrnehmungsmäßig gewichteten LPC-Synthese-Filter A 1321 und
dem Komparator A 1322.
-
Um die adaptiven Code-Vektoren Pacb(i, k) (0 ≤ i ≤ Nac - 1, 0 ≤ k ≤ Ns - 1, 6 ≤ Nac ≤ 24)
vorab auszuwählen, erzeugt durch den adaptiven Code-Vektor-Generator 1319, zu Nacb
(= 4) Kandidaten von (6 bis 24) Kandidaten, fordert der Komparator A 1322 zuerst die
inneren Produkte Prac(i) der synthetisierten Zeit-Umkehr-Vektoren rh(k) (0 ≤ i ≤ Ns - 1) des
Target-Vektors an, empfangen von dem wahrnehmungsmäßig gewichteten LPC-Umkehr-
Synthese-Filter A 1317, und die adaptiven Code-Vektoren Pacb(i, k) von einer Gleichung
13, an.
-
prac(i) = Pacb(i,k) · rh(k) (13)
-
wobei
-
Prac(i): Referenz-Wert für die Vorauswahl von Adaptiv-Code-Vektoren
-
Nac: die Zahl von Adaptiv-Code-Vektor-Kandidaten nach einer Vorauswahl (= 6 bis 24)
-
i: Zahl eines Adaptiv-Code-Vektors (0 ≤ i ≤ Nac - 1)
-
Pacb(i, k): Adaptiv-Code-Vektor
-
rh(k): Zeit-Umkehr-Synthese des Target-Vektors r(k).
-
Durch Vergleichen der erhaltenen, inneren Produkte Prac(i) werden die oberen Nacp- (=
4) Indizes, wenn die Werte der Produkte groß werden und die inneren Produkte mit den
Indizes als Argumente verwendet werden, ausgewählt, und werden jeweils als Indizes von
adaptiven Code-Vektoren nach einer Vorauswahl von apsel(j) (0 ≤ j ≤ Nacb - 1) und
ReferenzWerten nach einer Vorauswahl von adaptiven Code-Vektoren prac(apsel(j))
gesichert, und die Indizes der adaptiven Code-Vektoren nach einer Vorauswahl apsel(j) (0 ≤ j
≤ Nacb - 1) werden zu dem adaptiven/festgelegten Selektor 1320 ausgegeben.
-
Der wahrnehmungsmäßig gewichtete LPC-Synthese-Filter A 1321 führt eine
wahrnehmungsmäßig gewichtete LPC-Synthese in Bezug auf adaptive Code-Vektoren nach e6ner
Vorauswahl von Pacb(absel(j), k) durch, was durch den adaptiven Code-Vektor-Generator
13 19 erzeugt worden ist und den adaptiven/festgelegten Selektor 1320 passiert hat, um
synthetisierte, adaptive Code-Vektoren SYNacb(apsel(j),k) zu erzeugen, was wiederum zu
dem Komparator A 1322 geschickt wird. Dann fordert der Komparator A 1322 Referenz-
Werte für eine abschließende Auswahl eines adaptiven Code-Vektors sacbr(j) von einer
Gleichung 14 für eine End-Auswahl in Bezug auf die Nacb (= 4) adaptiven Code-Vektoren
nach einer Vorauswahl von Pacb(apsel(j),k) an, vorab ausgewählt durch den Komparator
A 1322 selbst.
-
wobei
-
sacbr(j): Referenz-Wert für eine End-Auswahl eines adaptiven Code-Vektors
-
prac(): Referenz-Werte nach einer Vorauswahl von adaptiven Code-Vektoren
-
apsel(j): Indizes von adaptiven Code-Vektoren nach einer Vorauswahl
-
k: Vektor-Ordnung (0 ≤ j ≤ Ns - 1)
-
j: Zahl des Index eines vorab ausgewählten adaptiven Code-Vektors (0 ≤ j ≤ Nacb - 1)
-
Ns: Unterrahmen-Länge (= 52)
-
Nacb: die Zahl von vorausgewählten, adaptiven Code-Vektoren (= 4)
-
SYNacb(J,K): synthetisierte, adaptive Code-Vektoren.
-
Der Index, wenn der Wert der Gleichung 14 groß wird, und der Wert der Gleichung 14 mit
dem Index, verwendet als ein Argument, werden zu dem adaptiven/festgelegten Selektor
1320 jeweils als ein Index eines adaptiven Code-Vektors nach einer End-Auswahl ASEL
und einem Referenz-Wert nach einer End-Auswahl eines adaptiven Code-Vektors
sacbr(ASEL) geschickt.
-
Ein festgelegtes Codebuch 1323 hält Nfc (= 16) Kandidaten von Vektoren, um durch einen
Vektor-Lese-Abschnitt 1324 für einen festgelegten Code zu lesen. Um festgelegte Code-
Vektoren Pfcb(i,k) (0 ≤ i ≤ Nfc - 1, 0 ≤ k ≤ Ns - 1), gelesen durch den Lese-Abschnitt 1324 für
einen festgelegten Code-Vektor, zu Nfcb (= 2) Kandidaten von Nfc (= 16) Kandidaten
vorab auszuwählen, fordert der Komparator A 1322 die absoluten Werte prfc(i) der inneren
Produkte der Zeit-umkehr-synthetisierten Vektoren rh(k) 0 ≤ i ≤ Ns - 1) des Target-Vektors,
empfangen von dem wahrnehmungsmäßig gewichteten LPC-Umkehr-Synthese-Filter A
1317, und die festgelegten Code-Vektoren Pfcb(i,k) von einer Gleichung 15 an.
-
prfc(i) = Pfcb(i,k) · rh(k) (15)
-
wobei
-
prfc(i) : Referenz-Werte für eine Vorauswahl von festgelegten Code-Vektoren
-
k: Element-Zahl eines Vektors (0 ≤ k ≤ Ns - 1)
-
i: Zahl eines festgelegten Code-Vektors (0 ≤ i ≤ Nfc - 1)
-
Nfc: Zahl von festgelegten Code-Vektoren (= 16)
-
Pfcb(i,k): festgelegte Code-Vektoren
-
rh(k): Zeit-umkehr-synthetisierte Vektoren des Target-Vektors rh(k).
-
Durch Vergleichen der Werte prfc(i) der Gleichung 15 werden die oberen Nfcb (= 2)
Indizes, wenn die Werte groß werden, und die absoluten Werte der inneren Produkte mit den
Indizes, verwendet als Argumente, ausgewählt und werden jeweils als Indizes von
festgelegten Code-Vektoren nach einer Vorauswahl fpsel(j) (0 ≤ j ≤ Nfcb - 1) und Referenz-
Werten für festgelegte Code-Vektoren nach einer Vorauswahl prfc(fpselO)) gesichert, und
Indizes von festgelegten Code-Vektoren nach einer Vorauswahl fpsel(j) (0 ≤ j ≤ Nfcb - 1)
werden zu dem adaptiven/festgelegten Selektor 1320 ausgegeben.
-
Der wahrnehmungsmäßig gewichtete LPC-Synthese-Filter A 1321 führt eine
wahrnehmungsmäßig gewichtete LPC-Synthese in Bezug auf festgelegte Code-Vektoren nach
einer Vorauswahl von Pfcb(fpsel(j,k)) durch, was von dem Lese-Abschnitt 1324 für den
festgelegten Code-Vektor gelesen worden ist und den adaptiven/festgelegten Selektor 1320
passiert hat, um synthetisierte, festgelegte Code-Vektoren SYNfcb(fpsel(j),k) zu erzeugen,
die wiederum zu dem Komparator A 1322 geschickt werden.
-
Der Komparator A 1322 fordert weiterhin einen Referenz-Wert für eine End-Auswahl eines
festgelegten Code-Vektors sfcbr(j) von einer Gleichung 16 an, um abschließend einen optimalen,
festgelegten Code-Vektor von den Nfcb (= 2) festgelegten Code-Vektoren nach
einer Vorauswahl von Pfcb(fpsel(j),k), vorab ausgewählt durch den Komparator A 1322
selbst, auszuwählen.
-
wobei
-
sfcbr(j): der Referenz-Wert für eine End-Auswahl eines festgelegten Code-Vektors
-
prfc() : Referenz-Werte nach einer Vorauswahl von festgelegten Code-Vektoren
-
fpsel(j): Indizes von festgelegten Code-Vektoren nach einer Vorauswahl (0 ≤ j ≤ Nfcb - 1)
-
k: Element-Zahl eines Vektors (0 ≤ k ≤ Ns - 1)
-
j: Zahl eines vorab ausgewählten, festgelegten Code-Vektors (0 ≤ j ≤ Nfcb - 1)
-
Ns: Unterrahmen-Länge (= 52)
-
Nfcb: Zahl von vorab ausgewählten, festgelegten Code-Vektoren (= 2)
-
SYNfcb(J, K): synthetisierte, festgelegte Code-Vektoren.
-
Der Index, wenn der Wert der Gleichung 16 groß wird und der Wert der Gleichung 16 mit
dem Index, verwendet als ein Argument, werden zu dem adaptiven/festgelegten Selektor
1320 jeweils als ein Index eines festgelegten Code-Vektors nach einer End-Auswahl FSEL
und ein Referenz-Wert nach einer End-Auswahl eines festgelegten Code-Vektors
sacbr(FSEL) geschickt.
-
Der adaptive/festgelegte Selektor 1320 wählt entweder den adaptiven Code-Vektor
nach einer End-Auswahl oder den festgelegten Code-Vektor nach einer End-Auswahl als
einen adaptiven/festgelegten Code-Vektor Af(k) (0 ≤ k ≤ Ns - 1) entsprechend der Größen-
Relation und der Polaritäts-Relation unter prac(ASEL), sacbr(ASEL), prfc(FSEL) und
sfcbr(FSEL) (beschrieben in einer Gleichung 17) aus, empfangen von dem Komparator
1322.
-
wobei
-
Af(k): adaptiver/festgelegter Code-Vektor
-
ASEL: Index eines adaptiven Code-Vektors nach einer End-Auswahl
-
FSEL: Index eines festgelegten Code-Vektors einer End-Auswahl
-
k: Element-Zahl eines Vektors
-
Pacb(ASEL,k): adaptiver Code-Vektor nach einer End-Auswahl
-
Pfcb(FSEL,k): festgelegter Code-Vektor nach einer End-Auswahl Pfcb(FSEL,k)
-
sacbr(ASEL): Referenz-Wert nach einer End-Auswahl eines adaptiven Code-Vektors
-
sfcbr(FSEL): Referenz-Wert nach einer End-Auswahl eines festgelegten Code-Vektors
-
prac(ASEL): Referenz-Werte nach einer Vorauswahl eines von adaptiven Code-Vektoren
-
prfc(FSEL): Referenz-Werte nach einer Vorauswahl von festgelegten Code-Vektoren
prac(FSEL)
-
Der ausgewählte, adaptive/festgelegte Code-Vektor Af(k) wird zu dem
wahrnehmungsmäßig gewichteten LPC-Synthese-Filter A 1321 geschickt, und ein Index, der die Zahl
darstellt, die der ausgewählte, adaptive/festgelegte Code-Vektor Af(k) erzeugt hat, wird als
ein adaptiver/festgelegter Index AFSEL zu dem Parameter-Codier-Abschnitt 1331
geschickt. Wenn die gesamte Zahl von adaptiven Code-Vektoren und festgelegten Code-
Vektoren so zugeordnet wird, daß sie 255 ist, (siehe Tabelle 6), ist der
adaptive/festgelegte Index AFSEL ein Code von 8 Bits.
-
Der wahrnehmungsmäßig gewichtete LPC-Synthese-Filter A 1321 führt eine
wahrnehmungsmäßig gewichtete LPC-Synthese in Bezug auf den adaptiven/festgelegten Code-
Vektor Af(k) durch, ausgewählt durch den adaptiven/festgelegten Selektor 1320, um einen
synthetisierten, adaptiven/festgelegten Code-Vektor SYNaf(k) (0 ≤ k ≤ Ns - 1) zu erzeugen,
und schickt ihn zu dem Komparator A 1322.
-
Der Komparator A 1322 erhält zuerst die Energie powp des synthetisierten,
adaptiven/festgelegten Code-Vektors SYNaf(k) (0 ≤ k ≤ Ns - 1), empfangen von dem
wahrnehmungsmäßig gewichteten Synthese-Filter A 1321, unter Verwendung einer Gleichung 18.
-
powp = SYNaf²(k) (18)
-
wobei
-
powm: Energie eines adaptiven/festgelegten Code-Vektors (SYNaf(k))
-
k: Element-Zahl eines Vektors (0 ≤ k ≤ Ns - 1)
-
Ns: Unterrahmen-Länge (= 52)
-
SYNaf(k): adaptiver/festgelegter Code-Vektor.
-
Dann werden das innere Produkt pr des Target-Vektors, empfangen von dem Target-
Vektor-Generator A 1316, und der synthetisierte, adaptive/festgelegte Code-Vektor
SYNaf(k), von einer Gleichung 19 erhalten
-
pr = SYNaf(k) · r(k) (19)
-
wobei
-
pr: inneres Produkt von SYNaf(k) und r(k)
-
Ns: Unterrahmen-Länge (= 52)
-
SYNaf(k): adaptiver/festgelegter Code-Vektor
-
r(k): Target-Vektor
-
k: Element-Zahl eines Vektors (0 ≤ k ≤ Ns - 1).
-
Weiterhin wird der adaptive/festgelegte Code-Vektor Af(k), empfangen von dem
adaptiven/festgelegten Selektor 1320, zu einem ein adaptives Codebuch aktualisierenden
Abschnitt 1333 geschickt, um die Energie POWaf von Af(k) zu berechnen, wobei der
synthetisierte, adaptive/festgelegte Code-Vektor SYNaf(k) und POWaf zu dem Parameter-
Codier-Abschnitt 1331 geschickt werden, und powp, pr, r(k) und rh(k) werden zu einem
Komparator B 1330 geschickt.
-
Der Target-Vektor-Generator B 1325 subtrahiert den synthetisierten,
adaptiven/festgelegten Code-Vektor SYNaf(k), empfangen von dem Komparator A 1322, von
dem Target-Vektor r(i) (0 ≤ i ≤ Ns - 1), empfangen von dem KomparatorA 1322, um einen
neuen Target-Vektor zu erzeugen, und schickt den neuen Target-Vektor zu dem
wahrnehmungsmäßig gewichteten LPC-Umkehr-Synthese-Filter B 1326.
-
Der wahrnehmungsmäßig gewichtete LPC-Umkehr-Synthese-Filter B 1326 sortiert die
neuen Target-Vektoren, erzeugt durch den Target-Vektor-Generator B 1325, in einer Zeit-
Umkehr-Ordnung, schickt die sortierten Vektoren zu dem wahrnehmungsmäßig
gewichteten LPC-Synthese-Filter in einem Null-Zustand, wobei die Ausgabe-Vektoren erneut in
einer Zeit-Umkehr-Ordnung sortiert werden, um Zeit umgekehrte synthetisierte Vektoren
ph(k) (0 ≤ k ≤ Ns - 1) zu erzeugen, die wiederum zu dem Komparator B 1330 geschickt
werden.
-
Ein Anregungs-Vektor-Generator 1337, der in Verwendung ist, ist derselbe wie, zum
Beispiel, der Anregungs-Vektor-Generator 70, der in dem Abschnitt von dem dritten Mode
beschrieben worden ist. Der Anregungs-Vektor-Generator 70 erzeugt einen Random-
Code-Vektor, wenn der erste Keim bzw. Seed von dem Seed-Speicher-Abschnitt 71
gelesen ist, und wird zu dem nicht-linearen, digitalen Filter 72 eingegeben. Der Random-Code-
Vektor, erzeugt durch den Anregungs-Vektor-Generator 70, wird zu dem
wahrnehmungsmäßig gewichteten LPC-Synthese-Filter B 1329 und dem Komparator B 1330 geschickt.
Dann wird, wenn der zweite Seed vom dem Seed-Speicher-Abschnitt 71 gelesen wird und
zu nicht-linearen, digitalen Filter 72 eingegeben wird, ein Random-Code-Vektor erzeugt
und zu dem Filter B 1329 und dem Komparator B 1330 ausgegeben.
-
Um Random-Code-Vektoren, erzeugt basierend auf dem ersten Seed, zu Nstb (= 6)
Kandidat von Nst (= 64) Kandidaten vorab auszuwählen, fordert der Komparator B 1330
Referenz-Werte cr(11) (0 ≤ i1 ≤ Nstb 1 - 1) für eine Vorab-Auswahl der ersten Random-Code-
Vektoren von einer Gleichung 20 an.
-
wobei
-
cr(i1): Referenz-Werte für eine Vorauswahl der ersten Random-Code-Vektoren
-
Ns: Unterrahmen-Länge (= 52)
-
rh(j): in der Zeit umgekehrter, synthetisierter Vektor als ein Target-Vektor (r(j))
-
powp: Energie eines adaptiven/festgelegten Vektors (SYNaf(k))
-
pr: inneres Produkt von SYNaf(k) und r(k)
-
Pstb1(i1,j): erster Random-Code-Vektor
-
ph(j): in der Zeit umgekehrter, synthetisierter Vektor von SYNaf(k)
-
i1: Zahl des ersten Random-Code-Vektors (0 ≤ i1 ≤ Nst - 1)
-
j: Element-Zahl eines Vektors.
-
Durch Vergleichen der erhaltenen Werte cr(i1) werden die oberen Nstb (= 6) Indizes, wenn
die Werte groß werden, und innere Produkte mit den Indizes, verwendet als Argumente,
ausgewählt, und werden jeweils als Indizes der ersten Random-Code-Vektoren nach einer
Vorab-Auswahl von s1psel(j1) (0 ≤ j1 ≤ Nstb - 1) und der ersten Random-Code-Vektoren
nach einer Vorab-Auswahl von Pstb1 (s1psel(j1,k), (0 ≤ j1 ≤ Nstb - 1, (0 ≤ k ≤ Ns - 1)
gesichert. Dann wird derselbe Prozeß, wie er für die ersten Random-Code-Vektoren
vorgenommen ist, für zweite Random-Code-Vektoren durchgeführt, und Indizes und innere
Produkte werden jeweils als Indizes der zweiten Random-Code-Vektoren nach einer Vorab-
Auswahl von s1psel(j2) (0 ≤ j2 ≤ Nstb - 1) und von zweiten Random-Code-Vektoren nach
einer Vorab-Auswahl von Pstb2(s2psel(j2),k) (0 ≤ j2 ≤ Nstb - 1, 0 ≤ k ≤ Ns - 1) gesichert.
Der wahrnehmungsmäßig gewichtete LPC-Synthese-Filter B 1329 führt eine
wahrnehmungsmäßig gewichtete LPC-Synthese in Bezug auf die ersten Random-Code-Vektoren
nach einer Vorab-Auswahl von Pstb1(s1psel(j1),k) durch, um synthetisierte, erste
Random-Code-Vektoren SYNstb1(s1psel(j1),k) zu erzeugen, die wiederum zu dem
Komparator B 1330 geschickt werden. Dann wird die wahrnehmungsmäßig gewichtete LPC-
Synthese in Bezug auf die zweiten Random-Code-Vektoren nach einer Vorab-Auswahl
von Pstb2(s1psel(j2),k) durchgeführt, um synthetisierte zweite Random-Code-Vektoren
SYNstb2(s2psel(j2),k) zu erzeugen, die wiederum zu dem Komparator B 1330 geschickt
werden. Um eine End-Auswahl in Bezug auf die ersten Random-Code-Vektoren nach
einer Vorab-Auswahl von Pstb1(s1psel(j1),k) und der zweiten Random-Code-Vektoren nach
einer Vorab-Auswahl von Pstb2(s1psel(j2),k) durchzuführen, vorab ausgewählt durch den
Komparator B 1330 selbst, führt der Komparator B 1330 die Berechnung einer Gleichung
21 in Bezug auf die synthetisierten, ersten Random-Code-Vektoren SYNstb1(s1psel)j1),k)
aus, berechnet in dem wahrnehmungsmäßig gewichteten LPC-Synthese-Filter B 1329.
-
wobei
-
SYNOstb1(s1psel(j1),k): orthogonal synthetisierter, erster Random-Code-Vektor
-
SYNstb1(s1psel(j1),k): synthetisierter, erster Random-Code-Vektor
-
Pstb1(s1psel(j1),k): erster Random-Code-Vektor nach einer Vorab-Auswahl
-
SYNaf(j): adaptiver/festgelegter Code-Vektor
-
powp: Energie des adaptiven/festgelegten Vektors (SYNaf(j))
-
Ns: Unterrahmen-Länge (= 52)
-
ph(k): synthetisierter Zeit-Umkehr-Vektor von SYNafi(j)
-
j1: Zahl des ersten Random-Code-Vektors nach einer Vorab-Auswahl
-
k: Element-Zahl eines Vektors (0 ≤ k ≤ Ns - 1).
-
Orthogonal synthetisierte, erste Random-Code-Vektoren SYNOstb1(s1psel(j1),k) werden
erhalten, und eine ähnliche Berechnung wird in Bezug auf die synthetisierten, zweiten
Random-Code-Vektoren SYNstb2(s2psel(j2),k) durchgeführt, um orthogonal synthetisierte,
zweite Random-Code-Vektoren SYNOstb2(s2psel(j2),k) zu erhalten, und Referenz-Werte
nach einer abschließenden Auswahl eines ersten Random-Code-Vektors s1cr und
Referenz-Werten nach einer abschließenden Auswahl eines zweiten Random-Code-Vektors
S2cr werden in einer geschlossenen Schleife jeweils unter Verwendung von den
Gleichungen 22 und 23 für alle Berechnungen (36 Kombinationen) von (s1psel(j1), s2psel(j2))
berechnet.
-
wobei
-
scr1: Referenz-Wert nach End-Auswahl eines festgelegten ersten Random-Code-Vektors
-
cscr1: konstante, zuvor berechnete Form einer Gleichung 24
-
SYNOstb1(s1psel(j1),k): orthogonal synthetisierte, erste Random-Code-Vektoren
-
SYNOstb2(s2psel(j2),k): orthogonal synthetisierte, zweite Random-Code-Vektoren
-
r(k): Target-Vektor
-
s1psel(j1): Index des ersten Random-Code-Vektors nach einer Vorab-Auswahl
-
s2psel(j2): Index eines zweiten Random-Code-Vektors nach einer Vorab-Auswahl
-
Ns: Unterrahmen-Länge (= 52)
-
k: Element-Zahl eines Vektors
-
wobei
-
scr2: Referenz-Wert nach einer End-Auswahl eines zweiten Random-Code-Vektors
-
cscr2: konstante, zuvor berechnete Form einer Gleichung
-
SYNOstb1(s1psel(j1),k): orthogonal synthetisierte, erste Random-Code-Vektoren
-
SYNOstb2(s2psel(j2),k): orthogonal synthetisierte, zweite Random-Code-Vektoren
-
r(k): Target-Vektor
-
s1psel(j1): Index eines ersten Random-Code-Vektors nach einer Vorab-Auswahl
-
s2psel(j2): Index eines zweiten Random-Code-Vektors nach einer Vorab-Auswahl
-
Ns: Unterrahmen-Länge (= 52)
-
k: Element-Zahl eines Vektors.
-
Es ist anzumerken, daß ein cs1cr in der Gleichung 22 und cs2cr in der Gleichung 23
Konstanten sind, die zuvor unter Verwendung der Gleichungen 24 und 25 jeweils berechnet
worden sind.
-
cscr1 = SYNOstb1(s1psel(j1),k) · r(k) + SYNOstb2(s2psl(j2),k) · r(k) (24)
-
wobei
-
cscr1: Konstante für eine Gleichung 29
-
SYNOstb1(s1psel(j1),k): orthogonal synthetisierte, erste Random-Code-Vektoren
-
SYNOstb2(s2psel(j2),k): orthogonal synthetisierte, zweite Random-Code-Vektoren
-
r(k): Target-Vektor
-
s1psel(j1): Index eines ersten Random-Code-Vektors nach einer Vorab-Auswahl
-
s2psel(j2): Index eines zweiten Random-Code-Vektors nach einer Vorab-Auswahl
-
Ns: Unterrahmen-Länge (= 52)
-
k: Element-Zahl eines Vektors
-
cscr1 = SYNOstb1(s1psel(j1),k) · r(k) - SYNOstb2(s2psl(j2),k) · r(k) (25)
-
wobei
-
cscr2: Konstante für die Gleichung 23
-
SYNOstb1(s1psel(j1),k): orthogonal synthetisierte, erste Random-Code-Vektoren
-
SYNOstb2(s2psel(j2),k): orthogonal synthetisierte, zweite Random-Code-Vektoren
-
r(k): Target-Vektor
-
s1psel(j1): Index eines ersten Random-Code-Vektors nach einer Vorab-Auswahl
-
s2psel(j2): Index eines zweiten Random-Code-Vektors nach einer Vorab-Auswahl
-
Ns: Unterrahmen-Länge (= 52)
-
k: Element-Zahl eines Vektors.
-
Der Komparator B 1330 substituiert den maximalen Wert von S1cr in MAXs1cr, substituiert
den maximalen Wert von S2cr in MAXs2cr, setzt MAXs1cr oder MAXs2cr, was immer
auch größer ist, als scr, und schickt den Wert von s1psel(j1), auf den Bezug genommen
worden ist, als scr erhalten wurde, zu dem Parameter-Codier-Abschnitt 1331 als ein Index
eines ersten Random-Code-Vektors nach einer End-Auswahl SSEL1. Der Random-Code-
Vektor, der SSEL1 entspricht, wird als erster Random-Code-Vektor nach einer End-
Auswahl Pstb1 (SSEL1,k) gesichert und wird zu dem Parameter-Codier-Abschnitt 1331
geschickt, um einen ersten Random-Code-Vektor nach einer End-Auswahl von
SYNstb1(SSEL1,k) (≤ k ≤ Ns - 1) entsprechend zu Pstb1(SSEL1,k) anzufordern.
-
In ähnlicher Weise wird der Wert von s2psel(j2), auf den Bezug genommen worden ist, der
als scr erhalten wurde, zu dem Parameter-Codier-Abschnitt 1331 als ein Index eines
zweiten Random-Code-Vektors nach einer End-Auswahl SSEL2 geschickt. Der Random-
Code-Vektor, der SSEL2 entspricht, wird als ein zweiter Random-Code-Vektor nach einer
End-Auswahl Pstb2(SSEL2,k) gesichert und wird zu dem Parameter-Codier-Abschnitt
1331 geschickt, um einen zweiten Random-Code-Vektor nach einer End-Auswahl
SYNstb2(SSEL2,k) (0 ≤ k ≤ Ns - 1) entsprechend zu Pstb2(SSEL2,k) anzufordern.
-
Der Komparator B1330 fordert weiterhin Code S1 und S2 an, mit denen die
Pstb1(SSEL1,k) und Pstb2(SSEL2,k) jeweils multipliziert werden, und zwar von einer
Gleichung 26, und schickt Polaritäts-Informationen Is1s2 der erhaltenen S1 und S2 zu dem
Parameter-Codier-Abschnitt 1331 als ein Verstärkungs-Polaritäts-Index Is1s2 (2-Bit-
Informationen)
-
wobei
-
S1: Code des ersten Random-Code-Vektors nach einer End-Auswahl
-
S2: Code des zweiten Random-Code-Vektors nach einer End-Auswahl
-
scr1: Ausgang der Gleichung 29
-
scr2: Ausgang der Gleichung 23
-
cscr1: Ausgang der Gleichung 24
-
cscr2: Ausgang der Gleichung 25.
-
Ein Random-Code-Vektor ST(k) (0 ≤ k ≤ Ns - 1) wird durch eine Gleichung 27 erzeugt und
zu dem adaptiven Codebuch-Aktualisierungs-Abschnitt 1333 ausgegeben, und seine
Energie POWsf wird angefordert und zu dem Parameter-Codier-Abschnitt 1331
ausgegeben.
-
ST(k) = S1 · Pstb1(SSEL1,k) + S2 · Pstb2(SSEL2,k) (27)
-
wobei
-
ST(k): möglicher Code-Vektor
-
S1: Code des ersten Random-Code-Vektors nach einer End-Auswahl
-
S2: Code des zweiten Random-Code-Vektors nach einer End-Auswahl
-
Pstb1(SSEL1,k): Code-Vektor der ersten Stufe, der erhalten ist, nach einer End-Auswahl
-
Pstb1(SSEL2,k): Code-Vektor der zweiten Stufe, der erhalten ist, nach einer End-Auswahl
-
SSEL1: Index des ersten Random-Code-Vektors nach einer End-Auswahl
-
SSEL2: zweiter Random-Code-Vektor nach einer End-Auswahl
-
k: Element-Zahl eines Vektors (0 ≤ k ≤ Ns - 1)
-
Ein synthetisierter Random-Code-Vektor SYNst(k) (0 ≤ k ≤ Ns - 1) wird durch eine
Gleichung 28 erzeugt und zu dem Parameter-Codier-Abschnitt 1331 ausgegeben.
-
SYNst(k) = S1 · SYNstb1(SSEL1,k) + S2 · SYNstb2(SSEL2,k) (28)
-
wobei
-
STNst(k): synthetisierter, wahrscheinlicher Code-Vektor
-
S1: Code des ersten Random-Code-Vektors nach einer End-Auswahl
-
S2: Code des zweiten Random-Code-Vektors nach einer End-Auswahl
-
SYNstb1(SSEL1,k): synthetisierter, erster Random-Code-Vektor
nach einer End-Auswahl
-
SYNstb2(SSEL2,k): synthetisierter, zweiter Random-Code-Vektor nach einer End-Auswahl
k: Element-Zahl eines Vektors (0 ≤ k ≤ Ns - 1)
-
Der Parameter-Codier-Abschnitt 1331 fordert zuerst eine Rest-Energie-Abschätzung für
jeden Unterrahmen rs von einer Gleichung 29 unter Verwendung der decodierten
Rahmen-Energie spow, was durch den Rahmen-Energie-Quantisierungs-Decodier-Abschnitt
1302 erhalten worden ist, und die normierte, prädikative Rest-Energie resid, was durch
den Pitch-Vorselektor 1308 erhalten ist, an.
-
rs = NsXspowXresid (29)
-
wobei
-
rs: Rest-Energie-Abschätzung für jeden Unterrahmen
-
Ns: Unterrahmen-Länge (= 52)
-
spow: decodierte Rahmen-Energie
-
resid: normierte, prädikative Rest-Energie.
-
Ein Referenz-Wert zur Quantisierungs-Verstärkungs-Auswahl STDg wird von einer
Gleichung 30 unter Verwendung der angeforderten Rest-Energie-Abschätzung für jeden
Unterrahmen rs, die Energie des adaptiven/festgeflegten Code-Vektors POWaf, berechnet in
dem Komparator A 1322, die Energie des Random-Code-Vektors POWst, berechnet in
dem Komparator B 1330, eine Verstärkungs-Quantisierungs-Tabelle (CGafi[i], CGst[i]) (0 ≤
i ≤ 127) von 256 Worten, gespeichert in einem Verstärkungs-Quantisierungs-Tabellen-
Speicher-Abschnitt 1332, und dergleichen, angefordert.
Tabelle 7: Verstärkungs-Quantisierungs-Tabelle
-
wobei
-
STDg: Referenz-Wert zur Quantisierungs-Verstärkungs-Auswahl
-
rs: Rest-Energie-Abschätzung für jeden Unterrahmen
-
POWaf: Energie des adaptiven/festgelegten Code-Vektors
-
POWSst: Energie des Random-Code-Vektors
-
i: Index der Verstärkungs-Quantisierungs-Tabelle (0 ≤ i ≤ 127)
-
CGaf(i): Komponente auf der Seite des adaptiven/festgelegten Code-Vektors in der
Verstärkungs-Quantisierungs-Tabelle
-
CGst(i): Komponente auf der Seite des Random-Code-Vektors in der Verstärkungs-
Quantisierungs-Tabelle
-
SYNaf(k): synthetisierter, adaptiver/festgelegter Code-Vektor
-
SYNst(k): synthetisierter Random-Code-Vektor
-
r(k): Target-Vektor
-
Ns: Unterrahmen-Länge (= 52)
-
k: Element-Zahl eines Vektors (0 ≤ k ≤ Ns - 1).
-
Ein Index wird, wenn der angeforderte Referenz-Wert zur Quantisierungs-Verstärkungs-
Auswahl STDg minimal wird, als ein Verstärkungs-Quantisierungs-Index Ig ausgewählt,
wobei eine End-Verstärkung in Bezug auf die Seite des adaptiven/festgelegten Code-
Vektors Gaf, die tatsächlich auf AF(k) angewandt werden soll, und eine End-Verstärkung
auf der Seite des Random-Code-Vektors Gst, die tatsächlich auf ST(k) angewandt werden
soll, von einer Gleichung 31 unter Verwendung einer Verstärkung nach einer Auswahl des
adaptiven/festgelegten Code-Vektors CGaf(Ig) erhalten, was von der Verstärkungs-
Quantisierungs-Tabelle basierend auf dem ausgewählten Verstärkungs-Quantisierungs-
Index Ig gelesen wird, eine Verstärkung nach Auswahl des Random-Code-Vektors
CGst(Ig), was von der Verstärkungs-Quantisierungs-Tabelle basierend auf dem
ausgewählten Verstärkungs-Quantisierungs-Index Ig gelesen wird, usw., erhalten, und werden
zu dem adaptiven Codebuch-Aktualisierungs-Abschnitt 1333 geschickt.
-
wobei
-
Gaf: End-Verstärkung auf der Seite des adaptiven/festgelegten Code-Vektors
-
Gst: End-Verstärkung auf der Seite des Random-Code-Vektors Gst
-
rs: Rest-Energie-Abschätzung für jeden Unterrahmen
-
POWaf: Energie des adaptiven/festgelegten Code-Vektors
-
POWst: Energie des Random-Code-Vektors
-
CGaf(Ig): Energie des Code-Vektors der festgelegten/adaptiven Seite
-
CGst(Ig): Verstärkung nach einer Auswahl einer Seite eines Random-Code-Vektors
-
Ig: Verstärkungs-Quantisierungs-Index.
-
Der Parameter-Codier-Abschnitt 1331 wandelt den Index der Energie Ipow, erhalten durch
den Rahmen-Energie-Quantisierungs/Decodier-Abschnitt 1302, den LSP-Code Ilsp,
erhalten durch den LSP-Quantisierungs/Codier-Abschnitt 1306, den adaptiven/festgelegten
Index AFSEL, erhalten durch den adaptiven/festgelegten Selektor 1320, den Index des
ersten Random-Code-Vektors nach einer End-Auswahl SSEL1, den zweiten Random-
Code-Vektor nach einer End-Auswahl SSEL2 und die Polaritäts-Information Is1s2,
erhalten durch den Komparator B 1330, und den Verstärkungs-Quantisierungs-Index Ig, erhalten
durch den Parameter-Codier-Abschnitt 1331, in einen Sprach-Code, der wiederum zu
einem Transmitter 1334 übertragen wird.
-
Der adaptive Codebuch-Aktualisierungs-Abschnitt 1333 führt einen Prozeß einer
Gleichung 32 zum Multplizieren des adaptiven/festgelegten Code-Vektors AF(k), erhalten
durch den Komparator A 1322, und den Random-Code-Vektor ST(k), erhalten durch den
Komparator B 1330, jeweils mit der die End-Verstärkung auf der Seite des
adaptiven/festgelegten Code-Vektors Gaf und der End-Verstärkung auf der Seite des Random-
Code-Vektors Gst, erhalten durch den Parameter-Codier-Abschnitt 1331, und Addieren
der Ergebnisse, um dadurch einen Anregungs-Vektor ex(k) (0 ≤ k ≤ Ns - 1) zu erzeugen,
durch und schickt den erzeugten Anregungs-Vektor ex(k) (0 ≤ k ≤ Ns - 1) zu dem adaptiven
Codebuch 1318.
-
ex(k) = Gaf · Af(k) + Gst · ST(k) (32)
-
wobei
-
es(k): Anregungs-Vektor
-
AF(k): adaptiver/festgelegter Code-Vektor
-
ST(k): Random-Code-Vektor
-
k: Element-Zahl eines Vektors (0 ≤ k ≤ Ns - 1).
-
Zu diesem Zeitpunkt wird ein alter Anregungs-Vektor in dem adaptiven Codebuch 1318
ausgesondert und wird durch einen neuen Anregungs-Vektor ex(k), empfangen von dem
adaptiven Codebuch-Aktualisierungs-Absch n itt 1333, aktualisiert.
(Achter Mode)
-
Eine Beschreibung wird von einem achten Mode angegeben, bei dem irgendein
Anregungs-Vektor-Generator, beschrieben in den ersten bis sechsten Moden, als ein Sprach-
Decodierer verwendet wird, der auf dem PSI-CELP, dem Standard-Sprach-
Codier/Decodier-System für PDC-digital-portabel-Telefone, basiert. Der Decodierer läuft
parallel zu dem vorstehend beschriebenen siebten Mode.
-
Fig. 14 stellt ein funktionales Blockdiagramm eines Sprach-Decodierers gemäß dem
achten Mode dar. Ein Parameter-Decodier-Abschnitt 1402 erhält den Sprach-Code (Index der
Energie Ipow, den LSP-Code Ilsp, der adaptiven/festgelegten Index AFSEL, der Index des
ersten Random-Code-Vektors nach einer End-Auswahl von SSEL1, der zweite Random-
Code-Vektor nach einer End-Auswahl SSEL2, der Verstärkungs-Quantisierungs-Index Ig
und der Verstärkungs-Polaritäts-Index Is1s2), geschickt von dem Sprach-Codierer vom
CELP-Typ, dargestellt in Fig. 13, über einen Transmitter 1401.
-
Als nächstes wird ein skalarer Wert, angezeigt durch den Index der Energie Ipow von der
Energie-Quantisierungs-Tabelle (siehe Tabelle 3), gespeichert in einem Energie-
Quantisierungs-Tabellen-Speicher-Abschnitt 1405, gelesen, wird als decodierte Rahmen-
Energie Spow zu einem Energie-Umspeicher-Abschnitt 1417 geschickt, und ein Vektor;
angezeigt durch den LSP-Code llsp wird von der LSP-Quantisierungs-Tabelle eines LSP-
Quantisierungs-Tabellen-Speicher-Abschnitts 1404 gelesen und wird als eine decodierte
LSP zu einem LSP-Interpolations-Abschnitt 1406 geschickt. Der adaptive/festgelegte
Index AFSEL wird zu einem adaptiven Code-Vektor-Generator 1408, einem festgelegten
Code-Vektor-Lese-Abschnitt 1411 und einem adaptiven/festgelegten Selektor 1412
geschickt, und der Index des ersten Random-Code-Vektors nach einer End-Auswahl SSEL1
und der zweite Random-Code-Vektor nach einer End-Auswahl SSEL2 werden zu einem
Anregungs-Vektor-Generator 1414 ausgegeben. Der Vektor (CAaf(Ig), CGst(Ig)),
angezeigt durch den Verstärkungs-Quantisierungs-Index Ig, wird von der Verstärkungs-
Quantisierungs-Tabelle (siehe Tabelle 7), gespeichert in einem Verstärkungs-
Quantisierungs-Tabellen-Speicher-Abschnitt 1403, gelesen, die End-Verstärkung in Bezug
auf die End-Verstärkung auf der Seite des adaptiven/festgelegten Code-Vektors Gaf, die
tatsächlich auf AF(k) angewandt werden soll, und die End-Verstärkung auf der Seite des
Random-Code-Vektors Gst, die tatsächlich auf ST(k) angewandt werden soll, werden von
der Gleichung 21 erhalten, wie dies auf der Codierer-Seite vorgenommen ist, und die
erhaltene End-Verstärkung auf der Seite des adaptiven/festgelegten Code-Vektors Gaf und
die End-Verstärkung auf der Seite des Random-Code-Vektors Gst werden zusammen mit
dem Verstärkungs-Polaritäts-Index Is1s2 zu einem Anregungs-Vektor-Generator 1413
ausgegeben.
-
Der LSP-Interpolations-Abschnitt 1406 erhält einen decodierten, interpolierten
LSPωintp(n,i) (1 ≤ i ≤ Np) Unterrahmen für Unterrahmen von der decodierten LSP,
empfangen von dem Parameter-Decodier-Abschnitt 1402, wandelt das erhaltene ωintp(n,i) zu
einer LPC, um eine decodierte, interpolierte LPC zu erhalten, und schickt die decodierte,
interpolierte LPC zu einem LPC-Synthese-Filter 1416.
-
Der adaptive Code-Vektor-Generator 1408 konvolutiert einige der Polyphasen-
Koeffizienten, gespeichert in einem Polyphasen-Koeffizienten-Speicher-Abschnitt 1409
(siehe Tabelle 5) in Bezug auf Vektoren, die von einem adaptiven Codebuch 1407 gelesen
sind, und zwar basierend auf dem adaptiven/festgelegten Index AFSEL, empfangen von
dem Parameter-Decodier-Abschnitt 1402, um dadurch adaptive Code-Vektoren zu einer
fraktionalen Päzision zu erzeugen, und schickt die adaptiven Code-Vektoren zu dem
adaptiven/festgelegten Selektor 1412. Der Lese-Abschnitt 1411 für den festgelegten Code-
Vektor liest festgelegte Code-Vektoren von einem festgelegten Codebuch 1410 basierend
auf dem adaptiven/festgelegten Index AFSEL, empfangen von dem Parameter-Decodier-
Abschnitt 1402, und schickt sie zu dem adaptiven/festgelegten Selektor 1412.
-
Der adaptive/festgelegte Selektor 1412 wählt entweder die adaptive Code-Vektor-Eingabe
von dem adaptiven Code-Vektor-Generator 1408 oder die festgelegte Code-Vektor-
Eingabe von dem festgelegten Code-Vektor-Lese-Abschnitt 1411, wie der
adaptive/festgelegte Code-Vektor AF(k), basierend auf dem adaptiven/festgelegten Index AF-
SEL, empfangen von dem Parameter-Decodier-Abschnitt 1402, aus, und schickt den
ausgewählten, adaptiven/festgelegten Code-Vektor AF(k) zu dem Anregungs-Vektor-
Generator 1413. Der Anregungs-Vektor-Generator 1414 erhält den ersten Seed und den
zweiten Seed von dem Seed-Speicher-Abschnitt 71 basierend auf dem Index des ersten
Random-Code-Vektors nach einer End-Auswahl SSEL1 und des zweiten Random-Code-
Vektors nach einer End-Auswahl SSEL2, empfangen von dem Parameter-Codier-
Abschnitt 1402, und schickt die Seeds zu dem nicht-linearen, digitalen Filter 72, um den
ersten Random-Code-Vektor und den zweiten Random-Code-Vektor jeweils zu erzeugen.
Dieser reproduzierte erste Random-Code-Vektor und zweite Random-Code-Vektor
werden jeweils mit den Informationen der ersten Stufe S1 und den Informationen der zweiten
Stufe S2 des Verstärkungs-Polaritäts-Index multipliziert, um einen Anregungs-Vektor
ST(k) zu erzeugen, der zu dem Anregungs-Vektor-Generator 1413 geschickt wird.
-
Der Anregungs-Vektor-Generator 1413 multipliziert den adaptiven/festgelegten Code-
Vektor AF(k), empfangen von dem adaptiven/festgelegten Selektor 1412, und den
Anregungs-Vektor ST(k), empfangen von dem Anregungs-Vektor-Generator 1414, jeweils mit
der End-Verstärkung auf der Seite des adaptiven/festgelegten Code-Vektors Gaf und der
End-Verstärkung auf der Seite des Random-Code-Vektors Gst, erhalten durch den
Parameter-Decodier-Abschnitt 1402, führt eine Addition oder Subtraktion basierend auf dem
Verstärkungs-Polaritäts-Index Is1s2 durch, was den Anregungs-Vektor ex(k) ergibt, und
schickt den erhaltenen Anregungs-Vektor zu dem Anregungs-Vektor-Generator 1413 und
dem adaptiven Codebuch 1407. Hierbei wird ein alter Anregungs-Vektor in dem adaptiven
Codebuch 1407 mit einer neuen Anregungs-Vektor-Eingabe von dem Anregungs-Vektor-
Generator 1413 aktualisiert.
-
Der LPC-Synthese-Filter 1416 führt eine LPC-Synthese in Bezug auf den Anregungs-
Vektor, erzeugt durch den Anregungs-Vektor-Generator 1413, unter Verwendung des
Synthese-Filters, der durch die decodierte, interpolierte LPC, empfangen von dem LSP-
Interpolations-Abschnitt 1406, gebildet ist, durch, und schickt den Filter-Ausgang zu dem
Energie-Umspeicher-Abschnitt 1417. Der Energie-Umspeicher-Abschnitt 1417 erhält
zuerst die mittlere Energie des synthetisierten Vektors des Anregungs-Vektors, erhalten
durch den LPC-Synthese-Filter 1416, dividiert dann die decodierte Rahmen-Energie spow,
empfangen von dem Parameter-Decodier-Abschnitt 1402, durch die erhaltene,
durchschnittliche Energie, und multipliziert den synthetisierten Vektor des Anregungs-Vektors
durch das Divisionsergebnis, um eine synthetisierte Sprache 518 zu erzeugen.
(Neunter Mode)
-
Fig. 15 zeigt ein Blockdiagramm der wesentlichen Bereiche eines Sprach-Codierers
gemäß einem neunten Mode. Dieser Sprach Codierer besitzt einen Quantisierungs-Target-
LSP-Addier-Abschnitt 151, einen LSP-Quantisierungs/Decodier-Abschnitt 152, einen LSP-
Quantisierungs-Fehler-Komparator 153, hinzugefügt zu dem Sprach-Codierer, dargestellt
in Fig. 13, oder Teile seiner Funktionen, die modifiziert sind.
-
Der LPC-Analysier-Abschnitt 1304 erhält eine LPC unter Durchführen einer linearen,
prädikativen Analyse in Bezug auf einen Verarbeitungs-Rahmen in dem Puffer 1301, wandelt
die erhaltene LPC, um eine Quantisierungs-Target-LSP zu erzeugen, und schickt die
erzeugte Quantisierungs-Target-LSP zu dem Quantisierungs-Target-LSP-Addier-Abschnitt
151. Der LPC-Analyse-Abschnitt 1304 besitzt auch eine bestimmte Funktion einer
Durchführung einer linearen, prädikativen Analyse in Bezug auf einen vorab gelesenen Bereich,
um eine LPC für den vorab gelesenen Bereich zu erhalten, eines Umwandelns der
erhaltenen LPC zu einer LSP für den vorab gelesenen Bereich, und eines Schickens der LSP
zu dem Quantisierungs-Target-LSP-Addier-Abschnitt 151.
-
Der Quantisierungs-Target-LSP-Addier-Abschnitt 151 erzeugt eine Mehrzahl von
Quantisierungs-Target-LSPs zusätzlich zu den Quantisierungs-Target-LSPs, die direkt durch
Umwandeln von LPCs in einen Verarbeitungs-Rahmen in dem LPC-Analysier-Abschnitt
1304 erhalten sind.
-
Der LSP-Quantisierungs-Tabellen-Speicher-Abschnitt 1307 speichert die Quantisierungs-
Tabelle, auf die durch den LSP-Quantisierungs/Decodier-Abschnitt 152 Bezug genommen
wird, und der LSP-Quantisierungs/Decodier-Abschnitt 152 quantisiert/decodiert die
erzeugte Mehrzahl von Quantisierungs-Target-LSPs, um decodierte LSPs zu erzeugen.
Der LSP-Quantisierungs-Fehler-Komparator 153 vergleicht die erzeugten, decodierten
LSPs miteinander, um, in einer geschlossenen Schleife, eine decodierte LSP
auszuwählen, die ein Allophon minimiert, und verwendet neu die ausgewählte, decodierte LSP als
eine decodierte LSP für den Verarbeitungs-Rahmen.
-
Fig. 16 stellt ein Blockdiagramm des Quantisierungs-Target-LSP-Addier-Abschnitts 151
dar.
-
Der Quantisierungs-Target-LSP-Addier-Abschnitt 151 weist einen Momentan-Rahmen-
LSP-Speicher 161 zum Speichern der Quantisierungs-Target-LSP des Verarbeitungs-
Rahmens, erhalten durch den LPC-Analysier-Abschnitt 1304, einen vorab Lese-Bereich-
LSP-Speicher 162 zum Speichern der LSP des vorab gelesenen Bereichs, Erhalten durch
den LPC-Analysier-Abschnitt 1304, einen Zuvor-Rahmen-LSP-Speicher 163 zum
Speichern der decodierten LSP des vorherigen Verarbeitungs-Rahmens, und einen Linear-
Interpolations-Abschnitt 164, der eine lineare Interpolation in Bezug auf die LSPs, gelesen
von diesen drei Speichern, um eine Mehrzahl von Quantisierungs-Target-LSPs zu
addieren, auf.
-
Eine Mehrzahl von Quantisierungs-Target-LSPs wird zusätzlich unter Durchführen einer
linearen Interpolation in Bezug auf die Quantisierungs-Target-LSP des Verarbeitungs-
Rahmens erzeugt und die LSP der vorab gelesenen und produzierten Quantisierungs-
Target-LSPs werden alle zu dem LSP-Quantisierungs-Decodier-Abschnitt 152 geschickt.
Der Quantisierungs-Target-LSP-Addier-Abschnitt 151 wird nun genauer erläutert werden.
Der LPC-Analysier-Abschnitt 1304 führt eine lineare, prädikative Analyse in Bezug auf den
Verarbeitungs-Rahmen in dem Puffer durch, um eine LPC α(i) (1 ≤ i ≤ Np) einer
Vorhersage-Reihenfolge Np (= 10) zu erhalten, und wandelt die erhaltene LPC, um eine
Quantisierungs-Target-LSP ω(i) (1 ≤ i ≤ Np) zu erzeugen, und speichert die erzeugte
Quantisierungs-Target-LSP ω(i) (1 ≤ i ≤ Np) in dem LSP-Speicher 161 für den momentanen
Rahmen in dem Quantisierungs-Target-LSP-Addier-Abschnitt 151. Weiterhin führt der LPC-
Analysier-Abschnitt 1304 eine lineare, prädikative Analyse in Bezug auf den vorab
gelesenen Bereich in dem Puffer durch, um eine LPC für den vorab gelesenen Bereich zu erhalten,
wandelt die erhaltene LPC, um eine Quantisierungs-Target-LSP ω(i) (1 ≤ i ≤ Np) zu
erzeugen, und speichert die erzeugte Quantisierungs-Target-LSP ω(i) (1 ≤ i ≤ Np) für den
vorab gelesenen Bereich in dem LSP-Speicher 162 für den vorab gelesenen Bereich in
dem Quantisierungs-Target-LSP-Addier-Abschnitt 151.
-
Als nächstes liest der Linear-Interpolations-Abschnitt 164 die Quantisierungs-Target-LSP
ω(i) (1 ≤ i ≤ Np) für den Verarbeitungs-Rahmen von dem LSP-Speicher 161 für den
momentanen Rahmen, die LSP ωf(i) (1 ≤ i ≤ Np) für den vorab gelesenen Bereich von dem
LSP-Speicher 162 für den vorab gelesenen Bereich, und die decodierte LSP ωqp(i) (1 ≤ i ≤
Np) für den vorherigen Verarbeitungs-Rahmen von dem LSP-Speicher 163 für den
vorherigen Rahmen, und führt eine Konversion aus, dargestellt durch eine Gleichung 33, um
jeweils eine erste, zusätzliche Quantisierungs-Target-LSP ω1(i) (1 ≤ i ≤ Np), eine zweite,
zusätzliche Quantisierungs-Target-LSP ω2(i) (1 ≤ i ≤ Np), und eine dritte, zusätzliche
Quantisierungs-Target-LSP ω1(i) (1 ≤ i ≤ Np) zu erzeugen.
-
wobei
-
ω1(i) erste, zusätzliche Quantisierungs-Target-LSP
-
ω2(i): zweite, zusätzliche Quantisierungs-Target-LSP
-
ω3(i): dritte; zusätzliche Quantisierungs-Target-LSP
-
i: LPC-Ordnung (1 ≤ i ≤ Np)
-
Np: LPC-Analyse-Ordnung (= 10)
-
ωq(i): decodierte LSP für den Verarbeitungs-Rahmen
-
ωqp(i): decodierte LSP für den vorherigen Verarbeitungs-Rahmen
-
ωf(i): LSP für den vorab gelesenen Bereich.
-
Die erzeugten ω1(i), ω2(i) und ω3(i) werden zu dem LSP-Quantisierungs/Decodier-
Abschnitt 152 geschickt. Nach Durchführen einer Vektor-Quantisierung/Decodierung für
alle vier Quantisierungs-Target-LSPs ω(i), ω1(i) ω2(i) ω3(i) erhält der LSP-
Quantisierungs/Decodier-Abschnitt 152 eine Energie Epow (ω) eines Quantisierungs-
Fehlers für ω(i), eine Energie Epow (ω1) eines Quantisierungs-Fehlers ω1(i), eine Energie
Epow (ω2) eines Quantisierungs-Fehlers für ω2(i) und eine Energie Epow (ω3) eines
Quantisierungs-Fehlers für ω3(i), führt eine Konversion einer Gleichung 34 in Bezug auf
die erhaltenen Quantisierungs-Fehler-Energien aus, um Referenz-Werte
STD1sp(ω),STD1sp(ω1), STD1sp(ω2) und STD1sp(ω3) für eine Auswahl einer
decodierten LSP zu erhalten.
-
wobei
-
STD1sp(ω): Referenz-Wert zur Auswahl einer decodierten LSP für ω(i)
-
STD1sp(ω1): Referenz-Wert zur Auswahl einer decodierten LSP für ω1(i)
-
STD1sp(ω2): Referenz-Wert zur Auswahl einer decodierten LSP für ω2(i)
-
STD1sp(ω3): Referenz-Wert zur Auswahl einer decodierten LSP für ω3(i)
-
Epow(ω): Quantisierungs-Fehler-Energie für ω(i)
-
Epow(ω1): Quantisierungs-Fehler-Energie für ω1(i)
-
Epow(ω2): Quantisierungs-Fehler-Energie für ω2(i)
-
Epow(ω3): Quantisierungs-Fehler-Energie für ω3(i).
-
Die erhaltenen Referenz-Werte zur Auswahl einer decodierten LSP werden miteinander
verglichen, um die decodierte LSP für die Quantisierungs-Target-LSP auszugeben, die
minimal als decodierte LSP oq(i) (1 ≤ i ≤ Np) für den Verarbeitungs-Rahmen wird, und die
decodierte LSP wird in dem LSP-Speicher 163 für den vorherigen Rahmen gespeichert, so
daß darauf zu dem Zeitpunkt eines Durchführens einer Vektor-Quantisierung der LSP des
nächsten Rahmens Bezug genommen werden kann.
-
Gemäß diesem Mode kann, durch effektives Verwenden der Hoch-Interpolations-
Charakteristik einer LSP (was kein Allophon verursacht, sondern sogar eine Synthese wird
unter Verwendung von interpolierten LSPs durchgeführt), eine Vektor-Quantisierung von
LSPs so durchgeführt werden, um kein Allophon sogar für einen Bereich ähnlich dem
Anfang eines Worts zu erzeugen, wo das Spektrum wesentlich variiert. Es ist möglich, ein
Allophon in einer synthetisierten Sprache zu reduzieren, was dann auftreten kann, wenn
die Quantisierungs-Charakteristik einer LSP unzureichend wird.
-
Fig. 17 stellt ein Blockdiagramm des LSP-Quantisierungs-Decodier-Abschnitts 152 gemäß
diesem Mode dar. Der LSP-Quantisierungs/Decodier-Abschnitt 152 besitzt einen
Verstärkungs-Informations-Speicher-Abschnitt 171, einen adaptiven Verstärkungs-Selektor 172,
einen Verstärkungs-Multiplier 173, einen LSP-Quantisierungs-Abschnitt 174 und einen
LSP-Decodier-Abschnitt 175.
-
Der Verstärkungs-Informations-Speicher-Abschnitt 171 speichert eine Mehrzahl von
Verstärkungs-Kandidaten, auf die zu dem Zeitpunkt Bezug genommen wird, zu dem der
adaptive Verstärkungs-Selektor 172 die adaptive Verstärkung auswählt. Der Verstärkungs-
Multiplier 173 multipliziert einen Code-Vektor, gelesen von dem LSP-Quantisierungs-
Tabellen-Speicher-Abschnitt 1307, durch die adaptive Verstärkung, ausgewählt durch den
adaptiven Verstärkungs-Selektor 172. Der LSP-Quantisierungs-Abschnitt 174 führt eine
Vektor-Quantisierung einer Quantisierungs-Target-LSP unter Verwendung des Code-
Vektors, multipliziert mit der adaptiven Verstärkung, durch. Der LSP-Decodier-Abschnitt
175 besitzt eine Funktion eines Decodierens einer vektor-quantisierten LSP, um eine
decodierte LSP zu erzeugen und sie auszugeben, und eine Funktion eines Anforderns eines
LSP-Quantisierungs-Fehlers, der eine Differenz zwischen der Quantisierungs-Target-LSP
und der decodierten LSP sein kann, und eines Verschickens davon zu dem adaptiven
Verstärkungs-Selektor 172. Der adaptive Verstärkungs-Selektor 172 erhält die adaptive
Verstärkung, durch die ein Code-Vektor zu dem Zeitpunkt einer Vektor-Quantisierung der
Quantisierungs-Target-LSP des Verarbeitungs-Rahmens durch adaptives Einstellen der
adaptiven Verstärkung basierend auf Verstärkungs-Erzeugungs-Informationen,
gespeichert in dem Verstärkungs-Informations-Speicher-Abschnitt 171, multipliziert wird, und
zwar auf der Basis von, als Referenzen, des Pegels der adaptiven Verstärkung, mit dem
ein Code-Vektor zu dem Zeitpunkt multipliziert wird, zu dem die Quantisierungs-Target-
LSP des vorherigen Verarbeitungs-Rahmens vektormäßig quantisiert wurde und dem
LSP-Quantisierungs-Fehler für den vorherigen Rahmen, und schickt die erhaltene,
adaptive Verstärkung zu dem Verstärkungs-Multiplier 173.
-
Der LSP-Quantisierungs/Decodier-Abschnitt 152 führt Vektor-Quantisierungen durch und
decodiert eine Quantisierungs-Target-LSP, während die adaptive Verstärkung adaptiv
eingestellt wird, durch die ein Code-Vektor in der vorstehenden Art und Weise multipliziert
wird.
-
Der LSP-Quantisierungs/Decodier-Abschnitt 152 wird nun genauer diskutiert. Der
Verstärkungs-Informations-Speicher-Abschnitt 171 speichert vier Verstärkungs-Kandidaten (0,9;
1,0; 1,1 und 1,2), auf die der adaptive Verstärkungs-Selektor 172 Bezug nimmt. Der
adaptive Verstärkungs-Selektor 172 erhält einen Referenz-Wert zur Auswahl einer adaptiven
Verstärkung Slsp, von einer Gleichung 35 zum Dividieren der Energie Erpow, erzeugt zu
dem Zeitpunkt einer Quantisierung der Quantisierungs-Target-LSP des vorherigen
Rahmens, durch das Quadrat einer adaptiven Verstärkung Gqlsp, ausgewählt zu dem
Zeitpunkt einer Vektor-Quantisierung der Quantisierungs-Target-LSP des vorherigen
Verarbeitungs-Rahmens.
-
Slsp = ERPow/Gqlsp² (35)
-
wobei
-
Slsp: Referenz-Wert zur Auswahl einer adaptiven Verstärkung
-
ERpow: Quantisierungs-Fehler-Energie, erzeugt zum Zeitpunkt der Quantisierung der LSP
des vorherigen Rahmens
-
Gqlsp: adaptive Verstärkung, ausgewählt zum Zeitpunkt der Vektor-Quantisierung der LSP
des vorherigen Rahmens.
-
Eine Verstärkung wird von den vier Verstärkungs-Kandidaten (0,9; 1,0; 1,1 und 1,2),
gelesen von dem Verstärkungs-Informations-Speicher-Abschnitt 172, von einer Gleichung 36
unter Verwendung des erhaltenen Referenz-Werts Slsp zum Auswählen der adaptiven
Verstärkung ausgewählt. Dann wird der Wert der ausgewählten, adaptiven Verstärkung
Gqlsp zu dem Verstärkungs-Multiplier 173 geschickt, und Informationen (2-Bit-
Informationen) zum Spezifizieren eines Typs der ausgewählten, adaptiven Verstärkung
von den vier Typen werden zu dem Parameter-Codier-Abschnitt geschickt.
-
wobei
-
Glsp: adaptive Verstärkung, mit der ein Code-Vektor für eine LS-Quantisierung multipliziert
wird
-
Slsp: Referenz-Wert zum Auswählen einer adaptiven Verstärkung.
-
Die ausgewählte, adaptive Verstärkung, Glsp und der Fehler, der bei der Quantisierung
erzeugt worden ist, werden in der variablen Gqlsp und ERpow gesichert, bis die
Quantisierungs-Target-LSP des nächsten Rahmens einer Vektor-Quantisierung unterworfen wird.
Der Verstärkungs-Multiplier 173 multipliziert einen Code-Vektor, gelesen von dem LSP-
Quantisierungs-Tabellen-Speicher-Abschnitt 1307, mit der adaptiven Verstärkung,
ausgewählt durch den Selektor 172 für die adaptive Verstärkung, und schickt das Ergebnis zu
dem LSP-Quantisierungs-Abschnitt 174. Der LSP-Quantisierungs-Abschnitt 174 führt eine
Vektor-Quantisierung in Bezug auf die Quantisierungs-Target-LSP unter Verwendung des
Code-Vektors, multipliziert mit der adaptiven Verstärkung, durch, und schickt seinen Index
zu dem Parameter-Codier-Abschnitt. Der LSP-Decodier-Abschnitt 175 decodiert die LSP,
quantisiert durch den LSP-Quantisierungs-Abschnitt 174, was eine decodierte LSP ergibt,
gibt diese decodierte LSP aus, subtrahiert die erhaltene, decodierte LSP von der
Quantisierungs-Target-LSP, um einen LSP-Quantisierungs-Fehler zu erhalten, berechnet die
Energie ERpow des erhaltenen LSP-Quantisierungs-Fehlers und schickt die Energie zu
dem adaptiven Verstärkungs-Selektor 172.
-
Dieser Mode kann ein Allophon in einer synthetisierten Sprache unterdrücken, was
erzeugt werden kann, wenn die Quantisierungs-Charakteristik einer LSP unzureichend wird.
(Zehnter Mode)
-
Fig. 18 stellt die strukturellen Blöcke eines Anregungs-Vektor-Generators gemäß diesem
Mode dar. Dieser Anregungs-Vektor-Generator besitzt einen Speicher-Abschnitt 181 für
eine festgelegte Wellenform zum Speichern von drei festgelegten Wellenformen (v1
(Länge: L1), v2 (Länge: L2) und v3 (Länge: L3)) von Kanälen CH1, CH2 und CH3, einen
Anordnungs-Abschnitt 182 für eine festgelegte Wellenform zum Anordnen der festgelegten
Wellenformen (v1, v2, v3), gelesen von dem Speicher-Abschnitt 181 für die festgelegte
Wellenform, jeweils an Positionen P1, P2 und P3, und einen Addier-Abschnitt 183 zum
Addieren der festgelegten Wellenform, angeordnet durch den Anordnungs-Abschnitt 182
für die festgelegte Wellenform, was einen Anregungs-Vektor erzeugt.
-
Diese Operation und der so aufgebaute Anregungs-Vektor-Generator werden diskutiert
werden.
-
Drei festgelegte Wellenformen v1, v2 und v3 werden im voraus in dem Speicher-Abschnitt
181 für die festgelegte Wellenform gespeichert. Der Anordnungs-Abschnitt 182 für die
festgelegte Wellenform ordnet die festgelegte Wellenform v1 an, (verschiebt sie), gelesen
von dem Speicher-Abschnitt 181 für die festgelegte Wellenform, an der Position P1,
ausgewählt von Start-Positions-Kandidaten für CH1, und zwar basierend auf Start-Positions-
Kandidaten-Informationen für festgelegte Wellenformen, die er hat, wie dies in Fig. 8
dargestellt ist, und ordnet in ähnlicher Weise die festgelegte Wellenformen v2 und v3 an den
jeweiligen Positionen P2 und P3, ausgewählt von Start-Positions-Kandidaten für CH2 und
CH3, an.
-
Der Addier-Abschnitt 183 addiert die festgelegten Wellenformen, angeordnet durch den
Anordnungs-Abschnitt 182 für die festgelegte Wellenform, um einen Anregungs-Vektor zu
erzeugen.
-
Es sollte angemerkt werden, daß die Code-Nummern entsprechend eins zu eins, zu
Kombinafions-Informationen von auswählbaren Start-Positions-Kandidaten der individuellen,
festgelegten Wellenformen (Informationen, die darstellen, welche Positionen als P1, P2
und P3 jeweils ausgewählt werden), zu den Start-Positions-Kandidaten-Informationen für
die festgelegten Wellenformen zugeordnet werden sollten, die der Anordnungs-Abschnitt
182 für die festgelegte Wellenform hat.
-
Gemäß dem Anregungs-Vektor-Generator mit der obigen Struktur können Anregungs-
Informationen durch Übertragen von Code-Nummern, die zu den Start-Positions-
Kandidaten-Informationen von festgelegten Wellenformen, die der Anordnungs-Abschnitt
182 für die festgelegte Wellenform hat, korrelieren, übertragen werden, und Code-
Nummern existieren durch die Nummer von Produkten der individuellen Start-Positions-
Kandidaten, so daß ein Anregungs-Vektor nahe zu einer tatsächlichen Sprache erzeugt
werden kann.
-
Da die Anregungs-Informationen durch Übertragen von Code-Nummern übertragen
werden können, kann dieser Anregungs-Vektor-Generator als ein Random-Codebuch in
einem Sprach-Codierer/Decodierer verwendet werden.
-
Während die Beschreibung dieses Modes unter Bezugnahme auf einen Fall einer
Verwendung von drei festgelegten Wellenformen angegeben worden ist, wie dies in Fig. 18
dargestellt ist, können ähnliche Funktionen und Vorteile erhalten werden, wenn die Anzahl
von festgelegten Wellenformen (die mit der Anzahl von Kanälen in Fig. 18 und Tabelle 8
übereinstimmen) zu anderen Werten hin geändert wird.
-
Obwohl der Anordnungs-Abschnitt 182 für die festgelegte Wellenform in diesem Mode so
beschrieben worden ist, daß er die Start-Positions-Kandidaten-Informationen von
festgelegten Wellenformen, gegeben in Tabelle 8, besitzt, können ähnliche Funktionen und
Vorteile für andere Start-Positions-Kandidaten-Informationen von festgelegten
Wellenformen als solche in Tabelle 8 vorgesehen werden.
(Elfter Mode)
-
Fig. 19A zeigt ein strukturelles Blockdiagramm eines Sprach-Codierers vom CELP-Typ
gemäß diesem Mode, und Fig. 19B zeigt ein strukturelles Blockdiagramm eines Sprach-
Decodierers vom CELP-Typ, der mit dem Sprach-Codierer vom CELP-Typ gepaart ist.
Der Sprach-Codierer vom CELP-Typ gemäß diesem Mode besitzt einen Anregungs-
Vektor-Generator, der einen Speicher-Abschnitt 181A für eine festgelegte Wellenform,
einen Anordnungs-Abschnitt 182A für eine festgelegte Wellenform und einen Addier-
Abschnitt 183A aufweist. Der Speicher-Abschnitt 181A für die festgelegte Wellenform
speichert eine Mehrzahl von festgelegten Wellenformen. Der Anordnungs-Abschnitt 182A
für die festgelegte Wellenform ordnet festgelegte Wellenformen an (verschiebt sie),
gelesen von dem Speicher-Abschnitt 181A für die festgelegte Wellenform, jeweils an den
ausgewählten Positionen, und zwar basierend auf Start-Positions-Kandidaten-Informationen
für festgelegte Wellenformen, die er hat. Der Addier-Abschnitt 183A addiert die
festgelegten Wellenformen, angeordnet durch den Anordnungs-Abschnitt 182A für die festgelegte
Wellenform, um einen Anregungs-Vektor c zu erzeugen.
-
Dieser Sprach-Codierer vom CELP-Typ besitzt einen Zeit-Umkehr-Abschnitt 191 für eine
Zeit-Umkehrung eines Random-Codebuch-Such-Targets x, das eingegeben werden soll,
einen Synthese-Filter 192 zum Synthetisieren des Ausgangs des Zeit-Umkehr-Abschnitts
191, einen Zeit-Umkehr-Abschnitt 193 für eine Zeit-Umkehrung des Ausgangs des
Synthese-Filters 192 erneut, um ein Zeit-umgekehrtes, synthetisiertes Target x' zu erhalten,
einen Synthese-Filter 194 zum Synthetisieren des Anregungs-Vektors c, multipliziert mit
einer Random-Code-Vektor-Verstärkung gc, was einen synthetisierten Anregungs-Vektor
s ergibt, einen Verzerrungs-Kalkulator 205 zum Aufnehmen von x', c und s und zum
Berechnen einer Verzerrung, und einen Transmitter 196.
-
Gemäß diesem Mode entsprechen der Speicher-Abschnitt 181A für die festgelegte
Wellenform, der Anordnungs-Abschnitt 182A für die festgelegte Wellenform und der Addier-
Abschnitt 183A dem Speicher-Abschnitt 181 für die festgelegte Wellenform dem
Anordnungs-Abschnitt 182 für die festgelegte Wellenform und dem Addier-Abschnitt 183,
dargestellt in Fig. 18, die Start-Positions-Kandidaten der festgelegten Wellenformen in den
individuellen Kanälen entsprechen denjenigen in Tabelle 8, und die Kanal-Nummern, die
Nummern für die festgelegte Wellenform und die Symbole, die die Längen und Positionen
bei der Verwendung anzeigen, sind solche, die in Fig. 18 und in Tabelle 8 dargestellt sind.
Der Sprach-Decodierer vorn CELP-Typ in Fig. 19B weist einen Speicher-Abschnitt 181B
für die festgelegte Wellenform zum Speichern einer Mehrzahl von festgelegten
Wellenformen, einen Anordnungs-Abschnitt 182B für die festgelegte Wellenform zum Anordnen
(verschieben) festgelegter Wellenformen, gelesen von dem Speicher-Abschnitt 181B für
die festgelegte Wellenform, jeweils an den ausgewählten Positionen, basierend auf den
Start-Positions-Kandidaten-Informationen für festgelegte Wellenformen, die er hat, einen
Addier-Abschnitt 183B zum Addieren der festgelegten Wellenformen, angeordnet durch
den Anordnungs-Abschnitt 1828 für die festgelegte Wellenform, um einen Anregungs-
Vektor c zu erhalten, einen Verstärkungs-Multiplier 197 zum Multiplizieren einer Random-
Code-Vektor-Verstärkung gc und einen Synthese-Filter 198 zum Synthetisieren des
Anregungs-Vektors c, um einen synthetisierten Anregungs-Vektor s zu erhalten, auf.
-
Der Speicher-Abschnitt 181B für die festgelegte Wellenform und der Anordnungs-
Abschnitt 182B für die festgelegte Wellenform in dem Sprach-Decodierer besitzen
dieselben Strukturen wie der Speicher-Abschnitt 181A für die festgelegte Wellenform und der
Anordnungs-Abschnitt 182A für die festgelegte Wellenform in dem Sprach-Codierer, und
die festgelegten Wellenformen, gespeichert in den Speicher-Abschnitten 181A und 181B
für die festgelegte Wellenform, besitzen solche Charakteristika, um statistisch die Kosten-
Funktion in der Gleichung 3 zu minimieren, die die Codier-Verzerrungs-Berechnung der
Gleichung 3 ist, unter Verwendung eines Random-Codebuch-Such-Targets durch ein auf
einer Kosten-Funktion basierendes Lernen. Die Betriebsweise des so aufgebauten
Sprach-Codierers wird diskutiert.
-
Das Random-Codebuch-Such-Target x wird durch den Zeit-Umkehr-Abschnitt 191 in der
Zeit umgekehrt, dann durch den Synthese-Filter 192 synthetisiert und dann in der Zeit
erneut durch den Zeit-Umkehr-Abschnitt 193 umgekehrt, und das Ergebnis wird als ein
zeitumgekehrtes, synthetisiertes Target x' zu dem Verzerrungs-Kalkulator 195 geschickt.
Der Anordnungs-Abschnitt 182A für die festgelegte Wellenform ordnet die festgelegte
Wellenform v1, gelesen von dem Speicher-Abschnitt 181A für die festgelegte Wellenform,
an der Position P1, ausgewählt von den Start-Positions-Kandidaten für CH1, basierend auf
Start-Positions-Kandidaten-Informationen für festgelegte Wellenformen, die sie hat, wie in
Tabelle 8 dargestellt ist, an (verschiebt sie), und ordnet in ähnlicher Weise die festgelegten
Wellenformen v2 und v3 an den jeweiligen Positionen P2 und P3, ausgewählt von Start-
Positions-Kandidaten für CH2 und CH3, an. Die angeordneten, festgelegten Wellenformen
werden zu dem Addier-Abschnitt 183A geschickt und addiert, um ein Anregungs-Vektor c
zu werden, der zu dem Synthese-Filter 194 eingegeben wird. Der Synthese-Filter 194
synthetisiert den Anregungs-Vektor c, um einen synthetisierten Anregungs-Vektor s zu
produzieren, und schickt ihn zu dem Verzerrungs-Kalkulator 195.
-
Der Verzerrungs-Kalkulator 195 empfängt das in der Zeit umgekehrte, synthetisierte
Target x', den Anregungs-Vektor c und den synthetisierten Anregungs-Vektor s, und
berechnet eine Codier-Verzerrung in der Gleichung 4.
-
Der Verzerrungs-Kalkulator 195 schickt ein Signal zu dem Anordnungs-Abschnitt 182A für
die festgelegte Wellenform nach Berechnen der Verzerrung. Das Verfahren von der
Auswahl von Start-Positions-Kandidaten entsprechend zu den drei Kanälen durch den
Anordnungs-Abschnitt 182A für die festgelegte Wellenform zu der Verzerrungs-Berechnung
durch den Verzerrungs-Kalkulator 195 wird für jede Kombination von Start-Positions-
Kandidaten, auswählbar durch den Anordnungs-Abschnitt 182A für die festgelegte
Wellenform, wiederholt.
-
Danach werden die Kombination der Start-Positions-Kandidaten, die die Codier-
Verzerrung minimiert, ausgewählt, und die Code = Nummer, die, eins zu eins, zu dieser
Kombination der Start-Positions-Kandidaten entspricht, und die dann optimale Random-
Code-Vektor-Verstärkung gc, als Code des Random-Codebuchs zu dem Transmitter 196
übertragen.
-
Der Anordnungs-Abschnitt 182B für die festgelegte Wellenform wählt die Positionen der
festgelegten Wellenformen in den individuellen Kanälen von den Start-Positions-
Kandidaten-Informationen für festgelegte Welllenformen, die er hat, basierend auf
Informationen, die von dem Transmitter 196 geschickt sind, aus, ordnet die festgelegte
Wellenform v1 an (verschiebt sie), gelesen von dem Speicher-Abschnitt 181B für die festgelegte
Wellenform, an der Position P1, ausgewählt von den Start-Positions-Kandidaten für CH1,
und ordnet in ähnlicher Weise die festgelegten Wellenformen v2 und v3 an den jeweiligen
Positionen P2 und P3, ausgewählt von den Start-Positions-Kandidaten für CH2 und CH3,
an. Die angeordneten, festgelegten Wellenformen werden zu dem Addier-Abschnitt 183B
geschickt und addiert, um ein Anregungs-Vektor c werden. Dieser Anregungs-Vektor c
wird mit dem der Random-Code-Vektor-Verstärkung gc, ausgewählt basierend auf den
Informationen von dem Transmitter 196, multipliziert, und das Ergebnis wird zu dem
Synthese-Filter 198 geschickt. Der Synthese-Filter 198 synthetisiert den gc-multiplizierten
Anregungs-Vektor c, um einen synthetisierten Anregungs-Vektor s zu erhalten, und schickt
ihn ab.
-
Gemäß dem Sprach-Codierer/Decodierer mit den vorstehenden Strukturen wird ein
Anregungs-Vektor durch den Anregungs-Vektor-Generator erzeugt, der den Speicher-Abschnitt
für die festgelegte Wellenform, den Anordnungs-Abschnitt für die festgelegte Wellenform
und den Addier-Abschnitt aufweist, ein synthetisierter Anregungs-Vektor, erhalten durch
Synthetisieren dieses Anregungs-Vektors in dem Synthese-Filter, eine solche
Charakteristik, die statistisch nahe zu derjenigen eines tatsächlichen Targets liegt, um in der Lage zu
sein eine synthetisierte Sprache mit hoher Qualität, zusätzlich zu den Vorteilen des
zehnten Modes, zu erhalten.
-
Obwohl die vorstehende Beschreibung dieses Modes unter Bezugnahme auf einen Fall
angegeben worden ist, bei dem festgelegte Wellenformen, erhalten durch Lernen, in den
Speicher-Abschnitten 181A und 181B für die festgelegte Wellenform gespeichert sind,
können synthetisierte Sprachen mit hoher Qualität auch sogar dann erhalten werden,
wenn festgelegte Wellenformen, präpariert basierend auf dem Ergebnis einer statistischen
Analyse des Random-Codebuch-Such-Targets x, verwendet werden, oder wenn auf einer
Kenntnis basierende, festgelegte Wellenformen verwendet werden.
-
Während die Beschreibung dieses Modes unter Bezugnahme auf einen Fall angegeben
worden ist, der drei festgelegte Wellenformen verwendet, können ähnliche Funktionen und
Vorteile erhalten werden, wenn die Anzahl von festgelegten Wellenformen zu anderen
Werten geändert wird.
-
Obwohl der Anordnungs-Abschnitt für die festgelegte Wellenform in diesem Mode so
beschrieben worden ist, daß er die Start-Positions-Kandidaten-Informationen von
festgelegten Wellenformen besitzt, angegeben in Tabelle 8, können ähnliche Funktionen und
Vorteile für andere Start-Posifions-Kandidaten-Informationen für festgelegte Wellenformen als
solche in Tabelle 8 vorgesehen werden.
(Zwölfter Mode)
-
Fig. 20 zeigt ein strukturelles Blockdiagramm eines Sprach-Codierers vom CELP-Typ
gemäß diesem Mode.
-
Dieser Sprach-Codierer vom CELP-Typ umfaßt einen Speicher-Abschnitt 200 für eine
festgelegte Wellenform zum Speichern einer Mehrzahl von festgelegten Wellenformen
(drei in diesem Mode: CH1 : w1, CH2 : w2 und CH3 : w3) und einen Anordnungs-Abschnitt
201 für die festgelegte Wellenform, der Start-Positions-Kandidaten-Informationen von
festgelegten Wellenformen zur Erzeugung von Start-Positionen der festgelegten
Wellenformen besitzt, gespeichert in dem Speicher-Abschnitt 200 für die festgelegten
Wellenformen, und zwar gemäß algebraischer Regeln. Dieser Sprach-Codierer vom CELP-Typ
besitzt weiterhin einen Impuls-Ansprech-Kalkulator für jede Wellenform 202, einen Impuls-
Generator 203, einen Korrelations-Matrix-Kalkulator 204, einen Zeit-Umkehr-Abschnitt
191, einen Synthese-Filter 192' für jede Wellenform, einen Zeit-Umkehr-Abschnitt 193 und
einen Verzerrungs-Kalkulator 205.
-
Der Impuls-Ansprech-Kalkulator 202 besitzt eine Funktion eines Konvolutierens von drei
festgelegten Wellenformen von dem Speicher-Abschnitt 200 für die festgelegte
Wellenform und das Impuls-Ansprechen h (Länge L = Unterrahmen-Länge) des Synthese-Filters,
um drei Arten von Impuls-Ansprech-Verhalten für die individuellen, festgelegten
Wellenformen (CH1 : h1, CH2 : h2 und CH3 : h3, Länge L = Unterrahmen-Länge) zu berechnen.
-
Der Synthese-Filter 192' besitzt eine Funktion eines Konvolutierens des Ausgangs des
Zeit-Umkehr-Abschnitts 191, was das Ergebnis der Zeit-Umkehrung des Random-
Codebuch-Such-Targets x ist, um eingegeben zu werden, und die Impuls-Ansprech-
Verhalten für die individuellen Wellenformen h1, h2 und h3, und zwar von dem Impuls-
Ansprech-Kalkulator 202.
-
Der Impuls-Generator 203 stellt einen Impuls einer Amplitude 1 (ein Polarität-
Vorhandensein) nur an den Start-Positions-Kandidaten P1, P2 und P3, ausgewählt durch
den Anordnungs-Abschnitt 201 für die festgelegte Wellenform, ein, was Impulse für die
individuellen Kanäle (CH1 : d1, CH2 : d2 und CH3 : d3) erzeugt.
-
Der Korrelations-Matrix-Kalkulator 204 berechnet eine Autokorrelation jeder der Impuls-
Ansprech-Verhalten h1, h2 und h3 für die individuellen Wellenformen von dem Impuls-
Ansprech-Kalkulator 202, und Korrelationen zwischen h1 und h2, h1 und h3, und h2 und
h3, und entwickelt die erhaltenen Korrelations-Werte in einer Korrelations-Matrix RR.
Der Verzerrungs-Kalkulator 205 spezifiziert den Random-Code-Vektor, der die Codier-
Verzerrung minimiert, und zwar von einer Gleichung 37, eine Modifikation der Gleichung 4,
unter Verwendung von drei in der Zeit umgekehrten Synthese-Targets (x'1, x'2 und x'3),
die Korrelations-Matrix RR und der drei Impulse (d1, d2 und d3) für die individuellen
Kanäle.
-
wobei
-
di: Impuls (Vektor) für jeden Kanal
-
di = ±1 · δ (k - pi), k = 0 zu L - 1, pi: n Start-Positions-Kandidaten des i-ten Kanals
-
Hi: Impuls-Ansprech-Konvolutions-Matrix für jede Wellenform (H&sub1; = HWi)
-
W&sub1;: Konvolutions-Matrix der festgelegten Wellenform
-
wobei
-
wi die festgelegte Wellenform (Länge: Li) des i-ten Kanals ist
-
x'i: Vektor, erhalten durch eine Zeit-Umkehr-Synthese von x unter Verwendung von H&sub1; (x'it
= xtHi).
-
Hierbei ist die Transformation von der Gleichung 4 zu der Gleichung 37 für jeden Nenner-
Term (Gleichung 38) und jeden Zähler-Term (Gleichung 39) dargestellt.
-
wobei
-
x: Random-Codebuch-Such-Target (Vektor)
-
xt: transponierter Vektor von x
-
H: Impuls-Ansprech-Konvolutions-Matrix des Synthese-Filters
-
c: Random-Codebuch-Vektor (c = W&sub1;d&sub1; + W&sub2;d&sub2; + W&sub3;d&sub3;)
-
Wi: Konvolutions-Matrix der festgelegten Wellenformen
-
di: Impuls (Vektor) für jeden Kanal
-
Hi: Impuls-Ansprech-Konvolutions-Matrix für jede Wellenform (Hi = HWi)
-
x': Vektor, der durch eine Zeit-Umkehr-Synthese von x unter Verwendung von Hi (x'it
=
xtHi) erhalten ist.
-
wobei
-
H: Impuls-Ansprech-Konvolutions-Matrix des Synthese-Filters
-
c: Random-Codebuch-Vektor (c = W1d1 + W2d2 + W3d3)
-
Wi: Konvolutions-Matrix der festgelegten Wellenform
-
di: Impuls (Vektor) für jeden Kanal
-
H&sub1;: Impuls-Ansprech-Konvolutions-Matrix für jede Wellenform (H&sub1; = HW&sub1;)
-
Die Betriebsweise des so aufgebauten Sprach-Codierers vom CELP-Typ wird
beschrieben.
-
Um zu beginnen, konvolutiert der Impuls-Ansprech-Kalkulator 202 drei festgelegte
Wellenformen, die gespeichert sind, und das Impuls-Ansprechen h, um drei Arten von Impuls-
Ansprech-Verhalten h1, h2 und h3 für die individuellen, festgelegten Wellenformen zu
berechnen, und schickt sie zu dem Synthese-Filter 192' und dem Korrelations-Matrix-
Kalkulator 204.
-
Als nächstes konvolutiert der Synthese-Filter 192' das Random-Codebuch-Such-Target x,
in der Zeit umgekehrt durch den Zeit-Umkehr-Abschnitt 191, und die Eingabe von drei
Arten von Impuls-Ansprech-Verhalten h1, h2 und h3 für die individuellen Wellenformen. Der
Zeit-Umkehr-Abschnitt 193 kehrt die drei Arten von Ausgabe-Vektoren für den Synthese-
Filter 192' erneut in der Zeit um, um drei in der Zeit umgekehrte Synthese-Targets x'1, x'2
und x'3 zu erhalten, und schickt sie zu dem Verzerrungs-Kalkulator 205.
-
Dann berechnet der Korrelations-Matrix-Kalkulator 204 Autokorrelationen jeder der
Eingabe der drei Arten von Impuls-Ansprech-Verhalten h1, h2 und h3 für die individuellen
Wellenformen und Korrelation zwischen h1 und h2, h1 und h3, und h2 und h3, und schickt die
erhaltenen Autokorrelationen und den Korrelations-Wert zu dem Verzerrungs-Kalkulator
205 nach einer Entwicklung davon in der Korrelations-Matrix RR.
-
Der vorstehende Prozeß ist als ein Vorprozeß ausgewählt worden, wobei der Anordnungs-
Abschnitt 201 für die festgelegte Wellenform einen Start-Positions-Kandidaten einer
festgelegten Wellenform für jeden Kanal auswählt, und schickt die positionsmäßigen
Informationen zu dem Impuls-Generator 203.
-
Der Impuls-Generator 203 stellt einen Impuls einer Amplitude 1 (ein Polaritäts-
Vorhandensein) an jeder der Start-Positions-Kandidaten, erhalten von dem Anordnungs-
Abschnitt 201 für die festgelegte Wellenform, ein, was Impulse d1, d2 und d3 für die
individuellen Kanäle erzeugt, und schickt sie zu dem Verzerrungs-Kalkulator 205.
-
Dann berechnet der Verzerrungs-Kalkulator 205 einen Referenz-Wert zum Minimieren der
Codier-Verzerrung in der Gleichung 37, und zwar unter Verwendung von drei in der Zeit
umgekehrten Synthese-Targets x'1, x'2 und x'3 für die individuellen Wellenformen, die
Korrelations-Matrix RR und die drei Impulse d1, d2 und d3 für die individuellen Kanäle.
Das Verfahren für die Auswahl von Start-Positions-Kandidaten entsprechend zu den drei
Kanälen durch den Anordnungs-Abschnitt 201 für die festgelegte Wellenform zu der
Verzerrungs-Berechnung durch den Verzerrungs-Kalkulator 205 wird für jede Kombination der
Start-Positions-Kandidaten, auswählbar durch den Anordnungs-Abschnitt 201 für die
festgelegte Wellenform, wiederholt. Dann werden die Code-Nummer, die der Kombination der
Start-Positions-Kandidaten entspricht, die den Referenz-Wert für die Suche der Codier-
Verzerrung in der Gleichung 37 minimiert, und die dann optimale Verstärkung mit der
Random-Code-Vektor-Verstärkung gc, verwendet als ein Code des Random-Codebuchs,
spezifiziert, und werden zu dem Transmitter übertragen.
-
Der Sprach-Codierer dieses Modes besitzt eine ähnliche Struktur zu derjenigen des
zehnten Modes in Fig. 19B, und der Speicher-Abschnitt für die festgelegte Wellenform und
der Anordnungs-Abschnitt für die festgelegte Wellenform in dem Sprach-Codierer besitzen
dieselben Strukturen wie der Speicher-Abschnitt für die festgelegte Wellenform und der
Anordnungs-Abschnitt für die festgelegte Wellenform in dem Sprach-Decodierer. Die
festgelegten Wellenformen, gespeichert in dem Speicher-Abschnitt für die festgelegte
Wellenform, sind eine festgelegte Wellenform, die solche Charakteristika haben, um statistisch
die Kosten-Funktion in der Gleichung 3 durch das Training unter Verwendung der Codier-
Verzerrungs-Gleichung (Gleichung 3) mit einem Random-Codebuch-Such-Target als eine
Kosten-Funktion zu minimieren.
-
Gemäß dem so aufgebauten Sprach-Codierer/Decodierer kann, wenn die Start-Positions-
Kandidaten der festgelegten Wellenformen in dem Anordnungs-Abschnitt für die
festgelegte Wellenform algebraisch berechnet werden können, der Zähler in der Gleichung 37
durch Addieren von drei Termen des in der Zeit umgekehrten Synthese-Targets für jede
Wellenform, erhalten in der vorherigen Verarbeitungsstufe, berechnet werden, und dann
durch Erhalten des Quadrats des Ergebnisses. Weiterhin kann der Zähler in Gleichung 37
durch Addieren von neun Termen der Korrelations-Matrix des Impuls-Ansprech-Verhaltens
der individuellen Wellenformen, erhalten in der vorherigen Verarbeitungsstufe, berechnet
werden. Dies kann eine Suche mit ungefähr demselben Umfang einer Berechnung
sicherstellen, wie sie in einem Fall benötigt wird, wo der konventionelle, algebraische,
strukturelle Anregungs-Vektor (ein Anregungs-Vektor wird durch verschiedene Impulse einer
Amplitude 1 gebildet) für das Random-Codebuch verwendet wird.
-
Weiterhin besitzt ein synthetisierter Anregungs-Vektor in dem Synthese-Filter eine solche
Charakteristik statistisch nahe zu derjenigen eines tatsächlichen Targets, um in der Lage
zu sein, eine synthetisierte Sprache mit einer hohen Qualität zu erhalten.
-
Obwohl die vorstehende Beschreibung dieses Modes unter Bezugnahme auf einen Fall
angegeben worden ist, wo festgelegte Wellenformen, erhalten über ein Training, in dem
Speicher-Abschnitt für die festgelegte Wellenform gespeichert sind, können synthetisierte
Sprachen mit hoher Qualität auch gerade dann erhalten werden, wenn festgelegte
Wellenformen, präpariert basierend auf dem Ergebnis einer statistischen Analyse des
Random-Codebuch-Such-Targets x, verwendet werden, oder wenn auf einer Kenntnis
basierende, festgelegte Wellenformen verwendet werden.
-
Während die Beschreibung dieses Modes unter Bezugnahme auf einen Fall einer
Verwendung von drei festgelegten Wellenformen angegeben worden ist, können ähnliche
Funktionen und Vorteile erhalten werden, wenn die Anzahl von festgelegten Wellenformen
zu anderen Werten geändert wird.
-
Obwohl der Anordnungs-Abschnitt für die festgelegte Wellenform in diesem Mode so
beschrieben worden ist, daß er die Start-Positions-Kandidaten-Informationen von
festgelegten Wellenformen, angegeben in Tabelle 8, besitzt, können ähnliche Funktionen und
Vorteile für andere Start-Positions-Kandidaten-Informationen von festgelegten Welllenformen
als solche in Tabelle 8 vorgesehen werden.
(Dreizehnter Mode)
-
Fig. 21 stellt ein stukturelles Blockdiagramm eines Sprach-Codierers eines CELP-Typs
gemäß diesem Mode dar. Der Sprach-Codierer gemäß diesem Mode besitzt zwei Arten
von Random-Codebüchern A 211 und B 212, einen Schalter 213 zum Umschalten der
zwei Arten von Random-Codebüchern von einem zu dem anderen, einen Multiplier 214
zum Multiplizieren eines Random-Code-Vektors mit einer Verstärkung, einen Synthese-
Filter 215 zum Synthetisieren einer Random-Code-Vektor-Ausgabe von dem Random-
Codebuch, der mittels des Schalters 213 verbunden ist, und einen Verzerrungs-Kalkulator
216 zum Berechnen einer Codier-Verzerrung in der Gleichung 2.
-
Das Random-Codebuch A 211 besitzt die Struktur des Anregungs-Vektor-Generators des
zehnten Modes, während das andere Random-Codebuch B 212 durch einen Random-
Sequenz-Speicher-Abschnitt 217 aufgebaut ist, der eine Mehrzahl von Random-Code-
Vektoren, erzeugt von einer Random-Sequenz, speichert. Eine Umschaltung zwischen
den Random-Codebüchern wird in einer geschlossenen Schleife ausgeführt. Das x ist ein
Random-Codebuch-Such-Target.
-
Die Betriebsweise des so aufgebauten Sprach-Codierers vom CELP-Typ wird diskutiert.
Zuerst wird der Schalter 213 mit dem Random-Codebuch A 211 verbunden, und der
Anordnungs-Abschnitt 182 für die festgelegte Wellenform ordnet (verschiebt) die festgelegten
Wellenformen an, gelesen von dem Speicher-Abschnitt 181 für die festgelegte
Wellenform, an den Positionen, die von den Start-Positions-Kandidaten der festgelegten
Wellenform jeweils ausgewählt sind, basierend auf Start-Positions-Kandidaten-Informationen für
festgelegte Wellenformen, die sie besitzt, wie dies in Tabelle 8 dargestellt ist. Die
angeordneten, festgelegten Wellenformen werden zusammen in dem Addier-Abschnitt 183
addiert, um ein Random-Code-Vektor zu werden, der zu dem Synthese-Filter 215 geschickt
wird, nachdem er mit der Random-Code-Vektor-Verstärkung multipliziert ist. Der
Synthese-Filter 215 synthetisiert den Eingabe-Random-Code-Vektor und schickt das Ergebnis zu
dem Verzerrungs-Kalkulator 216. Der Verzerrungs-Kalkulator 216 führt eine Minimierung
der Codier-Verzerrung in der Gleichung 2 unter Verwendung des
Random-Codebuchsuch-Targets x und des synthetisierten Code-Vektors, erhalten von dem Synthese-Filter
215, durch.
-
Nach einer Berechnung der Verzerrung schickt der Verzerrungs-Kalkulator 216 ein Signal
zu dem Anordnungs-Abschnitt 182 für die festgelegte Wellenform. Der Vorgang von der
Auswahl der Start-Positions-Kandidaten entsprechend zu den drei Kanälen durch den
Anordnungs-Abschnitt
182 für die festgelegte Wellenform bis zu der Verzerrungs-
Berechnung durch den Verzerrungs-Kalkulator 216 wird für jede Kombination der Start-
Positions-Kandidaten, auswählbar durch den Anordnungs-Abschnitt 182 für die festgelegte
Wellenform, wiederholt.
-
Danach werden die Kombination der Start-Positions-Kandidaten, die die Codier-
Verzerrung minimiert, ausgewählt, und die Code-Nummer, die, eins zu eins, zu dieser
Kombination der Start-Positions-Kandidaten entspricht, die dann optimale Random-Code-
Vektor-Verstärkung gc und der minimale Codier-Verzerrungs-Wert, gespeichert.
-
Dann wird der Schalter 213 mit dem Random-Codebuch B 212 verbunden, was bewirkt,
daß eine Random-Sequenz, gelesen von dem Random-Sequenz-Speicher-Abschnitt 217,
ein Random-Code-Vektor wird. Dieser Random-Code-Vektor wird, nachdem er mit der
Random-Code-Vektor-Verstärkung multipliziert ist, zu dem Synthese-Filter 215
eingegeben. Der Synthese-Filter 215 synthetisiert den Eingabe-Random-Code-Vektor und schickt
das Ergebnis zu dem Verzerrungs-Kalkulator 216.
-
Der Verzerrungs-Kalkulator 216 berechnet die Codier-Verzerrung in der Gleichung 2 unter
Verwendung des Random-Codebuchsuch-Targets x und des synthetisierten Code-
Vektors, erhalten von dem Synthese-Filter 215.
-
Nach einer Berechnung der Verzerrung schickt der Verzerrungs-Kalkulator 216 ein Signal
zu dem Random-Sequenz-Speicher-Abschnitt 217. Der Prozeß von der Auswahl des
Random-Code-Vektors durch den Random-Sequenz-Speicher-Abschnitt 217 bis zu der
Verzerrungs-Berechnung durch den Verzerrungs-Kalkulator 216 wird für jeden Random-
Code-Vektor, auswählbar durch den Random-Sequenz-Speicher-Abschnitt 217,
wiederholt.
-
Danach wird der Random-Code-Vektor, der die Codier-Verzerrung minimiert, ausgewählt,
und die Code-Nummer des Random-Code-Vektors, die dann optimale Random-Code-
Vektor-Verstärkung gc und der minimale Codier-Verzerrungs-Wert, werden gespeichert.
Dann vergleicht der Verzerrungs-Kalkulator 216 den minimalen Codier-Verzerrungs-Wert,
erhalten dann, wenn der Schalter 213 mit dem Random-Codebuch A 211 verbunden wird,
mit dem minimalen Codier-Verzerrungs-Wert, erhalten dann, wenn der Schalter 213 mit
dem Random-Codebuch B 212 verbunden ist, bestimmt die Umschalt-Verbindungs-
Informationen, wenn eine kleinere Codier-Verzerrung erhalten wurde, wobei die dann vorliegende
Code-Nummer und die Random-Code-Vektor-Verstärkung als Sprach-Code
bestimmt werden, und werden zu einem nicht dargestellten Transmitter geschickt.
-
Der Sprach-Decodierer gemäß diesem Mode, der mit dem Sprach-Codierer dieses Modes
gepaart ist, besitzt das Random-Codebuch A, das Random-Codebuch B, den Schalter, die
Random-Code-Vektor-Verstärkung und den Synthese-Filter, die dieselben Strukturen
haben und in derselben Art und Weise angeordnet sind, wie diejenigen in Fig. 21, wobei ein
Random-Codebuch, das verwendet werden soll, ein Random-Code-Vektor und eine
Random-Code-Vektor-Verstärkung basierend auf einer Sprach-Code-Eingabe von dem
Transmitter bestimmt werden, und ein synthetisierter Anregungs-Vektor wird als der
Ausgang des Synthese-Filters erhalten.
-
Gemäß dem Sprach-Codierer/Decodierer mit den vorstehenden Strukturen kann einer der
Random-Code-Vektoren, der von dem Random-Codebuch A erzeugt wird, und die
Random-Code-Vektoren, die von dem Random-Codebuch B erzeugt werden, was die Codier-
Verzerrung in Gleichung 2 minimiert, in einer geschlossenen Schleife ausgewählt werden,
was es möglich macht, einen Anregungs-Vektor näher zu einer tatsächlichen Sprache und
eine synthetisierte Sprache mit hoher Qualität zu erzeugen.
-
Obwohl dieser Mode als ein Sprach-Codierer/Decodierer basierend auf der Struktur in Fig.
2 des Sprach-Codierers vom konventionellen CELP-Typ dargestellt worden ist, können
ähnliche Funktionen und Vorteile dann erhalten werden, wenn dieser Mode an einen
Sprach-Codierer/Decodierer vom CELP-Typ basierend auf der Struktur in den Fig. 19A
und 19B oder in Fig. 20 angepaßt wird.
-
Obwohl das Random-Codebuch A 211 in diesem Mode dieselbe Struktur wie diejenige in
Fig. 18 besitzt, können ähnliche Funktionen und Vorteile gerade dann erhalten werden,
wenn der Speicher-Abschnitt 181 für die festgelegte Wellenform eine andere Struktur
annimmt (z. B. in einem Fall, wo er vier festgelegte Wellenformen besitzt).
-
Während die Beschreibung dieses Modes unter Bezugnahme auf einen Fall angegeben
worden ist, bei dem der Anordnungs-Abschnitt 182 für die festgelegte Wellenform des
Random-Codebuchs A 211 die Start-Positions-Kandidaten-Informationen von festgelegten
Wellenformen besitzt, wie dies in Tabelle 8 dargestellt ist, können ähnliche Funktionen und
Vorteile gerade für einen Fall vorgesehen werden, bei dem der Abschnitt 182 andere
Start-Positions-Kandidaten-Informationen von festgelegten Wellenformen besitzt.
-
Obwohl dieser Mode unter Bezugnahme auf einen Fall beschrieben worden ist, bei dem
das Random-Codebuch B 212 durch den Random-Sequenz-Speicher-Abschnitt 217 für
ein direktes Speichern einer Mehrzahl von Random-Sequenzen in dem Speicher
aufgebaut ist, können ähnliche Funktionen und Vorteile gerade für einen Fall vorgesehen
werden, bei dem das Random-Codebuch B 212 andere Anregungs-Vektor-Strukturen
annimmt (z. B. wenn es durch Anregungs-Vektor-Erzeugungs-Informationen mit einer
algebraischen Struktur gebildet ist).
-
Obwohl dieser Mode als ein Sprach-Codierer/Decodierer vom CELP-Typ beschrieben
worden ist, der zwei Arten von Random-Codebüchern besitzt, können ähnliche Funktionen
und Vorteile gerade in einem Fall einer Verwendung eines Sprach-Codierers/Decodierers
vom CELP-Typ vorgesehen werden, der drei oder mehr Arten von Random-Codebüchern
besitzt.
(Vierzehnter Mode)
-
Fig. 22 stellt ein strukturelles Blockdiagramm eines Sprach-Codierers vom CELP-Typ
gemäß diesem Mode dar. Der Sprach-Codierer gemäß diesem Mode besitzt zwei Arten von
Random-Codebüchern. Ein Random-Codebuch besitzt die Struktur des Anregungs-
Vektor-Generators, dargestellt in Fig. 18, und der andere eine ist aus einem Impuls-
Sequenz-Speicher-Abschnitt aufgebaut, der eine Mehrzahl von Impuls-Sequenzen hält.
Die Random-Codebücher werden adaptiv von einem zu dem anderen unter Verwendung
einer quantisierten Pitch-Verstärkung umgeschaltet, bereits zuvor von einer Random-
Codebuch-Suche erhalten. Das Random-Codebuch A 211, das den Speicher-Abschnitt
181 für die festgelegte Wellenform, den Anordnungs-Abschnitt 182 für die festgelegte
Wellenform und den Addier-Abschnitt 183 aufweist, entspricht dem Anregungs-Vektor-
Generator in Fig. 18. Ein Random-Codebuch B 221 ist aus einem Impuls-Sequenz-
Speicher-Abschnitt 222 aufgebaut, wobei eine Mehrzahl von Impuls-Sequenzen darin
gespeichert ist. Die Random-Codebücher A 211 und B 221 werden von einem zu dem
anderen mittels eines Schalters 213' umgeschaltet. Ein Multiplier 224 gibt einen adaptiven
Code-Vektor aus, der der Ausgang eines adaptiven Codebuchs 223 multipliziert mit der
Pitch-Verstärkung besitzt, die bereits zu dem Zeitpunkt einer Random-Codebuch-Suche
erhalten worden ist. Der Ausgang eines Pitch-Verstärkung-Quantisierers 225 wird zu dem
Schalter 213' geführt.
-
Die Betriebsweise des so aufgebauten Sprach-Codierers vom CELP-Typ wird
beschrieben.
-
Gemäß dem Sprach-Codierer des herkömmlichen CELP-Typs wird das adaptive
Codebuch 223 zuerst durchsucht und die Random-Codebuch-Suche wird basierend auf dem
Ergebnis ausgeführt. Diese adaptive Codebuch-Suche ist ein Prozeß eines Auswählens
eines optimalen, adaptiven Code-Vektors von einer Mehrzahl von adaptiven Code-
Vektoren, gespeichert in dem adaptiven Codebuch 223 (Vektoren jeweils erhalten durch
Multiplizieren eines adaptiven Code-Vektors und eines Random-Code-Vektors mit deren
jeweiligen Verstärkungen und dann Zusammenaddieren von diesen). Als Ergebnis dieses
Prozesses werden die Code-Nummer und die Pitch-Verstärkung eines adaptiven Code-
Vektors erzeugt.
-
Gemäß dem Sprach-Codierer vom CELP-Typ dieses Modes quantisiert der Pitch-
Verstärkungs-Quantisierer 225 diese Pitch-Verstärkung, was eine quantisierte Pitch-
Verstärkung erzeugt, wonach die Random-Codebuch-Suche durchgeführt werden wird.
Die quantisierte Pitch-Verstärkung, erhalten durch den Pitch-Verstärkung-Quantisierer
225, wird zu dem Schalter 213' zum Umschalten zwischen den Random-Codebüchern
geschickt.
-
Der Schalter 213' verbindet sich mit dem Random-Codebuch A 211, wenn der Wert der
quantisierten Pitch-Verstärkung klein ist, wodurch angenommen wird, daß die Eingabe-
Sprache stimmlos ist, und verbindet sich mit dem Random-Codebuch B221, wenn der
Wert der quantisierten Pitch-Verstärkung groß ist, wodurch davon ausgegangen wird, daß
die Eingabe-Sprache stimmhaft ist.
-
Wenn der Schalter 213' mit dem Random-Codebuch A 211 verbunden ist, ordnet der
Anordnungs-Abschnitt 182 für die festgelegte Wellenform die festgelegten Wellenformen an
(verschiebt sie), gelesen von dem Speicher-Abschnitt 181 für die festgelegte Wellenform,
und zwar an den Positionen, ausgewählt von den Start-Positions-Kandidaten der
festgelegten Wellenformen jeweils, basierend auf Start-Positions-Kandidaten-Informationen für
festgelegte Wellenformen, die er hat, wie dies in Tabelle 8 dargestellt ist. Die
angeordneten, festgelegten Wellenformen werden zu dem Addier-Abschnitt 183 geschickt und
zusammenaddiert, um ein Random-Code-Vektor zu werden. Der Random-Code-Vektor wird
zu dem Synthese-Filter 215 geschickt, nachdem er mit der Random-Code-Vektor-
Verstärkung multipliziert ist. Der Synthese-Filter 215 synthetisiert den Eingabe-Random-
Code-Vektor und schickt das Ergebnis zu dem Verzerrungs-Kalkulator 216.
-
Der Verzerrungs-Kalkulator 216 berechnet eine Codier-Verzerrung in der Gleichung 2
unter Verwendung des Target x für eine Random-Codebuch-Suche und dem synthetisierten
Code-Vektor, erhalten von dem Synthese-Filter 215.
-
Nach Berechnen der Verzerrung schickt der Verzerrungs-Kalkulator 216 ein Signal zu dem
Anordnungs-Abschnitt 182 für die festgelegte Wellenform. Das Verfahren von der Auswahl
der Start-Positions-Kandidaten entsprechend zu den drei Kanälen durch den Anordnungs-
Abschnitt 182 für die festgelegte Wellenform bis zu der Verzerrungs-Berechnung durch
den Verzerrungs-Kalkulator 216 wird für jede Kombination der Start-Positions-Kandidaten,
auswählbar durch den Anordnungs-Abschnitt 182 für die festgelegte Wellenform,
wiederholt.
-
Danach wird die Kombination der Start-Positions-Kandidaten, die die Codier-Verzerrung
minimiert, ausgewählt, und die Code-Nummer, die, eins zu eins, der Kombination der
Start-Positions-Kandidaten entspricht, die dann optimale Random-Code-Vektor-
Verstärkung gc und die quantisierte Pitch-Verstärkung, werden zu einem Transmitter als
ein Sprach-Code übertragen. In diesem Mode sollte die Eigenschaft eines stimmlosen
Klangs auf festgelegten Wellenform-Mustern wiedergegeben werden, um in dem
Speicher-Abschnitt 181 für die festgelegte Wellenform gespeichert zu werden, und zwar bevor
eine Sprach-Codierung stattfindet.
-
Wenn der Schalter 213' mit dem Random-Codebuch B 221 verbunden ist, wird eine
Impuls-Sequenz, gelesen von dem Impuls-Sequenz-Speicher-Abschnitt 222, ein Random-
Code-Vektor. Dieser Random-Code-Vektor wird zu dem Synthese-Filter 215 über den
Schalter 2131 und eine Multiplikation der Random-Code-Vektor-Verstärkung eingegeben.
Der Synthese-Filter 215 synthetisiert den Eingangs-Random-Code-Vektor und schickt das
Ergebnis zu dem Verzerrungs-Kalkulator 216.
-
Der Verzerrungs-Kalkulator 216 berechnet die Codier-Verzerrung in der Gleichung 2 unter
Verwendung des Targets x für eine Random-Codebuch-Suche X und dem synthetisierten
Code-Vektor, erhalten von dem Synthese-Filter 215.
-
Nach Berechnung der Verzerrung schickt der Verzerrungs-Kalkulator 216 ein Signal zu
dem Impuls-Sequenz-Speicher-Abschnitt 222. Der Vorgang von der Auswahl des
Random-Code-Vektors durch den Impuls-Sequenz-Speicher-Abschnitt 222 bis zu der Verzerrungs-Berechnung
durch den Verzerrungs-Kalkulator 216 wird für jeden Random-Code-
Vektor, auswählbar durch den Impuls-Sequenz-Speicher-Abschnitt 222, wiederholt.
-
Danach wird der Random-Code-Vektor, der die Codier-Verzerrung minimiert, ausgewählt,
und die Code-Nummer des Random-Code-Vektors, die dann optimale Random-Code-
Vektor-Verstärkung gc, und die quantisierte Pitch-Verstärkung werden zu dem Transmitter
als ein Sprach-Code übertragen.
-
Der Sprach-Decodierer gemäß diesem Mode, der mit dem Sprach-Codierer dieses Modes
gepaart ist, besitzt das Random-Codebuch A, das Random-Codebuch B, den Schalter, die
Random-Code-Vektor-Verstärkung und den Synthese-Filter, die dieselben Strukturen
haben und in derselben Art und Weise angeordnet sind, wie solche in Fig. 22. Zuerst
bestimmt, unter Empfang der übertragenen, quantisierten Pitch-Verstärkung, die Seite des
Codierers von seinem Niveau, ob der Schalter 213' mit dem Random-Codebuch A 211
oder mit dem Random-Codebuch B 221 verbunden worden ist. Als nächstes wird,
basierend auf der Code-Nummer und dem Vorzeichen des Random-Code-Vektors, ein
synthetisierter Anregungs-Vektor als der Ausgang des Synthese-Filters erhalten.
-
Gemäß dem Sprach-Codierer/Decodierer mit den vorstehenden Strukturen können zwei
Arten von Random-Codebüchern adaptiv gemäß der Charakteristik einer Eingabe-
Sprache umgeschaltet werden, das Niveau der quantisierten Pitch-Verstärkung wird
verwendet, um die übertragene, quantisierte Pitch-Verstärkung in diesem Mode zu
bestimmen, so daß dann, wenn die Eingabe-Sprache stimmhaft ist, eine Impuls-Sequenz als ein
Random-Code-Vektor ausgewählt werden kann, wogegen, für eine stark stimmlose
Eigenschaft, ein Random-Code-Vektor, der die Eigenschaft von stimmlosen Klängen wiedergibt,
ausgewählt werden kann. Dies kann ein Erzeugen von Anregungs-Vektoren näher zu der
tatsächlichen Klangeigenschaft und die Verbesserung von synthetisierten Klängen
sicherstellen. Da eine Umschaltung in einer geschlossenen Schleife in diesem Mode, wie dies
vorstehend erwähnt ist, durchgeführt wird, können die funktionalen Effekte durch Erhöhen
der Menge von Informationen, die übertragen werden, verbessert werden.
-
Obwohl dieser Mode als ein Sprach-Codierer/Decodierer basierend auf der Struktur in Fig.
2 des Sprach-Codierers vom herkömmlichen CELP-Typ dargestellt worden ist, können
ähnliche Funktionen und Vorteile gerade dann erhalten werden, wenn dieser Mode an
einen Sprach-Codierer/Decodierer vom CELP-Typ basierend auf der Struktur in den Fig.
19A und 19B oder Fig. 20 angepaßt ist.
-
In diesem Mode wird eine quantisierte Pitch-Verstärkung, erhalten durch Quantisieren der
Pitch-Verstärkung eines adaptiven Code-Vektors in dem Pitch-Verstärkungs-Quantisierer
225, als ein Parameter zum Umschalten des Schalters 213' verwendet. Ein Pitch-Periode-
Kalkulator kann vorgesehen werden, so daß eine Pitch-Periode, berechnet von einem
adaptiven Code-Vektor, anstelle davon verwendet werden kann.
-
Obwohl das Random-Codebuch A 211 in diesem Mode dieselbe Struktur besitzt, wie sie in
Fig. 18 dargestellt ist, können ähnliche Funktionen und Vorteile gerade dann erhalten
werden, wenn der Speicher-Abschnitt 181 für die festgelegte Wellenform eine andere Struktur
annimmt (z. B. in einem Fall, wo er vier festgelegte Wellenformen besitzt).
-
Während die Beschreibung dieses Modes unter Bezugnahme auf den Fall angegeben
worden ist, bei dem der Anordnungs-Abschnitt 182 für die festgelegte Wellenform des
Random-Codebuchs A 211 die Start-Positions-Kandidaten-Informafiionen von festgelegten
Wellenformen besitzt, wie dies in Tabelle 8 dargestellt ist, können ähnliche Funktionen und
Vorteile gerade für einen Fall erhalten werden, bei dem der Abschnitt 182 andere Start-
Positions-Kandidaten-Informationen von festgelegten Wellenformen hat.
-
Obwohl dieser Mode unter Bezugnahme auf den Fall beschrieben worden ist, bei dem das
Random-Codebuch B 221 durch den Impuls-Sequenz-Speicher-Abschnitt 222 für ein
direktes Speichern einer Impuls-Sequenz in dem Speicher gebildet ist, können ähnliche
Funktionen und Vorteile gerade für einen Fall erhalten werden, bei dem das Random-
Codebuch B 212 andere Anregungs-Vektor-Strukturen annehmen kann (z. B. wenn er
durch Anregungs-Vektor-Erzeugungs-Informationen mit einer algebraischen Struktur
gebildet ist).
-
Obwohl dieser Mode als ein Sprach-Codierer/Decodierer vom CELP-Typ beschrieben
worden ist, der zwei Arten von Random-Codebüchern besitzt, können ähnlich Funktionen
und Vorteile gerade in dem Fall einer Verwendung eines Sprach-Codierer/Decodierers
vom CELP-Typ erhalten werden, der drei oder mehr Arten von Random-Codebüchern
besitzt.
(Fünfzehnter Mode)
-
Fig. 23 stellt ein strukturelles Blockdiagramm eines Sprach-Codierers vom CELP-Typ
gemäß diesem Mode dar. Der Sprach-Codierer gemäß diesem Mode besitzt zwei Arten von
Random-Codebüchern. Ein Random-Codebuch nimmt die Struktur des Anregungs-Vektor-
Generators, dargestellt in Fig. 18, an und besitzt drei festgelegte Wellenformen, gespeichert
in dem Speicher-Abschnitt für die festgelegte Wellenform, und der andere eine
nimmt ähnlich die Struktur des Anregungs-Vektor-Generators, dargestellt in Fig. 18 an,
besitzt allerdings zwei festgelegte Wellenformen, gespeichert in dem Speicher-Abschnitt
für die festgelegte Wellenform. Diese zwei Arten von Random-Codebüchern werden in
einer geschlossenen Schleife umgeschaltet.
-
Ein Random-Codebuch A 211, das einen Speicher-Abschnitt A 181 für eine festgelegte
Wellenform, der drei festgelegte Wellenformen darin gespeichert besitzt, einen
Anordnungs-Abschnitt A 182 für die festgelegte Wellenform und einen Addier-Abschnitt 183
aufweist, entspricht der Struktur des Anregungs-Vektor-Generator in Fig. 18, der allerdings
drei festgelegte Wellenformen besitzt, die in dem Speicher-Abschnitt für die festgelegte
Wellenform gespeichert sind.
-
Ein Random-Codebuch B230 weist einen Speicher-Abschnitt B 231 für die festgelegte
Wellenform, der zwei festgelegte Wellenformen, die darin gespeichert sind, besitzt, einen
Anordnungs-Abschnitt B 232 für die festgelegte Wellenform, der Start-Positions-
Kandidaten-Informationen von festgelegten Wellenformen besitzt, wie dies in Tabelle 9
dargestellt ist, und einen Addier-Abschnitt 233, der zwei festgelegte Wellenformen addiert,
angeordnet durch den Anordnungs-Abschnitt B 232 für die festgelegte Wellenform, um
dadurch einen Random-Code-Vektor zu erzeugen, auf. Das Random-Codebuch B 230
entspricht der Struktur des Anregungs-Vektor-Generators in Fig. 18, der allerdings zwei
festgelegte Wellenformen, gespeichert in dem Speicher-Abschnitt für die festgelegte
Wellenform, besitzt.
Tabelle 9
-
Die andere Struktur ist dieselbe wie diejenige des vorstehend beschriebenen dreizehnten
Modes.
-
Die Betriebsweise des Sprach-Codierer vom CELP-Typ, aufgebaut in der vorstehenden
Art und Weise, wird beschrieben.
-
Zuerst wird der Schalter 213 mit dem Random-Codebuch A 211 verbunden und der
Anordnungs-Abschnitt A 182 für die festgelegte Wellenform ordnet drei festgelegte
Wellenformen an (verschiebt sie), gelesen von dem Speicher-Abschnitt A 181 für die festgelegte
Wellenform, und zwar an den Positionen, ausgewählt von den Start-Positions-Kandidaten
der festgelegten Wellenformen jeweils, basierend auf Start-Positions-Kandidaten-
Informationen für festgelegte Wellenformen, die er hat, dargestellt in Tabelle 8. Die
angeordneten drei festgelegten Wellenformen werden zu dem Addier-Abschnitt 183
ausgegeben und zusammenaddiert, um ein Random-Code-Vektor zu werden. Dieser Random-
Code-Vektor wird zu dem Synthese-Filter 215 über den Schalter 213 und den Multiplier
214 zum Multiplizieren von diesem mit der Random-Code-Vektor-Verstärkung geschickt.
Der Synthese-Filter 215 synthetisiert den Eingangs-Random-Code-Vektor und schickt das
Ergebnis zu dem Verzerrungs-Kalkulator 216. Der Verzerrungs-Kalkulator 216 berechnet
eine Codier-Verzerrung in der Gleichung 2 unter Verwendung des Random-Codebuch-
Such-Targets X und des synthetisierten Code-Vektors, erhalten von dem Synthese-Filter
215.
-
Nach einer Berechnung der Verzerrung schickt der Verzerrungs-Kalkulator 216 ein Signal
zu dem Anordnungs-Abschnitt A 182 für die festgelegte Wellenform. Der Vorgang von der
Auswahl der Start-Positions-Kandidaten entsprechend zu den drei Kanälen durch den
Anordnungs-Abschnitt A 182 für die festgelegte Wellenform bis zu der Verzerrungs-
Berechnung durch den Verzerrungs-Kalkulator 216 wird für jede Kombination der Start-
Positions-Kandidaten, auswählbar durch den Anordnungs-Abschnitt A 182 für die
festgelegte Wellenform, wiederholt.
-
Danach wird die Kombination der Start-Positions-Kandidaten, die die Codier-Verzerrung
minimiert, ausgewählt, und die Code-Nummer, die, eins zu eins, dieser Kombination der
Start-Positions-Kandidaten entspricht, die dann optimale Random-Code-Vektor-
Verstärkung gc und der minimale Codier-Verzerrungs-Wert, werden gespeichert.
-
In diesem Mode sind die festgelegten Wellenformen-Muster, die in dem Speicher-
Abschnitt A 181 für die festgelegte Wellenform vor einer Sprach-Codierung gespeichert
werden sollen, diejenigen, die durch Training in einer solchen Art und Weise erhalten
worden sind, um eine Verzerrung unter dem Zustand von drei festgelegten Wellenformen, bei
der Benutzung, zu minimieren.
-
Als nächstes wird der Schalter 213 mit dem Random-Codebuch B 230 verbunden, und der
Anordnungs-Abschnitt B 232 für die festgelegte Wellenform ordnet zwei festgelegte
Wellenformen an (verschiebt sie), gelesen von dem Speicher-Abschnitt B 231 für die
festgelegte Wellenform, an den Positionen, ausgewählt von den Start-Positions-Kandidaten der
festgelegten Wellenformen jeweils, und zwar basierend auf Start-Positions-Kandidaten-
Informationen für festgelegte Wellenformen, die er hat, wie dies in Tabelle 9 dargestellt ist.
Die angeordneten zwei festgelegten Wellenformen werden zu dem Addier-Abschnitt 233
ausgegeben und zusammenaddiert, um ein Random-Code-Vektor zu werden. Dieser
Random-Code-Vektor wird zu dem Synthese-Filter 215 über den Schalter 213 und den
Multiplier 214 zum Multiplizieren davon mit der Random-Code-Vektor-Verstärkung
geschickt. Der Synthese-Filter 215 synthetisiert den Eingabe-Random-Code-Vektor und
schickt das Ergebnis zu dem Verzerrungs-Kalkulator 216.
-
Der Verzerrungs-Kalkulator 216 berechnet eine Codier-Verzerrung in der Gleichung 2
unter Verwendung des Targets x für eine Random-Codebuch-Suche X und den
synthetisierten Code-Vektor, erhalten von dem Synthese-Filter 215.
-
Nach einer Berechnung der Verzerrung schickt der Verzerrungs-Kalkulator 216 ein Signal
zu dem Anordnungs-Abschnitt B 232 für die festgelegte Wellenform. Der Vorgang von der
Auswahl der Start-Positions-Kandidaten entsprechend zu den drei Kanälen durch den
Anordnungs-Abschnitt B 232 für die festgelegte Wellenform bis zu der Verzerrungs-
Berechnung durch den Verzerrungs-Kalkulator 216 wird für jede Kombination der Start-
Positions-Kandidaten, auswählbar durch den Anordnungs-Abschnitt B 232 für die
festgelegte Wellenform, wiederholt.
-
Danach wird die Kombination der Start-Positions-Kandidaten, die die Codier-Verzerrung
minimiert, ausgewählt, und die Code-Nummer, die, eins zu eins, zu dieser Kombination
der Start-Positions-Kandidaten entspricht, die dann optimale Random-Code-Vektor-
Verstärkung gc und der minimale Codier-Verzerrungs-Wert, werden gespeichert. In
diesem Mode sind die festgelegten Wellenform-Muster, die in dem Speicher-Abschnitt B 231
für die festgelegten Wellenformen vor einer Sprach-Codierung gespeichert werden sollen,
was durch Training in einer solchen Art und Weise erreicht worden ist, um eine Verzerrung
unter dem Zustand von zwei festgelegten Wellenformen, in Benutzung, zu minimieren.
Dann vergleicht der Verzerrungs-Kalkulator 216 den minimalen Codier-Verzerrungs-Wert,
erhalten dann, wenn der Schalter 213 mit dem Random-Codebuch B 230 verbunden ist,
mit dem minimalen Codier-Verzerrungs-Wert, erhalten dann, wenn der Schalter 213 mit
dem Random-Codebuch A 211 verbunden ist, bestimmt Umschalt-Verbindungs-
Informationen, wenn eine kleinere Codier-Verzerrung erhalten wurde, wobei die dann
vorliegende Code-Nummer und die Random-Code-Vektor-Verstärkung als Sprach-Code
bestimmt werden und zu dem Transmitter geschickt werden.
-
Der Sprach-Decodierer gemäß diesem Mode besitzt das Random-Codebuch A, das
Random-Codebuch B, den Schalter, die Random-Code-Vektor-Verstärkung und den
Synthese-Filter, die dieselben Strukturen haben und in derselben Art und Weise angeordnet sind
wie solche in Fig. 23, wobei ein Random-Codebuch, das verwendet werden soll, ein
Random-Code-Vektor und eine Random-Code-Vektor-Verstärkung basierend auf einer
Sprach-Code-Eingabe von dem Transmitter bestimmt werden, und ein synthetisierter
Anregungs-Vektor wird als der Ausgang des Synthese-Filters erhalten.
-
Gemäß dem Sprach-Codierer/Decodierer mit den vorstehenden Strukturen kann einer der
Random-Code-Vektoren, die von dem Random-Codebuch A erzeugt werden sollen, und
der Random-Code-Vektoren, die von dem Random-Codebuch B erzeugt werden sollen,
der die Codier-Verzerrung in der Gleichung 2 minimiert, in einer geschlossenen Schleife
ausgewählt werden, was es möglich macht, einen Anregungs-Vektor näher zu einer
tatsächlichen Sprache und einer synthetisierten Sprache mit hoher Qualität zu erzeugen.
Obwohl dieser Mode als ein Sprach-Codierer/Decodierer basierend auf der Struktur in Fig.
2 des Sprach-Codierers vom herkömmlichen CELP-Typ dargestellt worden ist, können
ähnlich Funktionen und Vorteile gerade dann erhalten werden, wenn dieser Mode an
einen Sprach-Codierer/Decodierer vom CELP-Typ basierend auf der Struktur in den Fig.
19A und 19B oder in Fig. 20 angepaßt wird.
-
Obwohl dieser Mode unter Bezugnahme auf den Fall beschrieben ist, bei dem der
Speicher-Abschnitt A 181 für die festgelegte Wellenform des Random-Codebuchs A 211 drei
festgelegte Wellenformen speichert, können ähnliche Funktionen und Vorteile gerade
dann erhalten werden, wenn der Speicher-Abschnitt A 181 für die festgelegte Wellenform
eine unterschiedliche Zahl von festgelegten Wellenformen speichert, (z. B. in einem Fall,
bei dem er vier festgelegte Wellenformen besitzt). Dasselbe gilt für das
Random-Codebuch B 230.
-
Während die Beschreibung dieses Modes unter Bezugnahme auf den Fall angegeben
worden ist, bei dem der Anordnungs-Abschnitt A 182 für die festgelegten Wellenformen
des Random-Codebuchs A 211 die Start-Positions-Kandidaten-Informationen der
festgelegten Wellenformen, wie dies in Tabelle 8 dargestellt ist, besitzt, können ähnliche
Funktionen und Vorteile gerade für einen Fall erhalten werden, bei dem der Abschnitt 182
andere Start-Positions-Kandidaten-Informationen von festgelegten Wellenformen besitzt.
Dasselbe ist bei dem Random-Codebuch B 230 anwendbar.
-
Obwohl dieser Mode als ein Sprach-Codierer/Decodierer vom CELP-Typ beschrieben
worden ist, der zwei Arten von Random-Codebüchern besitzt, können ähnliche Funktionen
und Vorteile gerade in einem Fall einer Verwendung eines Sprach-Codierers/Decodierers
vom CELP-Typ erhalten werden, der drei oder mehr Arten von Random-Codebüchern
besitzt.
(Sechzehnter Mode)
-
Fig. 24 stellt ein strukturelles Blockdiagramm eines Sprach-Codierers vom CELP-Typ
gemäß diesem Mode dar. Der Sprach-Codierer erhält LPC-Koeffizienten unter Durchführen
einer Autokorrelations-Analyse und einer LPC-Analyse in Bezug auf Eingabe-Sprach-
Daten 241 in einem LPC-Analysier-Abschnitt 242, codiert die erhaltenen LPC-
Koeffizienten, um LPC-Code zu erhalten, und codiert die erhaltenen LPC-Code, um
decodierte LPC-Koeffizienten zu erhalten.
-
Als nächstes erhält ein Anregungs-Vektor-Generator 245 einen adaptiven Code-Vektor
und einen Random-Code-Vektor von einem adaptiven Codebuch 243 und einem
Anregungs-Vektor-Generator 244 und schickt sie zu einem LPC-Synthese-Filter 246. Einer der
Anregungs-Vektor-Generatoren der vorstehend beschriebenen ersten bis vierten und
zehnten Moden wird für den Anregungs-Vektor-Generator 244 verwendet. Weiterhin filtert
der LPC-Synthese-Filter 246 zwei Anregungs-Vektoren, erhalten durch den Anregungs-
Vektor-Generator 245, mit den decodierten LPC-Koeffizienten, erhalten durch den LPC-
Analysier-Abschnitt 242, um dadurch zwei synthetisierte Sprachen zu erhalten.
-
Ein Komparator 247 analysiert eine Beziehung zwischen den zwei synthetisierten
Sprachen, erhalten durch den LPC-Synthese-Filter 246, und die Eingabe-Sprache, was
optimale Werte (optimale Verstärkungen) von zwei synthetisierten Sprachen ergibt, addiert die
synthetisierten Sprachen, der Energie mit den optimalen Verstärkungen eingestellt worden
sind, was eine gesamte, synthetisierte Sprache ergibt, und berechnet dann einen Abstand
zwischen der gesamten, synthetisierten Sprache und der Eingabe-Sprache.
-
Die Abstands-Berechnung wird auch in Bezug auf die Eingabe-Sprache und mehrfache,
synthetisierte Sprachen durchgeführt, die dadurch erhalten werden, daß der Anregungs-
Vektor-Generator 245 und der LPC-Synthese-Filter 246 so in Bezug auf alle Anregungs-
Vektor-Abtastungen funktionieren, die durch das Random-Codebuch 243 und den
Anregungs-Vektor-Generator 244 erzeugt sind. Dann wird der Index der Anregungs-Vektor-
Abtastung erhalten, was den minimalen einen der Abstände, erhalten von der
Berechnung, liefert. Die erhaltenen, optimalen Verstärkungen, der optimale Index der Anregungs-
Vektor-Abtastung und die zwei Anregungs-Vektoren entsprechend zu diesem Index
werden zu einem Parameter-Codier-Abschnitt 248 geschickt.
-
Der Parameter-Codier-Abschnitt 248 codiert die optimalen Verstärkungen, um
Verstärkungs-Code zu erhalten, und die LPC-Code und der Index der Anregungs-Vektor-
Abtastung werden alle zu einem Transmitter 249 geschickt. Ein tatsächliches Anregungs-
Signal wird von den Verstärkungs-Coden und den zwei Anregungs-Vektoren entsprechend
zu dem Index erzeugt, und eine alte Anregungs-Vektor-Abtastung wird zu demselben
Zeitpunkt ausgesondert, zu dem das Anregungs-Signal in dem adaptiven Codebuch 243
gespeichert wird.
-
Fig. 25 stellt funktionale Blöcke eines Abschnitts in dem Parameter-Codier-Abschnitt 248
dar, der zu der Vektor-Quantisierung der Verstärkung zugeordnet ist.
-
Der Parameter-Codier-Abschnitt 248 besitzt einen Parameter-Konvertier-Abschnitt 2502
zum Konvertieren der optimalen Eingangs-Verstärkungen 2501 zu einer Summe von
Elementen und einem Verhältnis in Bezug auf die Summe, um Quantisierungs-Target-
Vektoren zu erhalten, einen Target-Vektor-Anregungs-Abschnitt 2503 zum Erhalten eines
Target-Vektors unter Verwendung von alten, decodierten Code-Vektoren, gespeichert in
einem Speicher-Abschnitt für decodierte Vektoren, und prädikative Koeffizienten,
gespeichert in einem Speicher-Abschnitt für die prädikativen Koeffizienten, einen decodierten
Vektor-Speicher-Abschnitt 2504, wo alte, decodierte Code-Vektoren gespeichert sind, einen
Speicher-Abschnitt 2505 für die prädikativen Koeffizienten, einen Abstands-Kalkulator
2506 zum Berechnen von Abständen zwischen einer Mehrzahl von Code-Vektoren,
gespeichert in einem Vektor-Codebuch, und einen Target-Vektor, erhalten durch den Target-
Vektor-Extrahier-Abschnitt unter Verwendung von prädikativen Koeffizienten, gespeichert
in dem Speicher-Abschnitt für die prädikativen Koeffizienten, ein Vektor-Codebuch 2507,
wo eine Mehrzahl von Code-Vektoren gespeichert ist, und einen Komparator 2508, der
das Vektor-Codebuch und den Abstands-Kalkulator zum Vergleichen der Abstände,
erhalten von dem Abstands-Kalkulator, steuert, um die Zahl des geeignetsten Code-Vektors
zu erhalten, erhält einen Code-Vektor von dem Vektor-Speicher-Abschnitt basierend auf
der erhaltenen Zahl, und aktualisiert den Inhalt des Speicher-Abschnitts für den
decodierten Vektor unter Verwendung dieses Code-Vektors.
-
Eine detaillierte Beschreibung wird nun von der Betriebsweise des so gebildeten
Parameter-Codier-Abschnitts 248 vorgenommen. Ein Vektor-Codebuch 2507, wo eine Mehrzahl
von allgemeinen Abtastungen (Code-Vektoren) eines Quantisierungs-Target-Vektors
gespeichert sind, sollte im voraus präpariert werden. Dieses wird allgemein durch einen
LBG-Algorithmus präpariert (IEEE TRANSACTIONS ON COMMUNICATIONS, VOL.
COM-28, NO. 1, Seiten 84-95, Januar 1980), und zwar basierend auf mehrfachen
Vektoren, die durch Analysieren von Mehrfach-Sprach-Daten erhalten sind.
-
Koeffizienten für eine prädikative Codierung sollten in dem Speicher-Abschnitt 2505 für die
prädikativen Koeffizienten gespeichert sein. Die prädikativen Koeffizienten werden nun
nach der Beschreibung des Algorithmus diskutiert. Ein Wert, der einen stimmlosen
Zustand anzeigt, sollte als ein Anfangs-Wert in dem Speicher-Abschnitt 2504 für den
decodierten Vektor gespeichert sein. Ein Beispiel würde ein Code-Vektor mit der niedrigsten
Energie sein.
-
Zuerst werden die optimalen Eingangs-Verstärkungen 2501 (die Verstärkung eines
adaptiven Anregungs-Vektors und die Verstärkung eines Random-Anregungs-Vektors) zu
Element-Vektoren (Eingänge) einer Summe und eines Verhältnisses in dem Parameter-
Konvertier-Abschnitt 2502 konvertiert. Das Konversions-Verfahren ist in einer Gleichung
40 dargestellt.
-
P = log (Ga + Gs)
-
R = GA/(GA + Gs) (40)
-
wobei
-
(Ga, Gs): optimale Verstärkung
-
Ga: Verstärkung eines adaptiven Anregungs-Vektors
-
Gs: Verstärkung eines stochastischen Anregungs-Vektors
-
(P, R): Eingabe-Vektoren
-
P: Summe
-
R: Verhältnis.
-
Es sollte angemerkt werden, daß Ga vorstehend nicht notwendigerweise ein positiver Wert
sein sollte. Demzufolge kann R einen negativen Wert annehmen. Wenn Ga + Gs negativ
wird, wird ein festgelegter Wert, präpariert im voraus, substituiert.
-
Als nächstes erhält, basierend auf den Vektoren, erhalten durch den Parameter-
Konvertier-Abschnitt 2502, der Target-Vektor-Extrahier-Abschnitt 2503 einen Target-
Vektor unter Verwendung von alten, decodierten Code-Vektoren, gespeichert in dem
Speicher-Abschnitt 2504 für die decodierten Vektoren, und prädikative Koeffizienten,
gespeichert in dem Speicher-Abschnitt 2504 für die prädikativen Koeffizienten. Eine
Gleichung zum Berechnen des Target-Vektors ist durch die Gleichung 41 angegeben.
-
Tp = P - ( Upi · pi + Vpi · ri)
-
Tr = R - ( Uri · pi + Vri · ri) (41)
-
wobei
-
(Tr, Tr): Target-Vektor
-
(P, R): Eingabe-Vektor
-
(pi, ri): alter, decodierter Vektor
-
Upi, Vpi, Uri, Vri: prädikative Koeffizienten (festgelegte Werte)
-
i: Index, der anzeigt, wie alt der decodierte Vektor ist
-
I: Prädikations-Reihenfolge.
-
Dann berechnet der Abstands-Kalkulator 2506 einen Abstand zwischen einem Target-
Vektor, erhalten durch den Target-Vektor-Extrahier-Abschnitt 2503, und einem Code-
Vektor, gespeichert in dem Vektor-Codebuch 2507, unter Verwendung der prädikativen
Koeffizienten, gespeichert in dem Speicher-Abschnitt 2505 für die prädikativen
Koeffizienten. Eine Gleichung zum Berechnen des Abstands ist durch Gleichung 42 angegeben.
-
Dn = Wp X (Tp - UpO X Cpn - VpO X
Cpn - VpO X Crn)²
+ Wr X (Tr - UpO X Cpn - VrO X Crn)² (42)
-
wobei
-
Dn: Abstand zwischen einem Target-Vektor und einem Code-Vektor
-
(Tp, Tr): Target-Vektoren
-
UpO, VpO, UrO, VrO: prädikative Koeffizienten (festgelegte Werte)
-
(Cpn, Crn): Code-Vektor
-
n: die Zahl des Code-Vektors
-
Wp, Wr: Gewichtungs-Koeffizient (festgelegt) zum Einstellen der Sensitivität gegenüber
einer Verzerrung.
-
Dann steuert der Komparator 2508 das Vektor-Codebuch 2507 und den Abstands-
Kalkulator 2506 so, um die Zahl des Code-Vektors, der den kürzesten Abstand, berechnet
durch den Abstands-Kalkulator 2506, von einer Vielzahl von Code-Vektoren, gespeichert
in dem Vektor-Codebuch 2507, besitzt, zu erhalten, und setzt die Zahl als einen
Verstärkungs-Code 2509. Basierend auf dem erhaltenen Verstärkungs-Code 2506 erhält der
Komparator 2508 einen decodierten Vektor und aktualisiert den Inhalt des Speicher-
Abschnitts 2054 für den decodierten Vektor unter Verwendung dieses Vektors. Die
Gleichung 43 zeigt, wie ein decodierter Vektor erhalten wird.
-
p = ( Upi · pi + Vpi · ri) + UpO · Cpn + VpO · Crn
-
R = ( Uri · pi + Vri · ri) + UrO · Cpn + VrO · Crn (43)
-
wobei
-
(Cpn, Crn): Code-Vektor
-
(P, r): decodierter Vektor
-
(pi, ri): alter, decodierter Vektor
-
Upi, Vpi, Uri, Vri: prädikative Koeffizienten (festgelegte Werte)
-
i: Index, der anzeigt, wie alt der decodierte Vektor ist
-
I: Prädikations-Reihenfolge
-
n: die Zahl des Code-Vektors.
-
Die Gleichung 44 stellt ein Aktualisierungs-Schema dar.
-
Verarbeitungs-Reihenfolge
-
pO = Cpn
-
rO = Crn
-
pi = pi - 1 (i = 1 ~ 1)
-
ri = ri - 1 (i = 1 ~ 1) (44)
-
N: Code der Verstärkung
-
Zwischenzeitlich führt der Decodierer, der zuvor mit einem Vektor-Codebuch, einem
Speicher-Abschnitt für die prädikativen Koeffizienten und einem Speicher-Abschnitt für den
codierten Vektor versehen sein sollte, ähnlich zu solchen des Codierers, eine Decodierung
durch die Funktion des Komparators des Codierers zum Erzeugen eines decodierten
Vektors und zum Aktualisieren des Speicher-Abschnitts für den decodierten Vektor, und
zwar basierend auf dem Verstärkungs-Code, der von dem Codierer übertragen ist, durch.
Ein Schema eines Einstellens von prädikativen Koeffizienten, die in dem Speicher-
Abschnitt 2505 für die prädikativen Koeffizienten gespeichert werden sollen, wird nun
beschrieben.
-
Prädikative Koeffizienten werden durch Quantisieren einer Menge von Trainings-Sprach-
Daten zuerst, Zusammenstellen von Eingangs-Vektoren, erhalten von deren optimalen
Verstärkungen, und decodierte Vektoren zu dem Zeitpunkt einer Quantisierung, Bilden
einer Population, dann Minimieren der gesamten Verzerrung, angezeigt durch die
folgende Gleichung 45 für diese Population, erhalten. Genauer gesagt werden die Werte von Upi
und Uri durch Lösen simultan von Gleichung erhalten, die durch teilweises Differenzieren
der Gleichungen der gesamten Verzerrung in Bezug auf Upi und Uri erhalten sind.
-
pt, O = Cpn(t)
-
rt,O = Crn(t)
-
wobei
-
Total: gesamte Verzerrung
-
t: Zeit (Rahmen-Zeit)
-
T: Zahl von Teilen von Daten in der Population
-
(Pt, Rt): optimale Verstärkung zu der Zeit t
-
(pti, rti): decodierter Vektor der Zeit t
-
Upi, Vpi, Uri, Vri: prädikative Koeffizienten (festgelegte Werte)
-
i: Index, der anzeigt, wie alt der decodierte Vektor ist
-
I: Prädikations-Ordnung
-
(Cpn(t), Crn(t)): Code-Vektor zu der Zeit t
-
n: die Zahl des Code-Vektors
-
Wp, Wr: Gewichtungs-Koeffizient (festgelegt) zum Einstellen der Sensitivität gegenüber
einer Verzerrung.
-
Entsprechend einem solchen Vektor-Quantisierungs-Schema kann die optimale
Verstärkung so, wie sie ist, vektor-quantisiert sein, das Merkmal des Parameter-Konvertier-
Abschnitts kann die Verwendung der Korrelation zwischen den relativen Niveaus der
Energie und jeder Verstärkung zulassen, und die Merkmale des Speicher-Abschnitts für
den decodierten Vektor, der Speicher-Abschnitt für die prädikativen Koeffizienten, der
Extrahier-Abschnitt für den Target-Vektor und der Abstands-Kalkulator können eine
prädikative Codierung von Verstärkungen unter Verwendung der Korrelation zwischen den
gegenseitigen Beziehungen zwischen der Energie und den zwei Verstärkungen sicherstellen.
Diese Merkmale können ermöglichen, daß die Korrelation unter Parametern, die
verwendet werden sollen, ausreichend ist.
(Sechzehnter Mode)
-
Fig. 26 stellt ein strukturelles Blockdiagramm eines Parameter-Codier-Abschnitts eines
Sprach-Codierers gemäß diesem Mode dar. Gemäß diesem Mode wird eine Vektor-
Quantisierung durchgeführt, während eine von einer Verstärkungs-Quantisierung
ausgehende Verzerrung von zwei synthetisierten Sprachen gemäß dem Index des Anregungs-
Vektors und einer andauernden, gewichteten Eingabe-Sprache evaluiert wird.
-
Wie in Fig. 26 dargestellt ist, besitzt der Parameter-Codier-Abschnitt einen Parameter-
Kalkulator 2602, der Parameter berechnet, die für eine Abstands-Berechnung von
Eingabe-Daten oder einer andauernden, gewichteten Eingabe-Sprache, einer andauernden,
gewichteten LPC-Synthese eines adaptiven Code-Vektors und einer andauernden,
gewichteten LPC-Synthese eines Random-Code-Vektors 2601, um eingegeben zu werden,
einen decodierten Vektor, gespeichert in einem Decodier-Vektor-Speicher-Abschnitt, und
prädikative Koeffizienten, gespeichert in einem Speicher-Abschnitt für prädikative
Koeffizienten, einen Speicher-Abschnitt 2603 für einen decodierten Vektor, wo alte, decodierte
Code-Vektoren gespeichert sind, einen Speicher-Abschnitt 2604 für prädikative
Koeffizienten, wo prädikative Koeffizienten gespeichert sind, einen Abstands-Kalkulator 2605 zum
Berechnen einer Codier-Verzerrung der Zeit, wenn ein Decodieren mit einer Vielzahl von
Code-Vektoren ausgeführt wird, gespeichert in einem Vektor-Codebuch, unter
Verwendung der prädikativen Koeffizienten, gespeichert in dem Speicher-Abschnitt für prädikative
Koeffizienten, ein Vektor-Codebuch 2606, wo eine Mehrzahl von Code-Vektoren
gespeichert sind, und einen Komparator 2607, der das Vektor-Codebuch und den Abstands-
Kalkulator zum Vergleichen der Codier-Verzerrungen, erhalten von dem Abstands-
Kalkulator, steuert, um die Zahl des geeignetesten Code-Vektors zu erhalten, berechnet,
erhält einen Code-Vektor von dem Vektor-Speicher-Abschnitt, basierend auf der
erhaltenen Zahl, und aktualisiert den Inhalt des Speicher-Abschnitts für den decodierten Vektor
unter Verwendung dieses Code-Vektors aufweist.
-
Eine Beschreibung wird für die Vektor-Quantisierungs-Operation des so gebildeten
Parameter-Codier-Abschnitts angegeben. Das Vektor-Codebuch 2606, wo eine Mehrzahl von
allgemeinen Beispielen (Code-Vektoren) eines Quantisierungs-Target-Vektors gespeichert
sind, sollte im voraus präpariert sein. Dieses wird allgemein durch einen LBG-Algorithmus
(IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. COM-28, NO. 1, Seiten 84-95,
Januar 1980) oder dergleichen basierend auf mehrfachen Vektoren, die durch Analysieren
von mehrfachen Sprach-Daten erhalten sind, präpariert. Koeffizienten für eine prädikative
Codierung sollten in dem Speicher-Abschnitt 2604 für die prädikativen Koeffizienten
gespeichert sein. Diese Koeffizienten, die in Verwendung sind, sind dieselben prädikativen
Koeffizienten, wie solche, die in dem Speicher-Abschnitt 2505 für die prädikativen
Koeffizienten gespeichert sind, die in dem (sechzehnten Mode) diskutiert worden sind. Ein Wert,
der einen stimmlosen Zustand anzeigt, sollte als ein Anfangs-Wert in dem Speicher-
Abschnitt 2603 für den decodierten Vektor gespeichert werden.
-
Zuerst berechnet der Parameter-Kalkulator 2602 Parameter, die zur Abstands-
Berechnung notwendig sind, von der eingegebenen, andauernden, gewichteten Eingabe-
Sprache, eine andauernde, gewichtete LPC-Synthese eines adaptiven Code-Vektors und
eine andauernde, gewichtete LPC-Synthese eines Random-Code-Vektors, und weiterhin
von dem decodierten Vektor, gespeichert in dem Speicher-Abschnitt 2603 für den
decodierten Vektor und die prädikativen Koeffizienten, gespeichert in dem Speicher-Abschnitt
2604 für die prädikativen Koeffizienten. Die Abstände in dem Abstands-Kalkulator sind auf
der folgenden Gleichung 46 basierend.
-
En = (Xi - Gan · Ai - Gsn · Si)²
-
Gan = Orn · e · p (Opn)
-
Gsn = (1 - Orn) · e · p (Opn)
-
Opn = Yp + UpO · Cpn + VpO · Crn (46)
-
Yp = Upj · pj + VpJ · rj
-
Yr = Urj · pj + Vrj · rj
-
Gan, Gsn: decodierte Verstärkung
-
(Opn, Orn): decodierter Vektor
-
(Yp, Yr): prädikativer Vektor
-
En: Codier-Verzerrung, wenn der n-te Verstärkungs-Code-Vektor verwendet wird
-
Xi: andauernde, gewichtete Eingabe-Sprache
-
Ai: andauernde, gewichtete LPC-Synthese eines adaptiven Code-Vektors
-
Si: andauernde, gewichtete LPC-Synthese eines stochastischen Code-Vektors
-
n: Code des Code-Vektors
-
i; Index von Anregungs-Daten
-
I: Unterrahmen-Länge (Codier-Einheit der Eingabe-Sprache)
-
(Cpn, Crn): Code-Vektor
-
(pj, rj): alter, decodierter Vektor
-
Upj, Vpj, Urj, Vrj: prädikative Koeffizienten (festgelegte Werte)
-
j: Index, der anzeigt, wie alt der decodierte Vektor ist
-
J: Prädikations-Ordnung.
-
Deshalb berechnet der Parameter-Kalkulator 2602 solche Bereiche, die nicht von der Zahl
eines Code-Vektors abhängen. Dasjenige, was berechnet werden soll, ist der prädikative
Vektor und die Korrelation unter drei synthetisierten Sprachen oder der Energie. Eine
Gleichung für die Berechnung ist durch Gleichung 47 angegeben.
-
Yp = Upj · pj + VpJ · rj
-
Yr = Urj · pj + Vrj
· rj
-
Dxx = Xi · Xi
-
Dxa = Xi · Ai · 2
-
Dxs = Ai · Si · 2
-
Daa = Ai · Ai · Ai
-
Das = Ai · Si · 2
-
Dss = Si · Si (47)
-
wobei
-
(Yp, Yr): prädikativer Vektor
-
Dxx, Dxa, Dxs, Daa, Das, Dss: Wert einer Korrektur unter synthetisierten Sprachen oder
der Energie
-
Xi: andauernde, gewichtete Eingabe-Sprache
-
Ai: andauernde, gewichtete LPC-Synthese eines adaptiven Code-Vektors
-
Si: andauernde, gewichtete LPC-Synthese oder stochastischer Code-Vektor
-
i: Index von Anregungs-Daten
-
I: Unterrahmen-Länge (Codier-Einheit der Eingabe-Sprache)
-
(pj, rj): alter, decodierter Vektor
-
Upj, Vpj, Urj, Vrj: prädikative Koeffizienten (festgelegte Werte)
-
j: Index, der anzeigt, wie alt der decodierte Vektor ist
-
J: Prädikations-Ordnung.
-
Dann berechnet der Abstands-Kalkulator 2506 einen Abstand zwischen einem Target-
Vektor, erhalten durch den Extrahier-Abschnitt 2503 für den Target-Vektor, und einem
Code-Vektor, gespeichert in dem Vektor-Codebuch 2507, unter Verwendung der
prädikativen Koeffizienten, gespeichert in dem Speicher-Abschnitt 2505 für die prädikativen
Koeffizienten. Eine Gleichung zum Berechnen eines Abstands ist durch eine Gleichung 42
angegeben.
-
En = Dxx + (Gan)² · Daa + (Gsn)² · Dss
- Gan · Dxa
- Gsn · Dxs + Gan · Gsn · Das
-
Gan = Orn · exp(Opn) (48)
-
Opn = Yp + UpO · Cpn + VpO · Crn
-
Orn = Yr + UrO · Cpn + vor x Crn
-
wobei
-
En: Codier-Verzerrung, wenn der n-te Verstärkungs-Code-Vektor verwendet wird
Dxx, Dxa, Dxs, Daa, Das, Dss: Wert einer Korrektur unter synthetisierten Sprachen oder
der Energie
-
Gan, Gsn: decodierte Verstärkung
-
(Opn, Orn,): decodierter Vektor
-
(Yp, Yr): prädikativer Vektor
-
UpO, VpO, UrO, VrO: prädikative Koeffizienten (festgelegte Werte)
-
(Cpn, Crn): Code-Vektor
-
n: die Zahl des Code-Vektors.
-
Tatsächlich hängt Dxx nicht von der Zahl n des Code-Vektors ab, so daß seine
Hinzufügung weggelassen werden kann.
-
Dann steuert der Komparator 2607 das Vektor-Codebuch 2606 und den Abstands-
Kalkulator 2605, um die Zahl des Code-Vektors zu erhalten, der den kürzesten Abstand,
berechnet durch den Abstands-Kalkulator 2605, von einer Mehrzahl von Code-Vektoren
hat, gespeichert in dem Vektor-Codebuch 2606, und stellt die Zahl als einen Verstärkungs-
Code 2608 ein. Basierend auf dem erhaltenen Verstärkungs-Code 2608 erhält der
Komparator 2607 einen decodierten Vektor und aktualisiert den Inhalt des Speicher-Abschnitts
2603 für den decodierten Vektor unter Verwendung dieses Vektors. Ein Code-Vektor wird
von der Gleichung 44 erhalten.
-
Weiterhin wird das Aktualisierungs-Schema, die Gleichung 44, verwendet.
-
Dabei sollte der Sprach-Decodierer zuvor mit einem Vektor-Codebuch, einem Speicher-
Abschnitt für prädikative Koeffizienten und einem Speicher-Abschnitt für den codierten
Vektor, ähnlich zu solchen des Sprach-Codierers, ausgestattet sein, und er führt eine
Decodierung über die Funktionen des Komparators des Codierers in Form einer Erzeugung
eines decodierten Vektors und eines Aktualisierens des Speicher-Abschnitts für den
decodierten Vektor durch, und zwar auf dem Verstärkungs-Code, der von dem Codierer
übertragen ist.
-
Gemäß dem so aufgebauten Mode kann eine Vektor-Quantisierung durchgeführt werden,
während eine von einer Evaluierungs-Verstärkungs-Quantisierung ausgehende
Verzerrung von zwei synthetisierten Sprachen entsprechend zu dem Index des Anregungs-
Vektors und der Eingabe-Sprache durchgeführt werden kann, wobei das Merkmal des
Parameter-Konvertier-Abschnitts die Verwendung der Korrelation zwischen den relativen
Pegeln der Energie und jeder Verstärkung zulassen kann, und die Merkmale des Speicher-
Abschnitts für den decodierten Vektor, des Speicher-Abschnitts für die prädikativen
Koeffizienten, des Extrahier-Abschnitts für den Target-Vektor und des Abstands-Kalkulators
können eine prädikative Codierung von Verstärkungen unter Verwendung der Korrelation
zwischen den gegenseitigen Beziehungen zwischen der Energie und zwei Verstärkungen
sicherstellen. Dies kann ermöglichen, daß die Korrelation unter Parametern ausreichend
genutzt werden kann.
(Achtzehnter Mode)
-
Fig. 27 zeigt ein strukturelles Blockdiagramm der wesentlichen Bereiche einer Rausch-
Aufhebungs-Einrichtung gemäß diesem Mode. Diese Rausch-Aufhebungs-Einrichtung ist
in dem vorstehend beschriebenen Sprach-Codierer installiert. Zum Beispiel ist sie an der
vorausgehenden Stufe des Puffers 1301 in dem Sprach-Codierer, dargestellt in Fig. 13,
plaziert.
-
Die Rausch-Aufhebungs-Einrichtung, dargestellt in Fig. 27, weist einen A/D-Wandler 272,
einen Rausch-Aufhebungs-Koeffizienten-Speicher-Abschnitt 273, einen Rausch-
Aufhebungs-Koeffizienten-Einstell-Abschnitt 274, einen Eingangs-Wellenform-Einstell-
Abschnitt 275, einen LPC-Analysier-Abschnitt 276, einen Fourier-Transformations-
Abschnitt 277, einen Rausch-AufhebungslSpektrum-Kompensations-Abschnitt 278, einen
Spektrum-Stabilisierungs-Abschnitt 279, einen Invers-Fourier-Transformations-Abschnitt
280, einen Spektrum-Erhöhungs-Abschnitt 281, einen Welilenform-Anpassungs-Abschnitt
282, einen Rausch-Abschätzungs-Abschnitt 285, einen Rausch-Spektrum-Speicher-
Abschnitt 286 für ein vorheriges Spektrum, einen Rausch-Phasen-Speicher-Abschnitt 287,
einen Speicher-Abschnitt 288 für eine vorherige Wellenform und einen Maximal-Energie-
Speicher-Abschnitt 289 auf.
-
Zu Anfang werden anfängliche Einstellungen diskutiert.
-
Die Tabelle 10 stellt die Namen von festgelegten Parametern und Einstell-Beispielen dar
Tabelle 10
Festgelegte Parameter Einstell-Beispiele
-
Rahmen-Länge 160 (20 msec für 8-kHz Abtast-Daten)
-
Vorlese-Daten-Länge 80 (10 msec für die obigen Daten)
-
FET-Ordnung 256
-
LPC-Vorhersage-Ordnung 10
-
Unterstützungs-Zahl einer Rausch-Spektums-Referenz 30
-
Bezeichnete, minimale Energie 20,0
-
AR-Erhöhungs-Koeffizient 0 0,5
-
MA-Erhöhungs-Koeffizient 0 0,8
-
Hochfrequenz-Erhöhungs-Koeffizient 0 0,4
-
AR-Erhöhungs-Koeffizient 1-0 0,66
-
MA-Erhöhungs-Koeffizient 1-0 0,64
-
AR-Erhöhungs-Koeffizient 1-1 0,7
-
MA-Erhöhungs-Koeffizient 1-1 0,6
-
Hochfrequenz-Erhöhungs-Koeffizient 1 0,3
-
Energie-Erhöhungs-Koeffizient 1,2
-
Rausch-Referenz-Energie 20 000,0
-
Energie-Reduktions-Koeffizient für stimmloses Segment 0,3
-
Vergleichs-Energie-Erhöhungs-Koeffizient 2,0
-
Zahl von aufeinanderfolgenden Rausch-Referenzen 5
-
Rausch-Aufhebungs-Koeffizient Trainings-Koeffizient 0,8
-
Erfassungs-Koeffizient für stimmloses Segment 0,05
-
Aufhebungs-Koeffizient für das bezeichnete Rauschen 1,5
-
Phasen-Daten zum Einstellen der Phase sollten in dem Random-Phasen-Speicher-
Abschnitt 287 gespeichert worden sein. Diese werden dazu verwendet, die Phase in dem
das Spektrum stabilisierenden Abschnitt 279 zu rotieren. Tabelle 11 stellt einen Fall dar,
bei dem acht Arten von Phasen-Daten vorhanden sind.
Tabelle 11
Phasen-Daten
-
(-0,51, 0,86), (0,98, -0,17)
-
(0,30, 0,95), (-0,53, -0,84)
-
(-0,94, -0,34), (0,70, 0,71)
-
(-0,22, 0,97), (0,38, -0,92)
-
Weiterhin sollte ein Zähler (Random-Phasen-Zähler) zur Verwendung der Phasen-Daten
in dem Random-Phasen-Speicher-Abschnitt 287 auch gespeichert worden sein. Dieser
Wert sollte auf 0 vor einer Speicherung initialisiert worden sein.
-
Als nächstes wird der Bereich des statischen RAM eingestellt. Genauer gesagt werden der
Rausch-Aufhebungs-Koeffizienten-Speicher-Abschnitt 273, der Rausch-Spektrum-
Speicher-Abschnitt 285, der Speicher-Abschnitt 286 für das vorhergehende Spektrum, der
Speicher-Abschnitt 288 für die vorhergehende Wellenform und der Maximal-Energie-
Speicher-Abschnitt 289 gelöscht. Das folgende wird die individuellen Speicher-Abschnitte
und ein Einstellbeispiel besprechen.
-
Der Rausch-Aufhebungs-Koeffizienten-Speicher-Abschnitt 273 ist ein Bereich zum
Speichern eines Rausch-Aufhebungs-Koeffizienten, dessen Anfangswert, der gespeichert ist,
20,0 ist. Der Rausch-Spektrum-Speicher-Abschnitt 285 ist ein Bereich zum Speichern, für
jede Freguenz, einer mittleren Rausch-Energie, eines mittleren Rausch-Spektrums, eines
Kompensations-Rausch-Spektrums für den ersten Kandidaten, eines Kompensations-
Rausch-Spektrums für den zweiten Kandidaten und einer Rahmen-Nummer
(Beibehaltungs-Nummer), die anzeigt, wie viele Rahmen früher sich der Spektrums-Wert jeder
Frequenz geändert hat; ein ausreichend großer Wert für die durchschnittliche Rausch-
Energie, eine bezeichnete, minimale Energie für das durchschnittliche Rausch-Spektrum
und ausreichend große Werte für die Kompensations-Rausch-Spektren und die
Beibehaltungs-Zahl sollten als Anfangs-Werte gespeichert sein.
-
Der vorherige Spektrums-Speicher-Abschnitt 286 ist ein Bereich zum Speichern einer
Kompensations-Rausch-Energie, Energie (voller Bereich, Zwischenbereich) eines
vorherigen Rahmens (vorherige Rahmen-Energie), einer Glättungs-Energie (voller Bereich,
Zwischenbereich) eines vorherigen Rahmens (vorherige Glättungs-Energie) und einer
Rausch-Sequenz-Zahl; ein ausreichend großer Wert für die Kompensations-Rausch-
Energie, 0,0 für sowohl die vorherige Rahmen-Energie als auch die volle Rahmen-
Glättungs-Energie, und eine Rausch-Referenz-Segment als die Rausch-Sequenz-Zahl
sollten gespeichert sein.
-
Der vorherige Wellenform-Speicher-Abschnitt 288 ist ein Bereich zum Speichern von
Daten des Ausgangs-Signals des vorherigen Rahmens mit der Länge der am kürzesten
vorher gelesenen Daten zum Anpassen des Ausgangs-Signals, und alle 0 sollten als ein
Anfangs-Wert gespeichert sein. Der Spektrum-Erhöhungs-Abschnitt 281, der eine ARMA und
Hochfrequenz-Erhöhungs-Filterung ausführt, sollte die Status-Zustände der jeweiligen
Filter, gelöscht auf 0, für diesen Zweck haben. Der Maximal-Energie-Speicher-Abschnitt
289 ist ein Bereich zum Speichern der maximalen Energie des Eingangs-Signals und
sollte 0 als die maximale Energie gespeichert haben.
-
Als nächstes wird der Rausch-Aufhebungs-Algorithmus Block für Block unter Bezugnahme
auf Fig. 27 erläutert.
-
Zuerst wird ein analoges Eingangs-Signal 271, das eine Sprache einschließt, einer A/D-
Konversion in dem A/D-Wandler 272 unterworfen und wird mit einer Rahmen-Länge +
Vorlese-Daten-Länge (160 + 80 = 240 Punkte in dem vorstehenden Einstell-Beispiel)
eingegeben. Der Rausch-Aufhebungs-Koeffizienten-Einstell-Abschnitt 274 berechnet einen
Rausch-Aufhebungs-Koeffizienten und einen Kompensations-Koeffizienten für eine
Gleichung 49 basierend auf dem Rausch-Aufhebungs-Koeffizienten, gespeichert in dem
Rausch-Aufhebungs-Koeffizienten-Speicher = Abschnitt 273, einen bezeichneten Rausch-
Aufhebungs-Koeffizienten, einen Lern-Koeffizienten für den Rausch-Aufhebungs-
Koeffizienten und einen Kompensations-Energie-Erhöhungs-Koeffizienten. Der erhaltene
Rausch-Aufhebungs-Koeffizient wird in dem Rausch-Aufhebungs-Koeffizienten-Speicher-
Abschnitt 273 gespeichert, das Eingabe-Signal, erhalten durch den A/D-Wandler 272, wird
auch zu dem Eingangs-Wellenform-Einstell-Abschnitt 275 geschickt, und der
Kompensations-Koeffizient und der Rausch-Aufhebungs-Koeffizient werden zu dem Rausch-
Abschätzungs-Abschnitt 284 und dem Rausch-Aufhebungs/Spektrum-Kompensations-
Abschnitt 278 geschickt.
-
q = qXC + QX(1 - C)
-
r = Q/qXD (49)
-
wobei
-
q: Rausch-Aufhebungs-Koeffizient
-
Q: Aufhebungs-Koeffizient für das bezeichnete Rauschen
-
C: Lern-Koeffizient für den Rausch-Aufhebungs-Koeffizient
-
r: Kompensations-Koeffizient
-
D: Kompensations-Energie-Erhöhungs-Koeffizient
-
Der Rausch-Aufhebungs-Koeffizient ist ein Koeffizient, der eine Rate einer Verringerung
eines Rauschens anzeigt, der Rausch-Aufhebungs-Koeffizient für das bezeichnete
Rauschen ist ein festgelegter Koeffizient, der zuvor bezeichnet ist, der Lern-Koeffizient für den
Rausch-Aufhebungs-Koeffizienten ist ein Koeffizient, der eine Rate anzeigt, mit der sich
der Rausch-Aufhebungs-Koeffizient dem bezeichneten Rausch-Aufhebungs-Koeffizienten
nähert, der Kompensations-Koeffizient ist ein Koeffizient zum Einstellen der
Kompensations-Energie in der Spektrum-Kompensation und der Kompensations-Energie-Erhöhungs-
Koeffizient ist ein Koeffizient zum Einstellen des Kompensations-Koeffizienten.
-
Ln dem Eingangs-Wellenform-Einstell-Abschnitt 275 wird das Eingangs-Signal von dem
A/D-Wandler 272 in eine Speicher-Anordnung geschrieben, die eine Länge von 2 bis zu
einer Exponential-Zahl besitzt von dem Ende aus in einer solchen Art und Weise, daß die
FFT (schnelle Fourier-Transformation) ausgeführt werden kann. 0 sollte in den vorderen
Bereich eingesetzt werden. In dem vorstehenden Einstell-Beispiel wird 0 in 0 bis 15 in der
Anordnung mit einer Länge von 256 geschrieben, und das Eingangs-Signal wird in 16 bis
255 geschrieben. Diese Anordnung wird als ein Bereich einer realen Zahl in der FFT der
achten Ordnung verwendet. Eine Anordnung, die dieselbe Länge wie den Teil der realen
Zahl besitzt, wird für einen Teil einer imaginären Zahl präpariert, und alle 0 sollten dort
geschrieben werden.
-
In dem LPC-Analysier-Abschnitt 276 wird ein Hamming-Fenster auf den Bereich der
realen Zahl gegeben, eingestellt in dem Eingangs-Wellenform-Einstell-Abschnitt 275, eine
Autokorrelations-Analyse wird in Bezug auf die mit Hamming-Fenster versehene
Wellenform durchgeführt, um einen Autokorrelations-Wert zu erhalten, und eine auf einer
Autokorrelation basierende LPC-Analyse wird durchgeführt, um lineare, prädikative
Koeffizienten zu erhalten. Weiterhin werden die erhaltenen, linearen, prädikativen Koeffizienten zu
dem Spektrum-Erhöhungs-Abschnitt 281 geschickt.
-
Der Fourier-Transformations-Abschnitt 277 führt eine diskrete Fourier-Transformation
durch FFT unter Verwendung der Speicher-Anordnung des Real-Zahl-Teils und des
Imaginär-Zahl-Teils durch, erhalten durch den Eingangs-Wellenform-Einstell-Abschnitt 275.
Die Summe der absoluten Werte des Real-Zahl-Teils und des Imaginär-Zahl-Teils des
erhaltenen, komplexen Spektrums wird berechnet, um das Pseudo-Amplituden-Spektrum
(Eingangs-Spektrum nachfolgend) des Eingangs-Signals zu erhalten. Weiterhin wird die
gesamte Summe des Eingangs-Spektrum-Werts jeder Frequenz (Eingangs-Energie
nachfolgend) erhalten und zu dem Rausch-Abschätz-Abschnitt 284 geschickt. Das
komplexe Spektrum selbst wird zu dem Spektrum-Stabilisier-Abschnitt 279 geschickt.
Ein Verfahren in dem Rausch-Abschätz-Abschnitt 284 wird nun diskutiert.
-
Der Rausch-Abschätz-Abschnitt 284 vergleicht die Eingangs-Energie, erhalten durch den
Fourier-Transformations-Abschnitt 277, mit dem maximalen Energie-Wert, gespeichert in
dem Maximal-Energie-Speicher-Abschnitt 289, und speichert den maximalen Energie-
Wert als den Eingangs-Energie-Wert in dem Maximal-Energie-Speicher-Abschnitt 289,
wenn die maximale Energie kleiner ist. Wenn mindestens einer der folgenden Fälle erfüllt
ist, wird eine Rausch-Abschätzung durchgeführt, und wenn keiner davon erfüllt ist, wird
eine Rausch-Abschätzung nicht durchgeführt.
-
(1) Die Eingangs-Energie ist kleiner als die maximale Energie multipliziert mit einem
stimmlosen Segment-Erfassungs-Koeffizienten.
-
(2) Der Rausch-Aufhebungs-Koeffizient ist größer als der bezeichnete Rausch-
Aufhebungs-Koeffizient plus 0,2.
-
(3) Die Eingangs-Energie ist kleiner als ein Wert, erhalten durch Multiplizieren der
durchschnittlichen Rausch-Energie, erhalten von dem Rausch-Spektrum-Speicher-
Abschnitt 285, mit 1,6.
-
Der Rausch-Abschätz-Algorithmus in dem Rausch-Abschätz-Abschnitt 284 wird nun
diskutiert.
-
Zuerst werden die Beibehaltungs-Zahlen aller Frequenzen für den ersten und zweiten
Kandidaten, gespeichert in dem Rausch-Spektrum-Speicher-Abschnitt 285, aktualisiert
(um 1 erhöht). Dann wird die Beibehaltungs-Zahl jeder Frequenz für den ersten
Kandidaten geprüft, und wenn sie größer als eine zuvor eingestellte Beibehaltungs-Zahl einer
Rausch-Spektrum-Referenz ist, werden das Kompensations-Spektrum und die
Beibehaltungs-Zahl für den zweiten Kandidaten als solche für den ersten Kandidaten eingestellt,
und das Kompensations-Spektrum des zweiten Kandidaten wird als dasjenige des dritten
Kandidaten eingestellt und die Beibehaltungs-Zahl wird auf 0 eingestellt. Es ist
anzumerken, daß bei der Ersetzung des Kompensations-Spektrums des zweiten Kandidaten der
Speicher nicht durch Speichern des dritten Kandidaten und Beibehalten eines Werts
geringfügig größer als der zweite Kandidat gesichert werden kann. In diesem Mode wird ein
Spektrum, das 1,4-mal größer als das Kompensations-Spektrum des zweiten Kandidaten
ist, substituiert.
-
Nach Erneuern der Beibehaltungs-Zahl wird das Kompensations-Rausch-Spektrum mit
dem Eingangs-Spektrum für jede Frequenz verglichen. Zuerst wird das Eingangs-
Spektrum jeder Frequenz mit dem Kompensations-Rausch-Spektrum des ersten
Kandidaten verglichen, und wenn das Eingangs-Spektrum kleiner ist, werden das
Kompensations- Rausch-Spektrum und die Beibehaltungs-Zahl für den ersten Kandidaten als solche
für den zweiten Kandidaten eingestellt, und das Eingangs-Spektrum wird als Vergleichs-
Spektrum des ersten Kandidaten eingestellt, mit der Beibehaltungs-Zahl auf 0 eingestellt.
In anderen Fällen als der erwähnte Zustand wird das Eingangs-Spektrum mit dem
Kompensations-Rausch-Spektrum des zweiten Kandidaten verglichen, und wenn das
Eingangs-Spektrum kleiner ist, wird das Eingangs-Spektrum als das Kompensations-
Spektrum des zweiten Kandidaten eingestellt, mit der Beibehaltungs-Zahl auf 0 eingestellt.
Dann werden die erhaltenen Kompensations-Spektren und die Beibehaltungs-Zahlen des
ersten und des zweiten Kandidaten in dem Rausch-Spektrum-Speicher-Abschnitt 285
gespeichert. Zur selben Zeit wird das durchschnittliche Rausch-Spektrum entsprechend der
folgenden Gleichung 50 aktualisiert.
-
Si = SiXg + SiX(1 - g) (50)
-
wobei
-
s: durchschnittliches Rausch-Spektrum
-
S: Eingangs-Spektrum
-
g: 0,9 (wenn die Eingangs-Energie größer als die Hälfte der durchschnittlichen Rausch-
Energie ist)
-
0,5 (wenn die Eingangs-Energie gleich zu oder kleiner als eine Hälfte der
durchschnittlichen Rausch-Energie ist)
-
i: Zahl der Frequenz.
-
Das durchschnittliche Rausch-Spektrum ist ein Pseudo-Durchschnitts-Rausch-Spektrum,
und der Koeffizient g in der Gleichung 50 dient zur Einstellung der Geschwindigkeit eines
Lernens des durchschnittlichen Rausch-Spektrums. Das bedeutet, daß der Koeffizient
einen solchen Effekt hat, daß dann, wenn die Eingangs-Energie kleiner als die Rausch-
Energie ist, es wahrscheinlich ist, nur ein Rausch-Segment zu sein, so daß die Lern-
Geschwindigkeit erhöht werden wird, und ansonsten ist es wahrscheinlich, daß es ein
Sprach-Segment ist, so daß die Lern-Geschwindigkeit reduziert wird.
-
Dann wird die gesamte Zahl von Werten der individuellen Frequenzen des
durchschnittlichen Rausch-Spektrums als die durchschnittliche Rausch-Energie erhalten. Das
Kompensations-Rausch-Spektrum, das durchschnittliche Rausch-Spektrum und die
durchschnittliche Rausch-Energie werden in dem Rausch-Spektrum-Speicher-Abschnitt 285
gespeichert.
-
In dem vorstehenden Rausch-Abschätz-Prozeß kann die Kapazität des RAM, der den
Rausch-Spektrum-Speicher-Abschnitt 285 bildet, eingespart werden, indem ein Rausch-
Spektrum einer Frequenz entsprechend zu den Eingangs-Spektren einer Mehrzahl von
Frequenzen gemacht wird. Als ein Beispiel ist die RAM-Kapazität des Rausch-Spektrum-
Speicher-Abschnitts 285 zu der Zeit eines Abschätzens eines Rausch-Spektrums einer
Frequenz von den Eingangs-Spektren für vier Frequenzen dargestellt, wobei die FFT mit
256 Punkten in diesem Mode verwendet ist. Unter Berücksichtigung des (Pseudo-)
Amplituden-Spektrums, das horizontal symmetrisch in Bezug auf die Frequenz-Achse ist, um
eine Abschätzung für alle Frequenzen vorzunehmen, werden die Spektren von 128
Frequenzen und 128 Beibehaltungs-Zahlen gespeichert, was demzufolge die RAM-Kapazität
von insgesamt 768 W oder 128 (Frequenzen) X2 (Spektrum und Beibehaltungs-Zahl) X3
(erster und zweiter Kandidat zum Vergleich und für den Durchschnitt) erfordert.
Wenn ein Rausch-Spektrum einer Frequenz entsprechend den Eingangs-Spektren von
vier Frequenzen gemacht wird, wird, im Gegensatz dazu, die erforderliche RAM-Kapazität
eine Gesamtheit von 192 W oder 32 (Frequenzen) X2 (Spektrum und Beibehaltungs-Zahl)
X3 (erster und zweiter Kandidat für eine Kompensation und für einen Durchschnitt) ist. In
diesem Fall ist über Experimente bestätigt worden, daß für den vorstehend 1 X 4 Fall die
Funktion nur schwer verschlechtert wird, während sich die Frequenz-Auflösung des
Rausch-Spektrums erniedrigt. Da dieses Mittel nicht zur Abschätzung eines Rausch-
Spektrums von einem Spektrum einer Frequenz dient, besitzt sie einen Effekt eines Verhinderns,
daß das Spektrum fehlerhaft als ein Rausch-Spektrum abgeschätzt wird, wenn
ein normaler Klang, (Sinuswelle, Selbstlaut oder dergleichen) für eine lange Zeitperiode
fortfährt.
-
Eine Beschreibung wird nun eines Prozesses in dem Rausch-Aufhebungs/Spektrum-
Kompensations-Abschnitt 278 angegeben.
-
Ein Ergebnis eines Multiplizierens des durchschnittlichen Rausch-Spektrums, gespeichert
in dem Rausch-Spektrum-Speicher-Abschnitt 285, mit dem Rausch-Aufhebungs-
Koeffizienten, erhalten durch den Rausch-Aufhebungs-Koeffizienten-Einstell-Abschnitt
274, wird von dem Eingangs-Spektrum (Spektrum-Differenz nachfolgend) subtrahiert.
Wenn die RAM-Kapazität des Rausch-Spektrum-Speicher-Abschnitts 285 gesichert wird,
wie dies in der Erläuterung des Rausch-Abschätzungs-Abschnitts 284 beschrieben ist,
wird ein Ergebnis eines Multiplizierens eines durchschnittlichen Rausch-Spektrums einer
Frequenz entsprechend zu dem Eingangs-Spektrum mit dem Rausch-Aufhebungs-
Koeffizienten subtrahiert. Wenn die Spektrum-Differenz negativ wird, wird eine
Kompensation durch Einstellen eines Wertes, erhalten durch Multiplizieren des ersten Kandidaten
des Kompensations-Rausch-Spektrums, gespeichert in dem Rausch-Spektrum-Speicher-
Abschnitt 285, mit dem Kompensations-Koeffizienten, erhalten durch den Rausch-
Aufhebungs-Koeffizienten-Einstell-Abschnitt 274, ausgeführt. Dies wird für jede Frequenz
durchgeführt. Weiterhin werden Zeichen-Daten für jede Frequenz präpariert, so daß die
Frequenz, mit der die Spektrum-Differenz kompensiert worden ist, erfaßt werden kann.
Zum Beispiel ist dort ein Bereich für jede Frequenz vorhanden, und 0 wird in dem Fall
keiner Kompensation eingestellt, und 1 wird eingestellt, wenn eine Kompensation ausgeführt
worden ist. Diese Zeichen-Daten werden zusammen mit der Spektrum-Differenz zu dem
Spektrum-Stabilisier-Abschnitt 279 geschickt. Weiterhin wird die gesamte Zahl, die
kompensiert ist (Kompensations-Zahl), durch Prüfen der Werte der Zeichen-Daten erhalten,
und wird zu dem Spektrum-Stabilisier-Abschnitt 279 auch geschickt.
-
Ein Verfahren in dem Spektrum-Stabilisier-Abschnitt 279 wird nachfolgend diskutiert.
Dieses Verfahren dient dazu, ein Allophon-Gefühl hauptsächlich eines Segments zu
reduzieren, das keine Sprachen enthält.
-
Zuerst wird die Summe der Spektrum-Differenzen der individuellen Frequenzen, erhalten
von dem Rausch-Aufhebungs-Spektrum-Kompensations-Abschnitt 278, berechnet, um
zwei Arten von momentanen Rahmen-Energien zu erhalten, eine für den vollen Bereich
und die andere für den Zwischen-Bereich. Für den vollen Bereich wird die momentane
Rahmen-Energie für alle Frequenzen erhalten (bezeichnet als voller Bereich; 0 bis 128 in
diesem Mode). Für den Zwischen-Bereich wird, die momentane Rahmen-Energie, erhalten
für eine andauernde Wichtigkeit, das Zwischen-Band (bezeichnet als der Zwischen-
Bereich 16 bis 79 in diesem Mode), erhalten.
-
In ähnlicher Weise wird die Summe der Kompensations-Rausch-Spektren für den ersten
Kandidaten, gespeichert in dem Rausch-Spektrum-Speicher-Abschnitt 285, als
momentane Rahmen-Rausch-Energie (voller Bereich, Zwischen-Bereich) erhalten. Wenn die Werte
der Kompensations-Zahlen, erhalten von dem Rausch-Aufhebungs/Spektrum-
Kompensations-Abschnitt 278, geprüft werden und ausreichend groß sind, und wenn
mindestens einer der folgenden drei Zustände erfüllt ist, wird der momentane Rahmen als ein
Rausch-Nur-Segment bestimmt, und ein Spektrum-Stabilisierungs-Prozeß wird
durchgeführt.
-
(1) Die Eingangs-Energie ist kleiner als die maximale Energie multipliziert mit einem
Erfassungs-Koeffizienten für ein stimmloses Segment.
-
(2) Die momentane Rahmen-Energie (Zwischen-Bereich) ist kleiner als die momentane
Rahmen-Rausch-Energie (Zwischen-Bereich) multipliziert mit 5,0.
-
(3) Die Eingangs-Energie ist kleiner als die Rausch-Referenz-Energie.
-
In dem Fall, bei dem kein Stabilisierungs-Prozeß durchgeführt wird, wird die
darauffolgende Rausch-Zahl, gespeichert in dem Speicher-Abschnitt 286 für das vorherige Spektrum,
um 1 erniedrigt, wenn sie positiv ist, und die momentane Rahmen-Rausch-Energie (voller
Bereich, Zwischen-Bereich) wird als vorherige Rahmen-Energie (voller Bereich, Zwischen-
Bereich) eingestellt, und sie werden in dem Speicher-Abschnitt 286 für das vorherige
Spektrum vor einem Fortschreiten zu dem Phasen-Diffusions-Prozeß gespeichert.
-
Der Spektrum-Stabilisierungs-Prozeß wird nun diskutiert. Der Zweck dieses Prozesses ist
derjenige, das Spektrum in einem stimmlosen Segment (sprachloses und Rausch-Nur-
Segment) zu stabilisieren und die Energie zu reduzieren. Dabei sind zwei Arten von
Prozessen vorhanden, und ein Prozeß 1 wird dann durchgeführt, wenn die darauffolgende
Rausch-Zahl kleiner als die Zahl von darauffolgenden Rausch-Referenzen ist, während ein
Prozeß 2 ansonsten durchgeführt wird. Die zwei Prozesse werden nachfolgend
beschrieben.
(Prozeß 1)
-
Die darauffolgende Rausch-Zahl, gespeichert in dem Speicher-Abschnitt 286 für das
vorherige Spektrum, wird um 1 erhöht, und die Rausch-Energie des momentanen Rahmens
(voller Bereich, Zwischen-Bereich) wird als die vorherige Rahmen-Energie (voller Bereich,
Zwischen-Bereich) eingestellt, und sie werden in dem Speicher-Abschnitt 286 für das
vorherige Spektrum gespeichert, bevor zu dem Phasen-Einstell-Prozeß fortgeschritten wird.
(Prozeß 2)
-
Auf die vorherige Rahmen-Energie, die vorherige Rahmen-Glättungs-Energie für den
vorherigen Rahmen und den Energie-Reduktions-Koeffizient für das stimmlose Segment,
gespeichert in dem Speicher-Abschnitt 286 für das vorherige Spektrum, wird Bezug
genommen, und sie werden entsprechend Gleichung 51 geändert.
-
Dd80 = Dd80X0,8 + A80X0,2XP
-
D80 = D80X0,5 + Dd80X0,5
-
Dd129 = Dd129X0,8 + A129X0,2XP (51)
-
D129 = D129X0,5 + Dd129X0,5
-
wobei
-
Dd80: vorherige Rahmen-Glättungs-Energie (Zwischen-Bereich)
-
D80: vorherige Rahmen-Energie (Zwischen-Bereich)
-
Dd129: vorherige Rahmen-Glättungs-Energie (voller Bereich)
-
D129: vorherige Rahmen-Energie (voller Bereich)
-
A80: momentane Rahmen-Rausch-Energie (Zwischen-Bereich)
-
A129: momentane Rahmen-Rausch-Energie (voller Bereich).
-
Dann werden diese Energien bei den Spektrum-Referenzen wiedergegeben. Deshalb
werden zwei Koeffizienten, einer, der in dem Zwischen-Bereich multipliziert werden soll
(Koeffizient 1 nachfolgend), und der andere, der in dem vollen Bereich multipliziert werden
soll (Koeffizient 2 nachfolgend), berechnet. Zuerst wird der Koeffizient 1 aus einer
Gleichung 52 berechnet.
-
r1 = D80/A80 (wenn A80 > 0)
-
1,0 (wenn A80 ≥ 0) (52)
-
wobei
-
r1: Koeffizient 1
-
D80: vorherige Rahmen-Energie (Zwischen-Bereich)
-
A80: momentane Rahmen-Rausch-Energie (Zwischen-Bereich)
-
Da der Koeffizient 2 durch den Koeffizienten 1 beeinflußt wird, wird eine Akquisitions-
Einrichtung leicht kompliziert. Die Prozeduren werden nachfolgend angegeben.
-
(1) Wenn die vorherige Rahmen-Glättungs-Energie (voller Bereich) kleiner als die
vorherige Rahmen-Energie (Zwischen-Bereich) ist oder wenn die momentane
Rahmen-Rausch-Energie (voller Bereich) kleiner als die momentane Rahmen-Rausch-
Energie (Zwischen-Bereich) ist, geht der Ablauf zu (2) über, ansonsten geht er zu
(3) über.
-
(2) Der Koeffizient 2 wird auf 0,0 eingestellt, und die vorherige Rahmen-Energie (voller
Bereich) wird als die vorherige Rahmen-Energie (Zwischen-Bereich) eingestellt,
wobei dann der Ablauf zu (6) weitergeht.
-
(3) Wenn die momentane Rahmen-Rausch-Energie (voller Bereich) gleich zu der
momentanen Rahmen-Energie (Zwischen-Bereich) ist, geht der Ablauf zu (4) weiter,
ansonsten geht er zu (5) über.
-
(4) Der Koeffizient 2 wird auf 1,0 eingestellt, und dann geht der Ablauf zu (6) über.
-
(5) Der Koeffizient 2 wird aus der Gleichung 53 erhalten, und dann geht der Ablauf zu
(6) über.
-
r2 = (D129 - D80)/(A129 - A80) (53)
-
wobei
-
r2: Koeffizient 2
-
D129: vorherige Rahmen-Energie (voller Bereich)
-
D80: vorherige Rahmen-Energie (Zwischen-Bereich)
-
A129: momentane Rahmen-Rausch-Energie (voller Bereich)
-
A80: momentane Rahmen-Rausch-Energie (Zwischen-Bereich).
-
(6) Die Berechnung des Koeffizienten 2 wird beendet.
-
Die Koeffizienten 1 und 2, erhalten in dem vorstehenden Algorithmus, haben immer deren
obere Grenzen auf 1,0 und deren untere Grenzen auf den Energie-Reduktions-
Koeffizienten für das stimmlose Segment abgeschnitten. Ein Wert, erhalten durch
Multiplizieren der Spektrum-Differenz der Zwischen-Frequenz (16 bis 79 in diesem Beispiel) mit
dem Koeffizienten 1, wird als eine Spektrum-Differenz eingestellt, und ein Wert, erhalten
durch Multiplizieren der Spektrum-Differenz der Frequenz, ausschließlich des Zwischen-
Bereichs von dem vollen Bereich dieser Spektrum-Differenz (0 bis 15 und 80 bis 128 in
diesem Beispiel) mit dem Koeffizienten 2, wird als eine Spektrum-Differenz eingestellt.
Dementsprechend wird die vorherige Rahmen-Energie (voller Bereich, Zwischen-Bereich)
durch die folgende Gleichung 54 konvertiert.
-
D80 = A80Xr1
-
D129 = D80 + (A129 -A80)Xr2 (54)
-
wobei
-
r2: Koeffizient 1
-
r2: Koeffizient 2
-
D80: vorherige Rahmen-Energie (Zwischen-Bereich)
-
A80: momentane Rahmen-Rausch-Energie (Zwischen-Bereich)
-
D129: vorherige Rahmen-Energie (voller Bereich)
-
A129: momentane Rahmen-Rausch-Energie (voller Bereich).
-
Verschiedene Sorten von Energie-Daten, usw., erhalten in dieser Art und Weise, werden
in dem Speicher-Abschnitt 286 für das vorherige Spektrum gespeichert, und der Prozeß 2
wird dann beendet.
-
Die Spektrum-Stabilisierung durch den Spektrum-Stabilisierungs-Abschnitt 279 wird in der
vorstehenden Art und Weise ausgeführt.
-
Als nächstes wird der Phasen-Einstell-Prozeß erläutert. Während die Phase im Prinzip in
der herkömmlichen Spektrum-Subtraktion nicht geändert wird, wird ein Prozeß eines
Änderns der Phase unter einem Zufall ausgeführt, wenn das Spektrum dieser Frequenz zu
dem Zeitpunkt einer Aufhebung kompensiert wird. Dieser Prozeß erhöht die Zufälligkeit
des verbleibenden Rauschens, was zu einem Effekt eines Erzeugens einer Schwierigkeit
führt, was zu einem anhaltenden, nachteiligen Eindruck führt.
-
Zuerst wird der Random-Phasen-Zähler, gespeichert in dem Random-Phasen-Speicher-
Abschnitt 287, erhalten. Dann wird auf die Zeichen-Daten (die das Vorhandensein/Nichtvorhandensein
einer Kompensation anzeigen) aller Frequenzen Bezug
genommen, und die Phase des komplexen Spektrums, erhalten durch den Fourier-
Transformations-Abschnitt 277, wird unter Verwendung der folgenden Gleichung 55 rotiert,
wenn eine Kompensation durchgeführt worden ist.
-
Bs = SiXRc - TiXRc + 1
-
Bt = SiXRc + 1 TiXRc
-
Si = Bs (55)
-
Ti = Bt
-
wobei
-
Si, Ti: komplexes Spektrum
-
i: Index, der die Frequenz anzeigt
-
R: Random-Phasen-Daten
-
c: Random-Phasen-Zähler
-
Bs, Bt: Register zur Berechnung.
-
In der Gleichung 55 werden die zwei Random-Phasen-Daten paarweise verwendet. Zu
jedem Zeitpunkt, zu dem der Prozeß einmal durchgeführt wird, wird der Random-Phasen-
Zähler um 2 erhöht, und wird auf 0 eingestellt, wenn er die obere Grenze erreicht (16 in
diesem Mode). Der Random-Phasen-Zähler wird in dem Random-Phasen-Speicher-
Abschnitt 287 gespeichert und das erhaltene, komplexe Spektrum wird zu dem Abschnitt
280 für die inverse Fourier-Transformation geschickt. Weiterhin wird die Gesamtheit der
Spektrum-Differenzen (Spektrum-Differenz-Energie nachfolgend) erhalten und sie wird zu
dem Spektrum-Erhöhungs-Abschnitt 281 geschickt. Der Abschnitt 280 für die inverse
Fourier-Transformation konstruiert ein neues, komplexes Spektrum basierend auf der
Amplitude der Spektrum-Differenz in der Phase des komplexen Spektrums, erhalten durch den
Spektrum-Stabilisierungs-Abschnitt 279, und führt die inverse Fourier-Transformation
unter Verwendung von FFT aus. (Das erhaltene Signal wird als Ausgangs-Signal erster
Ordnung bezeichnet). Das erhaltene Ausgangs-Signal erster Ordnung wird zu dem Spektrum-
Erhöhungs-Abschnitt 281 geschickt.
-
Als nächstes wird ein Prozeß in dem Spektrum-Erhöhungs-Abschnitt 281 diskutiert.
Zuerst wird auf die mittlere Rausch-Energie, gespeichert in dem Rausch-Spektrum-
Speicher-Abschnitt 285, die Spektrum-Differenz-Energie, erhalten durch den Spektrum-
Stabilisierungs-Abschnitt 279, und die Rausch-Referenz-Energie, die konstant ist Bezug
genommen, um einen MA-Erhöhungs-Koeffizienten und einen AR-Erhöhungs-
Koeffizienten auszuwählen, Bezug genommen. Die Auswahl wird durch Evaluieren der
folgenden zwei Zustände ausgeführt.
(Zustand 1)
-
Die Spektrum-Differenz-Energie ist größer als ein Wert, erhalten durch Multiplizieren der
durchschnittlichen Rausch-Energie, gespeichert in dem Rausch-Spektrum-Speicher-
Abschnitt 285, mit 0,6, und die durchschnittliche Rausch-Energie ist größer als die
Rausch-Referenz-Energie.
(Zustand 2)
-
Die Spektrum-Differenz-Energie ist größer als die durchschnittliche Rausch-Energie.
Wenn der Zustand 1 erfüllt ist, ist dieses Segment ein "stimmhaftes Segment", wobei der
MA-Erhöhungs-Koeffizient auf einen MA-Erhöhungs-Koeffizienten 1-1 eingestellt wird, der
AR-Erhöhungs-Koeffizient wird auf einen AR-Erhöhungs-Koeffizienten 1-1 eingestellt, und
ein Hochfrequenz-Erhöhungs-Koeffizient wird auf einen Hochfrequenz-Erhöhungs-
Koeffizienten 1 eingestellt. Wenn der Zustand 1 nicht erfüllt ist, allerdings der Zustand 2
erfüllt ist, ist dieses Segment ein "stimmloses Segment", der MA-Erhöhungs-Koeffizient
wird auf einen MA-Erhöhungs-Koeffizienten 1-0 eingestellt, der AR-Erhöhungs-Koeffizient
wird auf einen AR-Erhöhungs-Koeffizienten 1-0 eingestellt und der Hochfrequenz-
Erhöhungs-Koeffizient wird auf 0 eingestellt. Wenn der Zustand 1 erfüllt ist, allerdings der
Zustand 2 nicht erfüllt ist, ist dieses Segment ein "stimmloses Nur-Rausch-Segment",
wobei der MA-Erhöhungs-Koeffizient auf einen MA-Erhöhungs-Koeffizienten 0 eingestellt
wird, der AR-Erhöhungs-Koeffizient auf einen AR-Erhöhungs-Koeffizienten 0 eingestellt
wird und der Hochfrequenz-Erhöhungs-Koeffizient auf einen Hochfrequenz-Erhöhungs-
Koeffizienten 0 eingestellt wird.
-
Unter Verwendung der linearen, prädikativen Koeffizienten, erhalten von dem LPC-
Analysier-Abschnitt 276, werden der MA-Erhöhungs-Koeffizient und der AR-Erhöhungs-
Koeffizient, ein MA-Koeffizient und ein AR-Koeffizient eines Extrem-Erhöhungs-Filters
basierend auf der folgenden Gleichung 56 berechnet.
-
α(ma)i = αi · β² (56)
-
α(ar)i = αi · τ²
-
wobei
-
α(ma)i: MA-Koeffizient
-
α(ar)i: AR-Koeffizient
-
αi: linearer, prädikativer Koeffizient
-
β: MA-Erhöhungs-Koeffizient
-
τ: AR-Erhöhungs-Koeffizient
-
i: Zahl.
-
Dann wird das Ausgangs-Signal erster Ordnung, erhalten durch den Abschnitt 280 für die
inverse Fourier-Transformation, durch den Extrem-Erhöhungs-Filter unter Verwendung
des MA-Koeffizienten und des AR-Koeffizienten eingestellt. Die Übertragungs-Funktion
dieses Filters ist durch die folgende Gleichung 57 gegeben.
-
wobei
-
α(ma)&sub1;: MA-Koeffizient
-
α(ar)&sub1;: AR-Koeffizient
-
j: Ordnung.
-
Weiterhin wird, um die Hochfrequenz-Komponente zu erhöhen, eine Hochfrequenz-
Erhöhungs-Filterung unter Verwendung des Hochfrequenz-Erhöhungs-Koeffizienten
durchgeführt. Die Übertragungs-Funktion dieses Filters ist durch die folgende Gleichung
58 gegeben.
-
1 - δZ&supmin;¹ (58)
-
wobei
-
δ: Hochfrequenz-Erhöhungs-Koeffizient.
-
Ein Signal, erhalten über den vorstehenden Prozeß, wird als Ausgangs-Signal zweiter
Ordnung bezeichnet. Der Filter-Status wird in dem Spektrum-Erhöhungs-Abschnitt 281
gesichert.
-
Abschließend gestaltet der Wellenform-Anpassungs-Abschnitt 282 das Ausgangs-Signal
zweiter Ordnung, erhalten durch den Spektrum = Erhöhungs-Abschnitt 281, und das Signal,
gespeichert in dem Speicher-Abschnitt 288 für die vorherige Wellenform, zueinander mit
einem dreieckigen Fenster überlappend. Weiterhin werden Daten dieses Ausgangs-
Signals durch die Länge der letzten, vorabgelesenen Daten in dem Speicher-Abschnitt
288 für die vorherige Wellenform gespeichert. Ein Anpassungs-Schema zu diesem
Zeitpunkt ist durch die folgende Gleichung 59 dargestellt.
-
Oj = (j · Dj + (L - j) · Zj)/L (j = 0 ~ L - 1)
-
OJ = Dj (j = L ~ L ÷ M - 1) (59)
-
Zj = OM+J (j = O ~ L - 1)
-
wobei
-
Oj: Ausgangs-Signal
-
Dj: Ausgangs-Signal zweiter Ordnung
-
Zj: Ausgangs-Signal
-
L: vorabgelesene Daten-Längen
-
M: Rahmen-Länge.
-
Es sollte angemerkt werden, daß, während Daten der vorabgelesenen Daten Länge +
Rahmen-Länge als das Ausgangs-Signal ausgegeben wird, dasjenige des Ausgangs-
Signals, das als ein Signal gehandhabt werden kann, nur ein Segment der Rahmen-Länge
von dem Beginn der Daten an ist. Dies kommt daher, daß die letzteren der Daten vorab
gelesenen Daten-Länge umgeschrieben werden, wenn das nächste Ausgangs-Signal
ausgegeben wird. Da eine Kontinuität in den gesamten Segmenten des Ausgangs-Signals
allerdings kompensiert wird, können die Daten in einer Frequenz-Analyse, wie
beispielsweise einer LPC-Analyse oder einer Filter-Analyse, verwendet werden.
-
Gemäß diesem Mode kann eine Rausch-Spektrum-Abschätzung für ein Segment
außerhalb eines stimmhaften Segments ebenso wie in einem stimmhaften Segment
durchgeführt werden, so daß ein Rausch-Spektrum gerade dann abgeschätzt werden kann, wenn
es nicht klar ist, unter welcher Zeit-Abstimmung eine Sprache in Daten vorhanden ist.
-
Es ist möglich, die Charakteristik der Eingangs-Spektrum-Umhüllenden mit den linearen,
prädikativen Koeffizienten zu erhöhen, und möglicherweise eine Degradation der
Klangqualität gerade dann zu verhindern, wenn der Rausch-Pegel hoch ist.
-
Weiterhin kann, unter Verwendung des mittleren Spektrums eines Rauschens, eine
Aufhebung des Rausch-Spektrums signifikanter sein. Weiterhin kann eine separate
Abschätzung des Kompensations-Spektrums eine akkuratere Kompensation sicherstellen.
-
Es ist möglich, ein Spektrum in einem Nur-Rausch-Segment zu glätten, wo keine Sprache
enthalten ist, und das Spektrum in diesem Segment kann ein Allophon-Gefühl
dahingehend verhindern, daß es durch eine extreme Spektrum-Variation verursacht wird, die von
einer Rausch-Aufhebung ausgeht.
-
Die Phase der kompensierten Frequenz-Komponente kann eine Random-Eigenschaft
geben, so daß das Rauschen, das nicht aufgehoben verbleibt, zu einem Rauschen
konvertiert werden kann, das ein geringeres, anhaltendes Allophon-Gefühl vermittelt.
Die geeignete Gewichtung kann anhaltend in einem stimmhaften Segment gegeben sein,
und das andauernd gewichtete, ursprüngliche Allophon-Gefühl kann in einem stimmlosen
Segment oder einem stimmlosen Tonsilben-Segment unterdrückt werden.
Industrielle Anwendbarkeit
-
Wie aus dem Vorstehenden ersichtlich ist, sind ein Sprach-Codierer und ein Sprach-
Decodierer gemäß dieser Erfindung beim Suchen von Anregungs-Vektoren effektiv und
sind zum Verbessern der Sprach-Qualität geeignet.