-
Die
vorliegende Erfindung betrifft die Sprachkomprimierung und insbesondere
das Vocoding mit codeerregter linearer Prädiktion (CELP).
-
Ein
Sprachcodierer/-decodierer (Vocoder) komprimiert Sprachsignale,
um die in einem Kommunikationskanal erforderliche Übertragungsbandbreite zu
verringern. Durch Verringerung der pro Verbindung erforderlichen Übertragungsbandbreite
ist es möglich,
die Anzahl von Verbindungen über
denselben Kommunikationskanal zu erhöhen. Frühe Sprachcodierungstechniken,
wie z. B. die Technik der linear-prädiktiven Codierung (LPC) verwenden ein
Filter zur Entfernung der Signalredundanz und komprimieren daher
das Sprachsignal. Das LPC-Filter reproduziert eine Spektralhülle, die
versucht, die menschliche Stimme zu modellieren. Weiterhin wird das
LPC-Filter durch Empfangen quasiperiodischer Eingangssignale für Nasal-
und Vokallaute erregt, während
für nichtstimmhafte
Klänge
rauschartige Eingangssignale empfangen werden.
-
Es
gibt eine Klasse von Vocodern, die als Vocoder mit codeerregter
inearer Prädiktion
(CELP) bekannt sind. CELP-Vocoding ist in erster Hinsicht eine Sprachdatenkomprimierungstechnik,
die bei 4–8 kbps
eine Sprachqualität
erreichen kann, die mit anderen 32-kbps-Sprachcodierungstechniken
vergleichbar ist. Der CELP-Vocoder weist gegenüber früheren LPC-Techniken zwei Verbesserungen
auf. Erstens versucht der CELP-Vocoder,
mehr Sprachdetails zu erfassen, indem unter Verwendung eines Tonhöhenprädiktors
die Tonhöheninformationen
extrahiert werden. Zweitens erregt der CELP-Vocoder das LPC-Filter
mit einem rauschartigen Signal, das aus einem aus der tatsächlichen
Sprachsignalform erzeugten Restsignal abgeleitet wird.
-
CELP-Vocoder
enthalten drei Hauptkomponenten: 1) Kurzzeit-prädiktive Filter, 2) Langzeit-prädiktive
Filter, die auch als Tonhöhenprädiktor oder
adaptives Codebuch bekannt sind, und 3) festes Codebuch. Die Kompression
wird erzielt durch Zuweisen einer bestimmten Anzahl von Bit zu jeder
Komponente, die kleiner als die Anzahl von zur Darstellung des ursprünglichen
Sprachsignals verwendeten Bit ist. Die erste Komponente verwendet
lineare Prädiktion zur
Entfernung von Kurzzeitredundanzen in dem Sprachsignal. Das Fehler-
oder Restsignal, das sich aus dem Kurzzeitprädiktor ergibt, wird das Zielsignal für den Langzeitprädiktor.
-
Stimmhafte
Sprache weist eine quasiperiodische Beschaffenheit auf, und der
Langzeitprädiktor extrahiert
aus dem Rest eine Tonhöhenperiode
und entfernt die Informationen, die aus der vorherigen Periode vorhergesagt
werden können.
Nach dem langzeit- und
dem kurzzeitprädiktiven
Filter ist das resultierende Restsignal ein nahezu rauschartiges
Signal. Durch Analyse-durch-Synthese findet eine Festcodebuchsuche
eine beste Übereinstimmung
zur Ersetzung des rauschartigen Restsignals mit einem Eintrag aus
seiner Bibliothek von Vektoren. Der Code, der den am besten übereinstimmenden
Vektor darstellt, wird anstelle des rauschbehafteten Restsignals übertragen.
Bei algebraischen CELP-(ACELP)-Vocodern besteht das feste Codebuch
aus einigen wenigen von null verschiedenen Impulsen und wird durch Positionen
und Vorzeichen (z. B. +1 oder –1)
der Impulse repräsentiert.
-
Bei
einer typischen Impementierung blockt oder unterteilt der CELP-Vocoder
ein ankommendes Sprachsignal in Rahmen, wobei die LPC-Koeffizienten
des Kurzzeitprädiktors
einmal pro Rahmen aktualisiert werden. Der LPC-Rest wird dann für den Langzeitprädiktor und
die Festcodebuchsuche in Subrahmen unterteilt. Zum Beispiel kann
die Eingangssprache für
den Kurzzeitprädiktor
zu einem 160-Abtastwerte-Rahmen geblockt werden. Der resultierende
Rahmen kann dann in Subrahmen von 53 Absatzwerten, 53 Absatzwerten
und 54 Absatzwerten zerlegt werden. Jeder Subrahmen wird dann durch
den Langzeitprädiktor
und die Festcodebuchsuche verarbeitet.
-
Mit
Bezug auf 1 ist ein
Beispiel für
eien einzigen Rahmen eines Sprachsignals 100 gezeigt. Das
Sprachsignal 100 besteht aus stimmhaften und nichtstimmhaften
Signalen verschiedener Tonhöhen. Das
Sprachsignal 100 wird durch einen CELP-Vocoder mit einem
LPC-Filter empfangen. Der erste Schritt des CELP-Vocoders ist das Entfernen von Kurzzeitredundanzen
in dem Sprachsignal. Das resultierende Signal mit den entfernten
Kurzzeitredundanzen ist das Restsprachsignal 200 (2).
-
Das
LPC-Filter kann nicht alle redundanten Informationen entfernen,
und die verbleibenden quasiperiodischen Peaks und Täler in dem
gefilterten Sprachsignal 200 werden als Tonhöhenimpulse
bezeichnet. Dann wird das Kurzzeit prädiktive Filter auf das Sprachsignal 200 angewandt,
was zu dem Kurzzeit gefilterten Signal 300 (3) führt. Das Langzeitprädiktorfilter
entfernt die quasiperiodischen Tonhöhenimpulse aus dem Restsprachsignal 300 (3), was zu einem zum größten Teil
rauschartigen Signal 400 (4)
führt,
das zu dem Zielsignal für
die Festcodebuchsuche wird. In 4 ist
ein 160-Abtastwerte-Rahmen eines Festcodebuchzielsignals 350 aufgetragen,
das in drei Subrahmen 354, 356, 358 aufgeteilt
ist. Der Codewert wird dann über das
Kommunikationsnetz übertragen.
-
In 5 ist die Nachschlagetabelle 470 gezeigt,
die die Position der Impulse in einem Subrahmen abbildet. Die Impulse
in dem Subrahmen unterliegen der Zwangsbedingung, daß sie an
einer von sechzehn möglichen
Positionen 402 in der Nachschlagetabelle liegen. Da jede
Spur 404 sechzehn mögliche
Positionen 402 aufweist, sind nur vier Bit erforderlich,
um jede Impulsposition zu identifizieren. Jede Impulsabbildung erfolgt
in einer einzelnen Spur 404. Deshalb ermöglichen
zwei Spuren 406, 408 das Abbilden der Impulspositionen
zweier Signalimpulse aus dem Subrahmen.
-
Bei
dem aktuellen Beispiel enthält
der Subrahmen 354 (4)
nur 53 Abtastwerte in der Erregung, so daß die Position 0–52 die
einzigen gültigen Positionen
werden. Aufgrund der Art und Weise der Unterteilung der Spuren 406, 408 (5) sind in jeder Spur Positionen
vorhanden, die die Länge
der ursprünglichen
Erregung übersteigen.
Die Positionen 56 und 60 in Spur 1 und die Positionen 57 und 61
in Spur 2 sind ungültig
und unbenutzt. Die Position der beiden ersten Impulse 310, 312 (4) entspricht Abtastwert
dreizehn und Abtastwert siebzehn. Durch Verwendung der Tabelle 400 (5) wird bestimmt, daß Abtastwert
dreizehn in der Position drei 410 in der ersten Spur 406 liegt.
Der zweite Impuls befindet sich im Abtastwert siebzehn und liegt
in der zweiten Spur 408 an der Position vier 412.
Deshalb können die
Impulse jeweils als vier Bit dargestellt und übertragen werden. Die anderen
Impulse 314 (4), 316, 318, 320 und 322 in
dem Subrahmen 354 werden ignoriert, da das Codebuch nur
zwei Spuren enthält.
-
Die
Impulsposition wird durch die absolute Impulsposition in den Spuren
eingeschränkt.
Nachteilhafterweise plaziert der CELP-Vocoder tendenziell Impulse
an benachbarten Positionen in den Spuren. Durch Plazieren der Impulse
an benacharten Positionen in den Spuren wird anstelle einer Mehrbalance-Codierung
der Äußerung der
Anfang des Sprachklangs codiert. Mit abnehmender Bitrate für den Vocoder
und Verwendung weniger Impulse wird außerdem die Sprachqualität durch
die ineffiziente Plazierung von Impulsen in Spuren nachteilig beeinflußt. Es wird
ein Verfahren zum Verringern des Auftretens von Impulsen, die an
benachbarten Spurpositionen plaziert werden, benötigt.
-
Aus
der Schrift US-A-5963897 ist ein Codierungsverfahren bekannt, bei
dem eine Menge von Erregungs-Kandidatensignalen erzeugt wird, wobei
die Position eines beliebigen einzelnen Impulses nach dem ersten
einzelnen Impuls relativ zu der Position eines vorhergehenden einzelnen
Impulses codiert wird.
-
KURZE DARSTELLUNG
DER ERFINDUNG
-
Gemäß der Erfindung
werden ein Verfahren nach Anspruch 1, eine Vorrichtung nach Anspruch
8 und ein computerlesbares Medium nach Anspruch 14 bereitgestellt.
-
Die
Ineffizienz der Absolutspurpositionsplazierung wird durch Implementierung
einer Plazierung eines Signalimpulses in einer zweiten Spur relativ
zu der Position eines Signalimpulses in der ersten Spur beseitigt.
Die Implementierung einer relativen Positionierung der N + 1 Signalimpulse
in den N + 1 Spuren während
der Codierung eines Signalimpulses führt zu einer erhöhten Signalqualität des decodierten
Signals. Die erhöhte
Signalqualität
wird durch eine präzisere
Plazierung von Impulsen in den Spuren und durch Verringern des Auftretens
benachbarter Plazierung von Signalimpulspositionen in den Spuren erzielt.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
obigen Aufgaben und vorteilhaften Merkmale der Erfindung werden
in der ausführlichen
Beschreibung der vorliegenden Erfindung, die mit Bezug auf die mehreren
Figuren der Zeichnung gegeben wird, ausführlicher erläutert, und
andere werden daraus hervorgehen. Es zeigen:
-
1 einen einzelnen Rahmen
eines Sprachsignals;
-
2 einen Kurzzeit periodisch
gefilterten Einzelsprachrahmen;
-
3 einen mit adaptivem Codebuch
gefilterten Einzelsprachrahmen;
-
4 ein bekanntes Verfahren
zur Strukturierung von in drei Subrahmen unterteiltem 160-Abtastwerte-Sprachrahmen;
-
5 ein Diagramm einer bekannten CELP-Vocodercodebuchnachschlagetabelle,
wobei Signalimpulse auf eine von sechzehn möglichen Impulspositionen beschränkt sind;
-
6 ein Diagramm eines CELP-Vocodercodebuchs
mit relativ beschränkten
Impulspositionen gemäß einer
Ausführungsform
der Erfindung;
-
7 ein Diagramm eines Kommunikationssystems
mit einer Sendeeinrichtung und einer Empfangseinrichtung, die CELP-Vocoding
gemäß einer Ausführungsform
der Erfindung benutzen;
-
8 ein Diagramm der Sendeeinrichtung mit
einem CELP-Vocoder, der ein Sprachsignal gemäß einer Ausführungsform
der vorliegenden Erfindung codiert;
-
9 ein Diagramm der Empfangseinrichtung
haben einen CELP-Vocoder gemäß einer
Ausführungsform
der Erfindung; und
-
10 ein Flußdiagramm
eines Verfahrens zum Vocoding eines Sprachsignals gemäß einer Ausführungsform
der Erfindung.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
In 6 ist eine Codebuchtabelle
mit zwei Spuren mit relativ beschränkten Impulspositionen gezeigt.
Tabelle 500 enthält
zwei Impulspositionsspuren 502, 504 (mit der allgemeinen
Bezeichnung „Spuren"), die sechzehn mögliche Signalimpulspositionen 506 für jede Spur
identifizieren. Die Festcodebucheinträge null bis dreizen 508 in
Spur eins 502 und Spur zwei 504 sind mögliche gültige Impulspositionen.
Die Impulstabellenpositionen vierzehn 510 und fünfzehn 512 in
dem Codebuch sind in beiden Spuren unbenutzt. Zusätzlich werden
die möglichen
ersten Impulspositionen in der ersten Spur darauf beschränkt, an
einer Impulsposition zu liegen, die durch vier teilbar ist (d. h.
0, 4, 8, ..., 52). Die zweite Impulsposition in der zweiten Spur
ist relativ zu der Indexposition 506 des ersten Signalimpulses
in der ersten Spur.
-
Statt
Signalimpulse in benachbarten Spurpositionen zu codieren, erfolgt
eine relative Positionierung des zweiten Signalimpulses. Indem weniger
benachbarte Signalimpulse in der Spur codiert werden, können die
Signalimpulse die Bursts-Energie besser reproduzieren, wodurch die
Sprachqualität
des vom Vocoder decodierten Signals verbessert wird. Bei der vorliegenden
Ausführungsform
wird in jeder der beiden Spuren 502 und 504 ein
einzelner Signalimpuls codiert. Durch Positionen des zweiten Signalimpulses
in der zweiten Spur in bezug auf den ersten Signalimpuls in der
ersten Spur wird eine Zunahme der Qualität der decodierten Äußerung erzielt.
Bei einer alternativen Ausführungsform
enthält
die Codebuchtabelle mehr als zwei Spuren und die zusätzlichen
Signalimpulse in Spuren liegen relativ zu einer früheren Spurposition eines
früheren
Signalimpulses.
-
Bei
der vorliegenden Ausführungsform
bezieht sich die relative Position des zweiten Signalimpulses in
der zweiten Spur auf den ersten Signalimpuls in der ersten Spur.
Bei einer alternativen Ausführungsform
liegt die relative Position des zweiten Signalimpulses in der zweiten
Spur relativ zu der ersten Signalimpulsabtastwertposition. Bei einer
weiteren Ausführungsform
kann die Signalimpulsposition in der zweiten Spur in nichtsequentieller
Reihenfolge gruppiert werden (d. h. 1, –1, 7, –7, 2, –2, 6, –6, 3, –3, 5, –5, 4, –4).
-
Mit
Bezug auf 7 ist ein
Kommunikationssystem 600 mit einer Sendereinrichtung 602 und
einer Empfängereinrichtung 604 gezeigt.
Die Sender- und Empfängerkommunikationseinrichtungen 620, 604 sind
durch einen Kommunikationsweg 606 miteinander gekoppelt.
Der Kommunikationsweg 606 kann selektiv ein drahtgestütztes Netzwerk
(wie z. B. ein lokales Netzwerk, ein großflächiches Netzwerk, das Internet,
ein ATM-Netzwerk oder ein öffentliches Fernsprechnetzwerk)
oder ein drahtloses Netzwerk (wie z. B. ein zellulares, Mikrowellen-
oder Satellitennetzwerk) sein. Die Hauptanforderung an den Kommunikationsweg 606 ist
die Fähigkeit,
digitale Daten zwischen dem Sender 602 und dem Empfänger 604 zu
transferieren.
-
Jede
Einrichtung 602, 604 enthält eine jeweilige Signaleingabe-/-ausgabeeinheit 608, 610.
Die Einheiten 608, 610 sind als telephonische
Einrichtungen gezeigt, die analoge Sprachsignale zu und von der
Sendereinrichtung 602 und der Empfängereinrichtung 604 transferieren.
Die Signaleingabe-/-ausgabeeinheit 608 ist durch einen
Zweidrahtkommunikationsweg 612 an die Sendereinrichtung 602 angekoppelt. Ähnlich ist
die andere Signaleingabe-/-ausgabeeinheit 610 über einen
weiteren Zweidrahtkommunikationsweg 614 an die Empfängereinrichtung 604 angekoppelt.
Bei einer alternativen Ausführungsform
ist die Signaleingabeeinheit in die sendenden und empfangenden Kommunikationseinrichtungen integriert
(d. h. in die sendenden und empfangenden Einrichtungen eingebaute
Lautsprecher und Mikrophone) oder kommunizieren über einen drahtlosen Kommunikationsweg
(d. h. schnurloses Telephon).
-
Die
Sendereinrichtung 602 enthält einen analogen Signalport 616,
der an den Zweidrahtkommunikationsweg 612 angekoppelt ist,
einen CELP-Vocoder 618 und eine Steuerung 620.
Die Steuerung 620 ist an den analogen Signalport 616, den
Vocoder 618 und eine Netzwerkschnittstelle 622 angekoppelt.
Zusätzlich
ist die Netzwerkschnittstelle 622 an den Vocoder 618,
die Steuerung 620 und den Kommunikationsweg 606 angekoppelt.
-
Ähnlich weist
die Empfängereinrichtung 604 eine
weitere Netzwerkschnittstelle 624 auf, die an eine weitere
Steuerung 626, den Kommunikationsweg 606 und einen
weiteren Vocoder 628 angekoppelt ist. Die weitere Steuerung 626 ist
an den weiteren Vocoder 628, die weitere Netzwerkschnittstelle 624 und
den weiteren analogen Signalport 630 angekoppelt. Zusätzlich ist
der weitere analoge Signalport 630 an den weiteren Zweidrahtkommunikationsweg 614 angekoppelt.
-
Ein
Sprachsignal wird an dem analogen Port 616 aus der Signaleingabeeinrichtung 608 empfangen.
Die Steuerung 620 liefert die Steuer- und Zeitsteuerungssignale
für die
Sendereinrichtung 602 und ermöglicht dem analogen Port 161,
das empfangene Signal zur Signalkomprimierung zu dem Vocoder 618 zu
transferieren. Der Vocoder 618 enthält ein festes Codebuch mit
einer in 6 gezeigten
Datenstruktur zum Komprimieren des empfangenen Signals. Die Datenstruktur 500 (6) assoziiert den ersten
Signalimpuls aus dem gefilterten Signal einer Impulsposition in
der ersten Spur. Weiterhin ist der zweite Signalimpuls mit einer
zweiten Impulsposition assoziiert und wird relativ zu der ersten
Impulsposition des ersten Signalimpulses in der ersten Spur bestimmt.
-
Es
wird blockiert, daß zwei
Signalimpulse benachbart in den Spuren zugewiesen werden, indem die
zweite Impulsposition relativ zu der ersten Impulsposition zugewiesen
wird. Der erste Signalimpuls wird codiert und erhält eine
Impulsposition in der ersten Spur 502, und die Impulsposition
des zweiten Signalimpulses in der zweiten Spur 504 wird
relativ zu der ersten Spur 502 codiert. Das relative Codieren der
zweiten Impulsposition führt
zu einem komprimierten Signal mit einer größeren Wahrscheinlichkeit, daß die erste
Impulsposition nicht der zweiten Impulsposition benachbart ist.
Das komprimierte Signal wird dann aus dem Vocoder 618 (7) zu der Netzwerkschnittstelle 622 gesendet.
Die Netzwerkschnittstelle 622 sendet das komprimierte Signal über den
Kommunikationsweg 606 zu der Empfängereinrichtung 604.
-
Die
weitere Netzwerkschnittstelle 624, die sich in der Empfängereinrichtung 604 befindet,
empfängt
das komprimierte Signal. Die Empfängersteuerung 626 ermöglicht einen
Transfer des empfangenen komprimierten Signals zu dem Empfängervocoder 628.
Der Empfängervocoder 628 decodiert
das komprimierte Signal durch Verwenden einer Nachschlagetabelle 500 (6). Der Vocoder 628 (7) regeneriert aus dem empfangenen
komprimierten Signal unter Verwendung der Nachschlagetabelle 500 (6) ein Analogsignal. Die
Nachschlagetabelle reproduziert den Festcodebuchbeitrag und wird
dann durch den Langzeit- und den Kurzzeitprädiktor gefiltert. Das Analogsignal
wird über
den Analogsignalport 630 des Empfängers (7) zu der Signaleingabe-/-ausgabeeinrichtung 610 des
Empfängers
gesendet.
-
Mit
Bezug auf 8 ist die
Signalverarbeitung des analogen Sprachsignals durch den Sender 602 gezeigt.
Ein Vorprozessor 710 besitzt einen Eingang zum Empfangen
eines Analogsignals und ist an ein LP-Filter 714 und einen
Signalkombinierer 712 angekoppelt. Der Signalkombinierer 712 kombiniert das
Signal aus dem Vorprozessor 710 und einen Synthesefilter 716.
Der Ausgang des Signalkombinierers 712 ist an den Prozessor
für wahrnehmungsbezogene
Gewichtung 718 angekoppelt. Das Synthesefilter 716 ist
an das LP-Analysefilter 714, den Signalkombinierer 712,
einen weiteren Signalkombinierer 720, ein adaptives Codebuch 732 und
einen Tonhöhenanalysierer 722 angekoppelt.
Der Tonhöhenanalysierer 722 ist
an den Prozessor für
wahrnehmungsbezogene Gewichtung 718, eine Festcodebuchsuche 734,
ein adaptives Codebuch 732, das Synthesefilter 716,
den weiteren Signalkombinierer 720 und einen Parametercodierer 724 angekoppelt. Der
Parametercodierer 724 ist an einen Sender 728, die
Festcodebuchsuche 734, das feste Codebuch 730,
das LP-Filter 714 und den Tonhöhenanalysierer 722 angekoppelt.
-
Das
Analogsignal wird in dem Vorprozessor 710 aus der analogen
Einrichtung 608 (7)
empfangen. Der Vorprozessor 710 (8) verarbeitet das Signal und stellt
die Vestärkung
und andere Signaleigenschaften ein. Das Signal aus dem Vorprozessor 710 wird
dann sowohl zu dem LP-Analysefilter 714 als auch dem Signalkombinierer 712 geroutet. Die
von dem LP-Analysefilter 714 erzeugten
Koeffizienteninformationen werden zu dem Synthesefilter 716,
dem Prozessor für
wahrnehmungsbezogene Gewichtung 718 und dem Parametercodierer 724 gesendet.
Das Synthesefilter 716 empfängt die LP-Koeffizienteninformationen
aus dem LP-Filter 714 und ein Signal aus dem weiteren Signalkombinierer 720. Das
Synthesefilter 716, das die grobe Kurzzeitspektralform
von Sprache moduliert, erzeugt ein Signal, das durch den Signalkombinierer 712 mit
dem Ausgangssignal des Vorprozessors 710 kombiniert wird. Das
resultierende Signal aus dem Signalkombinierer 712 wird
durch den Prozessor für
wahrnehmungsbezogene Gewichtung 718 gefiltert. Der Prozessor
für wahrnehmungsbezogene
Gewichtung 718 empfängt außerdem LP-Koeffizienteninformationen
von dem LP-Filter 714. Der Prozessor für wahrnehmungsbezogene Gewichtung 718 ist
ein Nachfilter, bei dem die Codierungsverzerrungen effectiv „maskiert" werden, indem die
Signalspektren bei Frequenzen, die hohe Sprachenergie enthalten,
verstärkt
und die Frequenzen, die weniger Sprachenergie enthalten, gedämpft werden.
-
Das
Ausgangssignal des Prozessors für wahrnehmungsbezogene
Gewichtung 718 wird zu der Festcodebuchsuche 734 und
dem Tonhöhenanalysierer 722 gesendet.
Die Festcodebuchsuche 734 erzeugt die Codewerte, die zu
dem Parametercodierer 724 und dem festen Codebuch 730 gesendet
werden. Die Festcodebuchsuche 734 ist von dem Festcodebuch 730 getrennt
gezeigt, kann als Alternative aber auch in dem festen Codebuch 730 enthalten sein
und muß nicht
separat implementiert werden. Zusätzlich hat die Festcodebuchsuche
Zugang zu der Datenstruktur der Nachschlagetabelle 500 (6), und die Bestimmung der
zweiten Impulsposition relativ zu der ersten Impulsposition ermöglicht das
Codieren präziserer
Impulssignalinformationen und verringert das Auftreten des Codierens
benachbarter Impulse durch das Codebuch.
-
Der
Tonhöhenanalysierer 722 (8) erzeugt Tonhöhendaten,
die zu dem Parametercodierer 724 und dem adaptiven Codebuch 732 gesendet werden.
Das adaptive Codebuch 732 empfängt die Tonhöhendaten
aus dem Tonhöhenanalysierer 722 und
ein Rückkopplungssignal
aus dem Signalkombinierer 720, um die Langzeit- (oder periodische)
Komponente des Sprachsignals zu modulieren. Das Ausgangssignal des
adaptiven Codebuchsignals wird durch den Signalkombinierer 720 mit
dem Ausgangssignal des festen Codebuchs 730 kombiniert.
-
Das
feste Codebuch 730 empfängt
die von Festcodebuchsuche 734 erzeugten Codewerte und regeneriert
ein Signal. Das erzeugte Signal wird durch den Signalkombinierer 720 mit
dem Signal aus dem adaptiven Codebuch 732 kombiniert. Das
resultierende kombinierte Signal wird dann von dem Synthesefilter 716 zur
Modulierung der Kurzzeitspektralform des Sprachsignals verwendet
und zu dem adaptiven Codebuch 732 zurückgekoppelt.
-
Der
Parametercodierer empfängt
Parameter aus der Festcodebuchsuche 734, dem Tonhöhenanalysierer 722 und
dem LP-Filter 714. Der Parametercodierer erzeugt unter
Verwendung der empfangenen Parameter das komprimierte Signal. Das
komprimierte Signal wird dann durch den Sender 728 über das
Netzwerk übertragen.
-
Bei
einer alternativen Ausführungsform
des obigen Systems sind der Codierer- und der Decodiererteil des
Vocoders in derselben Einrichtung untergebracht, wie z. B. in einem
digitalen Anrufbeantworter. Bei einer solchen Ausführungsform
ist ein Kommunikationsweg ein Datenbus, der das Speichern und Abrufen
des komprimierten Signals aus einem Speicher ermöglicht.
-
9 zeigt ein Diagramm der
Empfängereinrichtung
mit einem CELP-Vocoder gemäß einer Ausführungsform
der Erfindung. Die Empfängereinrichtung 604 enthält eine
an einen Empfänger 802 angekoppelte
Netzwerkschnittstelle 661. An dem Empfänger 802 und einem
Verstärkungsfaktor „c" 812 ist
ein festes Codebuch 804 angekoppelt. Der Signalkombinierer 806 ist
an ein Synthesefilter 808, den Verstärkungsfaktor „p" 811 und
einen Verstärkungsfaktor „c" 812 angekoppelt.
Das adaptive Codebuch 810 ist an den Verstärkungsfaktor „p" 811 und
den Ausgang des Signalkombinierers 806 angekoppelt. Das
Synthesefilter 808 ist an den Ausgang des Signalkombinierers 806 und
ein wahrnehmungsbezogenes Nachfilter 814 angekoppelt. Das
wahrnehmungsbezogene Nachfilter ist an den weiteren analogen Port 630 und
das Synthesefilter 808 angekoppelt.
-
Das
komprimierte Signal wird durch die Empfängereinrichtung 604 an
der Netzwerkschnittstelle 616 empfangen. Der Empfänger 802 packt
die Daten aus dem in der Netzwerkschnittstelle 616 empfangenen
komprimierten Signal aus. Die Daten bestehen aus einem Festcodebuchindex,
einer Festcodebuchverstärkung,
einem Adaptivcodebuchindex, einer Adaptivcodebuchverstärkung und
einem Index für
die LP-Koeffizienten. Das feste Codebuch 804 enthält eine
Datenstruktur der Nachschlagetabelle 500 (6). Das feste Codebuch 804 (9) erzeugt ein Signal, das
durch den Signalkombinierer 806 mit dem Signal aus dem
adaptiven Codebuch 810 und dem Verstärkungsfaktor 812 kombiniert
wird. Das kombinierte Signal aus dem Signalkombinierer 806 wird dann
in dem Synthesefilter 808 empfangen und zu dem adaptiven
Codebuch 810 zurückgekoppelt.
Das Synthesefilter 808 verwendet das kombinierte Signal zur
Regenerierung des Sprachsignals. Das regenerierte Sprachsignal wird
durch das wahrnehmungsbezogene Nachfilter 814 geleitet,
das das Sprachsignal einstellt. Das Sprachsignal wird dann durch
den analogen Port 630 zu dem Empfänger gesendet, der ein ähnliches
Codebuch aufweist.
-
Mit
Bezug auf 10 ist ein
Flußdiagramm eines
Verfahrens für
das Vocoding unter Verwendung einer Nachschlagetabelle oder eines
Codebuchs mit Impulsposition in den N + 1 Spuren relativ zu den
vorherigen Impulspositionen gezeigt. In Schritt 902 wird in
der Empfängereinrichtung 604 (7) ein Eingangssignal (z.
B. ein analoges Sprachsignal) empfangen. Das Eingangssignal wird
in Schritt 903 (10)
in Signalrahmen aufgeteilt, so daß diskrete Signalteile verarbeitet
werden können.
Jeder Signalrahmen wird durch ein Filter 714 (8) verarbeitet (Schritt 904, 10), so daß sich ein
gefiltertes Eingangssignal ergibt, das als ein Restsignal bezeichnet wird.
-
Das
gefilterte Restsignal wird weiter durch ein Langzeitfilter gefiltert
(Schrit 906, 10),
und das adaptive Codebuch 732 (8) übersetzt
oder entfernt die Langzeitsignalredundanz aus dem gefilterten Eingangssignal
mit Signalimpulsen. In Schritt 908 (10) identifiziert der Festcodebuchindex
die Position der ersten Signalimpulse in einer ersten Spur. Das
feste Codebuch 730 (8)
enthält
eine Nachschlagetabelle 500 (6)
und die relative Abbildung der zweiten Impulsposition in der zweiten Spur
auf die erste Impulsposition in der ersten Spur. Im Schritt 909 wird
das Offset der zweiten Impulsposition relativ zu der ersten Impulsposition
bestimmt und führt
zu einer größeren Plazierungspräzision des zweiten
Impulses.
-
Die
Nachschlagetabelle 500 wird von dem festen Codebuch 730 (8) zur Erzeugung eines binären Musters,
das verbleibende Impulssignale aus dem Signal darstellt, verwendet.
Dann wird ein binäres
Muster zu einem Signal codiert, das den Index der Impulspositionen
enthält
(Schritt 910, 10).
Das codierte Signal wird dann in Schritt 912 über den
Kommunikationsweg übertragen.
-
Der
aktuelle Stand der Technologie ermöglicht ein Kombinieren von
Vielzweck-Digitalsignalprozessoren mit anderen elektronischen Elementen,
um einen CELP-Vocoder herzustellen, der durch Software konfiguriert
werden kann. Deshalb kann ein computerlesbares Signalträgermedium
Softwarecode zur Implementierung eines Vocoders mit zusätzlichen Beschränkungen
zur Einschränkung
von Impulspositionen in einem Codebuch enthalten.