DE69131779T2 - Sprachcodierung - Google Patents

Sprachcodierung Download PDF

Info

Publication number
DE69131779T2
DE69131779T2 DE69131779T DE69131779T DE69131779T2 DE 69131779 T2 DE69131779 T2 DE 69131779T2 DE 69131779 T DE69131779 T DE 69131779T DE 69131779 T DE69131779 T DE 69131779T DE 69131779 T2 DE69131779 T2 DE 69131779T2
Authority
DE
Germany
Prior art keywords
excitation
filter
memory
components
addresses
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
Application number
DE69131779T
Other languages
English (en)
Other versions
DE69131779D1 (de
Inventor
Daniel Kenneth Ipswich FREEMAN
Wing-Tak-Kenneth Ipswich WONG
Andrew Gordon Little Bealings DAVIS
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from GB909027757A external-priority patent/GB9027757D0/en
Priority claimed from GB919118214A external-priority patent/GB9118214D0/en
Application filed by British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of DE69131779D1 publication Critical patent/DE69131779D1/de
Application granted granted Critical
Publication of DE69131779T2 publication Critical patent/DE69131779T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/083Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being an excitation gain
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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
    • G10L2019/0001Codebooks
    • G10L2019/0013Codebook search algorithms
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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
    • G10L2019/0001Codebooks
    • G10L2019/0013Codebook search algorithms
    • G10L2019/0014Selection criteria for distances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Medicines Containing Material From Animals Or Micro-Organisms (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)

Description

  • Die vorliegende Anmeldung bezieht sich auf Verfahren und Vorrichtung für das Codieren von Sprachsignalen, insbesondere (aber nicht ausschließlich) um Linearanregungsprädiktionscodieren (excited linear predictive coding = LPC) durchzuführen, wobei Eingangssprache analysiert wird, um Parameter eines geeigneten zeitabhängigen Synthesefilters abzuleiten und aus einem "Codebuch" von Anregungssignalen die auszuwählen, die (nach geeigneter Skalierung) nacheinander an ein solches Synthesefilter angelegt die beste Approximation an die ursprüngliche Sprache ergeben. Die Filterparameter, Codeworte, die die Codebuch-Einträge identifizieren, und Gain-Parameter können an einen Empfänger gesendet werden, wo sie zur Synthese der empfangenen Sprache verwendet werden.
  • Üblicherweise wird bei solchen Systemen ein Langfrist-Predictor zusätzlich zu dem LPC-Filter verwendet. Dies wird erläutert mit Bezug auf 1 der beigefügten Zeichnungen, die ein Blockdiagramm eines Decodierers zeigt. Das codierte Signal umfaßt ein Codewort, das eine von einer Anzahl von gespeicherten Anregungspulssequenzen und einen Gain-Wert identifiziert; das Codewort wird bei dem Decoder verwendet, um die identifizierte Sequenz aus dem Codebuch-Speicher 1 auszulesen, was dann in einem Multiplizierer 2 multipliziert wird mit dem Gain-Wert. Anstatt direkt in einem Synthesefilter verwendet zu werden, wird dieses Signal dann in einem Addierer 3 zu einem vorhergesagten Signal hinzuaddiert, um das gewünschte zusammengesetzte Anregungssignal zu ergeben. Das vorhergesagte Signal wird durch Rückkopplung von früheren Werten der zusammengesetzten Anregungssignale über eine Leitung 4 mit variabler Verzögerung und einen Multiplizierer 5 erhalten, der durch einen Verzögerungsparameter und einen weiteren Gain-Wert in dem codierten Signal gesteuert wird.
  • Schließlich wird das zusammengesetzte Anregungssignal durch ein LPC-Filter 6 mit variablen Koeffizienten geschickt. Die Idee hinter der Verwendung des Langfristpredictors ist es, die inhärente Periodizität der erforderlichen Anregung (wenigstens während der stimmhaften Sprache) auszunutzen; ein früherer Abschnitt der Anregung bildet eine Vorhersage, zu der die Codebuch-Anregung hinzugefügt wird. Dieses reduziert den Umfang der Information, die in dem Codebuch enthalten sein muß, also wird Information über Änderungen der Anregung anstelle des absoluten Wertes übermittelt.
  • In "An efficient stochastically excited linear predictive coding algorithm for high quality low bit rate transmission of speech", Speech Communication, Band 7, Nr. 3, 1998 wird von Klein et al. ein codierungsangeregtes lineares Vorhersagecodierungsschema beschrieben. Mehrere Vereinfachungen werden in Betracht gezogen, um die Hauptverarbeitung zu reduzieren, die erforderlich ist, um die relevanten Codebuch-Einträge in solchen Systemen zu identifizieren. Insbesondere wird bei diesem System nach Stand der Technik die Berechnung des Skalarproduktes der Antwort eines Filters auf eine Anregungskomponente und die Antwort des Filters auf die gleiche oder eine andere Anregungskomponente vereinfacht, indem spezielle Formen der Anregungskomponenten und der endlichen Filterantwort verwendet werden.
  • Mit dieser Erfindung wird eine Vorrichtung geschaffen, die die Sprachverarbeitung zum Identifizieren der relevanten Codebuch-Einträge verbessert. Erfindungsgemäß wird eine Sprachcodierervorrichtung geschaffen mit:
    • (a) einer Vorrichtung zum Analysieren eines Eingangssprachsignals, um Parameter eines Synthesefilters zu bestimmen, und
    • (b) einer Vorrichtung zum Auswählen wenigstens einer Anregungskomponente aus mehreren möglichen Komponenten durch Bestimmen des Skalarproduktes der Antwort des Filters auf eine Anregungskomponente mit der Antwort des Filters auf dieselbe oder eine andere Anregungskomponente mit einer Vorrichtung zum Bilden des Produktes einer Filterantwortmatrix H und ihrer Transponierten H T, um die Produktmatrix H T H zu bilden, die dadurch gekennzeichnet ist, daß die Auswahlvorrichtung außerdem umfaßt:
    • (c) einen ersten Speicher zum Speichern von Elementen der Produktmatrix H T H,
    • (d) einen zweiten Speicher zum Speichern – bei Paaren aus einer Anregungskomponente und dergleichen oder einer anderen Anregungskomponente – der Adresse jedes Ortes in dem ersten Speicher, bei der ein Element der Produktmatrix enthalten ist, das mit Elementen beider Anregungskomponenten des Paares multipliziert werden muß, die nicht Null sind, und
    • (e) eine Vorrichtung zum Auffinden von Adressen in dem zweiten Speicher, um die Inhalte an den Orten in dem ersten Speicher zu finden, die durch diese adressiert sind, und um die aufgefundenen Inhalte zu addieren, um die Skalarprodukte zu bilden.
  • In einer bevorzugten Ausführungsform besteht die Anzahl möglicher Komponenten aus mehreren Teilmengen von Komponenten, wobei jede Komponente eine verschobene Version eines anderen Mitgliedes derselben Teilmenge ist,
    der zweite Speicher die Ortsadressen von Paaren einer repräsentativen Komponente aus einer Teilmenge von Anregungskomponenten und einer repräsentativen Komponente aus der gleichen oder einer anderen Teilmenge von Anregungskomponenten abspeichert und
    die Auffindungsvorrichtung dazu dient, die aufgefundenen Adressen in bezug auf andere Komponenten als die repräsentativen Komponenten vor dem Auffinden der Inhalte an den Orten in dem ersten Speicher zu modifizieren.
  • In einer weiteren Ausführungsform stellt die Auswahlvorrichtung eine Sequenz von Anregungskomponenten zusammen, und die Auffindungsvorrichtung dient dazu, die Skalarprodukte zu addieren.
  • Einige Ausführungsformen der Erfindung werden im folgenden als Beispiel mit Bezug auf die 2 bis 10 der beigefügten Zeichnungen beschrieben, bei denen:
  • 2 ein Blockdiagramm eines Decodierers für die Verwendung mit Codierern gemäß der Erfindung zeigt,
  • 3 ein Blockdiagramm eines Sprachcodierers nach einer Ausführungsform der Erfindung zeigt,
  • die 4, 5 und 6 den Betrieb von Teilen des Codierers nach 3 erläutern,
  • 7 ein Flußdiagramm für den Betrieb der Einheit 224 nach 3 zeigt,
  • 8 eine zweite Ausführungsform des Sprachcodierers gemäß der Erfindung ist,
  • 9 den Look-up-Vorgang bei dem Codierer nach 8 erläutert und
  • 10 ein Flußdiagramm ist, in dem der Gesamtbetrieb des Codierers dargestellt ist.
  • Vor der Beschreibung des Sprachcodierers wird zunächst mit Bezug auf 2 ein Decodierer beschrieben, um die Art und Weise zu erläutern, in der die codierten Signale bei Empfang verwendet werden, um ein Sprachsignal zu synthetisieren. Der Grundaufbau beinhaltet die Erzeugung eines Anregungssignals, das dann gefiltert wird.
  • Die Filterparameter werden alle 20 ms geändert. Eine 20 ms-Periode des Anregungssignals wird als Block bezeichnet. Je doch wird der Block aus kürzeren Segmenten ("Teilblöcken") mit einer Dauer von 5 ms zusammengesetzt.
  • Alle 5 ms empfängt der Decodierer einen Codebuch-Eintragungscode k und zwei Gain-Werte g1, g2 (obgleich auch nur einer oder mehr als zwei Gain-Werte verwendet werden können, wenn dies gewünscht wird). Es gibt einen Codebuch-Speicher 100 mit einer Anzahl (typischerweise 128) von Einträgen, von denen jeder eine 5 ms-Periode einer Anregung bei einer Sampling-Rate von 8 kHz definiert. Die Anregung ist ein ternäres Signal (d. h. es kann die Werte +1, 0, –1 zu jedem Sampling-Zeitpunkt von 125 μs annehmen), und jeder Eintrag enthält 40 Elemente von jeweils drei Bits, von denen zwei den Amplitudenwert definieren. Wenn ein reduziertes Codebuch (d. h. wo jeder Eintrag eine relativ kleine Anzahl von Elementen hat, die nicht Null sind) verwendet wird, kann jedoch eine stärker reduzierte Darstellung verwendet werden.
  • Der Code k aus dem Eingangsregister 101 wird als Adresse an den Speicher 100 geschickt, um einen Eintrag in ein 3 Bit breites Register 102 mit parallelem Eingang und seriellem Ausgang einzulesen. Der Ausgang dieses Registers wird (bei 8 k/samples/s) dann mit dem einen oder anderen der Gain-Werte g1, g2 von einem weiteren Eingangsregister 103 durch die Multiplizierer 104, 105 multipliziert. Welcher Gain-Wert bei einem gegebenen Sample-Wert verwendet wird, wird durch das dritte Bit des relevanten gespeicherten Elementes festgelegt, wie es schematisch durch einen Umschalter 106 dargestellt ist.
  • Die Filterung wird in zwei Stufen durchgeführt, zunächst durch einen Langfrist-Predictor (LTP), bezeichnet allgemein mit der Bezugsziffer 107, und dann durch ein LPC(linear predictive coding)-Filter 108. Das LPC-Filter konventionellen Aufbaus wird in 20 ms-Intervallen mit Koeffizienten ai von einem Eingangsregister 109 aktualisiert.
  • Das Langfristfilter ist ein "Einzelabgriff"-Predictor mit variabler Verzögerung (Verzögerungsleitung 110), gesteuert durch Signale d von einem Eingangsregister 111 und mit variablem Rückkopplungs-Gain-Wert (Multiplizierer 112), gesteuert durch einen Gain-Wert g aus dem Register 111. Ein Addierer 113 bildet die Summe aus dem Filtereingang und dem verzögerten skalierten Signal von dem Multiplizierer 112. Obgleich als "Einzelabgriff" bezeichnet, hat die Verzögerungsleitung tatsächlich zwei Ausgänge, die eine Sample-Periode zueinander verzögert sind, mit einem linearen Interpolierer 114, um (falls gewünscht) den Mittelwert der zwei Werte zu bilden, so daß sich eine effektive Verzögerungsauflösung von 1/2 Sample-Periode ergibt.
  • Die Parameter k, g1, g2, d g und ai werden mit einem Demultiplexer 115 aus einem gemultiplexten Eingangssignal abgeleitet. Jedoch werden die Gain-Werte g1, g2 und g durch ein einzelnes Codewort G identifiziert, welches verwendet wird, um eine Gain-Kombination aus einem Gain-Codebuch-Speicher 116 mit 128 solcher Einträge aufzufinden.
  • Die Aufgabe des Codierers ist es, aus der Eingangssprache die obengenannten Parameter zu erzeugen. Der allgemeine Aufbau des Codierers ist in 3 dargestellt. Die Eingangssprache wird in Rahmen digitaler Samples unterteilt, und jeder Rahmen wird durch eine LPC-Analyseeinheit 200 analysiert, um die Koeffizienten ai eines LPC-Filters (Impulsantwort h) mit einer Spektralantwort ähnlich der jedes 20 ms-Blocks der Eingangssprache abzuleiten. Eine solche Analyse ist üblich und wird hier nicht weiter beschrieben. Es ist jedoch wichtig, daß solche Filter im allgemeinen eine rekursive Struktur aufweisen und die Impulsantwort h (theoretisch) eine unendliche Länge hat.
  • Der Rest der Verarbeitung erfolgt Teilblock für Teilblock. Vorzugsweise werden die LPC-Koeffizientenwerte für diesen Prozeß gebildet durch LSP-(line spectral pair)Interpolation zwischen den berechneten Koeffizienten für den vorangehenden Rahmen und denen für den aktuellen Rahmen. Da letztere nicht bis zum Ende des Rahmens zur Verfügung stehen, führt dies zu einer erheblichen Verzögerung im System. Ein guter Kompromiß besteht darin, die Koeffizienten des "vorangehenden Blocks" für die erste Hälfte des Rahmens (d. h. die ersten beiden Teilblöcke in diesem Beispiel) und interpolierte Koeffizienten für die zweite Hälfte (d. h. den dritten und vierten Teilblock) zu verwenden. Das Weiterleiten und die Interpolierung wird durch eine Interpolierungseinheit 201 durchgeführt.
  • Der Eingangssprachteilblock und die LPC-Koeffizienten für diesen Teilblock werden dann verarbeitet, um die anderen Parameter zu bestimmen. Da das LPC-Filter des Decoders aufgrund der Länge seiner Impulsantwort bei einem gegebenen Teilblock einen Ausgang auch ohne Eingang des Filters erzeugt, wird zunächst jedoch dieser Ausgang – der Filterspeicher M – durch einen lokalen Decodierer 230 erzeugt und von der Ausgangssprache in einem Subtrahierer 202 abgezogen, um ein Vorgabesprachsignal y zu bilden. Man beachte, daß diese Anpassung keinerlei Speicherbeitrag von dem Langfristpredictor beinhaltet, da dessen neue Verzögerung noch nicht bekannt ist.
  • Zweitens werden dieses Zielsignal y und die LPC-Koeffizienten ai in einer ersten Analyseeinheit 203 verwendet, um die LTP-Verzögerung d zu ermitteln, welche in einem lokalen Decodierer mit optimalem LTP-Gain g und Anregung Null ein Sprachsignal mit minimaler Differenz zu der Vorgabe erzeugt.
  • Drittens werden das Vorgabesignal, die Koeffizienten ai und die Verzögerung d durch eine zweite Analyseeinheit 204 verwendet, um einen Eintrag in den Codebuch-Speicher 205 mit demselben Inhalt wie in dem Decodiererspeicher 100 und die Gainwerte g1, g2, die dafür verwendet wurden, auszuwählen.
  • Schließlich werden die Gainwerte g, g1, g2 gemeinsam ausgewählt, um die Differenz zwischen einem lokalen Decodiererausgang und dem Spracheingang zu minimieren.
  • Bei genauerer Betrachtung der ersten Analyseeinheit 203 wird durch diese (4) ein trunkierter lokaler Decodierer mit einer Verzögerungsleitung 206, Interpolierer 207, Multiplizierer 208 und LPC-Filter 209 gebildet, die identisch mit den Komponenten 110, 112, 114 und 108 nach 2 sind. Der Inhalt der Verzögerungsleitung und die LPC-Filterkoeffizienten sind so gestellt, daß sich dasselbe wie bei dem Inhalt der Decoderverzögerungsleitung und dem LPC-Filter beim Beginn des betrachteten Teilblocks ergibt. Außerdem ist ein Subtrahierer 210 gezeigt, der die Differenz zwischen dem Vorgabesignal y und dem Ausgangssignal gX des LPC-Filters 209 bildet, um ein Signal e2 zu bilden, das dem mittleren quadratischen Fehler entspricht. X ist ein Vektor, der die ersten n Samples einer gefilterten Version des Inhalts der Verzögerungsleitung darstellt, verschoben um die (bis jetzt unbestimmte) ganzzahlige Verzögerung d, oder (bei Interpolierung) des Mittelwertes des Verzögerungsleitungsinhalts, verschoben um die Verzögerung d und d + 1. Der Wert d habe ein zusätzliches Bit, um das Schalten zwischen einer ganzzahligen Verzögerungsvorhersage (mit Abgriffsgewichten (0,1)) und "Halbschritten"-Vorhersage mit Abgriffsgewichten (1/2, 1/2) anzuzeigen. y ist ein n-elementiger Vektor. n ist die Zahl der Samples pro Teilblock –40 in diesem Beispiel. Die Vektoren sind bei der verwendeten Matrixanalyse Spaltenvektoren – Zeilenvektoren werden als transponiert dargestellt, z. B. "y T".
  • Der Fehler beträgt: e2 = ∥⁣y – gX∥⁣2 = (y – gX)T(y – gX) (1) = y T y – g X T y – g y T X + g2 X T X (2) = y T y – 2 gX T y + g2 X T X (3).
  • Um diesen Fehler zu minimieren, setzen wir die Differenz mit Bezug auf g auf Null. (Dabei bezeichnet g' das Optimum von g in dieser Stufe).
    Figure 00090001
    g' X T X = X T y (5) und g' = (X T X)–1 X T y (6).
  • Einsetzen in (3) ergibt e2 = y T yy T X(X T X)–1 X T y (7),was dem quadratischen mittleren Fehler des optimalen Gainwertes entspricht.
  • Wenn der Verzögerungsleitungsausgang einer Verzögerung D(d) beträgt, dann gilt X = H D(d) (8),und der zweite Term in der Gleichung (7) kann geschrieben werden als y T H D(d) [D(d)T H T H D(d)]–1 D(d)T H T y (9).
  • Die Verzögerung d ergibt sich durch Berechnen (Steuereinheit 211) des zweiten Terms in Gleichung (7) für jeden einer Reihe von Versuchswerten von d und Auswählen des Wertes von d, der den größten Wert dieses Terms ergibt (siehe jedoch unten in bezug auf eine Modifizierung dieses Verfahrens). Man beachte, daß – obgleich es sich um ein rekursives Filter handelt – es realistischer ist, die Verzögerungsleitung als ein "adaptives Codebuch" von Anregungen anzusehen. Wenn der kleinste Ver suchswert für d kleiner als die Teilblocklänge ist, so würde man erwarten, daß der neue Ausgangswert von dem Addierer 113 des Decodierers zurückgekoppelt würde und wiederum am Eingang des Multiplizierers auftritt. (Tatsächlich wird dieses vorzugsweise vermieden und es werden statt dessen Samples wiederholt. Wenn beispielsweise die Teilblocklänge s beträgt, dann würden die letzten d-Samples für die Anregung verwendet, gefolgt von den ältesten s-d von diesen). Der Wert für den Gain g ergibt sich aus Gleichung 6.
  • In 3 dient die zweite Analyseeinheit 204 dazu, den Codebuch-Eintrag auszuwählen. Ein Adreßgenerator 231 greift nacheinander auf jeden der Einträge in dem Codebuch-Speicher 205 zur Weiterverarbeitung durch die Analyseeinheit 204 zu. Die tatsächliche Anregung bei dem Decodierer ist der ausgewählte Eintrag, selektiv multipliziert mit den Gainwerten g1, g2 (oder allgemeiner g1, g2, ..., gm–1, wobei m die Gesamtzahl der Gainwerte einschließlich des Langzeitpredictorgains g ist; mathematisch wird im folgenden m = 3 angenommen). Der Eintrag kann aufgefaßt werden als Summe von m – 1 partiellen Einträgen, wobei jeder die Elemente ungleich Null enthält, die mit dem entsprechenden Gainwert multipliziert werden, zusammen mit Nullen bei den Elementen, die einem anderen Gainwert unterworfen werden sollen, wobei jeweils die Multiplizierung mit dem jeweiligen Gain erfolgt. Der Eintrag wird ausgewählt durch Auffinden des mittleren quadratischen Fehlers für jeden Eintrag – bei optimalem Gain – zwischen dem Ausgang eines lokalen Decodierers und dem Zielsignal y.
  • Es seien die partiellen Einträge C 1, C 2, und die ausgewählte LTP-Verzögerung gebe einen Ausgangswert C D aus der Verzögerungsleitung aus.
  • Der gesamte Eingang des LPC-Filters ist dann g1 C 1 + g2 C 2 + g C D (10) und der Filterausgang ist dann g1 H C 1 + g2 H C 2 + g H C D (11).wobei H eine Faltungsmatrix aus Impulsantwort h T und verschobener Versionen davon ist.
  • Wenn die Produkte H C 1, H C 2, H C D geschrieben werden als Z i1, Z i2, Z D, wobei i der Codebuch-Eintrag ist, und (g1, g2, g)T = g gilt, dann ist der Decodiererausgang:
    Figure 00110001
    wobei Z ij eine n × m-Matrix ist, wobei n die Zahl der Samples und m die Gesamtzahl der Gains ist.
  • Somit ergibt sich für den mittleren quadratischen Fehler e2 = ∥⁣yZ ij g∥⁣2 (13).
  • Durch die gleiche Analyse wie nach den Gleichungen (1) bis (7) ergibt sich durch Setzen der Ableitung nach g auf Null ein optimaler Gain der Form g = (Z ij T Z ij)–1 Z ij T y (14)und durch Einsetzen hiervon in Gleichung (13) ergibt sich ein Fehler von e2 = y T yy T Z ij (Z ij T Z ij)–1 Z ij T y (15)und damit die Notwendigkeit, den Codebuch-Eintrag zu wählen, mit dem sich y T Z ij(Z ij T Z ij)–1 Z ij T y (16)maximieren läßt.
  • Dieses Verfahren wird in 5 erläutert, wo ein lokaler Decodierer 220 mit dem Aufbau nach 2 ein Fehlersignal in einem Subtrahierer 221 für jedes Versuchs-i erzeugt und eine Steuereinheit 222 den Eintrag (d. h. Eintrag k) auswählt, der zu dem besten Ergebnis führt. Man beachte speziell, daß dieses Verfahren nicht das vorangehende Optimum g' voraussetzt, das durch die Analyseeinheit 203 angenommen wird. Statt dessen wird angenommen, daß g (und g1, g2 etc.) das Optimum bei jedem der möglichen Anregungseinträge annimmt.
  • Der Betrieb der Gain-Analyseeinheit 206, dargestellt in 6, ist ähnlich (ähnliche Komponenten haben die gleichen Bezugsziffern mit einem zusätzlichen (')), aber es kommt eine Vektorquantisierung der Gains hinzu. Das Gain-Codewort G wird für die Ausgabe ausgewählt, wodurch die Kombination von Gains in einem Gain-Codebuch-Speicher 223 adressiert wird (auch in 3 gezeigt), welche den kleinsten Fehler e2 des Subtrahierers 221' erzeugt. Der Speicher 223 hatte denselben Inhalt wie der Decoderspeicher 116 nach 2.
  • Man beachte, daß 4, 5 und 6 zur Erläuterung dienen. In der Praxis können die Ableitungen, die durch die Analyseeinheiten 203, 204', 206 durchgeführt werden, effektiver durch eine geeignet programmierte digitale Signalverarbeitungsvorrichtung (DSP) erfolgen. Flußdiagramme für den Betrieb solcher Vorrichtungen sind in 10 dargestellt. Zunächst jedoch wird eine Anzahl von Maßnahmen beschrieben, die dazu dienen, den Aufwand bei der Berechnung zu reduzieren, die durchgeführt werden muß.
  • (a) Es werde das Produkt Z ij T Z ij der Gleichung (16) betrachtet. Dieses ist eine symmetrische 3 × 3-Matrix:
  • Figure 00130001
  • Jeder Term hierbei ist ein Produkt der Form Z a T Z b, wobei a, b irgendein Wert von i1, i2, D sind, und kann geschrieben werden als Z a T Z b = (H C a)T H C b = C a T H T H C b (18)
  • Ein ähnlicher Term tritt auch in dem Ausdruck (9) für die LTP-Suche auf. H T H kann vorberechnet werden, da er für die LTP- und Anregungssuche konstant bleibt. In 3 ist diese Berechnung gezeigt, wie sie in einer Recheneinheit 224 durchgeführt wird, die beide Rnalyseeinheiten 203, 204 beliefert. Man beachte, daß die Diagonalen der H T H-Matrix dieselbe Summe mit ansteigenden Grenzwerten haben, so daß sukzessive Elemente berechnet werden können durch Addieren eines Terms zu einem bereits berechneten Element. Dies ist weiter unten erläutert mit H als 3 × 3-Matrix, obgleich in der Praxis natürlich diese größer wäre: die Größe von H wird im allgemeinen so gewählt, daß eine vernünftige Näherung an die konventionelle unendliche Impulsantwort erfolgt.
  • Wenn
    Figure 00130002
    dann
    Figure 00130003
    woraus sich ergibt, daß jedes der höheren Elemente sich ergibt durch Addieren eines weiteren Terms zu dem Element, das sich darunter und um eins nach rechts verschoben befindet.
  • Somit gilt, wenn jeder Term der H T H-Matrix Hij ist (für die i-te Reihe und die j-te Spalte), z. B. H23 = h1 h2 H12 = H23 + h2 h3.
  • Da außerdem Hij = Hji (i ≠ j) gilt, braucht jedes dieser Termpaare nur einmal berechnet zu werden und kann dann mit 2 multipliziert werden.
  • Dieser Prozeß ist weiter in dem Flußdiagramm nach 7 erläutert, wo die Terme Hij (i = 1, ... N, j = 1, ... N), aufwärts auf jeder Diagonalen D (D = 1 ist oben rechts in der Ecke der Matrix) sukzessive berechnet werden für jedes Element nach dem niedrigsten bezüglich seiner Position (für welches der Index I = 0) durch Addieren eines weiteren h. h.-Produktterms.
  • Da C ternär ist, wird das Auffinden von C 1 H H T C 1 T (zum Beispiel) in der H T H-Matrix einfach zum Auswählen der geeigneten Elemente daraus (mit geeignetem Vorzeichen) und ihrem Addieren.
  • Dies kann erfolgen mittels einer Zeigertabelle unter Verwendung der modifizierten Vorrichtung in 8. Die Elemente der H T H-Matrix, berechnet durch die Einheit 224, werden in einem Speicher 301 abgelegt, oder statt dessen – unter Beachtung der Symmetrie der Matrix – werden die Elemente der führenden Diagonale zusammen mit den Elementen über (oder unter) der führenden Diagonale abgelegt. Ein zweiter Speicher 302 (in der Praxis Teil des gleichen physikalischen Speichers) speichert die gleichen Elemente aber mit negativen Werten. Zusammen mit dem Codebuch-Speicher 205 ist eine Zeigertabelle 303 vorgesehen, die für jeden Codebuch-Eintrag eine Liste von Adressen solcher Orte innerhalb der Speicher 301, 302 abspeichert, die die erforderlichen Elemente enthalten. Dieser Prozeß ist schematisch in 9 dargestellt, wo die Speicher 301, 302, 303 durch Rechtecke dargestellt sind und die Inhalte durch A11, etc. (wobei Aij das j-te Mitglied der Adreßliste des Codeworts i ist und H11 etc. wie oben definiert sind). Der tatsächliche Inhalt besteht aus binären Ziffern, die die tatsächlichen Werte dieser Größen darstellen. Die Adressen sind durch Ziffern außerhalb der Rechtecke dargestellt.
  • Es sei als Beispiel angenommen, daß das Codewort Nr. 2 eine Anregung (–1, 0, 1, 0, 0, ... 0) darstellt; dann sind die gewünschten Elemente der H T H-Matrix (+)H11, (+)H33, –H31, –H13 Daher sind die relevanten Adressen:
    • A21 = 1
    • A22 = 3
    • A23 = 1101
    • (A24= 1101).
  • Damit adressiert das Codewort 2 die Zeigertabelle 303; die Adressen A21 etc. werden ausgelesen und verwendet, um auf den Speicher 301/302 zuzugreifen. Der Inhalt, auf den so zugegriffen wird, wird durch einen Addierer 304 addiert, um den gewünschten Wert C T H T HC zu bilden. Da die Elemente abseits der führenden Diagonale immer paarweise auftreten, würden in der Praxis nicht separate Adressen, sondern statt dessen wird das partielle Ergebnis multipliziert mit zwei (eine einfache binäre Verschiebung) gespeichert.
  • Bei einer Modifizierung dieses Verfahrens sind Gruppen von Anregungen verschobene Versionen anderer. Beispielsweise sei Anregung 3 einfach eine Rechtsverschiebung um einen Platz der Anregung 2 (d. h. (0, –1, 0, 1, ...) in dem obigen Beispiel mit den gewünschten Elementen +H22, +H44, –H24, –H42 und den Adressen:
    • A31 = 2
    • A32 = 4
    • A33 = 1102
    • (A34 = 1102).
  • Um einen neuen Look-up-Zugriff auf die Zeigertabelle 303 zu vermeiden, können die Adressen, die für das Codewort 2 gefunden wurden, einfach modifiziert werden, um die neuen Adressen für das Codewort 3 zu bilden. Mit dem Adressierungsschema nach 9, wo Elemente einer Diagonale der Matrix Orte mit aufeinanderfolgenden Adressen belegen, erfordert dies lediglich das Inkrementieren aller Adressen um eins. Dieses Schema versagt, wenn ein Puls verlorengeht (oder verstärkt werden muß) bei dem Verschieben; jedoch kann es möglich sein, verlorene Pulse zu berücksichtigen durch Unterdrücken von Adressen außerhalb der Grenzen. Ein neuer Zugriff auf die Zeigertabelle wird dann für jede neue Gruppe erforderlich.
  • Da diese Modifizierung einen Verlust an "Zufälligkeit" der Anregungen beinhaltet, kann es von Vorteil sein, Pulse mit einem größeren Bereich von Werten zuzulassen – d. h. die Einschränkung auf "ternäre Pulse" zu vernachlässigen. In diesem Fall würde jeder Zeigertabelleneintrag außer einem Satz von Adressen einen Satz von Cij·Cik-Produkten enthalten (C i = {Ci1, Ci2, ...}), mit dem die abgerufenen Elemente H T H multipliziert würden. In 8 erfolgt dies durch die Multiplizierer 305, 306 und die gestrichelten Verbindungen von der Zeigertabelle.
  • Im Fall der Terme oben rechts Z i1 T Z D und Z i2 T Z D sind diese äquivalent zu C 1 T H T H C D und C 2 T H T H C D, und da C D für die Codebuch-Suche fest ist, kann H T H C D vorberechnet werden.
  • In dem Fall des Terms ∥⁣Z D∥⁣2 ist dies der Term H T H, bereits berechnet in der Analyseeinheit 203 für die ausgewählte Ver zögerung, und er wird bestimmt aus letzterem über einen Pfad 225 in den 3 und 8.
  • (b) Man betrachte den Term
    Figure 00170001
  • Für C 1 T H T y und C 2 T H T y ist H T y vorberechnet, sowohl für die Ausdrücke (9) als auch (19), in einer Einheit 226 in den 3 und 8. C D T H T y steht aus der LTP-Suche (über dem Pfad 225) zur Verfügung.
  • (c) Der Term y T Z ij ist lediglich der Transponierte von Z ij T y.
  • (d) Es werde im folgenden der Term H T y (oder sein transponierter Wert y T H) von (b) oben betrachtet. Dies ist eine Kreuzkorrelation zwischen Vorgabe und Impulsantwort H.
  • Man beachte, daß das LPC-Filter ein rekursives Filter mit einer unendlichen Impulsantwort ist. H ist eine 40 × 40-Matrix, die eine FIR-Näherung an diese Antwort darstellt. Die Bestimmung von H T y beinhaltet üblicherweise 800 Multiplikationen, und dies wäre extrem aufwendig.
  • Um das vorgeschlagene Verfahren zum Bestimmen dieser Größe zu erläutern, ist es notwendig, eine neue mathematische Notation zu definieren.
  • Wenn A eine p × q-Matrix ist, dann ist A R ein Zeilen- und Spaltenspiegelbild von A, z. B.
  • Figure 00170002
  • Es folgt, daß A R B = (AB R)R.
  • Es werde nun der Vektor H T y betrachtet. Da H symmetrisch ist, H T = H R, gilt H T y = H R y = (H y R)R, wobei H y R ein "zeitumgekehrtes" Vorgabesignal y darstellt, das durch die Antwort h gefiltert ist, und somit kann die Korrelation ersetzt werden durch eine Faltung und implementiert werden durch rekursive Filteroperation.
  • (e) Nach der Diskussion der einzelnen Abschnitte von y T Z ij (Z ij T Z ij)–1 Z ij T y muß man nun den Maximalwert dieses Ausdrucks finden. Um die Division durch die Determinante von Z ij T Z ij zu vermeiden, die für die Bildung des Inversen erforderlich ist, wird separat Num = det [Z ij T Z ij]y T Z ij(Z ij T Z ij)–1 Z ij T y Den = det [Z ij T Z ij]berechnet.
  • Die Werte Nummax und Denmax für die vorhergehenden größten Werte werden gespeichert, und es wird gesetzt (default = 0, 1). Die Abfrage Num/Den > Nummax/Denmax ? wird dann ausgeführt als Num·Denmax > Nummax·Den ?
  • In der oben erläuterten Modifizierung, bei der Anregungen verwendet werden, die verschobene Versionen voneinander sind, wird die Zahl von Adressen, die von dem Zeigertabellenspeicher 303 abgerufen werden müssen, reduziert, da bereits abgerufene Adressen modifiziert werden können. Dies setzt voraus, daß die Codebuch-Analyseeinheit 204 alle Adressen für einen gegebenen Codebuch-Eintrag hält, so daß sie verfügbar sind, damit sie für den nächsten modifiziert werden können, und damit ergibt sich das Erfordernis eines lokalen Speichers; z. B. wenn es sich um einen digitalen Signalverarbeitungschip handelt, können seine integrierten Register zu diesem Zweck verwendet werden. Die Zahl der Adressen ist p(p + 1)/2, wobei p die Zahl der Pulse in einer Anregung ist (unter der Annahme, daß p konstant ist und eine Trunkierung von H (siehe unten) nicht durchgeführt wird). Wenn dies die Zahl der verfügbaren Register übersteigt, so kann man das Problem abmildern durch Verwendung von "Teilvektoren".
  • Dieser Vorschlag sorgt dafür, daß jede Anregung der Codebuch-Menge eine Aneinanderkettung von zwei (oder mehr) Teilanregungen oder Teilvektoren einer Menge von Teilvektoren ist, d. h.:
    Figure 00190001
    wobei c ij ein Teilvektor ist und u die Zahl der Teilvektoren in einer Anregung ist. Notwendigerweise tritt jeder Teilvektor in einer Anzahl von unterschiedlichen Anregungen auf. Die Berechnung von C T H T HC kann dann unterteilt werden in u2 Teilergebnisse, von denen jedes die Multiplizierung eines Teilblockes der H T H-Matrix mit den zwei relevanten Teilanregungen ist. Wenn der Teilblock Jrs ist (r = 1, ... u; s = 1, ... u), so daß:
    Figure 00190002
    dann ist das Partialprodukt Pr,s = c ir J rs c is und das Endergebnis ist
  • Figure 00200001
  • Bei diesem Schema sind die Teilanregungen c ij (anstatt der Anregungen c i) verschobene Versionen voneinander (innerhalb einer Gruppe davon). Die Sequenz von Operationen wird modifiziert, so daß alle partiellen Produkte Pr,s mit gegebenen Werten von r und s nacheinander ausgeführt werden und die entsprechenden Adressen zu dem Paar dann modifiziert werden, um die Adressen für das nächste Paar zu erhalten (mit zusätzlichem Abrufen von Adressen, wenn entweder c ir oder c ij eine Gruppengrenze überschreitet, wenn i inkrementiert wird). Natürlich gibt es einen Overhead insoweit, als die Teilprodukte abgespeichert werden müssen und am Ende des Prozesses abgerufen und zusammengefügt werden müssen, um das Endergebnis zu bilden.
  • Wenn irgendein gegebenes Paar des gleichen oder eines anderen) Teilvektors bei gegebenen Positionen r, s in mehr als einem c i auftritt, kann das relevante Teilprodukt einmal gebildet und abgespeichert werden und mehrere Male für die relevanten Anregungen c i aufgerufen werden. (Dies ist der Fall, ob "Verschieben" verwendet wird oder nicht).
  • In der Praxis stellt man fest, daß Terme in der H T H-Matrix, die auf Beiträge von Pulsen der Anregung zurückgehen, die weit entfernt sind – d. h. die Terme in der oberen rechten Ecke und unteren linken Ecke von H T H (wie auf S. 11 oben erläutert) – ebenfalls klein sind und als Null angenommen werden können, ohne daß die Genauigkeit stark leidet, da die späteren Terme der Impulsantwort h relativ klein sind. Dies kann einfach erfolgen durch Weglassen der entsprechenden Adressen in der Zeigertabelle 203 und, selbstverständlich, durch die Analyseeinheit 204, die sie nicht abruft. Dieselbe Logik kann auf Systeme mit Teilvektoren angewendet werden. Wo es der Einfachheit halber beim Adressenabruf gewünscht wird, daß die Zahl der Pulse und die Zahl der Adressen pro Codebuch-Eintrag immer die gleichen sind, kann es nützlich sein, die K Adressen fortzulassen (wobei K die Zahl ist, die weggelassen werden soll), die zu den am weitesten entfernten Pulspaaren gehören (oder zu den Pulspaaren, die am weitesten entfernt in bezug auf ihre Anzahl in Pulssequenz sind – gegenüber ihren Positionen im Rahmen – ein ähnliches aber nicht identisches Kriterium). Wo Teilvektoren verwendet werden, muß dann die Nähe eines Pulses in einem Teilvektor zu Pulsen in einem benachbarten Teilvektor berücksichtigt werden; Terme mit einem Pulspaar innerhalb des gleichen Teilvektors können wahrscheinlich nicht ignoriert werden. Wenn z. B. angenommen wird, daß es drei Pulse pro Teilvektor gibt, kann man annehmen, daß:
    • (a) Terme mit dem ersten Puls des ersten Teilvektors und dem zweiten oder dritten Puls des zweiten Teilvektors und
    • (b) Terme mit dem zweiten Puls des ersten Teilvektors und dem dritten Puls des zweiten Teilvektors ignoriert werden können.

Claims (3)

  1. Sprachcodierervorrichtung mit: (a) einer Vorrichtung (200) zum Analysieren eines Eingangssprachsignals, um Parameter eines Synthesefilters zu bestimmen, und (b) einer Vorrichtung (204) zum Auswählen wenigstens einer Anregungskomponente aus mehreren möglichen Komponenten durch Bestimmen des Skalarproduktes der Antwort des Filters auf eine Anregungskomponente mit der Antwort des Filters auf dieselbe oder eine andere Anregungskomponente mit einer Vorrichtung zum Bilden des Produktes einer Filterantwortmatrix H und ihrer Transponierten H T, um die Produktmatrix H T H zu bilden, dadurch gekennzeichnet, daß die Auswahlvorrichtung außerdem umfaßt: (c) einen ersten Speicher (301, 302) zum Speichern von Elementen der Produktmatrix H T H, (d) einen zweiten Speicher (303) zum Speichern – bei Paaren aus einer Anregungskomponente und dergleichen oder einer anderen Anregungskomponente – der Adresse jedes Ortes in dem ersten Speicher, bei der ein Element der Produktmatrix enthalten ist, das mit Elementen beider Anregungskomponenten des Paares multipliziert werden muß, die nicht Null sind, und (e) einer Vorrichtung zum Auffinden von Adressen in dem zweiten Speicher, um die Inhalte an den Orten in dem ersten Speicher zu finden, die durch diese adressiert sind, und um die aufgefundenen Inhalte zu addieren, um die Skalarprodukte zu bilden.
  2. Sprachcodierervorrichtung nach Anspruch 1, bei der die mehreren möglichen Komponenten mehrere Teilmengen von Komponenten bilden, wobei jede Komponente eine verschobene Version eines anderen Mitgliedes derselben Teilmenge ist, der zweite Speicher (303) die Ortsadressen von Paaren einer repräsentativen Komponente aus einer Teilmenge von Anregungskomponenten und einer repräsentativen Komponente aus der gleichen oder einer anderen Teilmenge von Anregungskomponenten abspeichert und die Auffindungsvorrichtung dazu dient, die aufgefundenen Adressen in bezug auf andere Komponenten als die repräsentativen Komponenten vor dem Auffinden der Inhalte an den Orten in dem ersten Speicher zu modifizieren.
  3. Sprachcodierervorrichtung nach Anspruch 1 oder 2, bei der: die Auswahlvorrichtung (204) eine Sequenz von Anregungskomponenten zusammenstellt, wobei jedes der Skalarprodukte ein Partialprodukt (Pr,s) bildet, und die Auffindungsvorrichtung außerdem dazu dient, die Skalarprodukte zu addieren, um einen zusammengesetzten Wert zu bilden, der gleich dem Skalarprodukt der Antwort des Filters auf eine Anregungssequenz mit der Antwort des Filters auf dieselbe oder eine andere Anregungssequenz ist.
DE69131779T 1990-12-21 1991-12-20 Sprachcodierung Expired - Lifetime DE69131779T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB9027757 1990-12-21
GB909027757A GB9027757D0 (en) 1990-12-21 1990-12-21 Speech coding
GB9118214 1991-08-23
GB919118214A GB9118214D0 (en) 1991-08-23 1991-08-23 Speech coding
PCT/GB1991/002291 WO1992011627A2 (en) 1990-12-21 1991-12-20 Speech coding

Publications (2)

Publication Number Publication Date
DE69131779D1 DE69131779D1 (de) 1999-12-16
DE69131779T2 true DE69131779T2 (de) 2004-09-09

Family

ID=26298156

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69131779T Expired - Lifetime DE69131779T2 (de) 1990-12-21 1991-12-20 Sprachcodierung

Country Status (8)

Country Link
US (1) US6016468A (de)
EP (2) EP0563229B1 (de)
AT (1) ATE186607T1 (de)
DE (1) DE69131779T2 (de)
GB (1) GB2266822B (de)
HK (1) HK141196A (de)
SG (1) SG47586A1 (de)
WO (1) WO1992011627A2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9118217D0 (en) * 1991-08-23 1991-10-09 British Telecomm Speech processing apparatus
US5794180A (en) * 1996-04-30 1998-08-11 Texas Instruments Incorporated Signal quantizer wherein average level replaces subframe steady-state levels
US6324501B1 (en) * 1999-08-18 2001-11-27 At&T Corp. Signal dependent speech modifications
DE10140507A1 (de) * 2001-08-17 2003-02-27 Philips Corp Intellectual Pty Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers
US7240001B2 (en) 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
US7269548B2 (en) * 2002-07-03 2007-09-11 Research In Motion Ltd System and method of creating and using compact linguistic data
US7460990B2 (en) * 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US7885819B2 (en) 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
US9525427B1 (en) * 2015-09-11 2016-12-20 Tektronix, Inc. Test and measurement instrument including asynchronous time-interleaved digitizer using harmonic mixing and a linear time-periodic filter

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH581878A5 (de) * 1974-07-22 1976-11-15 Gretag Ag
NL8500843A (nl) * 1985-03-22 1986-10-16 Koninkl Philips Electronics Nv Multipuls-excitatie lineair-predictieve spraakcoder.
US4787057A (en) * 1986-06-04 1988-11-22 General Electric Company Finite element analysis method using multiprocessor for matrix manipulations with special handling of diagonal elements
US4868867A (en) * 1987-04-06 1989-09-19 Voicecraft Inc. Vector excitation speech or audio coder for transmission or storage
FR2632758B1 (fr) * 1988-06-13 1991-06-07 Matra Communication Procede de codage et codeur de parole a prediction lineaire
CA2027705C (en) * 1989-10-17 1994-02-15 Masami Akamine Speech coding system utilizing a recursive computation technique for improvement in processing speed
EP0500961B1 (de) * 1990-09-14 1998-04-29 Fujitsu Limited Sprachkodierungsystem
US5179594A (en) * 1991-06-12 1993-01-12 Motorola, Inc. Efficient calculation of autocorrelation coefficients for CELP vocoder adaptive codebook
US5187745A (en) * 1991-06-27 1993-02-16 Motorola, Inc. Efficient codebook search for CELP vocoders
US5371853A (en) * 1991-10-28 1994-12-06 University Of Maryland At College Park Method and system for CELP speech coding and codebook for use therewith

Also Published As

Publication number Publication date
EP0563229A1 (de) 1993-10-06
EP0563229B1 (de) 1999-11-10
US6016468A (en) 2000-01-18
DE69131779D1 (de) 1999-12-16
GB9314064D0 (en) 1993-09-08
ATE186607T1 (de) 1999-11-15
HK141196A (en) 1996-08-09
WO1992011627A3 (en) 1992-10-29
WO1992011627A2 (en) 1992-07-09
GB2266822A (en) 1993-11-10
SG47586A1 (en) 1998-04-17
EP0964393A1 (de) 1999-12-15
GB2266822B (en) 1995-05-10

Similar Documents

Publication Publication Date Title
DE69227401T2 (de) Verfahren zum Kodieren und Dekodieren von Sprachsignalen
DE69420431T2 (de) Sprachkodierungssystem
DE69604729T2 (de) Verfahren zur sprachkodierung mittels linearer prädiktion und anregung durch algebraische kodes
DE3853916T2 (de) Digitaler-sprachkodierer mit verbesserter vertoranregungsquelle.
DE69125775T2 (de) Sprachkodierungs- und Dekodierungssystem
DE69828725T2 (de) Sprachcodier- und -decodiersystem
DE3784942T2 (de) Duplex-datenuebertragung.
DE4492048C2 (de) Vektorquantisierungs-Verfahren
DE69329569T2 (de) Digitale Kodierung von Sprachsignalen
DE69528685T2 (de) Vorrichtung zur Vektorquantifizierung
DE69126062T2 (de) System zur Sprachcodierung und -decodierung
DE69033510T3 (de) Numerischer sprachcodierer mit verbesserter langzeitvorhersage durch subabtastauflösung
DE69426860T2 (de) Sprachcodierer und Verfahren zum Suchen von Codebüchern
DE69223335T2 (de) Sprachkodiersystem
DE69128407T2 (de) Verfahren und Einrichtung zur Übertragung mit niedriger Bitrate eines Sprachsignals mittels CELP-Codierung
DE69124210T2 (de) Einrichtung zur Signalcodierung
DE69131779T2 (de) Sprachcodierung
DE69527078T2 (de) Verfahren zur vektorkodierung und entsprechender kodierer/dekodierer
DE69129385T2 (de) Sprachkodiersystem
DE10140507A1 (de) Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers
DE69423240T2 (de) Verfahren und vorrichtung für quadratische interpolation
DE69028434T2 (de) System zur Codierung von Breitbandaudiosignalen
DE4491015C2 (de) Verfahren zum Erzeugen eines Spektralrauschbewertungsfilters zur Verwendung in einem Sprachcoder
DE69126347T2 (de) Methode zur Verminderung der Schwierigkeit der Suchen in Analyse-durch-Synthese-Kodierung
DE69830816T2 (de) Mehrstufige Audiodekodierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition