DE69227650T2 - Digitaler Sprachkodierer - Google Patents
Digitaler SprachkodiererInfo
- Publication number
- DE69227650T2 DE69227650T2 DE69227650T DE69227650T DE69227650T2 DE 69227650 T2 DE69227650 T2 DE 69227650T2 DE 69227650 T DE69227650 T DE 69227650T DE 69227650 T DE69227650 T DE 69227650T DE 69227650 T2 DE69227650 T2 DE 69227650T2
- Authority
- DE
- Germany
- Prior art keywords
- pulse pattern
- pulse
- excitation
- synthesizer
- excitation vector
- 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 - Fee Related
Links
- 230000005284 excitation Effects 0.000 claims description 102
- 239000013598 vector Substances 0.000 claims description 79
- 238000000034 method Methods 0.000 claims description 52
- 230000004044 response Effects 0.000 claims description 13
- 230000000694 effects Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 230000002194 synthesizing effect Effects 0.000 claims description 4
- 230000002596 correlated effect Effects 0.000 claims 1
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000001914 filtration Methods 0.000 claims 1
- 230000007774 longterm Effects 0.000 description 25
- 230000008569 process Effects 0.000 description 13
- 238000005457 optimization Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000008447 perception Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 101150065368 GLTP gene Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 210000001260 vocal cord Anatomy 0.000 description 1
- 230000001755 vocal effect Effects 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/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/10—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
- G10L19/107—Sparse pulse excitation, e.g. by using algebraic codebook
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
- Die Erfindung betrifft Sprachcodierung, insbesondere "Code Excited Linear Prediction"-Codierung von Sprache.
- Derzeit werden wirkungsvolle Sprachcodierungsabläufe entwickelt. Im Stand der Technik ist "Code Excited Linear Prediction (CELP)"-Codierung bekannt, die im einzelnen im Artikel von M. R. Schroeder und B. S. Atal "Code-Excited Linear Prediction (CELP): High Quality Speech at Very Low Bit Rates", Proceedings of the IEEE International Conference of Acoustics, Speech and Signal Processing ICASSP, Vol. 3, S. 937- 940, März 1985, erläutert ist.
- Codierung gemäß einem Algorithmus vom CELP-Typ könnte als wirkungsvoller Vorgang im Stand der Technik angesehen werden, jedoch ist die benötigte hohe Rechnerleistung ein Nachteil. Ein CELP-Codierer umfasst mehrere die Spracherzeugung modellierende Filter, für die ein geeignetes Erregungssignal aus einem Codebuch ausgewählt wird, das einen Satz von Erregungsvektoren erhält. Ein CELP-Codierer umfasst im allgemeinen Filter für sowohl kurze als auch lange Terme, wobei eine synthetisierte Version des ursprünglichen Sprachsignals erzeugt wird. In einem CELP-Codierer wird für eine erschöpfende Suche jeder einzelne, im Codebuch gespeicherte Erregungsvektor für jeden Sprachblock im Synthetisierer angewandt, der die Filter für lange und kurze Terme enthält. Das synthetisierte Sprachsignal wird mit dem ursprünglichen Sprachsignal verglichen, um ein Abweichungssignal zu erzeugen. Das Abweichungssignal wird dann auf ein Gewichtungsfilter gegeben, das das Abweichungssignal entsprechend dem Wahrnehmungsverhalten beim menschlichen Hören ausbildet, was zu einem Maß für die Codierungsabweichung führt, das der Hörwahrnehmung besser entspricht. Der optimale Erregungsvektor für den zu verarbeitenden jeweiligen Sprachblock wird dadurch erhalten, dass aus dem Codebuch derjenige Erregungsvektor ausgewählt wird, der für den fraglichen Sprachblock das kleinste gewichtete Abweichungssignal erzeugt.
- Wenn z. B. die Abtastrate 8 kHz beträgt, würde ein Block mit einer Länge von fünf Millisekunden aus 40 Abtastwerten bestehen. Wenn die gewünschte Übertragungsrate für die Erregung 0,2 Bits pro Abtastwert beträgt, ist ein Zufallscodebuch mit 1024 Zufallsvektoren erforderlich. Eine erschöpfende Suche nach allen diesen Vektoren führt zu ungefähr 120.000.000 Multiplizier- und Akkumulier(MAC)-Operationen pro Sekunde. Es ist deutlich, dass ein derartiges Berechnungsvolumen für die derzeitige Signalverarbeitungstechnik eine unrealistische Aufgabe darstellt. Außerdem ist der Speicherverbrauch nicht praxisgerecht, da ein Festwertspeicher von 640 Kilobit dazu erforderlich wäre, das Codebuch von 1024 Vektoren zu speichern (1024 Vektoren; 40 Abtastwerte pro Vektor; jeder Abtastwert ist durch ein 16-Bit-Wort repräsentiert).
- Das obige Berechnungsproblem ist gut bekannt, und um die Berechnung zu vereinfachen, wurden verschiedene Vorschläge gemacht, durch die die Berechnungsbelastung und der Speicherverbrauch wesentlich verringert werden können, so dass es möglich sein sollte, den CELP-Algorithmus in Echtzeit mit Signalprozessoren zu realisieren. Hier können zwei verschiedene Vorgehensweisen genannt werden:
- 1) Realisieren des Suchablaufs in einer transformierten Domäne unter Verwendung z. B. diskreter Fourier-Transformation; siehe I. M. Trancoso, B. S. Atal: "Efficient Procedures for Finding the Optimum Innovation in Stochastic Coders", Proc. ICASSP, Vol. 4, S. 2375-2378, April 1986;
- 2) Verwendung von Vektorsummierungstechniken; I. A. Gershon, M. A. Jasiuk: "Vector Sum Excited Linear Prediction Speech Coding at 8 kbit/s", Proc. ICASSP, S. 461-464, 1990.
- Es ist die Aufgabe der Erfindung, einen Codierungsablauf vom CELP-Typ und eine das Verfahren realisierende Vorrichtung zu schaffen, die für praktische Anwendungen besser als bekannte Verfahren geeignet sind. Insbesondere zielt die Erfindung darauf ab, ein leicht betreibbares Codebuch zu entwickeln, sowie einen Such- und Nachschlageablauf zu entwickeln, der eine Berechnungsfunktion liefert, die weniger Rechnerleistung und weniger Speicher benötigt, wobei gleichzeitig gute Sprachqualität beibehalten bleibt. Dies sollte zu wirkungsvoller Sprachcodierung führen, durch die Sprache hoher Qualität mit Übertragungsraten unter 10 kbit/s übertragen werden kann und die der Rechnerbelastung und dem Speicherverbrauch mäßige Erfordernisse auferlegt, wodurch sie leicht durch derzeitige Signalprozessoren realisierbar ist.
- Gemäß der Erfindung ist folgendes geschaffen: ein Verfahren zum Synthetisieren eines Sprachsignalblocks in einem Sprachcodierer vom CELP-Typ, das es umfasst, einen Erregungsvektor auf einen Synthetisierer des Codierers zu geben, um einen Block synthetisierter Sprache zu erzeugen, dadurch gekennzeichnet, dass das Verfahren ferner folgendes umfasst:
- - Auswählen einer vorbestimmten Anzahl (K) von Impulsmustern (Pj(n)) aus einem Codebuch des Codierers, der einen Satz (P) von Impulsmustern enthält, wobei K größer als eins ist;
- - Bestimmen der Verzögerung (dj) und der Ausrichtung (Oj) jedes ausgewählten Impulsmusters bezüglich des Startpunkts des Erregungsvektors, wobei Oj entweder 1 oder -1 ist; und
- - Erzeugen des Erregungsvektors durch Kombinieren der ausgewählten Impulsmuster, wobei jedes Impulsmuster die bestimmte Verzögerung (dj) und Ausrichtung (Oj) aufweist.
- Dies hat den Vorteil, dass anstelle einer Auswertung aller Erregungen die Filter des Synthetisierers nur eine beschränkte Anzahl (P) von Impulsmustern verarbeiten, also nicht den Satz aller durch sie gebildeter Erregungsvektoren, wodurch die Rechnerleistung zum Suchen des optimalen Erregungsvektors niedrig gehalten ist. Die Erfindung erzielt auch den Vorteil, dass nur eine beschränkte Anzahl (P) von Impulsmustern, statt aller Erregungsvektoren, in den Speicher eingespeichert werden muss.
- Gemäß der Erfindung ist auch folgendes geschaffen: ein Sprachcodierer vom CELP-Typ zum Verarbeiten eines synthetisierten Sprachsignals aus einem ursprünglichen Sprachsignal, mit:
- - einem ersten Synthetisierer, der so arbeitet, dass er einen Block synthetisierter Sprache aus einem zugeführten Erregungsvektor erzeugt;
- dadurch gekennzeichnet, dass er ferner folgendes aufweist:
- - ein Codebuch mit einem Satz (P) von Impulsmustern; und
- - eine Einrichtung zum Erzeugen des Erregungsvektors durch Auswählen einer vorbestimmten Anzahl (K) von Impulsmustern (Pj(n)) aus dem Codebuch, wobei K nicht größer als eins ist; Bestimmen der Ausrichtung (Oj) und der Verzögerung (dj) jedes ausgewählten Impulsmusters bezüglich des Startpunkts des Erregungsvektors, wobei Oj 1 oder -1 ist; und Kombinieren der ausgewählten Impulsmuster, wobei jedes Impulsmuster die bestimmte Verzögerung (dj) und Ausrichtung (Oj) aufweist, um den Erregungsvektor zu erzeugen.
- Dies hat den Vorteil, dass zwar bei einem CELP-Codierer für eine erschöpfende Suche alle skalierten Erregungsvektoren verarbeitet werden müssen, beim erfindungsgemäßen Codierer aber nur eine kleine Anzahl von Impulsmustern gefiltert wird.
- Die durch Impulsmuster erregte lineare Vorhersage (PPELP = Pulse Pattern Excited Linear Prediction) gemäß der Erfindung erlaubt eine einfache Echtzeitrealisierung von Codierern vom CELP-Typ unter Verwendung von Signalprozessoren. Im oben angegebenen Fall (1024 Erregungsvektoren) erfordert ein erfindungsgemäßer PPELP-Codierer weniger als 2.000.000 MAC- Operationen pro Sekunde für den gesamten Suchprozess, so dass er leicht durch einen einzelnen Signalprozessor realisierbar ist. Da anstelle aller Erregungsvektoren nur Impulsmuster gespeichert sind, kann ausgesagt werden, dass das Erfordernis eines Codebuchs im wesentlichen beseitigt ist. So wird bei moderater Rechnerleistung Echtzeitbetrieb erzielt.
- Die Erfindung wird nun beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
- Fig. 1a ist ein allgemeines Blockdiagramm eines CELP-Codierers zum Veranschaulichen einer Realisierung von PPELP;
- Fig. 1b zeigt einen entsprechenden Decodierer;
- Fig. 2 ist ein Grundblockdiagramm eines Codierers, das veranschaulicht, wie PPELP realisiert wird;
- Fig. 3 veranschaulicht den Impulsmustergenerator eines erfindungsgemäßen Codierers; und
- Fig. 4 ist ein detailliertes Blockdiagramm eines erfindungsgemäßen PPELP-Codierers.
- Hier wird das erfindungsgemäße Verfahren als Impulsmusterverfahren bezeichnet, d. h. als Codierung mit durch Impulsmuster erregter linearer Vorhersage (PPELP = Pulse Pattern Excited Linear Prediction), was, auf vereinfachte Weise, als wirkungsvoller Ablauf zum Erzeugen eines Erregungssignals und als Ablauf zum Suchen der optimalen Erregung, wie für einen Sprachcodierer entwickelt, bezeichnet werden kann, wobei die Erregung auf Grundlage der Verwendung von Impulsmustern erzeugt wird, die in Beziehung zum Startpunkt des Erregungsvektors geeignet verzögert und ausgerichtet sind. Das Codebuch eines Codierers unter Verwendung dieser PPELP- Codierung, das die Erregungsvektoren enthält, kann wirkungsvoll gehandhabt werden, wenn jeder Erregungsvektor als Kombination von Impulsmustern aufgebaut wird, die in Beziehung zum Startpunkt des Erregungsvektors geeignet verzögert sind. Aus dem eine begrenzte Anzahl (P) von Impulsmustern enthaltenden Codebuch wählt der Codierer eine vorbestimmte Anzahl (K) von Impulsmustern aus, die kombiniert werden, um einen Erregungsvektor zu bilden, der eine vorbestimmte Anzahl (L) von Abtastwerten enthält.
- Um die erfindungsgemäße PPELP-Codierung zu veranschaulichen, zeigt Fig. 1a ein Blockdiagramm eines Codierers vom CELP- Typ, bei dem das PPELP-Verfahren realisiert ist. Hierbei umfasst der Codierer einen Kurztermanalysator 1 zum Bilden eines Satzes linearer Vorhersageparameter a(i), mit i = 1, 2, ..., m, wobei m = Ordnung der Analyse gilt. Der Parametersatz a(i) beschreibt den spektralen Gehalt des Sprachsignals, und er wird für jeden Sprachblock aus N Abtastwerten (die Länge von N entspricht im allgemeinen einem Intervall von 20 Millisekunden) berechnet, für Verwendung in einem Kurztermfilter 4 des Synthetisierers bei der Erzeugung eines synthetisierten Sprachsignals ss(n). Der Codierer umfasst, neben dem Kurztermfilter 4 des Synthetisierers, auch ein Langtermfilter 5 des Synthetisierers. Das Langtermfilter 5 dient zur Einführung von Sprachperiodizität (Tonhöhe), und das Kurztermfilter 4 dient der spektralen Hüllkurve (Formanten). So werden die zwei Filter zum Modellieren des Sprachsignals verwendet. Das Kurztermfilter 4 des Synthetisierers modelliert die Funktion des menschlichen Vokaltrakts, wohingegen das Langtermfilter 5 des Synthetisierers die Schwingung der Stimmbänder moduliert. Die Langtermvorhersage- (LTP = Long Term Prediction)-Parameter für das Langtermfilter des Synthetisierers werden in einem Langtermvorhersage- (LTP)-Analysator 9 berechnet.
- Ein Gewichtungsfilter 2, das auf den Eigenschaften der menschlichen Hörwahrnehmung beruht, wird dazu verwendet, Frequenzen zu dämpfen, bei denen die Abweichung e(n), d. h. die Differenz zwischen dem ursprünglichen Sprachsignal s(n) und dem synthetisierten Sprachsignal ss(n), wie durch die Subtrahiereinrichtung 8 erzeugt, gemäß der Hörwahrnehmung weniger wichtig ist, und um Frequenzen zu verstärken, bei denen die Abweichung gemäß der Hörwahrnehmung wichtiger ist. Die Erregung für jeden Erregungsblock von L Abtastwerten wird in einem Erregungsgenerator 3 dadurch erzeugt, dass Impulsmuster zusammengesetzt werden, die in Beziehung zum Anfang des Erregungsvektors geeignet verzögert sind. Die Impulsmuster sind in einem Codebuch 10 gespeichert. Bei einer erschöpfenden Suche müssten in einem CELP-Codierer alle skalierten Erregungsvektoren vi(n) im Kurzterm- und im Langtermfilter 4 und 5 des Synthetisierers verarbeitet werden, wohingegen im PPELP-Codierer die Filter nur Impulsmuster verarbeiten.
- Eine Codebuch-Suchsteuerung 6 wird dazu verwendet, Steuerparameter uj (Position des Impulsmusters im Impulsmuster-Codebuch), dj (Position des Impulsmusters im Erregungsvektor, d. h. Verzögerung des Impulsmusters in bezug auf den Startpunkt des Blocks), oj (Ausrichtung des Impulsmusters), die den Erregungsgenerator 3 steuern, auf Grundlage der vom Gewichtungsfilter 2 ausgegebenen gewichteten Abweichung ew(n) zu erzeugen. Während eines Auswertungsprozesses werden optimale Impulsmustercodes ausgewählt, d. h. diejenigen Codes, die zur minimalen gewichteten Abweichung ew(n) führen.
- Von der Codebuch-Suchsteuerung 6 wird ein Skalierungsfaktor gc, dessen Optimierung unten in Verbindung mit der Suche nach Impulsmusterparametern detaillierter beschrieben wird, an eine Multipliziereinrichtung 7 geliefert, an die auch das Ausgangssignal des Erregungsvektors 3 geliefert wird. Das Ausgangssignal des Multiplizierers 7 wird in den Langtermsynthetisierer 5 eingegeben. Die Codiererparameter a(i), die LTP-Parameter, uj, dj und oj werden, wie dies auch für gc gilt, im Block 11 im Multiplexbetrieb verarbeitet. Es muss darauf hingewiesen werden, dass alle auch im Codierabschnitt des Codierers verwendeten Parameter quantisiert werden, bevor sie in den Synthetisiererfiltern 4, 5 verwendet werden.
- Der Decodierer arbeitet so, wie es in Fig. 1b dargestellt ist. Während eines Decodiervorgangs liefert der Demultiplexer 17 die quantisierten Codierparameter, d. h. uj, dj, oj, den Skalierungsfaktor gc, die LTP-Parameter sowie a(i). Das Impulsmuster-Codebuch 13 und der Impulsmuster-Erregungsgenerator 12 werden dazu verwendet, das Impulsmuster-Erregungssignal Vi,opt(n) zu erzeugen, das unter Verwendung des Skalierungsfaktors gc im Multiplizierer 14 skaliert wird und an das Langterm-Synthetisiererfilter 15 und das Kurzterm- Synthetisiererfilter 16 geliefert wird, das das decodierte Sprachsignal ss(n) als Ausgangssignal liefert.
- In Fig. 2, die die Realisierung einer PPELP-Codierung auf allgemeine Weise veranschaulicht, ist ein Grundblockdiagramm eines Codierers dargestellt. Das zu codierende Sprachsignal wird auf ein Mikrofon 19 und dann ein Filter 20, typischerweise vom Bandpasstyp, gegeben. Das bandpassmäßig gefilterte Analogsignal wird dann unter Verwendung eines Analog-Digital-(A/D)-Wandlers 24 in eine digitale Signalfolge umgesetzt. Als Abtastfrequenz sind bei diesem Ausführungsbei spiel acht kHz verwendet. Das Ausgangssignal s(n), das eine digitale Wiedergabe des ursprünglichen Sprachsignals ist, wird dann an eine Subtrahiereinrichtung 41 und in einen LPC- Analysator 21 weitergegeben, in dem für jeden Sprachblock von N Abtastwerten ein Satz von LPC-Parametern (bei unserem Beispiel gilt N = 160) unter Verwendung eines bekannten Ablaufs erzeugt wird. Die sich ergebenden Kurzzeit-Vorhersage(STP = Short Term Predictive)-Parameter a(i), mit i = 1, 2, ..., m (bei unserem Beispiel gilt m = 10), werden auf einen Multiplexer gegeben und zur Übertragung vom Codierer auf den Übertragungskanal gegeben. Verfahren zum Erzeugen von LPC-Parametern sind z. B. im Artikel von B. S. Atal: "Predictive Coding of Speech at Low Bit Rates", IEEE Trans. Comm., Vol. COM-30, S. 600-614, April 1982, erörtert. Diese Parameter werden beim Synthetisierungsablauf sowohl im Codierer als auch im Decodierer verwendet.
- Die STP-Parameter a(i) werden von Kurztermfiltern 22, 39, 29 sowie Gewichtungsfiltern 25, 30 verwendet, wie unten erörtert.
- Die Übertragungsfunktion eines Kurzterm-Synthetisiererfilters verfügt über die Übergangsfunktion 1/A(z), mit
- Im PPELP-Codierer werden in einem Impulsmuster-Codebuch 27 gespeicherte Impulsmuster in einem Langterm-Synthetisiererfilter 28 und im Kurzterm-Synthetisiererfilter 29 verarbeitet, um Reaktionen auf die Impulsmuster zu erhalten. Das Ausgangssignal des Kurzterm-Synthetisiererfilters 29 wird unter Verwendung des in den Multiplizierer 36 eingegebenen Skalierungsfaktors gc skaliert, wie in Zusammenhang mit der Suche nach dem optimalen Erregungsvektor berechnet. Das sich ergebende synthetisierte Sprachsignal ssc(n) wird dann in eine Subtrahiereinrichtung 38 eingegeben.
- Der Codierer umfasst auch einen Nulleingabe-Vorhersagezweig mit einem Kurzterm-Synthetisierfilter 22. Dieser Nulleingabe-Vorhersagezweig liegt dort, wo die Wirkung der Statusvariablen des Kurzterm-Vorhersagezweigs, d. h. des Zweigs mit den Filtern 28, 29, vom Sprachsignal s(n) abgezogen wird. Dies beseitigt den Einfluss der Statusvariablen aus zuvor analysierten Sprachblöcken. Diese Technik ist gut bekannt. Das Ausgangssignal no(n) wird an die Subtrahiereinrichtung 41 geliefert, an die auch das digitale Sprachsignal s(n) geliefert wird. Das sich ergebende Ausgangssignal wird an eine weitere Subtrahiereinrichtung 40 geliefert.
- An die Subtrahiereinrichtung 40 wird auch das Ausgangssignal eines Langterm-Vorhersagezweigs des Codierers geliefert, der ein Langterm-Synthetisiererfilter 23, ein Kurzterm-Synthetisiererfilter 39 und einen Multiplizierer 35 enthält.
- Die sich ergebende Ausgangssignalabweichung eltp(n) von der Subtrahiereinrichtung 40 wird an die Subtrahiereinrichtung 38 und ein zweites Gewichtungsfilter 25 geliefert.
- Das synthetisierte Sprachsignal ssc(n) und das digitalisierte Sprachsignal s(n), wie mit Hilfe des Nulleingabe-Vorhersagezweigs modifiziert, werden so unter Verwendung der Subtrahiereinrichtung 38 verglichen, und das Ergebnis ist ein Ausgangsdifferenzsignal ec(n).
- Das Differenzsignal ec(n) wird durch das Gewichtungsfilter 30 unter Verwendung der im LPC-Analysator 21 erzeugten STP- Parameter gefiltert. Die Übertragungsfunktion des Gewichtungsfilters ist wie folgt gegeben:
- Der Gewichtungsfaktor y hat typischerweise einen Wert, der geringfügig kleiner als 1,0 ist. Bei unserem Ausführungsbeispiel ist y als y = 0,83 gewählt. Der Suchablauf wird durch die Erregungscodebuch-Steuerung 34 gesteuert. Die Impulsmusterparameter (uj, dj, oj) des Erregungsvektors vi(n), der L Abtastwerte enthält - bei unserem Ausführungsbeispiel gilt L = 40 -, die zur minimalen Abweichung führen, werden unter Verwendung der Impulsmuster-Codebuchsteuerung 34 des Impulsmuster-Codebuchs 10 gesucht und, über den Kanal, mittels des Multiplexers, als optimale Erregungsparameter an den Decodierer geliefert. Der im Multiplizierblock 37 verwendete optimale Skalierungsfaktor gc,opt muss ebenfalls übertragen werden.
- Der Codierer verwendet auch ein Langterm-Synthetisiererfilter 26 mit einem Abgriff mit einer Übertragungsfunktion der Form 1/P(z), mit
- P(z) = 1 - bz-M (3)
- Die Parameter b und M sind Langtermvorhersage(LTP = Long Term Prediction)-Parameter, und sie werden für jeden Block von B Abtastwerten (bei unserem Beispiel gilt B = 40) unter Verwendung eines Analyse-Synthese-Ablaufs, wie er ansonsten als LTP mit geschlossener Schleife bekannt ist, abgeschätzt. Die optimalen LTP-Parameter werden auf ähnliche Weise wie bei der Codebuchsuche berechnet. Die Suche nach den LTP- Parametern in einer geschlossenen Schleife kann als Verwendung eines adaptiven Codebuchs gedacht werden, wobei die Zeitverzögerung M die Position des aus dem Codebuch 42 ausgewählten Erregungsvektors im Codebuch spezifiziert und b dem Langterm-Skalierungsfaktor gltp des Erregungsvektors entspricht. Auch wird der im Multiplizierer 35 verwendete Langterm-Skalierungsfaktor gltp in Verbindung mit der Suche nach dem optimalen Parameter berechnet.
- Die LTP-Parameter könnten gleichzeitig mit der tatsächlichen Impulsmustererregung berechnet werden. Jedoch ist diese Vorgehensweise kompliziert. Daher ist bei diesem Ausführungsbeispiel ein zweistufiger Ablauf bevorzugt, wie er unten beschrieben ist.
- Im ersten Schritt werden die LTP-Parameter dadurch berechnet, dass die gewichtete Abweichung eltp(n) berechnet wird, und im zweiten Schritt wird der optimale Erregungsvektor durch Minimieren von ec(n) gesucht. Die Ausführung dieses Vorgangs erfordert einen zweiten Synthetisiererzweig, der nachfolgend als Langterm-Vorhersagezweig bezeichnet wird und der einen zweiten Satz aus einem Kurzterm- und einem Langterm-Synthetisiererfilter 23 und 39, eine Subtrahiereinrichtung 40, ein zweites Gewichtungsfilter 25 und eine Codebuch- Suchsteuerung 26 enthält. Hier sei darauf hingewiesen, dass der Einfluss des vorigen Erregungsvektors oder der Nulleingabe-Antwort no(n) vom Synthetisiererfilter 22 keinen Einfluss im Suchprozess hat, so dass er durch die Subtrahiereinrichtung 41, wie oben erörtert, vom Eingangssprachsignal s(n) subtrahiert werden kann.
- Zustandsvariable, d. h. solche für das LTP-Codebuch 42 sowie diejenigen, T(i) (mit i = 1, 2, ..., m), für die Kurzterm-Synthetisiererfilter werden dadurch aktualisiert, dass die optima le Impulsmustererregung vom Erregungsgenerator 31, geeigneterweise im Multiplizierer 37 unter Verwendung des Skalierungsfaktors gc,opt, verstärkt, an das Langterm- und das Kurzterm-Synthetisiererfilter 32 und 33 geliefert werden.
- Die Auswertung des relativ bescheidenen LTP-Codebuchs ist eine Aufgabe, die nicht so kompliziert ist wie die Auswertung eines im allgemeinen wesentlich größeren festen Codebuchs. Unter Verwendung rekursiver Techniken und einer Beschneidung der Impulsantwort können die Rechnererfordernisse im Optimierungsablauf mit geschlossener Schleife vernünftig gehalten werden, wenn die LTP-Parameter optimiert werden. Die folgende Erörterung konzentriert sich auf die Suche nach dem optimalen Erregungsvektor aus dem Codebuch, das die aktuellen, festen Erregungsvektoren enthält.
- Es sei darauf hingewiesen, dass die Fig. 2 die Codiererfunktion im Prinzip veranschaulicht und sie der Einfachheit halber keine vollständige Beschreibung des Optimierungsverfahrens für das Erregungssignal auf Grundlage der unten beschriebenen Impulsmustertechnik enthält. Fig. 4, die unten beschrieben ist, gibt eine detailliertere Beschreibung dazu, wie die Impulsmustertechnik verwendet wird.
- Fig. 3 zeigt den Erregungsgenerator 51 gemäß der Erfindung, der dem Generator 3 in Fig. 1a, dem Generator 12 in Fig. 1b und dem Erregungsgenerator 31 in Fig. 2 entspricht. In einem PPELP-Codierer wird jeder Erregungsvektor dadurch erzeugt, dass eine Gesamtheit von K Impulsmustern aus einem Codebuch 50 ausgewählt wird, das einen Satz von P Impulsmustern pj(n), mit 1 ≤ j ≤ P, enthält. Die durch den Impulsmuster- Auswählblock 52 ausgewählten Impulsmuster werden im Verzögerungsblock 53 und im Ausrichtungsblock 54 dazu verwendet, die Erregungsvektoren vi(n) im Addierer 55 zu erzeugen, wobei i die fortlaufende Nummer des Erregungsvektors ist.
- Durch das Impulsmusterverfahren kann im Erregungsvektor eine Gesamtheit von (2P)K(LK) Erregungsvektoren erzeugt werden. Die eine Hälfte der Erregungsvektoren hat das entgegengesetzte Vorzeichen im Vergleich zur anderen Hälfte, und so ist es nicht erforderlich, sie zu verarbeiten, wenn von den Synthetisiererfiltern nach dem optimalen Erregungsvektor gesucht wird, sondern sie werden erhalten, wenn der Skalierungsfaktor gc negative Werte aufweist. Die ausgewerteten Erregungsvektoren vi(n), mit i = 1, 2, ..., (2P)K(LK)/2 und mit n = 0, 1, 2, ..., L - 1 haben die folgende Form:
- wobei uj (1 ≤ j ≤ K) die Position des Impulsmusters j' im Impulsmuster-codebuch (1 ≤ uj ≤ P), dj die Position des Impulsmusters im Erregungsvektor (0 ≤ dj ≤ L - 1) und oj dessen Ausrichtung (+1 oder -1) repräsentieren.
- Die Erregungswirkung der Impulsmuster beruhend auf der Impulsmustertechnik kann dadurch ausgewertet werden, dass in den Synthetisiererfiltern nur eine vorbestimmte Anzahl P von Impulsmustern (p&sub1;(n), p&sub2;(n), ..., pp(n)) verarbeitet wird. So kann die Auswertung der Erregungsvektoren sehr wirkungsvoll ausgeführt werden. Ein weiterer Vorteil des Impulsmusterverfahrens ist derjenige, dass nur eine kleine Anzahl von Impulsmustern, anstelle des gesamten Satzes von (2P)K(LK) Vektoren gespeichert werden muss. Sprache hoher Qualität kann unter Verwendung von nur zwei Impulsmustern erzielt werden. Dies führt zu einem Suchprozess, der insgesamt nur geringe Rechnerleistung erfordert, und es sind nur zwei Impulsmuster im Speicher abzuspeichern. Daher erfordert der erfindungsgemäße Codieralgorithmus insgesamt nur mäßige Rechnerleistung und wenig Speicher.
- Mit Hilfe der Fig. 4 erfolgt eine detailliertere Beschreibung des PPELP-Codierverfahrens, wobei diese Figur die tatsächliche Realisierung veranschaulicht und sie in einem PPELP-Codierer die Optimierung der Impulsmustererregung detaillierter zeigt. Hier sei darauf hingewiesen, dass die Gewichtungsfilter gemäß der Gleichung (2), d. h. der Filter 30 und 25 in Fig. 2, von den Ausgängen der Subtrathiereinrichtung (38 und 40 in Fig. 2) weggenommen sind, so dass die entsprechenden Funktionen nun vor der Subtrahiereinrichtung in den Filtern 60, 61 und 67 liegen.
- Die STP-Parameter werden im LPC-Analysierer 75 berechnet.
- In dieser Kombination ist der LTP-Parameter M auf Werte beschränkt, die größer als die Länge des Impulsmuster-Erregungsvektors sind. In diesem Fall beruht die Langtermvorhersage auf den vorigen Impulsmuster-Erregungsvektoren. Das Ergebnis hieraus ist es, dass nun der Langterm-Vorhersagezweig nicht im Suchprozess für die Impulsmustererregung enthalten sein muss. Diese Vorgehensweise vereinfacht das Codiersystem wesentlich.
- Die Wirkung der vorigen Sprachblöcke, d. h. das Ausgangssignal no(n) des Filters 61 des Nulleingabe-Zweigs wird vom gewichteten Sprachsignal sw(n), d. h. dem Ausgangssignal des Filters 60, das das digitale Sprachsignal s(n) erhält, durch die Subtrahiereinrichtung 62 abgezogen. Der Einfluss des Langterm-Vorhersagezweigs wird in der Subtrahiereinrichtung 63 abgezogen, bevor eine Impulsmusteroptimierung zum Erzeugen des Ausgangssignals eltp(n) erfolgt.
- Um die Impulsmuster-Erregungsparameter uj, dj, oj zu opti mieren, werden die im Codebuch 64 enthaltenen Antworten der Impulsmuster unter Verwendung des Synthetisiererfilters 67 erzeugt, und die tatsächliche Bewertung der Qualität der Impulsmustererregung wird durch Korrelatoren 65 und 68 ausgeführt. Die optimalen Parameter uj, dj, oj werden durch eine Impulsmuster-Suchsteuerung 66 geliefert und dazu verwendet, durch den Impulsmuster-Auswählblock 69, den Verzögerungsgenerator 73 und den Ausrichtungsblock 74 die optimale Erregung zu erzeugen. Die Synthetisiererfilter-Statusvariablen werden dadurch aktualisiert, dass der erzeugte optimale Erregungsvektor vi,opt, der durch den Multiplizierblock 70 unter Verwendung des durch die Impulsmustersteuerung erzeugten Skalierungsfaktors gc,opt skaliert wurde, auf die Synthetisiererfilter 71 und 72 angewandt wird. Die Optimierung der Impulsmuster-Erregungsparameter wird unten erläutert.
- Der Impulsmustercodebuch-Suchprozess sollte diejenigen Impulsmuster-Erregungsparameter auffinden, die den folgenden Ausdruck minimieren:
- wobei eltp(n) das Ausgangssignal der Subtrahiereinrichtung 63 ist, wie oben erörtert, d. h. das gewichtete ursprüngliche Sprachsignal nach Subtrahieren der Nulleingabe-Antwort no(n) und des Einflusses des Langterm-Vorhersagezweigs vom gewichteten Sprachsignal sw(n); ssc,i(n) ein Sprachsignalvektor ist, der im Synthetisiererfilter 67 synthetisiert wird. Dies führt zur Suche nach dem Maximum von
- Ri²/Ai (6)
- mit
- und
- Derjenige Vektor, der den Ausdruck (5) minimiert, wird für den optimalen Erregungsvektor Vi,opt(n) ausgewählt, wobei die Notation i,opt als fortlaufende Nummer verwendet ist.
- In Zusammenhang mit der Suche nach dem optimalen Impulsmuster wird auch der Skalierungsfaktor gc optimiert, um den optimalen Skalierungsfaktor gc,opt zu erhalten, der dazu verwendet wird, die optimal skalierte Erregung wi,opt(n) zu erzeugen, die an die Synthetisiererfilter im Decodierer und das Langtermfilter 71 des Optimierungszweigs im Codierer geliefert wird, d. h.
- wi,opt(n) = gc,opt Vi,opt(n) (9).
- Der optimale Skalierungsfaktor gc,opt ist durch Ri,opt/ A,iopt gegeben, wobei Ri,opt und A,iopt die Terme für optimale Kreuzkorrelation sowie Autokorrelation sind.
- Für einen vorgegebenen Erregungsvektor vi(n) ist die gewichtete Antwort hi(n) des Synthetisiererfilters für jedes Impulsmuster pi(n) wie folgt gegeben:
- mit 0 ≤ n ≤ L - 1, und wobei huj (n) die Antwort des gewichteten Synthetisierungsfilters 67 auf das Impulsmuster puj (n) ist.
- Die Codebuchsuche kann unter Verwendung, der Impulsmuster- Korrelationsvektoren wirkungsvoll ausgeführt werden. Der Kreuzkorrelationsterm Ri für jeden Erregungsvektor vi(n) kann unter Verwendung des Impulsmuster-Korrelationsvektors rk(n) berechnet werden, mit
- mit 0 ≤ n ≤ L - 1.
- Der Impulsmuster-Korrelationsvektor rk(n) wird für jedes Impulsmuster (k = 1, 2, ..., P) berechnet. Der für den jeweiligen Erregungsvektor vi(n) bezüglich des zu modellierenden Signalvektors (der als Kombination von K Impulsmustern erzeugt wird und durch die Impulsmusterpositionen uj im Impulsmuster-Codebuch, die Impulsmusterverzögerungen, d. h. Positionen bezüglich des Starts des Erregungsvektors, dj und die Ausrichtungen oj definiert ist) berechnete Kreuzkorrelationsterm Ri kann einfach wie folgt berechnet werden:
- Entsprechend kann der Autokorrelationsterm Ai für das synthetisierte Sprachsignal wie folgt berechnet werden:
- mit:
- Wenn der Testvorgang für die Impulsmustererregung auf empfindliche Weise betreffend die Berechnung des Kreuzkorrelationsterms r r k&sub1; k&sub2; (n&sub1;, n&sub2;)ausgebildet ist, können die zuvor berechneten Impulsmuster-Kreuzkorrelationsterme in den Berechnungsvorgängen verwendet werden und die Rechnerbelastung und den Speicherverbrauch auf niedrigem Niveau halten. Dann würde die Impulsmustertechnik dazu verwendet, mit einer Optimierung der Impulsmustererregung durch Positionieren der Impulsmuster ausgehend vom Ende des Erregungsrahmens und durch Zählen der Korrelation der Abfolge nach für derartige Impulsmuster, bei denen ein Impulsmuster für einen Abtastwert zum Startpunkt des Erregungsrahmens verschoben wurde, ohne dann die wechselseitigen Abstände zwischen den Impulsmustern zu ändern, zu beginnen. Dann kann die Impulsmuster- Kreuzkorrelation für die verschobene Impulsmusterkombination dadurch berechnet werden, dass ein neu multiplizierter Term zum vorigen Wert addiert wird.
- Aus der obigen Beschreibung ist es erkennbar, dass das Impulsmusterverfahren bei diesen Ausführungsbeispielen drei Schritte umfasst:
- - Im ersten Schritt werden alle Impulsmuster durch Synthetisiererfilter gefiltert, was zu P-Impulsmusterantworten hk(n), mit k = 1, 2, ..., P führt.
- - Im zweiten Schritt wird für L Impulsmusterverzögerungen die Korrelation für jede Impulsmusterantwort hk(n) zum Signal eltp berechnet, wobei das Ausgangssignal des LTP-Zweigs vom gewichteten Sprachsignal sw(n) angezogen wurde, wobei der Ablauf zum Korrelationsvektor rk(n) führt. Die Länge des Vektors beträgt L Abtastwerte, und sie wird für P-Impulsmuster berechnet.
- - Im dritten Schritt wird der Effekt jeder Impulsmustererregung dadurch ausgewertet, dass der Autokorrelationsterm Ai und der Kreuzkorrelationsterm Ri berechnet werden und auf Grundlage derselben die optimale Erregung ausgewählt wird. In Verbindung mit dem Testvorgang der Erregungsvektoren wird der Kreuzkorrelationsterm r r k&sub1; k&sub2; (n1, n&sub2;) rekursiv für jede Impulsmusterkombination berechnet.
- Gemäß der Erfindung ist es möglich, die Rechnerbelastung für die oben angegebene Impulsmusterparameter-Optimierung weiter dadurch zu verringern, dass eine Optimierung der Impulsmusterpositionen in zwei Schritten ausgeführt wird. Im ersten Schritt werden die Impulsmusterverzögerungen, d. h. die Positionen in der Impulsmustererregung, bezüglich des Startpunkts der Erregungsblöcke dadurch ausgesucht, dass für jedes Impulsmuster pj(n) Verzögerungswerte verwendet werden, deren Differenz (Gitterabstand) Dj Abtastwerten oder einem Mehrfachen von Dj entspricht. Im ersten Schritt werden die folgenden Kombinationen bewertet:
- mit r = 0, 1, ..., [(L - 1)/Dj], wobei die Funktion in diesem Zusammenhang bedeutet, dass auf ganze Werte abgeschnitten wird.
- Die oben beschriebene Suche führt, für jedes Impulsmuster j, das in die Erregung einzuschließen ist, zu optimalen Verzögerungswerten ddj (1 ≤ j ≤ K) eines Gitters mit der Schrittweite Dj.
- Der zweite Schritt umfasst das Testen der Verzögerungswerte ddj - (Dj - 1), ddj - (Dj - 2), ..., ddj - 2, ddj - 1, ddj + 1, ddj + 2, ddj + (Dj - 2), ddj + (Dj - 1), wie sie in der Nähe der im Schritt 1 gefundenen optimalen Verzögerungswerte liegen. Bei diesem zweiten Schritt wird ein neuer Optimierungszyklus entsprechend dem Schritt 1 für alle Impulsmuster-Erregungsparameter ausgeführt, jedoch beschränkt auf die oben genannten Verzögerungswerte in der Nähe von ddj. Im Ergebnis werden die endgültigen Impulsmusterparameter uj, dj und oj erhalten.
- Die zweistufige Suche nach den Positionen der Impulsmuster im Erregungsvektor ermöglicht es, die Rechnerbelastung des PPELP-Codierers weiter gegenüber den oben angegebenen Werten zu verringern, ohne dass die durch das Verfahren erzielte subjektive Qualität beeinträchtigt wird, wenn die Gitterschrittweite Dj vernünftig klein gehalten wird. Z. B. erzeugt die Verwendung von Gitterschrittweiten D&sub1; = 1 und D&sub2; = 3 für K = 2 immer noch ein gutes Codierungsergebnis.
- Für den Fachmann ist es aus der obigen Beschreibung ersichtlich, dass es möglich ist, die erfindungsgemäße Idee auf verschiedene Weisen dadurch zu verwenden, dass die angegebenen Ausführungsbeispiele modifiziert werden, ohne dass dadurch von den beigefügten Ansprüchen und ihrem Schutzumfang abgewichen wird.
Claims (9)
1. Verfahren zum Synthetisieren eines Sprachsignalblocks
in einem Sprachcodierer vom CELP-Typ, das es umfasst, einen
Erregungsvektor auf einen Synthetisierer des Codierers zu
geben, um einen Block synthetisierter Sprache zu erzeugen,
dadurch gekennzeichnet, dass das Verfahren ferner folgendes
umfasst:
- Auswählen einer vorbestimmten Anzahl (K) von Impulsmustern
(Pj(n)) aus einem Codebuch (64) des Codierers, der einen
Satz (P) von Impulsmustern enthält, wobei K größer als eins
ist;
- Bestimmen der Verzögerung (dj) und der Ausrichtung (Oj)
jedes ausgewählten Impulsmusters bezüglich des Startpunkts
des Erregungsvektors, wobei Oj entweder 1 oder -1 ist; und
- Erzeugen des Erregungsvektors durch Kombinieren der
ausgewählten Impulsmuster, wobei jedes Impulsmuster die bestimmte
Verzögerung (dj) und Ausrichtung (Oj) aufweist.
2. Verfahren nach Anspruch 1, bei dem der Erregungsvektor
ein optimaler Erregungsvektor (Vi,opt, Wi,opt) ist, der auf
einen ersten Zweig des Codierers gegeben wird.
3. Verfahren nach Anspruch 1 oder 2, bei dem die
ausgewählten Impulsmuster durch eine
Impulsmuster-Erzeugungseinrichtung (51) des Codierers auf Grundlage eingegebener
optimaler Steuerparameter (uj, dj, oj) erzeugt werden.
4. Verfahren nach Anspruch 3, bei dem die Steuerparameter
einen ersten Parameter (uj) zum Auswählen des Satzes von
Impulsmustern unter Bezugnahme auf ihre Position im Codebuch,
einen zweiten Parameter (dj) zum Bestimmen der Verzögerung
der Impulsmuster sowie einen dritten Parameter (oj) zum
Bestimmen der Ausrichtung der Impulsmuster umfassen.
5. Verfahren nach Anspruch 2, 3 oder 4 in Abhängigkeit von
Anspruch 2, bei dem das ursprüngliche Sprachsignal gewichtet
und modifiziert wird, um jede Auswirkung eines zuvor
synthetisierten Sprachblocks zu beseitigen, um ein gewichtetes
ursprüngliches Sprachsignal (eltp(n)) zu erzeugen, und jedes
Impulsmuster aus dem Codebuch in einem Synthetisiererfilter
(67) eines zweiten Synthetisiererzweigs des Codierers
gefiltert wird, um eine vorbestimmte Anzahl (P) der Antworten
(hi(n)) des Synthetisiererfilters zu erzeugen, die
korreliert sind, so dass die optimalen Steuerparameter bestimmt
werden, bei denen das Verhältnis der Kreuzkorrelation (Ri)
zur Autokorrelation (Ai) der Antwort des
Synthetisiererfilters auf das gewichtete ursprüngliche Sprachsignal maximal
ist.
6. Verfahren nach Anspruch 5, ferner mit dem Schritt des
Bestimmens der optimalen Impulsmusterverzögerung unter
Verwendung eines Äquidistanzgitters durch Bestimmen der
Verzögerung als Funktion einer ersten Position (ddj) auf dem
Gitter, mit anschließendem Bestimmen der Verzögerung als
Funktion einer zweiten Position in der Nähe der ersten Position.
7. Sprachcodierer vom CELP-Typ zum Verarbeiten eines
synthetisierten Sprachsignals aus einem ursprünglichen
Sprachsignal, mit:
- einem ersten Synthetisierer 2, der so arbeitet, dass er
einen Block synthetisierter Sprache aus einem zugeführten
Erregungsvektor (Vi,opt, Wi,opt) erzeugt;
dadurch gekennzeichnet, dass er ferner folgendes aufweist:
- ein Codebuch (10; 13; 27; 50) mit einem Satz (P) von
Impulsmustern; und
- eine Einrichtung (12, 31, 51, 3) zum Erzeugen des
Erregungsvektors durch Auswählen einer vorbestimmten Anzahl (K)
von Impulsmustern (Pj(n)) aus dem Codebuch (10; 13; 27; 50),
wobei K nicht größer als eins ist; Bestimmen der Ausrichtung
(Oj) und der Verzögerung (dj) jedes ausgewählten
Impulsmusters bezüglich des Startpunkts des Erregungsvektors, wobei
Oj 1 oder -1 ist; und Kombinieren der ausgewählten
Impulsmuster, wobei jedes Impulsmuster die bestimmte Verzögerung
(dj) und Ausrichtung (Oj) aufweist, um den Erregungsvektor
zu erzeugen.
8. Sprachcodierer nach Anspruch 7, mit einer Einrichtung
zum Erzeugen eines Satzes optimaler Steuerparameter (uj, dj,
oj) zum Auswählen der Impulsmuster, und zum Bestimmen ihrer
Verzögerung und Ausrichtung.
9. Sprachcodierer nach Anspruch 8, mit:
- einer Einrichtung (60, 61, 62, 63) zum Erzeugen eines
gewichteten ursprünglichen Sprachsignals (eltp(n)), das so
modifiziert ist, dass jede Einwirkung eines zuvor
synthetisierten Sprachblocks beseitigt ist;
- einer Einrichtung zum Filtern (67) des Satzes
vorbestimmter Impulsmuster vom Codebuch zum Erzeugen einer
vorbestimmten Anzahl (P) von Synthetisierfilterantworten (hi(n));
- wobei die Steuerparameter-Erzeugungseinrichtung eine
Korrelationseinrichtung (65, 68) für Kreuzkorrelation und
Autokorrelation der Synthetisiererfilterantworten mit dem
gewichteten ursprünglichen Sprachsignal aufweist; und
- einer Einrichtung (66) zum Erzeugen der optimalen
Steuerparameter, wenn das Verhältnis der Kreuzkorrelation zur
Autokorrelation maximal ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI912438A FI98104C (fi) | 1991-05-20 | 1991-05-20 | Menetelmä herätevektorin generoimiseksi ja digitaalinen puhekooderi |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69227650D1 DE69227650D1 (de) | 1999-01-07 |
DE69227650T2 true DE69227650T2 (de) | 1999-06-24 |
Family
ID=8532557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69227650T Expired - Fee Related DE69227650T2 (de) | 1991-05-20 | 1992-05-19 | Digitaler Sprachkodierer |
Country Status (5)
Country | Link |
---|---|
US (1) | US5327519A (de) |
EP (1) | EP0515138B1 (de) |
JP (1) | JP3167787B2 (de) |
DE (1) | DE69227650T2 (de) |
FI (1) | FI98104C (de) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5717824A (en) * | 1992-08-07 | 1998-02-10 | Pacific Communication Sciences, Inc. | Adaptive speech coder having code excited linear predictor with multiple codebook searches |
WO1994007239A1 (en) * | 1992-09-16 | 1994-03-31 | Fujitsu Limited | Speech encoding method and apparatus |
US5864650A (en) * | 1992-09-16 | 1999-01-26 | Fujitsu Limited | Speech encoding method and apparatus using tree-structure delta code book |
FI95086C (fi) * | 1992-11-26 | 1995-12-11 | Nokia Mobile Phones Ltd | Menetelmä puhesignaalin tehokkaaksi koodaamiseksi |
FI96248C (fi) * | 1993-05-06 | 1996-05-27 | Nokia Mobile Phones Ltd | Menetelmä pitkän aikavälin synteesisuodattimen toteuttamiseksi sekä synteesisuodatin puhekoodereihin |
FI94810C (fi) * | 1993-10-11 | 1995-10-25 | Nokia Mobile Phones Ltd | Menetelmä huonon GSM-puhekehyksen tunnistamiseksi |
EP0657874B1 (de) * | 1993-12-10 | 2001-03-14 | Nec Corporation | Stimmkodierer und Verfahren zum Suchen von Kodebüchern |
JP2979943B2 (ja) * | 1993-12-14 | 1999-11-22 | 日本電気株式会社 | 音声符号化装置 |
IT1271182B (it) * | 1994-06-20 | 1997-05-27 | Alcatel Italia | Metodo per migliorare le prestazioni dei codificatori vocali |
FR2729247A1 (fr) * | 1995-01-06 | 1996-07-12 | Matra Communication | Procede de codage de parole a analyse par synthese |
FR2729246A1 (fr) * | 1995-01-06 | 1996-07-12 | Matra Communication | Procede de codage de parole a analyse par synthese |
FR2729244B1 (fr) * | 1995-01-06 | 1997-03-28 | Matra Communication | Procede de codage de parole a analyse par synthese |
FR2732148B1 (fr) * | 1995-03-24 | 1997-06-13 | Sgs Thomson Microelectronics | Determination d'un vecteur d'excitation dans un codeur celp |
JPH08272395A (ja) * | 1995-03-31 | 1996-10-18 | Nec Corp | 音声符号化装置 |
JPH08292797A (ja) * | 1995-04-20 | 1996-11-05 | Nec Corp | 音声符号化装置 |
US5778026A (en) * | 1995-04-21 | 1998-07-07 | Ericsson Inc. | Reducing electrical power consumption in a radio transceiver by de-energizing selected components when speech is not present |
US5864797A (en) * | 1995-05-30 | 1999-01-26 | Sanyo Electric Co., Ltd. | Pitch-synchronous speech coding by applying multiple analysis to select and align a plurality of types of code vectors |
US5822724A (en) * | 1995-06-14 | 1998-10-13 | Nahumi; Dror | Optimized pulse location in codebook searching techniques for speech processing |
JP3616432B2 (ja) * | 1995-07-27 | 2005-02-02 | 日本電気株式会社 | 音声符号化装置 |
US5867814A (en) * | 1995-11-17 | 1999-02-02 | National Semiconductor Corporation | Speech coder that utilizes correlation maximization to achieve fast excitation coding, and associated coding method |
JP3137176B2 (ja) * | 1995-12-06 | 2001-02-19 | 日本電気株式会社 | 音声符号化装置 |
FR2742568B1 (fr) * | 1995-12-15 | 1998-02-13 | Catherine Quinquis | Procede d'analyse par prediction lineaire d'un signal audiofrequence, et procedes de codage et de decodage d'un signal audiofrequence en comportant application |
DE19641619C1 (de) * | 1996-10-09 | 1997-06-26 | Nokia Mobile Phones Ltd | Verfahren zur Synthese eines Rahmens eines Sprachsignals |
KR100339168B1 (ko) * | 1996-11-07 | 2002-06-03 | 모리시타 요이찌 | 음원 벡터 생성 장치, 음성 부호화 장치 및 음성 복호화장치 |
US5960389A (en) * | 1996-11-15 | 1999-09-28 | Nokia Mobile Phones Limited | Methods for generating comfort noise during discontinuous transmission |
US6108624A (en) * | 1997-09-10 | 2000-08-22 | Samsung Electronics Co., Ltd. | Method for improving performance of a voice coder |
KR100872246B1 (ko) | 1997-10-22 | 2008-12-05 | 파나소닉 주식회사 | 직교화 탐색 방법 및 음성 부호화기 |
FI980132A (fi) | 1998-01-21 | 1999-07-22 | Nokia Mobile Phones Ltd | Adaptoituva jälkisuodatin |
KR100510399B1 (ko) * | 1998-02-17 | 2005-08-30 | 모토로라 인코포레이티드 | 고정 코드북내의 최적 벡터의 고속 결정 방법 및 장치 |
JP3199020B2 (ja) * | 1998-02-27 | 2001-08-13 | 日本電気株式会社 | 音声音楽信号の符号化装置および復号装置 |
US6480822B2 (en) * | 1998-08-24 | 2002-11-12 | Conexant Systems, Inc. | Low complexity random codebook structure |
JP4173940B2 (ja) * | 1999-03-05 | 2008-10-29 | 松下電器産業株式会社 | 音声符号化装置及び音声符号化方法 |
US6782361B1 (en) | 1999-06-18 | 2004-08-24 | Mcgill University | Method and apparatus for providing background acoustic noise during a discontinued/reduced rate transmission mode of a voice transmission system |
KR100391527B1 (ko) | 1999-08-23 | 2003-07-12 | 마츠시타 덴끼 산교 가부시키가이샤 | 음성 부호화 장치, 기록 매체, 음성 복호화 장치, 신호 처리용 프로세서, 음성 부호화 복호화 시스템, 통신용 기지국, 통신용 단말 및 무선 통신 시스템 |
US6980948B2 (en) * | 2000-09-15 | 2005-12-27 | Mindspeed Technologies, Inc. | System of dynamic pulse position tracks for pulse-like excitation in speech coding |
US6789059B2 (en) * | 2001-06-06 | 2004-09-07 | Qualcomm Incorporated | Reducing memory requirements of a codebook vector search |
EP1994531B1 (de) * | 2006-02-22 | 2011-08-10 | France Telecom | Verbesserte celp kodierung oder dekodierung eines digitalen audiosignals |
US20090164211A1 (en) * | 2006-05-10 | 2009-06-25 | Panasonic Corporation | Speech encoding apparatus and speech encoding method |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4701954A (en) * | 1984-03-16 | 1987-10-20 | American Telephone And Telegraph Company, At&T Bell Laboratories | Multipulse LPC speech processing arrangement |
NL8500843A (nl) * | 1985-03-22 | 1986-10-16 | Koninkl Philips Electronics Nv | Multipuls-excitatie lineair-predictieve spraakcoder. |
US4910781A (en) * | 1987-06-26 | 1990-03-20 | At&T Bell Laboratories | Code excited linear predictive vocoder using virtual searching |
CA1337217C (en) * | 1987-08-28 | 1995-10-03 | Daniel Kenneth Freeman | Speech coding |
US4817157A (en) * | 1988-01-07 | 1989-03-28 | Motorola, Inc. | Digital speech coder having improved vector excitation source |
IT1224453B (it) * | 1988-09-28 | 1990-10-04 | Sip | Procedimento e dispositivo per la codifica decodifica di segnali vocali con l'impiego di un eccitazione a impulsi multipli |
CA2019801C (en) * | 1989-06-28 | 1994-05-31 | Tomohiko Taniguchi | System for speech coding and an apparatus for the same |
US5097508A (en) * | 1989-08-31 | 1992-03-17 | Codex Corporation | Digital speech coder having improved long term lag parameter determination |
JPH0451199A (ja) * | 1990-06-18 | 1992-02-19 | Fujitsu Ltd | 音声符号化・復号化方式 |
-
1991
- 1991-05-20 FI FI912438A patent/FI98104C/fi active IP Right Grant
-
1992
- 1992-05-19 EP EP92304516A patent/EP0515138B1/de not_active Expired - Lifetime
- 1992-05-19 DE DE69227650T patent/DE69227650T2/de not_active Expired - Fee Related
- 1992-05-19 US US07/885,651 patent/US5327519A/en not_active Expired - Lifetime
- 1992-05-19 JP JP12643192A patent/JP3167787B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5327519A (en) | 1994-07-05 |
JP3167787B2 (ja) | 2001-05-21 |
EP0515138A2 (de) | 1992-11-25 |
JPH05210399A (ja) | 1993-08-20 |
DE69227650D1 (de) | 1999-01-07 |
FI98104B (fi) | 1996-12-31 |
FI98104C (fi) | 1997-04-10 |
FI912438A0 (fi) | 1991-05-20 |
EP0515138A3 (en) | 1993-06-02 |
EP0515138B1 (de) | 1998-11-25 |
FI912438A (fi) | 1992-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69227650T2 (de) | Digitaler Sprachkodierer | |
DE3854453T2 (de) | CELP Vocoder und Anwendungsverfahren. | |
DE69628103T2 (de) | Verfahren und Filter zur Hervorbebung von Formanten | |
DE3853916T2 (de) | Digitaler-sprachkodierer mit verbesserter vertoranregungsquelle. | |
DE3244476C2 (de) | ||
DE60226308T2 (de) | Quantisierung der Anregung in einem Geräuschrückkopplungskodierungssytem mit allgemeiner Rauschformung | |
DE69928288T2 (de) | Kodierung periodischer sprache | |
DE60121405T2 (de) | Transkodierer zur Vermeidung einer Kaskadenkodierung von Sprachsignalen | |
DE69531642T2 (de) | Synthese eines Anregungssignals bei Ausfall von Datenrahmen oder Verlust von Datenpaketen | |
DE69604526T2 (de) | Verfahren zur Anpassung des Rauschmaskierungspegels in einem Analyse-durch-Synthese-Sprachkodierer mit einem wahrnehmunggebundenen Kurzzeitfilter | |
DE69309557T2 (de) | Verfahren und Vorrichtung zur Sprachkodierung | |
DE69932460T2 (de) | Sprachkodierer/dekodierer | |
DE69518452T2 (de) | Verfahren für die Transformationskodierung akustischer Signale | |
DE3856211T2 (de) | Verfahren zur adaptiven Filterung von Sprach- und Audiosignalen | |
DE68912692T2 (de) | Zur Sprachqualitätsmodifizierung geeignetes Übertragungssystem durch Klassifizierung der Sprachsignale. | |
DE69029120T2 (de) | Stimmenkodierer | |
DE3874427T2 (de) | Linearer praediktionsvocoder mit code-anregung. | |
DE19647298C2 (de) | Kodiersystem | |
DE69619284T3 (de) | Vorrichtung zur Erweiterung der Sprachbandbreite | |
DE60011051T2 (de) | Celp-transkodierung | |
DE3041423C1 (de) | Verfahren und Vorrichtung zur Verarbeitung eines Sprachsignals | |
DE69621393T2 (de) | Quantisierung von Sprachsignalen in prädiktiven Kodiersystemen unter Verwendung von Modellen menschlichen Hörens | |
DE69129329T2 (de) | Sprachkodierungsystem | |
DE69916321T2 (de) | Kodierung eines verbesserungsmerkmals zur leistungsverbesserung in der kodierung von kommunikationssignalen | |
DE69013738T2 (de) | Einrichtung zur Sprachcodierung. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: BECKER, KURIG, STRAUS, 80336 MUENCHEN |
|
8339 | Ceased/non-payment of the annual fee |