-
Diese
Beschreibung betrifft im Allgemeinen das Codieren und/oder Decodieren
von Sprache und anderen Audiosignalen.
-
Die
Sprachcodierung und -decodierung weisen eine große Anzahl von Anwendungen auf
und wurden ausgedehnt untersucht. Im allgemeinen strebt eine Sprachcodierung,
die auch als Sprachkomprimierung bekannt ist, danach, die Datenrate
zu verringern, die erforderlich ist, um ein Sprachsignal darzustellen,
ohne die Qualität
oder Verständlichkeit
der Sprache wesentlich zu verringern. Sprachkomprimierungsverfahren
können durch
einen Sprachcodierer implementiert werden, der auch als Stimmcodierer
oder Vocoder bezeichnet werden kann.
-
Ein
Sprachcodierer wird im allgemeinen als einen Codierer und einen
Decodierer umfassend betrachtet. Der Codierer erzeugt einen komprimierten
Strom von Bits aus einer digitalen Darstellung von Sprache, wie er
z.B. am Ausgang eines Analog-Digital-Wandlers mit einem von einem
Mikrophon erzeugten analogen Signal als Eingang erzeugt werden kann.
Der Decodierer wandelt den komprimierten Bitstrom in eine digitale
Darstellung von Sprache, die sich zur Wiedergabe eignet, durch einen
Digital-Analog-Wandler und einen Lautsprecher um. In vielen Anwendungen
sind der Codierer und der Decodierer physikalisch getrennt und der
Bitstrom wird zwischen ihnen unter Verwendung eines Datenübertragungskanals übertragen.
-
Ein
Schlüsselparameter
eines Sprachcodierers ist das Ausmaß an Komprimierung, das der
Codierer erreicht, welches durch die Bitrate des Stroms von Bits,
der vom Codierer erzeugt wird, gemessen wird. Die Bitrate des Codierers
ist im allgemeinen eine Funktion der gewünschten Wiedergabetreue (d.h.
Sprachqualität)
und der Art des verwendeten Sprachcodierers. Verschiedene Arten
von Sprachcodierern wurden dazu ausgelegt, mit verschiedenen Bitraten
zu arbeiten. In letzter Zeit haben Sprachcodierer mit niedriger
bis mittlerer Rate, die unterhalb 10 kbps arbeiten, bezüglich eines
breiten Bereichs von Mobilkommunikationsanwendungen (z.B. Mobilfernsprechwesen,
Satellitenfernsprechwesen, Landmobilfunk und Fernsprechwesen beim Flug)
Aufmerksamkeit erlangt. Diese Anwendungen erfordern typischerweise
Sprache mit hoher Qualität
und Unempfindlichkeit gegen Fehler, die durch akustisches Rauschen
und Kanalrauschen verursacht werden (z.B. Bitfehler).
-
Sprache
wird im Allgemeinen als nicht-stationäres Signal mit Signaleigenschaften,
die sich über
die Zeit ändern,
betrachtet. Diese Änderung
der Signaleigenschaften ist im Allgemeinen mit Änderungen verknüpft, die
an den Eigenschaften des Stimmapparats einer Person gemacht werden,
um verschiedene Töne zu
erzeugen. Ein Ton wird typischerweise für einen gewissen kurzen Zeitraum,
typischerweise 10-100 ms, gehalten, und dann wird der Stimmapparat
wieder geändert,
um den nächsten
Ton zu erzeugen. Der Übergang zwischen
Tönen kann
langsam und kontinuierlich sein oder der Übergang kann schnell sein wie
im Fall eines Sprach-"Beginns". Diese Änderung
der Signaleigenschaften erhöht
die Schwierigkeit der Codierung von Sprache mit niedrigeren Bitraten,
da einige Töne
von Natur aus schwieriger zu codieren sind als andere, und der Sprachcodierer
alle Töne
mit angemessener Wiedergabetreue codieren können muss, während die
Fähigkeit bewahrt
wird, sich an einen Übergang
in den Eigenschaften des Sprachsignals anzupassen. Eine Weise zum Verbessern
der Leistung eines Sprachcodierers mit niedriger bis mittlerer Bitrate
besteht darin zuzulassen, dass sich die Bitrate ändert. In Sprachcodierern mit
variabler Bitrate ist die Bitrate für jedes Sprachsegment nicht
fest und statt dessen wird zugelassen, dass sie zwischen zwei oder
mehr Optionen in Abhängigkeit
von verschiedenen Faktoren, wie z.B. Benutzereingabe, Systembelastung,
Endgerätkonstruktion
oder Signaleigenschaften, variiert.
-
Es
gab mehrere Hauptmethoden zum Codieren von Sprache mit niedrigen
bis mittleren Datenraten. Eine Methode, die um die lineare vorhersagende
Codierung (LPC) basiert, versucht beispielsweise, jeden neuen Datenblock
von Sprache aus vorherigen Abtastwerten unter Verwendung von Kurz-
und Langzeit-Vorhersageeinrichtungen
vorherzusagen. Der Vorhersagefehler wird typischerweise unter Verwendung
von einer von mehreren Methoden, von welchen CELP und/oder Mehrfachimpuls
zwei Beispiele sind, quantisiert. Ein Vorteil des LPC-Verfahrens
besteht darin, dass es eine gute Zeitauflösung aufweist, die für die Codierung
von stimmlosen Tönen
hilfreich ist. Insbesondere profitieren Verschlusslaute und Übergänge insofern
davon, als sie nicht in der Zeit übermäßig verschwommen werden. Die
lineare Vorhersage kann jedoch eine Schwierigkeit für stimmhafte
Töne haben,
indem die codierte Sprache gewöhnlich
aufgrund einer unzureichenden Periodizität im codierten Signal rau oder
heiser klingt. Dieses Problem kann bei niedrigeren Datenraten signifikanter
sein, die typischerweise eine längere
Datenblockgröße erfordern,
und für
die die Langzeit-Vorhersageeinrichtung bei
der Wiederherstellung der Periodizität weniger wirksam ist.
-
Eine
weitere führende
Methode für
die Sprachcodierung mit niedriger bis mittlerer Rate ist ein Sprachcodierer
oder Vocoder auf Modellbasis. Ein Vocoder modelliert Sprache als
Reaktion eines Systems auf eine Anregung über kurze Zeitintervalle. Beispiele
von Vocodersystemen umfassen Vocoder mit linearer Vorhersage (wie
z.B. MELP), homomorphe Vocoder, Kanalvocoder, Sinustransformationscodierer
("STC"), harmonische Vocoder
und Mehrbandanregungs-("MBE") Vocoder. In diesen
Vocodern wird Sprache in kurze Segmente (typischerweise 10-40 ms)
unterteilt, wobei jedes Segment durch einen Satz von Modellparametern
charakterisiert wird. Diese Parameter stellen typischerweise einige
Grundelemente jedes Sprachsegments dar, wie z.B. die Tonhöhe, den
Sprachzustand und die Spektralhüllkurve
des Segments. Ein Vocoder kann eine von einer Anzahl von bekannten
Darstellungen für
jeden dieser Parameter verwenden. Die Tonhöhe kann beispielsweise als
Tonhöhenperiode,
als Grundfrequenz oder Tonhöhenfrequenz
(die das Inverse der Tonhöhenperiode
ist) oder als Langzeit-Vorhersageverzögerung dargestellt werden.
Ebenso kann der Sprachzustand durch eine oder mehrere Sprachmetriken,
durch ein Sprachwahrscheinlichkeitsmaß oder durch einen Satz von Sprachentscheidungen
dargestellt werden. Die Spektralhüllkurve wird häufig durch
eine Allpolfilter-Reaktion dargestellt,
kann jedoch auch durch einen Satz von Spektralamplituden oder andere
Spektralmessungen dargestellt werden. Da Sprachcodierer auf Modellbasis
ermöglichen,
dass ein Sprachsegment nur unter Verwendung einer kleinen Anzahl
von Parametern dargestellt wird, können Sprachcodierer auf Modellbasis
wie z.B. Vocoder typischerweise mit mittleren bis niedrigen Datenraten
arbeiten. Die Qualität
eines Systems auf Modellbasis hängt
jedoch von der Genauigkeit des zugrunde liegenden Modells ab. Folglich
muss ein Modell mit hoher Wiedergabetreue verwendet werden, wenn
diese Sprachcodierer eine hohe Sprachqualität erzielen sollen.
-
Der
MBE-Vocoder ist ein harmonischer Vocoder auf der Basis des MBE-Sprachmodells, von
dem gezeigt wurde, dass es in vielen Anwendungen gut arbeitet. Der
MBE-Vocoder kombiniert eine harmonische Darstellung für stimmhafte
Sprache mit einer flexiblen, frequenzabhängigen Sprachstruktur auf der
Basis des MBE-Sprachmodells. Dies ermöglicht, dass der MBE-Vocoder
natürliche
klingende stimmlose Sprache erzeugt, und macht den MBE-Vocoder gegen
die Anwesenheit von akustischem Hintergrundrauschen unempfindlicher.
Diese Eigenschaften ermöglichen,
dass der MBE-Vocoder Sprache mit höherer Qualität mit niedrigen
bis mittleren Datenraten erzeugt, und haben zur Verwendung des MBE-Vocoders
in einer Anzahl von kommerziellen Mobilkommunikationsanwendungen
geführt.
-
Das
MBE-Sprachmodell stellt Segmente von Sprache unter Verwendung einer
Grundfrequenz, die der Tonhöhe
entspricht, eines Satzes von Sprachmetriken oder -entscheidungen
und eines Satzes von Spektralamplituden, die dem Frequenzgang des
Stimmapparats entsprechen, dar. Das MBE-Modell verallgemeinert die
herkömmliche
einzelne V/UV-Entscheidung pro Segment zu einem Satz von Entscheidungen,
die jeweils den Sprachzustand innerhalb eines speziellen Frequenzbandes
oder Frequenzbereichs darstellen. Jeder Datenblock wird dadurch
in zumindest stimmhafte und stimmlose Frequenzbereiche unterteilt.
Diese hinzugefügte
Flexibilität
im Sprachmodell ermöglicht,
dass das MBE-Modell gemischten Sprachtönen, wie z.B. einigen stimmhaften
Reibelauten, besser gerecht wird, ermöglicht eine genauere Darstellung
von Sprache, die durch akustisches Hintergrundrauschen verstümmelt wurde,
und verringert die Empfindlichkeit gegen einen Fehler in irgendeiner
Entscheidung. Eine ausgedehnte Prüfung hat gezeigt, dass diese
Verallgemeinerung zu verbesserter Sprachqualität und Verständlichkeit führt.
-
Vocoder
auf MBE-Basis umfassen den IMBETM-Sprachcodierer
und den AMBE®-Sprachcodierer. Der IMBETM-Sprachcodierer wurde in einer Anzahl von
drahtlosen Kommunikationssystemen verwendet, einschließlich des
APCO Project 25. Der AMBE®-Sprachcodierer ist ein
verbessertes System, das ein robusteres Verfahren zum Abschätzen der
Anregungsparameter (Grundfrequenz und Sprachentscheidungen) umfasst und
der die Veränderungen
und das in tatsächlicher
Sprache zu findende Rauschen besser verfolgen kann. Typischerweise
verwendet der AMBE®-Sprachcodierer eine Filterbank,
die häufig
sechzehn Kanäle
und eine Nichtlinearität
umfasst, um einen Satz von Kanalausgangssignalen zu erzeugen, aus
denen die Anregungsparameter zuverlässig abgeschätzt werden
können.
Die Kanalausgangssignale werden kombiniert und verarbeitet, um die
Grundfrequenz abzuschätzen.
Danach werden die Kanäle
innerhalb jedes von mehreren (z.B. acht) Sprachbändern verarbeitet, um eine
Sprachentscheidung (oder andere Sprachmetriken) für jedes
Sprachband abzuschätzen.
Im AMBE+2TM-Vocoder wird ein Sprachmodell
mit drei Zuständen
(stimmhaft, stimmlos, gepulst) angewendet, um Verschlusslaute und
andere vorübergehende
Sprachtöne
besser darzustellen. Verschiedene Verfahren zum Quantisieren der
MBE-Modellparameter wurden in verschiedenen Systemen angewendet.
Typischerweise verwenden der AMBE®-Vocoder
und der AMBE+2TM-Vocoder fortschrittlichere
Quantisierungsverfahren, wie z.B. Vektorquantisierung, die Sprache
mit höherer
Qualität
mit niedrigeren Bitraten erzeugen.
-
Der
Codierer eines Sprachcodierers auf MBE-Basis schätzt den Satz von Modellparametern
für jedes Sprachsegment
ab. Die MBE-Modellparameter umfassen eine Grundfrequenz (den Kehrwert
der Tonhöhenperiode);
einen Satz von V/UV-Metriken oder -Entscheidungen, die den Sprachzustand
charakterisieren; und einen Satz von Spektralamplituden, die die
Spektralhüllkurve
charakterisieren. Nach dem Abschätzen
der MBE-Modellparameter
für jedes
Segment quantisiert der Codierer die Parameter, um einen Datenblock
von Bits zu erzeugen. Der Codierer kann wahlweise diese Bits mit
Fehler-Korrektur/Erkennungs-Codes vor dem Verschachteln und Übertragen
des resultierenden Bitstroms zu einem entsprechenden Decodierer
schützen.
-
Der
Decodierer in einem Vocoder auf MBE-Basis rekonstruiert die MBE-Modellparameter (Grundfrequenz,
Sprachinformationen und Spektralamplituden) für jedes Segment von Sprache
aus dem empfangenen Bitstrom. Als Teil dieser Rekonstruktion kann
der Decodierer eine Entschachtelung und eine Fehlerprüfdecodierung
durchführen,
um Bitfehler zu korrigieren und/oder zu erkennen. Außerdem wird
vom Decodierer typischerweise eine Phasenregeneration durchgeführt, um
eine synthetische Phaseninformation zu berechnen. In einem Verfahren,
das in der Vocoder-Beschreibung des APCO Project 25 spezifiziert
und im
US-Patent Nrn. 5 081 681 und
5 664 051 beschrieben ist,
wird eine Zufallsphasenregeneration verwendet, wobei das Ausmaß der Zufälligkeit
von den Sprachentscheidungen abhängt.
In einem weiteren Verfahren wird eine Phasenregeneration durch Anwenden
eines Glättungskerns
auf die rekonstruierten Spektralamplituden durchgeführt, wie im
US-Patent Nr. 5 701 390 beschrieben
ist.
-
Der
Decodierer verwendet die rekonstruierten MBE-Modellparameter, um
ein Sprachsignal zu synthetisieren, das wahrnehmbar der ursprünglichen
Sprache in einem hohen Grad ähnelt.
Normalerweise werden separate Signalkomponenten, die stimmhafter,
stimmloser und wahlweise gepulster Sprache entsprechen, für jedes
Segment synthetisiert und die resultierenden Komponenten werden
dann zusammenaddiert, um das synthetische Sprachsignal zu bilden.
Dieser Prozess wird für
jedes Segment von Sprache wiederholt, um das vollständige Sprachsignal
zur Ausgabe über
einen D-A-Wandler und einen Lautsprecher zu reproduzieren. Die stimmlose
Signalkomponente kann unter Verwendung eines Fenster-Überlappungs-Additions-Verfahrens
zum Filtern eines Signals von weißem Rauschen synthetisiert
werden. Die zeitlich veränderliche
Spektralhüllkurve des
Filters wird aus der Sequenz von rekonstruierten Spektralamplituden
in Frequenzbereichen bestimmt, die als stimmlos bezeichnet werden,
wobei andere Frequenzbereiche auf Null gesetzt werden.
-
Der
Decodierer kann die stimmhafte Signalkomponente unter Verwendung
von einem von mehreren Verfahren synthetisieren. In einem Verfahren,
das in der Vocoder-Beschreibung des APCO Project 25 festgelegt ist,
wird ein Satz von Oberwellenoszillatoren verwendet, wobei ein Oszillator
jeder Oberwelle der Grundfrequenz zugeordnet ist, und die Beiträge von allen
Oszillatoren werden summiert, um die stimmhafte Signalkomponente
zu bilden. In einem weiteren Verfahren wird die stimmhafte Signalkomponente
durch Falten einer stimmhaften Impulsantwort mit einer Impulssequenz
und dann Kombinieren des Beitrags von benachbarten Segmenten mit
einer Fenster-Überlappungs-Addition
synthetisiert. Dieses zweite Verfahren kann schneller zu berechnen
sein, da es keinen Abgleich von Komponenten zwischen Segmenten erfordert,
und es kann auf die optionale gepulste Signalkomponente angewendet
werden.
-
Ein
spezielles Beispiel eines Vocoders auf MBE-Basis ist der IMBETM-Vocoder mit 7200 bps, der als Standard
für das
Mobilfunk-Kommunikationssystem des APCO Project 25 ausgewählt ist.
Dieser Vocoder, der in der Vocoder-Beschreibung des APCO Project
25 beschrieben ist, verwendet 144 Bits, um jeden Datenblock von
20 ms darzustellen. Diese Bits werden in 56 redundante FEC-Bits
(die durch eine Kombination von Golay- und Hamming-Codierung angewendet
werden), 1 Synchronisationsbit und 87 MBE-Parameterbits unterteilt. Die
87 MBE-Parameterbits
bestehen aus 8 Bits zum Quantisieren der Grundfrequenz, 3-12 Bits
zum Quantisieren der binären
Stimmhaft/Stimmlos-Entscheidungen und 67-76 Bits zum Quantisieren der Spektralamplituden.
Der resultierende Datenblock aus 144 Bits wird vom Codierer zum
Decodierer übertragen.
Der Decodierer führt
eine Fehlerkorrektur vor dem Rekonstruieren der MBE-Modellparameter
aus den fehlerdecodierten Bits durch. Der Decodierer verwendet dann
die rekonstruierten Modellparameter, um stimmhafte und stimmlose
Signalkomponenten zu synthetisieren, die zusammenaddiert werden,
um das decodierte Sprachsignal zu bilden.
-
US 3622704 offenbart einen
Vocoder mit einer Entscheidungsschaltung, die feststellt, ob ein
Teil ein stimmhafter oder stimmloser Teil ist. Die Entscheidungsschaltung
umfasst Tonhöhendetektorschaltungen,
die Tonhöhenmarkierungsimpulse
entsprechend Spitzen in dem Signal erzeugen. Durch Erfassen der
Zeit zwischen aufeinander folgenden Spitzen, die der Tonhöhe entspricht,
wird eine Feststellung hinsichtlich dessen durchgeführt, ob
der Teil ein stimmloser Teil ist, in welchem Fall eine Nullausgabe
gegeben wird, oder ein stimmhafter Teil ist, bei dem ein Tonhöhenparameter
ausgegeben wird.
-
US 3903366 war die Ausgabe
einer Entscheidungsschaltung wie z.B. der in
US 3622704 beschriebenen, um die gleichzeitige Übertragung
eines stimmhaften und stimmlosen Teils zu ermöglichen.
-
Die
vorliegende Erfindung ist durch die beigefügten unabhängigen Ansprüche definiert.
-
In
einem allgemeinen Aspekt umfasst das Codieren einer Sequenz von
digitalen Sprachabtastwerten in einen Bitstrom das Unterteilen der
digitalen Sprachabtastwerte in einen oder mehrere Datenblöcke und
das Berechnen von Modellparametern für mehrere Datenblöcke. Die
Modellparameter umfassen zumindest einen ersten Parameter, der Tonhöheninformationen übermittelt.
Ein Sprachzustand eines Datenblocks wird bestimmt, und der Parameter,
der Tonhöheninformationen
für den
Datenblock übermittelt,
wird modifiziert, um den bestimmten Sprachzustand des Datenblocks
zu bezeichnen, wenn der bestimmte Sprachzustand des Datenblocks
gleich einem von einem Satz von reservierten Sprachzuständen ist.
Die Modellparameter werden dann quantisiert, um Quantisiererbits
zu erzeugen, die verwendet werden, um den Bitstrom zu erzeugen.
-
Implementierungen
können
eines oder mehrere der folgenden Merkmale umfassen. Die Modellparameter
können
beispielsweise ferner einen oder mehrere Spektralparameter umfassen,
die Spektralamplitudeninformationen bestimmen.
-
Der
Sprachzustand eines Datenblocks kann für mehrere Frequenzbänder bestimmt
werden und die Modellparameter können
ferner einen oder mehrere Sprachparameter umfassen, die den bestimmten
Sprachzustand in den Frequenzbändern
bezeichnen. Die Sprachparameter können den Sprachzustand in jedem
Frequenzband als entweder stimmhaft, stimmlos oder gepulst bezeichnen.
Der Satz von reservierten Sprachzuständen kann Sprachzuständen entsprechen,
bei denen kein Frequenzband als stimmhaft bezeichnet wird. Die Sprachparameter
können
so festgelegt werden, dass sie alle Frequenzbänder als stimmlos bezeichnen, wenn
der bestimmte Sprachzustand des Datenblocks gleich einem von einem
Satz von reservierten Sprachzuständen
ist. Der Sprachzustand kann auch so festgelegt werden, dass er alle
Frequenzbänder
als stimmlos bezeichnet, wenn der Datenblock vielmehr einem Hintergrundgeräusch als
einer Sprachaktivität
entspricht.
-
Das
Erzeugen des Bitstroms kann das Anwenden einer Fehlerkorrekturcodierung
auf die Quantisiererbits umfassen. Der erzeugte Bitstrom kann mit
einem Standard-Vocoder, der für
das APCO Project 25 verwendet wird, interoperierbar sein.
-
Ein
Datenblock von digitalen Sprachabtastwerten kann analysiert werden,
um Tonsignale zu erfassen, und, wenn ein Tonsignal erfasst wird,
kann der Satz von Modellparametern für den Datenblock ausgewählt werden,
um das erfasste Tonsignal darzustellen. Die erfassten Tonsignale
können
MFV-Tonsignale umfassen. Das Auswählen des Satzes von Modellparametern
zum Darstellen des erfassten Tonsignals kann das Auswählen der
Spektralparameter zum Darstellen der Amplitude des erfassten Tonsignals
und/oder das Auswählen
des ersten Parameters, der Tonhöheninformationen übermittelt,
auf der Basis zumindest teilweise der Frequenz des erfassten Tonsignals
umfassen.
-
Die
Spektralparameter, die die Spektralamplitudeninformationen für den Datenblock
bestimmen, umfassen einen Satz von Spektralamplitudenparametern,
die um Oberwellen einer Grundfrequenz berechnet werden, die aus
dem ersten Parameter, der Tonhöheninformationen übermittelt,
bestimmt wird.
-
In
einem weiteren allgemeinen Aspekt umfasst das Codieren einer Sequenz
von digitalen Sprachabtastwerten in einen Bitstrom das Unterteilen
der digitalen Sprachabtastwerte in einen oder mehrere Datenblöcke und
das Feststellen, ob die digitalen Sprachabtastwerte für einen
Datenblock einem Tonsignal entsprechen. Modellparameter werden für mehrere
Datenblöcke
berechnet, wobei die Modellparameter zumindest einen ersten Parameter,
der die Tonhöhe
darstellt, und Spektralparameter, die die Spektralamplitude bei
harmonischen Vielfachen der Tonhöhe
darstellen, umfassen. Wenn die digitalen Sprachabtastwerte für einen
Datenblock als einem Tonsignal entsprechend festgestellt werden,
werden der Tonhöhenparameter
und die Spektralamplitudenparameter ausgewählt, um sich dem erfassten
Tonsignal zu nähern.
Die Modellparameter werden quantisiert, um Quantisiererbits zu erzeugen,
die verwendet werden, um den Bitstrom zu erzeugen.
-
Implementierungen
können
eines oder mehrere der folgenden Merkmale und eines oder mehrere
der vorstehend angegebenen Merkmale umfassen. Der Satz von Modellparametern
kann beispielsweise ferner einen oder mehrere Sprachparameter umfassen,
die den Sprachzustand in mehreren Frequenzbändern bezeichnen. Der erste
Parameter, der die Tonhöhe
darstellt, kann die Grundfrequenz sein.
-
In
einem weiteren allgemeinen Aspekt umfasst das Decodieren von digitalen
Sprachabtastwerten von einer Sequenz von Bits das Unterteilen der
Sequenz von Bits in individuelle Datenblöcke, die jeweils mehrere Bits
umfassen. Quantisiererwerte werden aus einem Datenblock von Bits
gebildet. Die gebildeten Quantisiererwerte umfassen zumindest einen
ersten Quantisiererwert, der die Tonhöhe darstellt, und einen zweiten Quantisiererwert,
der den Sprachzustand darstellt. Eine Feststellung wird hinsichtlich
dessen durchgeführt,
ob der erste und der zweite Quantisiererwert zu einem Satz von reservierten
Quantisiererwerten gehören.
Anschließend
werden Sprachmodellparameter für
einen Datenblock aus den Quantisiererwerten rekonstruiert. Die Sprachmodellparameter
stellen den Sprachzustand des Datenblocks dar, der aus dem ersten
Quantisiererwert rekonstruiert wird, der die Tonhöhe darstellt,
wenn der erste und der zweite Quantisiererwert als zum Satz von
reservierten Quantisiererwerten gehörend bestimmt werden. Schließlich werden
digitale Sprachabtastwerten aus den rekonstruierten Sprachmodellparametern
berechnet.
-
Implementierungen
können
eines oder mehrere der folgenden Merkmale und eines oder mehrere
der vorstehend angegebenen Merkmale umfassen. Die rekonstruierten
Sprachmodellparameter für
einen Datenblock können
beispielsweise einen Tonhöhenparameter
und einen oder mehrere Spektralparameter umfassen, die die Spektralamplitudeninformationen
für den
Datenblock darstellen. Ein Datenblock kann in Frequenzbänder unterteilt
werden und die rekonstruierten Sprachmodellparameter, die den Sprachzustand
eines Datenblocks darstellen, können
den Sprachzustand in jedem der Frequenzbänder bezeichnen. Der Sprachzustand
in jedem Frequenzband kann entweder als stimmhaft, stimmlos oder
gepulst bezeichnet werden. Die Bandbreite von einem oder mehreren
der Frequenzbänder
kann mit der Tonhöhenfrequenz
in Beziehung stehen.
-
Der
erste und der zweite Quantisiererwert können als zum Satz von reservierten
Quantisiererwerten gehörend
nur dann festgestellt werden, wenn der zweite Quantisiererwert gleich
einem bekannten Wert ist. Der bekannte Wert kann der Wert sein,
der alle Frequenzbänder
als stimmlos bezeichnet. Der erste und der zweite Quantisiererwert
können
als zum Satz von reservierten Quantisiererwerten gehörend nur
dann bestimmt werden, wenn der erste Quantisiererwert gleich einem
von mehreren zulässigen
Werten ist. Der Sprachzustand in jedem Frequenzband kann nicht als
stimmhaft bezeichnet werden, wenn der erste und der zweite Quantisiererwert
als zum Satz von reservierten Quantisiererwerten gehörend festgestellt
werden.
-
Das
Bilden der Quantisiererwerte aus einem Datenblock von Bits kann
das Durchführen
einer Fehlerdecodierung am Datenblock von Bits umfassen. Die Sequenz
von Bits kann durch einen Sprachcodierer erzeugt werden, der mit
dem Vocoder-Standard des APCO Project 25 interoperierbar ist.
-
Die
rekonstruierten Spektralparameter können modifiziert werden, wenn
die rekonstruierten Sprachmodellparameter für einen Datenblock als einem
Tonsignal entsprechend festgestellt werden. Das Modifizieren der
rekonstruierten Spektralparameter kann das Dämpfen von gewissen unerwünschten
Frequenzkomponenten umfassen. Die rekonstruierten Modellparameter
für einen
Datenblock können
als einem Tonsignal entsprechend nur dann festgestellt werden, wenn
der erste Quantisiererwert und der zweite Quantisiererwert gleich bestimmten
bekannten Tonquantisiererwerten sind oder wenn die Spektralamplitudeninformationen
für einen Datenblock
eine kleine Anzahl von dominanten Frequenzkomponenten angeben. Die
Tonsignale können MFV-Tonsignale umfassen,
die nur dann bestimmt werden, wenn die Spektralamplitudeninformationen
für einen
Datenblock zwei dominante Frequenzkomponenten angeben, die bei oder
nahe den bekannten MFV-Frequenzen
auftreten.
-
Die
Spektralparameter, die die Spektralamplitudeninformationen für den Datenblock
darstellen, können
aus einem Satz von Spektralamplitudenparametern bestehen, die Oberwellen
einer Grundfrequenz darstellen, die aus dem rekonstruierten Tonhöhenparameter
bestimmt wird.
-
In
einem weiteren allgemeinen Aspekt umfasst das Decodieren von digitalen
Sprachabtastwerten von einer Sequenz von Bits das Unterteilen der
Sequenz von Bits in individuelle Datenblöcke, die jeweils mehrere Bits
enthalten. Sprachmodellparameter werden für einen Datenblock von Bits
rekonstruiert. Die rekonstruierten Sprachmodellparameter für einen
Datenblock umfassen ein oder mehrere Spektralparameter, die die
Spektralamplitudeninformationen für den Datenblock darstellen.
Unter Verwendung der rekonstruierten Sprachmodellparameter wird
eine Feststellung hinsichtlich dessen durchgeführt, ob der Datenblock ein
Tonsignal darstellt, und die Spektralparameter werden modifiziert,
wenn der Datenblock ein Tonsignal darstellt, so dass die modifizierten
Spektralparameter die Spektralamplitudeninformationen des bestimmten
Tonsignals besser darstellen. Digitale Sprachabtastwerte werden
aus den rekonstruierten Sprachmodellparametern und den modifizierten
Spektralparametern erzeugt.
-
Implementierungen
können
eines oder mehrere der folgenden Merkmale und ein oder mehrere der vorstehend
angegebenen Merkmale umfassen. Die rekonstruierten Sprachmodellparameter
für einen
Datenblock umfassen beispielsweise auch einen Grundfrequenzparameter,
der die Tonhöhe
darstellt, und Sprachparameter, die den Sprachzustand in mehreren
Frequenzbändern
bezeichnen. Der Sprachzustand in jedem der Frequenzbänder kann
entweder als stimmhaft, stimmlos oder gepulst bezeichnet werden.
-
Die
Spektralparameter für
den Datenblock können
einen Satz von Spektralamplituden umfassen, die die Spektralamplitudeninformationen
bei Oberwellen des Grundfrequenzparameters darstellen. Das Modifizieren
der rekonstruierten Spektralparameter kann das Dämpfen der Spektralamplituden,
die Oberwellen entsprechen, die nicht im bestimmten Tonsignal enthalten
sind, umfassen.
-
Die
rekonstruierten Sprachmodellparameter für einen Datenblock können als
einem Tonsignal entsprechend nur dann festgestellt werden, wenn
einige der Spektralamplituden in dem Satz von Spektralamplituden über allen
anderen Spektralamplituden in dem Satz dominant sind oder wenn der
Grundfrequenzparameter und die Sprachparameter ungefähr gleich
bestimmten bekannten Werten für
die Parameter sind. Die Tonsignale können MFV-Tonsignale umfassen, die nur dann bestimmt
werden, wenn der Satz von Spektralamplituden zwei dominante Frequenzkomponenten
enthält,
die bei oder nahe den Standard-MFV-Frequenzen auftreten.
-
Die
Sequenz von Bits kann durch einen Sprachcodierer erzeugt werden,
der mit dem Vocoder-Standard des APCO Project 25 interoperierbar
ist.
-
In
einem weiteren allgemeinen Aspekt ist ein verbesserter Mehrbandanregungs-(MBE) Vocoder mit dem
Standard-Vocoder des APCO Project 25 interoperierbar, stellt jedoch
eine verbesserte Sprachqualität, eine
bessere Wiedergabetreue für
Tonsignale und eine verbesserte Unempfindlichkeit gegen ein Hintergrundgeräusch bereit.
Eine verbesserte MBE-Codierereinheit kann Elemente wie z.B. MBE-Parameterabschätzung, MBE-Parameterquantisierung
und FEC-Codierung umfassen. Das MBE-Parameterabschätzungselement
umfasst fortschrittliche Merkmale wie z.B. Sprachaktivitätserfassung,
Rauschunterdrückung,
Tonerfassung und ein Sprachmodell mit drei Zuständen. Die MBE-Parameterquantisierung
umfasst die Fähigkeit,
Sprachinformationen in das Grundfrequenz-Datenfeld einzufügen. Ein
verbesserter MBE-Decodierer kann Elemente wie z.B. FEC-Decodierung,
MBE-Parameterrekonstruktion und MBE-Sprachsynthese umfassen. MBE-Parameterrekonstruktion
zeichnet sich durch die Fähigkeit
aus, Sprachinformationen aus dem Grundfrequenz-Datenfeld zu gewinnen.
Die MBE-Sprachsynthese kann Sprache als Kombination von stimmhaften,
stimmlosen und gepulsten Signalkomponenten synthetisieren.
-
Die
vorliegende Erfindung wird mit Bezug auf die zugehörigen Zeichnungen
beispielhaft beschrieben, in welchen gilt:
-
1 ist
ein Blockdiagramm eines Systems mit einem verbesserten MBE-Vocoder
mit einer verbesserten MBE-Codierereinheit und einer verbesserten
MBE-Decodierereinheit.
-
2 ist
ein Blockdiagramm der verbesserten MBE-Codierereinheit und der verbesserten
MBE-Decodierereinheit des Systems von 1.
-
3 ist
ein Ablaufplan einer Prozedur, die von einem MBE-Parameterabschätzungselement der Codierereinheit
von 2 verwendet wird.
-
4 ist
ein Ablaufplan einer Prozedur, die von einem Tonerfassungselement
des MBE-Parameterabschätzungselements
von 3 verwendet wird.
-
5 ist
ein Ablaufplan der Prozedur, die von einem Sprachaktivitätserfassungselement
des MBE-Parameterabschätzungselements
von 3 verwendet wird.
-
6 ist
ein Ablaufplan einer Prozedur, verwendet wird, um die Grundfrequenz
und Sprachparameter in einem verbesserten MBE-Codierer abzuschätzen.
-
7 ist
ein Ablaufplan einer Prozedur, die von einem MBE-Parameterrekonstruktionselement der Decodierereinheit
von 2 verwendet wird.
-
8 ist
ein Ablaufplan einer Prozedur, die verwendet wird, um die Grundfrequenz
und Sprachparameter in einem verbesserten MBE-Decodierer zu rekonstruieren.
-
9 ist
ein Blockdiagramm eines MBE-Sprachsyntheseelements des Decodierers
von 2.
-
1 zeigt
einen Sprachcodierer oder Vocoder 100, der analoge Sprache
oder irgendein anderes Signal von einem Mikrophon 105 abtastet.
Ein A-D-Wandler 110 digitalisiert die analoge Sprache vom
Mikrophon, um ein digitales Sprachsignal zu erzeugen. Das digitale
Sprachsignal wird durch eine verbesserte MBE-Sprachcodierereinheit 115 verarbeitet,
um einen digitalen Bitstrom 120 zu erzeugen, der zur Übertragung oder
Speicherung geeignet ist.
-
Typischerweise
verarbeitet der Sprachcodierer das digitale Sprachsignal in kurzen
Datenblöcken,
wobei die Datenblocke in einen oder mehrere Unterdatenblöcke weiter
unterteilt werden können.
Jeder Datenblock von digitalen Sprachabtastwerten erzeugt einen
entsprechenden Datenblock von Bits im Bitstrom, der aus dem Codierer
ausgegeben wird. Man beachte, dass, wenn nur ein Unterdatenblock
im Datenblock vorhanden ist, dann der Datenblock und der Unterdatenblock
typischerweise äquivalent
sind und sich auf dieselbe Unterteilung des Signals beziehen. In
einer Implementierung ist die Datenblockgröße 20 ms in der Dauer und besteht
aus 160 Abtastwerten mit einer Abtastrate von 8 kHz. Die Leistung
kann in einigen Anwendungen durch Unterteilen von jedem Datenblock
in zwei Unterdatenblöcke
mit 10 ms erhöht
werden.
-
1 stellt
auch einen empfangenen Bitstrom 125 dar, der in eine verbesserte
MBE-Sprachdecodierereinheit 130 eintritt, die jeden Datenblock
von Bits verarbeitet, um einen entsprechenden Datenblock von synthetisierten
Sprachabtastwerten zu erzeugen. Eine D-A-Wandlereinheit 135 wandelt
dann die digitalen Sprachabtastwerte in ein analoges Signal um,
das an eine Lautsprechereinheit 140 zur Umwandlung in ein akustisches
Signal, das für
das menschliche Hören
geeignet ist, weitergeleitet werden kann. Der Codierer 115 und
der Decodierer 130 können
sich an verschiedenen Orten befinden und der übertragene Bitstrom 120 und der
empfangene Bitstrom 125 können identisch sein.
-
Der
Vocoder 100 ist ein verbesserter Vocoder auf MBE-Basis,
der mit dem Standard-Vocoder, der im Kommunikationssystem des APCO
Project 25 verwendet wird, interoperierbar ist. In einer Implementierung
ist ein verbesserter Vocoder mit 7200 bps mit dem Standard-Vocoder-Bitstrom
des APCO Project 25 interoperierbar. Dieser verbesserte Vocoder
mit 7200 bps stellt eine verbesserte Leistung, einschließlich besserer
Sprachqualität,
erhöhter
Unempfindlichkeit gegen akustisches Hintergrundrauschen und überlegener
Tonbehandlung, bereit. Die Bitstrominteroperierbarkeit wird bewahrt,
so dass ein verbesserter Codierer einen Bitstrom mit 7200 bps erzeugt,
der durch einen Standard-Sprachdecodierer des APCO Project 25 decodiert
werden kann, um Sprache mit hoher Qualität zu erzeugen. Ebenso gibt
der verbesserte Decodierer Sprache mit hoher Qualität von einem
Bitstrom mit 7200 bps, der durch einen Standard-Codierer erzeugt
wird, ein und decodiert diese. Die Bereitstellung der Bitstrom-Interoperierbarkeit
ermöglicht,
dass Funk oder andere Vorrichtungen, die den verbesserten Vocoder
beinhalten, nahtlos in das existierende System des APCO Project
25 integriert werden, ohne eine Umwandlung oder Transcodierung durch
die Systeminfrastruktur zu erfordern. Durch Bereitstellung von Abwärtskompatibilität mit dem
Standard-Vocoder
kann der verbesserte Vocoder verwendet werden, um die Leistung des existierenden
Systems aufzurüsten,
ohne Interoperierbarkeitsprobleme einzuführen.
-
Mit
Bezug auf 2 kann der verbesserte MBE-Codierer 115 unter
Verwendung einer Sprachcodierereinheit 200 implementiert
werden, die zuerst das eingegebene digitale Sprachsignal mit einer
Parameterabschätzungseinheit 205 verarbeitet,
um verallgemeinerte MBE-Modellparameter für jeden Datenblock abzuschätzen. Diese
abgeschätzten
Modellparameter für
einen Datenblock werden dann durch eine MBE-Parameterquantisierungseinheit 210 quantisiert,
um Parameterbits zu erzeugen, die einer FEC-Codierungs-Paritätshinzufügungseinheit 215 zugeführt werden,
die die quantisierten Bits mit redundanten Vorwärtsfehlerkorrektur-(FEC) Daten
kombiniert, um den übertragenen
Bitstrom zu bilden. Das Hinzufügen
von redundanten FEC-Daten ermöglicht,
dass der Decodierer Bitfehler korrigiert und/oder erkennt, die durch
eine Verschlechterung im Übertragungskanal
verursacht werden.
-
Wie
auch in 2 gezeigt, kann der verbesserte
MBE-Decodierer 130 unter Verwendung einer MBE-Sprachdecodierereinheit 220 implementiert
werden, die zuerst einen Datenblock von Bits im empfangenen Bitstrom
mit einer FEC-Decodiereinheit 225 verarbeitet,
um Bitfehler zu korrigieren und/oder zu erkennen. Die Parameterbits
für den
Datenblock werden dann von einer MBE-Parameterrekonstruktionseinheit 230 verarbeitet,
die verallgemeinerte MBE-Modellparameter
für jeden
Datenblock rekonstruiert. Die resultierenden Modellparameter werden
dann von einer MBE-Sprachsyntheseeinheit 235 verwendet,
um ein synthetisches digitales Sprachsignal zu erzeugen, das das
Ausgangssignal des Decodierers ist.
-
Im
Vocoder-Standard des APCO Project 25 werden 144 Bits verwendet,
um jeden Datenblock von 20 ms darzustellen. Diese Bits werden in
56 redundante FEC-Bits (durch eine Kombination einer Golay- und
Hamming-Codierung angewendet), 1 Synchronisationsbit und 87 MBE-Parameterbits
unterteilt. Um mit dem Standard-Vocoder-Bitstrom
des APCO Project 25 interoperierbar zu sein, verwendet der verbesserte
Vocoder dieselbe Datenblockgröße und dieselbe
allgemeine Bitzuweisung innerhalb jedes Datenblocks. Der verbesserte Vocoder
verwendet jedoch eine gewisse Modifikation an diesen Bits relativ
zum Standard-Vocoder, um zusätzliche
Informationen zu übermitteln
und um die Vocoder-Leistung zu verbessern, während er mit dem Standard-Vocoder
abwärtskompatibel
bleibt.
-
3 stellt
eine verbesserte MBE-Parameterabschätzungsprozedur 300 dar,
die vom verbesserten MBE-Sprachcodierer implementiert wird. Bei
der Implementierung der Prozedur 300 führt der Sprachcodierer eine
Tonerfassung (Schritt 305) durch, um für jeden Datenblock festzustellen,
ob das Eingangssignal einem von mehreren bekannten Tontypen (Einzelton,
MFV-Ton, Knox-Ton oder Hörton)
entspricht.
-
Der
Sprachcodierer führt
auch eine Sprachaktivitätserfassung
(VAD) (Schritt 310) durch, um für jeden Datenblock festzustellen,
ob das Eingangssignal menschliche Sprache oder Hintergrundgeräusch ist.
Die Ausgabe der VAD ist ein einzelnes Informationsbit pro Datenblock,
das den Datenblock als Stimme oder keine Stimme bezeichnet.
-
Der
Codierer schätzt
dann die MBE-Sprachentscheidungen und die Grundfrequenz, die Tonhöheninformationen übermittelt
(Schritt 315), und die Spektralamplituden (Schritt 320)
ab. Die Sprachentscheidungen können
alle auf stimmlos gesetzt werden, wenn die VAD-Entscheidung den
Datenblock als Hintergrundgeräusch
(keine Stimme) bestimmt.
-
Nachdem
die Spektralamplituden abgeschätzt
sind, wird eine Rauschunterdrückung
angewendet (Schritt 325), um den wahrgenommenen Pegel des
Hintergrundgeräuschs
von den Spektralamplituden zu entfernen. In einigen Implementierungen
wird die VAD-Entscheidung verwendet, um die Hintergrundgeräuschabschätzung zu
verbessern.
-
Schließlich werden
die Spektralamplituden kompensiert (Schritt 330), wenn
sie sich in einem Sprachband befinden, das als stimmlos oder gepulst
bezeichnet wird. Dies wird durchgeführt, um das andere Spektralamplituden-Abschätzverfahren,
das im Standard-Vocoder verwendet wird, zu berücksichtigen.
-
Der
verbesserte MBE-Sprachcodierer führt
eine Tonerfassung durch, um bestimmte Arten von Tonsignalen im Eingangssignal
zu identifizieren. 4 stellt eine Tonerfassungsprozedur 400 dar,
die vom Codierer implementiert wird. Das Eingangssignal wird zuerst
unter Verwendung eines Hamming-Fensters oder Kaiser-Fensters ausschnittweise
dargestellt (Schritt 405). Eine FFT wird dann berechnet
(Schritt 410) und die gesamte spektrale Energie wird aus
der FFT-Ausgabe
berechnet (Schritt 415). Typischerweise wird die FFT-Ausgabe
ausgewertet, um festzustellen, ob sie einem von mehreren Tonsignalen
entspricht, einschließlich
Einzeltönen
im Bereich von 150-3800 Hz, MFV-Tönen, Knox-Tönen und bestimmten Hörtönen.
-
Als
nächstes
wird der beste Kandidatenton bestimmt, im Allgemeinen durch Auffinden
eines FFT-intervallbereichs oder von FFT-intervallbereichen mit
maximaler Energie (Schritt 420). Die Tonenergie wird dann durch
Summieren der FFT-Intervallbereiche um die ausgewählte Kandidatentonfrequenz
im Fall eines Einzeltons oder von Frequenzen im Fall eines Doppeltons
berechnet (Schritt 425).
-
Der
Kandidatenton wird dann durch Prüfen
von bestimmten Tonparametern, wie z.B. des SNR-(Verhältnis zwischen
Tonenergie und Gesamtenergie) Pegels, der Frequenz oder Verdrehung,
für gültig erklärt (Schritt
430).
Im Fall von MFV-Tönen,
die standardisierte Doppelfrequenztöne sind, die in Telekommunikationen
verwendet werden, muss beispielsweise die Frequenz von jeder der
zwei Frequenzkomponenten oberhalb von etwa 3% des Nennwerts für einen
gültigen
MFV-Ton liegen und das SNR muss typischerweise 15 dB übersteigen.
Wenn solche Tests einen gültigen
Ton bestätigen,
dann werden die abgeschätzten
Tonparameter auf eine harmonische Reihe unter Verwendung eines Satzes
von MBE-Modellparametern, wie z.B. in Tabelle 1 gezeigt, abgebildet
(Schritt
435). Ein MFV-Ton mit 697 Hz, 1336 Hz kann beispielsweise
in eine harmonische Reihe mit einer Grundfrequenz von 70 Hz (f
0 = 0,00875) und mit zwei von Null verschiedenen
Oberwellen (10, 19) abgebildet werden, wobei alle anderen Oberwellen
auf Null gesetzt werden. Die Sprachentscheidungen werden dann derart
festgelegt, dass die Sprachbänder,
die die von Null verschiedenen Oberwellen enthalten, stimmhaft sind,
während
alle anderen Sprachbänder
stimmlos sind. Tabelle 1: MBE-Tonparameter
| Tontyp | Frequenzkomponenten (Hz) | MBE-Modellparameter |
| Tonindex | Grundfrequenz (Hz) | Von
Null verschiedene Oberwellen |
| Einzelton | 156,25 | 5 | 156,25 | 1 |
| Einzelton | 187,5 | 6 | 187,5 | 1 |
| ... | ... | ... | ... | ... |
| Einzelton | 375,0 | 12 | 375,0 | 1 |
| Einzelton | 406,3 | 13 | 203,13 | 2 |
| ... | ... | ... | ... | ... |
| Einzelton | 781,25 | 25 | 390,63 | 2 |
| Einzelton | 812,50 | 26 | 270,83 | 3 |
| ... | ... | ... | ... | ... |
| Einzelton | 1187,5 | 38 | 395,83 | 3 |
| Einzelton | 1218,75 | 39 | 304,69 | 4 |
| ... | ... | ... | ... | ... |
| Einzelton | 1593,75 | 51 | 398,44 | 4 |
| Einzelton | 1625,0 | 52 | 325,0 | 5 |
| ... | ... | ... | ... | ... |
| Einzelton | 2000,0 | 64 | 400,0 | 5 |
| Einzelton | 2031,25 | 65 | 338,54 | 6 |
| ... | ... | ... | ... | ... |
| Einzelton | 2375,0 | 76 | 395,83 | 6 |
| Einzelton | 2406,25 | 77 | 343,75 | 7 |
| ... | ... | ... | ... | ... |
| Einzelton | 2781,25 | 89 | 397,32 | 7 |
| Einzelton | 2812,5 | 90 | 351,56 | 8 |
| ... | ... | ... | ... | ... |
| Einzelton | 3187,5 | 102 | 398,44 | 8 |
| Einzelton | 3218,75 | 103 | 357,64 | 9 |
| ... | ... | ... | ... | ... |
| Einzelton | 3593,75 | 115 | 399,31 | 9 |
| Einzelton | 3625,0 | 116 | 362,5 | 10 |
| ... | ... | ... | ... | ... |
| Einzelton | 3812,5 | 122 | 381,25 | 10 |
| MFV-Ton | 941,1336 | 128 | 78,50 | 12,
17 |
| MFV-Ton | 697,1209 | 129 | 173,48 | 4,
7 |
| MFV-Ton | 697,1336 | 130 | 70,0 | 10,
19 |
| MFV-Ton | 697,1477 | 131 | 87,0 | 8,
17 |
| MFV-Ton | 770,1209 | 132 | 109,95 | 7,
11 |
| MFV-Ton | 770,1336 | 133 | 191,68 | 4,
7 |
| MFV-Ton | 770,1477 | 134 | 70,17 | 11,
21 |
| MFV-Ton | 852,1209 | 135 | 71,06 | 12,
17 |
| MFV-Ton | 852,1336 | 136 | 121,58 | 7,
11 |
| MFV-Ton | 852,1477 | 137 | 212,0 | 4,
7 |
| MFV-Ton | 697,1633 | 138 | 116,41 | 6,
14 |
| MFV-Ton | 770,1633 | 139 | 96,15 | 8,
17 |
| MFV-Ton | 852,1633 | 140 | 71,0 | 12,
23 |
| MFV-Ton | 941,1633 | 141 | 234,26 | 4,
7 |
| MFV-Ton | 941,1209 | 142 | 134,38 | 7,
9 |
| MFV-Ton | 941,1477 | 143 | 134,35 | 7,
11 |
| Knox-Ton | 820,1162 | 144 | 68,33 | 12,
17 |
| Knox-Ton | 606,1052 | 145 | 150,89 | 4,
7 |
| Knox-Ton | 606,1162 | 146 | 67,82 | 9,
17 |
| Knox-Ton | 606,1297 | 147 | 86,50 | 7,
15 |
| Knox-Ton | 672,1052 | 148 | 95,79 | 7,
11 |
| Knox-Ton | 672,1162 | 149 | 166,92 | 4,
7 |
| Knox-Ton | 672,1297 | 150 | 67,70 | 10,
19 |
| Knox-Ton | 743,1052 | 151 | 74,74 | 10,
14 |
| Knox-Ton | 743,1162 | 152 | 105,90 | 7,
11 |
| Knox-Ton | 743,1297 | 153 | 92,78 | 8,
14 |
| Knox-Ton | 606,1430 | 154 | 101,55 | 6,
14 |
| Knox-Ton | 672,1430 | 155 | 84,02 | 8,
17 |
| Knox-Ton | 743,1430 | 156 | 67,83 | 11,
21 |
| Knox-Ton | 820,1430 | 157 | 102,30 | 8,
14 |
| Knox-Ton | 820,1052 | 158 | 117,0 | 7,
9 |
| Knox-Ton | 820,1297 | 159 | 117,49 | 7,
11 |
| Hörton | 350,440 | 160 | 87,78 | 4,
5 |
| Hörton | 440,480 | 161 | 70,83 | 6,
7 |
| Hörton | 480,630 | 162 | 122,0 | 4,
5 |
| Hörton | 350,490 | 163 | 70,0 | 5,
7 |
-
Der
verbesserte MBE-Vocoder umfasst typischerweise eine Sprachaktivitätserfassung
(VAD), um jeden Datenblock als entweder Stimme oder Hintergrundgeräusch zu
identifizieren. Verschiedene Verfahren zur VAD können angewendet werden. 5 zeigt
jedoch ein spezielles VAD-Verfahren 500, das das Messen
der Energie des Eingangssignals über
einen Datenblock in einem oder mehreren Frequenzbändern (16
Bänder sind
typisch) umfasst (Schritt 505).
-
Als
nächstes
wird eine Abschätzung
des Hintergrundgeräuschgrunds
in jedem Frequenzband durch Verfolgen einer minimalen Energie in
dem Band abgeschätzt
(Schritt 510). Der Fehler zwischen der tatsächlichen
gemessenen Energie und dem abgeschätzten Rauschgrundgrund wird
dann für
jedes Frequenzband berechnet (Schritt 515) und der Fehler
wird dann über
alle Frequenzbänder
aufsummiert (Schritt 520). Der aufsummierte Fehler wird
dann mit einer Schwelle verglichen (Schritt 525), und wenn
der aufsummierte Fehler die Schwelle übersteigt, dann wird Stimme
für den
Datenblock erfasst. Wenn der aufsummierte Fehler die Schwelle nicht übersteigt,
wird Hintergrundgeräusch
(keine Stimme) erfasst.
-
Der
verbesserte MBE-Codierer, der in 3 gezeigt
ist, schätzt
einen Satz von MBE-Modellparametern für jeden Datenblock des eingegebenen
Sprachsignals ab. Typischerweise werden die Sprachentscheidungen
und die Grundfrequenz (Schritt 315) zuerst abgeschätzt. Der
verbesserte MBE-Codierer kann ein fortschrittliches Sprachmodell
mit drei Zuständen
verwenden, das bestimmte Frequenzbereiche als entweder stimmhaft,
stimmlos oder gepulst definiert. Dieses Sprachmodell mit drei Zuständen verbessert
die Fähigkeit des
Vocoders, Verschlusslaute und andere vorübergehende Töne darzustellen,
und es verbessert die wahrgenommene Sprachqualität signifikant. Der Codierer
schätzt
einen Satz von Sprachentscheidungen ab, wobei jede Sprachentscheidung
den Sprachzustand eines speziellen Frequenzbereichs im Datenblock
bezeichnet. Der Codierer schätzt
auch die Grundfrequenz ab, die die Tonhöhe der stimmhaften Signalkomponente
bezeichnet.
-
Ein
vom verbesserten MBE-Codierer verwendetes Merkmal besteht darin,
dass die Grundfrequenz etwas willkürlich ist, wenn der Datenblock
vollständig
stimmlos oder gepulst ist (d.h. keine stimmhaften Komponenten aufweist).
In dem Fall, in dem kein Teil des Datenblocks stimmhaft ist, kann
folglich die Grundfrequenz verwendet werden, um andere Informationen
zu übermitteln,
wie in 6 gezeigt und nachstehend beschrieben.
-
6 stellt
ein Verfahren
600 zum Abschätzen der Grundfrequenz und
der Sprachentscheidungen dar. Die Eingangssprache wird zuerst unter
Verwendung einer Filterbank, die eine nicht-lineare Operation enthält, unterteilt
(Schritt
605). In einer Implementierung wird die Eingangssprache
beispielsweise in acht Kanäle unterteilt,
wobei jeder Kanal einen Bereich von 500 Hz aufweist. Die Filterbankausgabe
wird verarbeitet, um eine Grundfrequenz für den Datenblock abzuschätzen (Schritt
610)
und eine Sprachmetrik für
jeden Filterbankkanal abzuschätzen
(Schritt
615). Die Details dieser Schritte sind im
US-Patent Nrn. 5 715 365 und
5 826 222 erörtert. Außerdem erfordert
das Sprachmodell mit drei Zuständen,
dass der Codierer eine Impulsmetrik für jeden Filterbankkanal abschätzt (Schritt
620),
wie in der gleichzeitig anhängigen
US-Patentanmeldung Nr. 09/988 809 ,
eingereicht am 20. November 2001, veröffentlicht als
US 20030097260 , erörtert. Die
Kanalsprachmetriken und die Impulsmetriken werden dann verarbeitet,
um einen Satz von Sprachentscheidungen zu berechnen (Schritt
625),
die den Sprachzustand jedes Kanals als entweder stimmhaft, stimmlos
oder gepulst darstellen. Im Allgemeinen wird ein Kanal als stimmhaft
bezeichnet, wenn die Sprachmetrik geringer als ein erster Stimmhaft-Schwellenwert
ist, als gepulst bezeichnet, wenn die Sprachmetrik geringer als
ein zweiter Gepulst-Schwellenwert
ist, der kleiner ist als der erste Stimmhaft-Schwellenwert, und
ansonsten als stimmlos bezeichnet.
-
Sobald
die Kanalsprachentscheidungen bestimmt wurden, wird eine Prüfung durchgeführt, um
festzustellen, ob irgendein Kanal stimmhaft ist (Schritt
630).
Wenn kein Kanal stimmhaft ist, dann gehört der Sprachzustand für den Datenblock
zu einem Satz von reservierten Sprachzuständen, wobei jeder Kanal entweder stimmlos
oder gepulst ist. In diesem Fall wird die abgeschätzte Grundfrequenz
durch einen Wert aus Tabelle 2 ersetzt (Schritt
635), wobei
der ausgewählte
Wert auf den in Schritt
625 bestimmten Kanalsprachentscheidungen
basiert. Wenn kein Kanal stimmhaft ist, dann werden außerdem alle
der Sprachbänder,
die im Standard-Vocoder des APCO Project 25 verwendet werden, auf
stimmlos gesetzt (d.h. b
1 = 0). Tabelle 2: Nicht-stimmhafte MBE-Grundfrequenz
| Grundfrequenz
(Hz) | Kanalsprachentscheidungen |
| Quantisiererwert
(b0) von der Vocoder-Beschreibung des APCO Project 25 | (Hz) | Unterdatenblock
1
8 Filterbank-Kanäle
Niedrige
Freq. – hohe Freq. | Unterdatenblock
0
8 Filterbank-Kanäle
Niedrige
Freq. – hohe Freq. |
| 25 | 248.0 | UUUUUUUU | UUUUUUUU |
| 128 | 95.52 | UUUUUUUP | UUUUUUUU |
| 129 | 94.96 | UUUUUUPU | UUUUUUUU |
| 130 | 94.40 | UUUUUUPP | UUUUUUUU |
| 131 | 93.84 | UUUUUPUU | UUUUUUUU |
| 132 | 93.29 | UUUUUPPP | UUUUUUUU |
| 133 | 92.75 | UUUUPPPP | UUUUUUUU |
| 134 | 92.22 | UUUPUUUU | UUUUUUUU |
| 135 | 91.69 | UUUPPUUU | UUUUUUUU |
| 136 | 91.17 | UUUUUUUU | PUUUUUUU |
| 137 | 90.65 | UUUUUUUU | UUUPPUUU |
| 138 | 90.14 | UUUUUUUU | UUUPUUUU |
| 139 | 89.64 | UUUUUUUU | UUPPPPPU |
| 140 | 89.14 | UUUUUUUU | UUPUUUUU |
| 141 | 88.64 | UUUUUUUU | UUPPUUUU |
| 142 | 88.15 | UUUUUUUU | UUPPPUUU |
| 143 | 87.67 | UUUUUUUU | UUUPPPUU |
| 144 | 87.19 | UUUUUUUU | UUUUUUUP |
| 145 | 86.72 | UUUUUUUU | UUUUUPPP |
| 146 | 86.25 | UUUUUUUU | UUUUUUPU |
| 147 | 85.79 | UUUUUUUU | UUUUUPUU |
| 148 | 85.33 | UUUUUUUU | UUUUUUPP |
| 149 | 84.88 | UUUUUUUU | UUUUPPPP |
| 150 | 84.43 | UUUUUUUU | UUUUPUUU |
| 151 | 83.98 | UUUUUUUU | UUUUPPUU |
| 152 | 83.55 | PUUUUUUU | UUUUUUUU |
| 153 | 83.11 | UUPPPUUU | UUUUUUUU |
| 154 | 82.69 | PPPUUUUU | UUUUUUUU |
| 155 | 82.26 | UUUPPPUU | UUUUUUUU |
| 156 | 81.84 | PPUUUUUU | UUUUUUUU |
| 157 | 81.42 | PPPPUUUU | UUUUUUUU |
| 158 | 81.01 | UUUPPPPP | UUUUUUUU |
| 159 | 80.60 | UUPPUUUU | UUUUUUUU |
| 160 | 80.20 | PPPPPPPP | UUUUUUUU |
| 161 | 79.80 | UUUUPUUU | UUUUUUUU |
| 162 | 79.40 | UUPPPPPP | UUUUUUUU |
| 163 | 79.01 | PPPPPUUU | UUUUUUUU |
| 164 | 78.62 | UUPUUUUU | UUUUUUUU |
| 165 | 78.23 | PPPPPPUU | UUUUUUUU |
| 166 | 77.86 | UPPPPPPP | UUUUUUUU |
| 167 | 77.48 | PPPPPPPU | UUUUUUUU |
| 168 | 77.11 | UUUUUUUU | PPPPPPPP |
| 169 | 76.74 | UUUUUUUU | PPPPPUUU |
| 170 | 76.37 | UUUUUUUU | PPPUUUUU |
| 171 | 76.01 | UUUUUUUU | UPPPPPPP |
| 172 | 75.65 | UUUUUUUU | PPUUUUUU |
| 173 | 75.29 | UUUUUUUU | UUUPPPPP |
| 174 | 74.94 | UUUUUUUU | UUPPPPPP |
| 175 | 74.59 | UUUUUUUU | PPPPPPUU |
| 176 | 74.25 | PPPPPPPP | PPPPPPPP |
| 177 | 73.90 | PPPPPPPP | UUPPPPPP |
| 178 | 73.56 | PPPUUUUU | PPPUUUUU |
| 179 | 73.23 | UUUPPPPP | UUUPPPPP |
| 180 | 72.89 | UUPPPPPP | UUPPPPPP |
| 181 | 72.56 | PPPPPPPP | PPPUUUUU |
| 182 | 72.23 | PPUUUUUU | PPUUUUUU |
| 183 | 71.91 | UUPUUUUU | UUPUUUUU |
-
Die
Anzahl von Sprachbändern
in einem Datenblock, die zwischen 3 und 12 in Abhängigkeit
von der Grundfrequenz variiert, wird berechnet (Schritt 640).
Die spezielle Anzahl von Sprachbändern
für eine
gegebene Grundfrequenz ist in der Vocoder-Beschreibung des APCO
Project 25 beschrieben und ist ungefähr durch die Anzahl von Oberwellen,
dividiert durch 3, mit einem Maximum von 12 gegeben.
-
Wenn
einer oder mehrere der Kanäle
stimmhaft ist, dann gehört
der Sprachzustand nicht zum reservierten Satz, die abgeschätzte Grundfrequenz
wird aufrechterhalten und in der Standardweise quantisiert und die
Kanalsprachentscheidungen werden auf die Standard-Sprachbänder des
APCO Project 25 abgebildet (Schritt 645).
-
Typischerweise
wird eine Frequenzskalierung von den festen Filterbank-Kanalfrequenzen auf
die von der Grundfrequenz abhängigen
Sprachbandfrequenzen verwendet, um die in Schritt 645 gezeigte
Abbildung durchzuführen.
-
6 stellt
die Verwendung der Grundfrequenz zum Übermitteln von Informationen über die
Sprachentscheidungen, sobald keine der Kanalsprachentscheidungen
stimmhaft ist (d.h. wenn der Sprachzustand zu einem reservierten
Satz von Sprachzuständen
gehört,
wobei alle Kanalsprachentscheidungen entweder stimmlos oder gepulst
sind), dar. Man beachte, dass im Standard-Codierer die Grundfrequenz
willkürlich
ausgewählt
wird, wenn die Sprachbänder
alle stimmlos sind, und keine Informationen über die Sprachentscheidungen übermittelt
werden. Im Gegensatz dazu wählt
das System von 6 eine neue Grundfrequenz, vorzugsweise
aus Tabelle 2, aus, die Informationen über die Kanalsprachentscheidungen übermittelt,
sobald keine stimmhaften Bänder
vorhanden sind.
-
Ein
Auswahlverfahren besteht darin, die Kanalsprachentscheidungen von
Schritt 625 mit den Kanalsprachentscheidungen, die jeder
Kandidatengrundfrequenz in Tabelle 2 entsprechen, zu vergleichen.
Der Tabelleneintrag, für
den die Kanalsprachentscheidungen am nächsten liegen, wird als neue
Grundfrequenz ausgewählt
und als Grundfrequenz-Quantisiererwert b0 codiert.
Der Endteil von Schritt 625 besteht darin, den Sprachquantisiererwert
b1 auf Null zu setzen, was normalerweise
alle Sprachbänder
im Standard-Decodierer als stimmlos bezeichnet. Man beachte, dass
der verbesserte Codierer den Sprachquantisiererwert b1 auf
Null setzt, sobald der Sprachzustand eine Kombination von stimmlosen
und/oder gepulsten Bändern
ist, um sicherzustellen, dass ein Standard-Decodierer, der den Bitstrom
empfängt,
der vom verbesserten Codierer erzeugt wird, alle Sprachbänder als
stimmlos decodiert. Die speziellen Informationen hinsichtlich dessen,
welche Bänder
gepulst sind und welche Bänder
stimmlos sind, wird dann im Grundfrequenz-Quantisiererwert b0 codiert, wie vorstehend beschrieben. Die
Vocoder-Beschreibung des APCO Project 25 kann für weitere Informationen über die
Standard-Vocoder-Verarbeitung, einschließlich der Codierung und Decodierung
der Quantisiererwerte b0 und b1,
zu Rate gezogen werden.
-
Man
beachte, dass die Kanalsprachentscheidungen normalerweise einmal
pro Datenblock abgeschätzt
werden und in diesem Fall die Auswahl einer Grundfrequenz aus Tabelle
2 das Vergleichen der abgeschätzten
Kanalsprachentscheidungen mit den Sprachentscheidungen in der mit "Unterdatenblock 1" bezeichneten Spalte
in Tabelle 2 und unter Verwendung des Tabelleneintrags, der am nächsten liegt,
beinhaltet, um die ausgewählte
Grundfrequenz zu bestimmen. In diesem Fall wird die Spalte von Tabelle
2, die mit "Unterdatenblock
0" bezeichnet ist,
nicht verwendet. Die Leistung kann jedoch weiter verbessert werden,
indem die Kanalsprachentscheidungen zweimal pro Datenblock (d.h.
für zwei
Unterdatenblöcke
im Datenblock) unter Verwendung eines vorstehend beschriebenen Verfahrens
auf Filterbankbasis abgeschätzt
werden. In diesem Fall gibt es zwei Sätze von Kanalsprachentscheidungen
pro Datenblock und die Auswahl einer Grundfrequenz aus Tabelle 2
beinhaltet das Vergleichen der abgeschätzten Kanalsprachentscheidungen
für beide
Unterdatenblöcke
mit den Sprachentscheidungen, die in beiden Spalten von Tabelle
2 enthalten sind. In diesem Fall wird der Tabelleneintrag, der am
nächsten liegt,
wenn er über
beide Unterdatenblöcke
untersucht wird, verwendet, um die ausgewählte Grundfrequenz zu bestimmen.
-
Mit
erneutem Bezug auf
3 schätzt der verbesserte MBE-Codierer,
sobald die Anregungsparameter (Grundfrequenz und Sprachinformationen)
abgeschätzt
wurden (Schritt
315), einen Satz von Spektralamplituden
für jeden
Datenblock ab (Schritt
320). Wenn die Tonerfassung (Schritt
305)
ein Tonsignal für
den aktuellen Datenblock erfasst hat, dann werden die Spektralamplituden
abgesehen von den festgelegten von Null verschiedenen Oberwellen
von Tabelle 1, die auf die Amplitude des erfassten Tonsignals gesetzt
werden, auf Null gesetzt. Wenn kein Ton erfasst wird, dann werden
ansonsten die Spektralamplituden für den Datenblock durch ausschnittweise
Darstellung des Sprachsignals unter Verwendung einer Funktion mit
kurzen überlappenden
Fenstern wie z.B. eines modifizierten Kaiser-Fensters mit 155 Punkten
und dann Berechnen einer FFT (typischerweise K = 256) an dem Fenstersignal
abgeschätzt.
Die Energie wird dann um jede Oberwelle der abgeschätzten Grundfrequenz
summiert und die Quadratwurzel der Summe ist die Spektralamplitude
M
l für die
l-te Oberwelle. Eine Methode zur Abschätzung der Spektralamplituden
ist im
US-Patent Nr. 5 754 974 erörtert.
-
Der
verbesserte MBE-Codierer umfasst typischerweise ein Rauschunterdrückungsverfahren
(Schritt 325), das verwendet wird, um die wahrgenommene
Menge an Hintergrundrauschen von den abgeschätzten Spektralamplituden zu
verringern. Ein Verfahren besteht darin, eine Abschätzung des
lokalen Rauschgrundes in einem Satz von Frequenzbändern zu
berechnen. Typischerweise wird die aus der Sprachaktivitätserfassung ausgegebene
VAD-Entscheidung
(Schritt 310) verwendet, um das Rauschen, das während Datenblöcken abgeschätzt wird,
in denen keine Stimme erfasst wird, zu aktualisieren. Dies stellt
sicher, dass die Rauschgrundabschätzung vielmehr den Hintergrundrauschpegel
als den Sprachpegel misst. Sobald die Rauschabschätzung durchgeführt ist,
wird die Rauschabschätzung
geglättet
und dann von den abgeschätzten
Spektralamplituden unter Verwendung von typischen Spektralsubtraktionsverfahren
subtrahiert, wobei die maximale Menge an Dämpfung typischerweise auf ungefähr 15 dB
begrenzt wird. In Fällen,
in denen die Rauschabschätzung
nahe Null liegt (d.h. wenig oder kein Hintergrundrauschen vorhanden
ist), führt
die Rauschunterdrückung
eine geringe oder keine Änderung
an den Spektralamplituden durch. In Fällen, in denen beträchtliches Rauschen
vorliegt (beispielsweise wenn in einem Fahrzeug, in dem die Fenster
unten sind, gesprochen wird), führt
jedoch das Rauschunterdrückungsverfahren
eine beträchtliche
Modifikation an den abgeschätzten
Spektralamplituden durch.
-
Im
Standard-MBE-Codierer, der in der Vocoder-Beschreibung des APCO
Project 25 spezifiziert ist, werden die Spektralamplituden für stimmhafte
und stimmlose Oberwellen unterschiedlich abgeschätzt. Im Gegensatz dazu verwendet
der verbesserte MBE-Codierer typischerweise dasselbe Abschätzverfahren,
wie z.B. im
US-Patent Nr. 5 754
974 beschrieben, um alle Oberwellen abzuschätzen. Um
diesen Unterschied zu korrigieren, kompensiert der verbesserte MBE-Codierer
die stimmlosen und gepulsten Oberwellen (d.h. diejenigen Oberwellen
in einem Sprachband, das als stimmlos oder gepulst deklariert wird),
um die endgültigen
Spektralamplituden M
l folgendermaßen zu erzeugen:
M
l = M
l,n/[K·f
0]
(1/2) wenn die
l-te Oberwelle gepulst oder stimmlos ist; (1)
M
l =
M
l,n wenn die l-te Oberwelle stimmhaft ist
wobei
M
l,n die verbesserte Spektralamplitude nach
der Rauschunterdrückung
ist, K die FFT-Größe (typischerweise
K = 256) ist und f
0 die auf die Abtastrate
(8000 Hz) normierte Grundfrequenz ist. Die endgültigen Spektralamplituden M
l werden quantisiert, um Quantisiererwerte
b
2, b
3, ..., b
L+1 zu bilden, wobei L gleich der Anzahl von
Oberwellen im Datenblock ist. Schließlich wird eine FEC-Codierung
auf die Quantisiererwerte angewendet und das Ergebnis der Codierung
bildet den Ausgangsbitstrom aus dem verbesserten MBE-Codierer.
-
Der
vom verbesserten MBE-Codierer ausgegebene Bitstrom ist mit dem Standard-Vocoder des APCO Project
25 interoperierbar. Der Standard-Decodierer kann den vom verbesserten
MBE-Codierer erzeugten Bitstrom decodieren und Sprache mit hoher
Qualität
erzeugen. Im Allgemeinen ist die vom Standard-Decodierer erzeugte
Sprachqualität
besser, wenn ein verbesserter Bitstrom decodiert wird, als wenn
ein Standard-Bitstrom decodiert wird. Diese Verbesserung der Sprachqualität liegt
an den verschiedenen Aspekten des verbesserten MBE-Codierers, wie z.B.
Sprachaktivitätserfassung,
Tonerfassung, verbesserte MBE-Parameterabschätzung und
Rauschunterdrückung.
-
Die
Sprachqualität
kann weiter verbessert werden, wenn der verbesserte Bitstrom durch
einen verbesserten MBE-Decodierer decodiert wird. Wie in 2 gezeigt,
umfasst ein verbesserter MBE-Decodierer typischerweise eine Standard-FEC-Decodierung (Schritt 225),
um den empfangenen Bitstrom in Quantisiererwerte umzuwandeln. Im
Standard-Vocoder des APCO Project 25 enthält jeder Datenblock 4 [23,12]-Golay-Codes und
3 [15,11]-Hamming-Codes, die decodiert werden, um Bitfehler zu korrigieren
und/oder zu erkennen, die während
der Übertragung
aufgetreten sein können.
Der FEC-Decodierung folgt eine MBE-Parameterrekonstruktion (Schritt 230),
die die Quantisiererwerte in MBE-Parameter
für die
anschließende
Synthese durch die MBE-Sprachsynthese umwandelt (Schritt 235).
-
7 zeigt
ein spezielles MBE-Parameterrekonstruktionsverfahren 700.
Das Verfahren 700 umfasst eine Grundfrequenz- und Sprachrekonstruktion
(Schritt 705), gefolgt von einer Spektralamplitudenrekonstruktion
(Schritt 710). Als nächstes
werden die Spektralamplituden durch Entfernen einer angewendeten
Skalierung von allen stimmlosen und gepulsten Oberwellen invers
kompensiert (Schritt 715).
-
Die
resultierenden MBE-Parameter werden dann gegen Tabelle 1 geprüft, um festzustellen,
ob sie einem gültigen
Tondatenblock entsprechen (Schritt 720). Im Allgemeinen
wird ein Tondatenblock identifiziert, wenn die Grundfrequenz ungefähr gleich
einem Eintrag in Tabelle 1 ist, die Sprachbänder für die von Null verschiedenen
Oberwellen für
diesen Ton stimmhaft sind, alle anderen Sprachbänder stimmlos sind und die
Spektralamplituden für
die von Null verschiedenen Oberwellen, wie in Tabelle 1 für diesen
Ton festgelegt, über anderen
Spektralamplituden dominant sind. Wenn ein Tondatenblock durch den
decodierer identifiziert wird, werden alle anderen Oberwellen als
die festgelegten von Null verschiedenen Oberwellen gedämpft (20
dB Dämpfung
sind typisch). Dieser Prozess dämpft
die unerwünschten
Oberwellenseitenkeulen, die durch den im Vocoder verwendeten Spektralamplitudenquantisierer
eingeführt
werden. Die Dämpfung
der Seitenkeulen verringert das Ausmaß an Verzerrung und verbessert
die Wiedergabetreue im synthetisierten Tonsignal, ohne irgendeine
Modifikation am Quantisierer zu erfordern, wodurch die Interoperierbarkeit
mit dem Standard-Vocoder
aufrechterhalten wird. In dem Fall, in dem kein Tondatenblock identifiziert
wird, wird die Seitenkeulenunterdrückung nicht auf die Spektralamplituden
angewendet.
-
Als
Endschritt in der Prozedur 700 werden eine Spektralamplitudenverstärkung und
eine adaptive Glättung
durchgeführt
(Schritt 725). Mit Bezug auf 8 rekonstruiert
der verbesserte MBE-Decodierer die Grundfrequenz und die Sprachinformationen
aus den empfangenen Quantisiererwerten b0 und
b1 unter Verwendung einer Prozedur 800.
Anfänglich
rekonstruiert der Decodierer die Grundfrequenz aus b0 (Schritt 805). Der
Decodierer vergleicht dann die Anzahl von Sprachbändern aus
der Grundfrequenz (Schritt 810).
-
Als
nächstes
wird ein Test angewendet, um festzustellen, ob der empfangene Sprachquantisiererwert b1 einen Wert von Null aufweist, was auf den
stimmlosen Zustand aller hinweist (Schritt 815). Wenn ja,
dann wird ein zweiter Test angewendet, um festzustellen, ob der
empfangene Wert von b0 gleich einem der
reservierten Werte von b0 ist, die in der
Tabelle 2 enthalten sind, was darauf hinweist, dass die Grundfrequenz
zusätzliche
Informationen über
den Sprachzustand enthält
(Schritt 820). Wenn ja, dann wird ein Test verwendet, um
zu prüfen,
ob die Zustandsvariable ValidCount größer als oder gleich Null ist
(Schritt 830). Wenn ja, dann schlägt der Decodierer in Tabelle
2 die Kanalsprachentscheidungen entsprechend dem empfangenen Quantisiererwert
b0 nach (Schritt 840). Diesem folgt
ein Inkrementieren der Variable ValidCount bis zu einem Maximalwert
von 3 (Schritt 835), gefolgt von der Abbildung der Kanalentscheidungen
vom Tabellennachschlagen in Sprachbänder (Schritt 845).
-
In
dem Fall, dass b0 nicht gleich einem der
reservierten Werte ist, wird ValidCount auf einen Wert dekrementiert,
der nicht geringer ist als der Minimalwert von –10 (Schritt 825).
-
Wenn
die Variable ValidCount geringer als Null ist, wird die Variable
ValidCount auf bis zu einen Maximalwert von 3 inkrementiert (Schritt 835).
-
Wenn
irgendeiner der drei Tests (Schritte 815, 820, 830)
falsch ist, dann werden die Sprachbänder aus dem empfangenen Wert
von b1 rekonstruiert, wie für den Standard-Vocoder
in der Vocoder-Beschreibung des APCO Project 25 beschrieben (Schritt 850).
-
Mit
erneutem Bezug auf
2 synthetisiert der verbesserte
MBE-Decodierer, sobald die MBE-Parameter rekonstruiert sind, das
Ausgangssprachsignal (Schritt
235). Ein spezielles Sprachsyntheseverfahren
900 ist
in
9 gezeigt. Das Verfahren synthetisiert separate
stimmhafte, gepulste und stimmlose Signalkomponenten und kombiniert
die drei Komponenten, um die synthetisierte Ausgangssprache zu erzeugen.
Die stimmhafte Sprachsynthese (Schritt
905) kann das für den Standard-Vocoder
beschriebene Verfahren verwenden. Eine andere Methode faltet jedoch
eine Impulssequenz und eine Funktion einer stimmhaften Impulsantwort
und kombiniert dann das Ergebnis von benachbarten Datenblöcken unter
Verwendung von Fenster-Überlappung-Addition.
Die gepulste Sprachsynthese (Schritt
910) wendet typischerweise
dasselbe Verfahren an, um die gepulste Signalkomponente zu berechnen.
Die Details dieses Verfahrens sind von der gleichzeitig anhängigen
US-Anmeldung Nr. 10/046 666 ,
die am 16. Januar 2002 eingereicht wurde, beschrieben.
-
Die
stimmlose Signalkomponentensynthese (Schritt 915) beinhaltet
das Gewichten eines weißen Rauschsignals
und das Kombinieren von Datenblöcken
mit Fenster-Überlappung-Addition,
wie für
den Standard-Vocoder beschrieben. Schließlich werden die drei Signalkomponenten
zusammenaddiert (Schritt 920), um eine Summe zu bilden,
die das Ausgangssignal des verbesserten MBE-Decodierers bildet.
-
Man
beachte, dass, obwohl die beschriebenen Verfahren im Zusammenhang
mit dem Kommunikationssystem des APCO Project 25 und dem von diesem
System verwendeten Standard-MBE-Vocoder mit 7200 bps stehen, die
beschriebenen Verfahren leicht auf andere Systeme und/oder Vocoder
angewendet werden können.
Andere existierende Kommunikationssysteme (z.B. FAA NEXCOM, Inmarsat
und ETSI GMR), die Vocoder vom MBE-Typ verwenden, können beispielsweise
von den beschriebenen Verfahren profitieren. Außerdem können die beschriebenen Verfahren
auf viele andere Sprachcodiersysteme anwendbar sein, die mit anderen
Bitraten oder Datenblockgrößen arbeiten
oder ein anderes Sprachmodell mit alternativen Parametern verwenden
(z.B. STC, MELP, MB-HTC, CELP, HVXC oder andere) oder die andere
Verfahren zur Analyse, Quantisierung und/oder Synthese verwenden.
-
Andere
Implementierungen liegen innerhalb des Schutzbereichs der folgenden
Ansprüche.