DE60224142T2 - Verfahren und Vorrichtung zur Wellenformdämpfung von fehlerbehafteten Sprachrahmen - Google Patents

Verfahren und Vorrichtung zur Wellenformdämpfung von fehlerbehafteten Sprachrahmen Download PDF

Info

Publication number
DE60224142T2
DE60224142T2 DE60224142T DE60224142T DE60224142T2 DE 60224142 T2 DE60224142 T2 DE 60224142T2 DE 60224142 T DE60224142 T DE 60224142T DE 60224142 T DE60224142 T DE 60224142T DE 60224142 T2 DE60224142 T2 DE 60224142T2
Authority
DE
Germany
Prior art keywords
signal
frame
extrapolated
speech
waveform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60224142T
Other languages
English (en)
Other versions
DE60224142D1 (de
Inventor
Juin-Hwey Irvine Chen
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.)
Broadcom Corp
Original Assignee
Broadcom Corp
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 Broadcom Corp filed Critical Broadcom Corp
Application granted granted Critical
Publication of DE60224142D1 publication Critical patent/DE60224142D1/de
Publication of DE60224142T2 publication Critical patent/DE60224142T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/005Correction of errors induced by the transmission channel, if related to the coding algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Television Receiver Circuits (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Verarbeiten eines extrapolierten Signals. Insbesondere betrifft die vorliegende Erfindung das Verbessern der Sprachqualität, wenn Rahmen eines komprimierten Bitstroms, die ein Sprachsignal darstellen, im Zusammenhang mit einem digitalen Kommunikationssystem verloren gehen.
  • Bei der Sprachcodierung, die manchmal auch als Sprachkomprimierung bezeichnet wird, codiert ein Codierer ein Eingangs-Sprach- oder -Audiosignal zur Übertragung in einen digitalen Bitstrom. Ein Decodierer decodiert den Bitstrom in ein Ausgangs-Sprachsignal. Die Kombination aus Codierer und Decodierer wird als Codec bezeichnet. Der übertragene Bitstrom wird in der Regel in Rahmen unterteilt. Bei drahtlosen oder paketgebundenen Netzwerken gehen Rahmen aus übertragenen Bits manchmal verloren, werden gelöscht oder beschädigt. Diese Bedingung wird bei der drahtlosen Kommunikation als Rahmenverlust bezeichnet. Dieselbe Bedingung des Rahmenverlusts kann in paketgebundenen Netzwerken aufgrund des Verlusts von Paketen auftreten. Wenn ein Rahmenverlust auftritt, kann der Decodierer keine normalen Decodiervorgänge durchführen, weil in dem verloren gegangenen Rahmen keine zu decodierenden Bits enthalten sind. Während des Rahmenverlusts muss der Decodierer FEC-Vorgänge zur Verschleierung von Rahmenverlusten (Frame Erasure Concealment) durchführen, um zu versuchen, die qualitätsmindernden Auswirkungen des Rahmenverlusts zu verbergen.
  • Eine der frühesten FEC-Techniken ist die auf einem Musterabgleich basierende "Waveform Substitution", wie von Goodman et al. in dem Dokument "Waveform Substitution Techniques for Recovering Missing Speech Segments in Packet Voice Communications", IEEE Transaction an Acoustics, Speech and Signal Processing, Dezember 1986, Seiten 1440–1448 vorgeschlagen. Dieses Schema wurde auf den PCM-Sprach-Codec (Puls-Code-Modulation) angewendet, der Abtastung für Abtastung eine sofortige Quantisierung der Sprach-Wellenform direkt durchführt. Dieses FEC-Schema verwendet ein unmittelbar vor dem verloren gegangenen Rahmen befindliches Stück decodierter Sprach-Wellenform als Schablone und gibt diese Schablone rechtzeitig zurück, um ein passendes Stück decodierte Sprach-Wellenform zu finden, das eine Art Wellenform-Ähnlichkeits-Maß maximiert (oder ein Wellenform-Differenz-Maß minimiert).
  • In dem FEC-Schema von Goodman wird dann der unmittelbar nach einem am besten passenden Wellenform-Segment befindliche Abschnitt der Wellenform als Ersatz-Wellenform für den verloren gegangenen Rahmen verwendet. Um Unterbrechungen an Rahmengrenzen zu eliminieren, verwendet das Schema außerdem ein Hanning-Fenster (Raised-Cosinus-Fenster), um eine Überlagerungs-Additions-Technik zwischen der korrekt decodierten Wellenform und der Ersatz-Wellenform durchzuführen. Diese Überlagerungs-Additions-Technik vergrößert die Verzögerung bei der Codierung. Die Verzögerung tritt auf, weil an dem Ende jedes Rahmens viele Sprach-Abtastungen vorhanden sind, die überlagernd addiert werden müssen, um die endgültigen Werte zu erhalten, und somit erst abgespielt werden können, wenn der nächste Sprachrahmen decodiert ist.
  • Auf der Grundlage der vorgenannten Arbeit von Goodman entwickelte David Kapilow eine ausgefeiltere Version eines FEC-Schemas für den G.711-PCM-Codec. Dieses FEC-Schema ist in Anhang I der ITU-T-Empfehlung G.711 beschrieben. Sowohl das FEC-Schema von Goodman als auch das FEC-Schema von Kapilow sind jedoch auf PCM-Codecs mit sofortiger Quantisierung beschränkt.
  • Für die Sprachcodierung basiert der am häufigsten verwendete Typ von Sprach-Codec auf einer prädiktiven Codierung. Das vielleicht erste veröffentlichte FEC-Schema für einen prädiktiven Codec ist das Schema zum Maskieren fehlerhafter Rahmen in dem ursprünglichen Standard TIA IS-54 VSELP für den digitalen Mobilfunk in Nordamerika (im September 1996 aufgehoben). Hier wiederholt das Schema die linearen Prädiktionsparameter des letzten Rahmens, wenn es einen fehlerhaften Rahmens erkennt. Dieses Schema leitet den Sprachenergieparameter für den aktuellen Rahmen entweder durch Wiederholen oder durch Dämpfen des Sprachenergieparameters des letzten Rahmens ab, je nachdem, wie viele aufeinander folgende fehlerhafte Rahmen gezählt wurden. Für das Anregungssignal (bzw. das quantisierte Prädiktionsfehler-Signal) fuhrt dieses Schema keine speziellen Vorgänge durch. Es decodiert lediglich die Anregungs-Bits, selbst wenn sie eine große Anzahl von Bitfehlern enthalten können.
  • Das erste FEC-Schema für einen prädiktiven Codec, der eine Wellenform-Substitution in dem Anregungsbereich durchführt, ist wahrscheinlich das von Chen für die ITU-T-Empfehlung G.728, "Low-Delay Code Excited Linear Predictor (CELP) codec" entwickelte FEC-System, wie in dem US-Patent Nr. 5,615,298 be schrieben, das an Chen erteilt wurde und den Titel "Excitation Signal Synthesis During Frame Erasure or Packet Loss" trägt. In diesem Ansatz wird während des Rahmenverlusts das Sprach-Anregungssignal extrapoliert, je nachdem, ob es sich bei dem letzten Rahmen um einen stimmhaften oder um einen stimmlosen Rahmen handelt. Wenn es sich um einen stimmhaften Rahmen handelt, wird das Anregungssignal durch periodische Wiederholung extrapoliert. Wenn es sich um einen stimmlosen Rahmen handelt, wird das Anregungssignal extrapoliert, indem kurze Segmente von Sprach-Wellenform aus dem vorherigen Rahmen zufällig wiederholt werden, während sichergestellt ist, dass die mittlere Sprachleistung ungefähr beibehalten wird.
  • Daher wird eine FEC-Technik benötigt, welche die erwähnten, mit den herkömmlichen Decodierern verbundenen Unzulänglichkeiten vermeidet. Es wird zum Beispiel eine FEC-Technik benötigt, welche die größere Verzögerung vermeidet, die bei der Überlagerungs-Additions-Operation des Ansatzes von Goodman entsteht. Außerdem wird eine FEC-Technik benötigt, welche die glatte Reproduktion einer Sprach- oder Audio-Wellenform sicherstellen kann, wenn der nächste einwandfreie Rahmen empfangen wird.
  • In dem Dokument ITU-TG.711, Anhang I: "A high quality low-complexity algorithm for packet loss concealment with G.711", September 1999, sind PLC-Algorithmen (Packet Loss Concealment, Verschleierung des Paketverlusts) beschrieben, welche Übertragungsverluste in einem Audiosystem verbergen, bei dem das Eingangssignal in einem Sender codiert und in ein Paket umgewandelt wird, über ein Netzwerk gesendet wird und in einem Empfänger empfangen wird, der das Paket decodiert und die Ausgabe abspielt.
  • Erfindungsgemäß werden ein Verfahren und eine Vorrichtung zum Verarbeiten eines extrapolierten Signals vorgesehen, wie in dem unabhängigen Anspruch 1 bzw. 6 definiert, sowie ein computerlesbares Medium, wie in dem unabhängigen Anspruch 11 definiert.
  • Weitere vorteilhafte Merkmale der Erfindung sind in den Unteransprüchen definiert.
  • In Übereinstimmung mit den Prinzipien der vorliegenden Erfindung, wie diese in diesem Dokument verwirklicht und ausführlich beschrieben sind, umfasst eine beispielhafte FEC-Technik ein Verfahren zum Synthetisieren einer zerstörten Rahmenausgabe aus einem Decodierer mit einem oder mehreren prädiktiven Filtern. Der zerstörte Rahmen stellt ein Segment einer decodierten Signalausgabe aus dem Decodierer dar. Das Verfahren umfasst das Extrapolieren eines Ersatzrahmens auf der Grundlage eines weiteren Segments des decodierten Signals, das Substituieren des beschädigten Rahmens durch den Ersatzrahmen und das Aktualisieren von inneren Zuständen der Filter auf der Grundlage der Substitution.
  • Weitere Ausführungsbeispiele, Merkmale und Vorteile der vorliegenden Erfindung sowie die Struktur und Funktionsweise der verschiedenen Ausführungsbeispiele der vorliegenden Erfindung sind unten unter Bezugnahme auf die beigefügten Zeichnungen ausführlich beschrieben.
  • Die beigefügten Zeichnungen, die in dieses Dokument aufgenommen wurden und einen Bestandteil der Anmeldung bilden, veranschaulichen ein erfindungsgemäßes Ausführungsbeispiel und erläutern zusammen mit der Beschreibung den Zweck, die Vorteile und die Prinzipien der Erfindung. Es zeigen:
  • 1 eine Veranschaulichung eines Blockdiagramms eines herkömmlichen prädiktiven Decodierers;
  • 2 eine Veranschaulichung eines Blockdiagramms eines beispielhaften Decodierers, der gemäß der vorliegenden Erfindung konstruiert und angeordnet ist;
  • 3(a) ein Diagramm eines beispielhaften, nicht normalisierten Fensters zur Wellenform-Dämpfung, das gemäß der vorliegenden Erfindung funktioniert;
  • 3(b) ein Diagramm eines beispielhaften, normalisierten Fensters zur Wellenform-Dämpfung, das gemäß der vorliegenden Erfindung funktioniert;
  • 4(a) ein Ablaufdiagramm, das ein beispielhaftes Verfahren zum Durchführen der Verschleierung von Rahmenverlusten gemäß der vorliegenden Erfindung veranschaulicht;
  • 4(b) eine Fortsetzung des in 4(a) gezeigten Ablaufdiagramms; und
  • 5 ein Blockdiagramm eines beispielhaften Computersystems, auf dem die vorliegende Erfindung ausgeführt werden kann.
  • Die folgende, ausführliche Beschreibung der vorliegenden Erfindung bezieht sich auf die beigefügten Zeichnungen, die beispielhafte Ausführungsbeispiele veranschaulichen, die mit der vorliegenden Erfindung konsistent sind. Andere Ausführungsbeispiele sind möglich, und an den Ausführungsbeispielen können innerhalb des Gedankens und Schutzumfangs der vorliegenden Erfindung Modifikationen vorgenommen werden. Daher sollte die folgende, ausführliche Beschreibung die Erfindung nicht beschränken. Der Schutzumfang der Erfindung ist vielmehr durch die angehängten Ansprüche definiert.
  • Für einen Fachmann auf dem betreffenden Gebiet wäre es offensichtlich, dass die vorliegende Erfindung, wie unten beschrieben, in vielen verschiedenen Ausführungsbeispielen aus Hardware, Software, Firmware und/oder den Elementen implementiert werden kann, die in den Zeichnungen veranschaulicht sind. Jeglicher tatsächlich vorhandener Software-Code mit spezialisierter Steuerungshardware zum Implementieren der vorliegenden Erfindung ist für die vorliegende Erfindung nicht beschränkend. Somit werden die Funktionsweise und das Verhalten der vorliegenden Erfindung in dem Verständnis beschrieben, dass Modifikationen und Varianten der Ausführungsbeispiele unter Berücksichtigung des in diesem Dokument dargestellten Grads an Detailliertheit möglich sind. Bevor die Erfindung ausführlich beschrieben wird, ist es hilfreich, eine beispielhafte Umgebung zu beschreiben, in der die Erfindung implementiert sein kann.
  • Die vorliegende Erfindung ist in der Umgebung des Decodierers eines prädiktiven Sprach-Codec besonders nützlich, um die qualitätsmindernden Auswirkungen von Rahmenverlusten oder Paketverlusten zu verschleiern. 1 veranschaulicht eine solche Umgebung. Die allgemeinen Prinzipien der Erfindung können in jedem linearen prädiktiven Codec verwendet werden, obwohl das später beschriebene bevorzugte Ausführungsbeispiel besonders gut für einen spezifischen Typ von prädiktivem Decodierer geeignet ist.
  • Bei der vorliegenden Erfindung handelt es sich um eine FEC-Technik, die für die prädiktive Codierung von Sprache konzipiert ist. Ein Merkmal, das sie von den oben erwähnten Techniken unterscheidet, besteht darin, dass sie die Substitution von Wellenformen in dem Sprachbereich und nicht in dem Anregungsbereich vornimmt. Sie führt außerdem spezielle Operationen durch, um die inneren Zustände bzw. Speicher von Prädiktoren und Filtern innerhalb des prädiktiven Decodierers zu aktualisieren, um eine maximal glatte Reproduktion von Sprach-Wellenformen sicherzustellen, wenn der nächste einwandfreie Rahmen empfangen wird.
  • Die vorliegende Erfindung vermeidet außerdem die zusätzliche Verzögerung, die mit der Überlagerungs-Additions-Operation in dem Ansatz von Goodman und in ITU-T G.711, Anhang I, verbunden ist. Dies wird erreicht, indem die Überlagerungs-Addition zwischen der extrapolierten Sprach-Wellenform und dem Ringing bzw. der Antwort bei Null-Eingang des Synthesefilters durchgeführt wird. Weitere Merkmale umfassen einen speziellen Algorithmus, um Brummgeräusche während der Wellenform-Extrapolation zu minimieren, und ein effizientes Verfahren zum Implementieren einer linear abnehmenden Wellenform-Einhüllenden während längerer Rahmenverluste. Schließlich werden die zugehörigen Speicher innerhalb des Prädiktors mit logarithmischem Gewinn aktualisiert.
  • Wie oben bereits erwähnt, ist die vorliegende Erfindung nicht auf einen bestimmten Sprach-Codec beschränkt. Stattdessen ist sie allgemein auf prädiktive Sprach-Codecs anwendbar, die Adaptive Predictive Coding (APC), Multi-Pulse Linear Predictive Coding (MPLPC), CELP und Noise Feedback Coding (NFC), usw. umfassen, aber nicht auf diese beschränkt sind.
  • Bevor die Prinzipien der Erfindung erörtert werden, wird eine Beschreibung eines herkömmlichen Decodierers eines prädiktiven Standard-Codec benötigt. 1 ist ein Blockdiagramm, das einen herkömmlichen prädiktiven Decodierer 100 veranschaulicht. Der in 1 gezeigte Decodierer 100 kann verwendet werden, um die Decodierer der Sprach-Codecs APC, MPLPC, CELP und NFC zu beschreiben. Die ausgefeilteren Versionen der mit prädiktiven Decodierern verbundenen Codecs verwenden in der Regel einen Kurzzeit-Prädiktor, um die Redundanz zwischen benachbarten Sprachabtastungen auszunutzen, und einen Langzeit-Prädiktor, um die Redundanz zwischen entfernten Abtastungen, aufgrund der Periodizität der Grundfrequenz (Pitch-Periodizität), zum Beispiel bei stimmhafter Sprache, auszunutzen.
  • Bei der von diesen Codecs übertragenen Hauptinformationen handelt es sich um die quantisierte Version des Prädiktionsfehler-Signals nach der Kurzzeit- und der Langzeit-Prädiktion. Dieses quantisierte Prädiktionsfehler-Signal wird oft als Anregungssignal bezeichnet, weil es in dem Decodierer verwendet wird, um die Langzeit- und Kurzzeit-Synthesefilter anzuregen, um die decodierte ausgegebene Sprache zu erzeugen. Zusätzlich zu dem Anregungssignal werden Rahmen für Rahmen bzw. Subrahmen für Subrahmen mehrere andere Sprachparameter als Nebeninformationen übertragen.
  • Ein beispielhafter Bereich für die Länge jedes Rahmens (die auch als Rahmengröße bezeichnet wird) kann 5 ms bis 40 ms betragen, wobei 10 ms und 20 ms die beiden am häufigsten verwendeten Rahmengrößen von Sprach-Codecs sind. Jeder Rahmen enthält in der Regel einige Subrahmen gleicher Länge. Die Nebeninformationen dieser prädiktiven Codecs umfassen in der Regel Informationen zur spektralen Einhüllenden in der Form der Kurzzeit-Prädiktorparameter, Periodendauer der Grundfrequenz (Pitch-Periode), Grundfrequenz-Prädiktor-Taps (beides Langzeit-Prädiktorparameter) und Anregungsgewinn.
  • In 1 umfasst der herkömmliche Decodierer 100 einen Bit-Demultiplexer 105. Der Demultiplexer 105 trennt die Bits in jedem empfangenen Bitrahmen in Codes für das Anregungssignal und Codes für den Kurzzeit-Prädiktor, den Langzeit-Prädiktor und den Anregungsgewinn.
  • Die Kurzzeit-Prädiktorparameter, die oft auch als LPC-Parameter (lineare prädiktive Codierung) bezeichnet werden, werden in der Regeln einmal in jedem Rahmen übertragen. Es gibt viele alternative Parametersätze, die verwendet werden können, um dieselben Informationen zu der spektralen Einhüllenden darzustellen. Die am häufigsten verwendeten sind die LSP-Parameter (Line Spectrum Pair), die manchmal auch als LSF-Parameter (Line Spectrum Frequency) bezeichnet werden. In 1 stellt LSPI den übertragenen Quantisierer-Codebuch-Index dar, der die LSP-Parameter in jedem Rahmen darstellt. Ein prädiktiver Kurzzeit-Parameter-Decodierer 110 decodiert LSPI in einen LSP-Parametersatz und wandelt dann die LSP-Parameter in die Koeffizienten für den Kurzzeit-Prädiktor um. Diese Kurzzeit-Prädiktor-Koeffizienten werden dann verwendet, um die Aktualisierung der Koeffizienten eines Kurzzeit-Prädiktors 120 zu steuern.
  • Die Periode der Grundfrequenz ist als die Zeitperiode definiert, in der eine stimmhafte Sprach-Wellenform sich zu einem bestimmten Zeitpunkt periodisch zu wiederholen scheint. In der Regel wird sie als Anzahl von Abtastungen gemessen, wird einmal pro Subrahmen übertragen und wird in Langzeit-Prädiktoren als Massenverzögerung verwendet. Bei den Grundfrequenz-Taps handelt es sich um die Koeffizienten des Langzeit-Prädiktors. Der Bit-Demultiplexer 105 trennt außerdem den PPI (Pitch Period Index, Grundfrequenz-Periodenindex) und den PPTI (Pitch Predictor Tap Index, Grundfrequenz-Prädiktor-Tap-Index) aus dem empfangenen Bitstrom heraus. Ein prädiktiver Langzeit-Parameter-Decodierer 130 decodiert den PPI in die Periode der Grundfrequenz und decodiert den PPTI in die Grundfrequenz-Prädiktor-Taps. Die decodierte Periode der Grundfrequenz und die decodierten Grundfrequenz-Prädiktor-Taps werden dann verwendet, um die Aktualisierung der Parameter eines generalisierten Langzeit-Prädiktors 140 zu steuern.
  • In seiner einfachsten Form handelt es sich bei dem Langzeit-Prädiktor 140 um ein FIR-Filter (Filter mit endlicher Impulsantwort), in der Regel erster oder dritter Ordnung, mit einer Massenverzögerung, die gleich der Periode der Grundfrequenz ist. In einigen Variationen von CELP- und MPLPC-Codecs wurde der Langzeit-Prädiktor 140 zu einem adaptiven Codebuch generalisiert, wobei der einzige Unterschied darin liegt, dass, wenn die Periode der Grundfrequenz geringer ist als der Subrahmen, einige periodische Wiederholungsoperationen durchgeführt werden. Der generalisierte Langzeit-Prädiktor 140 kann entweder ein einfaches FIR-Filter oder ein adaptives Codebuch darstellen, wodurch somit die meisten der gegenwärtig verwendeten prädiktiven Sprach-Codecs abgedeckt werden.
  • Der Bit-Demultiplexer 105 trennt außerdem einen Gewinnindex GI und einen Anregungsindex CI aus dem Eingangs-Bitstrom heraus. Ein Anregungs-Decodierer 150 decodiert den CI in ein nicht skaliertes Anregungssignal und decodiert außerdem den GI in den Anregungsgewinn. Dann verwendet er den Anregungsgewinn, um das nicht skalierte Anregungssignal zu skalieren, um daraus ein skaliertes Anregungsgewinnsignal uq(n) abzuleiten, welches als quantisierte Version des Langzeit-Prädiktionsfehler-Signals betrachtet werden kann. Ein Addierer 160 kombiniert die Ausgabe des generalisierten Langzeit-Prädiktors 140 mit dem skalierten Anregungsgewinnsignal uq(n), um eine quantisierte Version eines Kurzzeit-Prädiktionsfehler-Signals dq(n) zu erhalten. Ein Addierer 170 kombiniert die Ausgabe des Kurzzeit-Prädiktors 120 mit dq(n), um ein decodiertes Ausgangs-Sprachsignal sq(n) zu erhalten.
  • Durch den generalisierten Langzeit-Prädiktor 140 und den Addierer 160 wird eine Rückkopplungsschleife gebildet und kann als einzelnes Filter betrachtet werden, das als Langzeit-Synthesefilter 180 bezeichnet wird. Auf ähnliche Weise wird durch den Kurzzeit-Prädiktor 120 und den Addierer 170 eine weitere Rückkopplungsschleife gebildet. Diese weitere Rückkopplungsschleife kann als einzelnes Filter betrachtet werden, das als Kurzzeit-Synthesefilter 190 bezeichnet wird. Das Langzeit-Synthesefilter 180 und das Kurzzeit-Synthesefilter 190 werden kombiniert, um ein Synthesefiltermodul 195 zu bilden.
  • Zusammengefasst decodiert der herkömmliche, in 1 abgebildete Decodierer 100 die Parameter des Kurzzeit-Prädiktors 120 und des Langzeit-Prädiktors 140, den Anregungsgewinn und das nicht skalierte Anregungssignal. Dann skaliert er das nicht skalierte Anregungssignal mit dem Anregungsgewinn und leitet das entstehende skalierte Anregungssignal uq(n) durch das Langzeit-Synthesefilter 180 und das Kurzzeit-Synthesefilter 190, um das decodierte Ausgangs-Sprachsignal sq(n) zu erhalten.
  • Wenn ein Rahmen aus Eingabebits aufgrund von Fading in einer drahtlosen Übertragung oder aufgrund eines Paketverlusts in paketgebundenen Netzwerken verloren geht, verliert der Decodierer 100 aus 1 leider die Indizes LSPI, PPI, PPTI, GI und CI, die zum Decodieren der Sprach-Wellenform in dem aktuellen Rahmen benötigt werden.
  • Gemäß den Prinzipien der vorliegenden Erfindung wird die sich unmittelbar vor dem aktuellen Rahmen befindliche decodierte Sprach-Wellenform gespeichert und analysiert. Es wird eine Suche nach einer Übereinstimmung der Wellenform, ähnlich dem Ansatz von Goodman, durchgeführt, und die Zeitverschiebung sowie der Skalierungsfaktor zum Wiederholen der zuvor decodierten Sprach-Wellenform in dem aktuellen Rahmen werden identifiziert.
  • Als Nächstes werden, um die gelegentlichen Brummgeräusche zu vermeiden, die durch das Wiederholen einer Wellenform mit einer kleinen Zeitverschiebung verursacht werden, wenn die Sprache nicht in hohem Maße periodisch ist, die Zeitverschiebung und der Skalierungsfaktor manchmal wie folgt modifiziert. Wenn die Analyse angibt, dass es nicht wahrscheinlich ist, dass die gespeicherte vorherige Wellenform ein Segment aus in hohem Maße periodischer stimmhafter Sprache ist, und wenn die Zeitverschiebung für die Wellenform-Wiederholung geringer ist als ein vorbestimmter Schwellenwert, so wird eine weitere Suche nach einer passenden Zeitverschiebung durchgeführt, die größer ist als der vorbestimmte Schwellenwert. Der Skalierungsfaktor wird ebenfalls dementsprechend aktualisiert.
  • Sobald die Zeitverschiebung und der Skalierungsfaktor bestimmt worden sind, kopiert die vorliegende Erfindung die eine Zeitverschiebung eher vorkommende Sprach-Wellenform, um den aktuellen Rahmen zu füllen, wodurch eine extrapolierte Wellenform erzeugt wird. Die extrapolierte Wellenform wird dann mit dem Skalierungsfaktor skaliert. Die vorliegende Erfindung berechnet außerdem eine Anzahl von Abtastungen des Ringing bzw. der Antwort bei Null-Eingang, die von dem Synthesefiltermodul 195 aus dem Anfang des aktuellen Rahmens ausgegeben werden. Aufgrund des Glättungseffekts des Kurzzeit-Synthesefilters 190 wird es scheinen, dass ein solches Ringing-Signal von der decodierten Sprach-Wellenform an dem Ende des letzen Rahmens glatt weiterfließt. Die vorliegende Erfindung führt dann eine Überlagerungs-Addition dieses Ringing-Signals und der extrapolierten Sprach-Wellenform mit einem geeigneten Überlagerungs-Additionsfenster durch, um diese beiden Stücke Wellenform glatt zusammenzuführen. Durch diese Technik wird die Wellenform-Unterbrechung an dem Anfang des aktuellen Rahmens ausgeglichen. Gleichzeitig vermeidet sie die zusätzlichen Verzögerungen, die durch G.711, Anhang I oder den Ansatz von Goodman erzeugt werden.
  • Wenn der Rahmenverlust über einen längeren Zeitraum andauerte, wird das extrapolierte Sprachsignal gegen null gedämpft. Ansonsten erzeugt es einen Ton bzw. ein Brummgeräusch. In der vorliegenden Erfindung ist die Einhüllende der Wellenform linear gegen null gedämpft, wenn die Länge des Rahmenverlusts einen bestimmten Schwellenwert übersteigt. Die vorliegende Erfindung nutzt dann ein speichereffizientes Verfahren, um diese lineare Dämpfung gegen null zu implementieren.
  • Nachdem die Wellenform-Extrapolation in dem verloren gegangenen Rahmen durchgeführt wurde, aktualisiert die vorliegende Erfindung auf geeignete Weise alle inneren Speicherzustände der Filter innerhalb des Sprach-Decodierers. Wenn das Aktualisieren nicht durchgeführt wird, gäbe es eine große Unterbrechung und einen hörbaren Störimpuls an dem Anfang des nächsten einwandfreien Rahmens. Durch das Aktualisieren des Filterspeichers nach einem Rahmenverlust arbeitet die vorlie gende Erfindung von der Ausgabe-Sprach-Wellenform aus rückwärts. Die Erfindung setzt den Inhalt des Filterspeichers auf die Werte, die an dem Ende des aktuellen Rahmens erreicht worden wären, wenn die Filteroperationen des Sprach-Decodierers auf normale Weise durchgeführt worden wären. Das bedeutet, dass die Filteroperationen mit einer speziellen Anregung derart durchgeführt werden, dass die entstehende synthetisierte Ausgabe-Sprach-Wellenform exakt mit der extrapolierten Wellenform übereinstimmt, die oben berechnet wurde.
  • Wenn zum Beispiel der Kurzzeit-Prädiktor 120 die Ordnung M aufweist, so enthält der Speicher des Kurzzeit-Synthesefilters 190 nach der FEC-Operation für den aktuellen Rahmen einfach die letzten M Abtastungen des extrapolierten Sprachsignals für den aktuellen Rahmen, wobei die Reihenfolge umgekehrt ist. Dies liegt daran, dass es sich bei dem Kurzzeit-Synthesefilter 190 in dem herkömmlichen Decodierer 100 um ein AR-Filter handelt. Bei dem Filterspeicher handelt es sich einfach um die vorherigen Filter-Ausgangssignal-Abtastungen in umgekehrter Reihenfolge.
  • Ein Beispiel für das Aktualisieren des Speichers des FIR-Langzeit-Prädiktors 140 wird dargestellt. In diesem Beispiel führt die vorliegende Erfindung eine prädiktive Kurzzeit-Filterung des extrapolierten Sprachsignals des aktuellen Rahmens durch, wobei der anfängliche Speicher des Kurzzeit-Prädiktors 120 auf die letzten M Abtastungen (in umgekehrter Reihenfolge) des Ausgangs-Sprachsignals in dem letzten Rahmen gesetzt wird.
  • Wenn Quantisierer für Nebeninformationen (wie beispielsweise LSP und Anregungsgewinn) eine prädiktive Codierung zwischen den Rahmen verwenden, werden die Speicher dieser Prädiktoren auf ähnliche Weise ebenfalls auf der Grundlage desselben Prinzips aktualisiert, um die Unterbrechung der decodierten Sprachparameter bei dem nächsten einwandfreien Rahmen zu minimieren.
  • Die oben umrissenen allgemeinen Prinzipien der vorliegenden Erfindung sind auf fast jeden prädiktiven Sprach-Decodierer anwendbar. Unten wird noch ausführlicher eine bestimmte Implementierung dieser allgemeinen Prinzipien in einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung beschrieben, das auf den Decodierer eines zweistufigen Rausch-Rückkopplungs-Codec angewendet wird.
  • 2 ist eine Veranschaulichung eines Blockdiagramms eines beispielhaften Ausführungsbeispiels der vorliegenden Erfindung. In 2 ist ein herkömmlicher prädiktiver Sprach-Decodierer gezeigt. Bei dem Decodierer kann es sich zum Beispiel um den in 1 gezeigten Decodierer 100 handeln, der einen Filterspeicher 201 und ein Eingangs-Rahmenverlust-Flag 200 umfasst. Wenn das Eingangs-Rahmenverlust-Flag 200 angibt, dass es sich bei dem aktuell empfangenen Rahmen um einen einwandfreien Rahmen handelt, führt der Decodierer 100 normale Decodiervorgänge durch, wie oben beschrieben. Während der normalen Decodiervorgänge befindet sich ein Schalter 202 in einer oberen Position 203, die einen empfangenen einwandfreien Rahmen angibt, und die decodierte Sprach-Wellenform sq(n) wird als Ausgabe des Decodierers 100 verwendet. Außerdem wird der aktuelle Rahmen für decodierte Sprache sq(n) auch an ein Sprachspeichermodul 204 geleitet, das die zuvor decodierten Sprach-Wellenform-Abtastungen in einem Puffer speichert. Der aktuelle Rahmen für decodierte Sprache sq(n) wird verwendet, um diesen Puffer zu aktualisieren. Die übrigen Module in 2 sind inaktiv, wenn ein einwandfreier Rahmen empfangen wird.
  • Wenn andererseits das Eingangs-Rahmenverlust-Flag 200 angibt, dass ein fehlerhafter Rahmen empfangen wurde oder dass der aktuelle Rahmen nicht empfangen wurde (zum Beispiel gelöscht wurde oder verloren gegangen ist), wird der Betrieb des Decodierers 100 angehalten, und der Schalter wird auf eine untere Position 205 gesetzt. Die übrigen Module in 2 führen dann FEC-Vorgänge durch, um eine Ausgangs-Sprachwellenform sq'(n) für den aktuellen Rahmen zu erzeugen und außerdem den Filterspeicher 201 des Decodierers 100 zu aktualisieren, um den Decodierer 100 auf die normalen Decodiervorgänge für den nächsten einwandfreien Rahmen vorzubereiten. Wenn der Schalter 202 auf die untere Position 205 gesetzt ist, funktionieren die übrigen in 2 gezeigten Module auf die folgende Weise.
  • Eine Ringing-Berechnungseinheit 206 berechnet L Abtastungen des Ringing bzw. der Antwort bei Null-Eingang des in 1 gezeigten Synthesefiltermoduls 195. Ein einfacherer Ansatz besteht darin, nur das Kurzzeit-Synthesefilter 190 zu verwenden, der bevorzugte Ansatz, zumindest für stimmhafte Sprache, besteht jedoch darin, das Ringing des kaskadierten Langzeit-Synthesefilters 180 und des Kurzzeit-Synthesefilters 190 zu verwenden. Diese Berechnung wird auf die folgende Weise durchgeführt. Beginnend mit dem Speicher 201 des Synthesefiltermoduls 195, der nach dem Verarbeiten des letzten Rahmens in dem Laufzeitspeicher verbleibt, werden Filter operationen für L Abtastungen durchgeführt, während ein Null-Eingangssignal an den Filter 195 verwendet wird. Die entstehenden L Abtastungen des Filter-Ausgangssignals bilden das gewünschte Ringing-Signal. Diese L Abtastungen des Ringing-Signals, {r(n), n = 1, 2, ..., L} werden für eine spätere Verwendung gespeichert.
  • Ein Vorab-Zeitverschiebungsmodul 208 analysiert die zuvor in dem Sprachspeichermodul 204 gespeicherten, decodierten Sprach-Wellenform-Abtastungen, um eine Vorab-Zeitverschiebung für die Wellenform-Extrapolation in dem aktuellen Rahmen zu bestimmen. Dies kann auf eine Anzahl von Wegen erfolgen, zum Beispiel unter Verwendung der von Goodman umrissenen Ansätze. Die vorliegende Erfindung sucht nach einer Periode der Grundfrequenz (Pitch-Periode) pp im allgemeinen Sinn, wie bei einem auf einer Grundfrequenz-Prädiktion basierenden Sprach-Codec. Wenn der herkömmliche Decodierer 100 eine Grundfrequenz-Periode des letzten Rahmens decodiert hat und wenn diese als zuverlässig angesehen wird, kann das Zeitverschiebungsmodul 208 einfach in der Nachbarschaft dieser Grundfrequenz-Periode pp suchen, um eine geeignete Zeitverschiebung zu finden. Wenn der Decodierer 100 keine decodierte Grundfrequenz-Periode bereitstellt oder wenn diese Grundfrequenz-Periode für unzuverlässig gehalten wird, kann das Vorab-Zeitverschiebungsmodul 208 eine vollständige Grundfrequenz-Schätzung durchführen, um eine gewünschte Zeitverschiebung zu erhalten. In 2 wird davon ausgegangen, dass eine solche decodierte Periode pp tatsächlich verfügbar und zuverlässig ist. In diesem Fall funktioniert das Vorab-Zeitverschiebungsmodul 208 wie folgt.
  • Zunächst bestimmt das Vorab-Zeitverschiebungsmodul 208 die Grundfrequenz-Periode des letzten Rahmens (pplast). Es setzt pplast = pp = der decodierten Grundfrequenz-Periode des letzten Rahmens, wenn es sich bei dem letzten Rahmen um einen einwandfreien Rahmen handelt. Es setzt pplast = der Vorab-Grundfrequenz-Periode (ppfep) des letzten Rahmens (Ausgabe aus dem Zeitverschiebungsmodul 208), wenn es sich bei dem letzten Rahmen um einen fehlerhaften Rahmen handelt. Wenn beispielsweise pplast geringer als 10 ms ist (80 Abtastungen und 160 Abtastungen bei 8 kHz bzw. 16 kHz), verwendet das Zeitverschiebungsmodul 208 sie als Analysefenstergröße K. Wenn pplast größer als 10 ms ist, verwendet das Zeitverschiebungsmodul 208 10 ms als Analysefenstergröße K.
  • Das Vorab-Zeitverschiebungsmodul 208 bestimmt dann den Grundfrequenz-Suchbereich. Hierzu subtrahiert es 0,5 ms (4 Abtastungen und 8 Abtastungen bei 8 kHz bzw. 16 kHz Abtastrate) von pplast, vergleicht das Ergebnis mit der minimalen in dem Codec gestatteten Grundfrequenz-Periode und wählt den größeren der beiden Werte als untere Begrenzung lb des Suchbereichs. Dann addiert es 0,5 ms zu pplast, vergleicht das Ergebnis mit der maximalen in dem Codec gestatteten Grundfrequenz-Periode und wählt den geringeren der beiden Werte als obere Begrenzung ub des Suchbereichs.
  • Ein sq(n)-Puffer innerhalb des Sprachspeichermoduls 204 speichert N + N Sprach-Abtastungen, wobei die Abtastungen sq(n), n = 1, 2, ..., N der ausgegebenen Sprache des Decodierers für vorherige Rahmen entsprechen, wobei sq(N) die letzte Abtastung der decodierten Sprache in dem letzten Rahmen ist. Nf ist die Anzahl von Abtastungen in einem Rahmen. Der Speicherplatz sq(n), n = N + 1, N + 2, ..., N + Nf wird an dem Anfang eines fehlerhaften Rahmens geleert, wird aber mit den extrapolierten Wellenform-Abtastungen gefüllt, sobald die Vorgänge der Module 208 bis 220 abgeschlossen sind.
  • Für die Zeitverschiebungen j = lb, lb + 1, lb + 2, ..., ub – 1, ub, berechnet das Vorab-Zeitverschiebungsmodul 208 den Korrelationswert wie folgt:
    Figure 00140001
    für j ε [lb, ub]. Unter diesen Zeitverschiebungen, die eine positive Korrelation c(j) ergeben, findet das Zeitverschiebungsmodul 208 die Zeitverschiebung j, welche die Maximierung von
    Figure 00140002
    durchführt.
  • Die vorgenannte Divisionsoperation kann durch ein Kreuzmultiplikationsverfahren vermieden werden. Bei der Zeitverschiebung j, die nc(j) maximiert, handelt es sich auch um die Zeitverschiebung innerhalb des Suchbereichs, welche den Grundfrequenz-Prädiktionsgewinn für einen Grundfrequenz-Prädiktor mit Einzel-Tap maximiert. Die optimale Zeitverschiebung ppfep steht für Pitch Period for Frame Erasure, Preliminary Version (Grundfrequenz-Periode für Rahmenverlust, Vorversion). In dem äußerst seltenen Fall, in dem kein Wert c(j) in dem Suchbereich positiv ist, wird ppfep in diesem entarteten Fall gleich lb gesetzt.
  • Wenn diese Zeitverschiebung direkt als Zeitverschiebung für die periodische Wiederholung in der Wellenform-Extrapolation des aktuellen Rahmens verwendet wird, können Brummgeräusche auftreten, wenn eine geringe Zeitverschiebung in einem Sprachsegment verwendet wird, das keinen hohen Grad an Periodizität aufweist. Um dieses Problem zu bekämpfen, nutzt die vorliegende Erfindung ein Modul für periodische Extrapolations-Flags 210, um zwischen hochgradig periodischen stimmhaften Sprachsegmenten und anderen Arten von Sprachsegmenten zu unterscheiden. Wenn das Modul für periodische Extrapolations-Flags 210 bestimmt, dass sich die decodierte Sprache zum Beispiel innerhalb eines hochgradig periodischen, stimmhaften Sprachbereichs befindet, setzt es das Flag für die periodische Wellenform-Extrapolation (pwef) auf 1; andernfalls wird pwef auf 0 gesetzt. Wenn pwef 0 ist, bestimmt ein Modul für die endgültige Zeitverschiebung und den Skalierungsfaktor 212 eine weitere Zeitverschiebung, um das Brummgeräusch zu verringern oder zu eliminieren.
  • Unter Verwendung von ppfep als Eingabe führt das Modul für Extrapolations-Flags 210 eine weitere Analyse der zuvor decodierten Sprache sq(n) durch, um die geeignete Einstellung des Flags für die periodische Wellenform-Extrapolation pwef zu bestimmen. Dies kann wiederum auf verschiedene Art und Weise erfolgen. Nachfolgend ist lediglich ein Beispiel beschrieben. Das Modul für Extrapolations-Flags 210 setzt zunächst pwef auf seinen Standardwert von 1, dann berechnet es die Sprachenergie E in dem Analysefenster:
    Figure 00150001
    Wenn E geringer ist als ein bestimmter Schwellenwert E0, wird pwef auf 0 gesetzt. Ein geeigneter Wert für E0 kann 21 1K sein, wenn die Eingangssignal-Abtas tungen als 16 Bit lange Ganzzahlen mit Vorzeichen dargestellt werden. Wenn E > E0, dann berechnet das Modul 210 ferner den ersten normalisierten Autokorrelationskoeffizienten wie folgt:
    Figure 00160001
  • Wenn ρ1 geringer ist als ein Schwellenwert von beispielsweise T1 = 0,4, wird pwef auf 0 gesetzt; andernfalls prüft das Modul 210, ob die folgende Ungleichung wahr ist:
    Figure 00160002
  • Beispielhafte Werte für die Parameter sind T1 = 0,4, T2 = 0,99, F1 = 2,0 und F2 = 1,1. Wenn diese Ungleichung wahr ist, wird pwef auf 0 gesetzt. Wenn pwef alle drei vorgenannten Tests übersteht, bleibt sein Wert bei dem Standardwert 1.
  • Die vorgenannte Ungleichung kann wie folgt verstanden werden. Angenommen, E – nc(ppfep) ≠ 0, was im Allgemeinen wahr ist, es sei denn, die Signalenergie E selbst ist null. Durch Teilen beider Seiten der Ungleichung durch E – nc(ppfep) ergibt sich:
    Figure 00160003
  • Das Verhältnis auf der linken Seite ist der "Grundfrequenz-Prädiktionsgewinn bei Einzel-Tap" in dem linearen Bereich (anstatt in dem logarithmischen Bereich) für die decodierte Sprache in dem Analysefenster n ε [(N – K + 1), N], wenn die Grundfrequenz-Periode ppfep ist. Bei dem Ausdruck auf der rechten Seite handelt es sich um eine lineare Funktion von ρ1 oder y = f(x) = f(ρ1), was eine Gerade darstellt, die durch die beiden Punkte (T1, F1) und (T2, F2) in der X-Y-Ebene verläuft. Wenn mit den oben angegebenen, beispielhaften Parameterwerten ρ1 = 0,4 ist, beträgt der Schwellenwert für den Grundfrequenz-Prädiktionsgewinn in dem linearen Bereich 2,0. Wenn der Grundfrequenz-Prädiktionsgewinn geringer ist als dieser Schwellenwert 2,0, wird die decodierte Sprache in dem Analysefenster nicht als hochgradig periodische stimmhafte Sprache betrachtet, und pwef wird auf 0 gesetzt. Dieser Schwellenwert wird auf 1,1 verringert, wenn ρ1 = 0,99. Wenn ρ1 zwischen 0,4 und 0,99 liegt, wird der Schwellenwert durch die Gerade bestimmt, welche (0,4, 2,0) und (0,99, 1,1) verbindet. Der Gedanke dahinter ist, dass, wenn der erste normalisierte Autokorrelationskoeffizient ρ1 geringer ist, der Schwellenwert für den Grundfrequenz-Prädiktionsgewinn größer sein muss, und umgekehrt. Dieser Schwellenwert ist gemäß dem Wert von ρ1 adaptiv.
  • Auf der Grundlage der Vorab-Zeitverschiebung ppfep und dem Flag für die periodische Wellenform-Extrapolation pwef bestimmt das Modul für die endgültige Zeitverschiebung und den Skalierungsfaktor 212 die endgültige Zeitverschiebung und den Skalierungsfaktor für die Wellenform-Extrapolation in dem aktuellen Rahmen.
  • Wenn pwef = 1 ist oder wenn ppfep nicht geringer ist als ein Schwellenwert T0, dann wird ppfep als endgültige Zeitverschiebung verwendet, das heißt ppfe = ppfep, und der Skalierungsfaktor ptfe (für Pitch Tap for Frame Erasure, Grundfrequenz-Tap für Rahmenverlust) wird wie folgt berechnet:
    Figure 00170001
  • Der Nenner in der Gleichung oben ist in der Regel ungleich null. In dem entarteten Fall, dass er null ist, wird ptfe ebenfalls auf null gesetzt. Wenn ptfe > 1,1 ist, so wird ptfe auf 1,1 gesetzt, um ein zu schnelles rampenförmiges Ansteigen der extrapolierten Wellenform zu vermeiden. Ein geeigneter Wert für T0 ist die Anzahl von Abtastungen, die einem Zeitintervall von 10 ms entspricht.
  • Der oben berechnete Skalierungsfaktor ptfe ist normalerweise positiv. In dem seltenen Fall jedoch, in dem c(ppfe), der Korrelationswert bei der Zeitverschiebung ppfe, negativ ist, wie oben im Hinblick auf das Vorab-Zeitverschiebungsmodul 208 erörtert, sollte der oben berechnete Skalierungsfaktor ptfe ebenfalls negiert sein. Wenn der negierte Wert geringer als –1 ist, so wird er auf –1 begrenzt.
  • Wenn pwef = 0 und ppfep < T0, dann besteht eine größere Wahrscheinlichkeit dafür, dass eine periodische Wellenform-Extrapolation ein Brummgeräusch erzeugt. Um das mögliche Brummgeräusch zu vermeiden, sucht die vorliegende Erfindung nach einer weiteren geeigneten Zeitverschiebung ppfe ≥ T0. Indem erforderlich ist, dass die Zeitverschiebung ppfe groß genug ist, wird die Wahrscheinlichkeit eines Brummgeräuschs stark verringert. Um die Qualitätsminderung zu minimieren, die durch eine fälschliche Klassifikation eines periodischen stimmhaften Sprachsegments als etwas, das es nicht ist, verursacht wird, sucht die vorliegende Erfindung in der Nachbarschaft des ersten ganzzahligen Vielfachen von ppfep, das nicht geringer als T0 ist. Auf diese Weise besteht, selbst wenn pwef 1 gewesen sein sollte und fälschlicherweise als 0 klassifiziert wurde, eine gute Chance, dass ein ganzzahliges Vielfaches der tatsächlichen Grundfrequenz-Periode als endgültige Zeitverschiebung für die periodische Wellenform-Extrapolation gewählt wird.
  • Das Modul 212 bestimmt die endgültige Zeitverschiebung ppfe sowie den Skalierungsfaktor ptfe auf folgende Weise, wenn pwef = 0 und ppfep < T0. Zunächst findet es die kleinste Ganzzahl m, die den folgenden Ausdruck erfüllt: m × ppfep ≥ T0.
  • Dann setzt es m1, die untere Begrenzung des Zeitverschiebungs-Suchbereichs auf m × ppfep – 3 oder auf T0, je nachdem, welcher Wert größer ist. Die obere Begrenzung des Suchbereichs wird auf m2 = m1 + N – 1, gesetzt, wobei es sich bei Ns um die Anzahl möglicher Zeitverschiebungen in dem Suchbereich handelt. Als Nächstes berechnet das Modul 212 für jede Zeitverschiebung j in dem Suchbereich [m1, m2] Folgendes:
    Figure 00180001
    und wählt dann die Zeitverschiebung j ε [m1, m2] aus, die D(j) minimiert. Im Grunde wird bei der Suche ein Stück zuvor bereits decodierter Sprach-Wellenform gesucht, das sich am dichtesten bei den ersten d Abtastungen des Ringing des Synthesefilters befindet. Normalerweise ist d < L, und ein möglicher Wert für d ist 2. Die Zeitverschiebung, welche D(j) oben minimiert, wird als endgültige Zeitverschiebung ppfe gewählt. Der entsprechende Skalierungsfaktor wird berechnet als
    Figure 00190001
  • Wiederum wird in dem entarteten Fall, dass der Nenner der Gleichung oben null ist, ptfe ebenfalls auf null gesetzt. Wenn außerdem der auf diese Weise für ptfe berechnete Wert größer als 1,3 ist, so wird er auf 1,3 begrenzt.
  • Nachdem sowohl ppfe als auch ptfe bestimmt worden sind, extrapoliert ein Sprach-Extrapolationsmodul für L Abtastungen 214 die ersten L Abtastungen von Sprache in dem aktuellen Rahmen. Ein möglicher Wert für L sind 5 Abtastungen. Die Extrapolation der ersten 5 Abtastungen des aktuellen Rahmens kann wie folgt ausgedrückt werden: sq(n) = ptfe × sq(n – ppfe), für n = N + 1, N + 2, ..., N + L.
  • Für die ersten L Abtastungen des aktuellen Rahmens vereinigt ein Überlagerungs-Addierer 216 das oben extrapolierte Signal sq(n) glatt mit r(n), dem in der Ringing-Berechnungseinheit 206 berechneten Ringing des Synthesefilters, wobei das folgende Überlagerungs-Additionsverfahren verwendet wird: sq(N + n) ← wu(n)sq(N + n) + wd(n)r(n), für n = 1, 2, ..., L.
  • In der Gleichung oben bedeutet das Zeichen "←", dass die Menge auf ihrer rechten Seite die Variablenwerte auf ihrer linken Seite überschreiben. Die Fensterfunktion wu(n) stellt das rampenförmig ansteigende Überlagerungs-Additionsfenster dar, während wd(n) das rampenförmig abfallende Überlagerungs-Additionsfenster darstellt. Diese Überlagerungs-Additionsfenster erfüllen die folgende Bedingung: wu(n) + wd(n) = 1
  • Es kann eine Anzahl verschiedener Überlagerungs-Additionsfenster verwendet werden. Zum Beispiel kann das in der Arbeit von Goodman erwähnte Hanning-Fenster (Raised-Cosinus-Fenster) hier verwendet werden. Alternativ können auch einfachere Dreiecksfenster verwendet werden.
  • Nachdem die ersten L Abtastungen des aktuellen Rahmens extrapoliert und überlagernd addiert wurden, extrapoliert ein Sprach-Extrapolationsmodul für die verbleibenden Abtastungen 218 dann die verbleibenden Abtastungen des aktuellen Rahmens. Wenn ppfe ≥ Nf, dann wird die Extrapolation wie folgt durchgeführt: sq(n) = ptfe × sq(n – ppfe), für n = N + L + 1, N + L + 2, ..., N + Nf.
  • Wenn ppfe < Nf, dann wird die Extrapolation wie folgt durchgeführt: sq(n) = ptfe × sq(n – ppfe), für n = N + L + 1, N + L + 2, ..., N + ppfe,und dann sq(n) = sq(n – ppfe), für n = N + ppfe + 1, N + ppfe + 2, ..., N + Nf.
  • Die Eliminierung des Skalierungsfaktors ptfe ab dem zweiten Zyklus soll ein zu starkes Anwachsen des Betrags der Wellenform aufgrund der Extrapolation von Sprache mit hoher Grundfrequenz (Periode mit niedrigerer Grundfrequenz) während eines verlängerten Rahmenverlusts vermeiden.
  • Wenn der Rahmenverlust über einen längeren Zeitraum hin anhält, sollte das FEC-Schema die periodische Extrapolation nicht unendlich fortsetzen, sonst beginnt die extrapolierte Sprache, dem Geräusch eines gleichmäßigen Tonsignals zu ähneln. Bei dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung beginnt ein Wellenform-Dämpfungsglied 220 mit der Dämpfung der Wellenform zu dem Zeitpunkt, zu dem der Rahmenverlust 20 ms gedauert hat. Von da ab wird die Einhüllende der extrapolierten Wellenform linear gegen null gedämpft, und der Betrag der Wellenform erreicht bei 60 ms in den Verlust von aufeinander folgenden Rahmen hinein null. Nach 60 ms wird der Ausgang vollständig stumm geschaltet. Eine beispielhafte Dämpfungstechnik, die gemäß der vorliegenden Erfindung durchgeführt wird, ist in 3(a) gezeigt.
  • Das bevorzugte Ausführungsbeispiel der vorliegenden Erfindung kann mit einem Rausch-Rückkopplungs-Codec verwendet werden, der zum Beispiel eine Rahmengröße von 5 ms aufweist. In diesem Fall stellt das Zeitintervall zwischen jedem benachbarten Paar von vertikalen Linien in 3(a) einen Rahmen dar.
  • Wenn ein Rahmenverlust zum Beispiel 12 aufeinander folgende Rahmen (5 × 12 = 60 ms) oder langer andauert, besteht die einfachste Möglichkeit zum Implementieren dieser Wellenform-Dämpfung darin, die Sprache für die ersten 12 verloren gegangenen Rahmen zu extrapolieren, die resultierenden 60 ms Wellenform zu speichern und dann das Dämpfungsfenster in 3(a) anzuwenden. Dieser einfache Ansatz erfordert jedoch eine Extraverzögerung, um die 60 ms extrapolierte Sprache zu Puffern.
  • Um jegliche zusätzliche Verzögerung zu vermeiden, wendet das Wellenform-Dämpfungsglied 220 in 2 das Wellenform-Dämpfungsfenster Rahmen für Rahmen ohne jede zusätzliche Pufferung an. Ab dem sechsten aufeinander folgenden verloren gegangenen Rahmen, ab 25 ms in 3(a), kann das Dämpfungsglied 220 den entsprechenden Fensterabschnitt für diesen Rahmen in 3(a) nicht direkt anwenden. Es tritt an der Rahmenbegrenzung eine Unterbrechung der Wellenform auf, weil der entsprechende Abschnitt des Dämpfungsfensters bei einem Wert beginnt, der geringer ist als eins (7/8, 6/8, 5/8, usw.). Dies führt zu einem plötzlichen Absinken des Wellenform-Abtastwerts an dem Anfang des Rahmens und somit zu einer hörbaren Unterbrechung der Wellenform.
  • Um dieses Problem aus der Welt zu schaffen, normalisiert die vorliegende Erfindung jeden 5-ms-Abschnitt des Dämpfungsfensters in 3(a) um seinen Anfangswert an der linken Kante. Zum Beispiel geht das Fenster für den sechsten Rahmen (25 ms bis 30 ms) von 7/8 bis 6/8, und durch das Normalisieren dieses Fensters um 7/8 ergibt sich ein Fenster von 1 bis (6/8)/(7/8) = 6/7. Analog geht das Fenster für den siebten Rahmen (30 ms bis 35 ms) von 6/8 bis 5/8, und durch das Normalisieren dieses Abschnitts um 6/8 ergibt sich ein Fenster von 1 bis 5/8/(6/8) = 5/6. Ein solches normalisiertes Dämpfungsfenster für jeden Rahmen ist in 3(b) gezeigt.
  • Wie in 3(b) gezeigt, kann die vorliegende Erfindung, anstatt jede Abtastung in dem normalisierten Dämpfungsfenster zu speichern, einfach das Dekrement zwischen benachbarten Abtastungen des Fensters für jeden der acht Fensterab schnitte von dem fünften bis zu dem zwölften Rahmen speichern. Dieses Dekrement ist der Betrag des gesamten Rückgangs der Fensterfunktion in jedem Rahmen (1/8 für den fünften verloren gegangenen Rahmen, 1/7 für den sechsten verloren gegangenen Rahmen, und so weiter), geteilt durch Nf, die Anzahl der Sprachabtastungen in einem Rahmen.
  • Wenn in dem obigen Beispiel der Rahmenverlust nur 20 ms oder weniger gedauert hat, braucht das Wellenform-Dämpfungsglied 220 keine Operationen zur Dämpfung der Wellenformen durchzuführen. Wenn der Rahmenverlust länger als 20 ms gedauert hat, wendet das Dämpfungsglied 220 den geeigneten Abschnitt des normalisierten Wellenform-Dämpfungsfensters in 3(b) an, je nachdem, wie viele aufeinander folgende Rahmen bislang verloren gegangen sind. Wenn zum Beispiel der aktuelle Rahmen der sechste aufeinander folgende Rahmen ist, der verloren gegangen ist, wendet das Dämpfungsglied 220 den Abschnitt des Fensters von 25 ms bis 30 ms an (wobei die Fensterfunktion von 1 bis 6/7 verwendet wird). Da das normalisierte Wellenform-Dämpfungsfenster für jeden Rahmen jeweils mit eins beginnt, verursacht die Fensteroperation keine Unterbrechung der Wellenform an dem Anfang des Rahmens.
  • Die normalisierte Fensterfunktion wird nicht gespeichert. Stattdessen wird sie jeweils in dem laufenden Betrieb berechnet. Beginnend mit dem Wert 1 multipliziert das Dämpfungsglied 220 die erste Wellenform-Abtastung des aktuellen Rahmens mit 1 und verringert dann den Wert der Fensterfunktion um den zuvor berechneten und gespeicherten Dekrementwert, wie oben bereits erwähnt. Dann multipliziert es die zweite Wellenform-Abtastung mit dem resultierenden dekrementierten Wert der Fensterfunktion. Der Wert der Fensterfunktion wird wiederum um den Dekrementwert verringert, und das Ergebnis wird verwendet, um die dritte Wellenform-Abtastung des Rahmens zu skalieren. Dieser Prozess wird für alle Abtastungen der extrapolierten Wellenform in dem aktuellen Rahmen wiederholt.
  • Das Wellenform-Dämpfungsglied 220 erzeugt das Ausgangssignal sq'(n) für den aktuellen verloren gegangenen Rahmen, wie in 2 gezeigt. Das Ausgangssignal sq'(n) wird durch den Schalter 202 geleitet und wird zur endgültigen ausgegebenen Sprache für den aktuellen verloren gegangenen Rahmen. Der aktuelle Rahmen für sq'(n) wird in das Sprachspeichermodul 204 geleitet, um den Bereich des aktuellen Rahmens des Sprachpuffers für sq(n) zu aktualisieren, der dort gespeichert ist.
  • Wenn sq'(n), n = 1, 2, ..., Nf die Ausgabe des Wellenform-Dämpfungsglieds 220 für den aktuellen verloren gegangenen Rahmen ist, dann wird der Puffer für sq(n) des Sprachspeichermoduls 204 wie folgt aktualisiert: sq(N + n) = sq'(n), n = 1, 2, ..., Nf
  • Dieses Signal sq'(n) wird außerdem in ein Filterspeicher-Aktualisierungsmodul 222 geleitet, um den Speicher 201 bzw. die inneren Zustande der Filter innerhalb des herkömmlichen Decodierers 100 zu aktualisieren. Die Aktualisierung des Filterspeichers wird durchgeführt, um sicherzustellen, dass der Filterspeicher mit der extrapolierten Sprach-Wellenform in dem aktuellen verloren gegangen Rahmen konsistent ist. Dies ist für einen glatten Übergang der Sprach-Wellenform an dem Anfang des nächsten Rahmens notwendig, wenn sich herausstellt, dass es sich bei dem nächsten Rahmen um einen einwandfreien Rahmen handelt. Wenn der Filterspeicher 201 ohne eine solche ordnungsgemäße Aktualisierung eingefroren würde, so wären im Allgemeinen ein hörbarer Störimpuls oder Störungen an dem Anfang des nächsten einwandfreien Rahmens vorhanden.
  • Durch das Aktualisieren des Filterspeichers 201 nach einem Rahmenverlust arbeitet das Filterspeicher-Aktualisierungsmodul 222 von dem aktualisierten Sprachpuffer sq(n) in dem herkömmlichen Decodierer 100 rückwärts. Wenn der Kurzzeit-Prädiktor die Ordnung M aufweist, dann handelt es sich bei dem aktualisierten Speicher einfach um die letzten M Abtastungen des extrapolierten Sprachsignals für den aktuellen verloren gegangenen Rahmen, aber in umgekehrter Reihenfolge. stsm(k) sei der k-te Speicherwert des Kurzzeit-Synthesefilters 190 von 1 bzw. der Wert, der in dem Laufzeitspeicher gespeichert ist, der dem Koeffizienten αk des k-ten Kurzzeit-Prädiktors 120 entspricht. Dann wird der Speicher 201 des Kurzzeit-Synthesefilters wie folgt aktualisiert: stsm(k) = sq(N + Nf + 1 – k), k = 1, 2, ..., M.
  • Um den Speicher 201 des FIR-Langzeit-Prädiktors 140 zu aktualisieren, führt das Filterspeicher-Aktualisierungsmodul 222 eine Filterung von Kurzzeit-Prädiktionsfehlern des extrapolierten Sprachsignals des aktuellen Rahmens durch, wobei der anfängliche Speicher des Kurzzeit-Prädiktors 120 auf die letzten M Abtastungen des Ausgangs-Sprachsignals in dem letzten Rahmen gesetzt ist, wobei die Reihenfolge umgekehrt ist. Genauer gesagt sei stpm(k) der k-te Speicherwert des Kurzzeit-Prädiktionsfehlerfilters, dann wird ein solcher Speicher wie folgt aktualisiert: stpm(k) = sq(N + 1 – k), k = 1, 2, ..., M.
  • Der Kurzzeit-Prädiktor 120 weist die folgende Transferfunktion auf:
    Figure 00240001
  • Mit stpm(k), k = 1, 2, ..., M als anfänglichem Filterspeicher von A(z) leitet das Filterspeicher-Aktualisierungsmodul 222 die extrapolierte Sprache für den aktuell verloren gegangenen Rahmen, sq'(n), n = 1, 2, ..., Nf durch dieses Filter A(z). Die entsprechenden Nf Abtastungen an dem Ausgang dieses Filters A(z) werden verwendet, um den aktuellen Rahmenbereich des Speichers des FIR-Langzeit-Prädiktors 140 zu aktualisieren.
  • Wenn keiner der Nebeninformationsparameter (LPC, Grundfrequenz-Periode, Grundfrequenz-Taps und Anregungsgewinn) unter Verwendung einer prädiktiven Codierung quantisiert wird, sind die Operationen des Filterspeicher-Aktualisierungsmoduls 222 abgeschlossen. Wenn andererseits für die Nebeninformationen eine prädiktive Codierung verwendet wird, dann muss das Filterspeicher-Aktualisierungsmodul 222 auch den Speicher der betroffenen Prädiktoren aktualisieren, um die Unterbrechung der decodierten Sprachparameter bei dem nächsten einwandfreien Rahmen zu minimieren.
  • Bei einem beispielhaften Rausch-Rückkopplungs-Codec, in dem das bevorzugte Ausführungsbeispiel der vorliegenden Erfindung verwendet werden kann, wird eine prädiktive Codierung mit gleitendem Mittelwert (MA, moving average) verwendet, um sowohl die LSP-Parameter (Line Spectrum Pair) als auch den Anregungsgewinn zu quantisieren. Die Schemata zur prädiktiven Codierung für diese Parameter funktionieren wie folgt. Für jeden Parameter wird der Langzeit-Mittelwert dieses Parameters offline berechnet und von dem nicht quantisierten Parameterwert subtrahiert. Der vorhergesagte Wert des Parameters mit entferntem Mittelwert wird dann von diesem Parameterwert mit entferntem Mittelwert subtrahiert. Ein (nicht gezeigter) Quantisierer quantisiert den resultierenden Prädiktionsfehler. Die Ausgabe des Quantisierers wird als Eingabe in einen zugehörigen MA-Prädiktor verwendet. Der vorhergesagte Parameterwert und der Langzeit-Mittelwert werden beide wieder zu dem Ausgangswert des Quantisierers addiert, um einen endgültigen, quantisierten Parameterwert zu rekonstruieren.
  • Bei einem Ausführungsbeispiel der vorliegenden Erfindung erzeugen die Module 208 bis 220 die extrapolierte Sprache für den aktuellen verloren gegangenen Rahmen. Theoretisch besteht für den aktuellen Rahmen keine Notwendigkeit, die Nebeninformations-Sprachparameter zu extrapolieren, weil die Ausgangs-Sprach-Wellenform bereits generiert wurde. Um jedoch sicherzustellen, dass die LSP- und Gewinn-Decodiervorgänge an dem nächsten einwandfreien Rahmen reibungslos ablaufen, ist es hilfreich anzunehmen, dass diese Parameter aus dem letzten Rahmen extrapoliert werden. Dies kann erfolgen, indem einfach die Parameterwerte aus dem letzten Rahmen kopiert werden, und dann von diesen extrapolierten Parameterwerten aus rückwärts gearbeitet wird, um den Prädiktor-Speicher der prädiktiven Quantisierer für diese Parameter zu aktualisieren.
  • Unter Verwendung des oben umrissenen Prinzips kann ein Prädiktor-Speicher in einem prädiktiven LSP-Quantisierer wie folgt aktualisiert werden. Für den k-ten LSP-Parameter kann sein vorhergesagter Wert als inneres Produkt des Prädiktor-Koeffizienten-Arrays und des Prädiktor-Speicher-Arrays für den k-ten LSP-Parameter berechnet werden. Dieser vorhergesagte Wert und der Langzeit-Mittelwert des k-ten LSP werden dann von dem k-ten LSP-Parameterwert an dem letzten Rahmen subtrahiert. Der resultierende Wert wird verwendet, um die neueste Speicherposition für den Prädiktor des k-ten LSP-Parameters zu aktualisieren (nachdem der ursprüngliche Satz Prädiktor-Speicher um eine Speicherposition verschoben wurde, wie dies nach dem Stand der Technik gut bekannt ist). Dieses Verfahren wird für alle LSP-Parameter wiederholt (es gibt M solcher Parameter).
  • Wenn der Rahmenverlust nur 20 ms oder kürzer dauert, wird kein Wellenform-Dämpfungsfenster angewendet, und es wird davon ausgegangen, dass der Anregungsgewinn des aktuellen verloren gegangenen Rahmens derselbe ist wie der Anregungsgewinn des letzten Rahmens. In diesem Fall ist die Aktualisierung des Speichers für den Gewinn-Prädiktor im Wesentlichen dieselbe wie die oben beschriebene Aktualisierung des Speichers für die LSP-Prädiktoren. Im Grunde wird der vorhergesagte Wert des logarithmischen Gewinns durch Berechnen des inneren Produkts des Prädiktor-Koeffizienten-Arrays und des Prädiktor-Speicher-Arrays für den logarithmischen Gewinn berechnet. Dieser vorhergesagte logarithmische Gewinn und der Langzeit-Mittelwert des logarithmischen Gewinns werden dann von dem logarithmischen Gewinn des letzten Rahmens subtrahiert. Der resultierende Wert wird verwendet, um die neueste Speicherposition für den Prädiktor des logarithmischen Gewinns zu aktualisieren (nachdem der ursprüngliche Satz von Prädiktor-Speicher um eine Speicherposition verschoben wurde, wie dies nach dem Stand der Technik gut bekannt ist).
  • Wenn der Rahmenverlust länger als 60 ms dauert, wird die ausgegebene Sprache auf null gesetzt, und es wird davon ausgegangen, dass der logarithmische Gewinn zur Basis 2 bei einem künstlich gesetzten Standard-Stillewert von –2,5 liegt. Wiederum werden der vorhergesagte logarithmische Gewinn und der Langzeit-Mittelwert des logarithmischen Gewinns von diesem Standardwert von –2,5 subtrahiert, und der resultierende Wert wird verwendet, um die neueste Speicherposition für den Prädiktor des logarithmischen Gewinns zu aktualisieren.
  • Wenn der Rahmenverlust länger als 20 ms dauert, aber 60 ms nicht überschreitet, ist das Aktualisieren des Prädiktor-Speichers für den prädiktiven Gewinn-Quantisierer eine Herausforderung, weil die extrapolierte Sprach-Wellenform unter Verwendung des Wellenform-Dämpfungsfensters in 3(a) und 3(b) gedämpft wird. Der Speicher des logarithmischen Gewinn-Prädiktors wird auf der Grundlage Werts des logarithmischen Gewinns des Wellenform-Dämpfungsfensters in jedem Rahmen aktualisiert.
  • Um die Codegröße zu minimieren, kann für jeden Rahmen von dem fünften bis zu dem zwölften Rahmen in den Rahmenverlust hinein aus dem logarithmischen Gewinn des letzten Rahmens auf der Grundlage des Dämpfungsfensters von 3(a) und 3(b) im Voraus ein Korrekturfaktor berechnet werden. Der Korrekturfaktor wird dann gespeichert. Der folgende Algorithmus berechnet diese 8 Korrekturfaktoren oder Dämpfungsfaktoren für den logarithmischen Gewinn.
    • 1. Initialisieren von lastlg = 0. (lastlg = letzter logarithmischer Gewinn = logarithmischer Gewinn des letzten Rahmens)
    • 2. Initialisieren von j = 1.
    • 3. Berechnen des normalisierten Dämpfungsfenster-Arrays
      Figure 00270001
    • 4. Berechnen von
      Figure 00270002
    • 5. Berechnen von lga(j) = lastlg – lg
    • 6. Wenn j < 8, dann lastlg = lg – 2log2(8-j9-j ) setzen
    • 7. Wenn j = 8, Prozess beenden, andernfalls j um 1 inkrementieren (das heißt j ← j + 1), dann zu Schritt 3 zurückkehren.
  • Der obige Algorithmus berechnet den logarithmischen Wert des Gewinns zur Basis 2 des Wellenform-Dämpfungsfensters für einen bestimmten Rahmen. Darm bestimmt er die Differenz zwischen diesem Wert und einem auf ähnliche Weise berechneten logarithmischen Gewinn für das Fenster des vorherigen Rahmens, wobei eine Kompensation der Normalisierung des Anfangs des Fensters für jeden Rahmen auf eins erfolgt. Die Ausgabe dieses Algorithmus ist das Array aus Dämpfungsfaktoren des logarithmischen Gewinns lga(j) für j = 1, 2, ..., 8. Es sei angemerkt, dass lga(j) dem (4 + j)-ten Rahmen in den Rahmenverlust hinein entspricht.
  • Sobald das Array für lga(j) vorberechnet und gespeichert worden ist, wird die Aktualisierung des Speichers für den logarithmischen Gewinn-Prädiktor für 20 ms bis 60 ms dauernde Rahmenverluste einfach. Wenn es sich bei dem aktuellen verloren gegangenen Rahmen um den j-ten Rahmen in den Rahmenverlust hinein handelt (4 < j ≤ 12), wird lga(j – 4) von dem Wert des logarithmischen Gewinns des letzten Rahmens subtrahiert. Von dem Ergebnis dieser Subtraktion werden der vorhergesagte logarithmische Gewinn und der Langzeit-Mittelwert des logarithmischen Ge winns subtrahiert, und der resultierende Wert wird verwendet, um die neueste Speicherposition des Prädiktors für den logarithmischen Gewinn zu aktualisieren.
  • Nachdem das Filterspeicher-Aktualisierungsmodul 222 alle aktualisierten Filterspeicherwerte berechnet hat, verwendet der herkömmliche Decodierer 100 diese Werte, um den Speicher 201 zu aktualisieren. Genauer gesagt aktualisiert er den Speicher seines Kurzzeit-Synthesefilters 190, seines Langzeit-Synthesefilters 180 und aller in den Quantisierern für die Nebeninformationen verwendeten Prädiktoren, falls vorhanden, bei der Vorbereitung auf das Decodieren des nächsten Rahmens, wobei davon ausgegangen wird, dass der nächste Rahmen einwandfrei empfangen wird.
  • 4(a) und 4(b) stellen ein beispielhaftes Verfahren zum Umsetzen des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung bereit. Die vorliegende Erfindung beginnt, indem Abtastungen des decodierten Ausgangssignals in einem Speicher gespeichert werden, wie in Block 400 angegeben. Die von dem Decodierer 100 ausgegebene decodierte Sprach-Wellenform wird analysiert, und in Block 402 wird der Wert für die Vorab-Zeitverschiebung bestimmt. Als Nächstes wird das von dem Vorgang in Block 402 ausgegebene Signal analysiert und klassifiziert, um zu bestimmen, ob eine periodische Wiederholung vorgenommen werden kann oder nicht. Wenn bestimmt wird, dass das Signal hinreichend periodisch ist, wird das Flag für periodische Wiederholungen gesetzt, und die endgültige Zeitverschiebung sowie der Skalierungsfaktor werden bestimmt, wie in den Blöcken 404 bzw. 406 angegeben.
  • Nach der Bestimmung der endgültigen Zeitverschiebung sowie des Skalierungsfaktors extrapoliert die vorliegende Erfindung L Sprach-Abtastungen und berechnet L Ringing-Abtastungen des Synthesefiltermoduls 195 auf der Grundlage der bestimmten endgültigen Zeitverschiebung sowie des bestimmten Skalierungsfaktors, wie in den Blöcken 408 bzw. 410 gezeigt. Die L extrapolierten Abtastungen und die L Ringing-Abtastungen des Synthesefilters werden dann, wie in Block 412 angegeben, überlagernd addiert. Die verbleibenden Abtastungen werden dann, wie in Block 414 angegeben, extrapoliert. Die Blöcke 408, 410, 412 und 414 funktionieren gemeinsam, um potenzielle Unterbrechungen zwischen Rahmen zu entfernen. Wenn der Rahmenverlust andauert, wird in Block 416 ein Wellenform-Dämpfungsprozess eingeleitet. Schließlich wird der Speicher der Filter aktualisiert, um sicherzustellen, dass sein Inhalt mit der extrapolierten Sprach-Wellenform in dem aktuellen verloren gegangenen Rahmen konsistent ist, wie in Block 418 gezeigt, und der Prozess endet.
  • Die folgende Beschreibung eines allgemeinen Zwecken dienenden Computersystems ist aus Gründen der Vollständigkeit vorgesehen. Wie oben angegeben, kann die vorliegende Erfindung in Hardware oder als Kombination aus Software und Hardware implementiert werden. Folglich kann die Erfindung in der Umgebung eines Computersystems oder eines anderen Verarbeitungssystems implementiert werden. Ein Beispiel für ein solches Computersystem 500 ist in 5 gezeigt. In der vorliegenden Erfindung können alle der in 1 und 2 dargestellten Elemente auf einem oder mehreren eigenständigen Computersystemen 500 ausgeführt werden, um die verschiedenen Verfahren der vorliegenden Erfindung zu implementieren.
  • Das Computersystem 500 umfasst einen oder mehrere Prozessoren, wie beispielsweise den Prozessor 504. Bei dem Prozessor 504 kann es sich um einen digitalen speziellen oder Mehrzweck-Signalprozessor handeln, und er ist mit einer Kommunikationsinfrastruktur 506 verbunden (zum Beispiel einem Bus oder einem Netzwerk). Verschiedene Software-Implementierungen werden im Hinblick auf dieses beispielhafte Computersystem beschrieben. Nach dem Lesen dieser Beschreibung ist es für einen Fachmann auf diesem Gebiet offensichtlich, wie die Erfindung unter Verwendung anderer Computersysteme und/oder Computerarchitekturen implementiert wird.
  • Das Computersystem 500 umfasst auch einen Hauptspeicher 508, vorzugsweise Speicher mit wahlfreiem Zugriff (RAM), und es kann auch einen sekundären Speicher 510 umfassen. Der sekundäre Speicher 510 kann zum Beispiel ein Festplattenlaufwerk 512 und/oder ein Laufwerk für Wechseldatenträger 514, das ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein optisches Plattenlaufwerk, usw. darstellt, umfassen. Das Laufwerk für Wechseldatenträger 514 liest auf allgemein bekannte Weise von einer Wechseldatenträgereinheit 518 und schreibt auf diese. Die Wechseldatenträgereinheit 518 stellt eine Diskette, ein Magnetband, eine optische Platte, usw. dar, die bzw. das von dem Laufwerk für Wechseldatenträger 514 gelesen wird und auf die bzw. das dieses Laufwerk schreibt. Vorteilhafterweise umfasst die Wechseldatenträgereinheit 518 ein von einem Computer verwendbares Speichermedium, auf dem Computersoftware und/oder Daten gespeichert sind.
  • Bei alternativen Ausführungsbeispielen kann der sekundäre Speicher 510 andere, ähnliche Mittel umfassen, um es zu erlauben, dass Computerprogramme oder andere Anweisungen in das Computersystem 500 geladen werden. Solche Mittel können zum Beispiel eine Wechseldatenträgereinheit 522 und eine Schnittstelle 520 umfassen. Beispiele für solche Mittel können eine Programmkassette und eine Kassettenschnittstelle umfassen (wie sie in Vorrichtungen für Videospiele zu finden sind), einen herausnehmbaren Speicherchip (wie beispielsweise ein EPROM oder PROM) und den zugeordneten Sockel und die weiteren Wechseldatenträgereinheiten 522 und Schnittstellen 520, die es erlauben, dass Software und Daten von der Wechseldatenträgereinheit 522 an das Computersystem 500 übermittelt werden.
  • Das Computersystem 500 kann außerdem eine Kommunikationsschnittstelle 524 umfassen. Die Kommunikationsschnittstelle 524 erlaubt es, dass Software und Daten zwischen dem Computersystem 500 und externen Vorrichtungen übermittelt werden. Beispiele für die Kommunikationsschnittstelle 524 können ein Modem, eine Netzwerkschnittstelle (wie beispielsweise eine Ethernet-Karte), einen Kommunikations-Port, einen PCMCIA-Slot mit Karte, usw. umfassen. Über die Kommunikationsschnittstelle 524 übermittelte Software und Daten liegen in der Form von Signalen 528 vor, bei denen es sich um elektronische, elektromagnetische, optische oder andere Signale handeln kann, die von der Kommunikationsschnittstelle 524 empfangen werden können. Diese Signale 528 werden der Kommunikationsschnittstelle 524 über einen Kommunikationspfad 526 bereitgestellt. Der Kommunikationspfad 526 trägt die Signale 528 und kann unter Verwendung von Draht oder Kabel, Glasfaser, einer Telefonleitung, einer Mobiltelefonverbindung, einer Funkfrequenzverbindung und anderer Kommunikationskanäle implementiert werden.
  • In der vorliegenden Erfindung werden die Begriffe "computerlesbares Medium" und "computerverwendbares Medium" verwendet, um allgemein Medien wie das Laufwerk für Wechseldatenträger 514, eine in dem Festplattenlaufwerk 512 installierte Festplatte und die Signale 528 zu bezeichnen. Diese Computerprogramm-Produkte sind Mittel, um dem Computersystem 500 Software bereitzustellen.
  • Computerprogramme (die auch als Computer-Steuerlogik bezeichnet werden) werden in dem Hauptspeicher 508 und/oder in dem sekundären Speicher 510 gespeichert. Computerprogramme können auch über die Kommunikationsschnittstelle 524 empfangen werden. Solche Computerprogramme versetzen, wenn sie ausgeführt werden, das Computersystem 500 in die Lage, die vorliegende Erfindung auszuführen, wie in diesem Dokument erörtert.
  • Insbesondere versetzen die Computerprogramme, wenn sie ausgeführt werden, den Prozessor 504 in die Lage, die Prozesse der vorliegenden Erfindung zu implementieren. Demgemäß stellen solche Computerprogramme Steuereinheiten des Computersystems 500 dar. Beispielhalber können bei den Ausführungsbeispielen der Erfindung die von den Signalverarbeitungsblöcken von Codierern und/oder Decodierern durchgeführten Prozesse/Verfahren von Computer-Steuerlogik durchgeführt werden. Wo die Erfindung unter Verwendung von Software implementiert wird, kann die Software in einem Computerprogramm-Produkt gespeichert sein und unter Verwendung des Laufwerks für Wechseldatenträger 514, des Festplattenlaufwerks 512 oder der Kommunikationsschnittstelle 524 in das Computersystem 500 geladen werden.
  • Bei einem weiteren Ausführungsbeispiel sind Merkmale der Erfindung hauptsächlich in Hardware implementiert, wobei zum Beispiel Hardwarekomponenten wie ASICs (anwendungsspezifische ICs) und Gate-Arrays verwendet werden. Die Implementierung einer Hardware-Regelmaschine zum Ausführen der in diesem Dokument beschriebenen Funktionen ist den Fachleuten auf dem bzw. den relevanten Gebiet(en) offensichtlich.

Claims (15)

  1. Verfahren zum Verarbeiten eines extrapolierten, eine Anzahl aufeinander folgender Ersatzrahmen umfassenden Signals, wobei das Verfahren Folgendes umfasst: Dämpfen eines Anteils des extrapolierten Signals, wenn das extrapolierte Signal eine vorbestimmte Dauer erreicht; wobei das Dämpfen ein Ausgangssignal (sq'(n)) mit einem gedämpften Anteil erzeugt, wobei das Ausgangssignal (sq'(n)) die Anzahl aufeinander folgender Ersatzrahmen umfasst; wobei jeder der aufeinander folgenden Ersatzrahmen innerhalb des gedämpften Anteils durch Anwenden eines Dämpfungsfensters mit Abschnitten gedämpft wird, wobei jeder Abschnitt (i) einen Anfangsbetragswert 1 und (ii) einen eindeutigen Endbetrag aufweist, wobei die eindeutigen Endbeträge im Laufe der Zeit abnehmen; wobei das Verfahren dadurch gekennzeichnet ist, dass es ferner das jeweilige Speichern der Differenz zwischen Beträgen aneinander angrenzender Abtastungen in jedem Dämpfungsfensterabschnitt umfasst.
  2. Verfahren nach Anspruch 1, wobei das Dämpfen unmittelbar beginnt, wenn das extrapolierte Signal die vorbestimmte Dauer erreicht.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Dämpfen linear erfolgt.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die vorbestimmte Dauer 20 Millisekunden beträgt.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei es sich bei dem decodierten Signal um ein Sprachsignal handelt.
  6. Vorrichtung zum Verarbeiten eines extrapolierten, eine Anzahl aufeinander folgender Ersatzrahmen umfassenden Signals, wobei die Vorrichtung Folgendes umfasst: Mittel zum Dämpfen eines Anteils des extrapolierten Signals, wenn das extrapolierte Signal eine vorbestimmte Dauer erreicht; wobei das Dampfen ein Ausgangssignal (sq'(n)) mit einem gedämpften Anteil erzeugt, wobei das Ausgangssignal (sq'(n)) die Anzahl aufeinander folgender Ersatzrahmen umfasst; wobei jeder der aufeinander folgenden Ersatzrahmen innerhalb des gedämpften Anteils durch Anwenden eines Dämpfungsfensters mit Abschnitten gedämpft wird, wobei jeder Abschnitt (i) einen Anfangsbetragswert 1 und (ii) einen eindeutigen Endbetrag aufweist, wobei die eindeutigen Endbeträge im Laufe der Zeit abnehmen; wobei die Vorrichtung dadurch gekennzeichnet ist, dass sie ferner Mittel umfasst, um jeweils die Differenz zwischen Beträgen aneinander angrenzender Abtastungen in jedem Dämpfungsfensterabschnitt zu speichern.
  7. Vorrichtung nach Anspruch 6, wobei das Dämpfen unmittelbar beginnt, wenn das extrapolierte Signal die vorbestimmte Dauer erreicht.
  8. Vorrichtung nach Anspruch 6 oder 7, wobei das Dämpfen linear erfolgt.
  9. Vorrichtung nach einem der Ansprüche 6 bis 8, wobei die vorbestimmte Dauer 20 Millisekunden beträgt.
  10. Vorrichtung nach einem der Ansprüche 6 bis 9, wobei es sich bei dem decodierten Signal um ein Sprachsignal handelt.
  11. Computerlesbares Medium, das eine oder mehrere Folgen von einer oder mehreren Anweisungen zur Ausführung durch einen oder mehrere Prozesso ren beinhaltet, um ein Verfahren zum Verarbeiten eines extrapolierten, eine Anzahl aufeinander folgender Ersatzrahmen umfassenden Signals durchzuführen, wobei die Anweisungen, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dazu veranlassen, die folgenden Schritte durchzuführen: Dämpfen eines Anteils des extrapolierten Signals, wenn das extrapolierte Signal eine vorbestimmte Dauer erreicht; wobei das Dämpfen ein Ausgangssignal (sq'(n)) mit einem gedämpften Anteil erzeugt, wobei das Ausgangssignal (sq'(n)) die Anzahl aufeinander folgender Ersatzrahmen umfasst; wobei jeder der aufeinander folgenden Ersatzrahmen innerhalb des gedämpften Anteils durch Anwenden eines Dämpfungsfensters mit Abschnitten gedämpft wird, wobei jeder Abschnitt (i) einen Anfangsbetragswert 1 und (ii) einen eindeutigen Endbetrag aufweist, wobei die eindeutigen Endbeträge im Laufe der Zeit abnehmen; wobei das computerlesbare Medium dadurch gekennzeichnet ist, dass es eine oder mehrere Anweisungen beinhaltet, die ferner den einen oder die mehreren Prozessoren dazu veranlassen, die Differenz zwischen Beträgen aneinander angrenzender Abtastungen in jedem Dämpfungsfensterabschnitt zu speichern.
  12. Computerlesbares Medium nach Anspruch 11, wobei das Dämpfen unmittelbar beginnt, wenn das extrapolierte Signal die vorbestimmte Dauer erreicht.
  13. Computerlesbares Medium nach einem der Ansprüche 11 oder 12, wobei das Dämpfen linear erfolgt.
  14. Computerlesbares Medium nach einem der Ansprüche 11 bis 13, wobei die vorbestimmte Dauer 20 Millisekunden beträgt.
  15. Computerlesbares Medium nach einem der Ansprüche 11 bis 14, wobei es sich bei dem decodierten Signal um ein Sprachsignal handelt.
DE60224142T 2001-08-17 2002-08-14 Verfahren und Vorrichtung zur Wellenformdämpfung von fehlerbehafteten Sprachrahmen Expired - Lifetime DE60224142T2 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US31278901P 2001-08-17 2001-08-17
US312789P 2001-08-17
US34437402P 2002-01-04 2002-01-04
US344374P 2002-01-04
US10/183,451 US7308406B2 (en) 2001-08-17 2002-06-28 Method and system for a waveform attenuation technique for predictive speech coding based on extrapolation of speech waveform
US183451 2002-06-28

Publications (2)

Publication Number Publication Date
DE60224142D1 DE60224142D1 (de) 2008-01-31
DE60224142T2 true DE60224142T2 (de) 2008-12-04

Family

ID=27391677

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60224142T Expired - Lifetime DE60224142T2 (de) 2001-08-17 2002-08-14 Verfahren und Vorrichtung zur Wellenformdämpfung von fehlerbehafteten Sprachrahmen

Country Status (4)

Country Link
US (1) US7308406B2 (de)
EP (1) EP1288915B1 (de)
AT (1) ATE381756T1 (de)
DE (1) DE60224142T2 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7359409B2 (en) * 2005-02-02 2008-04-15 Texas Instruments Incorporated Packet loss concealment for voice over packet networks
US7930176B2 (en) * 2005-05-20 2011-04-19 Broadcom Corporation Packet loss concealment for block-independent speech codecs
US7957960B2 (en) * 2005-10-20 2011-06-07 Broadcom Corporation Audio time scale modification using decimation-based synchronized overlap-add algorithm
JP5142727B2 (ja) * 2005-12-27 2013-02-13 パナソニック株式会社 音声復号装置および音声復号方法
US8078456B2 (en) * 2007-06-06 2011-12-13 Broadcom Corporation Audio time scale modification algorithm for dynamic playback speed control
DE602007004504D1 (de) * 2007-10-29 2010-03-11 Harman Becker Automotive Sys Partielle Sprachrekonstruktion
US8676573B2 (en) * 2009-03-30 2014-03-18 Cambridge Silicon Radio Limited Error concealment
US8316267B2 (en) 2009-05-01 2012-11-20 Cambridge Silicon Radio Limited Error concealment
KR101812123B1 (ko) 2012-11-15 2017-12-26 가부시키가이샤 엔.티.티.도코모 음성 부호화 장치, 음성 부호화 방법, 음성 부호화 프로그램, 음성 복호 장치, 음성 복호 방법 및 음성 복호 프로그램
CN103280222B (zh) * 2013-06-03 2014-08-06 腾讯科技(深圳)有限公司 音频编码、解码方法及其系统
ES2805744T3 (es) 2013-10-31 2021-02-15 Fraunhofer Ges Forschung Decodificador de audio y método para proporcionar una información de audio decodificada usando un ocultamiento de errores en base a una señal de excitación de dominio de tiempo
KR101940740B1 (ko) 2013-10-31 2019-01-22 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 시간 도메인 여기 신호를 변형하는 오류 은닉을 사용하여 디코딩된 오디오 정보를 제공하기 위한 오디오 디코더 및 방법
CN106254888B (zh) * 2015-06-09 2020-06-02 同济大学 一种图像编码及解码方法、图像处理设备
JP6146686B2 (ja) * 2015-09-15 2017-06-14 カシオ計算機株式会社 データ構造、データ格納装置、データ取り出し装置および電子楽器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4920489A (en) * 1987-08-14 1990-04-24 Cardiodata Inc. Apparatus and method for solid state storage of episodic signals
BE1007428A3 (nl) * 1993-08-02 1995-06-13 Philips Electronics Nv Transmissiesysteem met reconstructie van ontbrekende signaalmonsters.
US6170073B1 (en) * 1996-03-29 2001-01-02 Nokia Mobile Phones (Uk) Limited Method and apparatus for error detection in digital communications
US6810377B1 (en) 1998-06-19 2004-10-26 Comsat Corporation Lost frame recovery techniques for parametric, LPC-based speech coding systems
US6961697B1 (en) * 1999-04-19 2005-11-01 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
WO2000063883A1 (en) 1999-04-19 2000-10-26 At & T Corp. Method and apparatus for performing packet loss or frame erasure concealment
US6952668B1 (en) * 1999-04-19 2005-10-04 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
EP1199812A1 (de) * 2000-10-20 2002-04-24 Telefonaktiebolaget Lm Ericsson Kodierung der akustischen Signale mit Verbesserung der Wahrnehmung
EP1199711A1 (de) * 2000-10-20 2002-04-24 Telefonaktiebolaget Lm Ericsson Kodierung von Audiosignalen unter Verwendung von Vergrösserung der Bandbreite

Also Published As

Publication number Publication date
US7308406B2 (en) 2007-12-11
ATE381756T1 (de) 2008-01-15
EP1288915A3 (de) 2004-08-11
EP1288915B1 (de) 2007-12-19
US20030055631A1 (en) 2003-03-20
DE60224142D1 (de) 2008-01-31
EP1288915A2 (de) 2003-03-05

Similar Documents

Publication Publication Date Title
DE60220485T2 (de) Verfahren und Vorrichtung zur Verschleierung von Rahmenausfall von prädiktionskodierter Sprache unter Verwendung von Extrapolation der Wellenform
DE60121405T2 (de) Transkodierer zur Vermeidung einer Kaskadenkodierung von Sprachsignalen
DE3856211T2 (de) Verfahren zur adaptiven Filterung von Sprach- und Audiosignalen
DE60117144T2 (de) Sprachübertragungssystem und verfahren zur behandlung verlorener datenrahmen
DE69915830T2 (de) Verbesserte verfahren zur rückgewinnung verlorener datenrahmen für ein lpc-basiertes, parametrisches sprachkodierungsystem.
DE69926821T2 (de) Verfahren zur signalgesteuerten Schaltung zwischen verschiedenen Audiokodierungssystemen
DE60217522T2 (de) Verbessertes verfahren zur verschleierung von bitfehlern bei der sprachcodierung
DE60029715T2 (de) Verfahren und anordnung zur verschleierung von rahmenausfall
DE60122203T2 (de) Verfahren und system zur erzeugung von behaglichkeitsrauschen bei der sprachkommunikation
DE60219351T2 (de) Signaländerungsverfahren zur effizienten kodierung von sprachsignalen
DE60224962T2 (de) Verfahren und Vorrichtung zur Verschleierung von fehlerbehafteten Sprachrahmen
DE60120766T2 (de) Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen
DE60132217T2 (de) Übertragungsfehler-verdeckung in einem audiosignal
DE69113866T2 (de) Sprachdecoder.
DE602004006211T2 (de) Verfahren zur Maskierung von Paketverlusten und/oder Rahmenausfall in einem Kommunikationssystem
DE60006271T2 (de) Celp sprachkodierung mit variabler bitrate mittels phonetischer klassifizierung
EP1327242B1 (de) Fehlerverschleierung in bezug auf die dekodierung kodierter akustischer signale
DE60124274T2 (de) Codebuchstruktur und suchverfahren für die sprachkodierung
DE602004003610T2 (de) Halbrätiger Vocoder
DE602004007786T2 (de) Verfahren und vorrichtung zur quantisierung des verstärkungsfaktors in einem breitbandsprachkodierer mit variabler bitrate
DE19811039B4 (de) Verfahren und Vorrichtungen zum Codieren und Decodieren von Audiosignalen
DE69531642T2 (de) Synthese eines Anregungssignals bei Ausfall von Datenrahmen oder Verlust von Datenpaketen
DE69023402T2 (de) Verfahren zur Sprachkodierung und -dekodierung.
DE60225400T2 (de) Verfahren und Vorrichtung zur Verarbeitung eines dekodierten Sprachsignals
DE69123500T2 (de) 32 Kb/s codeangeregte prädiktive Codierung mit niedrigen Verzögerung für Breitband-Sprachsignal

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: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M