DE60223580T2 - Verbessertes verbergen einer rahmenlöschung für die prädiktive sprachcodierung auf der basis einer extrapolation einer sprachsignalform - Google Patents

Verbessertes verbergen einer rahmenlöschung für die prädiktive sprachcodierung auf der basis einer extrapolation einer sprachsignalform Download PDF

Info

Publication number
DE60223580T2
DE60223580T2 DE60223580T DE60223580T DE60223580T2 DE 60223580 T2 DE60223580 T2 DE 60223580T2 DE 60223580 T DE60223580 T DE 60223580T DE 60223580 T DE60223580 T DE 60223580T DE 60223580 T2 DE60223580 T2 DE 60223580T2
Authority
DE
Germany
Prior art keywords
frame
ppfe1
samples
delay time
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
DE60223580T
Other languages
English (en)
Other versions
DE60223580D1 (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
Priority claimed from US10/183,448 external-priority patent/US7143032B2/en
Priority claimed from US10/183,451 external-priority patent/US7308406B2/en
Priority claimed from US10/183,608 external-priority patent/US7711563B2/en
Application filed by Broadcom Corp filed Critical Broadcom Corp
Application granted granted Critical
Publication of DE60223580D1 publication Critical patent/DE60223580D1/de
Publication of DE60223580T2 publication Critical patent/DE60223580T2/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)

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft digitale Kommunikationen. Insbesondere betrifft die vorliegende Erfindung die Verbesserung der Sprachqualität, wenn Rahmen eines komprimierten Bitstroms, der ein Sprachsignal darstellt, in dem Kontext eines digitalen Kommunikationssystems verloren gehen.
  • Stand der Technik
  • Bei der Sprachcodierung, die manchmal auch Sprachkompression genannt wird, codiert ein Codierer ein Eingangssprachsignal oder Eingangsaudiosignal für die Übertragung in einen digitalen Bitstrom. Ein Decodierer decodiert den Bitstrom in ein Ausgangssprachsignal. Die Kombination aus dem Codierer und dem Decodierer wird Codec genannt. Der übertragene Bitstrom wird normalerweise in Rahmen partitioniert. In drahtlosen Netzen oder Paketnetzen gehen Rahmen von übertragenen Bits manchmal verloren, werden gelöscht oder werden beschädigt. Dieser Zustand wird in drahtlosen Kommunikationen Frame Erasure (Rahmenlöschung) genannt. Der gleiche Zustand von gelöschten Rahmen kann in Paketnetzen auf Grund eines Paketverlusts auftreten. Wenn eine Rahmenlöschung stattfindet, kann der Decodierer normale Decodierungsoperationen nicht durchführen, da in dem verlorenen Rahmen keine Bits zum Decodieren vorhanden sind. Während gelöschter Rahmen muss der Decodierer Frame Erasure Concealment (FEC)-Operationen (Rahmenlöschungsverdeckungs-Operationen) durchführen, um zu versuchen, die qualitätsvermindernden Auswirkungen der Rahmenlöschung zu verbergen.
  • Eine der frühesten FEC-Techniken ist die Wellenformsubstitution auf der Grundlage des Mustervergleichs (Pattern Matching), wie dies von Goodman et al. in "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 wurde. Dieses Verfahren wurde bei einem Pulscodemodulations-(PCM; pulse code modulation)-Sprachcodec angewendet, der eine unverzügliche Quantisierung der Sprachwellenform direkt Abtastwert um Abtastwert durchführt. Dieses FEC-Verfahren verwendet ein Stück einer decodierten Sprachwellenform direkt vor dem verlorenen Rahmen als die Vorlage (Template) und verschiebt diese Vorlage in der Zeit zurück, um ein geeignetes Stück von decodierter Sprachwellenform zu finden, das irgendeine Art von Wellenformähnlichkeitsmaß maximiert (oder ein Wellenformunterschiedsmaß minimiert).
  • Das FEC-Verfahren nach Goodman verwendet dann den Abschnitt der Wellenform, der direkt auf ein am besten passendes Wellenformsegment folgt, als die Ersatzwellenform für den verlorenen Rahmen. Um Diskontinuitäten an Rahmengrenzen zu eliminieren, verwendet dieses Verfahren auch ein Kosinusquadratfenster (Raised-Cosine-Fenster), um eine Overlap-Add-Technik zwischen der korrekt decodierten Wellenform und der Ersatzwellenform durchzuführen. Diese Overlap-Add-Technik vergrößert die Codierungsverzögerung. Die Verzögerung tritt auf, weil an dem Ende jedes Rahmens viele Sprachabtastwerte vorhanden sind, die einem Overlap-Add unterzogen werden müssen, um die endgültigen Werte zu erhalten, und deshalb nicht ausgespielt werden können, bis der nächste Rahmen an Sprache decodiert ist.
  • Auf der Grundlage der oben erwähnten Arbeit von Goodman entwickelte David Kapilow eine höherentwickelte Version eines FEC-Verfahrens für einen G.711 PCM Codec. Dieses FEC-Verfahren ist in dem Anhang 1 der ITU-T Empfehlung G.711 beschrieben. Aber sowohl das FEC-Verfahren von Goodman, als auch das FEC-Verfahren von Kapilow sind auf PCM Codecs mit sofortiger Quantisierung beschränkt.
  • Für die Sprachcodierung basiert der populärste Typ von Sprachcodec auf der Prädiktionscodierung. Das vielleicht erste veröffentlichte FEC-Verfahren für einen prädiktiven Codec ist ein Verfahren "zum Maskieren schlechter/fehlerhafter Rahmen" ("Bad Frame Masking") in dem ursprünglichen TIA IS-54 VSELP-Standard für das digitale zellulare Funktelefonsystem in Nordamerika (aufgehoben im September 1996). Hierbei wiederholt das Verfahren bei Erfassung eines schlechten Rahmens die linearen Prädiktionsparameter des letzten Rahmens. Dieses Verfahren leitet die Sprachenergieparameter für den aktuellen Rahmen ab, indem es die Sprachenergieparameter des letzten Rahmens entweder wiederholt oder dämpft, und zwar in Abhängigkeit davon, wie viele aufeinanderfolgende schlechte Rahmen gezählt worden sind. Für das Anregungssignal (oder den quantisierten Prädiktions rest) führt dieses Verfahren keine spezielle Operation durch. Es decodiert lediglich die Anregungsbits, obwohl diese eine große Anzahl von Bitfehlern enthalten können.
  • Das erste FEC-Verfahren für einen Prädiktionscodec, das eine Wellenformersetzung in dem Anregungsbereich durchführt, ist wahrscheinlich das FEC-System, das von Chen für den Low-Delay Code Excited Linear Predictor (CELP)-Codec der ITU-T Empfehlung G.728 entwickelt wurde und wie es in dem US-Patent Nr. 5,615,298 , ausgegeben für Chen, mit dem Titel "Excitation Signal Synthesis During Frame Erasure or Packet Loss" beschrieben ist. In diesem Lösungsweg wird das Sprachanregungssignal während gelöschter Rahmen in Abhängigkeit davon, ob der letzte Rahmen ein stimmhafter oder ein stimmloser Rahmen ist, extrapoliert. Wenn dieser stimmhaft ist, wird das Anregungssignal durch periodische Wiederholung extrapoliert. Wenn er stimmlos ist, wird das Anregungssignal durch eine willkürliche Wiederholung kleiner Segmente der Sprachwellenform in dem vorhergehenden Rahmen extrapoliert, während gewährleistet wird, dass die durchschnittliche Sprachsignalleistung im Groben aufrechterhalten wird.
  • Was deshalb benötigt wird, ist eine FEC-Technik, die die angemerkten Nachteile vermeidet, die mit den herkömmlichen Decodierern assoziiert sind. So wird zum Beispiel eine FEC-Technik benötigt, die die Verzögerungszunahme verhindert, die in der Overlap-Add-Operation des Lösungswegs von Goodman erzeugt wird. Ebenfalls benötigt wird eine FEC-Technik, die die gleichmäßige Wiedergabe einer Sprach- oder Audiowellenform gewährleisten kann, wenn der nächste gute Rahmen empfangen wird.
  • Die EP 0 747 882 A2 beschreibt ein Verfahren zur Verwendung in einem Sprachdecodierer, der daran scheitert, einen Abschnitt jedes von ersten und zweiten aufeinanderfolgenden Rahmen von komprimierter Sprachinformation zu empfangen, wobei eine Pitch-Verzögerung, die mit dem ersten der aufeinanderfolgenden Rahmen assoziiert ist, inkrementiert wird, und der inkrementierte Wert als eine Pitch-Verzögerung für den zweiten der aufeinanderfolgenden Rahmen verwendet wird.
  • Gemäss der Erfindung sind ein Verfahren und eine Vorrichtung zum Synthetisieren einer Anzahl von beschädigten Rahmen, wie sie jeweils von den unabhängigen Ansprüchen 1 und 6 definiert sind, sowie ein computerlesbares Medium, wie es von dem unabhängigen Anspruch 9 definiert ist, bereitgestellt.
  • Weitere vorteilhafte Merkmale der Erfindung sind in den abhängigen Unteransprüchen definiert.
  • In Übereinstimmung mit den Prinzipien der vorliegenden Erfindung, wie sie hier umfassend beschriebenen und verwirklicht sind, umfasst eine beispielhafte FEC-Technik ein Verfahren zum Synthetisieren einer Anzahl von beschädigten Rahmen, die von einem Decodierer ausgegeben werden, der ein oder mehrere Prädiktionsfilter umfasst. Die beschädigten Rahmen sind repräsentativ für ein Segment eines decodierten Signals (sq(n)), das von dem Decodierer ausgegeben wird. Das Verfahren umfasst das Bestimmen einer ersten vorläufigen Verzögerungszeit (ppfe1) auf der Grundlage der Überprüfung einer vorbestimmten Anzahl (K) von Abtastwerten eines anderen Segments des decodierten Signals und das Bestimmen eines Skalierungsfaktors (ptfe), der mit der überprüften Anzahl (K) von Abtastwerten assoziiert ist, wenn die erste vorläufige Verzögerungszeit (ppfe1) bestimmt wird. Das Verfahren umfasst auch das Extrapolieren eines oder mehrerer Ersatzrahmen auf der Grundlage der ersten vorläufigen Verzögerungszeit (ppfe1) und des Skalierungsfaktors (ptfe).
  • Weitere Ausführungsbeispiele, Merkmale und Vorteile der vorliegenden Erfindung sowie auch die Struktur und das Funktionieren der verschiedenen Ausführungsbeispiele der vorliegenden Erfindung werden unten unter Bezugnahme auf die beigefügten Zeichnungen ausführlich beschrieben werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN/FIGUREN
  • Die beigefügten Zeichnungen, die hier in der vorliegenden Patentschrift aufgenommen sind und einen Teil davon bilden, veranschaulichen ein Ausführungsbeispiel der Erfindung und erläutern zusammen mit der Beschreibung den Zweck, die Vorteile und die Prinzipien der Erfindung, wobei in den Zeichnungen:
  • 1 eine Blockdiagrammveranschaulichung eines herkömmlichen prädiktiven Decodierers ist;
  • 2 eine Blockdiagrammveranschaulichung eines beispielhaften Decodierers ist, der in Übereinstimmung mit der vorliegenden Erfindung aufgebaut und angeordnet ist;
  • 3(a) ein Diagramm eines beispielhaften nicht normalisierten Wellenformdämpfungsfensters ist, das in Übereinstimmung mit der vorliegenden Erfindung funktioniert;
  • 3(b) ein Diagramm eines beispielhaften normalisierten Wellenformdämpfungsfensters ist, das in Übereinstimmung mit der vorliegenden Erfindung funktioniert; und
  • 4 ein Blockdiagramm eines beispielhaften Computersystems ist, in dem die vorliegende Erfindung praktiziert werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Die nachfolgende ausführliche Beschreibung der vorliegenden Erfindung bezieht sich auf die beigefügten Zeichnungen, die beispielhafte Ausführungsbeispiele veranschaulichen, die mit der vorliegenden Erfindung übereinstimmen. Andere Ausführungsbeispiele sind möglich, und Modifikationen können bei den Ausführungsbeispielen innerhalb des Schutzumfangs der vorliegenden Erfindung durchgeführt werden. Deshalb ist die nachfolgende ausführliche Beschreibung nicht als Beschränkung der Erfindung gedacht. Statt dessen wird der Schutzumfang der Erfindung von den angehängten Ansprüchen definiert.
  • Es wäre einem Fachmann auf diesem Fachgebiet klar, dass die vorliegende Erfindung, wie sie unten beschrieben wird, in vielen unterschiedlichen Ausführungsbeispielen von Hardware, Software, Firmware und/oder der Entitäten implementiert werden kann, die in den Zeichnungen veranschaulicht sind. Jeder tatsächliche Software-Code mit einer spezialisierten Steuer-Hardware zur Implementierung der vorliegenden Erfindung schränkt die vorliegende Erfindung nicht ein. Somit werden das Funktionieren und das Verhalten der vorliegenden Erfindung unter der Voraussetzung beschrieben, dass Modifikationen und Variationen der Ausführungsbeispiele möglich sind, wenn das Niveau an Einzelheiten gegeben ist, das hier dargestellt ist. Bevor die Erfindung ausführlich beschrieben wird, ist es hilfreich, eine beispielhafte Umgebung zu beschreiben, in der die Erfindung implementiert werden kann.
  • Die vorliegende Erfindung ist vor allem in der Umgebung des Decodierers eines prädiktiven Sprachcodecs nützlich, um die qualitätsvermindernden Auswirkungen der Rahmenlöschung oder des Paketverlusts zu verschleiern. 1 veranschaulicht eine solche Umgebung. Die allgemeinen Prinzipien der Erfindung können in jedem Codec mit linearer Vorhersage verwendet werden, obwohl das bevorzugte Ausführungsbeispiel, das später beschrieben wird, vor allem sehr gut für einen spezifischen Typ von prädiktivem Decodierer geeignet ist.
  • Die Erfindung ist eine FEC-Technik, die für die Prädiktionscodierung von Sprache entwickelt worden ist. Eine Charakteristik, die diese von den oben erwähnten Techniken unterscheidet, ist diejenige, dass sie eine Wellenformsubstitution in dem Sprachbereich anstatt in dem Anregungsbereich durchführt. Sie führt auch spezielle Operationen durch, um die internen Zustände oder Speicher von Prädiktoren und Filtern im Innern des prädiktiven Decodierers zu aktualisieren, um eine maximal gleichmäßige Wiedergabe einer Sprachwellenform zu gewährleisten, wenn der nächste gute Rahmen empfangen wird.
  • Die vorliegende Erfindung vermeidet auch die zusätzliche Verzögerung, die mit der Overlap-Add-Operation in dem Lösungsweg von Goodman und in dem ITU-T G.711 Anhang 1 assoziiert ist. Dies wird dadurch erreicht, dass ein Overlap-Add zwischen einer extrapolierten Sprachwellenform und dem Ringing oder der Nulleingabeantwort des Synthesefilters durchgeführt wird. Andere Merkmale umfassen einen speziellen Algorithmus zur Minimierung von brummenden Geräuschen während der Wellenformextrapolation und ein effizientes Verfahren zur Implementierung einer linear abnehmenden Wellenformhüllkurve während einer erweiterten Rahmenlöschung. Schließlich werden die assoziierten Speicher in dem Log-Verstärkungs-Prädiktor aktualisiert.
  • Die vorliegende Erfindung ist nicht auf einen speziellen Sprachcodec beschränkt. Statt dessen ist sie allgemein anwendbar auf prädiktive Sprachcodecs, die das Adaptive Predictive Coding (APC), das Multi-Pulse Linear Predictive Coding (MPLPC), CELP und das Noise Feedback Coding (NFC), etc. umfassen, aber nicht darauf beschränkt sind.
  • Bevor die Prinzipien der Erfindung erörtert werden, wird eine Beschreibung eines herkömmlichen Decodierers eines standardmäßigen Prädiktionscodecs benötigt. 1 ist eine Blockdiagrammveranschaulichung eines herkömmlichen prädiktiven Decodierers 100. Der Decodierer 100, der in 1 gezeigt ist, kann verwendet werden, um die Decodierer von APC-, MPLPC-, CELP- und NFC-Sprachcodecs zu beschreiben. Die höherentwickelten Versionen der Codecs, die mit prädiktiven Decodierern assoziiert sind, verwenden typischerweise einen Kurzzeit-Prädiktor, um die Redundanz zwischen benachbarten Sprachabtastwerten auszunutzen, und einen Langzeit-Prädiktor, um die Redundanz zwischen entfernten Abtastwerten auf Grund der Pitch-Periodizität von zum Beispiel stimmhafter Sprache auszunutzen.
  • Die Hauptinformation, die von diesen Codecs übertragen wird, ist die quantisierte Version des Prädiktionsrestsignals nach der Kurzzeit- und Langzeit-Prädiktion. Dieses quantisierte Restsignal wird oft als das Anregungssignal bezeichnet, weil es in dem Decodierer verwendet wird, um das Langzeit- und Kurzzeit-Synthesefilter anzuregen, um die decodierte Ausgangssprache zu erzeugen. Zusätzlich zu dem Anregungssignal werden auch mehrere andere Sprachparameter als Nebeninformationen Rahmen für Rahmen oder Subrahmen für Subrahmen übertragen.
  • Ein beispielhafter Bereich von Längen für jeden Rahmen (Rahmengröße genannt) ist 5 ms bis 40 ms, wobei 10 ms und 20 ms die beiden populärsten Rahmengrößen für die Sprachcodecs sind. Jeder Rahmen enthält für Gewöhnlich einige Subrahmen gleicher Länge. Die Nebeninformationen dieser prädiktiven Codecs umfassen typischerweise Informationen bezüglich der spektralen Hüllkurve (in der Foren der Kurzzeit-Prädiktor-Parameter), die Pitch-Periode, Pitch-Prädiktor-Taps (beides Langzeit-Prädiktor-Parameter) und die Anregungsverstärkung.
  • In 1 umfasst der herkömmliche Decodierer 100 einen Bit-Demultiplexer 105. Der Demultiplexer 105 trennt die Bits in jedem empfangenen Rahmen an Bits in Codes für das Anregungssignal und Codes für den Kurzzeit-Prädiktor, den Langzeit-Prädiktor und die Anregungsverstärkung.
  • Die Kurzzeit-Prädiktor-Parameter, die oftmals als die LPC-Parameter (Parameter der Codierung mit linearer Vorhersage) bezeichnet werden, werden für gewöhnlich einmal pro Rahmen übertragen. Es gibt viele alternative Parametergruppen, die verwendet werden können, um die gleiche spektrale Hüllkurveninformation zu repräsentieren. Die populärsten davon sind die Line Spectrum Pair (LSP)-Parameter, die manchmal Line Spectrum Frequency (LSF)-Parameter genannt werden. In 1 repräsentiert LSPI den übertragenen Quantisierer-Codebuch-Index, der die LSP-Parameter in jedem Rahmen repräsentiert. Ein Kurzzeit-Prädiktions-Parameter-Decodierer 110 decodiert LSPI in eine LSP-Parametergruppe 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 Koeffizientenaktualisierung eines Kurzzeit-Prädiktors 120 zu steuern.
  • Die Pitch-Periode ist als der Zeitraum definiert, in dem eine stimmhafte Sprachwellenform sich selber periodisch zu einem gegebenen Moment zu wiederholen scheint. Sie wird normalerweise in Form einer Anzahl von Abtastwerten gemessen, wird einmal pro Subrahmen übertragen und wird als die Bulk-Verzögerung (bulk delay) in Langzeit-Prädiktoren verwendet. Pitch-Taps sind die Koeffizienten des Langzeit-Prädiktors. Der Bit-Demultiplexer 105 trennt auch den Pitch-Perioden-Index (PPI) und den Pitch-Prädiktor-Tap-Index (PPTI) aus dem empfangenen Bitstrom heraus. Ein Langzeit-Prädiktions-Parameter-Decodierer 130 decodiert PPI in die Pitch-Periode und decodiert PPTI in die Pitch-Prädiktor-Taps. Die decodierte Pitch-Periode und die decodierten Pitch-Prädiktor-Taps werden dann verwendet, um die Parameteraktualisierung eines generalisierten Langzeit-Prädiktors 140 zu steuern.
  • In seiner einfachsten Form ist der Langzeit-Prädiktor 140 einfach ein Filter mit endlicher Impulsantwort (FIR-Filter), typischerweise von der ersten Ordnung oder der dritten Ordnung, mit einer Bulk-Verzögerung, die gleich der Pitch-Periode ist. Aber in einigen Variationen von CELP- und MPLPC-Codecs ist der Langzeit-Prädiktor 140 zu einem adaptiven Codebuch generalisiert worden, wobei der einzige Unterschied darin liegt, dass dann, wenn die Pitch-Periode kleiner als der Subrahmen ist, einige periodische Wiederholungsoperationen durchgeführt werden. Der generalisierte Langzeit-Prädiktor 140 kann entweder ein einfaches FIR-Filter oder ein adaptives Codebuch repräsentieren, wodurch auf diese Weise die meisten der prädiktiven Sprachcodecs abgedeckt sind, die im Augenblick verwendet werden.
  • Der Bit-Demultiplexer 105 trennt auch einen Verstärkungsindex GI und einen Anregungsindex CI aus dem Eingangsbitstrom heraus. Ein Anregungsdecodierer 150 decodiert den CI in ein unskaliertes Anregungssignal und decodiert auch den GI in die Anregungsverstärkung. Dann verwendet er die Anregungsverstärkung, um das unskalierte Anregungssignal zu skalieren, um ein skaliertes Anregungsverstärkungssignal uq(n) abzuleiten, das als eine quantisierte Version des Langzeit-Prädiktionsrests betrachtet werden kann. Ein Addierer 160 kombiniert den Ausgang des generalisierten Langzeit-Prädiktors 140 mit dem skalierten Anregungsverstärkungssignal uq(n), um eine quantisierte Version eines Kurzzeit-Prädiktions-Restsignals dq(n) zu erhalten. Ein Addierer 170 kombiniert den Ausgang des Kurzzeit-Prädiktors 120 mit dq(n), um ein decodiertes Ausgangssprachsignal sq(n) zu erhalten.
  • Eine Rückkopplungsschleife wird von dem generalisierten Langzeit-Prädiktor 140 und dem Addierer 160 gebildet und kann als ein einziges Filter betrachtet werden, das als ein Langzeit-Synthesefilter 180 bezeichnet wird. In ähnlicher Weise wird eine weitere Rückkopplungsschleife von dem Kurzzeit-Prädiktor 120 und dem Addierer 170 gebildet. Diese andere Rückkopplungsschleife kann als ein einziges Filter betrachtet werden, das als ein Kurzzeit-Synthesefilter 190 bezeichnet wird. Das Langzeit-Synthesefilter 180 und das Kurzzeit-Synthesefilter 190 werden kombiniert, um ein Synthesefilter-Modul 195 zu bilden.
  • Kurz zusammengefasst decodiert der herkömmliche prädiktive Decodierer 100, der in 1 dargestellt ist, die Parameter des Kurzzeit-Prädiktors 120 und des Langzeit-Prädiktors 140, die Anregungsverstärkung und das unskalierte Anregungssignal. Dann skaliert er das unskalierte Anregungssignal mit der Anregungsverstärkung und leitet das sich ergebende skalierte Anregungssignal uq(n) durch das Langzeit-Synthesefilter 180 und das Kurzzeit-Synthesefilter 190 weiter, um das decodierte Ausgangssprachsignal sq(n) abzuleiten.
  • Wenn ein Rahmen von Eingangsbits auf Grund eines Signalschwunds (Fading) in einer drahtlosen Übertragung oder auf Grund eines Paketverlusts in Paketnetzen gelöscht wird, verliert der Decodierer 100 in 1 leider die Indizes LSPI, PPI, PPTI, GI und CI, die benötigt werden, um die Sprachwellenform in dem aktuellen Rahmen zu decodieren.
  • In Übereinstimmung mit den Prinzipien der vorliegenden Erfindung wird die decodierte Sprachwellenform direkt vor dem aktuellen Rahmen gespeichert und analysiert. Eine Wellenformvergleichsuche, die dem Lösungsweg von Goodman ähnlich ist, wird durchgeführt, und die Verzögerungszeit und der Skalierungsfaktor für die Wiederholung der vorher decodierten Sprachwellenform in dem aktuellen Rahmen werden identifiziert.
  • Als nächstes wird zur Vermeidung der gelegentlichen Brummgeräusche bedingt durch das Wiederholen einer Wellenform bei einer kleinen Verzögerungszeit, wenn die Sprache nicht hochperiodisch ist, die Verzögerungszeit und der Ska lierungsfaktor manchmal wie folgt modifiziert. Wenn die Analyse anzeigt, dass die gespeicherte vorhergehende Wellenform wohl kaum ein Segment einer hoch periodischen stimmhaften Sprache ist, und wenn die Verzögerungszeit für eine Wellenformwiederholung kleiner als ein vorbestimmter Schwellenwert ist, dann wird eine andere Suche nach einer geeigneten Verzögerungszeit durchgeführt, die größer als der vorbestimmte Schwellenwert ist. Der Skalierungsfaktor wird ebenfalls entsprechend aktualisiert.
  • Wenn die Verzögerungszeit und der Skalierungsfaktor bestimmt worden sind, kopiert die vorliegende Erfindung die Sprachwellenform von einer Verzögerungszeit früher, um den aktuellen Rahmen zu füllen, wodurch eine extrapolierte Wellenform geschaffen wird. Die extrapolierte Wellenform wird dann mit dem Skalierungsfaktor skaliert. Die vorliegende Erfindung berechnet auch eine Anzahl von Abtastwerten des Ringing oder der Nulleingabe-Antwort, das/die von dem Synthesefilter-Modul 195 von dem Anfang des aktuellen Rahmens ausgegeben wird. Bedingt durch den Glättungseffekt des Kurzzeit-Synthesefilters 190 wird ein solches Ringing-Signal so erscheinen, als ob es reibungslos von der decodierten Sprachwellenform an dem Ende des letzten Rahmens herausfließt. Die vorliegende Erfindung unterzieht dann dieses Ringing-Signal und die extrapolierte Sprachwellenform einem Overlap-Add mit einem geeigneten Overlap-Add-Fenster, um diese beiden Stücke von Wellenform glatt zusammenzuführen. Diese Technik wird eine Wellenformdiskontinuität an dem Anfang des aktuellen Rahmens glätten. Zur gleichen Zeit verhindert sie die zusätzlichen Verzögerungen, die von G.711 Anhang 1 oder dem Lösungsweg von Goodman erzeugt werden.
  • Wenn die Rahmenlöschung für einen längeren Zeitraum bestanden hat, wird das extrapolierte Sprachsignal in Richtung auf Null gedämpft. Anderenfalls wird es einen tonalen oder brummenden Laut erzeugen. In der vorliegenden Erfindung wird die Wellenformhüllkurve linear in Richtung auf Null gedämpft, wenn die Länge der Rahmenlöschung einen bestimmten Schwellenwert überschreitet. Die vorliegende Erfindung verwendet dann ein speichereffizientes Verfahren zur Implementierung dieser linearen Dämpfung in Richtung auf Null.
  • Nachdem die Wellenformextrapolation in dem gelöschten Rahmen durchgeführt worden ist, aktualisiert die vorliegende Erfindung korrekt alle internen Speicherzustände der Filter in dem Sprach-Decodierer. Wenn die Aktualisierung nicht durchgeführt wird, würde es eine große Diskontinuität und einen hörbaren Störimpuls an dem Anfang des nächsten guten Rahmens geben. Beim Aktualisieren des Filterspeichers nach einer Rahmenlöschung arbeitet sich die vorliegende Erfindung ausgehend von der ausgegebenen Sprachwellenform aus zurück. Die Erfindung stellt die Filterspeicherinhalte auf das ein, wie sie an dem Ende des aktuellen Rahmens gewesen wären, wenn die Filterungsoperationen des Sprach-Decodierers normal durchgeführt worden wären. Das heißt, die Filterungsoperationen werden mit einer speziellen Anregung derart durchgeführt, dass die sich ergebende synthetisierte ausgegebene Sprachwellenform exakt die Gleiche wie die oben berechnete extrapolierte Wellenform ist.
  • Wenn der Kurzzeit-Prädiktor 120 beispielshalber von einer Ordnung Mist, dann ist der Speicher des Kurzzeit-Synthesefilters 190 nach der FEC-Operation für den aktuellen Rahmen einfach die letzten M Abtastwerte des extrapolierten Sprachsignals für den aktuellen Rahmen mit der umgekehrten Reihenfolge. Dies liegt daran, dass das Kurzzeit-Synthesefilter 190 in dem herkömmlichen Decodierer 100 ein Allpol-Filter ist. Der Filterspeicher ist einfach die vorhergehenden Filterausgangssignal-Abtastwerte in umgekehrter Reihenfolge.
  • Als ein Beispiel für die Aktualisierung wird der Speicher des FIR-Langzeit-Prädiktors 140 präsentiert. In diesem Beispiel führt die vorliegende Erfindung eine Kurzzeit-Prädiktions-Fehlerfilterung des extrapolierten Sprachsignals des aktuellen Rahmens durch, wobei der anfängliche Speicher des Kurzzeit-Prädiktors 120 auf die letzten M Abtastwerte (in umgekehrter Reihenfolge) des Ausgangssprachsignals in dem letzten Rahmen gesetzt ist.
  • In ähnlicher Weise werden dann, wenn die Quantisierer für Nebeninformationen (wie etwa LSP und Anregungsverstärkung) eine Zwischenrahmen-Prädiktionscodierung verwenden, die Speicher dieser Prädiktoren ebenfalls auf der Basis des gleichen Prinzips aktualisiert, um die Diskontinuität von decodierten Sprachparametern an dem nächsten guten Rahmen zu minimieren.
  • Nach dem ersten empfangenen guten Rahmen, der auf eine Rahmenlöschung folgt, versucht die vorliegende Erfindung auch, Filterspeicher in dem Langzeit-Synthesefilter 180 und dem Kurzzeit-Synthesefilter 190 zu korrigieren, wenn bestimmte Bedingungen erfüllt sind. Konzeptionell führt die vorliegende Erfindung zuerst eine lineare Interpolation zwischen der Pitch-Periode des letzten guten Rahmes vor der Löschung und der Pitch-Periode des ersten guten Rahmens nach der Löschung durch. Eine solche lineare Interpolation der Pitch-Periode wird für jeden der gelöschten Rahmen durchgeführt. Auf der Basis dieser linear interpolierten Pitch-Kontur reextrapoliert die vorliegende Erfindung dann den Langzeit-Synthesefilter-Speicher und berechnet den Kurzzeit-Synthesefilter-Speicher an dem Ende des letzten gelöschten Rahmens neu (d. h., bevor der erste gute Rahmen nach der Löschung decodiert wird).
  • Die allgemeinen Prinzipien der vorliegenden Erfindung, die oben dargelegt sind, sind auf beinahe jeden prädiktiven Sprach-Decodierer anwendbar. Was unten noch ausführlicher beschrieben werden wird, ist eine bestimmte Implementierung dieser allgemeinen Prinzipien in einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung, die bei dem Decodierer eines zweistufigen Noise-Feedback-Codec angewendet wird.
  • 2 ist eine Blockdiagrammveranschaulichung eines exemplarischen Ausführungsbeispiels der vorliegenden Erfindung. Der Decodierer kann zum Beispiel der Decodierer 100 sein, der in 1 gezeigt ist. Ebenfalls in dem Ausführungsbeispiel von 2 enthalten ist ein Eingangs-Rahmenlöschungs-Flag-Schalter 200. Wenn das Eingangs-Rahmenlöschungs-Flag 200 anzeigt, dass der aktuelle Rahmen, der empfangen wird, ein guter Rahmen ist, führt der Decodierer 100 die normalen Decodieroperationen durch, wie sie oben beschrieben worden sind. Wenn aber der Rahmen der erste gute Rahmen nach einer Rahmenlöschung ist, können die Langzeit- und Kurzzeit-Synthesefilter-Speicher vor dem Start der normalen Decodierung korrigiert werden. Wenn ein guter Rahmen empfangen wird, befindet sich der Rahmenlöschungs-Flag-Schalter 200 in der oberen Position, und die decodierte Sprachwellenform sq(n) wird als der Ausgang des Systems verwendet. Des Weiteren wird der aktuelle Rahmen der codierten Sprache sq(n) auch zu einem Modul 201 weitergeleitet, das die vorher decodierten Sprachwellenform-Abtastwerte in einem Puffer speichert. Der aktuelle Rahmen der decodierten Sprache sq(n) wird zur Aktualisierung dieses Puffers verwendet. Die restlichen Module in 2 sind während eines guten Rahmens inaktiv.
  • Wenn der Eingangs-Rahmenlöschungs-Flag-Schalter 200 aber andererseits anzeigt, dass der aktuelle Rahmen nicht empfangen wurde, gelöscht wurde oder beschädigt wurde, dann wird die Operation des Decodierers 100 angehalten und der Rahmenlöschungs-Flag-Schalter 200 wird in die untere Position gewechselt. Die restlichen Module von 2 fahren dann Rahmenlöschungsverdeckungs-Operationen (frame erasure concealment operations) durch, um die Ausgangssprachwellenform sq'(n) für den aktuellen Rahmen zu erzeugen, und aktualisieren auch die Filterspeicher des Decodierers 100, um den Decodierer 100 auf die normalen Decodieroperationen des nächsten empfangenen guten Rahmens vorzubereiten. Die restlichen Module von 2 arbeiten auf die folgende Art und Weise.
  • Ein Modul 201 berechnet L Abtastwerte des "Ringing" oder der Nulleingabe-Antwort des Synthesefilters in 1. Ein einfacherer Lösungsweg ist derjenige, nur das Kurzzeit-Synthesefilter 190 zu verwenden, aber ein effektiverer Lösungsweg (wenigstens für die stimmhafte Sprache) ist derjenige, das Ringing der kaskadierten Langzeit- und Kurzzeit-Synthesefilter 180 und 190 zu verwenden. Dies erfolgt auf folgende Art und Weise. Beginnend mit dem Speicher des Synthesefilters (oder der Synthesefilter) links in der Verzögerungsleitung nach dem Verarbeiten des letzten Rahmens werden die Filterungsoperationen für L Abtastwerte durchgeführt, während ein Nulleingabe-Signal zu dem Filter verwendet wird. Die sich ergebenden L Abtastwerte des Langzeit-Synthesefilter-Ausgangssignals bilden das gewünschte "Langzeit-Filter-Ringing"-Signal ltr(n), n = 1, 2, ..., L. Die sich ergebenden L Abtastwerte des Kurzzeit-Synthesefilter-Ausgangssignals werden einfach als das "Ringing"-Signal r(n), n = 1, 2, ..., L bezeichnet. Sowohl ltr(n) als auch r(n) werden für eine spätere Verwendung gespeichert.
  • Ein Modul 202 analysiert die vorher decodierten Sprachwellenform-Abtastwerte, die in dem Modul 201 gespeichert sind, um eine erste Verzögerungszeit ppfe1 und einen assoziierten Skalierungsfaktor ptfe1 für die Wellenformextrapolation in dem aktuellen Rahmen zu bestimmen. Dies kann auf eine Anzahl von Arten durchgeführt werden. Eine Art verwendet zum Beispiel die Lösungswege, die von Goodman et al. dargestellt wurden und wie sie oben erörtert worden sind. Wenn es mehrere aufeinanderfolgende Rahmen gibt, die gelöscht worden sind, ist das Modul 202 nur an dem ersten gelöschten Rahmen aktiv. Von dem zweiten gelöschten Rahmen an werden die Verzögerungszeit und der Skalierungsfaktor verwendet, die in dem ersten gelöschten Rahmen gefunden wurden.
  • Die vorliegende Erfindung wird typischerweise für Gewöhnlich nur nach einer "Pitch-Periode" im allgemeinen Sinn suchen, wie etwa in einem auf einer Pitch- Prädiktion basierenden Sprachcodec. Wenn der Decodierer 100 eine decodierte Pitch-Periode des letzten Rahmens aufweist, und wenn diese als zuverlässig eingestuft wird, dann wird das Ausführungsbeispiel von 2 einfach um die Nachbarschaft dieser Pitch-Periode pp herum suchen, um eine geeignete Verzögerungszeit zu finden. Wenn der Decodierer 100 keine decodierte Pitch-Periode bereitstellt, oder wenn diese Pitch-Periode als unzuverlässig eingestuft wird, dann wird das Ausführungsbeispiel von 2 eine vollständige Pitch-Schätzung durchführen, um die gewünschte Verzögerungszeit zu erhalten. In 2 wird angenommen, dass eine solche decodierte Pitch-Periode pp in der Tat zur Verfügung steht und zuverlässig ist. In diesem Fall arbeitet das Ausführungsbeispiel von 2 folgendermaßen.
  • Es sei angenommen, dass pplast die Pitch-Periode des letzten guten Rahmens vor der Rahmenlöschung bezeichnet. Wenn pplast kleiner als 10 ms (80 Abtastwerte und 160 Abtastwerte jeweils für Abtastraten von 8 kHz und 16 kHz) ist, dann verwendet das Modul 202 diese als die Analysefenstergröße K. Wenn pplast größer als 10 ms ist, dann verwendet das Modul 202 10 ms als die Analysefenstergröße K.
  • Das Modul 202 bestimmt dann den Pitch-Suchbereich wie folgt. Es subtrahiert 0,5 ms (4 Abtastwerte und 8 Abtastwerte jeweils für Abtastraten von 8 kHz und 16 kHz) von pplast, vergleicht das Ergebnis mit der erlaubten Minimum-Pitch-Periode in dem Codec und wählt das größere von beiden als die untere Grenze des Suchbereichs lb aus. Dann addiert es 0,5 ms zu pplast, vergleicht das Ergebnis mit der erlaubten Maximum-Pitch-Periode in dem Codec und wählt das kleinere von beiden als die obere Grenze des Suchbereichs ub aus.
  • Der sq(n)-Puffer in dem Modul 201 speichert N + Nf Abtastwerte an Sprache, wobei die Abtastwerte sq(n), n = 1, 2, ..., N der Decodierer-Ausgangssprache für vorhergehende Rahmen entspricht, wobei sq(N) der letzte Abtastwert der decodierten Sprache in dem letzten Rahmen ist. Nf ist die Anzahl von Abtastwerten in einem Rahmen. Die Speicherräume sq(n), n = N + 1, N + 2, ..., N + Nf sind an dem Anfang des schlechten Rahmens nicht besetzt, werden aber mit extrapolierten Sprachwellenform-Abtastwerten gefüllt, wenn die Operationen der Module 202 bis 210 einmal vollendet sind.
  • Für Verzögerungszeiten j = ln, lb + 1, lb + 2, ..., ub – 1, ub berechnet das Modul 202 den Korrelationswert
    Figure 00150001
    wobei j ∊ [lb, ub]. Unter diesen Verzögerungszeiten, die eine positive Korrelation c(j) ergeben, findet das Modul 202 die Verzögerungszeit j, die Folgendes maximiert
    Figure 00150002
  • Die obige Teilungsoperation kann durch das "Kreuzmultiplikations"-Verfahren ("cross-multiply" method) vermieden werden. Die Verzögerungszeit j, die nc(j) maximiert, ist auch die Verzögerungszeit innerhalb des Suchbereichs, der die Pitch-Prädiktionsverstärkung für einen Einzel-Tap-Pitch-Prädiktor maximiert. Diese wird die optimale Verzögerungszeit ppfe1 genannt, was für Pitch Period for Frame Erasure (Pitch-Periode für Rahmenlöschung), 1. Version, steht. In dem extrem seltenen Fall, bei dem kein c(j) in dem Suchbereich positiv ist, wird ppfe1 in diesem degenerierten Fall auf lb gesetzt.
  • Wenn ppfe1 identifiziert ist, wird der assoziierte Skalierungsfaktor ptfe1 wie folgt berechnet.
  • Figure 00150003
  • Ein solcher berechneter Skalierungsfaktor ptfe1 wird dann auf 1 gestutzt, wenn er größer als 1 ist, und wird auf –1 gestutzt, wenn er kleiner als –1 ist. Auch in dem degenerierten Fall, bei dem der Nenner auf der rechten Seite der obigen Gleichung Null ist, wird pfte1 auf 0 gesetzt.
  • Obwohl das Modul 202 die obige Berechnung nur für den ersten gelöschten Rahmen durchführt, wenn es mehrere aufeinanderfolgende gelöschte Rahmen gibt, versucht es auch, die erste Verzögerungszeit ppfe1 an dem zweiten aufeinanderfolgend gelöschten Rahmen zu modifizieren, und zwar in Abhängigkeit von der Pitch- Perioden-Kontur an den guten Rahmen direkt vor der Löschung. Ausgehend von dem letzten guten Rahmen vor der Löschung und zurückgehend Rahmen um Rahmen um bis zu 4 Rahmen vergleicht das Modul 202 die übertragene Pitch-Periode, bis es eine Änderung in der übertragenen Pitch-Periode gibt. Wenn während dieser 4 guten Rahmen vor der Löschung keine Änderung in der Pitch-Periode gefunden wird, dann wird die erste Verzögerungszeit ppfe1, die oben an dem ersten gelöschten Rahmen gefunden wurde, auch für den zweiten aufeinanderfolgend gelöschten Rahmen verwendet. Anderenfalls wird die erste Pitch-Änderung, die in der Rückwärtssuche identifiziert wird, überprüft, um zu sehen, ob die Änderung relativ klein ist. Wenn die Änderung innerhalb von 5% liegt, dann wird in Abhängigkeit davon, wie viele gute Rahmen zurück die Pitch-Änderung gefunden wird, der Betrag an Pitch-Perioden-Änderung pro Rahmen berechnet und auf die nächstliegende ganze Zahl gerundet. Das Modul 202 addiert dann diese gerundete Pitch-Perioden-Änderung pro Rahmen, egal ob positiv oder negativ, zu der ppfe1, die oben an dem ersten gelöschten Rahmen vorgefunden worden ist. Der sich ergebende Wert wird als die erste Verzögerungszeit ppfe1 für den zweiten und die nachfolgenden aufeinanderfolgend gelöschten Rahmen verwendet. Diese Modifikation der ersten Verzögerungszeit nach dem zweiten gelöschten Rahmen verbessert die Sprachqualität im Durchschnitt.
  • Es ist entdeckt worden, dass dann, wenn diese Verzögerungszeit direkt als die Verzögerungszeit für eine periodische Wiederholung bei der Wellenformextrapolation des aktuellen Rahmens verwendet wird, brummende Geräusche auftreten, wenn eine kleine Verzögerungszeit in einem Segment von Sprache verwendet wird, das keinen hohen Grad an Periodizität aufweist. Um dieses Problem zu bekämpfen, verwendet die vorliegende Erfindung ein Modul 203 zur Unterscheidung zwischen hoch periodischen stimmhaften Sprachsegmenten und anderen Typen von Sprachsegmenten. Wenn das Modul 203 feststellt, dass die decodierte Sprache in einem hoch periodischen stimmhaften Sprachbereich liegt, setzt es das periodische Wellenformextrapolations-Flag pwef auf 1; ansonsten wird pwef auf 0 gesetzt. Wenn pwef 0 ist und wenn die erste Verzögerungszeit ppfe1 kleiner als ein Schwellenwert von 10 ms ist, dann wird ein Modul 204 eine zweite, längere Verzögerungszeit ppfe2, die größer als 10 ms ist, finden, um das Brummgeräusch zu reduzieren oder zu eliminieren.
  • Unter Verwendung von ppfe1 als seinen Eingang führt das Modul 203 eine weitere Analyse der vorher decodierten Sprache sq(n) durch, um das periodische Wellenformextrapolations-Flag pwef zu bestimmen. Wiederum kann dies auf viele verschiedene Arten durchgeführt werden. Ein beispielhaftes Verfahren zur Bestimmung des periodischen Wellenform-Flag pwef wird unten beschrieben.
  • Das Modul 203 berechnet drei Signalmerkmale: die Signalverstärkung relativ zu dem Langzeitmittelwert des Eingangssignalpegels, die Pitch-Prädiktions-Verstärkung und den ersten normalisierten Autokorrelationskoeffizienten. Dann berechnet es eine gewichtete Summe dieser drei Signalmerkmale und vergleicht den sich ergebenden Gütefaktor mit einem vorbestimmten Schwellenwert. Wenn der Schwellenwert überschritten wird, wird pwef auf 1 gesetzt, ansonsten wird es auf 0 gesetzt. Das Modul 203 führt dann eine Spezialbehandlung für extreme Fälle durch.
  • Die drei Signalmerkmale werden wie folgt berechnet. Zuerst berechnet das Modul 203 die Sprachenergie in dem Analysefenster:
    Figure 00170001
  • Wenn E > 0, dann wird die logarithmische Verstärkung zur Basis 2 als lg = log2E berechnet; ansonsten wird lg auf 0 gesetzt. Es sei angenommen, dass lvl die logarithmische Langzeitdurchschnittsverstärkung des aktiven Teils des Sprachsignals ist (das heißt, dass nicht die Ruhe gezählt wird). Eine separate Schätzfunktion für den Eingangssignalpegel kann verwendet werden, um lvl zu berechnen. Eine beispielhafte Signalpegelschätzfunktion ist in der vorläufigen US-Patentanmeldung Nr. 60/312,794, eingereicht am 17. August 2001, mit dem Titel "Bit Error Concealment Methods for Speech Coding", und in der vorläufigen US-Patentanmeldung Nr. 60/344,378, eingereicht am 4. Januar 2002, mit dem Titel "Improved Bit Error Concealment Methods for Speech Coding" offenbart. Die normalisierte logarithmische Verstärkung (d. h., die Signalverstärkung relativ zu dem Langzeitdurchschnitts-Eingangssignalpegel) wird dann als nlg = lg – lvl berechnet.
  • Das Modul 203 berechnet ferner den ersten normalisierten Autokorrelationskoeffizienten
    Figure 00170002
  • In dem degenerierten Fall, wenn E = 0, wird auch p1 auf 0 gesetzt. Das Modul 203 berechnet auch die Pitch-Prädiktions-Verstärkung als
    Figure 00180001
    die Pitch-Prädiktions-Restenergie ist. In dem degenerierten Fall, bei dem R = 0, wird ppg auf 20 gesetzt.
  • Die drei Signalmerkmale werden zu einem einzigen Gütefaktor kombiniert: fom = nlg + 1,25ppg + 16p1
  • Wenn fom > 16, dann wird pwef auf 1 gesetzt, ansonsten wird es auf 0 gesetzt. Danach kann das Flag pwef in den folgenden extremen Fällen überschrieben werden:
    • • Wenn nlg < –1, wird pwef auf 0 gesetzt.
    • • Wenn ppg > 12, wird pwef auf 1 gesetzt.
    • • Wenn p1 < –0,3, wird pwef auf 0 gesetzt.
  • Wenn pwef = 0 und ppfe1 < T0, wobei T0 die Anzahl von Abtastwerten ist, die 10 ms entspricht, gibt es eine hohe Wahrscheinlichkeit, dass eine periodische Wellenformextrapolation einen Brummton erzeugt. Um den potentiellen Brummton zu vermeiden, sucht die vorliegende Erfindung nach einer zweiten Verzögerungszeit ppfe2 ≥ T0. Zwei Wellenformen, eine extrapoliert unter Verwendung der ersten Verzögerungszeit ppfe1, und die andere extrapoliert unter Verwendung der zweiten Verzögerungszeit ppfe2, werden miteinander addiert und korrekt skaliert, und die sich ergebende Wellenform wird als die Ausgangssprache des aktuellen Rahmens verwendet. Durch die Anforderung, dass die zweite Verzögerungszeit ppfe2 groß genug sein muß, wird die Wahrscheinlichkeit eines Brummtons stark reduziert. Zur Minimierung der potentiellen Qualitätsverminderung, die durch eine Missklassifikation eines periodischen stimmhaften Sprachsegments in etwas, was nicht vorhanden ist, bewirkt wird, sucht die vorliegende Erfindung in der Nachbarschaft des ersten ganzzahligen Vielfachen von ppfe1, das nicht kleiner als T0 ist. Auf diese Weise gibt es selbst dann, wenn das Flag pwef1 gewesen sein sollte und als 0 fehlklassifiziert worden ist, eine gute Chance, dass ein ganzzahliges Vielfaches der wahren Pitch-Periode als die zweite Verzögerungszeit ppfe2 für eine periodische Wellenformextrapolation ausgewählt wird.
  • Ein Modul 204 bestimmt die zweite Verzögerungszeit ppfe2 auf die folgende Weise, wenn pweg = 0 und ppfe1 < T0. Zuerst findet es die kleinste ganze Zahl m, die Folgendes erfüllt m × ppfe1 ≥ T0.
  • Als nächstes setzt das Modul 204 m1, die untere Grenze des Verzögerungszeit-Suchbereichs, auf m × ppfe1 – 3 oder T0, je nachdem, was größer ist. Die obere Grenze des Suchbereichs wird auf m2 = m1 + NS – 1 gesetzt, wobei NS die Anzahl an möglichen Verzögerungszeiten in dem Suchbereich ist. Als nächstes berechnet das Modul 204 für jede Verzögerungszeit j in dem Suchbereich von [m1, m2]
    Figure 00190001
    und wählt dann die Verzögerungszeit j ∊ [m1, m2] aus, die cor(j) maximiert. Der entsprechende Skalierungsfaktor wird auf 1 gesetzt.
  • Das Modul 205 extrapoliert die Sprachwellenform für den aktuellen gelöschten Rahmen auf der Basis der ersten Verzögerungszeit ppfe1. Es extrapoliert zuerst die ersten L Abtastwerte an Sprache in dem aktuellen Rahmen unter Verwendung der ersten Verzögerungszeit ppfe1 und des entsprechenden Skalierungsfaktors ptfe1. Ein geeigneter Wert von L ist 8 Abtastwerte. Die Extrapolation der ersten L Abtastwerte des aktuellen Rahmens kann ausgedrückt werden als sq(n) = ptfe1 × sq(n – ppfe1), wobei n = N + 1, N + 2, ..., N + L.
  • Für die ersten L Abtastwerte des aktuellen Rahmens setzt das Modul 205 auf gleichmäßige Weise das sq(n)-Signal, das oben extrapoliert worden ist, mit r(n), dem Ringing des Synthesefilters zusammen, das im Modul 206 berechnet wird, und zwar unter Verwendung des unten angegebenen Overlap-Add-Verfahrens. sq(N + n) ← wu(n)sq(N + n) + wd(n)r(n), wobei n = 1, 2, ..., L.
  • In der obigen Gleichung bedeutet das Zeichen "←", dass die Größe auf ihrer rechten Seite die variablen Werte auf ihrer linken Seite überschreibt. Die Fensterfunktion wu(n) repräsentiert das Overlap-Add-Fenster, das nach oben ansteigt, während wd(n) das Overlap-Add-Fenster repräsentiert, das nach unten absteigt. Diese Overlap-Add-Fenster erfüllen die folgende Randbedingung: wu(n) + wd(n) = 1
  • Es kann eine Anzahl von unterschiedlichen Overlap-Add-Fenstern verwendet werden. Zum Beispiel ist das Kosinusquadratfenster, das in dem Dokument von Goodman et al. erwähnt wird, ein beispielhaftes Verfahren. Alternativ dazu können auch einfachere Dreiecksfenster verwendet werden.
  • Nachdem die ersten L Abtastwerte des aktuellen Rahmens extrapoliert und einem Overlap-Add unterzogen sind, extrapoliert das Modul 205 dann die restlichen Abtastwerte des aktuellen Rahmens. Wenn ppfe1 ≥ Nf ist, dann wird die Extrapolation durchgeführt als sq(n) = ptfe1 × sq(n – ppfe1), wobei n = N + L + 1, N + L + 2, ..., N + Nf.
  • Wenn ppfe1 < Nf, dann wird die Extrapolation durchgeführt als sq(n) = ptfe1 × sq(n – ppfe1), wobei n = N + L + 1, N + L + 2, ..., N + ppfe1,und dann sq(n) = sq(n – ppfe1), wobei n = N + ppfe1 + 1, N + ppfe1 + 2, ..., N + Nf.
  • Ein Modul 207 extrapoliert eine Sprachwellenform für den aktuellen gelöschten Rahmen basierend auf der zweiten Verzögerungszeit ppfe2. Seine ausgegebene extrapolierte Sprachwellenform sq2(n) ist gegeben durch
    Figure 00210001
  • Wenn die sq2(n)-Wellenform Null ist, leitet ein Modul 208 den Ausgang des Moduls 205 direkt zu einem Modul 209. Ansonsten addiert das Modul 208 die ausgegebenen Wellenformen der Module 205 und 207 und skaliert das Resultat in geeigneter Weise. Insbesondere berechnet es die Summe von Signalabtastwertgrößen für die Ausgänge der Module 205 und 207:
    Figure 00210002
  • Dann addiert es die beiden Wellenformen und weist das Resultat wieder sq(n) zu: sq(n)← sq(n) + sq2(n), wobei n = N + 1, N + 2, ..., N + Nf.
  • Als nächstes berechnet es die Summe der Signalabtastwert-Größen für die summierte Wellenform:
    Figure 00210003
  • Wenn sum3 Null ist, wird der Skalierungsfaktor auf 1 gesetzt; ansonsten wird der Skalierungsfaktor auf sfac = min(sum1, sum2)/sum3 gesetzt, wobei min(sum1, sum2) die kleineren von sum1 und sum2 bedeutet. Nachdem dieser Skalierungsfaktor berechnet ist, ersetzt das Modul 208 sq(n) durch eine skalierte Version:
    sq(n) ← sfac × sq(n), wobei n = N + 1, N + 2, ..., N + Nj ist, und das Modul 209 führt ein Overlap-Add von sq(n) und dem Ringing des Synthesefilters für die ersten L Abtastwerte des Rahmens durch. Die sich ergebende Wellenform wird zu dem Modul 210 weitergegeben.
  • Wenn die Rahmenlöschung für einen längeren Zeitraum andauert, sollte das Rahmenlöschungsverdeckungs-Verfahren die periodische Extrapolation nicht auf unbestimmte Zeit fortsetzen, denn sonst hört sich die extrapolierte Sprache wie eine Art von stetigem Tonsignal an. In dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung startet das Modul 210 die Wellenformdämpfung zu dem Zeitpunkt, an dem die Rahmenlöschung 20 ms gedauert hat. Ausgehend von dort wird die Hüllkurve der extrapolierten Wellenform linear in Richtung auf Null gedampft, und die Wellenformgröße erreicht Null bei 60 ms in die Löschung von aufeinanderfolgenden Rahmen hinein. Nach 60 ms ist der Ausgang komplett gedämpft. Siehe 3(a) für ein Wellenformdämpfungs-Fenster, das diese Dämpfungsstrategie implementiert.
  • Das bevorzugte Ausführungsbeispiel der vorliegenden Erfindung wird mit einem Noise-Feedback-Codec verwendet, der eine Rahmengröße von 5 ms aufweist. In diesem Fall repräsentiert das Zeitintervall zwischen jedem benachbarten Paar von vertikalen Linien in 3(a) einen Rahmen.
  • Wenn man annimmt, dass eine Rahmenlöschung über 12 aufeinanderfolgende Rahmen (5 × 12 = 60 ms) oder mehr andauert, ist der leichteste Weg zur Implementierung dieser Wellenformdämpfung, die Sprache für die ersten 12 gelöschten Rahmen zu extrapolieren, die sich ergebenden 60 ms an Wellenform zu speichern und dann das Dämpfungsfenster in 3(a) anzulegen. Aber dieser einfache Lösungsweg erfordert eine zusätzliche Verzögerung, um 60 ms an extrapolierter Sprache zwischenzuspeichern.
  • Um eine zusätzliche Verzögerung zu vermeiden, legt das Modul 210 das Wellenformdämpfungs-Fenster Rahmen um Rahmen ohne eine zusätzliche Pufferung an. Aber ausgehend von dem sechsten aufeinanderfolgenden gelöschten Rahmen (von 25 ms an in 3) kann das Modul 210 den entsprechenden Abschnitt des Fensters für diesen Rahmen in 3(a) nicht direkt anlegen. Eine Wellenformdiskontinuität wird an der Rahmengrenze auftreten, weil der entsprechende Abschnitt des Dämpfungsfensters von einem Wert ausgeht, der kleiner als die Eins (unity) (7/8, 6/8, 5/8, etc.) ist. Dies wird ein plötzliches Absinken des Wellenformabtastwert-Wertes an dem Anfang des Rahmens und somit eine hörbare Wellenformdiskontinuität bewirken.
  • Um dieses Problem zu eliminieren, normalisiert die vorliegende Erfindung jeden 5 ms Abschnitt des Dämpfungsfensters in 3(a) mit seinem Ausgangswert an der linken Kante. Zum Beispiel existiert für den sechsten Rahmen (25 ms bis 30 ms) das Fenster von 7/8 zu 6/8, und das Normalisieren dieses Abschnitts mit 7/8 wird ein Fenster von 1 bis (6/8)/(7/8) = 6/7 ergeben. In ähnlicher Weise reicht das Fenster für den siebten Rahmen (30 ms bis 35 ms) von 6/8 bis 5/8, und das Normalisieren dieses Abschnitts mit 6/8 wird ein Fenster von 1 bis (5/8)/(6/8) = 5/6 ergeben. Ein solches normalisiertes Dämpfungsfenster für jeden Rahmen ist in 3(b) gezeigt.
  • Anstatt jeden Abtastwert in dem normalisierten Dämpfungsfenster in 3(b) zu speichern, speichert die vorliegende Erfindung einfach das Dekrement zwischen benachbarten Abschnitten des Fensters für jeden der acht Fensterabschnitte für den fünften bis zum zwölften Rahmen. Dieses Dekrement ist der Betrag an Gesamtabfall der Fensterfunktion in jedem Rahmen (1/8 für den fünften gelöschten Rahmen, 1/7 für den sechsten gelöschten Rahmen, und so weiter), geteilt durch Nf, die Anzahl an Sprachabtastwerten in einem Rahmen.
  • Wenn die Rahmenlöschung nur 20 ms oder weniger gedauert hat, braucht das Modul 210 keine Wellenformdämpfungsoperation durchzuführen. Wenn die Rahmenlöschung länger als 20 ms angedauert hat, dann legt das Modul 210 den geeigneten Abschnitt des normalisierten Wellenformdämpfungsfensters in 3(b) an, und zwar in Abhängigkeit davon, wie viele aufeinanderfolgende Rahmen bis jetzt gelöscht worden sind. Wenn zum Beispiel der aktuelle Rahmen der sechste aufeinanderfolgende Rahmen ist, der gelöscht ist, dann legt das Modul 210 den Abschnitt des Fensters von 25 ms bis 30 ms (mit der Fensterfunktion von 1 bis 6/7) an. Da das normalisierte Wellenformdämpfungsfenster für jeden Rahmen immer mit der Eins startet, wird die Fenstertechnikoperation keine Wellenformdiskontinuität am Anfang des Rahmens bewirken.
  • Die normalisierte Fensterfunktion wird nicht gespeichert; statt dessen wird sie nebenbei berechnet. Beginnend mit einem Wert von 1 multipliziert das Modul 210 den ersten Wellenformabtastwert des aktuellen Rahmens mit 1, und dann reduziert es den Fensterfunktionswert um den Dekrementwert, der vorher berechnet und gespeichert worden ist, wie dies oben erwähnt worden ist. Dann multipliziert es den zweiten Wellenformabtastwert mit dem sich ergebenden dekrementierten Fensterfunktionswert. Der Fensterfunktionswert wird wiederum um den Dekrementwert verringert, und das Ergebnis wird dazu verwendet, den dritten Wellenformabtastwert des Rahmens zu skalieren. Dieser Prozess wird für alle Abtastwerte der extrapolierten Wellenform in dem aktuellen Rahmen wiederholt.
  • Der Ausgang des Moduls 210, das heißt sq'(n) für den aktuellen gelöschten Rahmen, wird durch den Schalter 200 geleitet und wird zu der endgültigen Ausgangssprache für den aktuellen gelöschten Rahmen. Der aktuelle Rahmen von sq'(n) wird zu dem Modul 210 weitergeleitet, um den aktuellen Rahmenabschnitt des dort gespeicherten sq(n)-Sprachpuffers zu aktualisieren. Wenn man annimmt, dass sq'(n), n = 1, 2, ..., Nf der Ausgang des Moduls 210 für den aktuellen gelöschten Rahmen ist, dann wird der sq(n)-Puffer des Moduls 201 wie folgt aktualisiert: sq(N + n) = sq'(n), N = 1, 2, ..., Nf.
  • Dieses Signal wird auch zu einem Modul 211 geleitet, um den Speicher oder die internen Zustände der Filter im Innern des Decodierers 100 zu aktualisieren. Eine solche Filterspeicheraktualisierung wird durchgeführt, um zu gewährleisten, das der Filterspeicher mit der extrapolierten Sprachwellenform in dem aktuellen gelöschten Rahmen übereinstimmt. Dies ist für einen glatten Übergang der Sprachwellenform an dem Anfang des nächsten Rahmens notwendig, wenn sich der nächste Rahmen als ein guter Rahmen herausstellt. Wenn der Filterspeicher ohne eine solche korrekte Aktualisierung eingefroren würde, dann gäbe es im Allgemeinen an dem Anfang des nächsten guten Rahmens einen hörbaren Störimpuls oder eine hörbare Störung.
  • Wenn der Kurzzeit-Prädiktor von der Ordnung Mist, dann ist der aktualisierte Speicher einfach die letzten M Abtastwerte des extrapolierten Sprachsignals für den aktuellen gelöschten Rahmen, aber mit umgekehrter Reihenfolge. Wenn stsm(k) der k-te Speicherwert des Kurzzeit-Synthesefilters oder der Wert ist, der in der Verzögerungsleitung gespeichert ist, die dem k-ten Kurzzeit-Prädiktorkoeffizienten ak entspricht, dann wird der Speicher des Kurzzeit-Synthesefilters 190 wie folgt aktualisiert stsm(k) = sq(N + Nf + 1 – k), k = 1, 2, ..., M.
  • Um den Speicher des Langzeit-Synthesefilters 180 von 1 zu aktualisieren, extrapoliert das Modul 211 den Langzeit-Synthesefilter-Speicher auf der Grundlage der ersten Verzögerungszeit ppfe1 unter Verwendung von Prozeduren, die der Sprachwellenformextrapolation ähnlich sind, die an dem Modul 205 durchgeführt wurden. Es sei angenommen, dass ltsm(n) der Speicher (oder die Verzögerungsleitung) des Langzeit-Synthesefilters 180 ist, wobei die Indizierungskonvention dieselbe wie die von sq(n) ist. Das Modul 211 extrapoliert zuerst die ersten L Abtastwerte von ltsm(n) in dem aktuellen Rahmen ltsm(n) = ptfe1 × ltsm(n – ppfe1), wobei n = N + 1, N + 2, ..., N + L.
  • Als nächstes wird dieser extrapolierte Filterspeicher mit dem Ringing des Langzeit-Synthesefilters einem Overlap-Add unterzogen, das in dem Modul 201 berechnet worden ist: ltsm(N + n) ← wu(n)ltsm(N + n) + wd(n)ltr(n), wobei n = 1, 2, ..., L.
  • Nachdem die ersten L Abtastwerte des aktuellen Rahmens extrapoliert und einem Overlap-Add unterzogen worden sind, extrapoliert das Modul 211 dann die restlichen Abtastwerte des aktuellen Rahmens. Wenn ppfe1 ≥ Nf ist, dann wird die Extrapolation durchgeführt als ltsm(n) = ptfe1 × ltsm(n - ppfe1), wobei n = N + L + 1, N + L + 2, ..., N + Nf
  • Wenn ppfe1 < Nf ist, dann wird die Extrapolation durchgeführt als ltsm(n) = ptfe1 × ltsm(n – ppfe1), wobei n = N + L +1, N + L + 2, ..., N + ppfe1,und ltsm(n) = ltsm(n – ppfe1), wobei n = N + ppfe1 + 1, N + ppfe1 + 2, ..., N + Nf.
  • Wenn keine der Nebeninformations-Sprachparameter (LPC, Pitch-Periode, Pitch-Taps und Anregungsverstärkung) unter Verwendung der Prädiktionscodierung quantisiert wird, sind die Operationen des Moduls 211 vollendet. Wenn aber andererseits eine Prädiktionscodierung für die Nebeninformationen verwendet wird, dann muß das Modul 211 auch den Speicher der involvierten Prädiktoren aktualisieren, um die Diskontinuität der decodierten Sprachparameter an dem nächsten guten Rahmen zu minimieren.
  • In dem Noise-Feedback-Codec, in dem das bevorzugte Ausführungsbeispiel der vorliegenden Erfindung verwendet wird, wird das Moving-Average (MA) Predictive Coding (gleitende Mittelwert-Prädiktionscodierung) verwendet, um sowohl die Line Spectrum Pair (LSP)-Parameter als auch die Anregungsverstärkung zu quantisieren. Die prädiktiven Codierungsschemata für diese Parameter arbeiten wie folgt. Für jeden Parameter wird der mittlere Langzeitwert dieses Parameters off-line berechnet und von dem nichtquantisierten Parameterwert subtrahiert. Der vorhergesagte Wert des Mean-Removed-Parameters wird dann von diesem Mean-Removed-Parameterwert subtrahiert. Ein Quantisierer quantisiert den sich ergebenden Prädiktionsfehler. Der Ausgang des Quantisierers wird als der Eingang zu dem MA-Prädiktor verwendet. Der vorhergesagte Parameterwert und der mittlere Langzeitwert werden beide zurück zu dem Quantisiererausgangswert addiert, um einen endgültigen quantisierten Parameterwert zu rekonstruieren.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung erzeugen die Module 202 bis 210 die extrapolierte Sprache für den aktuellen gelöschten Rahmen. Theoretisch besteht für den aktuellen Rahmen keine Notwendigkeit, die Nebeninformations-Sprachparameter zu extrapolieren, da die Ausgangs-Sprachwellenform bereits erzeugt worden ist. Aber um zu gewährleisten, dass die LSP- und Verstärkungsdecodierungsoperationen an dem nächsten guten Rahmen glatt vonstatten gehen werden, ist es nützlich, anzunehmen, dass diese Parameter aus dem letzten Rahmen extrapoliert wurden, indem die Parameterwerte einfach aus dem letzten Rahmen kopiert werden, und dann "rückwärts" ausgehend von diesen extrapolierten Parameterwerten zu arbeiten, um den Prädiktorspeicher der Prädiktionsquantisierer für diese Parameter zu aktualisieren.
  • Unter Verwendung des in dem letzten Absatz dargelegten Prinzips können wir den Prädiktorspeicher in dem prädiktiven LSP-Quantisierer wie folgt aktualisieren. Der vorhergesagte Wert für den k-ten LSP-Parameter wird als das innere Produkt der Prädiktorkoeffizienten-Array und der Prädiktorspeicher-Array für den k-ten LSP-Parameter berechnet. Dieser vorhergesagte Wert und der mittlere Langzeitwert des k-ten LSP werden von dem k-ten LSP-Parameterwert an dem letzten Rahmen subtrahiert. Der resultierende Wert wird verwendet, um die neueste Speicherstelle für den Prädiktor des k-ten LSP-Parameters zu aktualisieren (nachdem die ursprüngliche Menge des Prädiktorspeichers um eine Speicherstelle verschoben worden ist, wie in dem Fachgebiet wohl bekannt ist). Diese Prozedur wird für alle LSP-Parameter wiederholt (es gibt M davon).
  • Wenn die Rahmenlöschung nur 20 ms oder weniger dauert, wird kein Wellenformdämpfungsfenster angelegt, und eine Annahme wird getroffen, dass die Anregungsverstärkung des aktuellen gelöschten Rahmens dieselbe wie die Anregungsverstärkung des letzten Rahmens ist. In diesem Fall ist die Speicheraktualisierung für den Verstärkungsprädiktor im Wesentlichen dieselbe wie die Speicheraktualisierung für die LSP-Prädiktoren, die oben beschrieben worden ist. Grundlegend wird der vorhergesagte Wert der Log-Verstärkung berechnet (durch das Berechnen des inneren Produkts der Prädiktorkoeffizienten-Array und der Prädiktorspeicher-Array für die Log-Verstärkung). Diese vorhergesagte Log-Verstärkung und der mittlere Langzeitwert der Log-Verstärkung werden dann von dem Log-Verstärkungswert des letzten Rahmens subtrahiert. Der sich ergebende Wert wird verwendet, um die neueste Speicherstelle für den Log-Verstärkungsprädiktor zu aktualisieren (nachdem die ursprüngliche Menge des Prädiktorspeichers um eine Speicherstelle verschoben ist, wie in dem Fachgebiet wohl bekannt ist).
  • Wenn die Rahmenlöschung mehr als 60 ms dauert, wird die ausgegebene Sprache auf Null gestellt, und es wird angenommen, dass die Basis-2-Log-Verstärkung bei einem künstlich eingestellten Standardruhepegel von 0 ist. Wiederum werden die vorhergesagte Log-Verstärkung und der mittlere Langzeitwert der Log-Verstärkung von diesem Standardpegel von 0 subtrahiert, und der sich ergebende Wert wird verwendet, um die neueste Speicherstelle für den Log-Verstärkungsprädiktor zu aktualisieren.
  • Wenn die Rahmenlöschung mehr als 20 ms dauert, aber 60 ms nicht überschreitet, dann kann die Aktualisierung des Prädiktorspeichers für den prädiktiven Verstärkungsquantisierer eine Herausforderung sein, weil die extrapolierte Sprachwellenform unter Verwendung des Wellenformdämpfungsfensters von 3 gedämpft wird. Der Log-Verstärkungs-Prädiktorspeicher wird auf der Grundlage des Log-Verstärkungswertes des Wellenformdämpfungsfensters in jedem Rahmen aktualisiert.
  • Zur Minimierung der Codegröße wird für jeden der Rahmen von dem fünften bis zum zwölften Rahmen in die Rahmenlöschung hinein ein Korrekturfaktor aus der Log-Verstärkung des letzten Rahmens auf der Grundlage des Dämpfungsfensters von 3 berechnet, und der Korrekturfaktor wird gespeichert. Der folgende Algorithmus berechnet diese 8 Korrekturfaktoren oder Log-Verstärkungs-Dämpfungsfaktoren.
    • 1. Initialisiere lastlg = 0. (lastlg = letzte Log-Verstärkung = Log-Verstärkung des letzten Rahmens)
    • 2. Initialisiere j = 1.
    • 3. Berechne die normalisierte Dämpfungsfenster-Array
      Figure 00280001
    • 4.
      Figure 00280002
    • 5. Berechne lga(j) = lastlg – lg
    • 6.
      Figure 00280003
    • 7. Wenn j = 8, halte an; ansonsten inkrementiere j um 1 (d. h., j ← j + 1), dann gehe zurück zu Schritt 3.
  • Grundsätzlich berechnet der obige Algorithmus den Basis-2-Log-Verstärkungswert des Wellendämpfungsfensters für einen gegebenen Rahmen und bestimmt dann den Unterschied zwischen diesem Wert und einer auf ähnliche Weise berechneten Log-Verstärkung für das Fenster des vorhergehenden Rahmens kompensiert bezüglich der Normalisierung des Starts des Fensters auf die Eins für jeden Rahmen. Der Ausgang dieses Algorithmus ist die Array der Log-Verstärkungs-Dämpfungsfaktoren lga(j) für j = 1, 2, ..., 8. Es sei angemerkt, dass lga(j) dem (4 + j)-ten Rahmen in die Rahmenlöschung hinein entspricht.
  • Wenn die lga(j)-Array einmal vorberechnet und gespeichert worden ist, dann wird die Log-Verstärkungs-Prädiktorspeicher-Aktualisierung für die Rahmenlöschung, die 20 ms bis 60 ms dauert, einfach. Wenn der aktuelle gelöschte Rahmen der j-te Rahmen in die Rahmenlöschung hinein ist (4 < j ≤ 12), dann wird lga(j – 4) von dem Log-Verstärkungswert des letzten Rahmens subtrahiert. Von dem Resultat dieser Subtraktion werden weiter die vorhergesagte Log-Verstärkung und der mittlere Langzeitwert der Log-Verstärkung subtrahiert, und der sich ergebende Wert wird verwendet, um die neueste Speicherstelle für den Log-Verstärkungs-Prädiktor zu aktualisieren.
  • Nachdem das Modul 211 alle aktualisierten Filterspeicherwerte berechnet hat, verwendet der Decodierer 100 diese Werte zur Aktualisierung der Speicher und seines Kurzzeit-Synthesefilters 190, Langzeit-Synthesefilters 180, LSP-Prädiktors und Verstärkungs-Prädiktors in Vorbereitung auf die Decodierung des nächsten Rahmens unter der Voraussetzung, dass der nächste Rahmen intakt empfangen werden wird.
  • Das Rahmenlöschungsverdeckungs-Schema, das oben beschrieben ist, kann verwendet werden, wie es ist, und es wird eine signifikante Sprachqualitätsverbesserung im Vergleich dazu bereitstellen, wenn keine Verdeckung angewendet wird. Bis jetzt werden im Wesentlichen alle Rahmenlöschungsverdeckungs-Operationen während gelöschter Rahmen durchgeführt. Die vorliegende Erfindung weist ein optionales Merkmal auf, das die Sprachqualität verbessert, indem es eine "Filterspeicherkorrektur" an dem ersten empfangenen guten Rahmen nach der Löschung durchführt.
  • Der Kurzzeit-Synthesefilter-Speicher und der Langzeit-Synthesefilter-Speicher werden in dem Modul 211 auf der Grundlage der Wellenformextrapolation aktualisiert. Nachdem die Rahmenlöschung vorüber ist, wird es an dem ersten empfangenen guten Rahmen nach der Löschung einen Unterschied zwischen einem solchen Filterspeicher in dem Decodierer und dem entsprechenden Filterspeicher in dem Codierer geben. Sehr oft ist der Unterschied hauptsächlich bedingt durch den Unterschied zwischen der Pitch-Periode (oder der Verzögerungszeit), die für die Wellenformextrapolation während des gelöschten Rahmens verwendet worden ist, und der Pitch-Periode, die von dem Codierer übertragen wird. Ein solcher Filterspeicher-Unterschied bewirkt oft eine hörbare Verzerrung, selbst nachdem die Rahmenlöschung vorüber ist.
  • Während gelöschter Rahmen wird die Pitch-Periode typischerweise konstant oder beinahe konstant gehalten. Wenn die Pitch-Periode unverzüglich quantisiert wird (d. h., ohne Verwendung einer Zwischenrahmen-Prädiktionscodierung), und wenn die Rahmenlöschung in einem stimmhaften Sprachsegment mit einer glatten Pitch-Kontur auftritt, dann stellt eine lineare Interpolation zwischen den übertragenen Pitch-Perioden des letzten guten Rahmens vor der Löschung und des ersten guten Rahmens nach der Löschung oftmals eine bessere Approximation der übertragenen Pitch-Periodenkontur bereit als das Konstanthalten der Pitch-Periode während gelöschter Rahmen. Deshalb kann dann, wenn der Synthesefilter-Speicher an dem ersten guten Rahmen nach der Löschung auf der Grundlage einer linear interpolierten Pitch-Periode durch die gelöschten Rahmen neu berechnet oder korrigiert wird, oftmals eine bessere Sprachqualität erzielt werden.
  • Der Langzeit-Synthesefilter-Speicher wird auf die folgende Art und Weise an dem ersten guten Rahmen nach der Löschung korrigiert. Zuerst werden die empfangene Pitch-Periode an dem ersten guten Rahmen und die empfangene Pitch-Periode an dem letzten guten Rahmen vor der Löschung verwendet, um eine lineare Interpolation der Pitch-Periode durch die gelöschten Rahmen durchzuführen. Wenn eine interpolierte Pitch-Periode keine ganze Zahl ist, wird sie auf die nächste ganze Zahl gerundet. Als nächstes wird beginnend mit dem ersten gelöschten Rahmen und dann durch alle gelöschten Rahmen in einer Reihe gehend der Langzeit-Synthesefilter-Speicher "reextrapoliert", und zwar Rahmen um Rahmen auf der Grundlage der linear interpolierten Pitch-Periode in jedem gelöschten Rahmen, bis das Ende des letzten gelöschten Rahmens erreicht wird. Der Einfachheit halber kann ein Skalierungsfaktor von 1 für die Extrapolation des Langzeit-Synthesefilters verwendet werden. Nach einer solchen Reextrapolation ist der Langzeit-Synthesefilter-Speicher korrigiert.
  • Der Kurzzeit-Synthesefilter-Speicher kann in einer ähnlichen Art und Weise durch eine Reextrapolation der Sprachwellenform Rahmen um Rahmen korrigiert werden, bis das Ende des letzten gelöschten Rahmens erreicht ist. Dann werden die letzten M Abtastwert der reextrapolierten Sprachwellenform an dem letzten gelöschten Rahmen, wobei die Ordnung umgekehrt ist, der korrigierte Kurzzeit-Synthesefilter-Speicher sein.
  • Ein anderer, einfacherer Weg für die Korrektur des Kurzzeit-Synthesefilter-Speichers ist derjenige, den Wellenformversatz zwischen der ursprünglichen extrapolierten Wellenform und der reextrapolierten Wellenform zu schätzen, ohne die Reextrapolation durchzuführen. Dieses Verfahren wird unten beschrieben. Zuerst "projiziert" man den letzten Sprachabtastwert des letzten gelöschten Rahmens rück wärts um ppfe1 Abtastwerte, wobei ppfe1 die ursprüngliche Verzögerungszeit ist, die für die Extrapolation an diesem Rahmen verwendet worden ist, und in Abhängigkeit davon, in welchem Rahmen der neu projizierte Abtastwert landet, wird er wieder um die ppfe1 dieses Rahmens rückwärts projiziert. Dieser Prozess wird fortgesetzt, bis ein neu projizierter Abtastwert in einem guten Rahmen vor der Löschung landet. Dann wird unter Verwendung der linear interpolierten Pitch-Periode eine ähnliche Rückwärtsprojektionsoperation durchgeführt, bis ein neu projizierter Abtastwert in einem guten Rahmen vor der Löschung landet. Der Abstand zwischen den beiden Auftreffpunkten in dem guten Rahmen, die durch die zwei obigen Rückwärtsprojektionsoperationen erhalten worden sind, ist der Wellenformversatz an dem Ende des letzten gelöschten Rahmens.
  • Wenn dieser Wellenformversatz anzeigt, dass die reextrapolierte Sprachwellenform auf der Basis der interpolierten Pitch-Periode um X Abtastwerte relativ zu der ursprünglichen extrapolierten Sprachwellenform an dem Ende des letzten gelöschten Rahmens verzögert ist, dann kann der Kurzzeit-Synthesefilter-Speicher korrigiert werden, indem die M aufeinanderfolgenden Abtastwerte der ursprünglichen extrapolierten Sprachwellenform genommen werden, die sich X Abtastwerte weg von dem Ende des letzten gelöschten Rahmens befinden, und dann die Reihenfolge umgedreht wird. Wenn andererseits der oben berechnete Wellenformversatz anzeigt, dass die ursprüngliche extrapolierte Sprachwellenform um X Abtastwerte relativ zu der reextrapolierten Sprachwellenform verzögert ist (falls eine solche Reextrapolation überhaupt ausgeführt wurde), dann müsste die Kurzzeit-Synthesefilter-Speicherkorrektur gewisse Sprachabtastwerte verwenden, die noch nicht extrapoliert sind. In diesem Fall kann die ursprüngliche Extrapolation für X mehr Abtastwerte erweitert werden, und die letzten M Abtastwerte können genommen werden, wobei ihre Reihenfolge umgedreht ist. Alternativ dazu kann sich das System um einen Pitch-Zyklus zurückbewegen und die M aufeinanderfolgenden Abtastwerte (in umgekehrter Reihenfolge) der ursprünglichen extrapolierten Sprachwellenform verwenden, die sich (ppfe1 – X) Abtastwerte weg von dem Ende des letzten gelöschten Rahmens befinden, wobei ppfe1 die Verzögerungszeit ist, die für die ursprüngliche Extrapolation des letzten gelöschten Rahmens verwendet wurde, und wobei angenommen wird, dass ppfe1 > X.
  • Ein potentielles Problem einer solchen Filterspeicherkorrektur liegt darin, dass die Reextrapolation im Allgemeinen zu einer Wellenformverschiebung oder zu einem Wellenformversatz führt; deshalb kann nach einer Decodierung des ersten guten Rahmens nach einer Löschung eine Wellenformdiskontinuität an dem Anfang des Rahmens vorliegen. Dieses Problem kann eliminiert werden, wenn ein Ausgabepuffer verwaltet wird und die Wellenformverschiebung nicht sofort ausgespielt wird, sondern langsam, wenn möglich über viele Rahmen hin eingeführt wird, indem nur ein Abtastwert pro Zeitpunkt über einen langen Zeitraum eingefügt oder gelöscht wird. Eine weitere Möglichkeit liegt darin, Zeitskalierungstechniken zu verwenden, die auf dem Fachgebiet wohl bekannt sind, um die Sprache geringfügig zu beschleunigen oder zu verlangsamen, bis der Wellenformversatz eliminiert ist. Auf beide Arten kann die Wellenformdiskontinuität durch Ausglätten des Wellenformversatzes über die Zeit vermieden werden.
  • Wenn die zusätzliche Komplexität einer solchen Zeitskalierung oder allmählichen Eliminierung eines Wellenformversatzes unerwünscht ist, wird unten ein einfacherer, aber suboptimaler Lösungsweg dargelegt. Zuerst wird, bevor der Synthesefilter-Speicher korrigiert wird, der erste gute Rahmen nach einer Löschung normal für die erste Y Abtastwerte der Sprache decodiert. Als nächstes wird der Synthesefilter-Speicher korrigiert, und der gesamte erste gute Rahmen nach der Löschung wird erneut decodiert. Dann wird eine Overlap-Add über die erste Y Abtastwerte verwendet, um einen glatten Übergang zwischen diesen beiden decodierten Sprachsignalen in dem aktuellen Rahmen bereitzustellen. Dieser einfache Lösungsweg wird eine Wellenformdiskontinuität ausglätten, wenn der oben erwähnte Wellenformversatz nicht übermäßig groß ist. Wenn der Wellenformversatz zu groß ist, dann kann dieses Overlap-Add-Verfahren eventuell nicht in der Lage sein, den hörbaren Störimpuls an dem Anfang des ersten guten Rahmens nach einer Löschung zu eliminieren. In diesem Fall ist es besser, den Synthesefilter-Speicher nicht zu korrigieren, es sei denn, dass die Zeitskalierung oder die allmähliche Eliminierung des Wellenversatzes, die oben erwähnt sind, verwendet werden kann.
  • Die folgende Beschreibung eines Universal-Computersystems wird vollständigkeitshalber bereitgestellt. Die vorliegende Erfindung, wie sie oben dargelegt worden ist, kann in Hardware oder als eine Kombination aus Software und Hardware implementiert werden. Folglich kann die Erfindung in der Umgebung eines Computersystems oder eines anderen Verarbeitungssystems implementiert werden. Ein Beispiel eines solchen Computersystems 400 ist in 4 gezeigt. In der vorliegenden Erfindung können zum Beispiel alle Elemente, die in den 1 und 2 dargestellt sind, in einem oder mehreren unterschiedlichen Computersystem(en) 400 ablaufen, um die verschiedenen Verfahren der vorliegenden Erfindung zu implementieren.
  • Das Computersystem 400 umfasst einen oder mehrere Prozessoren, wie etwa einen Prozessor 404. Der Prozessor 404 kann ein digitaler Spezial- oder Universal-Signalprozessor sein und ist mit einer Kommunikationsinfrastruktur 406 verbunden (zum Beispiel einem Bus oder einem Netzwerk). Verschiedene Software-Implementierungen werden in Bezug auf dieses beispielhafte Computersystem beschrieben. Nach dem Lesen dieser Beschreibung wird es einem Fachmann auf dem relevanten Fachgebiet offensichtlich werden, wie die Erfindung unter Verwendung anderer Computersysteme und/oder Computerarchitekturen implementiert werden kann.
  • Das Computersystem 400 umfasst auch einen Hauptspeicher 408, vorzugsweise einen Direktzugriffsspeicher (RAM; random access memory), und kann auch einen externen Speicher 410 umfassen. Der externe Speicher 410 kann zum Beispiel ein Festplattenlaufwerk 412 und/oder ein Wechselspeicherlaufwerk 414 umfassen, das ein Disketten-Laufwerk, ein Magnetbandlaufwerk, ein optisches Plattenlaufwerk bzw. CD-Laufwerk, etc. darstellt. Das Wechselspeicherlaufwerk 414 liest aus einer und/oder schreibt in eine Wechselspeichereinheit 418 in einer allgemein bekannten Art und Weise. Die Wechselspeichereinheit 418 stellt eine Diskette, ein Magnetband, eine CD, etc. dar, die von einem Wechselspeicherlaufwerk 414 gelesen und beschrieben werden. Wie klar sein wird, umfasst die Wechselspeichereinheit 418 ein von einem Computer nutzbares Speichermedium, auf dem Computersoftware und/oder Daten gespeichert sind.
  • In alternativen Implementierungen kann der externe Speicher 410 andere ähnliche Einrichtungen umfassen, die es gestatten, dass Computerprogramme oder andere Befehle in das Computersystem 400 geladen werden können. Solche Einrichtungen können zum Beispiel eine Wechselspeichereinheit 422 und eine Schnittstelle 420 umfassen. Beispiele für solche Einrichtungen können eine Programmkassette und eine Kassettenschnittstelle (wie etwa diejenigen, die in Videospielvorrichtungen zu finden sind), einen herausnehmbaren Speicherchip (wie etwa ein EPROM oder PROM) und zugehörige Anschlüsse, und die anderen Wechselspeichereinheiten 422 und Schnittstellen 420 umfassen, die es erlauben, dass Software und Daten von der Wechselspeichereinheit 422 auf das Computersystem 400 übertragen werden können.
  • Das Computersystem 400 kann auch eine Kommunikationsschnittstelle 424 umfassen. Die Kommunikationsschnittstelle 424 erlaubt es, dass Software und Daten zwischen dem Computersystem 400 und externen Geräten transferiert werden können. Beispiele der Kommunikationsschnittstelle 424 können ein Modem, eine Netzwerkschnittstelle (wie etwa eine Ethernet-Karte), einen Kommunikationsport, einen PCMCIA-Steckplatz und eine PCMCIA-Karte, etc. umfassen. Software und Daten, die über die Kommunikationsschnittstelle 424 übertragen werden, liegen in der Form von Signalen 428 vor, die elektronische, elektromagnetische, optische oder andere Signale sein können, die von der Kommunikationsschnittstelle 424 empfangen werden können. Diese Signale 428 werden der Kommunikationsschnittstelle 424 über einen Kommunikationsweg 426 zugeführt. Der Kommunikationsweg 426 überträgt die Signale 428 und kann unter Verwendung von Draht oder Kabeln, Glasfasern, einer Telefonleitung, einer zellularen Telefonverbindung, einer HF-Verbindung und anderen Kommunikationskanälen implementiert werden.
  • In der vorliegenden Anmeldung werden die Begriffe "computerlesbares Medium" und "von einem Computer nutzbares Medium" verwendet, um sich allgemein auf Medien wie etwa das Wechselspeicherlaufwerk 414, eine Festplatte, die in dem Festplattenlaufwerk 412 installiert ist, und Signale 428 zu beziehen. Diese Computerprogrammprodukte sind Einrichtungen zum Bereitstellen von Software für das Computersystem 400.
  • Computerprogramme (die auch Computersteuerlogik genannt werden) sind in dem Hauptspeicher 408 und/oder dem externen Speicher 410 gespeichert. Computerprogramme können auch über die Kommunikationsschnittstelle 424 empfangen werden. Solche Computerprogramme ermöglichen es dem Computersystem 400 dann, wenn sie ausgeführt werden, die vorliegende Erfindung so, wie sie hier erläutert worden ist, zu implementieren.
  • Insbesondere ermöglichen es die Computerprogramme, wenn sie ausgeführt werden, dem Prozessor 404, die Prozesse der vorliegenden Erfindung zu implementieren. Demgemäss stellen solche Computerprogramme Controller des Computersystems 400 dar. Beispielshalber können in den Ausführungsbeispielen der Erfindung die Prozesse/Verfahren, die von den Signalverarbeitungsblöcken der Codierer und/oder Decodierer durchgeführt werden, von der Computersteuerlogik durchgeführt werden. Wenn die Erfindung unter Verwendung von Software implementiert wird, kann die Software in einem Computerprogrammprodukt gespeichert werden und in das Computersystem 400 unter Verwendung des Wechselspeicherlaufwerks 414, des Festplattenlaufwerks 412 oder der Kommunikationsschnittstelle 424 geladen werden.
  • In einem anderen Ausführungsbeispiel werden die Merkmale der Erfindung primär in Hardware implementiert, wobei zum Beispiel Hardwarekomponenten wie etwa anwendungsspezifsche integrierte Schaltungen (ASICs; Application Specifc Integrated Circuits) und Gate-Arrays verwendet werden. Die Implementierung einer Hardware-Zustandsmaschine, um so die hier beschriebenen Funktionen durchzuführen, wird den Fachleuten in dem/den relevanten Fachgebiet(en) ebenfalls ersichtlich sein.
  • Die obige Beschreibung der bevorzugten Ausführungsbeispiele stellt eine Veranschaulichung und Beschreibung bereit, ist aber nicht so gedacht, dass sie erschöpfend ist oder die Erfindung auf die genaue offenbarte Form beschränkt. Modifikationen und Variationen in Übereinstimmung mit den oben genannten Lehren sind möglich oder können aus der Anwendung der Erfindung erworben werden. Der Schutzumfang der Erfindung wird von den angehängten Ansprüchen definiert.

Claims (10)

  1. Verfahren zum Synthetisieren einer Anzahl von beschädigten Rahmen, die von einem Decodierer (100) ausgegeben werden, der ein oder mehrere Prädiktionsfilter (180, 190) umfasst, wobei die beschädigten Rahmen repräsentativ für ein Segment eines decodierten Signals sq(n) sind, das von dem Decodierer (100) ausgegeben wird, wobei das Verfahren Folgendes umfasst: Bestimmen (202) einer vorläufigen Verzögerungszeit ppfe1 auf der Grundlage der Überprüfung einer vorbestimmten Anzahl K von Abtastwerten eines anderen Segments des decodierten Signals; wobei die überprüfte Anzahl K von Abtastwerten aus einer Anzahl N von gespeicherten Abtastwerten ausgewählt wird; Bestimmen (202) eines Skalierungsfaktors ptfe1, der mit der überprüften Anzahl K von Abtastwerten assoziiert ist, wenn die vorläufige Verzögerungszeit ppfe1 bestimmt wird; und Extrapolieren (205) eines oder mehrerer Ersatzrahmen auf der Grundlage der vorläufigen Verzögerungszeit ppfe1 und des Skalierungsfaktors ptfe1; wobei das Verfahren dadurch gekennzeichnet ist, dass der Skalierungsfaktor ptfe1 gemäß dem folgenden Ausdruck bestimmt wird:
    Figure 00360001
    wobei c(ppfe1) ein Korrelationswert ist, der von ppfe1 abhängt.
  2. Verfahren nach Anspruch 1, das des Weiteren das Aktualisieren von internen Zuständen der Filter auf der Grundlage der Extrapolation umfasst.
  3. Verfahren nach Anspruch 2, wobei die Korrelationswerte c(j), die mit den vorläufigen Verzögerungszeit-Kandidaten j assoziiert sind, gemäß dem folgenden Ausdruck bestimmt werden:
    Figure 00370001
    wobei die vorläufige Verzögerungszeit ppfe1 aus den vorläufigen Verzögerungszeit-Kandidaten j ausgewählt wird und den folgenden Ausdruck maximiert:
    Figure 00370002
    und der Korrelationswert c(ppfe1) gleich dem Ausdruck c(j) ist, der bei j = ppfe1 genommen wird.
  4. Verfahren nach Anspruch 1, das des Weiteren Folgendes umfasst: Korrigieren interner Zustände der Filter, wenn ein erster guter Rahmen empfangen wird, wobei der erste gute Rahmen nach der Anzahl von beschädigten Rahmen empfangen wird.
  5. Verfahren nach Anspruch 4, wobei das Aktualisieren das Aktualisieren von Kurzzeit- und Langzeit-Synthesefiltern umfasst, die mit dem einen oder den mehreren Prädiktionsfiltern (180, 190) assoziiert sind.
  6. Vorrichtung zum Synthetisieren einer Anzahl von beschädigten Rahmen, die von einem Decodierer (100) ausgegeben werden, der ein oder mehrere Prädiktionsfilter (180, 190) umfasst, wobei die beschädigten Rahmen repräsentativ für ein Segment eines decodierten Signals sq(n) sind, das von dem Decodierer (100) ausgegeben wird, wobei die Vorrichtung Folgendes umfasst: Einrichtungen zum Bestimmen einer vorläufigen Verzögerungszeit ppfe1 auf der Grundlage der Überprüfung einer vorbestimmten Anzahl K von Abtastwerten eines anderen Segments des decodierten Signals; wobei die überprüfte Anzahl K von Abtastwerten aus einer Anzahl N von gespeicherten Abtastwerten ausgewählt wird; Einrichtungen zum Bestimmen eines Skalierungsfaktors ptfe1, der mit der überprüften Anzahl K von Abtastwerten assoziiert ist, wenn die vorläufige Verzögerungszeit ppfe1 bestimmt wird; und Einrichtungen zum Extrapolieren eines oder mehrerer Ersatzrahmen auf der Grundlage der vorläufigen Verzögerungszeit ppfe1 und des Skalierungsfaktors ptfe1; wobei die Vorrichtung dadurch gekennzeichnet ist, dass die Einrichtungen zum Bestimmen des Skalierungsfaktors ptfe1 so konfiguriert sind, dass sie den Skalierungsfaktor ptfe1 gemäß folgendem Ausdruck bestimmen:
    Figure 00380001
    wobei c(ppfe1) ein Korrelationswert ist, der von ppfe1 abhängt.
  7. Vorrichtung nach Anspruch 6, die des Weiteren Einrichtungen zum Aktualisieren von internen Zuständen der Filter auf der Grundlage der Extrapolation umfasst.
  8. Vorrichtung nach Anspruch 6, die des Weiteren Folgendes umfasst: Einrichtungen zum Korrigieren interner Zustände der Filter, wenn ein erster guter Rahmen empfangen wird, wobei der erste gute Rahmen nach der Anzahl von beschädigten Rahmen empfangen wird.
  9. Computerlesbares Medium, das eine oder mehrere Sequenzen einer oder mehrerer Anweisungen zur Ausführung durch einen oder mehrere Prozessoren enthält, um ein Verfahren zum Synthetisieren einer Anzahl von beschädigten Rahmen durchzuführen, die von einem Decodierer (100) ausgegeben werden, der ein oder mehrere Prädiktionsfilter (180, 190) umfasst, wobei die beschädigten Rahmen repräsentativ für ein Segment eines decodierten Signals sq(n) sind, das von dem Decodierer (100) ausgegeben wird, wobei die Anweisungen dann, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren alle folgenden Schritte durchführen: Bestimmen (202) einer vorläufigen Verzögerungszeit ppfe1 auf der Grundlage der Überprüfung einer vorbestimmten Anzahl K von Abtastwerten eines anderen Segments des decodierten Signals; wobei die überprüfte Anzahl K von Abtastwerten aus einer Anzahl N von gespeicherten Abtastwerten ausgewählt wird; Bestimmen (202) eines Skalierungsfaktors ptfe1, der mit der überprüften Anzahl K von Abtastwerten assoziiert ist, wenn die vorläufige Verzögerungszeit ppfe1 bestimmt wird; und Extrapolieren (205) eines oder mehrerer Ersatzrahmen auf der Grundlage der vorläufigen Verzögerungszeit ppfe1 und des Skalierungsfaktors ptfe1; wobei das computerlesbare Medium dadurch gekennzeichnet ist, dass der Skalierungsfaktor ptfe1 gemäß dem folgenden Ausdruck bestimmt wird:
    Figure 00390001
    wobei c(ppfe1) ein Korrelationswert ist, der von ppfe1 abhängt.
  10. Computerlesbares Medium nach Anspruch 9, wobei die eine oder mehreren Anweisungen dann, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren des Weiteren den folgenden Schritt durchführen: Korrigieren interner Zustände der Filter, wenn ein erster guter Rahmen empfangen wird, wobei der erste gute Rahmen nach der Anzahl von beschädigten Rahmen empfangen wird.
DE60223580T 2001-08-17 2002-08-19 Verbessertes verbergen einer rahmenlöschung für die prädiktive sprachcodierung auf der basis einer extrapolation einer sprachsignalform Expired - Lifetime DE60223580T2 (de)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US183448 1998-10-30
US31278901P 2001-08-17 2001-08-17
US312789P 2001-08-17
US34437402P 2002-01-04 2002-01-04
US344374P 2002-01-04
US183608 2002-06-28
US10/183,448 US7143032B2 (en) 2001-08-17 2002-06-28 Method and system for an overlap-add technique for predictive decoding based on extrapolation of speech and ringinig waveform
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
US10/183,608 US7711563B2 (en) 2001-08-17 2002-06-28 Method and system for frame erasure concealment for predictive speech coding based on extrapolation of speech waveform
PCT/US2002/026255 WO2003023763A1 (en) 2001-08-17 2002-08-19 Improved frame erasure concealment for predictive speech coding based on extrapolation of speech waveform

Publications (2)

Publication Number Publication Date
DE60223580D1 DE60223580D1 (de) 2007-12-27
DE60223580T2 true DE60223580T2 (de) 2008-09-18

Family

ID=27539098

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60223580T Expired - Lifetime DE60223580T2 (de) 2001-08-17 2002-08-19 Verbessertes verbergen einer rahmenlöschung für die prädiktive sprachcodierung auf der basis einer extrapolation einer sprachsignalform

Country Status (3)

Country Link
EP (1) EP1433164B1 (de)
DE (1) DE60223580T2 (de)
WO (1) WO2003023763A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2416467B (en) * 2003-05-14 2006-08-30 Oki Electric Ind Co Ltd Apparatus and method for concealing erased periodic signal data
US7519535B2 (en) 2005-01-31 2009-04-14 Qualcomm Incorporated Frame erasure concealment in voice communications
BR112016027898B1 (pt) 2014-06-13 2023-04-11 Telefonaktiebolaget Lm Ericsson (Publ) Método, entidade de recepção, e, meio de armazenamento não transitório legível por computador para ocultação de perda de quadro

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1100396C (zh) * 1995-05-22 2003-01-29 Ntt移动通信网株式会社 语音解码器
US5699485A (en) * 1995-06-07 1997-12-16 Lucent Technologies Inc. Pitch delay modification during frame erasures
US6810377B1 (en) * 1998-06-19 2004-10-26 Comsat Corporation Lost frame recovery techniques for parametric, LPC-based speech coding systems
US6188980B1 (en) * 1998-08-24 2001-02-13 Conexant Systems, Inc. Synchronized encoder-decoder frame concealment using speech coding parameters including line spectral frequencies and filter coefficients

Also Published As

Publication number Publication date
EP1433164A4 (de) 2006-07-12
EP1433164A1 (de) 2004-06-30
DE60223580D1 (de) 2007-12-27
EP1433164B1 (de) 2007-11-14
WO2003023763A1 (en) 2003-03-20

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
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.
DE60224962T2 (de) Verfahren und Vorrichtung zur Verschleierung von fehlerbehafteten Sprachrahmen
DE60121405T2 (de) Transkodierer zur Vermeidung einer Kaskadenkodierung von Sprachsignalen
DE60219351T2 (de) Signaländerungsverfahren zur effizienten kodierung von sprachsignalen
DE69613908T2 (de) Stimmhaft/stimmlos-Klassifizierung von Sprache für Sprachdekodierung bei Verlust von Datenrahmen
US7353168B2 (en) Method and apparatus to eliminate discontinuities in adaptively filtered signals
DE60125219T2 (de) Spektralmerkmal ersatz für die verschleierung von rahmenfehlern in einem sprachdekoder
US7590525B2 (en) Frame erasure concealment for predictive speech coding based on extrapolation of speech waveform
DE69926821T2 (de) Verfahren zur signalgesteuerten Schaltung zwischen verschiedenen Audiokodierungssystemen
DE3856211T2 (de) Verfahren zur adaptiven Filterung von Sprach- und Audiosignalen
DE60217522T2 (de) Verbessertes verfahren zur verschleierung von bitfehlern bei der sprachcodierung
DE69613907T2 (de) Veränderte Grundfrequenzverzögerung bei Verlust von Datenrahmen
DE602004006211T2 (de) Verfahren zur Maskierung von Paketverlusten und/oder Rahmenausfall in einem Kommunikationssystem
DE60023237T2 (de) Verfahren zur verschleierung von paketverlusten
DE69113866T2 (de) Sprachdecoder.
DE60121201T2 (de) Verfahren und vorrichtung zur verschleierung von fehlerhaften rahmen während der sprachdekodierung
DE69934608T2 (de) Adaptive kompensation der spektralen verzerrung eines synthetisierten sprachresiduums
DE60132217T2 (de) Übertragungsfehler-verdeckung in einem audiosignal
DE69928288T2 (de) Kodierung periodischer sprache
DE69230329T2 (de) Verfahren und Vorrichtung zur Sprachkodierung und Sprachdekodierung
DE60123651T2 (de) Verfahren und vorrichtung zur robusten sprachklassifikation
DE60006271T2 (de) Celp sprachkodierung mit variabler bitrate mittels phonetischer klassifizierung
DE69613910T2 (de) Adaptives, auf der Grundlage eines Kodebuchs arbeitendes Sprachkompressionssystem

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