DE19641619C1 - Verfahren zur Synthese eines Rahmens eines Sprachsignals - Google Patents

Verfahren zur Synthese eines Rahmens eines Sprachsignals

Info

Publication number
DE19641619C1
DE19641619C1 DE19641619A DE19641619A DE19641619C1 DE 19641619 C1 DE19641619 C1 DE 19641619C1 DE 19641619 A DE19641619 A DE 19641619A DE 19641619 A DE19641619 A DE 19641619A DE 19641619 C1 DE19641619 C1 DE 19641619C1
Authority
DE
Germany
Prior art keywords
excitation
rpe
pulses
speech
stochastic
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
Application number
DE19641619A
Other languages
English (en)
Inventor
Udo Goertz
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.)
Nokia Oyj
Original Assignee
Nokia Mobile Phones Ltd
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
Application filed by Nokia Mobile Phones Ltd filed Critical Nokia Mobile Phones Ltd
Priority to DE19641619A priority Critical patent/DE19641619C1/de
Application granted granted Critical
Publication of DE19641619C1 publication Critical patent/DE19641619C1/de
Priority to EP97116746A priority patent/EP0836176A3/de
Priority to US08/947,419 priority patent/US6041298A/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • G10L19/113Regular pulse excitation

Description

Zeitbereichssprachkodierer, von denen im folgenden die Rede sein soll, ar­ beiten im wesentlichen alle nach dem gleichen Prinzip: Ein lineares Syn­ thesefilter wird mit einem Anregungssignal derart beaufschlagt, daß des­ sen Ausgangssignal das zu übertragende Sprachsignal im Sinne eines festzulegenden Fehlermaßes möglichst gut approximiert. Oft besteht das Anregungssignal aus zwei Komponenten. Erstere soll die harmonischen, meist stimmhaften Sprachanteile nachbilden helfen, letztere die rausch­ förmigen Sprachanteile. Die eigentliche Lautformung, die beim realen Sprachtrakt durch den Rachen-Mund-Nasenraum geschieht, erfolgt durch das Synthesefilter. Die erzielbare Sprachqualität hängt dabei we­ sentlich von der Anregung des Synthesefilters ab.
Sogenannte Restsignalkodierer, wie zum Beispiel der im digitalen Mobil­ funk derzeit eingesetzte RPE-LTP-Sprachkodierer, erreichen bei ver­ gleichsweise geringer Komplexität und Bitraten deutlich oberhalb 10 kB/s nicht die heutzutage erforderliche Sprachqualität. Nach dem CELP-Prin­ zip (CELP = Code Excfted Linear Prediction) arbeitende Analyse-durch- Synthese Sprachkodierer hingegen, die nicht das Sprachsignal selbst, sondern es beschreibende Parameter übertragen, erreichen im gleichen Bitratenbereich zwar eine deutlich bessere Sprachqualität als Restsignal­ kodierer, dies aber auf Kosten einer erheblich höheren Komplexität, wobei dieser Aufwand wesentlich durch das Absuchen von Codebüchern zur Be­ stimmung der stochastischen Anregung mitverursacht wird.
Wünschenswert wäre demnach, die Anregungsbestimmung zu vereinfa­ chen, ohne die Sprachqualität zu reduzieren. Merkliche Vereinfachungen sind dann zu erwarten, wenn man das Absuchen von Codebüchern mittels eines guten, einfach bestimmbaren Vorauswahlkriteriums auf eine gerin­ ge Anzahl von Codevektoren beschränken oder sogar völlig auf das Absu­ chen des stochastischen Codebuchs verzichten kann, wenn es möglich wä­ re, die stochastische Anregung unmittelbar aus dem Sprachsignal abzu­ leiten, ohne die Übertragungsrate dadurch zu erhöhen. Bislang scheitert dieses Verfahren z. B. bei Bitraten um 13 kB/s, weil es nicht gelingt, das Restsignal mit der verfügbaren Datenrate ausreichend gut zu quantisie­ ren, weswegen man auch bei Zeitbereichs-Ansätzen im Bitratenbereich um 13 kB/s die Bestimmung der stochastischen Anregung nach dem CELP-Prinzip findet.
Aus der DE 90 06 717 U1 ist bereits eine Sprachsynthese bekannt, die ein RPE-Codewort verwendet.
Den Ausgangspunkt der Erfindung bildet eine "ideale RPE-Sequenz". Diese wird, wie seinerzeit von P. Kroon in seiner Dissertation "Time-domain coding of(near) toll qua­ lity speech at rates below 16 kb/s". Delft University of Technology, March 1985, angegeben. ermittelt. Zunächst wird daher auf die Bestimmung der RPE und die im RPE-LTP-Kodierer eingesetzte Variante dieses Anregungs­ typs eingegangen.
Berechnung der "idealen RPE"
Der zu bestimmende Anregungsvektor sei N Abtastwerte lang. Allgemein hat jeder dieser Abtastwerte eine eigene Amplitude und ein eigenes Vorzei­ chen. In der Praxis ist es aus Aufwandsgründen jedoch nötig, die Anzahl von Null verschiedener Pulse zu beschränken. Eine Möglichkeit, diese Auf­ wandsreduktion vorzunehmen, ist die sogenannte Regulärpuls-Anregung (Regular Pulse Excitation). Wenn beispielsweise jeder zweite Puls von Null verschieden ist, gibt es zwei Möglichkeiten. N/2 Pulse in einem Vektor der Länge N so zu plazieren, daß sich zwischen zwei von Null verschiedenen Pulsen jeweils eine Null befindet. Der erste-, dritte-, . . . , Puls ist ungleich Null oder der zweite-, vierte-, . . . Puls ist ungleich Null. Gibt es L von Null verschiedene Pulse, wobei L < = N, dann ist jeder (N/L)-te Puls ungleich Null und es gibt (N-(N/L)*(L-1)) Möglichkeiten, eine RPE-Sequenz zu er­ zeugen (beide Divisionen sind Integer-Divisionen). Der erste von Null ver­ schiedene Puls kann sich auf (N-(N/L)*(L- 1)) verschiedenen Positionen be­ finden. Der im Sinne eines zu approximierenden Zielvektors beste Satz von Amplituden berechnet sich wie folgt. Zunächst sei definiert:
p Zielvektor, (1*N)-Matrix
h Impulsantwort des Synthesefilters, (1*N)-Matrix
H Impulsantwort-Matrix, (N*N)-Matrix
M Verteilung der von Null verschiedenen Pulse im Anregungsvektor, (N*L)-Matrix
b von Null verschiedene Pulsamplituden, (1*L)-Matrix
c Anregungsvektor, (1*N)-Matrix
c′ gefilterte Anregung, (1*N)-Matrix
e Differenz zwischen gefilterter Anregung und Zielsignal (Fehlervektor), (1*N)-Matrix
E Fehlermaß, Skalar
Der Anregungsvektor ist gegeben durch
c = b · M,
der gefilterte Anregungsvektor lautet
c′ = b · M · H.
Der zu minimierende Fehler ist
E = p - c′.
Als Abstandsmaß dient die Summe der quadratischen Fehler.
E = e · eT.
Ersetzen von e in der Gleichung durch die vorgenannten Beziehungen lie­ fert
E=p·pT-2·HT·MT·bT+b·M·H·HT·MT·bT.
Die partielle Ableitung nach den Komponenten des Pulsamplitudenvek­ tors b
führt auf den Satz bester Amplituden für die jeweilige Verteilung der von Null verschiedenen Pulse (Matrix M).
bT=p·HT·MT·(M·H·HT·MT)-1.
Die Impulsantwortmatrix hat nachfolgende Gestalt
Für den Fall L = N/2 ist M durch die beiden nachfolgenden Matrizen gege­ ben
Allgemein befindet sich bei einer RPE in jeder Zeile von M nur ein einziges von Null verschiedenes Element, wobei die n-te Zeile die Position des n-ten Pulses der RPE angibt. Wenn es m Möglichkeiten gibt, mittels L von Null verschiedener Pulse eine RPE zu bilden, nimmt auch die Matrix M m ver­ schiedene Gestalten an. Die "ideale RPE-Sequenz" ist diejenige, die gemäß obiger Rechnung das Fehlermaß E minimiert.
Bestimmung der RPE beim RPE-LTP-Kodierer
Die zuvor beschriebene Bestimmung der RPE erfordert das Lösen eines verkoppelten, linearen Gleichungssystems. Als der RPE-LTP-Kodierer de­ finiert wurde, stand nicht genug Rechenleistung zur Verfügung, um den Algorithmus in einem für den Massenmarkt vorgesehenen Mobiltelefon zu implementieren. Deshalb kommt eine vereinfachte RPE-Variante zum Ein­ satz. Nach Dekorrelationsfilterung des zu übertragenden Sprachsignals verbleibt ein Restsignal, das im interessierenden Frequenzbereich ein the­ oretisch weißes Spektrum aufweist. Wenn alle Spektralkomponenten von gleicher Intensität sind, kann man auf die Übertragung des gesamten Ban­ des verzichten, es genügt, das Basisband zu übertragen, welches man durch Unterabtastung des Restsignals nach vorheriger Tiefpaß-Filterung gewinnt. Dadurch reduziert sich die Anzahl der zu übertragenden Pulse und damit die Übertragungsrate. Decodierseitig kann durch Interpola­ tionsfilterung das nicht übertragene hohe Band zurückgewonnen werden.
Das Restsignal war bei der Berechnung der"idealen RPE" im vorigen Ab­ schnitt nicht explizit erforderlich, so daß beide Verfahren zunächst recht unterschiedlich aussehen. Tatsächlich jedoch ist das beim RPE-LTP-Ko­ dierer eingesetzte Verfahren als Näherung des zuvor beschriebenen Ver­ fahrens interpretierbar. Die oben beschriebene RPE-Berechnung läßt sich gleichwertig durchführen, wenn man sie unter Einbeziehung des Rest­ signals in folgende Schritte untergliedert:
  • - Filterung des Restsignals r(n) mit einem FIR-Filter F(z) der Länge N→ y(n).
  • - Abtastung (Dezimierung) des gefilterten Restsignals → z(n),
  • - Erhöhung der Abtastrate von z(n) auf die ursprüngliche → c(n),
  • - Synthesefilterung dieses Signals → v(n),
  • - Berechnung des Synthesefehlers → E,
  • - Minimierung des Synthesefehlers durch geeignete Wahl der Koeffi­ zienten von F(z) → {f₀, f₁, . . . , fN-1}.
Gesucht sind also diejenigen N Filterkoeffizienten, die bei Filterung und Abtastung des gegebenen Restsignals den minimalen Fehler verursachen. In Matrixschreibweise ergibt sich:
f·A·A′=p·A′
wobei
f (1×N)-Matrix,
R (N×N)-Matrix,
M (Np×N)-Matrix,
p (1×N)-Matrix
und
Die Werte r(0), r(1), . . . , r(N-1) stellen das aktuelle Restsignal dar, r(-(N-1)), r(-(N-2)), . . . , r(-1) sind Werte aus der Signalvergangenheit.
M ist beispielhaft für den Fall angegeben, daß der erste von Null verschie­ dene Puls auf der ersten Position im RPE-Vektor sitzt und jeder zweite Puls von Null verschieden ist:
{a₀, 0, a₁, 0, a₃, 0, . . . aN-2, 0}. Allgemein wird M konstruiert wie oben angegeben.
Aus f · A · A′ = p · A′ kann nun nicht unmittelbar durch Nachmultiplizieren beider Gleichungsseiten mit (A · A′)-1 der Koeffizientenvektor f bestimmt werden, weil die Inverse aufgrund der Konstruktion von A unabhängig vom Restsignal und von der Impulsantwort des Synthesefilters nicht existiert, da die Determinante von A stets Null ist: Ist A symmetrisch, gilt det(A) = det(At). Weiterhin ist det(A · B) = det(A) · det(B) und det(A · B) ≠ 0 und det(B) ≠ 0. R, MtM und H sind quadratische Matrizen gleicher Dimension. Die Restsignalmatrix R kann bei ausreichender Sprachaktivität als inver­ tierbar angenommen werden. Die Impulsantwortmatrix H ist ebenfalls in­ vertierbar, weil sie eine Dreiecksmatrix ist, auf deren Hauptdiagonale stets von Null verschiedene Elemente stehen. MtM hingegen ist nie inver­ tierbar, sie enthält Nullspalten und Nullzeilen. Wenn z. B. der zweite, vier­ te, sechste, . . . Puls in der RPE Null ist, dann befinden sich in der zweiten, vierten, sechsten, . . . Spalte und Zeile in MtM nur Nullen. Fortgesetzte An­ wendung von det(A · B) = det(A) · det(B) ergibt det(A A′) = 0 R, H.
Ein FIR-Filter F(z) der Länge N, mit dem man das Restsignal vor seiner Ab­ tastung filtern müßte, um den kleinstmöglichen Synthesefehler zu erhal­ ten, ist durch Vorgabe der Positionierung der von Null verschiedenen Pul­ se, das Synthesefilter, das Zielsignal und das Restsignal nicht eindeutig bestimmt. Werden nach Filterung des Restsignals m Pulse willkürlich nullgesetzt, fehlen zur Bestimmung der N Filterkoeffizienten m linear un­ abhängige Gleichungen. Der Rang von A ist nur so groß wie die Anzahl von Null verschiedener Pulse.
Bei der Berechnung der "idealen RPE" (siehe oben) wird ebenfalls das hier eingesetzte Fehlermaß benutzt. Die Minimierung des Fehlers muß bei bei­ den Verfahren auf den gleichen resultierenden Synthesefehler führen, denn durch das gewählte Fehlerkriterium ist sichergestellt, daß es, von Randextrema abgesehen, nur ein Minimum gibt. Die Anregungssignale der beiden exakt gleichen Synthesefilter müssen also in beiden Fällen exakt übereinstimmen: der Vektor z aus diesem Abschnitt und der Vektor b aus dem vorigen Abschnitt sind demnach gleich. Setzt man in
f·R·M′·M·H·H′·M′·M·R′=p·H′·M′·M·R′
b=f·R·M′
und nachmultipliziert mit R · M′, so erhält man
b·(M·H·HT·MT)=p·HT·MT,
wenn man die Invertierbarkeit von M · R′ · R · M′ voraussetzt, also die Glei­ chungen zur Berechnung der "idealen RPE". Das Gleichungssystem in f läßt sich formal in das System in b überführen. Umgekehrt läßt sich das System in b in das System in f überführen, wenn man statt b fRMt einsetzt und die Gleichung mit MRt nachmultipliziert.
Beispielhaft sei der Fall für N/2 von null verschiedene Pulse angegeben, wobei sich der erste von null verschiedene Puls auf der ersten Position im RPE-Vektor befindet.
Als Gleichungssystem in f geschrieben folgt
Zur Berechnung der N Filterkoeffizienten stehen nur N/2 Gleichungen zur Verfügung. Das System ist mit beliebig vielen verschiedenen Koeffizien­ tenvektoren f erfüllbar. Weil es zur Minimierung des Synthesefehlers aber genügt, das Gleichungssystem irgendwie zu erfüllen, wählt man sinnvol­ lerweise einen "bequemen" Koeffizientensatz für die (N-m) wählbaren Koef­ fizienten, m = Rang (A), multipliziert mit der vorstehenden Matrix und schafft die entstehenden Konstanten auf die rechte Gleichungsseite. Da­ mit ist das verbleibende System reduzierter Ordnung eindeutig lösbar.
Beim RPE-LTP Kodierer wird das Filter F(z) nicht neu berechnet, wenn sich Zielsignal und Impulsantwort des Synthesefilters verändert haben. Die Filterkoeffizienten sind konstant. Der Betragsfrequenzgang dieses Filters hat den Verlauf eines als "typisch" angesehenen Sprachspektrums. Hier­ bei handelt es sich um einen Tiefpaß mit weichem Übergang vom Durch­ laß- in den Sperrbereich. Die Grenzfrequenz liegt im Bereich um 1300 Hz. Das Filter F(z) kann als Tiefpaßfilter vor dem Abtaster angesehen werden. Allerdings entstehen durch den weichen Übergang vom Durchlaß- in den Sperrbereich Alias-Komponenten. Insgesamt stellt diese Vorgehensweise eine recht grobe Näherung dar. Der Betragsfrequenzgang von F(z) variiert nämlich nicht unerheblich.
In der Praxis läßt sich das Sprachsignal durch lineare Dekorrelationsfilte­ rung nicht völlig dekorrelieren. Das Spektrum ist deshalb nicht weiß, son­ dern gegenüber dem Ursprungsspektrum lediglich flacher und insgesamt von geringerer Intensität. Die Annahme, bereits durch Kenntnis des Basis­ bandes das gesamte Band zu kennen, ist eine grobe Näherung und verur­ sacht besonders bei Sprechern mit hohen Stimmen einen nicht unerhebli­ chen Fehler, der beim RPE-LTP-Kodierer deutlich in Erscheinung tritt, weil nur das unterste Drittel des Gesamtbandes übertragen wird, was der Unterabtastung mit dem Faktor 3 entspricht.
Dennoch werden zur Übertragung der stochastischen Anregung 45 Bit/5ms benötigt, entsprechend 9 kB/s. Eine weniger genaue Quantisie­ rung der einzelnen Pulse führt auf eine klar schlechtere Sprachqualität, eine Verbesserung derselben ist durch Reduktion des Unterabtastungs­ faktors möglich, erhöht aber die Übertragungsrate. Dieser Weg scheidet zur Verbesserung des RPE-LTP-Kodierers deshalb aus. Neben den durch die Art und Weise, wie die RPE ermittelt wird, verursachten Qualitätsein­ bußen reduzieren weitere beim RPE-LTP-Kodierer aus Aufwandsgründen seinerzeit erforderlichen Beschränkungen die Qualität. So findet ein Syn­ thesefilter von nur achter Ordnung Anwendung. Die Langzeitprädiktion erfolgt mittels eines einstufigen Prädiktors. Die zugehörige Verstärkung wird grobstufig skalar quantisiert.
Versuche, den RPE-LTP-Kodierer zu verbessern, schienen deshalb bei der Suche nach einem Algorithmus für einen deutlich verbesserten Sprachko­ dierer für das digitale Mobilfunknetz nicht sinnvoll. Diese weit verbreitete Annahme hat dazu geführt, daß auch der Anregungstyp RPE für moderne Zeitbereichskodierer de facto nicht mehr in Betracht gezogen wurde und die nach dem RPE-LTP-Kodierer entwickelten Zeitbereichssprachkodierer im wesentlichen nach dem CELP-Prinzip arbeiten und ihre stochastische Anregung durch aufwendiges Absuchen von trainierten oder algebraisch konstruierten Codebüchern ermittelten.
CELP-Prinzip
Abb. 1 zeigt das CELP-Prinzip, wie es typischerweise eingesetzt wird. Ein zu approximierendes Zielsignal wird durch Absuchen (mindestens) zweier Codebücher nachgebildet. Dabei unterscheidet man zwischen ei­ nem adaptiven Codebuch (a2), dessen Aufgabe die Nachbildung der har­ monischen Sprachanteile ist und einem/oder mehreren stochastischen Codebüchern (a4), die zur Synthese der nicht aus Prädiktion gewinnbaren Sprachanteile dienen. Das adaptive Codebuch (a2) ändert sich abhängig vom Sprachsignal, während das stochastische Codebuch (a4) zeitinvari­ ant ist. Die Suche nach den besten Codevektoren läuft derart ab, daß nicht eine gemeinsame, d. h. gleichzeitige Suche in den Codebüchern stattfin­ det, wie es für eine optimale Auswahl der Codevektoren erforderlich wäre, sondern aus Aufwandsgründen zunächst das adaptive Codebuch (a2) durchsucht wird. Ist der gemäß des Fehlerkriteriums beste Codevektor ge­ funden, subtrahiert man dessen Beitrag zum rekonstruierten Zielsignal vom Zielvektor (Zielsignal) und erhält den durch einen Vektor aus dem sto­ chastischen Codebuch (a4) noch zu rekonstruierenden Teil des Ziel­ signals. Die Suche in den einzelnen Codebüchern erfolgt nach dem glei­ chen Prinzip. In beiden Fällen wird der Quotient aus dem Quadrat der Kor­ relation des gefilterten Codevektors mit dem Zielvektor und der Energie des gefilterten Zielvektors für alle Codevektoren berechnet. Derjenige Co­ devektor, der diesen Quotienten maximiert, wird als bester Codevektor an­ gesehen, der das Fehlerkriterium (a5) minimiert. Die vorgeschaltete Feh­ lergewichtung (a6) gewichtet den Fehler entsprechend der Charakteristik des menschlichen Gehörs. Seine Position wird an den Decoder übertragen. Durch die Berechnung des genannten Quotienten wird für jeden Codevek­ tor implizit der richtige Verstärkungsfaktor (Verstärkung 1, Verstärkung 2) ermittelt. Nachdem der beste Kandidat aus beiden Codebüchern be­ stimmt ist, kann man durch eine gemeinsame Optimierung der Verstär­ kung den qualitätsmindernden Einfluß des sequentiell durchgeführten Codebuchsuchens reduzieren. Dabei gibt man den ursprünglichen Ziel­ vektor erneut vor und berechnet zu den nun ausgewählten Codevektoren passend die besten Verstärkungen, die sich meist geringfügig von denen unterscheiden, die während des Codebuchsuchens ermittelt wurden.
Das CELP-Prinzip ist dadurch gekennzeichnet, daß zum Auffinden des be­ sten Codevektors jeder Kandidatenvektor einzeln gefiltert (a3) und mit dem Zielsignal verglichen werden muß. Dieser Vorgang verursacht trotz des sequentiellen Absuchens beider Codebücher einen erheblichen Auf­ wand, der bei der in der ersten CELP-Veröffentlichung vorgeschlagenen Codebuchgröße von 1024 Vektoren nicht einmal auf leistungsfähigen Fließkomma-Signalprozessoren in Echtzeit zu bewältigen ist. Der Schwer­ punkt der Arbeiten an CELP-Kodierern beschäftigte (und beschäftigt) sich deshalb mit der Frage, wie man die Vorteile des CELP-Prinzips nutzen kann, ohne den Nachteil des hohen Rechenaufwands inkaufnehmen zu müssen.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur Sprachsyn­ these zu schaffen, bei dem man im angegebenen Bitratenbereich auf das Absuchen stochastischer Codebücher völlig verzichten kann, ohne die Sprachqualität zu beeinträchtigen und ohne die Übertragungsrate vergli­ chen mit dem Einsatz stochastischer Codebücher zu erhöhen.
Die Lösung der gestellten Aufgabe ist im Anspruch 1 angegeben. Vorteil­ hafte Weiterbildungen der Erfindung sind den Unteransprüchen zu ent­ nehmen.
Gemäß der Erfindung wird ein Verfahren zur Synthese eines Rahmens ei­ nes Sprachsignals in einem Sprachcoder/-decoder vom CELP-Typ zur Ver­ fügung gestellt, bei dem einem Synthesefilter des Sprachcoders ein Anre­ gungsvektor zugeführt wird, der aus einer adaptiven Anregungskompo­ nente a und einer stochastischen Anregungskomponente c besteht, wobei die stochastische Anregungskomponente c durch folgende Parameter ge­ bildet wird, die einer zuvor errechneten idealen RPE-Sequenz entnommen werden:
  • a) Die Position des ersten von Null verschiedenen Pulses in der idealen RPE-Sequenz,
  • b) die Positionen einer vorgewählten Anzahl von betragsgrößten Pulsen der idealen RPE-Sequenz,
  • c) die Amplituden dieser betragsgrößten Pulse, und
  • d) die Vorzeichen dieser betragsgrößten Pulse,
und wobei diese Parameter ferner zum Sprachdecoder übertragen werden, um auch dort die stochastische Anregungskomponente c zu erzeugen.
Fast alle Zeitbereichskodierer besitzen heutzutage eine ähnliche Struk­ tur. Die Synthesefilter-Koeffizienten eines Filters zehnter Ordnung wer­ den oft in Reflexionsfaktoren oder in "Line Spectrum Frequencies" (LSFs) umgerechnet und (vektor-) quantisiert. Die Anregung des Synthesefilters setzt sich aus der gewichteten Überlagerung der adaptiven Anregung und der stochastischen Anregung zusammen. Beide Anregungsbestandteile werden sequentiell durch eine mehr oder weniger suboptimal durchge­ führte Codebuchsuche bestimmt, wobei die adaptive Anregung, also der durch Wiederholung alter Anregungswerte gewinnbare Anregungsbe­ standteil, zuerst ermittelt wird. Der Grad der Suboptimalität beim Absu­ chen der Codebücher entscheidet über Rechenaufwand und Sprachquali­ tät. Das Ziel ist, möglichst wenige Codevektoren innerhalb der Analyse- durch-Syntheseschleife zu untersuchen, damit der Rechenaufwand be­ grenzt wird. Dazu ist eine einfache aber gute Vorauswahl der innerhalb der Schleife zu untersuchender Codevektoren erforderlich. Die Vektorquanti­ sierung der Anregung erlaubt einerseits die Reduktion der Übertragungs­ rate und verursacht andererseits bei gleicher Übertragungsrate wie eine Skalarquantisierung einen geringeren Quantisierungsfehler.
Das hier beschriebene neue Verfahren nach der Erfindung zur Ermittlung der stochastischen Anregung unterscheidet sich von diesem Ansatz erheb­ lich. Es wird kein Vorauswahlkriterium benutzt und die stochastische An­ regung wird auch nicht vektorquantisiert. Es handelt sich auch nicht um eine Skalarquantisierung im herkömmlichen Sinne, bei der man bestrebt ist, die übertragenen Pulse möglichst genau zu quantisieren. Das wesent­ liche Qualitätsproblem beim RPE-LTP-Kodierer ist, daß die RPE eine um den Faktor Drei unterabgetastete Version des dekorrelierten Sprach­ signals ist. Selbst eine exakte Quantisierung der RPE-Pulse erhöht die Qualität nur unwesentlich. Eine Reduktion des Unterabtastungsfaktors auf zwei erhöht die Qualität zwar merklich, bedingt aber auch eine erheb­ lich höhere Übertragungsrate. Weil die Übertragungsrate des Kodierers aber nicht steigen darf, scheidet dieser Weg aus.
Beim RPE-LTP-Kodierer kommt eine recht grobe Langzeitprädiktion zum Einsatz, so daß auch die RPE noch harmonische Sprachanteile beitragen muß. In heutigen Analyse - durch Synthese - Kodierern hingegen erfolgt die Langzeitprädiktion erheblich genauer als im RPE-LTP-Kodierer, so daß die verbleibende stochastische Anregung tatsächlich im wesentlichen rauschförmigen Charakter besitzt und die richtige Phasenlage der stocha­ stischen Anregung wesentlich wichtiger ist als eine genaue Quantisierung der Amplituden. Diesem Umstand ist es auch zu verdanken, daß ACELPs (Algebraic Code Exicited Linear Prediction) mit Codeworten, die nur eine oder zwei Amplitudenstufen zulassen, gute Ergebnisse liefern. Bei einem ACELP beantwortet eine Codebuchsuche die Frage, auf welchen Pulsposi­ tionen Pulse plaziert werden müssen. Die Beantwortung dieser Frage ver­ ursacht allgemein einen erheblichen Aufwand, auch wenn die Codeworte nur aus Nullen und Einsen bestehen und die Vorzeichen schon durch sub­ optimale Methoden vorab ermittelt wurden.
Dieser Aufwand ist zumindest z. B. im Bitratenbereich um 13 kB/s ent­ behrlich. Die Positionen, auf denen von Null verschiedene Pulse sitzen müssen, lassen sich auch ohne hörbare Qualitätseinbuße einer mit erheb­ lich geringerem Aufwand berechneten "idealen RPE" entnehmen.
Um den Rechenaufwand bei der Lösung des Gleichungssystems zur Be­ stimmung der "idealen" RPE zu reduzieren, kann man erfindungsgemäß die stochastische Anregung z. B. alle 2,5 ms neu bestimmen. Das ent­ spricht einer Unterrahmenlänge von N = 20 Abtastwerten. In diesem Fall ist ein Gleichungssystem zehnter Ordnung zu lösen. Die sich ergebenden Amplituden der "idealen RPE" werden nun betrachtet, um die "überleben­ den Pulse" zu finden. Zumindest die Hälfte der RPE-Amplituden sind rela­ tiv klein. Nur einige wenige Amplituden besitzen eine große Amplitude. Es ist ausreichend, die großen Amplituden überleben zu lassen, sie z. B. be­ tragsmäßig gleich zu machen und dann nur noch deren Position und Vor­ zeichen an den Decoder zu übertragen. Drei bis fünf der betragsgrößten Pulse genügen für gute/sehr gute Sprachqualität. Die auf diesem Weg er­ haltene Anregung hat die Gestalt einer Pseudo-MPE (Multi Pulse Excita­ tion).
Die Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnung nä­ her beschrieben. Es zeigen:
Fig. 1 die Darstellung des CELP-Prinzips, wie es herkömmlicherweise eingesetzt wird;
Fig. 2 eine Darstellung zur erfindungsgemäßen Erzeugung einer stocha­ stischen Anregung (Fig. 2b) in Abhängigkeit einer idealen RPE Sequenz (Fig. 2a);
Fig. 3 ein beim erfindungsgemäßen Verfahren verwendeter Sprachcoder; und
Fig. 4 ein beim erfindungsgemäßen Verfahren verwendeter Sprachdeco­ der.
Die Abb. 2 zeigt, wie bei einem Ausführungsbeispiel der Erfindung aus einer idealen RPE nach Fig. 2a eine stochastische Anregung nach Fig. 2b erzeugt wird. Aus der idealen RPE werden dazu folgende Parameter bzw. Größen entnommen:
  • - Die Position des ersten von Null verschiedenen Pulses in der idealen RPE;
  • - die Positionen der überlebenden Pulse, also derjenigen Pulse, deren Amplitude größer als eine vorgegebene Schwelle ist; und
  • - die Vorzeichnen dieser überlebenden Pulse.
Dabei sind vorzugsweise die Amplituden der überlebenden Pulse alle gleich bzw. normiert, z. B. auf Eins, so daß die Vorzeichenangabe auch gleich der Amplitudenangabe ist, was dem Coder mitgeteilt werden muß.
Zur Bestimmung der Anregung ist eine exakte Bestimmung der Amplitu­ den durch Lösung eines verkoppelten Gleichungssystems nicht unbedingt erforderlich. Die entsprechenden Pulspositionen und Vorzeichen lassen sich auch einem suboptimal gelösten System entnehmen. Hier kommen al­ le Möglichkeiten in Betracht, bei denen Amplituden, Positionen und Vor­ zeichen der großen Pulse weitgehend erhalten bleiben. Eine dieser Mög­ lichkeiten ist, die Pulse sequentiell zu ermitteln, indem man zunächst den ersten Puls bestimmt, dessen Beitrag am rekonstruierten Zielsignal vom Zielsignal p subtrahiert, dann den zweiten Puls berechnet, usw.
Das beschriebene Verfahren zur Gewinnung einer Pseudo-MPE aus einer "idealen" RPE ist eine kombinierte "closed-loop" / "open-loop" Methode. Die "ideale" RPE ist bezüglich des zu approximierenden Zielsignals optimal (closed-loop"), während die Quantisierung der "Idealen" RPE nicht mit Blick auf dieses Zielsignal erfolgt, sondern von den Positionen der maxi­ malen Pulse im RPE-Vektor abhängt ("open-loop"). Dadurch wird der Re­ chenaufwand zur Quantisierung vernachlässigbar klein. Das in Sprach­ kodierern in diesem Bitratenbereich ansonsten übliche sehr aufwendige Absuchen stochastischer Codebücher entfällt.
Die Anwendung dieses Verfahrens wird anhand eines beispielhaften Sprachkodierers im folgenden demonstriert, ist aber nicht auf diesen be­ schränkt.
Abb. 3 zeigt den Sprachkodierer. Nach Abtastung des analogen Sprachsignals im Block 0 wird das digitale Sprachsignal einer Fensterung 2 unterzogen, bevor die LPC-Analyse 3 zur Ermittlung der Koeffizienten des Synthesefilters 11, 12 durchgeführt wird. Zweck der Fensterung ist, die Abschneideeffekte durch die endliche Länge des LPC-Analyseintervalls zu verringern. Das Synthesefilter ist in zwei Blöcke aufgeteilt, wobei Block 11 den Ausschwinganteil des Filters aufgrund der Werte im Filtergedächt­ nis darstellt und Block 12 das Synthesefilter mit nullgesetztem Gedächt­ nis zu Beginn einer jeden Filterung. Die Überlagerung beider Ausgangs­ signale ist das Ausgangssignal des Synthesefilters. Vor ihrer Quantisie­ rung 5 erfolgt die Umrechnung 4 der direkten Filterkoeffizienten in "Line- Spectrum-Frequencies" (LSF), die günstigere Eigenschaften bezüglich der Quantisierung aufweisen als direkte Filterkoeffizienten. Die LSFs werden dann quantisiert 5 und die Positionen in den entsprechenden LSF-Code­ büchern werden an den Decoder übertragen. Das gefensterte digitale Sprachsignal wird durch einen Lautstärkewert charakterisiert 7, der pro­ portional der im Signal enthaltenen Energie ist. Dieser Wert wird logarith­ misch quantisiert 8 und ebenfalls an den Decoder übertragen. Im Kodierer werden die quantisierten Werte der LSFs und der Lautstärke benutzt, ebenso wie im Decoder. Vor ihrer Verwendung werden die quantisierten LSFs wieder in direkte Filterkoeffizienten umgerechnet 6 und wie die Laut­ stärke mit den entsprechenden Werten des letzten Analyseintervalls linear interpoliert 9. Die vorgenannten Rechnungen erfolgen einmal pro Analyse­ rahmen, der hier 160 Abtastwerte entsprechend 20 ms lang ist.
Die nachfolgenden Berechnungen erfolgen acht mal je Analyserahmen, al­ so alle 2,5 ms. Der erste Schritt ist die Berechnung des aktuellen Ziel­ signals, welches nachgebildet werden soll. Dazu subtrahiert man zu­ nächst den Ausschwinganteil des Synthesefilters 11 aufgrund vorange­ gangener Anregungen vom wichtungsgefilterten digitalen Sprachsignal aus Block 1. Die Wichtungsfilterung betont für das Gehör wichtige Berei­ che im Sprachsignal. Nun erfolgt die Bestimmung der adaptiven Anregung a. Sie wird dem adaptiven Codebuch 10 entnommen, das eine bestimmte Anzahl vergangener Anregungswerte des Synthesefilters enthält. Dieses Codebuch 10 verändert nach jedem Unterrahmen seinen Inhalt. Es wird derjenige Anregungsvektor a aus dem adaptiven Codebuch ausgewählt, dessen gefilterte und mit einem Verstärkungsfaktor (Verstärkung 1) ska­ lierte Version den im Sinne eines willkürlich gewählten Fehlerkriteriums, hier quadratischer Fehler, kleinsten Abstand zum Zielvektor p aufweist. Nach Bestimmung der gefilterten und skalierten adaptiven Anregung a wird diese vom Zielvektor p subtrahiert. Es verbleibt der durch den stocha­ stischen Anregungsvektor c zu minimierende Restfehler. Dieser Anre­ gungsvektor c wird nun keinem Codebuch entnommen, wie es bei solchen Kodierern normalerweise üblich ist, sondern aus dem Zielsignal p und der Impulsantwort h des Synthesefilters unmittelbar berechnet: Aus den ge­ nannten Signalen wird, wie oben erläutert, die "ideale" RPE in Block 13 be­ stimmt. Der Anregungsgenerator 14 bestimmt die Positionen z. B. der fünf betragsgrößten Pulse und dessen Vorzeichen und setzt die restlichen RPE- Pulse zu Null. Die überlebenden Pulse erhalten den gleichen Betrag und werden nur noch durch ihre Vorzeichen unterschieden. Nachdem beide Anregungsteilvektoren (adaptiver a und stochastischer c Anregungsvek­ tor) bekannt sind, werden die Verstärkungsfaktoren gemeinsam optimiert und vektorquantisiert 15.
Beim Sprachdecoder nach Fig. 4 befindet sich anstelle des sonst vorhan­ denen stochastischen Codebuchs ein Anregungsgenerator 24, der die o. e. Parameter vom Sprachcoder empfängt, also die Position des ersten von Null verschiedenen Pulses der idealen RPE-Sequenz, die Positionen der überlebenden Pulse sowie die Vorzeichen der überlebenden Pulse. Aus die­ sen Parametern wird der stochastische Anregungsvektor c gebildet, der nach Verstärkung dem Synthesefilter 21 zugeführt wird.
Die vom Decoder sonst durchzuführenden Verarbeitungsschritte entspre­ chen im wesentlichen denen, die auch schon im Coder ausgeführt wurden, allerdings mit der Ausnahme, daß die zur Konstruktion der Filterkoeffi­ zienten und der Anregung erforderlichen Codevektoren aus den verschie­ denen Codebüchern aufgrund der vom Coder übermittelten Positionsan­ gaben unmittelbar entnommen werden. Darüber hinaus erfolgt noch eine Nachverarbeitung des synthetischen Sprachsignals, das sich am Ausgang des LPC-Synthesefilters 21 ergibt. Das Nachverarbeitungsfilter 22 betont die für den Höreindruck wichtigen Regionen im Sprachsignal und hilft, Störungen, die sich durch die Kodierung selbst und durch mögliche Über­ tragungsfehler ergeben haben, zumindest teilweise zu verdecken. Nach abschließender D/A-Wandlung 23 steht wieder ein analoges Sprachsignal zur Verfügung.

Claims (5)

1. Verfahren zur Synthese eines Rahmens eines Sprachsignals in einem Sprachcoder/-decoder vom CELP-Typ, bei dem einem Synthesefilter (12) des Sprachcoders ein Anregungsvektor zugeführt wird, der aus einer adaptiven Anregungskomponente (a) und einer stochastischen Anre­ gungskomponente (c) besteht, wobei die stochastische Anregungskompo­ nente |(c)| durch folgende Parameter gebildet wird, die einer zuvor errechne­ ten idealen RPE-Sequenz (Regular Pulse Excitation Sequence) entnommen werden:
  • a) die Position des ersten von Null verschiedenen Pulses in der idealen RPE-Sequenz,
  • b) die Positionen einer vorgewählten Anzahl von betragsgrößten Pulsen der idealen RPE-Sequenz,
  • c) die Amplituden dieser betragsgrößten Pulse, und
  • d) die Vorzeichen dieser betragsgrößten Pulse,
und wobei diese Parameter ferner zum Sprachdecoder übertragen werden, um auch dort die stochastische Anregungskomponente (c) zu erzeugen.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Am­ plituden der entnommenen betragsgrößten Pulse den gleichen, beliebig wählbaren Betrag erhalten.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die vorgewählte Anzahl von betragsgrößten Pulsen im Bereich von N/6 . . . N/4 liegt, wobei N die Anzahl von Abtastwerten in einem Unterrahmen ei­ nes Analyserahmens ist.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß die sto­ chastische Anregungskomponente (c) für jeden Unterrahmen neu berech­ net wird.
DE19641619A 1996-10-09 1996-10-09 Verfahren zur Synthese eines Rahmens eines Sprachsignals Expired - Fee Related DE19641619C1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE19641619A DE19641619C1 (de) 1996-10-09 1996-10-09 Verfahren zur Synthese eines Rahmens eines Sprachsignals
EP97116746A EP0836176A3 (de) 1996-10-09 1997-09-25 Verfahren zur Synthese eines Rahmens eines Sprachsignals
US08/947,419 US6041298A (en) 1996-10-09 1997-10-08 Method for synthesizing a frame of a speech signal with a computed stochastic excitation part

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19641619A DE19641619C1 (de) 1996-10-09 1996-10-09 Verfahren zur Synthese eines Rahmens eines Sprachsignals

Publications (1)

Publication Number Publication Date
DE19641619C1 true DE19641619C1 (de) 1997-06-26

Family

ID=7808273

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19641619A Expired - Fee Related DE19641619C1 (de) 1996-10-09 1996-10-09 Verfahren zur Synthese eines Rahmens eines Sprachsignals

Country Status (3)

Country Link
US (1) US6041298A (de)
EP (1) EP0836176A3 (de)
DE (1) DE19641619C1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859775B2 (en) * 2001-03-06 2005-02-22 Ntt Docomo, Inc. Joint optimization of excitation and model parameters in parametric speech coders
JP3582589B2 (ja) * 2001-03-07 2004-10-27 日本電気株式会社 音声符号化装置及び音声復号化装置
US6662154B2 (en) * 2001-12-12 2003-12-09 Motorola, Inc. Method and system for information signal coding using combinatorial and huffman codes
EP1761916A1 (de) * 2004-06-22 2007-03-14 Koninklijke Philips Electronics N.V. Audiocodierung und -decodierung
EP2128855A1 (de) * 2007-03-02 2009-12-02 Panasonic Corporation Sprachcodierungseinrichtung und sprachcodierungsverfahren

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE9006717U1 (de) * 1990-06-15 1991-10-10 Philips Patentverwaltung Gmbh, 2000 Hamburg, De

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69029120T2 (de) * 1989-04-25 1997-04-30 Toshiba Kawasaki Kk Stimmenkodierer
SE463691B (sv) * 1989-05-11 1991-01-07 Ericsson Telefon Ab L M Foerfarande att utplacera excitationspulser foer en lineaerprediktiv kodare (lpc) som arbetar enligt multipulsprincipen
US5091945A (en) * 1989-09-28 1992-02-25 At&T Bell Laboratories Source dependent channel coding with error protection
US5701392A (en) * 1990-02-23 1997-12-23 Universite De Sherbrooke Depth-first algebraic-codebook search for fast coding of speech
CA2010830C (en) * 1990-02-23 1996-06-25 Jean-Pierre Adoul Dynamic codebook for efficient speech coding based on algebraic codes
FI98104C (fi) * 1991-05-20 1997-04-10 Nokia Mobile Phones Ltd Menetelmä herätevektorin generoimiseksi ja digitaalinen puhekooderi
FI90477C (fi) * 1992-03-23 1994-02-10 Nokia Mobile Phones Ltd Puhesignaalin laadun parannusmenetelmä lineaarista ennustusta käyttävään koodausjärjestelmään
FI95085C (fi) * 1992-05-11 1995-12-11 Nokia Mobile Phones Ltd Menetelmä puhesignaalin digitaaliseksi koodaamiseksi sekä puhekooderi menetelmän suorittamiseksi
FI98164C (fi) * 1994-01-24 1997-04-25 Nokia Mobile Phones Ltd Puhekooderin parametrien käsittely tietoliikennejärjestelmän vastaanottimessa
FI98163C (fi) * 1994-02-08 1997-04-25 Nokia Mobile Phones Ltd Koodausjärjestelmä parametriseen puheenkoodaukseen
US5602961A (en) * 1994-05-31 1997-02-11 Alaris, Inc. Method and apparatus for speech compression using multi-mode code excited linear predictive coding
FR2729245B1 (fr) * 1995-01-06 1997-04-11 Lamblin Claude Procede de codage de parole a prediction lineaire et excitation par codes algebriques
EP0773533B1 (de) * 1995-11-09 2000-04-26 Nokia Mobile Phones Ltd. Verfahren zur Synthetisierung eines Sprachsignalblocks in einem CELP-Kodierer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE9006717U1 (de) * 1990-06-15 1991-10-10 Philips Patentverwaltung Gmbh, 2000 Hamburg, De

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NL-Dissertation: KROON, P.: "Time-domain coding of (near) toll quality speech at rates below 16 kb/s", Delft University of Technology, März 1985 *

Also Published As

Publication number Publication date
EP0836176A3 (de) 1999-01-13
US6041298A (en) 2000-03-21
EP0836176A2 (de) 1998-04-15

Similar Documents

Publication Publication Date Title
DE19604273C2 (de) Verfahren und Vorrichtung zum Durchführen einer Suche in einem Kodebuch im Hinblick auf das Kodieren eines Klangsignales, Zellkommunikationssystem, Zellnetzwerkelement und mobile Zell-Sender-/Empfänger-Einheit
DE60006271T2 (de) Celp sprachkodierung mit variabler bitrate mittels phonetischer klassifizierung
DE60225400T2 (de) Verfahren und Vorrichtung zur Verarbeitung eines dekodierten Sprachsignals
DE69726525T2 (de) Verfahren und Vorrichtung zur Vektorquantisierung und zur Sprachkodierung
DE69534942T2 (de) System zur sprecher-identifizierung und-überprüfung
DE60121405T2 (de) Transkodierer zur Vermeidung einer Kaskadenkodierung von Sprachsignalen
DE69619284T3 (de) Vorrichtung zur Erweiterung der Sprachbandbreite
DE69634179T2 (de) Verfahren und Vorrichtung zur Sprachkodierung und -dekodierung
DE60029990T2 (de) Glättung des verstärkungsfaktors in breitbandsprach- und audio-signal dekodierer
DE19609170B4 (de) Verfahren zur Durchführung einer &#34;Tiefe-Zuerst&#34;-Suche in einem Codebuch zur Codierung eines Geräusch- bzw. Klangsignales, Vorrichtung zur Durchführung dieses Verfahrens sowie zellulares Kommunikationssystem mit einer derartigen Vorrichtung
DE69837822T2 (de) Verfahren und Vorrichtung zur Dekodierung von Sprachsignalen
DE69928288T2 (de) Kodierung periodischer sprache
DE2659096C2 (de)
DE19647298C2 (de) Kodiersystem
DE69734837T2 (de) Sprachkodierer, sprachdekodierer, sprachkodierungsmethode und sprachdekodierungsmethode
DE69729527T2 (de) Verfahren und Vorrichtung zur Kodierung von Sprachsignalen
DE69033510T3 (de) Numerischer sprachcodierer mit verbesserter langzeitvorhersage durch subabtastauflösung
DE2229149A1 (de) Verfahren zur Übertragung von Sprache
DE69720861T2 (de) Verfahren zur Tonsynthese
DE60309651T2 (de) Verfahren zur Sprachkodierung mittels verallgemeinerter Analyse durch Synthese und Sprachkodierer zur Durchführung dieses Verfahrens
DE4491015C2 (de) Verfahren zum Erzeugen eines Spektralrauschbewertungsfilters zur Verwendung in einem Sprachcoder
DE19722705A1 (de) Verfahren zur Abschätzung der Verstärkung zur Sprachkodierung
DE69725945T2 (de) Sprachkodierer mit niedriger Bitrate
DE60016305T2 (de) Verfahren zum Betrieb eines Sprachkodierers
DE69921066T2 (de) Verfahren und Vorrichtung zur Sprachkodierung

Legal Events

Date Code Title Description
8100 Publication of patent without earlier publication of application
D1 Grant (no unexamined application published) patent law 81
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee