DE69625880T2 - Verfahren und Vorrichtung zur Sprachkodierung - Google Patents
Verfahren und Vorrichtung zur SprachkodierungInfo
- Publication number
- DE69625880T2 DE69625880T2 DE69625880T DE69625880T DE69625880T2 DE 69625880 T2 DE69625880 T2 DE 69625880T2 DE 69625880 T DE69625880 T DE 69625880T DE 69625880 T DE69625880 T DE 69625880T DE 69625880 T2 DE69625880 T2 DE 69625880T2
- Authority
- DE
- Germany
- Prior art keywords
- coding
- vector
- signal
- vector quantization
- quantization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 239000013598 vector Substances 0.000 claims abstract description 247
- 238000013139 quantization Methods 0.000 claims abstract description 231
- 238000004458 analytical method Methods 0.000 claims description 47
- 230000003595 spectral effect Effects 0.000 claims description 29
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 description 70
- 230000015572 biosynthetic process Effects 0.000 description 52
- 238000003786 synthesis reaction Methods 0.000 description 52
- 238000004364 calculation method Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 17
- 230000004044 response Effects 0.000 description 14
- 238000011156 evaluation Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000005284 excitation Effects 0.000 description 6
- 238000001228 spectrum Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000001308 synthesis method Methods 0.000 description 5
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 4
- 230000003321 amplification Effects 0.000 description 4
- 230000005484 gravity Effects 0.000 description 4
- 238000003199 nucleic acid amplification method Methods 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 101150018444 sub2 gene Proteins 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/06—Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
Description
- Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Sprachkodierung, bei denen ein Eingangssprachsignal auf Blockbasis zerlegt und mit dem resultierenden Block als Einheit kodiert wird.
- Es sind bereits zahlreiche Kodierverfahren zum Kodieren von Audiosignalen (einschließlich von Sprach- und akustischen Signalen) bekannt, bei denen für die Komprimierung statistische Eigenschaften der Signale in der Zeitdomäne und in der Frequenzdomäne sowie psychoakustische Eigenschaften des menschlichen Ohrs ausgenutzt werden. Die Kodierverfahren lassen sich grob klassifizieren in Zeitdomänen-Kodierung, Frequenzdomänen-Kodierung und Analyse-/Synthese-Kodierung.
- Zu den Beispielen für die hocheffiziente Kodierung von Sprachsignalen gehören die Sinus- Analyse-Kodierung, wie die harmonische Kodierung, Multiband-Erregungs-Kodierung (MBE- Kodierung), Teilband-Kodierung (SBC), lineare prädiktive Kodierung (LPC), diskrete Cosinustransformation (DCT), modifizierte DCT (MDCT) und schnelle Fourier-Transformation (FFT).
- Mit der Sprachsignalkodiervorrichtung, die eine hocheffiziente Kodierung benutzt, werden Kurzzeit-Prädiktionsreste, wie die Reste von linearer prädiktiver Kodierung (LPC) unter Verwendung einer Sinus-Analyse-Kodierung kodiert und die resultierenden Amplitudendaten der spektralen Hüllkurve werden vektorquantisiert, um Codebuch-Indexdaten auszugeben.
- Bei der oben beschriebenen Sprachsignalkodiervorrichtung bleibt die Biträte der Kodierdaten, einschließlich der Codebuch-Indizes der Vektorquantisierung konstant und kann nicht variiert werden.
- Wenn die Kodierdaten z. B. M-Bit-Daten sind, benötigt die Sprachsignaldekodiervorrichtung zum Dekodieren der kodierte Daten außerdem eine M-Bit-Dekodiervorrichtung. Das heißt, mit der Sprachsignaldekodiervorrichtung können nur dekodierte Daten gewonnen werden, die die gleiche Bitzahl haben wie die kodierten Daten, während die Bitzahl der dekodierten Daten nicht variiert werden kann.
- EP-A-0 260 053 offenbart ein Sprachkodierverfahren, das die Basis der Oberbegriffs von Anspruch bildet.
- WO-A-92/22891 offenbart ein CELP-basiertes Kodierverfahren, bei dem für die Sprachkomprimierung eine wahrnehmungsgerecht gewichtete Vektorquantisierung durchgeführt wird.
- Es ist deshalb ein Ziel eines bevorzugtes Ausführungsbeipiels der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung zur Sprachkodierung anzugeben, bei denen die Bitrate der Kodierdaten variiert werden kann.
- Ein Aspekt der vorliegenden Erfindung, wie sie in den Ansprüchen 1 und 11 beansprucht ist, liefert ein Sprachsignalkodierverfahren zum Unterteilen eines Eingangssprachsignals auf der Zeitachse in Blöcke als Einheiten und zum Kodieren des resultierenden Signals, mit dem Verfahrensschritt:
- Ermitteln von Kurzzeit-Prädiktionsresten zumindest für einen stimmhaften Teil des Eingangssprachsignals,
- und ist gekennzeichnet durch die weiteren Verfahrensschritte:
- Ermitteln von Sinus-Analyse-Kodierparametern durch Kodieren der Kurzzeit-Prädiktionsreste und
- Durchführen einer wahrnehmungsgerecht gewichteten Vektorquantisierung der Sinus- Analyse-Kodierparameter.
- Das Verfahren umfaßt vorzugsweise außerdem das Kodieren des stimmlosen Teils des Eingangssprachsignals durch Wellenformkodierung.
- Bei der wahrnehmungsgerecht gewichteten Vektorquantisierung wird vorzugsweise zuerst die erste Vektorquantisierung durchgeführt und der bei der ersten Vektorquantisierung erzeugte Quantierungsfehlervektor wird durch die zweite Vektorquantisierung quantisiert. Auf diese Weise kann die Bitzahl des kodierten Ausgangssignals in Abhängigkeit von der Kapazität der Datenübertragungskanäle leicht umgeschaltet werden, so daß mehrere Datenbitraten bewältigt werden können. Außerdem kann so eine Kette von kodierten Daten erzeugt werden, die auch dann auf der Dekodiererseite leicht bewältigt werden kann, wenn die Bitrate zwischen Kodierer und Dekodierer differiert.
- Nach einem anderen Aspekt der Erfindung ist ein Sprachkodiergerät vorgesehen zum Unterteilen eines Eingangssprachsignals auf der Zeitachse in Blöcke als Einheiten und zum Kodieren des resultierenden Signals,
- mit einer Einrichtung zum Ermitteln von Kurzzeit-Prädiktionsresten zumindest für einen stimmhaften Teil des Eingangssprachsignals,
- wobei das Sprachkodiergerät weiter gekennzeichnet ist durch eine Einrichtung zum Ermitteln von Sinus-Analyse-Kodierparametern durch Kodieren der Kurzzeit-Prädiktionsreste und
- eine Einrichtung zur Durchführung einer wahrnehmungsgerecht gewichteten Vektorquantisierung an den Sinus-Analyse-Kodierparametern.
- Nach einem weiteren Aspekt der Erfindung ist ein Sprachkodiergerät vorgesehen zum Unterteilen eines Eingangssprachsignals auf der Zeitachse in Blöcke als Einheiten und zum Kodieren des resultierenden Signals,
- mit einer Einrichtung zum Ermitteln von Kurzzeit-Prädiktionsresten zumindest für einen stimmhaften Teil des Eingangssprachsignals,
- wobei das Sprachkodiergerät weiter gekennzeichnet ist durch
- eine Einrichtung zum Ermitteln von Sinus-Analyse-Kodierparametern durch Kodieren der Kurzzeit-Prädiktionsreste,
- eine Einrichtung zur Durchführung einer wahrnehmungsgerecht gewichteten Vektorquantisierung der Sinus-Analyse-Kodierparameter und
- eine Einrichtung zum Kodieren eines stimmlosen Teil des Eingangssprachsignals durch Wellenformkodierung.
- Nach einem weiteren Aspekt der Erfindung ist ein tragbares Funkendgerät vorgesehen
- mit einer Verstärkereinrichtung zum Verstärken von Eingangssprachsignalen,
- mit einer A/D-Wandlereinrichtung für die A/D-Wandlung der modulierten Signale,
- mit einer Sprachkodiereinrichtung zum Kodieren des Sprachausgangssignals der A/D- Wandlereinrichtung,
- mit einer Übertragungsweg-Kodiereinrichtung für die Kanalkodierung des resultierenden kodierten Signals,
- mit einer Modulatoreinrichtung zum Modulieren des Ausgangssignals der Übertragungsweg-Kodiereinrichtung,
- mit einer D/A-Wandlereinrichtung für die D/A-Wandlung des resultierenden modulierten Signals und
- mit einer Verstärkereinrichtung zum Verstärken des Signals aus der D/A-Wandlereinrichtung für die Zuführung des resultierenden verstärkten Signals zu einer Antenne,
- wobei die Sprachkodiereinrichtung ferner aufweist:
- eine Einrichtung zum Ermitteln von Kurzzeit-Prädiktionsresten eines stimmhaften Teils des Eingangssprachsignals,
- eine Einrichtung zum Ermitteln von Sinus-Analyse-Kodierparametern durch Kodieren der Kurzzeit-Prädiktionsreste,
- eine Einrichtung zur Durchführung einer wahrnehmungsgerecht gewichteten Vektorquantisierung an den Sinus-Analyse-Kodierparametern und
- eine Einrichtung zum Kodieren eines stimmlosen Teils des Eingangssprachsignals durch Wellenformkodierung.
- Die folgende Beschreibung, die lediglich als Beispiel dient und auf die anliegenden Zeichnungen Bezug nimmt, soll ein besseres Verständnis der Erfindung vermitteln.
- Fig. 1 zeigt ein Blockdiagramm der Grundstruktur eines Verfahrens und einer Vorrichtung (Kodierer) zur Sprachsignalkodierung, mit denen das Kodierverfahren gemäß der Erfindung ausgeführt werden kann,
- Fig. 2 zeigt Blockdiagramm der Grundstruktur einer Sprachsignaldekodiervorrichtung (Dekodierer), die die in Fig. 1 dargestellte Dekodiervorrichtung (Dekodierer) bildet,
- Fig. 3 zeigt ein Blockdiagramm, das eine detailliertere Struktur des Sprachsignalkodierers von Fig. 1 vermittelt,
- Fig. 4 zeigt ein Blockdiagramm, das eine detailliertere Struktur des Sprachdekodierers von Fig. 2 vermittelt,
- Fig. 5 zeigt ein Blockdiagramm der Grundstruktur eines LPC-Quantisierers,
- Fig. 6 zeigt ein Blockdiagramm, das eine detailliertere Struktur des LPC-Quantisierers vermittelt,
- Fig. 7 zeigt ein Blockdiagramm der Grundstruktur des Vektorquantisierers,
- Fig. 8 zeigt ein Blockdiagramm, das eine detailliertere Struktur des Vektorquantisierers vermittelt,
- Fig. 9 zeigt ein Blockdiagramm mit einer detaillierteren Struktur des CELP-Kodierteils (zweite Kodiereinheit) des Sprachsignalkodierers gemäß der Erfindung,
- Fig. 10 zeigt ein Flußdiagramm zur Veranschaulichung des Verarbeitungsflusses in der Anordnung von Fig. 9,
- Fig. 11A und 11B zeigen das Gaußsche Rauschen nach der Begrenzung bei verschiedenen Schwellwerten,
- Fig. 12 zeigt ein Flußdiagramm, in welchem der Verarbeitungsfluß bei der Generierung des Form-Codebuchs durch Lernen dargestellt ist,
- Fig. 13 zeigt ein Blockdiagramm der Struktur der Sendeseite eines tragbaren Endgeräts mit einem Sprachsignalkodierer, der die vorliegende Erfindung verkörpert,
- Fig. 14 zeigt ein Blockdiagramm der Struktur der Empfangsseite des tragbaren Endgeräts mit dem Sprachsignaldekodierer als Gegenstück zu der Anordnung von Fig. 13,
- Fig. 15 zeigt eine Tabelle mit Ausgangsdaten für die verschiedenen Bitraten in dem Sprachsignalkodierer gemäß der Erfindung.
- Anhand der Zeichnungen werden bevorzugte Ausführungsbeispiele der Erfindung im Detail erläutert.
- Fig. 1 zeigt ein Blockdiagramm der Grundstruktur eines Sprachsignalkodierers zur Durchführung des Sprachkodierverfahrens gemäß der Erfindung. Der Sprachsignalkodierer enthält ein inverses LPC-Filter 111 als Mittel zum Ermitteln von Kurzzeit-Prädiktions-Resten von Eingangssprachsignalen und einen Sinus-Analyse-Kodierer 114 als Mittel zum Ermitteln von sinusförmigen Analyse-Kodierparametern aus den Kurzzeit-Prädiktions-Resten. Der Sprachsignalkodierer enthält ferner eine Vektorquantisiereinheit 116 als Mittel für die wahrnehmungsgerechte gewichtete Vektorquantisierung der sinusförmigen analytischen Kodierparameter sowie eine zweite Kodiereinheit 120 als Mittel zum Kodieren des Eingangssprachsignals durch Phasenübertragurigs-Wellenformkodierung.
- Fig. 2 zeigt ein Blockdiagramm der Grundstruktur einer Sprachsignaldekodiervorrichtung (Dekodierer) als Gegenstück zu der Kodiervorrichtung (dem Kodierers) von Fig. 1. Fig. 3 zeigt ein Blockdiagramm, aus dem nähere Einzelheiten der Struktur des Sprachsignalkodierers von Fig. 1 hervorgehen. Fig. 4 zeigt ein Blockdiagramm, aus dem die Struktur des Sprachdekodierers von Fig. 1 in näheren Einzelheiten hervorgeht.
- Im folgenden werden die Strukturen der Blockdiagramme von Fig. 1 bis 4 erläutert.
- Das Grundkonzept des Sprachsignalkodierers von Fig. 1 besteht darin, daß der Kodierer eine erste Kodiereinheit 110 aufweist zur Ermittlung von Kurzzeit-Prädiktions-Resten, z. B. den Resten von linearer Prädiktionskodierung (LPC), des Eingangssprachsignals für die Sinus- Analyse-Kodierung, z. B. eine harmonische Kodierung, sowie eine zweite Kodiereinheit 120 zum Kodieren der Eingangssprachsignale durch Wellenformkodierung mit Reproduzierbarkeit der Phase. Das Grundkonzept des Sprachsignalkodierers von Fig. 1 besteht weiterhin darin, daß die ersten Kodiereinheiten 110, 120 für die Kodierung des stimmhaften Teils bzw. des stimmlosen Teils des Eingangssignals benutzt werden.
- Die erste Kodiereinheit 110 ist so aufgebaut, daß sie die LPC-Reste mit Sinus-Analyse-Kodierung, wie Kodierung der Harmonischen oder Multiband-Kodierung (MBE) kodiert. Die zweite Kodiereinheit 120 führt eine lineare Code-Erregungs-Prädiktion (CELP) durch, wobei Vektorquantisierung durch die Suche eines optimalen Vektors in geschlossener Schleife unter Verwendung eines Analyse-Synthese-Verfahrens angewendet wird.
- In dem Ausführungsbeispiel wird das an dem Eingang 101 anliegende Sprachsignal dem inversen LPC-Filter 111 und einer LPC-Analyse-/Quantisiereinheit 113 der ersten Kodiereinheit 110 zugeführt. Der von der LPC-Analyse-/Quantisiereinheit 113 gewonnene LPC-Koeffizient oder der sogenannte α-Parameter wird dem inversen LPC-Filter 111 zugeführt, um die linearen Prädiktionsreste (LPC-Reste) der Eingangssprachsignale durch das inverse LPC-Filter 111 herauszugreifen. Die LPC-Analyse-/Quantisiereinheit 113 entnimmt ein Quantisierausgangssignal der Spektrallinienpaare (LSP), die weiter unten erläutert werden, und führt dieses einem Ausgang 102 zu. Die LPC-Reste aus dem inversen LPC-Filter 111 werden einer Sinus-Analyse-Kodiereinheit 114 zugeführt. Die Sinus-Analyse-Kodiereinheit 114 führt eine Tonhöhendetektierung, Amplitudenberechnungen der spektralen Hüllkurve und eine Stimmhaft/Stimmlos-(V/UV)-Diskriminierung mit Hilfe einer V/UV-Diskriminiereinheit 115 durch. Die spektralen Hüllkurvenamplitudendaten aus der Sinus-Analyse-Kodiereinheit 114 werden der Vektorquantisiereinheit 116 zugeführt. Der Codebuch-Index aus der Vektorquantisiereinheit 116 als Ausgangssignal der Vektorquantisierung der spektralen Hüllkurve wird über einen Schalter 117 einem Ausgang 103 zugeführt, während das Ausgangssignal der Sinus-Analyse-Kodiereinheit 114 über einen Schalter 118 einem Ausgang 104 zugeführt wird. Das Ausgangssignal der V/UV-Diskriminierung aus der V/UV-Diskriminiereinheit 115 wird einem Ausgang 105 sowie den Schaltern 117, 118 als Schaltersteuersignale zugeführt. Für das stimmhafte (V)-Signal werden der Index und die Tonhöhe ausgewählt und an den Ausgängen 103, 104 ausgegeben.
- In dem vorliegenden Ausführungsbeispiel hat die zweite Kodiereinheit 120 von Fig. 1 eine Konfiguration zur linearen Code-Erregungs-Prädiktionskodierung (CELP-Kodierung). Sie unterzieht die Zeitdomänen-Wellenform einer Vektorquantisierung, wobei Suche in geschlossener Schleife durch das Analyse-Synthese-Verfahren angewendet wird, bei der das Ausgangssignal eines Rausch-Codebuchs 121 durch ein gewichtetes Synthesefilter 122 synthetisiert wird. Die resultierende gewichtete Sprache wird einem Subtrahierer 123 zugeführt, in dem der Fehler zwischen der gewichteten Sprache und dem Sprachsignal, das dem Eingang 101 zugeführt und dann durch ein nach wahrnehmungsgerecht gewichtendes Filter 125 geleitet wird, ermittelt und einer Abstandberechnungsschaltung 124 zugeführt wird, um Abstandsberechnungen durchzuführen, wobei durch das Rausch-Codebuch 121 ein Vektor gesucht wird, der den Fehler minimiert. Diese CELP-Kodierung dient zum Kodieren des stimmlosen Teils, wie dies oben beschrieben wurde. Der Codebuch-Index als die UV-Daten aus dem Rausch-Codebuch 121 wird über einen Schalter 127 an einem Ausgang 107 abgegeben, wobei dieser Schalter eingeschaltet ist, wenn das Ergebnis der V/UV-Diskriminierung aus der V/UV-Diskriminiereinheit 117 einen stimmlosen (UV)-Ton anzeigt.
- Fig. 2 zeigt ein Blockdiagramm der Grundstruktur eines Sprachsignaldekodierers als Gegenstück zu dem Sprachsignalkodierer von Fig. 1 für die Durchführung des Sprachdekodierverfahrens gemäß der Erfindung.
- In der Anordnung von Fig. 2 wird einem Eingang 202 ein Codebuch-Index als Quantisierungsausgangssignal der Spektrallinienpaare (LSPs) von dem Ausgang 102 in Fig. 1 zugeführt. Die Ausgangssignale der Ausgänge 103, 104 und 105 von Fig. 1, d. h. die Indexdaten, die Tonhöhe und das Ausgangssignal der V/UV-Diskriminierung werden als Ausgangssignale der Hüllkurvenquantisierung den jeweiligen Eingängen 203 bis 205 zugeführt. Die Indexdaten als Daten für die stimmlosen Daten werden von dem Ausgang 107 in Fig. 1 einem Eingang 207 zugeführt.
- Der Index als Quantisierungsausgangssignal wird von dem Eingang 203 einer inversen Vektorquantisiereinheit 212 für die inverse Vektorquantisierung zugeführt, um eine spektrale Hüllkurve der LPC-Reste zu ermitteln, die einem Synthetisierer 211 für stimmhafte Laute zugeführt werden. Der Synthetisierer 211 für stimmhafte Laute synthetisiert die Reste der linearen Prädiktionskodierung (LPC) des stimmhaften Lautanteils durch Sinussynthese. Dem Synthetisierer 211 für stimmhafte Laute werden über die Eingänge 204, 205 auch die Tonhöhe und das Ausgangssignal der V/UV-Diskriminierung zugeführt. Die LPC-Reste der stimmhaften Laute aus der Synthetisiereinheit 211 für stimmhafte Laute werden einem LPC-Synthesefilter 214 zugeführt. Die Indexdaten der UV-Daten werden von dem Eingang 207 einer Synthetisiereinheit 220 für stimmlose Laute zugeführt, die auf das Rausch-Codebuch zurückgreift wird, um die LPC-Reste des stimmlosen Anteils herauszugreifen. Diese LPC-Reste werden auch dem LPC-Synthesefilter 214 zugeführt. In dem LPC-Synthesefilter 214 werden die LPC-Reste des stimmhaften Anteils und die LPC-Reste des stimmlosen Anteils durch LPC-Synthese verarbeitet. Alternativ können die LPC-Reste des stimmhaften Anteils und die LPC-Reste des stimmlosen Anteils zusammen addiert durch LPC-Synthese verarbeitet werden. Die LSP-Indexdaten werden von dem Eingang 202 einer Einheit 213 zum Reproduzieren der LPC-Parameter zugeführt, in der α-Parameter der LPC herausgenommen und dem LPC-Synthesefilter 214 zugeführt werden. Die in dem LPC-Synthesefilter 214 synthetisierten Sprachsignale werden an einem Ausgang 201 ausgegeben. Anhand von Fig. 3 wird eine detailliertere Darstellung der Struktur des in Fig. 1 dargestellten Sprachsignalkodierers erläutert. In Fig. 3 sind Teile oder Komponenten, die Teilen oder Komponenten von Fig. 1 entsprechen, mit den gleichen Bezugszeichen versehen wie dort.
- In dem in Fig. 3 dargestellten Sprachsignalkodierer werden die dem Eingang 101 zugeführten Sprachsignale in einem Hochpaßfilter 109 gefiltert, um Signale eines nicht benötigten Bereichs zu entfernen, und dann einer LPC-Analysierschaltung 132 der LPC-Analyse/Quantisiereinheit 113 und dem inversen LPC-Filter 111 zugeführt. Die LPC-Analysierschaltung 132 der LPC-Analyse-/Quantisiereinheit 113 wendet ein Hamming-Fenster an mit einer Länge der Eingangssignalwellenform in der Größenordnung von 256 Abtastproben als Block und ermittelt durch ein Autokorrelationsverfahren einen linearen Prädiktionskoeffizienten, d. h. einen sog. α-Parameter. Das Rahmenintervall als Datenausgabeeinheit ist auf etwa 160 Abtastproben gesetzt. Wenn die Abtastfrequenz fs z. B. 8 kHz beträgt, umfaßt ein Rahmenintervall 20 ms für 160 Abtastproben.
- Der α-Parameter aus der LPC-Analysierschaltung 132 wird einer α-LSP-Wandlerschaltung 133 zur Umwandlung in Spektrallinienpaar-(LSP)-Parameter zugeführt. Diese wandelt den α- Parameter, wie er durch den Filterkoeffizienten vom Direkttyp ermittelt wurde, in z. B. zehn, d. h. fünf Paare der LSP-Parameter um. Diese Umwandlung wird z. B. nach dem Newton- Rhapson-Verfahren durchgeführt. Der Grund für die Umwandlung der α-Parameter in LSP- Parameter besteht darin, daß der LSP-Parameter bessere Interpolationseigenschaften besitzt als die α-Parameter.
- Die LSP-Parameter aus der α-LSP-Wandlerschaltung 133 werden in dem LSP-Quantisierer 134 matrix- oder vektorquantisiert. Es ist möglich, vor der Vektorquantisierung eine Rahmen-zu-Rahmen-Differenz herauszugreifen oder mehrere Rahmen zu sammeln, um eine Matrixquantisierung durchzuführen. Im vorliegenden Fall werden zwei Rahmen (20 ms) der LSP-Parameter, die alle 20 ms berechnet werden, gesammelt und mit Matrixquantisierung und Vektorquantisierung verarbeitet.
- Das quantisierte Ausgangssignal des Quantisierers 134, d. h. die Indexdaten der LSP-Quantisierung, werden an einem Ausgang 102 ausgegeben, während der quantisierte LSP-Vektor einer LSP-Interpolationsschaltung 136 zugeführt wird.
- Die LSP-Interpolationsschaltung 136 interpoliert die LSP-Vektoren, die alle 20 ms oder 40 ms quantisiert werden, um eine achtfache Rate zu erzeugen. Das heißt, der LSP-Vektor wird alle 2,5 ms aktualisiert. Wenn nämlich die Restwellenform durch das harmonische Kodier-/Dekodierverfahren mit Analyse-/Synthese verarbeitet werden und die LPC-Koeffizienten alle 20 ms abrupt geändert werden, ist die Hüllkurve der synthetischen Wellenform extrem glatt, so daß die Gefahr besteht, daß ein fremdartiges Geräusch entsteht. Das heißt, wenn der LPC-Koeffizient alle 2,5 ms allmählich geändert wird, kann verhindert werden, daß ein solches fremdartiges Geräusch auftritt.
- Für die inverse Filterung des Eingangssprachsignals unter Verwendung der interpolierten LSP-Vektoren die alle 2,5 ms erzeugt werden, werden die LSP-Parameter von einer LSP/α- Wandlerschaltung 137 in α-Parameter als Koeffizienten z. B. eines Direkt-Filters zehnter Ordnung umgewandelt. Das Ausgangssignal der LSP/α-Wandlerschaltung 137 wird der inversen LPC-Filterschaltung 111 zugeführt, die dann unter Verwendung eines α-Parameters, der alle 2,5 ms aktualisiert wird, eine inverse Filterung durchführt, um ein glattes Ausgangssignal zu erzeugen. Das Ausgangssignal des inversen LPC-Filters 111 wird einer orthogonalen Transformationsschaltung 145, z. B. einer DCT-Schaltung, der Sinus-Analyse-Kodiereinheit 114 zugeführt, die z. B. eine harmonische Kodierschaltung ist.
- Der α-Parameter aus der LPC-Analysierschaltung 132 der LPC-Analyse-/Quantisiereinheit 113 wird einer Schaltung 139 zur Berechnung eines Filters mit wahrnehmungsgerechter Gewichtung zugeführt, in der die Daten für die wahrnehmungsgerechte Gewichtung ermittelt werden. Diese Gewichtungsdaten werden einem Vektorquantisierer 116 mit wahrnehmungsgerechter Gewichtung, einem Filter 125 mit wahrnehmungsgerechter Gewichtung in der zweiten Kodiereinheit 120 und dem Synthesefilter 122 mit wahrnehmungsgerechter Gewichtung zugeführt.
- Die Sinus-Analyse-Kodiereinheit 114 der harmonischen Kodierschaltung analysiert das Ausgangssignal des inversen LPC-Filters 111 nach einem harmonischen Kodierverfahren. Das heißt, es werden eine Tonhöhendetektierung, Berechnungen der Amplituden Am der jeweiligen Harmonischen und eine Stimmhaft/Stimmlos-(V/UV)-Diskriminierung durchgeführt, und die Zahlen der Amplituden Am oder der Hüllkurven der betreffenden Harmonischen, die sich mit der Tonhöhe ändern, werden durch eine Dimensionsumwandlung konstant gemacht.
- In einem illustrativen Beispiel der Sinus-Analyse-Kodiereinheit 114, die in Fig. 3 dargestellt ist, wird eine ganz normale harmonische Kodierung benutzt. Speziell bei der Multiband-Erregungs-(MBE)-Kodierung wird bei der Modellierung davon ausgegangen, daß zum gleichen Zeitpunkt (in dem selben Block oder Rahmen) stimmhafte Anteile und stimmlose Anteile in dem Frequenzbereich oder -band vorhanden sind. Bei anderen harmonischen Kodierverfahren wird nur geprüft, ob die Sprache in einem Block oder in einem Rahmen stimmhaft oder stimmlos ist. In der folgenden Beschreibung wird ein gegebener Rahmen als UV beurteilt, wenn das Band insgesamt UV ist, soweit die MBE-Kodierung betroffen ist.
- Die Einheit 141 zur Tonhöhensuche mit offener Schleife und der Nulldurchgangszähler 142 der Sinus-Analyse-Kodiereinheit 114 von Fig. 3 werden mit dem Eingangssprachsignal von dem Eingang 101 bzw. mit dem Signal aus dem Hochpaßfilter (HPF) 109 gespeist. Der orthogonalen Transformationsschaltung 145 der Sinus-Analyse-Kodiereinheit 114 werden LPC- Reste oder lineare Prädiktionsreste aus dem inversen LPC-Filter 111 zugeführt. Die Einheit 141 zur Tonhöhensuche mit offener Schleife übernimmt die LPC-Reste der Eingangssignale und führt eine relativ grobe Tonhöhensuche mit offener Schleife durch. Die extrahierten gro¬ ben Tonhöhendaten werden einer Einheit 146 für die Feinsuche der Tonhöhe mit geschlossener Schleife zugeführt, wie dies weiter unten erläutert wird. Aus der Tonhöhensucheinheit 141 mit offener Schleife wird der Maximalwert der normierten Autokorrelation r(p), der durch Normieren des Maximalwerts der Autokorrelation der LPC-Reste gewonnen wird, zusammen mit den groben Tonhöhendaten entnommen und der V/UV-Diskriminiereinheit 115 zugeführt.
- Die orthogonale Transformationsschaltung 145 führt eine orthogonale Transformation, z. B. eine diskrete Fourier-Transformation (DFT) durch, um die LPC-Reste auf der Zeitachse in spektrale Amplitudendaten auf der Frequenzachse umzuwandeln. Das Ausgangssignal der orthogonalen Transformierschaltung 145 wird der Einheit 146 für die Feinsuche der Tonhöhe und einer spektralen Bewertungseinheit 148 für die Bewertung der spektralen Amplitude oder Hüllkurve zugeführt.
- Die Einheit 146 zur Feinsuche der Tonhöhe wird mit den relativ groben Tonhöhendaten gespeist, die von der Einheit 141 zur Tonhöhensuche mit offener Schleife extrahiert werden, und mit Frequenzdomänendaten, die die orthogonale Transformierschaltung 145 durch DFT gewinnt. Die Einheit 146 für die Feinsuche der Tonhöhe bewegt die Tonhöhendaten um plus/minus einige Abtastproben mit einer Rate von 0,2 bis 0,5, zentriert um die Daten des groben Tonhöhenwerts, um letztlich bei dem Wert der Tonhöhenfeindaten mit optimalem Dezimalkomtna (Fließkomma) zu landen. Das Analyse-Synthese-Verfahren wird als Feinsuchverfahren benutzt, um die Tonhöhe so auszuwählen, daß das Leistungsspektrum so nahe wie möglich bei dem Leistungsspektrum des originalen Klangs liegt. Die Tonhöhendaten aus der Einheit 146 zur Feinsuche der Tonhöhe mit geschlossener Schleife wird über einen Schalter 118 einem Ausgang 104 zugeführt.
- In der Spektralbewertungseinheit 148 werden die Amplitude jeder Harmonischen und die spektrale Hüllkurve als Summe der Harmonischen auf der Basis der spektralen Amplitude und der Tonhöhe als Ausgangssignal der orthogonalen Transformation der LPC-Reste bewertet und der Einheit 146 zur Feinsuche der Tonhöhe, der V/UV-Diskriminiereinheit 115 und der Vektorquantisiereinheit 116 mit wahrnehmungsgerechter Gewichtung zugeführt.
- Die V/UV-Diskriminiereinheit 115 diskriminiert das Verhältnis V/UV eines Rahmens auf der Basis des Ausgangssignals der orthogonalen Transformierschaltung 145, der optimalen Tonhöhe aus der Einheit 146 zur Feinsuche der Tonhöhe, der Spektralamplitudendaten aus der Spektralbewertungseinheit 148, des Maximalwerts der normierten Autokorrelation r(p) aus der Tonhöhensucheinheit 141 mit offener Schleife und des Nulldurchgangs-Zählwerts aus dem Nulldurchgangszähler 142. Zusätzlich kann auch die Grenzposition der bandbasierten V/UV-Diskriminierung für die MBE als Bedingung für die V/UV-Diskriminierung benutzt werden. Das Diskriminierungsausgangssignal der V/UV-Diskriminiereinheit 115 wird an ei¬ nem Ausgang 105 ausgegeben.
- Eine Ausgangseinheit der Spektralbewertungseinheit 148 oder eine Eingangseinheit der Vektorquantisiereinheit 116 ist mit einer Datenzahl-Wandlereinheit (einer Einheit, die eine Art von Abtastratenwandlung durchführt) ausgestattet. Die Datenzahl-Wandlereinheit dient zum Setzen der Amplitudendaten Am einer Hüllkurve, wobei die Tatsache berücksichtigt wird, daß die Zahl der Bänder, in die die Frequenzachse aufgeteilt wird, und die Zahl der Daten mit der Tonhöhe differieren. Das heißt, wenn das effektive Band bis 3400 Hz reicht, kann das effektive Band in Abhängigkeit von der Tonhöhe in 8 bis 63 Bänder zerlegt werden. Die Zahl mMX + 1 der Amplitudendaten Am , die von Band zu Band gewonnen werden, ändert sich in einem Bereich von 8 bis 63. So wandelt die Datenzahl-Wandlereinheit die Amplitudendaten der variablen Zahl mMX + 1 in eine vorgegebene Zahl M von Daten, z. B. 44 Daten, um.
- Die Amplitudendaten oder die Hüllkurvendaten der vorgegebenen Zahl M, z. B. 44, aus der Datenzahl-Wandlereinheit, die in einer Ausgabeeinheit der Spektralbewertungseinheit 148 oder in einer Eingabeeinheit der Vektorquantisiereinheit 116 vorgesehen ist, werden von der Vektorquantisiereinheit 116 in Einheiten von jeweils einer vorgegebenen Zahl von Daten, z. B. 44 Daten, gesammelt, indem eine gewichtete Vektorquantisierung durchgeführt wird. Das Gewicht wird über einen Ausgang der Filterrechenschaltung 139 mit wahrnehmungsgerechter Gewichtung zugeführt. Der Index der Hüllkurve aus dem Vektorquantisierer 116 wird von einem Schalter 117 an einem Ausgang 103 ausgegeben. Es ist ratsam, vor der gewichteten Vektorquantisierung die Interframe-Differenz heranzuziehen, wobei ein geeigneter Dämpfungskoeffizient für einen aus einer vorgegebenen Zahl von Daten gebildeten Vektor benutzt wird.
- Im folgenden wird die zweite Kodiereinheit 120 erläutert. Die zweite Kodiereinheit 120 hat eine sog. CELP-Kodierstruktur und dient speziell zum Kodieren des stimmlosen Anteils des Eingangssprachsignals. Bei der CELP-Kodierstruktur für den stimmlosen Anteil des Eingangssprachsignals wird ein Rausch-Ausgangssignal, das den LPC-Resten des stimmlosen Lauts als repräsentativer Ausgangswert des Rausch-Codebuchs oder ein sog. stochastisches Codebuch 121 über eine Verstärkungssteuerschaltung 126 einem Synthesefilter 122 mit wahrnehmungsgerechter Gewichtung zugeführt. Das gewichtete Synthesefilter 122 unterzieht das Eingangsrauschen einer LPC-Synthetisierung und führt das erzeugte gewichtete stimmlose Signal dem Subtrahierer 123 zu. Der Subtrahierer 123 wird mit einem Signal gespeist, das von dem Eingang 101 über ein Hochpaßfilter (HPF) 109 zugeführt und von einem wahrnehmungsgerechten Gewichtungsfilter 125 wahrnehmungsgerecht gewichtet wird. Die Differenz oder der Fehler zwischen dem Signal und dem Signal aus dem Synthesefilter wird entnommen. Unterdessen wird im voraus die Antwort des wahrnehmungsgerecht gewichtenden Synthesefilters auf ein Null-Eingangssignal von dem Ausgangssignal des wahrnehmungsgerechten Gewichtungsfilters 125 subtrahiert. Dieser Fehler wird einer Abstandsberechnungsschaltung 124 zum Berechnen des Abstands zugeführt. In dem Rausch-Codebuch 121 wird ein repräsentativer Vektorwert ermittelt, der den Fehler minimiert. Das Obige bildet die Zusammenfassung der Vektorquantisierung der Zeitdomänen-Wellenform unter Verwendung der Suche in geschlossener Schleife, die ihrerseits das Analyse-Synthese-Verfahren benutzt.
- Als Daten für den stimmlosen (UV) Anteil aus dem zweiten Dekodierer 120 mit der CELP- Kodierstruktur werden der Formindex des Codebuchs aus dem Rausch-Codebuch 121 und der Verstärkungsindex des Codebuchs aus der Verstärkungsschaltung 126 entnommen. Der Formindex, der die UV-Daten aus dem Rausch-Codebuch 121 darstellt, und der Verstärkungsindex, der die UV-Daten der Verstärkungsschaltung 126 darstellt, werden über einen Schalter 127g einem Ausgang 107g zugeführt.
- Die Schalter 127s, 127g und die Schalter 117, 118 werden in Abhängigkeit von den Ergebnissen der V/UV-Entscheidung aus der V/UV-Diskriminiereinheit 115 ein- und ausgeschaltet. Die Schalter 117, 118 werden eingeschaltet, wenn die Ergebnisse der V/UV-Diskriminierung des Sprachsignals des laufend übertragenen Rahmens stimmhaft (V) anzeigen, während die Schreibbüro 127s, 127g eingeschaltet werden, wenn das Sprachsignal des laufend übertragenen Rahmens stimmlos (UV) ist.
- Fig. 4 zeigt den Sprachsignaldekodierer von Fig. 2 in detaillierterer Darstellung. In Fig. 4 werden die gleichen Bezugszeichen verwendet wie bei den entsprechenden Komponenten in Fig. 2.
- In Fig. 4 wird ein Ausgangssignal der LSP-Vektorquantisierung, das dem Ausgang 102 von Fig. 1 und 3 entspricht, d. h. der Codebuch-Index, einem Eingang 202 zugeführt.
- Der LSP-Index wird dem inversen LSP-Vektorquantisierer 231 für die LPC-Parameter-Repro¬ duziereinheit 213 zugeführt und dort einer inversen Vektorquantisierung in Spektrallinienpaar-(LSP)-Daten unterzogen, die dann LSP-Interpolationsschaltungen 231, 233 für die Interpolation zugeführt werden. Die resultierenden interpolierten Daten werden von den LSP/α- Wandlerschaltungen 234, 235 in α-Parameter umgewandelt, die dem LPC-Synthesefilter 214 zugeführt werden. Die LSP-Interpolationsschaltung 232 und die LSP/α-Wandlerschaltung 234 sind für stimmhaften Laut (V) ausgelegt, während die LSP-Interpolationsschaltung 233 und die LSP/α-Wandlerschaltung 235 für stimmlosen Laut (UV) ausgelegt sind. Das LP- C-Synthesefilter 214 trennt das LPC-Synthesefilter 236 des stimmhaften Sprachanteils von dem LPC-Synthesefilter 237 des stimmlosen Sprachanteils. Das heißt, die LPC-Koeffizienteninterpolation wird unabhängig für den stimmhaften Sprachanteil und den stimmlosen Sprachanteil durchgeführt, um Störeffekte zu verhindern, die andernfalls im Übergangsbereich von dem stimmhaften Sprachanteil zu dem stimmlosen Sprachanteil oder umgekehrt durch Interpolation der LSPs mit völlig unterschiedlichen Eigenschaften erzeugt werden könnten.
- Einem Eingang 203 von Fig. 4 werden Code-Indexdaten zugeführt, die der Hüllkurve Am der gewichteten vektorquantisierten Spektren entsprechen, die dem Ausgangssignal am Ausgang 103 des Kodierers von Fig. 1 und 3 entsprechen. Einem Eingang 204 werden Tonhöhendaten von dem Ausgang 104 von Fig. 1 und 3 zugeführt, und einem Eingang 205 werden die Daten der V/UV-Diskriminierung von dem Ausgang 105 von Fig. 1 und 3 zugeführt.
- Die vektorquantisierten Indexdaten der spektralen Hüllkurve Am werden von dem Eingang 203 einem inversen Vektorquantisierer 212 zur inversen Vektorquantisierung zugeführt, der eine zu der Datenzahlumwandlung inverse Umwandlung durchführt. Die resultierenden spektralen Hüllkurvendaten werden einer Sinus-Syntheseschaltung 215 zugeführt.
- Falls während der Kodierung die Interframe-Differenz vorder Vektorquantisierung des Spektrums ermittelt wird, wird diese Interframe-Differenz nach der inversen Vektorquantisierung dekodiert, um die Daten der spektralen Hüllkurve zu erzeugen.
- Der Sinus-Syntheseschaltung 215 werden die Tonhöhe von dem Eingang 204 und die Daten der V/UV-Diskriminierung von dem Eingang 205 zugeführt. Die Sinus-Syntheseschaltung 215 gibt LPC-Restdaten aus, die dem Ausgangssignal des inversen LPC-Filters 111 von Fig. 1 und 3 entsprechen. Diese werden einem Addierer 218 zugeführt.
- Die Hüllkurvendaten des inversen Vektorquantisierers 212 und die Tonhöhe und die Daten der V/UV-Diskriminierung von den Eingängen 204, 205 werden einer Rausch-Syntheseschaltung 216 zur Rauschaddition für den stimmhaften Anteil (V) zugeführt. Das Ausgangssignal der Rausch-Syntheseschaltung 216 wird über eine gewichtete Überlappungs-Addierschaltung 217 dem Addierer 218 zugeführt. Das Rauschen, das speziell die Tatsache berücksichtigt, daß dann, wenn die Erregung als Eingangsgröße für das LPC-Synthesefilter für den stimmhaften Laut durch Sinuswellen-Synthese erzeugt wird, bei einem Klang mit niedriger Tonhöhe, z. B. der Sprache eines männlichen Sprechers, ein dumpfer Höreindruck entsteht und die Tonqualität zwischen dem stimmhaften Ton und dem stimmlosen Ton abrupt wechselt und so ein unnatürliches Hörempfinden erzeugt wird, wird zu dem stimmhaften Anteil der LPC-Restsignale addiert. Dieses Rauschen berücksichtigt die die Daten der Sprachkodierung betreffenden Parameter, wie Tonhöhe, Amplituden der spektralen Hüllkurve, maximale Amplitude in einem Rahmen oder Pegel des Restsignals in Verbindung mit dem Eingangssignal des LPC-Synthesefilters des stimmhaften Sprachanteils, d. h. der Erregung.
- Das Additions-Ausgangssignal des Addierers 218 wird einem Synthesefilter 236 für den stimmhaften Laut des LPC-Synthesefilters 214 zugeführt, das die LPC-Synthese durchführt, um Zeit-Wellenformdaten zu erzeugen, die dann von einem Nachfilter 238v für die stimmhafte Sprache gefiltert und dem Addierer 239 zugeführt werden.
- Der Formindex und der Verstärkungsindex werden als UV-Daten von den Ausgängen 107s und 107g von Fig. 3 den Eingängen 207s und 207g von Fig. 4 und von dort der Syntheseeinheit 220 für stimmlose Spräche zugeführt. Der Formindex wird von dem Eingang 207s dem Rausch-Codebuch 221 der Syntheseeinheit 220 für stimmlose Sprache zugeführt, während der Verstärkungsindex von dem Eingang 207g der Verstärkungsschaltung 222 zugeführt wird. Der repräsentative Wert, der aus dem Rausch-Codebuch 221 ausgelesen wird, ist eine Rauschsignalkomponente, die den LPC-Resten der stimmlosen Sprache entspricht. Dieser wird zu einer voreingestellten Verstärkungsamplitude in der Verstärkungsschaltung 222 und wird einer Fensterschaltung 223 zugeführt, in der er für einen weichen Übergang zu dem stimmhaften Sprachanteil gefenstert wird.
- Das Ausgangssignal der Fensterschaltung 223 wird einem für die stimmlose (UV)-Sprache bestimmten Synthesefilter 237 des Synthesefilters 214 zugeführt. Die dem Synthesefilter 237 zugeführten Daten werden mit LPC-Synthese verarbeitet und werden zu den Zeit-Wellenformdaten für den stimmlosen Anteil. Die Zeit-Wellenformdaten des stimmlosen Anteils werden von einem Nachfilter für den stimmlosen Anteil gefiltert, bevor sie einem Addierer 239 zugeführt werden.
- In dem Addierer 239 werden das Zeit-Wellenformsignal aus dem Nachfilter 238v für die stimmhafte Sprache und die Zeit-Wellenformdaten für den stimmlosen Sprachanteil aus dem Nachfilter 238u für die stimmlose Sprache zueinander addiert, und die resultierenden Summendaten werden an dem Ausgang 201 ausgegeben.
- Der oben beschriebene Sprachsignalkodierer kann Daten ausgeben, die in Abhängigkeit von der geförderten Tonqualität unterschiedliche Bitraten haben. Das heißt die Ausgangsdaten können mit variablen Bitraten ausgegeben werden. Wenn z. B. die niedrige Bitrate 2 kbps und die hohe Bitrate 6 kbps beträgt, sind die Ausgangsdaten Daten mit den in Fig. 15 [Tabelle 1] dargestellten Bitraten.
- Die Tönhöhendaten von dem Ausgang 104 werden immer mit der Bitrate 8 Bit/20 ms für stimmhafte Sprache ausgegeben, wobei das Ausgangssignal der V/UV-Diskriminierung an dem Ausgang 105 immer 1 Bit/20 ms hat. Der an dem Ausgang 102 ausgegebene Index für die LSP-Quantisierung wird zwischen 32 Bit/40 ms und 48 Bit/40 ms umgeschaltet. Auf der anderen Seite wird der während der stimmhaften Sprache (V) an dem Ausgang 103 ausgegebene Index zwischen 15 Bit/20 ms und 87 Bit/20 ms umgeschaltet. Der an den Ausgängen 107s und 107g ausgegebene Index für stimmlose Sprache (UV) wird zwischen 11 Bit/10 Tabelle 1
- ms und 23 Bit/5 ms umgeschaltet. Die Bitrate der Ausgangsdaten für die stimmhafte Sprache (V) beträgt 40 Bit/20 ms für 2 kbps und 120 Bit/20 ms für 6 kbps. Die Bitrate der Ausgangsdaten für die stimmlose Sprache (UV) beträgt 39 Bit/20 ms für 2 kbps und 117 Bit/20 ms für 6 kbps.
- Der Index für die LSP-Quantisierung, der Index für stimmhafte Sprache (V) und der Index für stimmlose Sprache (UV) werden weiter unten in Verbindung mit der Anordnung der einschlägigen Teile erläutert.
- Anhand von Fig. 5 und 6 werden die Matrixquantisierung und die Vektorquantisierung in dem LSP-Quantisierer 134 näher erläutert.
- Der α-Parameter aus der LPC-Analysierschaltung 132 wird einer α-LSP-Schaltung 133 für die Umwandlung in LSP-Parameter zugeführt. Falls in der LPC-Analysierschaltung 132 die LPC- Analyse P-ter Ordnung durchgeführt wird, werden P α-Parameter berechnet. Diese α-Parameter werden in LSP-Parameter umgewandelt, die in einem Puffer 610 gehalten werden.
- Der Puffer 610 gibt zwei Rahmen an LSP-Parametern aus. Die zwei Rahmen der LSP-Parameter werden in einem Matrixquantisierer 620, der aus einem ersten Matrixquantisierer 620 und einem zweiten Matrixquantisierer 620&sub2; besteht, matrixquantisiert. Die zwei Rahmen der LSP-Parameter werden in dem ersten Matrixquantisierer 620&sub1; matrixquantisiert, und der resultierende Quantisierungsfehler wird in dem zweiten Matrixquantisierer 620&sub2; weiter matrixquantisiert. Die Matrixquantisierung macht sich die Korrelation sowohl auf der Zeitachse als auch auf der Frequenzachse zunutze.
- Der Quantisierungsfehler für zwei Rahmen aus dem Matrixquantisierer 620&sub2; wird einer Vektorquantisiereinheit 640 zugeführt, die aus einem ersten Vektorquantisierer 640&sub1; und einem zweiten Vektorquantisierer 640&sub2; besteht. Der erste Vektorquantisierer 640&sub1; besteht aus zwei Vektorquantisierabschnitten 650, 660, während der zweite Vektorquantisierer 640&sub2; aus zwei Vektorquantisierungsabschnitten 670, 680 besteht. Der Quantisierungsfehler aus der Matrixquantisiereinheit 620 wird von den Vektorquantisierabschnitten 650, 660 des ersten Vektorquantisierers 640&sub1; auf Rahmenbasis quantisiert. Der resultierende Quantisierungsfehlervektor wird von den Vektorquantisierungsabschnitten 670, 680 des zweiten Vektorquantisierers 640&sub2; einer weiteren Vektorquantisierung unterzogen. Die oben beschriebene Vektorquantisierung macht sich die Korrelation entlang der Frequenzachse zunutze.
- Die Matrixquantisiereinheit 620, die die oben beschriebene Matrixquantisierung ausführt, umfaßt zumindest den ersten Matrixquantisierer 620 zur Durchführung einer ersten Matrixquantisierungstufe und den zweiten Matrixquantisierer 620&sub2; zur Durchführung der zweiten Matrixquantisierungsstufe für die Matrixquantisierung des durch die erste Matrixquantisierung erzeugten Quantisierungsfehlers. Die Vektorquantisiereinheit 640, die die Vektorquantisierung in der oben beschriebenen Weise ausführt, enthält zumindest den ersten Vektorquantisierer 640&sub1; zur Durchführung der ersten Vektorquantisierungsstufe und den zweiten Vektorquantisierer 640&sub2; zur Durchführung der zweiten Matrixquantisierungsstufe für die Matrixquantisierung des durch die erste Vektorquantisierung erzeugten Quantisierungsfehlers.
- Im folgenden werden die Matrixquantisierung und die Vektorquantisierung im Detail erläutert.
- Die LSP-Parameter für zwei Rahmen, die in dem Puffer 600 gespeichert sind, d. h. eine 10 · 2-Matrix, werden dem ersten Matrixquantisierer 620&sub1; zugeführt. Der erste Matrixquantisierer 620&sub1; sendet LSP-Parameter für zwei Rahmen über den LSP-Parameteraddierer 621 zu einer gewichteten Entfernungsberechnungseinheit 623 zur Ermittlung des gewichteten Abstands des Minimalwerts.
- Das Verzerrungsmaß dMQ1 während der Codebuch-Suche durch den ersten Matrixquantisierer 620&sub1; ist durch die folgende Gleichung (1) gegeben:
- (1) dMQ1(X&sub1;, X&sub1;') = w((t,i))(x&sub1;((t,i)) - x&sub1;'((t,i)))²
- Hierin bedeuten X&sub1; den LSP-Parameter und X&sub1;' den Quantisierungswät, wobei t und i die Zahlen der P-Dimension sind.
- Das Gewicht w((t,i)), bei dem keine Gewichtsbegrenzung auf der Frequenzachse und der Zeitachse in Rechnung gestellt wird, ist durch die folgende Gleichung (2) gegeben:
- worin x((t,0)) = 0, x((t,p + 1)) = π unabhängig von t.
- Das Gewicht der Gleichung (2) wird auch für die Matrixquantisierung und die Vektorquantisierung auf der nachgeordneten Seite benutzt.
- Der, berechnete gewichtete Abstand wird einem Matrixquantisierer MQ&sub1; 622 für die Matrixquantisierung zugeführt. Ein 8-Bit-Index, der durch diese Matrixquantisierung ausgegeben wird, wird einem Signalumschalter 690 zugeführt. Der durch die Matrixquantisierung gewonnene Quantisierungswert wird in dem Addierer 621 von den LSP-Parametern für zwei Rahmen subtrahiert. Eine gewichtete Abstandsberechnungseinheit 623 berechnet sequentiell alle zwei Rahmen den gewichteten Abstand, so daß die Matrixquantisierung in der Matrixquantisiereinheit 622 ausgeführt wird. Es wird außerdem ein Quantisierungswert ausgewählt, der den gewichteten Abstand minimiert. Das Ausgangssignal des Addierers 621 wird einem Addierer 631 des zweiten Matrixquantisierers 620&sub2; zugeführt.
- Ähnlich wie der erste Matrixquantisierer 620&sub1; führt auch der zweite Matrixquantisierer 620&sub2; eine Matrixquantisierung durch. Das Ausgangssignal des Addierers 621 wird über den Addierer 631 einer gewichteten Abstandsberechnungseinheit 633 zugeführt, in der der minimale gewichtete Abstand berechnet wird.
- Das Verzerrungsmaß dMQ2 während der Codebuch-Suche durch den zweiten Matrixquantisierer 620&sub2; ist durch die Gleichung (3) gegeben:
- (3) dMQ1(X&sub2;, X&sub2;') = w(t,i)(x&sub2;(t,i) - x&sub2;'(t,i))²
- worin X&sub2; und X&sub2;' den Quantisierungsfehler bzw. den Quantisierungswert aus dem ersten Matrixquantisierer 620&sub1; bedeuten.
- Der gewichtete Abstand wird einer Matrixquantisiereinheit (MQ&sub2;) 632 für die Matrixquantisierung zugeführt. Ein durch die Matrixquantisierung ausgegebener 8-Bit-Index wird in dem Addierer 631 von dem 2-Rahmen-Quantisierungsfehler subtrahiert. Die gewichtete Abstandsberechnungseinheit 633 berechnet sequentiell den gewichteten Abstand unter Verwendung des Ausgangssignals des Addierers 631. Der Quantisierungswert, der den gewichteten Abstand minimiert, wird ausgewählt. Das Ausgangssignal des Addierers 631 wird Rahmen für Rahmen den Addierern 651, 661 des zweiten Vektorquantisierers 640&sub1; zugeführt.
- Der erste Vektorquantisierer 640&sub1; führt eine Vektorquantisierung Rahmen für Rahmen durch. Das Ausgangssignal des Addierers 631 wird Rahmen für Rahmen über Addierer 651 bzw. 661 den beiden Rechnungseinheiten 653, 663 für den gewichteten Abstand zugeführt, um den minimalen gewichteten Abstand zu berechnen.
- Die Differenz zwischen dem Quantisierungsfehler X&sub2; und dem Quantisierungsfehler X&sub2;' ist eine (10 · 2)-Matrix. Falls die Differenz als X&sub2; - X&sub2;' = [x&sub3;&submin;&sub1;, x&sub3;&submin;&sub2;] dargestellt wird, sind die Verzerrungsmaße dVQ1, dVQ2 während der Codebuch-Suche durch die Vektorquantisierungsein¬ heiten 652, 662 des ersten Vektorquantisierers 640&sub1; durch die folgenden Gleichungen (4) und (5) gegeben:
- (4) dVQ1(x&sub3;&submin;&sub1;,x&sub3;&submin;&sub1;') = w(0,i)(x&sub3;&submin;&sub1;(0,i) - x&sub3;&submin;&sub1;'(0,i))²
- (5) dVQ2(x&sub3;&submin;&sub2;,x&sub3;&submin;&sub2;') = w(1,i)(x&sub3;&submin;&sub2;(1,i) - x&sub3;&submin;&sub2;'(1,i))²
- Der gewichtete Abstand wird einer Vektorquantisiereinheit VQ&sub1; 652 und einer Vektorquantisiereinheit VQ&sub2; 662 für die Vektorquantisierurig zugeführt. Jeder von diesen Vektorquantisiereinheiten ausgegebene 8-Bit-Index wird dem Signalumschalter 690 zugeführt. Der Quantisierungswert wird in den Addierern 651, 661 von dem eingegebenen 2-Rahmen-Quantisierungsfehlervektor subtrahiert. Die Rechnungseinheiten 653, 663 für den gewichteten Abstand berechnen sequentiell den gewichteten Abstand, wobei die Ausgangssignale der Addierer 651, 661 verwendet werden, um den Quantisierungswert auszuwählen, der den gewichteten Abstand minimiert. Die Ausgangssignale der Addierer 651, 661 werden Addierern 671, 681 des zweiten Vektorquantisierers 640&sub2; zugeführt.
- Die Verzerrungsmaße dVQ3, dVQ4 während der Codebuch-Suche durch die Vektorquantisiereinheiten 672, 682 des zweiten Vektorquantisierers 640&sub2; für
- x&sub4;&submin;&sub1; = x&sub3;&submin;&sub1; - x&sub3;&submin;&sub1;'
- x&sub4;&submin;&sub2; = x&sub3;&submin;&sub2; - x&sub3;&submin;&sub2;'
- sind durch die folgenden Gleichungen (6) und (7) gegeben:
- (6) dVQ3(x&sub4;&submin;&sub1;,x&sub4;&submin;&sub1;') = w(0,i)(x&sub4;&submin;&sub1;(0,i) - x&sub4;&submin;&sub1;'(0,i))²
- (7) dVQ4(x&sub4;&submin;&sub2;,x&sub4;&submin;&sub2;') = w(1,i)(x&sub4;&submin;&sub2;(1,i) - x&sub4;&submin;&sub2;'(1,i))²
- Diese gewichteten Abstände werden dem Vektorquantisierer (VQ&sub3;) 672 und dem Vektorquantisierer (VQ&sub4;) 682 für die Vektorquantisierung zugeführt. Die von der Vektorquantisierung ausgegebenen 8-Bit-Indexdaten werden in den Addierern 671, 681 von dem eingegebenen Quantisierungsfehlervektor für zwei Rahmen subtrahiert. Die Rechnungseinheiten 673, 683 für den gewichteten Abstand berechnen sequentiell die gewichteten Abstände unter Verwendung der Ausgangssignale der Addierer 671, 681, um den Quantisierungswert auszuwählen, der die gewichteten Abstände minimiert.
- Während des Codebuch-Lernens wird das Lernen nach dem allgemeinen Lloyd-Algorithmus auf der Basis der jeweiligen Verzerrungsmaße durchgeführt.
- Die Verzerrungsmaße während der Codebuch-Suche und während des Lernens können unterschiedliche Werte haben.
- Die 8-Bit-Indexdaten aus den Matrixquantisiereinheiten 622, 632 und den Vektorquantisierungseinheiten 652, 662, 672 und 682 werden durch den Signalumschalter 690 umgeschaltet und an dem Ausgang 691 ausgegeben.
- Bei einer niedrigen Bitrate werden die Ausgangssignale des ersten Matrixquantisierers 620&sub1;, der die erste Stufe der Matrixquantisierung durchführt, des zweiten Matrixquantisierers 620&sub2;, der die zweite Stufe der Matrixquantisierung durchführt, und des ersten Vektorquantisierers 640&sub1;, der die erste Stufe der Vektorquantisierung ausführt, entnommen, während bei einer hohen Bitrate das Ausgangssignal für die niedrige Bitrate zu dem Ausgangssignal des zweiten Vektorquantisierers 640&sub2; addiert wird, der die zweite Stufe der Vektorquantisierung durchführt, und die resultierende Summe entnommen wird.
- Diese Ausgangssignale haben einen Index mit 32 Bits/40 ms bzw. einen Index mit 48 Bit/40 ms für 2 kbps bzw. 6 kbps.
- Die Matrixquantisiereinheit 620 und die Vektorquantisiereinheit 640 führen eine Gewichtung durch, die auf der Frequenzachse und/oder der Zeitachse nach Maßgabe der Eigenschaften der die LPC-Koeffizienten repräsentierenden Parameter begrenzt ist.
- Zunächst wird die Gewichtung erläutert, die auf der Frequenzachse nach Maßgabe der Eigenschaften der LSP-Parameter begrenzt ist. Wenn die Ordnungszahl P = 10 ist, werden die LSP-Parameter X(i) für drei Bereiche, nämlich niedrige, mittlere und hohe Bereiche, gruppiert in
- L&sub1; = {X(i) 1 ≤ i ≤ 2}
- L&sub2; = {X(i) 3 ≤ i ≤ 6}
- L&sub3; = {X(i) 7 ≤ i ≤ 10}
- Wenn die Gewichtung der Gruppen L&sub1;, L&sub2; und L&sub3; gleich ¹/&sub4;, ¹/&sub2; und ¹/&sub4; ist, ist die nur in der Frequenzachse limitierte Gewichtung durch die folgenden Gleichungen (8), (9) und (10) gegeben:
- Die Gewichtung der jeweiligen LSP-Parameter erfolgt nur in jeder Gruppe, und das Gewicht wird durch die Gewichtung für jede Gruppe begrenzt.
- Beim Blick in Richtung der Zeitachse ist die Gesamtsumme der betreffenden Rahmen notwendigerweise gleich 1, so daß die Begrenzung der Zeitachse rahmenbasiert ist. Das Gewicht, das nur in Richtung der Zeitachse begrenzt ist, ist durch die folgende Gleichung (11) gegeben:
- worin 1 i 10 und 0 t 1.
- Durch diese Gleichung (11) wird die in Richtung der Frequenzachse nicht begrenzte Gewichtung zwischen zwei Rahmen mit den Rahmennummern t = 0 und t = 1 durchgeführt. Diese Gewichtung, die nur in Richtung der Zeitachse begrenzt ist, wird zwischen zwei Rahmen durchgeführt, die mit Matrixquantisierung verarbeitet werden.
- Während des Lernens wird die Gesamtheit der als Lerndaten benutzten Rahmen mit der Gesamtzahl T entsprechend der folgenden Gleichung (12) gewichtet:
- worin 1 i 10 und 0 t T
- £
- Im folgenden wird die in Richtung der Frequenzachse und in Richtung der Zeitachse begrenzte Gewichtung erläutert. Wenn die Zahl der Ordnungen P = 10 ist werden die LSP-Parameter X(i,t) für drei Bereiche, nämlich den unteren, mittleren und hohen Bereich, gruppiert in
- L&sub1; = {X(i,t) 1 ≤ i ≤ 2, 0 ≤ t ≤ 1}
- L&sub2; = {X(i,t) 3 ≤ i ≤ 6, 0 ≤ t ≤ 1}
- L&sub3; = {X(i,t) 7 ≤ i ≤ 10, 0 ≤ t ≤ 1}
- Falls die Gewichtung der drei Gruppen L&sub1;, L&sub2; und L&sub3; gleich ¹/&sub4;, ¹/&sub2; und ¹/&sub4; ist, ist die nur in Richtung der Frequenzachse begrenzte Gewichtung durch die folgenden Gleichungen (13), (14) und (15) gegeben:
- Durch diese Gleichungen (13) bis (15) wird die in Richtung der Frequenzachse über jeweils drei Rahmen begrenzte und über zwei Rahmen verarbeitete Gewichtung mit Matrixquantisierung durchgeführt. Dies ist während der Codebuch-Suche und während des Lernens wirksam.
- Während des Lernens erfolgt die Gewichtung für die Gesamtheit der Rahmen der ganzen Daten. Die LSP-Parameter X((i,t)) sind (werden?) für den unteren, mittleren und hohen Bereich gruppiert in
- L&sub1; = {X(i,t) 1 ≤ i ≤ 2, 0 ≤ t ≤ T}
- L&sub2; = {X(i,t) 3 ≤ i ≤ 6, 0 ≤ t ≤ T}
- L&sub3; = {X(i,t) 7 ≤ i ≤ 10, 0 ≤ t ≤ T}
- Falls die Gewichtung der Gruppen L&sub1;, L&sub2; und L&sub3; gleich ¹/&sub4;, ¹/&sub2; und ¹/&sub4; ist, ist die Gewichtung für die Gruppe L&sub1;, L&sub2; und L&sub3;, die nur in Richtung der Frequenzachse begrenzt sind, durch die folgenden Gleichungen (16), (17) und (18) gegeben:
- Durch diese Gleichungen (16) bis (18) kann die Gewichtung für drei Bereiche in Richtung der Frequenzachse und über alle Rahmen in Richtung der Zeitachse durchgeführt werden.
- Zusätzlich führen die Matrixquantisiereinheit 620 und die Vektorquantisiereinheit 640 eine Gewichtung in Abhängigkeit von der Größe der Änderungen in den LSP-Parametern durch. In Übergangsregionen von V nach UV oder von UV nach V, die unter der Gesamtheit der Sprachrahmen eine Minorität repräsentieren, ändern sich die LSP-Parameter aufgrund der Differenz in der Frequenzantwort zwischen Konsonanten und Vokalen signifikant. Für eine Gewichtung, die die Betonung auf den Übergangsregionen legt, kann deshalb die durch die Gleichung (19) dargestellte Gewichtung mit der Gewichtung W'((i,t)) multipliziert werden.
- (19) wd(t) = x&sub1;(i,t) - x&sub1;(i,t - 1) ²
- Anstelle der Gleichung (19) kann die folgende Gleichung (20) benutzt werden:
- (20) wd(t) =
- Somit führt die LSP-Quantisiereinheit 134 eine Zweistufen-Matrixquantisierung und eine Zweistufen-Vektorquantisierung durch, um die Bitzahl des Ausgangsindex variabel zu machen.
- Die Grundstruktur der Vektorquantisiereinheit 116 ist in Fig. 7 dargestellt, während Fig. 8 ei¬ ne detailliertere Struktur der Vektorquantisiereinheit 116 von Fig. 7 zeigt. Im folgenden wird eine beispielhafte Struktur der gewichteten Vektorquantisierung für die spektrale Hüllkurve Am in der Vektorquantisiereinheit 116 erläutert.
- Zunächst wird eine beispielhafte Anordnung für die Datenzahl-Umwandlung zur Lieferung einer konstanten Datenzahl der Amplitude der spektralen Hüllkurve auf der Ausgangsseite der Spektralbewertungseinheit 148 oder auf der Eingangsseite der Vektorquantisiereinheit 116 in der Sprachsignalkodiervorrichtung von Fig. 3 erläutert.
- Für eine solche Datenzahlumwandlung können verschiedene Verfahren konzipiert werden. In dem vorliegenden Ausführungsbeispiel werden Blinddaten, die die Werte von den fetzten Daten in einem Block zu den ersten Daten in dem Block interpolieren oder ändere voreingestellte Daten, wie Daten, die die letzten Daten oder die ersten Daten in einem Block wiederholen, an die Amplitudendaten eines Blocks eines effektiven Bands auf der Frequenzachse angehängt, um die Datenzahl auf NF zu erhöhen, wobei Amplitudendaten, deren Zahl gleich dem Os-fachen, z. B. dem achtfachen ist, durch Os-fache, z. B. achtfache, Überabtastung mit begrenzter Bandbreite, z. B. mit Hilfe eines FIR-Filters ermittelt werden. Die ((mMx + 1) · Os) Amplitudendaten werden für die Erweiterung auf eine größere Zahl NM, z. B. 2048, linear interpoliert. Diese NM Daten werden für die Umwandlung auf die oben erwähnte voreingestellte Datenzahl M, z. B. auf 44 Daten, unterabgetastet.
- Es werden tatsächlich nur Daten, die für die Formulierung der letztlich erforderlichen M Daten benötigt werden, durch Überabtasten und lineare Interpolation berechnet, ohne daß die oben erwähnten NM Daten ermittelt werden.
- Die Vektorquantisiereinheit 116 zur Durchführung der gewichteten Vektorquantisierung umfaßt nach Fig. 7 wenigstens eine erste Vektorquantisiereinheit 500 für die erste Stufe der Vektorquantisierung und eine zweite Vektorquantisiereinheit 510 für die zweite Stufe der Vektorquantisierung, um den Quantisierungsfehlervektor, der während der ersten Vektorquantisierung in der ersten Vektorquantisiereinheit 500 erzeugt wird, zu quantisieren. Diese erste Vektorquantisiereinheit 500 ist eine sog. Erststufen-Vektorquantisiereinheit, während die zweite Vektorquantisiereinheit 510 eine sog. Zweitstufen-Vektorquantisiereinheit ist.
- Der Ausgangsvektor x der Spektralbewertungseinheit 148, d. h. die Hüllkurvendaten mit der voreingestellten Datenzahl M, wird Einem Eingang 501 der ersten Vektorquantisiereinheit 500 zugeführt. Dieser Ausgangsvektor x wird von der Vektorquantisiereinheit 502 mit gewichteter Vektorquantisierung quantisiert. Auf diese Weise wird ein von der Vektorquantisierungseinheit 502 ausgegebener Formindex an einem Ausgang 503 ausgegeben, während an einem Ausgang 504 ein quantisierter Wert x&sub0;' ausgegeben und außerdem Addierern 505, 513 zugeführt wird. Der Addierer 505 subtrahiert den quantisierten Wert x&sub0;' von dem Quellvektor x und liefert einen Quantisierungsfehlervektor y mehrfacher Ordnung.
- Der Quantisierungsfehlervektor y wird einer Vektorquantisiereinheit 511 in der zweiten Vektorquantisiereinheit 510 zugeführt. Diese zweite Vektorquantisiereinheit 511 besteht aus mehreren Vektorquantisiereinheiten, oder in Fig. 7 aus zwei Vektorquantisierern 511&sub1;, 511&sub2;. Der Quantisierungsfehlervektor y ist dimensional zerlegt, so daß er durch gewichtete Vektorquantisierung in den zwei Vektorquantisierern 511&sub1;, 511&sub2; quantisiert wird. Der von diesen Vektorquantisierern 511&sub1;, 511&sub2; ausgegebene Formindex wird an Ausgängen 512&sub1;, 512&sub2; ausgegeben, während die quantisierten Werte y&sub1;', y&sub2;' in Dimensionsrichtung verbunden und einem Addierer 513 zugeführt werden. Der Addierer 513 addiert die quantisierten Werte y&sub1;', y&sub2;' zu dem quantisierten Wert x&sub0;', um einen quantisierten Wert y&sub1;' zu erzeugen, der an einem Ausgang 514 ausgegeben wird.
- Somit wird für die niedrige Bitrate das Ausgangssignal der ersten Stufe der Vektorquantisie¬ rung in der ersten Vektorquantisiereinheit 500 herausgegriffen, während für die hohe Bitrate das Ausgangssignal der ersten Stufe der Vektorquantisierung und das Ausgangssignal der zweiten Stufe der Vektorquantisierung in der zweiten Quantisiereinheit 510 ausgegeben werden.
- Der Vektorquantisierer 502 in der ersten Vektorquantisiereinheit in dem Vektorquantisierabschnitt 116 hat eine Zweistufen-Struktur L-ter Ordnung, z. B. 44. Ordnung, wie dies in Fig. 8 dargestellt ist.
- Das heißt, die Summe der Ausgangsvektoren des Vektorquantisierungs-Codebuchs 44. Ordnung mit der Codebuchgröße 32, multipliziert mit einem Verstärkungsfaktor g wird als quantisierter Wert x&sub0;' des spektralen Hüllkurvenvektors x 44-ter Ordnung verwendet. Somit sind die beiden Codebücher, wie in Fig. 8 dargestellt, die Codebücher CB0 und CB1, während die Ausgangsvektoren s1i, s1j sind, wobei 0 = i und j = 31 ist. Auf der anderen Seite ist das Ausgangssignal des Verstärkungsfaktor-Codebuchs CBg gleich g&sub1;, mit 0 ≤ 1 ≤ 31, wobei g&sub1; ein Skalar ist. Das Ausgangssignal x&sub0;' ist letztlich gleich g&sub1;(s1i + s1j).
- Die spektrale Hüllkurve Am, die durch die oben beschriebene MBE-Analyse der LPC-Reste gewonnen und in eine vorbestimmte Ordnung umgewandelt wird, ist x. Eine effiziente Quantisierung von x ist äußerst schwierig.
- Die Quantisierungsfehlerenergie E ist definiert durch
- (21) E = W{Hx - Hg1((s0i + s1j)} ² = WH{x - {x - g&sub1;(s0i + s1j)} ²
- worin H den Frequenzverlauf des LPC-Synthesefilters und W eine Gewichtungsmatrix für die Darstellung der Eigenschaften für die wahrnehmungsgerechte Gewichtung auf der Frequenzachse bedeuten.
- Wenn der den Ergebnissen der LPC-Analyse des laufenden Rahmens entsprechende α-Parameter mit αi(1 ≤ i ≤ P) bezeichnet wird, werden die Werte der entsprechenden Punkte der L-ten Ordnung, z. B. der 44. Ordnung, aus der Frequenzantwort der Gleichung (22) abgetastet:
- Für die Berechnungen werden unmittelbar im Anschluß an eine Kette 1, α&sub1;, α&sub2;, ..., αp Stopf- Nullen angeordnet, um eine Kette 1, α&sub1;, α&sub2;, ... αp, 0, 0, ..., 0 zu erhalten, die z. B. Daten mit 256 Punkten ergibt. Dann wird durch eine 256-Punkt-FFT für den Punkt, der einem Bereich von 0 bis π zugeordnet ist, (re² + irn²)1/2 berechnet, und es werden die Reziprokwerte der Ergebnisse ermittelt. Diese Reziprokwerte werden auf L Punkte, z. B. 44 Punkte, unterabgetastet, und es wird eine Matrix gebildet, die diese L Punkte als diagonale Elemente enthält:
- Eine wahrnehmungsgerecht gewichtende Matrix W ist durch die folgende Gleichung (23) gegeben:
- worin αi, das Ergebnis der LPC-Analyse ist und λa, λb Konstanten bedeuten, z. B. λa = 0,4 und λb = 0,9.
- Die Matrix W kann aus der Frequenzantwort der obigen Gleichung (23) berechnet werden. Es wird z. B. FFT an Daten von 256 Punkten 1, α1λb, α2λ1b², ... αpλbp, 0, 0, ..., 0 durchgeführt, um (re²[i] + Im²[i])1/2 für einen Bereich von 0 bis λ zu ermitteln, wobei 0 ≤ i ≤ 128. Die Frequenzantwort des Nenners wird durch FFT von 256 Punkten für einen Bereich von 0 bis λ für 1, α1λa, α2λa², ..., αpλap, 0, 0, ..., 0 an 128 Punkten ermittelt, um (re'²[i] + im'²[i])1/2 zu ermitteln, wobei 0 ≤ i ≤ 128.
- Die Frequenzantwort der Gleichung (23) kann ermittelt werden durch
- Wobei 0 ≤ i ≤ 128. Dies wird für jeden zugeordneten Punkt, z. B. des Vektors 44. Ordnung, nach dem folgenden Verfahren ermittelt. Genauer gesagt, es sollte lineare Interpolation benutzt werden. In dem folgenden Beispiel wird jedoch statt dessen der nächstgelegene Punkt benutzt.
- Das heißt
- ω[i] = ω0[nint{128i/L)], worin 1 ≤ i ≤ L.
- In dieser Gleichung ist nint(X) eine Funktion, die einen Wert ergibt, der X am nächsten liegt.
- Was H betrifft, so werden h(1), h(2), ... h(L) nach einem ähnlichen Verfahren ermittelt. Das heißt
- Als weiteres Beispiel wird zunächst H(z)W(z) und dann die Frequenzantwort ermittelt, um die Anzahl der FFT-Transformationen herabzusetzen. Das heißt, der Nenner der Gleichung
- wird erweitert auf
- Unter Verwendung einer Kette 1, β&sub1;, β&sub2;, ..., β2p, 0, 0, ..., 0 werden z. B. Daten zu 256 Punkten erzeugt. Dann wird eine 256-Punkt-FFT durchgeführt, wobei der Frequenzverlauf der Amplitude lautet:
- rms[i] =
- wobei 0 ≤ i ≤ 128. Hieraus ermittelt man
- worin 0 ≤ i ≤ 128. Dieses wird für jeden entsprechenden Punkt des L-dimensionalen Vektors ermittelt. Falls die Zahl der Punkte der FFT klein ist, sollte lineare Interpolation angewendet werden. Der nächstgelegene Wert hier wird jedoch ermittelt durch
- worin 1 ≤ i ≤ L. Eine Matrix mit diesen Elementen in der Diagonalen ist W':
- Die Gleichung (26) stellt die gleiche Matrix dar wie die Gleichung (24).
- Alternativ kann H(exp(jω))W(exp(jω) direkt aus der Gleichung (25) ermittelt werden für ω = i/Lλ, das für wh[i] zu verwenden ist. Als weitere Alternative wird eine Impulsantwort der Gleichung (25) für eine geeignete Länge, z. B. für 64 Punkte, ermittelt und einer FFT-Transformation unterzogen, um den Amplituden-Frequenz-Verlauf zu ermitteln, der dann für wh[i] benutzt werden kann.
- Wenn man die Gleichung (21) unter Verwendung dieser Matrix, d. h. der Frequenzantwort des gewichteten Synthesefilters, neu schreibt, erhält man die Gleichung (27):
- (27) E = W'(x - g&sub1;((s0i + s&sub1;)) ²
- Das Verfahren zum Lernen des Form-Codebuchs und des Verstärkungsgrad-Codebuchs wird im folgenden erläutert.
- Der Erwartungswert der Verzerrung wird für alle Rahmen k minimiert, für die ein Codevektor s0c für CB0 ausgewählt wird. Wenn M derartiger Rahmen vorhanden sind, genügt es, wenn
- (28) J = 1/M W'k(x - gk((s0c + s1k)) ²
- minimiert wird. In der Gleichung (28) bezeichnen Wk', Xk, gk und sik die Gewichtung für den k-ten Rahmen, die Eingangsgröße für den k-ten Rahmen, den Verstärkungsgrad des k-ten Rahmens bzw. die Ausgangsgröße des Codebuchs CB1 für den k-ten Rahmen.
- Um die Gleichung (28) zu minimieren, berechnet man
- Deshalb ist
- so daß
- worin () eine inverse Matrix und Wk'T eine transponierte Matrix von Wk' bedeuten.
- Als nächstes wird die Optimierung des Verstärkungsgrads betrachtet.
- Der Erwartungswert der Verzerrung für den k-ten Rahmen ist, wenn man das Codewort gc des Verstärkungsgrads wählt, gegeben durch:
- Durch Auflösen von
- erhält man
- und
- Die obigen Gleichungen (31) und (32) ergeben die optimalen Schwerpunktbedingungen für die Form s0i , s1i und den Verstärkungsgrad gi für 0 ≤ i ≤ 31, d. h. ein optimales Dekodiererausgangssignal. Die Größe s1i kann in der gleichen Weise ermittelt werden wie s0i.
- Die optimale Kodierbedingung, d. h. die nächste Nachbarbedingung, wird nun betrachtet.
- Die obige Gleichung (27) zur Ermittlung des Verzerrungsmaßes, d. h. s0i und s1i , die die Gleichung E = W'(X - g1(s1i + s1j)) ² minimieren, werden jedesmal ermittelt, wenn die Eingangsgröße x und die Gewichtsmatrix W' gegeben sind, d. h. auf der Rahmen-für-Rahmen- Basis.
- An sich wird E nach dem Round-Robin-Algorithmus für alle Kombinationen von gl (0 ≤ I ≤ 31), s0i(0 ≤ i ≤ 31) und s1j (0 ≤ i ≤ 31), d. h. 32 · 32 · 32 = 32768 ermittelt, um den Satz von s0i, s1i zu ermitteln, der den Minimalwert von E ergibt. Da dies jedoch umfangreiche Rechnungen erfordert, werden in dem vorliegenden Ausführungsbeispiel die Form und der Verstärkungsgrad nacheinander gesucht. Allerdings wird Round-Robin-Suche für die Kombination von s0i und s1i benutzt. Es gibt 32 · 32 = 1024 Kombinationen für s0o und s1i. In der folgenden Beschreibung wird s1i + s1j zur Vereinfachung mit sm bezeichnet.
- Die obige Gleichung (27) wird zu E = W'(x' - glsm) ². Wenn zur weiteren Vereinfachung xw = W'x und sw = W'sm gesetzt wird, erhält man
- (33) E = xk - g&sub1;sw ²
- Wenn gl hinreichend genau gemacht werden kann, kann deshalb die Suche in zwei Schritten durchgeführt werden:
- (1) Suche nach sw, das
- maximiert und
- (2) Suche nach gl, das
- am nächsten liegt. Wenn das obige unter Verwendung der ursprünglichen Notation neu geschrieben wird, wird
- (1)' die Suche nach einem Satz von s0i und s1i durchgeführt, der
- maximiert und
- (2)' die Suche nach gl durchgeführt, das
- am nächsten liegt.
- Die obige Gleichung (35) stellt eine optimale Kodierbedingung (Bedingung engster Nachbarschaft) dar.
- Wenn man die Bedingungen (Schwerpunktbedingungen) der Gleichungen (31) und (32) und die Bedingung der Gleichung (35) benutzt, können mit dem sog. verallgemeinerten Lloyd- Algorithmus (GLA) Codebücher (CB0, CB1 und CBg) gleichzeitig trainiert werden.
- In dem vorliegenden Ausführungsbeispiel wird W', auf die Eingangsgröße x normiert, als W' benutzt. Das heißt, in den Gleichungen (31), (32) und (35) wird W'/ x für W' substituiert.
- Alternativ wird die Gewichtung W', die für die wahrnehmungsgerechte Gewichtung bei der Vektorquantisierung in dem Vektorquantisierer 116 benutzt wird, durch die obige Gleichung (26) definiert. Die Gewichtung W', die die zeitliche Maskierung in Rechnung stellt, kann jedoch auch ermittelt werden, indem man die laufende Gewichtung W' ermittelt, bei der die vergangene Gewichtung W' in Rechnung gestellt wurde.
- Die Werte von wh(1), wh(2), ..., wh(L) in der obigen Gleichung (26), die zur Zeit n, d. h. in dem n-ten Rahmen ermittelt wurden, werden als whn(1), whn(2), ..., whn(L) bezeichnet.
- Wenn die Gewichte zur Zeit n, die vergangene Werte in Rechnung stellen, als An(i) definiert werden, wobei 1 ≤ i ≤ L, erhält man:
- An(i) = λAn-1(i) + (1 - λ) whn(i), (whn(i) = An-1(i)) = whn(i), (whn(i) > An-1(i))
- worin λ z. B. auf λ = 0,2 gesetzt werden kann. In dem so ermittelten An(i), mit 1 ≤ i ≤ L, kann eine Matrix als Gewichtung benutzt werden, die diese An(i) als diagonale Elemente enthält.
- Die Formindexwerte s&sub0;&sub1;, s1j, die auf diese Weise durch gewichtete Vektorquantisierung gewonnen werden, werden an Ausgängen 520 bzw. 522 ausgegeben, während der Verstärkungsgradindex gl an einem Ausgang 521 ausgegeben wird. Der quantisierte Wert x&sub0;' wird an dem Ausgang 504 ausgegeben und dem Addierer 505 zugeführt.
- Der Addierer 505 subtrahiert den quantisierten Wert von dem spektralen Hüllkurvenvektor x, um einen Quantisierungsfehlervektor y zu erzeugen. Dieser Quantisierungsfehlervektor y wird der Vektorquantisiereinheit 511 zugeführt, nach Dimensionen zerlegt und in Vektorquantisierern 511&sub1; bis 511&sub8; mit gewichteter Vektorquantisierung quantisiert.
- Die zweite Vektorquantisiereinheit 510 benutzt eine größere Bitzahl als die erste Vektorquantisiereinheit 500. Deshalb sind die Speicherkapazität des Codebuchs und der Verarbeitungsumfang (die Komplexität) für die Codebuch-Suche signifikant größer. Dadurch wird es unmöglich, die Vektorquantisierung milder 44. Ordnung durchzuführen, die die gleiche ist wie diejenige der ersten Quantisiereinheit 500. Die Vektorquantisiereinheit 511 in der zweiten Vektorquantisiereinheit 510 ist deshalb aus mehreren Vektorquantisierern aufgebaut, und die quantisierten Eingangswerte werden dimensional in mehrere niedrigdimensionale Vektoren zerlegt, um eine gewichtete Vektorquantisierung durchzuführen.
- Die Beziehung zwischen den in den Vektorquantisierern 511&sub1; bis 511&sub8; benutzten quantisierten Werte y&sub0; bis y&sub7;, die Zahl der Dimensionen und die Bitzahlen sind in der folgenden Tabelle 2 angegeben. TABELLE 2
- Die von den Vektorquantisierern 511&sub1; bis 511&sub8; ausgegebenen Indexwerte Idvq0 bis Idvq7 werden an Ausgängen 523&sub1; bis 523&sub8; ausgegeben. Die Summe der Bits dieser Indexdaten ist 72.
- Wenn ein Wert, der durch Verbinden der quantisierten Ausgangswerte y&sub0;' bis y&sub7;' der Vektorquantisierer 511&sub1; bis 511&sub8; gewonnen wird, in dimensionaler Richtung gleich y' ist, werden die quantisierten Werte y' und x0' in dem Addierer 513 addiert und ergeben einen quantisierten Wert x&sub1;'. Deshalb wird der quantisierte Wert x&sub1;' dargestellt durch
- x&sub1;' = x&sub0;' + y' = x - y + y'
- Das heißt, der endgültige Quantisierungsfehlervektor ist y' - y.
- Wenn der quantisierte Wert x1' aus dem zweiten Vektorquantisierer 510 dekodiert werden soll, benötigt die Sprachsignaldekodiervorrichtung den quantisierten Wert x&sub1;' aus der ersten Quantisiereinheit 500 nicht. Es werden jedoch Indexdaten aus der ersten Quantisiereinheit 500 und der zweiten Quantisiereinheit 510 benötigt.
- Im folgenden werden die Lernmethode und die Codebuch-Suche in dem Vektorquantisierabschnitt 511 erläutert.
- Was die Lernmethode betrifft, so wird der Quantisierungsfehlervektor y in acht Vektoren y&sub0; bis y&sub7; niedriger Ordnung zerlegt, wobei das Gewicht W' benutzt wird, wie dies in Tabelle 2 dargestellt ist. Wenn das Gewicht W' eine Matrix ist mit unterabgetasteten 44-Punkt-Werten als Diagonalelemente
- wird das Gewicht W' in die folgenden acht Matrizen zerlegt:
- Die Größen y und W', die so in niedrige Dimensionen zerlegt sind, werden mit Yj bzw. wi' bezeichnet, wobei 1 ≤ i ≤ 8.
- Das Verzerrungsmaß E ist definiert als
- (37) E = wl'(yi - s) ²
- Der Codebuch-Vektor s ist das Ergebnis der Quantisierung von yj. Es wird ein solcher Vektor des Codebuchs gesucht, der das Verzerrungsmaß E minimiert.
- Bei dem Codebuch-Lernen findet ferner eine Gewichtung unter Verwendung des allgemeinen Lloyd-Algorithmus (GLA) statt. Zunächst wird die optimale Schwerpunktbedingung für das Lernen erläutert. Wenn M Eingangsvektoren y vorhanden sind, die den Codevektor s als optimales Quantisierungsergebnis gewählt haben, und die Trainingsdaten yk sind, ist der Erwartungswert J der Verzerrung durch die Gleichung (38) gegeben, die das Zentrum der Verzerrung bei der Gewichtung für alle Rahmen k minimiert:
- Durch Auflösen erhält man
- Wenn man die transponierten Werte beider Seiten nimmt, erhält man
- Deshalb ist
- In der obigen Gleichung (39) ist s ein optimaler repräsentativer Vektor und repräsentiert die optimale Schwerpunktbedingung.
- Für die optimale Kodierbedingung genügt es, den Wert für s zu suchen, der den Wert von wl'(yi - s) ² minimiert. Während der Suche muß wl' nicht das gleiche sein wie wl' während des Lernens und kann eine nicht gewichtete Matrix sein:
- Wenn man die Vektorquantisiereinheit 116 in dem Sprachsignalkodierer mit Zweistufen- Vektorquantisiereinheiten aufbaut, kann die Bitzahl des Ausgangsindex variabel gehalten werden.
- Die zweite Kodiereinheit 120, die den oben beschriebenen CELP-Kodierer-Aufbau gemäß der Erfindung benutzt, besteht aus mehrstufigen Vektorquantisierprozessoren, wie dies in Fig. 9 dargestellt ist. Diese mehrstufigen Vektorquantisierprozessoren sind in dem Ausführungsbeispiel von Fig. 9, in dem eine Anordnung dargestellt ist, die für den Fall, daß die Übertragungsbitrate zwischen z. B. 2 kbps und 6 kbps umgeschaltet werden kann, die Übertragungsbitrate 6 kbps beherrscht, als zweistufige Kodiereinheiten 120&sub1;, 120&sub2; ausgebildet. Außerdem kann die Ausgabe des Form- und Verstärkungsmaßindex zwischen 23 Bit/5 ms und 15 Bit/5 ms umgeschaltet werden. Fig. 10 zeigt den Verarbeitungsfluß in der Anordnung von Fig. 9.
- In der Anordnung von Fig. 9 entspricht eine LPC-Analysierschaltung 302 der LPC-Analysierschaltung 132 von Fig. 3, während eine LSP-Parameter-Quantisierschaltung 303 dem Schaltungsteil von der α/LSP-Wandlerschaltung 133 bis zu der LSP/α-Wandlerschaltung 137 von Fig. 3 entspricht. Ein wahrnehmungsgerecht gewichtendes Filter 304 entspricht der Filterrechenschaltung 139 mit wahrnehmungsgerechter Gewichtung und dem wahrnehmungsgerecht gewichtenden Filter 125 von Fig. 3. Deshalb wird in Fig. 9 einem Anschluß 305 ein Ausgangssignal zugeführt, das das gleiche ist wie das der LSP/α-Wandlerschaltung 137 der ersten Kodiereinheit 113 von Fig. 3, während einem Anschluß 307 ein Ausgangssignal zugeführt wird, das das gleiche ist wie das Ausgangssignal der wahrnehmungsgerecht gewichtenden Filterrechenschaltung 139 vor Fig. 3, und einem Anschluß 306 ein Ausgangssignal zugeführt wird, das das gleiche ist wie das Ausgangssignal des wahrnehmungsgerecht gewichtenden Filters 125 von Fig. 3. Im Unterschied zu dem wahrnehmungsgerecht gewichtenden Filter 125 erzeugt das wahrnehmungsgerecht gewichtende Filter 304 von Fig. 9 jedoch das wahrnehmungsgerecht gewichtete Signal, das das gleiche Signal ist wie das Ausgangssignal des wahrnehmungsgerecht gewichtenden Filters 125 von Fig. 3, wobei anstelle des Ausgangssignals der LSP/α-Wandlerschaltung 137 die Eingangssprachdaten und der Vorquantisierungs-α-Parameter benutzt wird.
- In den zweistufigen zweiten Kodiereinheiten 120¹ und 120² von Fig. 9 entsprechen die Subtrahierer 313 und 323 dem Subtrahierer 123 von Fig. 3, während die Abstandsberechnungsschaltungen 314, 324 der Abstandsberechnungsschaltung 124 von Fig. 3 entsprechen. Die Verstärkungsschaltungen 311, 321 entsprechen der Verstärkungsschaltung 126 von Fig. 3, während die stochastischen Codebücher 310, 320 und die Verstärkungsfaktor-Codebücher 315, 325 dem Rausch-Codebuch 121 von Fig. 3 entsprechen.
- In der Anordnung von Fig. 9 zerlegt die LPC-Analysierschaltung 302 in dem Schritt S1 von Fig. 10 die dem Eingang 301 zugeführten Eingangssprachdaten x in Rahmen, wie dies oben beschrieben wurde, um eine LPC-Analyse durchzuführen und einen α-Parameter zu ermitteln. Die LSP-Parameter-Quantisierschaltung 303 wandelt den α-Parameter aus der LPC- Analysierschaltung 302 in LSP-Parameter um, um die LSP-Parameter zu quantisieren. Die quantisierten LSP-Parameter werden interpoliert und in α-Parameter umgewandelt. Die LSP-Parameter-Quantisierschaltung 303 generiert aus den aus den quantisierten LSP-Parametern umgewandelten α-Parametern, d. h. den quantisierten LSP-Parametern, eine LPC- Synthesefilterfunktion 1/H(z) und sendet die generierte LPC-Synthesefilter-Funktion 1/H(z) über den Anschluß 305 zu dem wahrnehmungsgerecht gewichtenden Synthesefilter 312 der zweiten Kodiereinheit 120&sub1; der ersten Stufe.
- Das wahrnehmungsgerecht gewichtende Filter 304 ermittelt für die wahrnehmungsgerechte Gewichtung mit dem α-Parameter aus der LPC-Analysierschaltung 302, d. h. dem Vorquantisierungs-α-Parameter Daten, die die gleichen sind wie diejenigen, die von der wahrnehmungsgerecht gewichtenden Filterrechenschaltung 139 von Fig. 3 erzeugt werden. Diese Gewichtungsdaten werden über den Anschluß 307 dem wahrnehmungsgerecht gewichtenden Synthesefilter 312 der zweiten Kodiereinheit 1201 der ersten Stufe. Das wahrnehmungsgerecht gewichtende Filter 304 generiert aus den Eingangssprachdaten und dem Vorquantisierungs-α-Parameter das wahrnehmungsgerecht gewichtete Signal, das das gleiche ist wie das von dem wahrnehmungsgerecht gewichtenden Filter 125 von Fig. 3 ausgegebene Signal, wie dies in dem Schritt S2 von Fig. 10 dargestellt ist. Das heißt, zunächst wird aus dem Vorquantisierungs-α-Parameter die LPC-Synthesefilterfunktion W(z) erzeugt. Die so erzeugte Filterfunktion W(z) wird auf die Eingangssprachdaten x angewendet, um Xk zu erzeugen, das als wahrnehmungsgerecht gewichtetes Signal über den Anschluß 306 dem Subtrahierer 303 der zweiten Kodiereinheit 120&sub1; der ersten Stufe zugeführt wird.
- In der zweiten Kodiereinheit 120&sub1; der ersten Stufe wird ein repräsentativer Ausgangswert des stochastischen Codebuchs 310 des 9-Bit-Formindex-Ausgangssignals der Verstärkungsschaltung 311 zugeführt, die dann den repräsentativen Ausgangswert des stochastischen Codebuchs 310 mit dem (skalaren) Verstärkungsfaktor aus dem Verstärkungsfaktor- Codebuch 315 der 6-Bit-Verstärkungsindex-Ausgangsgröße multipliziert. Der in der Verstärkungsschaltung 311 mit dem Verstärkungsfaktor multiplizierte repräsentative Ausgangswert, wird dem wahrnehmungsgerecht gewichtenden Synthesefilter 312 mit 1/A(z) = (1/H(z))*W(z) zugeführt. Das gewichtende Synthesefilter 312 sendet die von ihm ausgegebene 1/A(z) Antwort auf ein Null-Eingangssignal an den Subtrahierer 313, wie dies in dem Schritt S3 von Fig. 10 angegeben ist. Der Subtrahierer 313 subtrahiert die von dem wahrnehmungsgerecht gewichtenden Synthesefilter 312 ausgegebene Antwort auf das Null-Eingangssignal und das wahrnehmungsgerecht gewichtete Signal Xk aus dem wahrnehmungsgerecht gewichtenden Filter 304 und gibt die resultierende Differenz oder den Fehler als Referenzvektor r aus. Während der Suche in der zweiten Kodiereinheit 120&sub1; der ersten Stufe wird dieser Referenzvektor r der Abstandsberechnungsschaltung 314 zugeführt, die den Abstand berechnet. Der Formvektor s und der Verstärkungsgrad g, die die Energie E des Ouantisierungsfehler minimieren, werden gesucht, wie dies in dem Schritt S4 von Fig. 10 angegeben ist. Hier befindet sich 1 /A(z) im Nullzustand. Das heißt, wenn der in dem Codebuch mit 1/A(z) synthetisierte Formvektor s in dem Nullzustand gleich ssyn ist, werden der Formvektor s und die Verstärkung g gesucht, die die folgende Gleichung (40) minimieren:
- (40) E = (r(n) - gssyn(n))²
- Obwohl s und g, die die Energie E des Ouantisierungsfehlers minimieren, voll gesucht werden können, kann auch die folgende Methode benutzt werden, um den Rechenumfang zu reduzieren.
- Die erste Methode besteht darin, den Formvektor s zu suchen, der Es minimiert, das durch die folgende Gleichung (41) definiert ist:
- Aus s, das durch die erste Methode gewonnen wird, ergibt sich der ideale Verstärkungsfaktor, wie dies durch die folgende Gleichung (42) angegeben ist:
- Deshalb wird als zweite Methode ein solches g gesucht, das die Gleichung (43) minimiert:
- (43) Eg = (gref - g)²
- Da E eine quadratische Funktion von g ist, wird E durch einen Wert g minimiert, der Eg minimiert.
- Aus s und g, die nach der ersten und der zweiten Methode gewonnen werden, kann der Quantisierungsfehlervektor e nach der folgenden Gleichung (44) berechnet werden:
- (44) e = r - gssyn
- Dies wird wie in der ersten Stufe als Referenz der zweiten Kodiereinheit 120&sub2; der zweiten Stufe quantisiert.
- Das heißt, die den Anschlüssen 305 und 307 zugeführten Signale werden direkt von dem wahrnehmungsgerecht gewichtenden Synthesefilter 312 der zweiten Kodiereinheit 120&sub1; der ersten Stufe einem wahrnehmungsgerecht gewichtenden Synthesefilter 322 der zweiten Kodiereinheit 120&sub2; der zweiten Stufe zugeführt. Der von der zweiten Kodiereinheit 120 der ersten Stufe ermittelte Quantisierungsfehlervektor e wird einem Subtrahierer 323 der zweiten Kodiereinheit 120&sub2; der zweiten Stufe zugeführt.
- In dem Schritt S5 von Fig. 10 findet eine ähnliche Verarbeitung statt wie in dem ersten Stadium der zweiten Kodiereinheit 120&sub2; der zweiten Stufe. Das heißt, es wird ein repräsentativer Ausgangswert des stochastischen Codebuchs 320 der 5-Bit-Formindex-Ausgangsgröße der Verstärkungsschaltung 321 zugeführt, in der dieser repräsentative Ausgangswert des Codebuchs 320 mit dem Verstärkungsgrad aus dem Verstärkungsgrad-Codebuch 325 mit der 3-Bit-Verstärkungsindex-Ausgangsgröße multipliziert wird. Das Ausgangssignal des gewichteten Synthesefilters 322 wird dem Subtrahierer 323 zugeführt, der die Differenz zwischen dem Ausgangssignal des wahrnehmungsgerecht gewichtenden Synthesefilters 322 und dem Quantisierungsfehlervektor e der ersten Stufe ermittelt. Diese Differenz wird einer Abstandsberechnungsschaltung 324 für die Abstandsberechnung zugeführt, um den Formvektor s und den Verstärkungsgrad g zu suchen, der die Energie E des Quantisierungsfehlers minimiert.
- Das Formindex-Ausgangssignal des stochastischen Codebuchs 310 und das Verstärkungsindex-Ausgangssignal des Verstärkungsgrad-Codebuch 315 in der zweiten Kodiereinheit 120&sub1; der ersten Stufe und das Index-Ausgangssignal des stochastischen Codebuchs 320 und das Index-Ausgangssignal des Verstärkungsgrad-Codebuchs 325 der zweiten Kodiereinheit 120&sub2; der zweiten Stufe werden einem Umschalter 330 für die Index-Ausgabe zugeführt. Wenn die zweite Kodiereinheit 120 23 Bit ausgibt, werden die Indexdaten der stochastischen Codebücher 310, 320 und der Verstärkungsgrad-Codebücher 315, 325 der zweiten Kodiereinheiten 120&sub1;, 120&sub2; der ersten Stufe und der zweiten Stufe summiert und ausgegeben. Falls 15 Bits ausgegeben werden, werden die Indexdaten des stochastischen Codebuchs 310 und des Verstärkungsgrad-Codebuchs 315 der zweiter Kodiereinheit 120&sub1; der ersten Stufe ausgegeben.
- Der Filterzustand wird dann aktualisiert, um das Antwort-Ausgangssignal für das Null-Eingangssignal zu berechnen, wie dies in dem Schritt S6 dargestellt ist.
- In dem vorliegenden Ausführungsbeispiel ist die Zahl der Index-Bits der zweiten Kodiereinheit 120&sub2; der zweiten Stufe für den Formvektor klein, z. B. gleich 5, während sie für den Verstärkungsgrad klein, z. B. gleich 3, ist. Wenn in diesem Fall keine geeignete Form und kein geeigneter Verstärkungsgrad in dem Codebuch vorhanden sind, besteht die Gefahr, daß der Quantisierungsfehler größer wird, statt kleiner zu werden.
- Obwohl für den Verstärkungsgrad Null vorgesehen sein kann, um diesen Fehler zu verhindern, sind nur drei Bits für den Verstärkungsgrad vorhanden. Wenn eines von ihnen auf Null gesetzt wird, verschlechtert sich die Leistung des Quantisierers signifikant. In Anbetracht dieser Tatsache ist für den Formvektor, dem eine größere Bitzahl zugeordnet wurde, ein Vektor vorgesehen, der nur aus Nullen besteht. Die oben erwähnte Suche wird dann mit Ausschluß des Vektors mit lauter Nullen durchgeführt, und der Vektor mit lauter Nullen wird dann gewählt, wenn der Quantisierungsfehler sich letztlich vergrößert hat. Der Verstärkungsgrad ist beliebig. Dadurch wird es möglich, ein Anwachsen des Quantisierungsfehlers in der zweiten Kodiereinheit 120&sub2; der zweiten Stufe zu verhindern.
- Obwohl oben die zweistufige Anordnung beschrieben wurde, kann, die Zahl der Stufen auch größer als 2 sein. Wenn in einem solchen Fall die Vektorquantisierung in der Suche der er¬ sten Stufe mit geschlossener Schleife zum Abschluß gekommen ist, wird die Quantisierung der N-ten Stufe, wobei 2 = N, mit dem Quantisierungsfehler der (N - 1)-ten Stufe als Referenz-Eingangssignal durchgeführt, und der Quantisierungsfehler der N-ten Stufe wird als Referenz-Eingangssignal für die (N + 1)-te Stufe benutzt.
- Aus Fig. 9 und 10 ist ersichtlich, daß durch die Verwendung von Mehrstufen-Vektorquantisierern für die zweite Kodiereinheit der Rechenumfang im Vergleich zu dem Aufwand bei der geradlinigen Vektorquantisierurig mit der gleichen Bitzahl oder mit der Benutzung eines konjugierten Codebuchs kleiner wird. Insbesondere bei der CELP-Kodierung, bei der die Vektorquantisierung der Zeitachsen-Wellenform mit Suche in geschlossener Schleife durch das Analyse-/Synthese-Verfahren angewendet wird, ist eine kleinere Zahl von Suchoperationen kritisch. Außerdem kann die Bitzahl leicht umgeschaltet werden, indem man zwischen der Benutzung beider Index-Ausgangssignale der zweiten Kodiereinheiten 120&sub1;, 120&sub2; der beiden Stufen und der Benutzung nur des Ausgangssignals der zweiten Kodiereinheit 120&sub1; der ersten Stufe und ohne Benutzung des Ausgangssignals der zweiten Kodiereinheit 120&sub2; der zweiten Stufe umschaltet. Wenn die Index-Ausgangssignale der zweiten Kodiereinheiten 120&sub1;, 120&sub2; der ersten Stufe und der zweiten Stufe kombiniert und ausgegeben werden, kann der Dekodierer die Konfiguration ohne weiteres beherrschen, indem eines der Index- Ausgangssignale ausgewählt wird. Das heißt, der Dekodierer kann die Konfiguration mühe¬ los beherrschen, indem der z. B. mit 6 kbps kodierte Parameter mit Hilfe eines Dekodierers dekodiert wird, der mit 2 kbps arbeitet. Falls in dem Form-Codebuch der zweiten Kodiereinheit 120&sub2; der zweiten Stufe der Nullvektor enthalten ist, kann eine Vergrößerung des Quantisierungsfehlers verhindert werden, so daß die Leistung weniger stark beeinträchtigt wird als dann, wenn Null zu dem Verstärkungsgrad addiert wird.
- Der Codevektor des stochastischen Codebuchs kann z. B. durch Begrenzen des sog. Gaußschen Rauschens generiert werden. Speziell kann das Codebuch generiert werden, indem das Gaußsche Rauschen erzeugt wird, das Gaußsche Rauschen mit einem geeigneten Schwellwert begrenzt und das begrenzte Gaußsche Rauschen normiert wird.
- Es gibt jedoch zahlreiche Lauttypen in der Sprache. Das Gaußsche Rauschen kann z. B. Sprache mit Konsonantenklängen, die in der Nähe des Rauschens liegen, wie "sa, shi, su, se und so" bewältigen, während das Gaußsche Rauschen Sprache mit scharf ansteigenden Konsonanten, wie "pa, pi, pu, pe und po" nicht bewältigen kann. Gemäß vorliegender Erfindung wird das Gaußsche Rauschen auf einige der Codevektoren angewendet, während der übrige Teil der Codevektoren durch Lernen behandelt werden, so daß sowohl Konsonanten mit scharf ansteigenden Konsonantenklängen als auch Konsonantenklänge, die nahe bei dem Rauschen liegen, bewältigt werden können. Wenn z. B. der Schwellwert erhöht wird, erhält man einen Vektor, der verschiedene größere Spitzenwerte besitzt, während einer Erniedrigung des Schwellwerts der Codevektor dem Gaußschen Rauschen angenähert ist. Auf diese Weise ist es durch Vergrößern der Variation des Begrenzungsschwellwerts möglich, Konsonanten mit scharf ansteigenden Anteilen, wie "pa, pi, pu, pe und po" oder Konsonanten in der Nähe des Rauschens, wie "sa, shi, su, se und so" zu beherrschen und dadurch die Klarheit zu erhöhen. Fig. 11 zeigt das Auftreten des Gaußschen Rauschens und das begrenzte Rauschen als durchgezogene bzw. als gestrichelte Linie. Fig. 11A und 11B zeigen das Rauschen mit dem Begrenzungsschwellwert 1,0, d. h. mit einem größeren Schwellwert, bzw.. das Rauschen mit dem Begrenzungsschwellwert 0,4, d. h. mit einem kleineren Schwellwert. Man erkennt aus Fig. 11A und 11B, daß man einen Vektor mit einigen größeren Spitzen erhält, wenn der Schwellwert größer gewählt wird, während das Rauschen sich dem Gaußschen Rauschen annähert, wenn der Schwellwert kleiner gewählt wird.
- Um dies zu erreichen, wird ein Anfangs-Codebuch vorbereitet, indem das Gaußsche Rauschen begrenzt wird und eine geeignete Anzahl von nicht zu lernenden Codevektoren gesetzt werden. Die nicht zu lernenden Codevektoren werden in der Reihenfolge wachsenden Varianzwerts ausgewählt, um Konsonanten zu bewältigen, die nahe bei dem Rauschen liegen, wie "sa, shi, su, se und so". Die durch Lernen ermittelten Vektoren benutzen für das Lernen den LBG-Algorithmus. Die Kodierung unter der Bedingung nächster Nachbarschaft benutzt sowohl den festen Codevektor als auch den durch Lernen gewonnenen Codevektor. In der Schwerpunktbedingung wird nur der für das Lernen gesetzte Codevektor aktualisiert. So kann der für das Lernen gesetzte Codevektor scharf ansteigende Konsonanten, wie "pa, pi, pu, pe und po" bewältigen.
- Durch normales Lernen kann ein optimaler Verstärkungsgrad für diese Codevektoren erlernt werden.
- Fig. 12 zeigt das Flußdiagramm für den Aufbau des Codebuchs durch Begrenzen des Gaußschen Rauschens.
- In Fig. 12 wird in dem Schritt S10 die Zahl n der Lerndurchgänge für die Initialisierung auf n = 0 gesetzt. Mit einem Fehler D&sub0; = ∞ wird die maximale Zahl nmax der Lerndurchgänge gesetzt, und es wird ein Schwellwert ε eingestellt, der die Bedingung für das Ende des Lernens setzt.
- In dem nächsten Schritt S11 wird das Anfangs-Codebuch durch Begrenzen des Gaußschen Rauschens erzeugt. In dem Schritt S12 wird ein Teil der Codevektoren als nicht zu lernende Codevektoren festgelegt.
- In dem nächsten Schritt S13 wird das obige Codebuch kodiert. In dem Schritt S14 wird der Fehler berechnet. In dem Schritt S15 wird geprüft, ob (Dn-1 - Dn)/Dn < ε oder n = nmax. Wenn das Ergebnis JA lautet, wird die Verarbeitung abgeschlossen. Wenn das Ergebnis NEIN lautet, geht die Verarbeitung weiter zu dem Schritt S16.
- In dem Schritt S16 werden die Codevektoren verarbeitet, die nicht für die Kodierung benutzt werden. In dem nächsten Schritt S17 werden die Codebücher aktualisiert. In dem Schritt S18 wird die Zahl n der Lerndurchgänge inkrementiert, bevor zu dem Schritt S13 zurückgekehrt wird.
- Die oben beschriebene Signalkodier- und Signaldekodiervorrichtung kann als Sprach-Kodierbuch benutzt werden, das z. B. in einem tragbaren Kommunikationsendgerät oder in einem tragbaren Telefonapparat eingesetzt wird, wie sie in Fig. 13 und 14 dargestellt sind.
- Fig. 13 zeigt die Sendeseite eines tragbaren Endgeräts, bei dem eine Sprachkodiereinheit 160 mit dem in Fig. 1 und 3 dargestellten Aufbau benutzt wird. Die von einem Mikrofon 161 aufgenommenen Sprachsignale werden in einem Verstärker 162 verstärkt und in einem Analog-/Digital-Wandler (A/D-Wandler) 163 in digitale Signale umgewandelt, die der Sprachkodiereinheit 160 mit dem in Fig. 1 und 3 dargestellten Aufbau zugeführt werden. Die digitalen Signale aus dem A/D-Wandler 160 werden dem Eingang 101 zugeführt. Die Sprachkodiereinheit 160 führt eine Kodierung durch, wie sie in Verbindung mit Fig. 1 und 3 erläutert wurde. Die Ausgangssignale an den Ausgängen von Fig. 1 und 2 werden als Ausgangssignale der Sprachkodiereinheit 160 einer Übertragungskanalkodiereinheit 164 zugeführt, die die zugeführten Signale einer Kanalkodierung unterzieht. Die Ausgangssignale der Übertragungskanalkodiereinheit 164 werden einer Modulationsschaltung 165 zugeführt, in dieser moduliert und dann über einen Digital-/Analog-Wandler (D/A-Wandler) 166 und einem HF- Verstärker 167 einer Antenne 168 zugeführt.
- Fig. 14 zeigt die Empfangsseite eines tragbaren Endgeräts, das eine Sprachdekodiereinheit 260 mit dem in Fig. 4 dargestellten Aufbau verwendet. Die von der Antenne 261 in Fig. 14 empfangenen Sprachsignale werden in einem HF-Verstärker 262 verstärkt und über einen Analog-/Digital-Wandler (A/D-Wandler) 263 einer Demodulatorschaltung 264 zugeführt, die das demodulierte Signal einer Übertragungskanaldekodiereinheit 265 zuführt. Das Ausgangssignal der Dekodiereinheit 265 wird einer Sprachdekodiereinheit 260 mit dem in Fig. 2 und 4 dargestellten Aufbau zugeführt. Die Sprachdekodiereinheit 260 dekodiert die Signale, wie dies in Verbindung mit Fig. 2 und 4 erläutert wurde. Das Ausgangssignal an dem Ausgang 201 von Fig. 2 und 4 wird als Ausgangssignal der Sprachdekodiereinheit 260 einem Digital-/Analog-Wandler (D/A-Wandler) 266 zugeführt. Das analoge Sprachsignal aus dem D/A-Wandler 266 wird einem Lautsprecher 268 zugeführt.
Claims (11)
1. Sprachsignalkodierverfahren zum Unterteilen eines Eingangssprachsignals auf der
Zeitachse in Blöcke als Einheiten und zum Kodieren des resultierenden Signals, mit dem
Verfahrensschritt:
Ermitteln von Kurzzeit-Prädiktionsresten zumindest für einen stimmhaften Teil des
Eingangssprachsignals,
gekennzeichnet durch die weiteren Verfahrensschritte:
Ermitteln von Sinus-Analyse-Kodierparametern durch Kodieren der
Kurzzeit-Prädiktionsreste und
Durchführen einer wahrnehmungsgerecht gewichteten Vektorquantisierung der Sinus-
Analyse-Kodierparameter.
2. Sprachsignalkodierverfahren nach Anspruch 1, mit dem weiteren Verfahrensschritt:
Kodieren des stimmlosen Teils des Eingangssprachsignals durch Wellenformkodierung.
3. Sprachsignalkodierverfahren nach Anspruch 1 oder 2, bei dem geprüft wird, ob das
Eingangssprachsignal stimmhaft oder stimmlos ist, und auf der Basis der Prüfungsergebnisse
der als stimmhaft ermittelte Teil des Eingangssprachsignals mit der genannten
Sinus-Analyse-Kodierung verarbeitet wird und der als stimmlos ermittelte Teil des
Eingangssprachsignals durch Suche des optimalen Vektor in geschlossener Schleife unter Verwendung des
Sinus-Analyse-Kodierverfahrens vektorquantisiert wird.
4. Sprachsignalkodierverfahren nach Anspruch 1, 2 oder 3, bei dem Daten, die eine
spektrale Hüllkurve repräsentieren, die als Sinus-Analyse-Kodierparameter benutzt wird, der
wahrnehmungsgerecht gewichteten Vektorquantisierung unterzogen werden.
5. Sprachsignalkodierverfahren nach einem der Vorhergehenden Ansprüche, das wenigstens
umfaßt:
einen ersten Vektorquantisierungsschritt und
einen zweiten Vektorquantisierungsschritt zum Ouantisieren des bei, der ersten
Vektorquantisierung erzeugten Quantierungsfehlervektors.
6. Sprachsignalkodierverfahren nach Anspruch 5, bei dem für eine niedrige Bitrate das
Ausgangssignal des ersten Vektorquantisierungsschritts herausgegriffen wird, und bei dem für
eine hohe Bitrate das Ausgangssignal des ersten Vektorquantisierungsschritts und das
Ausgangssignal des zweiten Vektorquantisierungsschritts herausgegriffen werden.
7. Sprachkodiergerät zum Unterteilen eines Eingangssprachsignals auf der Zeitachse in
Blöcke als Einheiten und zum Kodieren des resultierenden Signals,
mit einer Einrichtung (111) zum Ermitteln von Kurzzeit-Prädiktionsresten zumindest für
einen stimmhaften Teil des Eingangssprachsignals,
gekennzeichnet durch
eine Einrichtung (114) zum Ermitteln von Sinus-Analyse-Kodierparametern durch
Kodieren der Kurzzeit-Prädiktionsreste und
eine Einrichtung (116) zur Durchführung einer wahrnehmungsgerecht gewichteten
Vektorquantisierung an den Sinus-Analyse-Kodierparametern.
8. Sprachkodiergerät nach Anspruch 7, bei dem die Einrichtung (116) zur Durchführung einer
wahrnehmungsgerecht gewichteten, mehrstufigen Vektorquantisierung aufweist:
eine erste Vektorquantisierungseinrichtung (500) und
eine zweite Quantisierungseinrichtung (510) zum Quantisieren des bei der ersten
Vektorquantisierung in der ersten Vektorquantisierungseinrichtung (500) erzeugten
Quantierungsfehlervektors.
9. Sprachkodiergerät nach Anspruch 8, bei dem für eine niedrige Bitrate das Ausgangssignal
der ersten Vektorquantisierungseinrichtung (500) herausgegriffen wird, und bei dem für eine
hohe Bitrate das Ausgangssignal der ersten Vektorquantisierungseinrichtung (500) und das
Ausgangssignal der zweiten Vektorquantisierungseinrichtung (510) herausgegriffen werden.
10. Sprachkodiergerät zum Unterteilen eines Eingangssprachsignals aufs der Zeitachse in
Blöcke als Einheiten und zum Kodierer des resultierenden Signals,
mit einer Einrichtung (111) zum Ermitteln von Kurzzeit-Prädiktionsresten zumindest für
einen stimmhaften Teil des Eingangssprachsignals,
gekennzeichnet durch
eine Einrichtung (114) zum Ermitteln von Sinus-Analyse-Kodierparametern durch
Kodieren der Kurzzeit-Prädiktionsreste,
eine Einrichtung (116) zur Durchführung einer wahrnehmungsgerecht gewichteten
Vektorquantisierung der Sinus-Analyse-Kodierparameter und
eine Einrichtung (120) zum Kodieren eines stimmlosen Teil des Eingangssprachsignals
durch Wellenformkodierung.
11. Tragbares Funkendgerät
mit einer Verstärkereinrichtung (162) zum Verstärken von Eingangssprachsignalen,
mit einer A/D-Wandlereinrichtung (163) für die A/D-Wandlung der modulierten Signale,
mit einer Sprachkodiereinrichtung (160) zum Kodieren des Sprachausgangssignals der
A/D-Wandlereinrichtung (163),
mit einer Übertragungsweg-Kodiereinrichtung (164) für die Kanalkodierung des
resultierenden kodierten Signals,
mit einer Modulatoreinrichtung (165) zum Modulieren des Ausgangssignals der
Übertragungsweg-Kodiereinrichtung (164),
mit einer D/A-Wandlereinrichtung (166) für die D/A-Wandlung des resultierenden
modulierten Signals und
mit einer Verstärkereinrichtung (167) zum Verstärken des Signals aus der
D/A-Wandlereinrichtung (166) für die Zuführung des resultierenden verstärkten Signals zu einer Antenne
(168),
wobei die Sprachkodiereinrichtung ferner aufweist:
eine Einrichtung (111) zum Ermitteln von Kurzzeit-Prädiktionsresten eines stimmhaften
Teils des Eingangssprachsignals,
eine Einrichtung (114) zum Ermitteln von Sinus-Analyse-Kodierparametern durch
Kodieren der Kurzzeit-Prädiktionsreste,
eine Einrichtung (116) zur Durchführung einer wahrnehmungsgerecht gewichteten
Vektorquantisierung an den Sinus-Analyse-Kodierparametern und
eine Einrichtung (120) zum Kodieren eines stimmlosen Teils des Eingangssprachsignals
durch Wellenformkodierung.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27941295A JP4005154B2 (ja) | 1995-10-26 | 1995-10-26 | 音声復号化方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69625880D1 DE69625880D1 (de) | 2003-02-27 |
DE69625880T2 true DE69625880T2 (de) | 2003-10-30 |
Family
ID=17610739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69625880T Expired - Lifetime DE69625880T2 (de) | 1995-10-26 | 1996-10-25 | Verfahren und Vorrichtung zur Sprachkodierung |
Country Status (6)
Country | Link |
---|---|
US (1) | US5848387A (de) |
EP (1) | EP0772186B1 (de) |
JP (1) | JP4005154B2 (de) |
KR (1) | KR100469224B1 (de) |
CN (1) | CN100414605C (de) |
DE (1) | DE69625880T2 (de) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2729246A1 (fr) * | 1995-01-06 | 1996-07-12 | Matra Communication | Procede de codage de parole a analyse par synthese |
JP4040126B2 (ja) * | 1996-09-20 | 2008-01-30 | ソニー株式会社 | 音声復号化方法および装置 |
JP3849210B2 (ja) * | 1996-09-24 | 2006-11-22 | ヤマハ株式会社 | 音声符号化復号方式 |
JPH10124092A (ja) * | 1996-10-23 | 1998-05-15 | Sony Corp | 音声符号化方法及び装置、並びに可聴信号符号化方法及び装置 |
JP2001500285A (ja) * | 1997-07-11 | 2001-01-09 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 改良した音声符号器を備えた送信機及び復号器 |
JPH11224099A (ja) * | 1998-02-06 | 1999-08-17 | Sony Corp | 位相量子化装置及び方法 |
JPH11331305A (ja) | 1998-05-08 | 1999-11-30 | Sony Corp | 送信装置および送信方法、受信装置および受信方法、並びに提供媒体 |
TW376611B (en) * | 1998-05-26 | 1999-12-11 | Koninkl Philips Electronics Nv | Transmission system with improved speech encoder |
JP4131052B2 (ja) | 1998-07-17 | 2008-08-13 | ソニー株式会社 | 撮像装置 |
US6199040B1 (en) * | 1998-07-27 | 2001-03-06 | Motorola, Inc. | System and method for communicating a perceptually encoded speech spectrum signal |
US6240386B1 (en) * | 1998-08-24 | 2001-05-29 | Conexant Systems, Inc. | Speech codec employing noise classification for noise compensation |
US6278385B1 (en) * | 1999-02-01 | 2001-08-21 | Yamaha Corporation | Vector quantizer and vector quantization method |
JP2000305599A (ja) * | 1999-04-22 | 2000-11-02 | Sony Corp | 音声合成装置及び方法、電話装置並びにプログラム提供媒体 |
US6298322B1 (en) * | 1999-05-06 | 2001-10-02 | Eric Lindemann | Encoding and synthesis of tonal audio signals using dominant sinusoids and a vector-quantized residual tonal signal |
FI116992B (fi) * | 1999-07-05 | 2006-04-28 | Nokia Corp | Menetelmät, järjestelmä ja laitteet audiosignaalin koodauksen ja siirron tehostamiseksi |
JP3365360B2 (ja) * | 1999-07-28 | 2003-01-08 | 日本電気株式会社 | 音声信号復号方法および音声信号符号化復号方法とその装置 |
US6574593B1 (en) * | 1999-09-22 | 2003-06-03 | Conexant Systems, Inc. | Codebook tables for encoding and decoding |
WO2001033548A1 (fr) * | 1999-10-29 | 2001-05-10 | Fujitsu Limited | Dispositif et procede de reglage du debit dans un systeme de codage de la parole a debit variable |
JP2003514263A (ja) * | 1999-11-10 | 2003-04-15 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | マッピング・マトリックスを用いた広帯域音声合成 |
US6499010B1 (en) * | 2000-01-04 | 2002-12-24 | Agere Systems Inc. | Perceptual audio coder bit allocation scheme providing improved perceptual quality consistency |
US6901362B1 (en) * | 2000-04-19 | 2005-05-31 | Microsoft Corporation | Audio segmentation and classification |
KR100348899B1 (ko) * | 2000-09-19 | 2002-08-14 | 한국전자통신연구원 | 캡스트럼 분석을 이용한 하모닉 노이즈 음성 부호화기 및부호화 방법 |
JP3997522B2 (ja) * | 2000-12-14 | 2007-10-24 | ソニー株式会社 | 符号化装置および方法、復号装置および方法、並びに記録媒体 |
JP3404016B2 (ja) * | 2000-12-26 | 2003-05-06 | 三菱電機株式会社 | 音声符号化装置及び音声符号化方法 |
JP3636094B2 (ja) * | 2001-05-07 | 2005-04-06 | ソニー株式会社 | 信号符号化装置及び方法、並びに信号復号装置及び方法 |
DE602004004950T2 (de) | 2003-07-09 | 2007-10-31 | Samsung Electronics Co., Ltd., Suwon | Vorrichtung und Verfahren zum bitraten-skalierbaren Sprachkodieren und -dekodieren |
KR100668300B1 (ko) * | 2003-07-09 | 2007-01-12 | 삼성전자주식회사 | 비트율 확장 음성 부호화 및 복호화 장치와 그 방법 |
US7523032B2 (en) * | 2003-12-19 | 2009-04-21 | Nokia Corporation | Speech coding method, device, coding module, system and software program product for pre-processing the phase structure of a to be encoded speech signal to match the phase structure of the decoded signal |
EP1735778A1 (de) * | 2004-04-05 | 2006-12-27 | Koninklijke Philips Electronics N.V. | Stereocodierungs- und decodierungsverfahren und vorrichtungen dafür |
US7805314B2 (en) * | 2005-07-13 | 2010-09-28 | Samsung Electronics Co., Ltd. | Method and apparatus to quantize/dequantize frequency amplitude data and method and apparatus to audio encode/decode using the method and apparatus to quantize/dequantize frequency amplitude data |
KR100883652B1 (ko) * | 2006-08-03 | 2009-02-18 | 삼성전자주식회사 | 음성 구간 검출 방법 및 장치, 및 이를 이용한 음성 인식시스템 |
CN101030377B (zh) * | 2007-04-13 | 2010-12-15 | 清华大学 | 提高声码器基音周期参数量化精度的方法 |
CN101075436B (zh) * | 2007-06-26 | 2011-07-13 | 北京中星微电子有限公司 | 带补偿的音频编、解码方法及装置 |
ES2629453T3 (es) * | 2007-12-21 | 2017-08-09 | Iii Holdings 12, Llc | Codificador, descodificador y procedimiento de codificación |
RU2554554C2 (ru) * | 2011-01-25 | 2015-06-27 | Ниппон Телеграф Энд Телефон Корпорейшн | Способ кодирования, кодер, способ определения величины периодического признака, устройство определения величины периодического признака, программа и носитель записи |
EP3079151A1 (de) * | 2015-04-09 | 2016-10-12 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audiocodierer und verfahren zur codierung eines audiosignals |
JP6730580B2 (ja) * | 2016-01-06 | 2020-07-29 | 株式会社Jvcケンウッド | 帯域拡張装置および帯域拡張方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5067158A (en) * | 1985-06-11 | 1991-11-19 | Texas Instruments Incorporated | Linear predictive residual representation via non-iterative spectral reconstruction |
US4797926A (en) * | 1986-09-11 | 1989-01-10 | American Telephone And Telegraph Company, At&T Bell Laboratories | Digital speech vocoder |
CA2054849C (en) * | 1990-11-02 | 1996-03-12 | Kazunori Ozawa | Speech parameter encoding method capable of transmitting a spectrum parameter at a reduced number of bits |
EP0588932B1 (de) * | 1991-06-11 | 2001-11-14 | QUALCOMM Incorporated | Vocoder mit veraendlicher bitrate |
JP3297749B2 (ja) * | 1992-03-18 | 2002-07-02 | ソニー株式会社 | 符号化方法 |
JPH05265496A (ja) * | 1992-03-18 | 1993-10-15 | Hitachi Ltd | 複数のコードブックを有する音声符号化方法 |
US5734789A (en) * | 1992-06-01 | 1998-03-31 | Hughes Electronics | Voiced, unvoiced or noise modes in a CELP vocoder |
US5495555A (en) * | 1992-06-01 | 1996-02-27 | Hughes Aircraft Company | High quality low bit rate celp-based speech codec |
JP2746039B2 (ja) * | 1993-01-22 | 1998-04-28 | 日本電気株式会社 | 音声符号化方式 |
EP0692881B1 (de) * | 1993-11-09 | 2005-06-15 | Sony Corporation | Quantisierungsvorrichtung und -verfahren, kodierer und kodierverfahren mit hoher effizienz, dekodierer und aufzeichnungsträger |
-
1995
- 1995-10-26 JP JP27941295A patent/JP4005154B2/ja not_active Expired - Lifetime
-
1996
- 1996-10-24 KR KR1019960048088A patent/KR100469224B1/ko not_active IP Right Cessation
- 1996-10-25 US US08/736,987 patent/US5848387A/en not_active Expired - Lifetime
- 1996-10-25 DE DE69625880T patent/DE69625880T2/de not_active Expired - Lifetime
- 1996-10-25 EP EP96307726A patent/EP0772186B1/de not_active Expired - Lifetime
- 1996-10-26 CN CNB961219920A patent/CN100414605C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1155725A (zh) | 1997-07-30 |
KR970022701A (ko) | 1997-05-30 |
US5848387A (en) | 1998-12-08 |
KR100469224B1 (ko) | 2005-06-27 |
CN100414605C (zh) | 2008-08-27 |
EP0772186B1 (de) | 2003-01-22 |
EP0772186A3 (de) | 1998-06-24 |
DE69625880D1 (de) | 2003-02-27 |
EP0772186A2 (de) | 1997-05-07 |
JPH09127989A (ja) | 1997-05-16 |
JP4005154B2 (ja) | 2007-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69625880T2 (de) | Verfahren und Vorrichtung zur Sprachkodierung | |
DE69619054T2 (de) | Verfahren und Vorrichtung zur Sprachkodierung | |
DE69625875T2 (de) | Verfahren und Vorrichtung zur Sprachkodierung und -dekodierung | |
DE69726525T2 (de) | Verfahren und Vorrichtung zur Vektorquantisierung und zur Sprachkodierung | |
DE60006271T2 (de) | Celp sprachkodierung mit variabler bitrate mittels phonetischer klassifizierung | |
DE69625874T2 (de) | Verfahren und Vorrichtung zur Wiedergabe von Sprachsignalen, zur Dekodierung, zur Sprachsynthese und tragbares Funkendgerät | |
DE69631728T2 (de) | Verfahren und Vorrichtung zur Sprachkodierung | |
DE69618422T2 (de) | Verfahren zur Sprachdekodierung und tragbares Endgerät | |
DE69729527T2 (de) | Verfahren und Vorrichtung zur Kodierung von Sprachsignalen | |
DE60121405T2 (de) | Transkodierer zur Vermeidung einer Kaskadenkodierung von Sprachsignalen | |
DE69420431T2 (de) | Sprachkodierungssystem | |
DE60029990T2 (de) | Glättung des verstärkungsfaktors in breitbandsprach- und audio-signal dekodierer | |
DE69133458T2 (de) | Verfahren zur Sprachquantisierung und Fehlerkorrektur | |
DE69529672T2 (de) | System zur sprachkodierung | |
DE69529356T2 (de) | Wellenforminterpolation mittels Zerlegung in Rauschen und periodische Signalanteile | |
DE69521164T2 (de) | System zum Kodieren und Dekodieren von Signalen | |
DE69915400T2 (de) | Vorrichtung zur Kodierung und Dekodierung von Audiosignalen | |
DE69322313T2 (de) | C.E.L.P. - Vocoder | |
DE69926821T2 (de) | Verfahren zur signalgesteuerten Schaltung zwischen verschiedenen Audiokodierungssystemen | |
DE60120766T2 (de) | Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen | |
DE69331425T2 (de) | Hochwirksames kodierungsverfahren | |
DE69614782T2 (de) | Verfahren und Einrichtung zur Wiedergabe von Sprachsignalen und Verfahren zu seiner Übertragung | |
DE3856211T2 (de) | Verfahren zur adaptiven Filterung von Sprach- und Audiosignalen | |
KR100535366B1 (ko) | 음성신호부호화방법및장치 | |
DE69613908T2 (de) | Stimmhaft/stimmlos-Klassifizierung von Sprache für Sprachdekodierung bei Verlust von Datenrahmen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |