DE4397106B4 - Schnelles auf einer Baumstruktur basierendes Verfahren zur Vektorquantisierung - Google Patents

Schnelles auf einer Baumstruktur basierendes Verfahren zur Vektorquantisierung Download PDF

Info

Publication number
DE4397106B4
DE4397106B4 DE4397106A DE4397106A DE4397106B4 DE 4397106 B4 DE4397106 B4 DE 4397106B4 DE 4397106 A DE4397106 A DE 4397106A DE 4397106 A DE4397106 A DE 4397106A DE 4397106 B4 DE4397106 B4 DE 4397106B4
Authority
DE
Germany
Prior art keywords
vector
codebook
candidate
tree structure
vectors
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
DE4397106A
Other languages
English (en)
Other versions
DE4397106T1 (de
Inventor
Alejandro Acero
Kai-Fu Saratoga Lee
Yen-Lu Saratoga Chow
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.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Application granted granted Critical
Publication of DE4397106B4 publication Critical patent/DE4397106B4/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/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Verfahren zum Konvertieren eines Kandidatenvektorsignals in ein Vektorquantisierungssignal, wobei das Kandidatenvektorsignal einen Kandidatenvektor mit mehreren Elementen und das Vektorquantisierungssignal einen Vektor eines Codebuches oder einen diesen Vektor kennzeichnenden Index darstellt,
wobei eine binäre Baumstruktur erzeugt wird, der die Codebuch-Vektoren zugeordnet werden,
wobei zum Konvertieren
– das Kandidatenvektorsignal einer Einrichtung zum binären Durchsuchen der Baumstruktur eingegeben wird,
– die binäre Baumstruktur bis zum Erreichen eines Blattknotens durchlaufen wird, wobei an jedem Zwischenknoten ein Vergleich ausgeführt und in Abhängigkeit vom Vergleichsergebnis ein Zweig ausgewählt wird, und
– in Abhängigkeit vom erreichten Blattknoten ein Codebuch-Vektor ausgewählt und ein entsprechendes Vektorquantisierungssignal erzeugt wird,
dadurch gekennzeichnet,
daß eine binäre Baumstruktur erzeugt wird, bei der jedem Zwischenknoten ein Schwellwert und eine Kennzeichnung eines ausgewählten Elements...

Description

  • Die Erfindung betrifft ein Verfahren zum Konvertieren eines Kandidatenvektorsignals in ein Vektorquantisierungssignal, wobei das Kandidatenvektorsignal einen Kandidatenvektor mit mehreren Elementen und das Vektorquantisierungssignal einen Vektor eines Codebuches oder einen diesen Vektor kennzeichnenden Index darstellt, wobei eine binäre Baumstruktur erzeugt wird, der die Codebuch-Vektoren zugeordnet werden, wobei zum Konvertieren
    • – das Kandidatenvektorsignal einer Einrichtung zum binären Durchsuchen der Baumstruktur eingegeben wird,
    • – die binäre Baumstruktur bis zum Erreichen eines Blattknotens durchlaufen wird, wobei an jedem Zwischenknoten ein Vergleich ausgeführt und in Abhängigkeit vom Vergleichsergebnis ein Zweig ausgewählt wird, und
    • – in Abhängigkeit vom erreichten Blattknoten ein Codebuch-Vektor ausgewählt und ein entsprechendes Vektorquantisierungssignal erzeugt wird.
  • Ferner betrifft die Erfindung eine Vorrichtung zum Konvertieren eines Kandidatenvektorsignals in ein Vektorquantisierungssignal.
  • Sprachcodiersysteme haben innerhalb der zur bandbreiteneffizienten Übertragung von Sprachsignalen verwendeten Stimm- bzw. Sprachcodierer/Decodierer (Vocoder)-Systeme einen langen Entwicklungsprozeß durchlaufen. Üblicherweise basierten die Vocoder auf einem abstrahierten Modell der menschlichen Stimme, das von einem Treibersignal und einem Satz von die Ressourcen der Sprechfolge modulierenden Filtern erzeugt wurde. Das Treibersignal kann entweder periodisch sein und die Höhe der Stimme des Sprechers darstellen oder zufällig und Rauschen, beispielsweise Reibelaute, darstellen. Das Stimmhöhensignal ist in erster Linie charakteristisch für den Sprecher (z.B. männlich oder weiblich), während die Filtereigenschaften eher die Art des Sprechens oder die in dem Sprachsignal ent haltenen Informationen angeben. Beispielsweise können Vocoder zeitlich variierende, Stimmhöhe und Filter beschreibende Parameter extrahieren, die übertragen und zur Rekonstruktion von Sprachdaten verwendet werden. Wenn die Filterparameter so verwendet werden, wie sie empfangen wurden, aber die Stimmhöhe geändert wird, ist das rekonstruierte Sprachsignal deutbar, jedoch ist die Sprechererkennung zerstört, da z.B. ein männlicher Sprecher klingen kann wie ein weiblicher Sprecher, wenn die Frequenz des Stimmhöhensignals erhöht wird. Daher sind für Vocodersysteme sowohl Anregungssignalparameter als auch Filtermodellparameter wichtig, da die Sprechererkennung normalerweise obligatorisch ist.
  • Ein als lineare, prediktive Codierung (LPC) bekanntes Verfahren der Sprachcodierung hat sich als dominierende Lösung zur Filterparameterextraktion von Vocodersystemen herausgestellt. Verschiedene unter der Bezeichnung LPC zusammengefaßte Filterparameterextraktionsverfahren wurden zur Beschreibung der Filtereigenschaften verwendet, die im wesentlichen gleiche Zeit- oder Frequenzbereichsparameter erzielen wurden. Es wird zum Beispiel auf Markel, J.D. und Gray, Jr., A.H., "Linear Prediction of Speech", Springer, Berlin, Heidelberg, New York, 1976 verwiesen.
  • Diese LPC-Parameter stellen ein zeitveränderliches Modell der Formanten oder Resonanzen der Stimmfolge (ohne Stimmhöhe) dar und werden nicht nur in Vocodersystemen, sondern auch in Spracherkennungssystemen verwendet, weil sie sprecherunabhängiger als das kombinierte oder rohe Sprachsignal sind, das Stimmhöhen- und Formantendaten enthält.
  • 1 ist ein Blockschaltbild des "front-end" eines Sprachverarbeitungssystems, das zur Verwendung in dem codierenden (sendenden) Teil eines Vocodersystems oder als Datenerfassungssubsystem für ein Spracherkennungssystem geeignet ist. (In dem Fall eines Vocodersystems wird außerdem ein Stimmhöhenextraktionssubsystem benötigt.)
  • Das akustische Sprachsignal wird vom Mikrofon 11 in ein elektrisches Signal umgewandelt und an einen Analog/Digital-Wandler (ADC) 13 zum Quantisieren der Daten üblicherweise mit einer Abtastrate von 16 kHz angelegt (ADC 13 kann außerdem ein Anti-Aliasing-Filter enthalten.). Die quantisierten, abgetasteten Daten werden an ein Vorverzerrungsfilter 15 mit einer einzigen Nullstelle zum "Weißmachen" des Spektrums angelegt. Das vorverzerrte Signal wird an eine Einheit 17 angelegt, die segmentierte Datenblöcke erzeugt, wobei jeder Block den angrenzenden Block um 50 % überlappt. Die Fenstereinheit 19 legt auf jeden von der Einheit 17 zur Verfügung gestellten Block ein Fenster an, das üblicherweise vom Hamming-Typ ist, um den spektralen Verlust zu steuern. Das Ausgangssignal wird von der LPC-Einheit 21 verarbeitet, die die LPC-Koeffizienten {ak} extrahiert, die beschreibend für den Stimmfolgeformanten sind. Alle Polfilter werden dargestellt von der z-Transformierten-Übertragungsfunktion
    Figure 00030001
    wobei A(z) = 1 + a1z–1 + a2z–2... +amz–m α ist ein Verstärkungsfaktor und üblicherweise ist 8 ≤ m ≤ 12.
  • Der Cepstral-Prozessor 23 führt eine Transformation an den LPC-Koeffizientenparametern {ak} aus, um unter Verwendung der folgenden iterativen Beziehung einen Satz von Cepstral-Koeffizienten äquivalenter Information zu erzeugen:
    Figure 00030002
    wobei a0 = 1 und ak = 0 für k > M. Der Satz Cepstral-Koeffizienten, {c(k)} definiert das Filter durch den Logarithmus der Filterübertragungsfunktion, bzw.:
    Figure 00030003
  • Für weitere Details wird auf Markel und Gray (siehe oben) verwiesen.
  • Das Ausgangssignal des Cepstral-Prozessors 23 ist ein Cepstral-Datenvektor, C = [c1 c2 ... cP], der an den VQ 20 zur Vektorquantisierung des Cepstral-Datenvektors C in einen VQ-Vektor Ĉ angelegt wird.
  • Aufgabe des VQ 20 ist es, die in dem Cepstral-Vektor C möglicherweise vorhandenen Freiheitsgrade zu reduzieren. Beispielsweise sind die P-Komponenten {ck} von C üblicherweise Gleitkommazahlen, so daß jede einen Wert in einem sehr großen (den Quantisierungsbereich des Ausganges des ADC 13 weit überschreitenden) Wertebereich annehmen kann. Diese Reduktion wird unter Verwendung eines durch die Speichereinheit 27 dargestellten relativ dünnen Codebuches erzielt, das den Vektorraum der Menge von C-Vektoren aufspannt. VQ-Zuordnungseinheit 25 vergleicht einen Cepstral-Eingangsvektor Ci mit der in der Einheit 27 gespeicherten Menge von Vektoren {Ĉj} und wählt den speziellen VQ-Vektor Ĉi = [ĉ1 ĉ2 ... ĉP]Ti ,der zu dem Cepstral-Vektor C am nächsten liegt. Die Nähe wird über ein Distanzmaß gemessen. Das übliche Distanzmaß ist von quadratischer Form: d (Ci, Ĉj) = (Ci – Ĉj)T W (Ci – Ĉj),wobei W eine positiv definite Wichtungsmatrix ist, für die oft die Einheitsmatrix I verwendet wird. Sobald der nächste Vektor Ĉj des Codebuches 27 gefunden ist, genügt der Index i, um ihn darzustellen. Wenn beispielsweise der Cepstral-Vektor C zwölf Komponenten hat, [c1 c2 ... c12]T, von denen jede aus einer 32-Bit-Gleitkommazahl besteht, wird somit der 384 Bits enthaltende C-Vektor typischerweise durch den Index i = 1, 2, ..., 256 ersetzt, der nur 8 Bits benötigt. Diese Kompression wird auf Kosten einer höheren Verzerrung (Fehlers) erzielt, die durch die Differenz zwischen den Vektoren Ĉ und C oder die Differenz zwischen den von Ĉ bzw. C dargestellten Signalformen wiedergegeben wird.
  • Es ist klar, daß die Erzeugung der Einträge in dem Codebuch 27 entscheidend für die Leistung des VQ 20 ist. In Linde, Y., Buzo, A. und Gray, R.M., "An Algorithm for Vektor Quantization," IEEE Trans. Commun., COM-28, No. 1 (Jan. 1980), pp. 84-95 wird ein üblicherweise verwendetes Verfahren beschrieben, das allgemein als LBG-Algorithmus bekannt ist. Es ist ein interaktives Verfahren, das eine anfängliche Trainingssequenz und einer Anfangsmenge von VQ-Codebuch-Vektoren benötigt.
  • 2 ist ein Flußdiagramm des grundlegenden LBG-Algorithmus. Das Verfahren beginnt im Schritt 90 mit einer Anfangsmenge von Codebuch-Vektoren, {Ĉj}0, und einer Menge von Trainingsvektoren, {Cti}. Die Komponenten dieser Vektoren stellen deren Koordinaten in dem mehrdimensionalen Vektorraum dar. In dem Codierschritt 92 wird jeder Trainingsvektor mit der Anfangsmenge von Codebuch-Vektoren verglichen und jedem Trainingsvektor wird der nächstliegende Codebuch-Vektor zugewiesen. Im Schritt 94 wird auf der Basis der Distanz zwischen den Koordinaten jedes Trainingsvektors und des diesem im Schritt 92 zugewiesenen Codebuch-Vektors ein Gesamtfehler berechnet. Im Prüfschritt 96 wird geprüft, ob der Gesamtfehler innerhalb annehmbarer Grenzen liegt, und, falls dies der Fall ist, endet das Verfahren. Falls dies nicht der Fall ist, geht das Verfahren mit dem Schritt 98 weiter, wo eine neue Menge von Codebuch-Vektoren, {Ĉj}k, erzeugt wird. Diese entsprechen den Schwerpunkten der Koordinaten jeder Untermenge von Trainingsvektoren, die vorher im Schritt 92 einem bestimmten Codebuch-Vektor zugeordnet worden sind. Das Verfahren geht dann für eine weitere Iteration mit dem Schritt 92 weiter.
  • 3 ist ein Flußdiagramm, das eine Variation des LBG-Trainingsalgorithmus zeigt, in dem die Größe des anfänglichen Codebuchs kontinuierlich verdoppelt wird, bis die gewünschte Codebuchgröße erreicht ist, wie von Rabine, L., Sondhi, M. und Levinson S. beschrieben wurde in: "Note on the Properties of a Vektor Quantizer for LPC Coefficients", BSTJ, Vol. 62, No,. 8, Oct. 1983 pp. 2603-2615. Das Verfahren beginnt mit dem Schritt 100 und geht beim Schritt 102 weiter, wo zwei (M=2) Kandidaten-Codevektoren (Schwerpunkte) gebildet werden. In dem Schritt 104 wird jeder Vektor der Trainingsmenge {T} dem nächsten Kandidaten-Codevektor zugeordnet, und dann wird der mittlere Fehler (Verzerrung, d(M)) mit Hilfe der Kandidatenvektoren und der angenommenen Zuordnung der Trainingsvektoren zu M Anhäufungen berechnet. Im Schritt 108 wird die normierte Differenz zwischen der berechneten mittleren Verzerrung d(M) und der vorher berechneten mittleren Verzerrung dold gebildet. Wenn die normierte Differenz einen vorgegebenen Schwellwert ε überschreitet, wird dold gleich d(M) gesetzt, ein neuer Kandidaten-Schwerpunkt im Schritt 112 berechnet, und eine neue Iteration wird in den Schritten 104, 106 und 108 durchgeführt. Wenn der Schwellwert überschritten wird, was einen signifikanten Anstieg der Verzerrung oder der Divergenz gegenüber der vorangegangenen Iteration anzeigt, werden die vorher berechneten Schwerpunkte im Schritt 112 gespeichert. Wenn der Wert von M kleiner ist als der größte eingestellte Wert M*, leitet der Prüfschritt 114 das Verfahren zu dem Schritt 116 voran, wo M verdoppelt wird. Im Schritt 118 werden die im Schritt 112 zuletzt berechneten vorhandenen Schwerpunkte geteilt, und dann geht es bei dem Schritt 104 mit einer neuen Menge von geschlossenen Iterationen weiter. Wenn die benötigte Anzahl von Schwerpunkten (Codebuch-Vektoren) = M* ist, führt Schritt 114 zur Beendigung des Verfahrens.
  • Die vorliegende Erfindung kann mit anderen ein VQ-Codebuch erzeugenden (Trainings-)Verfahren ausgeführt werden, die auf Distanzmaßen basieren. Beispielsweise beschreiben Bahl et al. einen "überwachten VQ", wobei die Codebuch-Vektoren (Schwerpunkte) derart gewählt werden, daß sie phonetischen Merkmalen am besten entsprechen (Bahl, I.R., et al., "Large Vocabulary National Language Continuous Speech Recognition", Proceeding of the IEEE CASSP 1989, Glasgow). Auch das k-Mittel-Verfahren oder eine Variante davon können verwendet werden, bei dem eine Anfangsmenge von Schwerpunkten aus weit auseinanderliegenden Vektoren der Trainingssequenz gewählt wird (Grey, R.M., "Vektor Quantization", IEEE ASSP Magazine, April 1984, Vol. 1, No. 2, p. 10).
  • Sobald eine "Trainings-"Prozedur, wie oben kurz dargestellt, zur Erzeugung eines VQ-Codebuches verwendet wurde, kann dieses zur Datencodierung verwendet werden.
  • Bei einem Spracherkennungssystem, wie dem SPHINX-System, das in Lee, K., "Automatic Speech Recognition, The Development of the SPHINX System", Kluwer Academic Publishers, Boston/Dordrecht/London, 1989, beschrieben ist, enthält das VQ-Codebuch beispielsweise 256 Vektoreinträge. Jeder Cepstral-Vektor hat 12 Komponentenelemente.
  • Der Vektorcode, der von dem VQ 20 zugewiesen werden soll, wird dadurch in geeigneter Weise bestimmt, daß die Distanz zwischen dem Codebuch-Vektor Ĉj und dem Kandidaten-Vektor Ci gemessen wird. Das verwendete Distanzmaß ist die ungewichtete (W=1) euklidische quadratische Form d(Ci, Ĉj) = (Ci – Ĉj)T·(Ci – Ĉj)die wie folgt ausgeschrieben werden kann: d(Ci, Ĉj) = Ci T·Ci + Ĉj T·Ĉj – 2Ĉj T·Ci
  • Wenn die zwei Vektormengen {Ci} und {Ĉj} normiert sind, so daß Ci T·Ci und Ĉj T·Ĉj für alle i und j feste Werte sind, ist die Distanz minimal, wenn Ĉj T·Ci maximal ist. Die wesentliche Berechnung zum Auffinden des Wertes Ĉj, der d(Cij) minimiert, ist daher der wert von j, der
    Figure 00070001
    maximiert.
  • Jeder Vergleich erfordert die Berechnung von 12 Produkten und 11 Summen. Folglich erfordert ein voller Suchbefehl der Cepstral-Vektortabelle 12 × 256 = 3072 Multiplikationen und fast ebenso viele Additionen. Diese Menge von Multiplikationen/Additionen muß normalerweise mit einer Rate von 100/Sekunde ausgeführt werden, wobei dies ungefähr 3 × 105 Multiplizier/Addieroperationen pro Sekunde entspricht. Außerdem können Spracherkennungssysteme, wie z.B. SPHINX, mehrere VQ-Einheiten für zusätzliche Vektorvariablen, wie z.B. Leistungs- und Differential-Cepstrum, aufweisen, wodurch ungefähr 106 Multiplizier/Addieroperationen pro Sekunde benötigt werden. Diese Prozeßanforderung schafft einen starken Bedarf an VQ-Codierverfahren, die wesentlich weniger Verarbeitungsressourcen benötigen.
  • Aufgabe der Erfindung ist es, den Rechenaufwand bei einem Verfahren der eingangs genannten Art zu verringern.
  • Die Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 bzw. eine Vorrichtung mit den Merkmalen des Anspruchs 8 gelöst.
  • Vorteilhafte und/oder bevorzugte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
  • Die vorliegende Erfindung ist zur Veranschaulichung und nicht zur Einschränkung in den Figuren der beiliegenden Zeichnung dargestellt, wobei in den Zeichnungen gleiche Bezugszeichen ähnliche Elemente kennzeichnen und in welchen:
  • 1 ein Blockschaltbild eines typischen Sprachverarbeitungs-Subsystems zur Erfassung und Vektorquantisierung von Sprachdaten zeigt.
  • 2 zeigt ein Flußdiagramm für den zum Training eines VQ-Codebuches verwendeten LBG-Algorithmus.
  • 3 zeigt ein Flußdiagramm eines anderen LBG-Trainingsprozesses zur Erzeugung eines VQ-Codebuches.
  • 4 zeigt ein Beispiel für eine Suche mittels einer binären Baumstruktur.
  • 5 zeigt ein Flußdiagramm für eine Suche mittels einer binären Baumstruktur.
  • 6 zeigt ein Beispiel eines Codebuch-Histogramms.
  • 7 zeigt Beispiele der Trennung eines zweidimensionalen Raums durch lineare Hyperebenen.
  • 8 zeigt Beispiele für den Fehlversuch von einfachen linearen Hyperebenen, Menge im zweidimensionalen Raum zu separieren.
  • 9 zeigt ein Flußdiagramm des Verfahrens zur Erzeugung von VQ-Codebuch-Histogrammen.
  • 10 zeigt ein Flußdiagramm des schnellen Baumstruktur-Suchverfahrens zur VQ-Codierung.
  • 11 zeigt ein Flußdiagramm, das ein inkrementales Distanzvergleichsverfahren zum Auswählen des VQ-Codes darstellt.
  • 12 zeigt eine Einrichtung zur schnellen Baum-basierten Vektorquantisierung.
  • DETAILLIERTE BESCHREIBUNG
  • Es wird ein VQ-Verfahren zum Codieren von Vektorinformationen mit Hilfe eines Codebuches beschrieben, das auf eine Baumstruktur basiert, die aus einfachen 1-Variablen-Hyperebenen aufgebaut ist, wobei das Verfahren nur einen einzigen Vergleich an jedem Knoten erfordert. Im Gegensatz dazu erfordert die Verwendung von Mehrvariablen-Hyperebenen jeweils Vektorpunktprodukte des Kandidaten-Vektors und des den Schwerpunkt des Knotens darstellenden Vektors.
  • VQ-Zerlegungsverfahren basieren auf einem Codebuch (Speicher), das die Koordinaten von Schwerpunkten einer begrenzten Gruppe von charakteristischen Vektoren enthält. Die Koordinaten beschreiben den Schwerpunkt von Datenclustern, der mit Hilfe der Trainingsdaten bestimmt wird, die von einem Algorithmus, wie z.B. dem in den 2 und 3 beschriebenen, verarbeitet werden. Die Position des Schwerpunktes ist durch einen Vektor dargestellt, dessen Elemente die gleiche Dimension haben wie die Vektoren, die beim Training verwendet wurden. Ein auf einer binären Baumstruktur basierendes Trainingsverfahren erzeugt einen Codebuch-Vektorsatz mit einer binären Anzahl 2L von Vektoren, wobei L die Anzahl von Ebenen in der binären Baumstruktur angibt.
  • Wenn die VQ-Codierung die inhärente, durch die Qualität und Quantität der Trainingsdaten bestimmte Genauigkeit des Codebuches aufrechterhalten soll, sollte jeder Kandidaten-Vektor, der zur VQ-Codierung vorgelegt wird, mit jedem der 2L-Codebuch-Vektoren verglichen werden, um den nächstliegenden Codebuch-Vektor aufzufinden. Wie im vorangegangenen erörtert wurde, kann die mit dem Auffinden des nächstliegenden Codebuch-Vektors verbundene Rechenbelastung jedoch unannehmbar sein. Infolgedessen wurden Short-cut- bzw. Direktverfahren entwickelt, die, so hofft man, zu einer wirksameren Codierung ohne einen unannehmbaren Verzerrungs(Fehler)anstieg führen sollten.
  • Eine als binäre Baumstruktur-Suche bekannte Codierprozedur wird zur Verringerung der Anzahl von Vektorpunktprodukten von 2L auf L verwendet, (Gray, R.M. "Vektor Quantization", IEEE ASSP Magazine, Vol. 1, No. 2, April 1984, pp. 11-12). Die Prozedur kann anhand des binären Baumes der 4 erklärt werden, in der die Knoten mit (l,k) indiziert sind, wobei l der Ebene und k der jeweiligen Position des Knotens von links nach rechts entspricht.
  • Wenn das Codebuch trainiert wird, werden Schwerpunkte für jeden Knoten des binären Baumes gebildet. Diese intermediären Schwerpunkte werden zur späteren Verwendung gemeinsam mit der für das Codebuch verwendeten endgültigen Menge von 2L Schwerpunkten gespeichert.
  • Wenn ein Kandidaten-Vektor zur VQ-Codierung vorgelegt wird, wird der Vektor gemäß der Topologie des binären Baumes verarbeitet. In der Ebene 1 wird der Kandidaten-Vektor mit den zwei Schwerpunkten der Ebene 1 verglichen und der nächste Schwerpunkt wird ausgewählt. Der nächste Vergleich wird in der Ebene 2 zwischen dem Kandidaten-Vektor und den zwei mit dem ausgewählten Schwerpunkt der Ebene 1 verbundenen Schwerpunkten ausgeführt. Wiederum wird der nächste Schwerpunkt ausgewählt. Bei jeder nachfolgenden Ebene wird eine ähnliche binäre Entscheidung getroffen, bis die letzte Ebene erreicht ist. Der endgültige Schwerpunktindex (k = 0, 1, 2, ..., 2L – 1) stellt den dem Kandidaten-Vektor zugeordneten VQ-Code dar. Die fettgedruckten Zweige des Graphen zeigen einen möglichen Pfad für das 4-Ebenen-Beispiel.
  • Das Flußdiagramm gemäß 5 gibt eine detailliertere Beschreibung des Baumstruktur-Suchalgorithmus. Das Verfahren beginnt bei dem Schritt 200 mit dem Setzen der Schwerpunktindizes (l, k) auf (1, 0). Im Schritt 202 wird die Distanz zwischen dem Kandidaten-Vektor und den zwei benachbarten in der Ebene 1 an den Positionen k und k + 1 angeordneten Schwerpunkten berechnet. Im Schritt 204 wird der nächste Schwerpunkt bestimmt und der k-Index in den Schritten 206 und 208 in Abhängigkeit von dem Ergebnis des Prüfschrittes 204 inkrementiert. Im Schritt 210 wird der Ebenen-Index l um Eins erhöht und im Schritt 212 wird geprüft, ob die letzte Ebene, L, verarbeitet wurde. In diesem Fall endet das Verfahren; andernfalls werden die neuen (l, k)-Indizes zu dem Schritt 202 zurückgegeben, bei dem ein weiterer Iterationsschritt beginnt.
  • Wichtig ist, daß die obige Baumstruktur-Suchprozedur für ein Codebuch mit 2L-Einträgen nach L-Schritten beendet ist. Dies führt zu einer beträchtlichen Verringerung der Anzahl der Vektorpunktproduktoperationen von 2L auf 2L. Das bedeutet für das Codebuch mit 256 Einträgen eine Verringerung von 16 zu eins. Bezogen auf die Multiplizier/Addier-Operationen für jede Codieroperation bedeutet dies eine Verringerung von 3.072 auf 192.
  • Eine wesentlich bedeutendere Verbesserung der Verarbeitungseffizienz kann bei Verwendung der folgenden erfinderischen Berechnungsprozedur in Verbindung mit einem zur Erzeugung des VQ-Codebuches verwendeten, auf einer Standarddistanz basierenden Trainingsverfahren erzielt werden.
    • 1. Konstruiere ein Codebuch mit binärer Baumstruktur gemäß einem Standardverfahren, beispielsweise gemäß dem zuvor beschriebenen Verfahren.
    • 2. Untersuche nach der Bestimmung des Schwerpunktes jedes Knotens in dem Baum die Elemente des Trainingsvektors und bestimme, welcher Vektorelementwert, falls er als Entscheidungskriterium für eine binäre Aufteilung verwendet würde, die Trainingsvektormenge am gleichmäßigsten teilen würde. Das jedem Knoten zugeordnete, ausgewählte Element wird festgehalten und zusammen mit seinem kritischen Schwellwert, der die Anhäufung in zwei mehr oder weniger gleiche Mengen teilt, gespeichert.
    • 3. Wende auf die zur Bildung des Codebuches verwendeten Trainingsvektoren einen neuen binären Entscheidungsbaum an, bei dem die auf dem Schwerpunkt des Knotens basierende binäre Entscheidung durch Schwellwertentscheidungen ersetzt ist. Für jeden Knoten hat der obige Schritt 2 einen Schwellwert einer ausgewählten Kandidaten-Vektorkomponente gebildet. Dieser Schwellwert wird mit dem entsprechenden Vektorelementwert jedes Trainingskandidaten verglichen und die binäre Sortierentscheidung wird dementsprechend getroffen, wobei zur nächsten Ebene der Baumstruktur weitergegangen wird.
    • 4. Da dieses Schwellwertcodierungsverfahren suboptimal ist, ist es möglich, daß jeder Trainingsvektor nicht dem gleichen binären Entscheidungspfad folgt, dem in dem ursprünglichen Trainingszyklus gefolgt wurde. Folglich wird jedesmal, wenn ein zu einer gegebenen, von der ursprünglichen Trainingsprozedur bestimmten Menge gehöriger Trainingsvektor von dem binären Baum auf Schwellwertbasis klassifiziert wird, seine "wahre" oder korrekte Klassifizierung festgehalten, in welchem Fach auch immer er schließlich endet. Auf diese Weise wir ein Histogramm erzeugt und mit jedem der Codebuch-Indizes (Nummern der Endzweige der Baumstruktur oder "Blatt"-Knoten) verknüpft, das die Anzahl der Mitglieder jede Menge anzeigt, die von der binären Baumstruktur-Schwellwertprozedur als zu diesem Blattknoten gehörig klassifiziert wurden. Diese Histogramme geben die Wahrscheinlichkeit an, mit der ein vorgegebener Kandidaten-Vektor, der zu dem Index q gehört, als zu q' gehörig klassifiziert werden kann.
  • Die 6(a) und (b) zeigen zwei hypothetische Histogramme, die aus dem q-ten Codebuch-Index resultieren könnten. Das Histogramm in 6(a) ist um den Index q konzentriert. Mit anderen Worten, die meisten als zu der Menge q gehörig qualifizierten Vektoren waren Mitglieder von q, wie es der Zählwert von 60 anzeigt. Jedoch zeigt der Zählwert von 15 in dem Histogrammfach q – 1 an, daß 15 Trainingsvektoren der Menge q – 1 als zu der Menge q gehörig klassifiziert wurden. Ähnlich wurden 10 zu der Trainingsvektormenge q + 1 gehörige Vektoren als zu der Menge q gehörig klassifiziert. Ein Histogramm mit einer engen Verteilung, wie in 6(a), zeigt an, daß die Anhäufungen fast vollständig in dem mehrdimensionalen Vektorraum durch einfache orthogonale lineare Hyperebenen voneinander trennbar sind, anstelle durch lineare Hyperebenen voller Dimensionalität.
  • Dieses Konzept ist für einen zweidimensionalen Vektorraum in den 7(a) und (b) dargestellt. 7(a) zeigt vier Vektormengen (A, B, C und D) in der zweidimensionalen (x1,x2)-Ebene, die durch zwei einzelne Zahlen x1 = a und x2 = b aufgeteilt werden können, die durch die zwei zueinander senkrechten geraden durch x1 = a bzw. x2 = b laufenden Linien dargestellt sind. Diese Linien entsprechen zwei einfachen linearen Hyperebenen im zweidimensionalen Vektorraum. 7(b) zeigt vier Gruppen (A, B, C und D), die nicht durch einfache zweidimensionale Hyperebenen getrennt werden können, sondern die Verwendung von vollständig zweidimensionalen Hyperebenen erfordern, dargestellt durch x2 = (x2'/x1')x1 + x2' und x2 = x1.
  • Das Histogramm der 6(b) für den q-ten Codebuch-Index bedeutet, daß die Trainingsvektormenge durch eine einfache eindimensionale Vorgabe von linearen Hyperebenen nicht getrennt werden kann. Das q-te Histogramm zeigt an, daß kein zur Menge q gehöriger Trainingsvektor von der binären Baumstruktur-Schwellwertprozedur als Mitglied von q klassifiziert wurde.
  • Die 8(a) und (b) zeigen zweidimensionale Beispiele der Histogramme der 6(a) bzw. (b). Beispielsweise führen die besten zur Trennung der vier Sätze (A, B, C und D) verwendeten vertikalen oder horizontalen Linien zur Fehlklassifikation, wie beispielsweise durch die Überlappung der Untermengen A und C angezeigt wird. In 8(b) würden bei Verwendung des gleichen orthogonalen Satzes von zweidimensionalen Hyperebenen (x1 = a, x2 = b) die Mengen A und B der gleichen Menge zugeordnet, wobei eine der vier Untermengen leer bliebe mit der Ausnahme, daß einige Mitglieder der Untermenge D in die ansonsten leere Menge fielen.
  • Auf diese Weise wird ein neues Codebuch erzeugt, in welchem der Codebuch-Index eine Vektorverteilung anstelle eines einzigen Vektors darstellt, dargestellt von einem einzigen Schwerpunkt. Die Normierung der Histogrammzählwerte durch Division jedes Zählwertes durch die Gesamtanzahl der Zählwerte in jeder Vektormenge führt für jeden Codebuch-Index zu einer empirischen Wahrscheinlichkeitsverteilung.
  • 9 ist ein Flußdiagramm für die Codebuch-Histogrammerzeugung, die mit dem Schritt 300 beginnt, in dem die Indizes j und i initialisiert werden. Im Schritt 302 wird ein Codebuch mit einer binären Anzahl von Einträgen mit Hilfe eines beliebigen verfügbaren Verfahrens auf der Basis eines Distanzwertes gebildet. Im Schritt 304 wird ein Knotenparameter und ein Knotenschwellwert für jeden Knoten des binären Baumes aus dem Knotenschwerpunktvektor ausgewählt. Im Schritt 306 wird der Trainingsvektor der Untermenge j (alle Vektoren, die zu dem Codebuch-Index j gehören) herangeholt, und ein schneller Baumsuchalgorithmus wird im Schritt 308 ausgeführt. Das Ergebnis des Schrittes 308 wird im Schritt 310 dadurch verwendet, daß das geeignete Fach (Blattknoten) des dem letzten VQ-Index zugeordneten Histo gramms inkrementiert wird. Im Schritt 312 wird der Index inkrementiert und im Schritt 314 wird geprüft, ob alle Trainingsvektoren des Schrittes j verwendet wurden. Falls nicht, springt der Prozeß für eine weitere Iteration zu dem Schritt 306 zurück. Falls alle Mitgliedsvektoren des Trainingsschrittes j ausgenutzt wurden, inkrementiert der Schritt 316 den Index j und setzt ij zurück. Im Testschritt 318 wird geprüft, ob alle Trainingsvektoren verwendet wurden und, falls nicht, wird zum Schritt 306 zurückgesprungen. Ansonsten endet der Prozeß.
  • Nach der Erzeugung dieses Codebuches von Vektorverteilungen kann es zur VQ-Codierung von neuen Eingangsdaten verwendet werden.
  • Eine schnelle Baumsuch-Codierungsprozedur würde der gleichen in 4 gezeigten binären Baumstruktur folgen. Ein Kandidaten-Vektor würde in der Ebene 0 untersucht, und der zugehörige Vektorelementwert würde mit dem vorgegebenen Schwellwert der Ebene 0 verglichen und dann zu dem geeigneten nächsten Knoten (Ebene 1) weitergeleitet werden, wo eine ähnliche Untersuchung und ein ähnlicher Vergleich zwischen dem vorgegebenen Schwellwert und dem Wert des dem Knoten der Ebene 1 entsprechenden, vorgegebenen Vektorelementes durchgeführt würde. Eine zweite binäre Aufteilungsentscheidung wird durchgeführt, und dann geht der Prozeß bei der Ebene 2 weiter. Dieser Prozeß wird für ein Codebuch mit 2L Indizes L-mal wiederholt. Auf diese Weise kann eine vollständige Suche durch L einfache Vergleiche und ohne Multiplizier/Addieroperationen durchgeführt werden.
  • Nach Erreichen der End- oder Blattknoten der L-ten Ebene des binären Suchprozesses hat das codierte Ergebnis die Form eines Histogramms, wie es oben beschrieben wurde. An dieser Stelle wird eine Entscheidung hinsichtlich des am besten geeigneten Histogrammindexes dadurch ausgeführt, daß die Distanz zwischen dem Kandidaten-Vektor und den Schwerpunkten der nicht Null gesetzten Indizes (Blätter) des Histogramms berechnet werden und der VQ-Codebuch-Index ausgewählt wird, der dem nächsten Schwerpunkt entspricht.
  • Die schnelle Baumsuche wird in dem Flußdiagramm der 10 beschrieben. Der Ebenenindex l und der Knotenzeilenindex k der binären Baumstruktur werden im Schritt 400 initialisiert. Im Schritt 402 werden die Elemente e(l,k) aus dem VQ-Kandidaten-Vektor ausgewählt, die mit dem vorausgewählten Knotenschwellwert T(l,k) korrespondieren. Im Schritt 404 wird e(l,k) mit T(l,k) verglichen, und wenn e(l,k) größer als der Schwellwert ist, wird im Schritt 406 der Wert von k verdoppelt; falls nicht, wird im Schritt 408k verdoppelt und inkrementiert. Der Index l wird im Schritt 410 inkrementiert. Der Schritt 412 bestimmt, ob alle vorgegebenen Ebenen (L) der binären Baumstruktur durchsucht wurden und springt, falls nicht, zur weiteren Iteration zum Schritt 402 zurück. Ansonsten wird im Schritt 414 der VQ-Codebuch-Index durch Berechnung der Distanz zwischen dem Kandidaten-Vektor und den Schwerpunkten der Ungleich-Null-Indizes (Blätter) des Histogramms ausgewählt. Es wird der nächst befindliche, den Histogrammfach-Indizes (Zweigen) entsprechende Schwerpunkt ausgewählt. Der Prozeß wird dann beendet.
  • Eine zusätzliche Variante ermöglicht ein Auswählen zwischen einerseits mehr internen Knoten mit feineren Unterteilungen (wobei dies zu weniger Zweighistogrammen und somit zu weniger Distanzvergleichen führt) und andererseits weniger internen Knoten mit gröberen Unterteilungen und mehr Histogrammen. Für Maschinen, in denen Distanzvergleiche kostenaufwendig sind, würde daher ein kleinerer Baum mit weniger internen Knoten bevorzugt.
  • Eine weitere Auslegungsmöglichkeit beinhaltet das Abwägen zwischen Speicher- und Codierungsgeschwindigkeit. Größere Bäume wären sicherlich schneller, jedoch erfordern sie mehr Speicher für interne Knotenschwellwert-Entscheidungswerte.
  • Ein weiteres Ausführungsbeispiel, das den Schritt 414 der 10 betrifft, verwendet den Histogrammzählwert, um die Reihenfolge herzustellen, in der die Schwerpunktabstände berechnet werden. Der dem Zweig mit dem höchsten Histogrammzählwert entsprechende Schwerpunkt wird als erstes als ein möglicher Code gewählt und die Distanz zwischen ihm und dem zu codierenden Kandidaten-Vektor wird berechnet und gespeichert. Die Distanz zwischen dem Kandidaten-Vektor-Schwerpunkt und dem Schwerpunkt des Codebuch-Vektors des Faches mit dem nächsthöheren Histogrammzählwert wird stufenweise berechnet. Der Zuwachs des Teilabstandes zwischen dem Kandidaten-Vektor C und dem Codebuch-Zweig-Vektor Ĉ j wird wie folgt berechnet:
    1. Schritt: Dj1 = f|c1 – ĉ j1|
    2. Schritt: Dj2 = f|c1 – ĉ j1| + f|c2 – ĉ j2|
    ...
    n. Schritt: Djn = f|c1 – ĉ j1| + f|c2 – ĉ j2| + ... + f|ck – ĉjn|
    ...
    N. Schritt:
    Figure 00180001
    wobei der Kandidaten-Vektor C = [c1 c2 ... cN], der Codebuch-Zweig-Vektor ĉ j = [ĉ j1 ĉ j2 ... ĉ jN], und f|·| eine geeignete Abstandsfunktion ist. Nach jeder schrittweisen Distanzberechnung wird ein Vergleich zwischen der berechneten Distanz Den des zweiten Schritts und der Distanz Dmin – D1 zwischen dem Kandidaten-Vektor C und dem Zweig-Vektor C1 mit dem höchsten Histogrammzählwert ausgeführt, wobei
    Figure 00180002
    Wenn der Wert Dmin überschritten wird, wird die Berechnung unterbrochen, da jeder zusätzliche Distanzbeitrag, f|cn – ĉjn| größer gleich Null ist. Wenn die Berechnung beendet ist und die berechnete Distanz kleiner als D1 ist, ersetzt D2 D1 (Dmi n = D2) als minimale Testdistanz. Nach dem Distanzvergleich für den Vektor Ĉ2 wird der Prozeß für den nächsten Codebuch-Zweig-Vektor in absteigender Reihenfolge hinsichtlich des Programmzählwertes wiederholt. Es sei angemerkt, daß nicht die tatsächlichen Histogramme gespeichert werden müssen, sondern nur die Reihenfolge der Zweig-Vektoren in absteigender Histogrammzählwert-Reihenfolge. Es wird der der letzten Minimaldistanz, Dmin entsprechende Codebuch-Vektor, ausgewählt. Mit Hilfe des schrittweisen Distanzverfahrens kann der Benutzer zusätzliche Recheneffizienz erzielen.
  • 11 ist ein Flußdiagramm, das die Berechnung des nächstliegenden Codebuch-Zweig-Schwerpunktes darstellt, wie er für den Schritt 414 der 10 benötigt wird.
  • Der Prozeß beginnt mit dem Schritt 500, in dem der Kandidaten-Vektor C, die Menge der Codebuch-Endzweig-Schwerpunkte {Ĉ j}, der Distanzzuwachs-Index n = 1, der Zweigindex j = 1, die Anzahl der Vektorelemente N und die Anzahl der Zweig-Schwerpunkte J vorgegeben werden. Im Schritt 502 wird die Distanz zwischen dem ranghöchsten (mit höchstem Histogrammzählwert) Zweigschwerpunkt C (j = 1) und dem Kandidaten-Vektor C berechnet und gleich Dmin gesetzt. Im Schritt 504 wird überprüft, ob alle Zweig-Schwerpunkte ausgenutzt wurden. Wenn dies der Fall ist, endet der Prozeß und der Wert von j entspricht dem Zweigindex des nächsten Schwerpunktes. Der Codebuch-Index des nächsten Schwerpunktes wird als VQ-Code des eingegebenen Vektors genommen.
  • Wenn nicht alle Schwerpunkte genutzt sind, wird im Schritt 506 j inkrementiert und die inkementale Distanz Djn im Schritt 508 berechnet. Im Schritt 510 wird Djn mit Dmin verglichen, und wenn Djn kleiner ist, geht es mit dem Schritt 512 weiter, indem der Inkrementindex überprüft wird. Wenn n kleiner ist als die Anzahl der Vektorelemente, N, wird der Index n im Schritt 514 inkrementiert und der Prozeß kehrt zu dem Schritt 508 zurück.
  • Wenn im Schritt 512 n = N ist, geht der Prozeß zum Schritt 516, wo Dmin gleich Dj gesetzt wird, was eine neue Minimaldistanz, entsprechend dem Zweigschwerpunkt j anzeigt, und der Prozeß kehrt zu dem Schritt 506 zurück.
  • Wenn Djn größer als Dmin ist, wird die Berechnung der Zusatzdistanz beendet und der Prozeß kehrt für eine weitere Iteration zum Schritt 506 zurück.
  • 12 zeigt ein System zur schnellen Baumstruktur-Vektorquantisierung. Der Kandidaten-Vektor, der klassifiziert werden soll, wird an die Eingangsanschlüsse 46 angelegt und in der Latch-Schaltung 34 für die Dauer der Zerlegungsoperation zwischengespeichert. Der Ausgang der Latch-Schaltung 34 ist mit der Auswahl- bzw. Selektoreinheit 38 gekoppelt, deren Ausgangssignal von der Steuereinrichtung 40 gesteuert wird. Die Steuereinrichtung 40 wählt einen vorgegebenen Vektorelementwert, e(l,k), des Eingangs-Kandidaten-Vektors zum Vergleich mit einem zugehörigen gespeicherten Schwellwert T(l,k) aus.
  • Das Ausgangssignal des Komparators 36 ist ein Index k, der gemäß den Schritten 404, 406 und 408 der 10 von dem relativen Wert von e(l,k) und T(l,k) bestimmt wird. Die Steuereinrichtung 40 empfängt das Ausgangssignal des Komparators 36 und erzeugt einen Befehl für den Schwellwert- und Vektorparameter-Kennsatzspeicher 30, der die Position des nächsten Knotens bei der binären Suche durch das Indexpaar (l,k) angibt, wobei l die binäre Baumebene angibt und k den Index des Knotens in der Ebene l. Der Speicher 30 liefert den nächsten Schwellwert T(l,k) für den Komparator 36 und den zugehörigen Vektorelementindex, e, der von der Steuereinrichtung 40 unter Verwendung des Selektors 38 zur Auswahl des zugehörigen Elementes des Kandidaten-Vektors e(l,k) verwendet wird.
  • Nach dem Erreichen der niedrigsten Ebene L des binären Baumes, adressiert die Steuereinrichtung 40 den Inhalt des Codebuch-Zweig-Schwerpunkt-Speichers 32 an eine (L,K) entsprechende Adresse und versorgt den Minimaldistanz-Komparator/Selektor 42 mit der Menge der mit dem binären Baumknoten (L,k) verbundenen Codebuch-Zweig-Schwerpunkte. Die Steuereinrichtung 40 inkrementiert den Steuerindex j, der die Mitglieder der Menge der Codebuch-Zweig-Schwerpunkte sequentiell auswählt. Der Komparator/Selektor 42 berechnet die Distanz zwischen den Codebuch-Zweig-Schwerpunkten und dem Eingangs-Kandidaten-Vektor und wählt dann den nächsten Codebuch-Zweig-Schwerpunkt-Index als den VQ-Code aus, der dem Kandidaten-Eingangsvektor entspricht. Die Steuereinrichtung 40 liefert außerdem Steuersignale, um den Distanzzuwachs für den Komparator/Selektor 42 zu indizieren.
  • Eine weitere Variante des schnellen Baumstruktur-Suchverfahrens enthält das "Wegkürzen" der Mitglieder des Histogramms mit niedrigem Zählwert, und zwar mit der Rechtfertigung, daß ihr Auftreten sehr unwahrscheinlich ist und deshalb keinen wichtigen Beitrag zu dem erwarteten VQ-Fehler liefert.
  • Die Bedeutung des schnellen Suchens nach dem nächsten Schwerpunkt in einem Codebuch nimmt zu, wenn berücksichtigt wird, daß Sprachsysteme mehrere Codebücher aufweisen können. Lee (siehe oben) beschreibt ein Mehrfach-Codebuch-Spracherkennungssystem, in dem drei Codebücher verwendet werden: ein Cepstral-Codebuch, ein differenziertes Cepstral-Codebuch und ein kombiniertes Leistungs- und Differenzierte-Leistung-Codebuch. Folglich steigen die Verarbeitungsanforderungen direkt proportional zu der Anzahl der verwendeten Codebücher.
  • Das beschriebene schnelle Baumstruktur-VQ-Verfahren wurde auf einem SPHINX-System getestet, und die Ergebnisse waren besser als die mit einem konventionellen binären Baumsuch-VQ-Algorithmus erzielten Ergebnisse. Typische Verzerrungswerte sind unten für drei verschiedene Sprecher (A, B und C) angegeben.
  • Figure 00220001
  • Außerdem wurden die Verarbeitungszeiten für beide Verfahren und für die gleichen drei Sprecher wie unten dargestellt gemessen.
  • Figure 00220002
  • Diese Ergebnisse zeigen, daß konventionelle VQ-Verfahren und das schnelle Baumsuch-VQ-Verfahren zu vergleichbaren Verzerrungen führen. Jedoch wurde die Verarbeitungsgeschwindigkeit um einen Faktor von mehr als 9 verbessert.
  • In der vorangegangenen Beschreibung wurde die Erfindung in Bezug auf spezielle Ausführungsbeispiele beschrieben. Es ist jedoch klar, daß verschiedene Modifikationen und Änderungen möglich sind, ohne den in den beiliegenden Patentansprüchen angegebenen breiteren Erfindungsgedanken bzw. – bereich zu verlassen. Die Beschreibung und die Zeichnungen sollen deshalb nur der Veranschaulichung und nicht der Einschränkung dienen.

Claims (10)

  1. Verfahren zum Konvertieren eines Kandidatenvektorsignals in ein Vektorquantisierungssignal, wobei das Kandidatenvektorsignal einen Kandidatenvektor mit mehreren Elementen und das Vektorquantisierungssignal einen Vektor eines Codebuches oder einen diesen Vektor kennzeichnenden Index darstellt, wobei eine binäre Baumstruktur erzeugt wird, der die Codebuch-Vektoren zugeordnet werden, wobei zum Konvertieren – das Kandidatenvektorsignal einer Einrichtung zum binären Durchsuchen der Baumstruktur eingegeben wird, – die binäre Baumstruktur bis zum Erreichen eines Blattknotens durchlaufen wird, wobei an jedem Zwischenknoten ein Vergleich ausgeführt und in Abhängigkeit vom Vergleichsergebnis ein Zweig ausgewählt wird, und – in Abhängigkeit vom erreichten Blattknoten ein Codebuch-Vektor ausgewählt und ein entsprechendes Vektorquantisierungssignal erzeugt wird, dadurch gekennzeichnet, daß eine binäre Baumstruktur erzeugt wird, bei der jedem Zwischenknoten ein Schwellwert und eine Kennzeichnung eines ausgewählten Elements des Kandidatenvektors, das mit dem Schwellwert beim Durchlaufen der Baumstruktur zu vergleichen ist, und jedem Blattknoten eine Untermenge der Codebuch-Vektoren zugeordnet wird, daß beim Durchlaufen der binären Baumstruktur das jeweilige Element (e(l,k)) des Kandidatenvektorsignals ausgewählt (402) und mit dem jeweiligen Schwellwert (T(l,k)) verglichen wird (404), und daß nach Erreichen eines Blattknotens ein Codebuch-Vektor aus der dem erreichten Blattknoten zugeordneten Untermenge der Codebuch-Vektoren ausgewählt wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Kandidatenvektor ein Cepstral-Vektor, ein Leistungsvektor, ein Cepstral-Differenzvektor oder ein Leistungsdifferenzvektor ist.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß nach Erreichen eines Blattknotens derjenige Codebuch-Vektor ausgewählt wird, der dem Kandidatenvektor am nächsten liegt.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß beim Auswählen eine Distanz zwischen dem Kandidatenvektor und jedem Codebuch-Vektor der dem Blattknoten zugeordneten Untermenge der Codebuch-Vektoren bestimmt wird.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß beim Erzeugen der binären Baumstruktur jedem Blattknoten ein Histogramm zugeordnet wird, wobei das Histogramm für jeden Codebuch-Vektor der jeweiligen Untermenge von Codebuch-Vektoren eine Häufigkeit angibt, mit der während einer Trainingsphase zugeführte Trainingskandidatenvektoren, die dem jeweiligen Codebuch-Vektor der Untermenge am nächsten liegen, nach Durchlaufen der Baumstruktur den jeweiligen Blattknoten erreichten, wobei beim Konvertieren nach Erreichen eines Blattknotens ein Codebuch-Vektor ausgewählt wird, indem: (i) einer der Codebuch-Vektoren ausgewählt wird, der in dem Histogramm einen höchsten Zählwert aufweist; (ii) eine Distanz zwischen dem Kandidatenvektor und dem im Schritt (i) ausgewählten Codebuch-Vektor bestimmt wird; (iii) ein weiterer der Codebuch-Vektoren ausgewählt wird, der in dem Histogramm den nächsthöheren Zählwert aufweist; (iv) wenigstens eine partielle inkerementale Distanz zwischen dem Kandidatenvektor und dem im Schritt (iii) bestimmten Codebuch-Vektor bestimmt wird; (v) die Schritte (iii) und (iv) wiederholt werden, bis eine vorgegebene Anzahl von Codebuch-Vektoren der Untermenge der Codebuch-Vektoren ausgewählt worden ist; und (vi) derjenige der Codebuch-Vektoren ausgewählt wird, der eine minimale Distanz aufweist.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die binäre Baumstruktur erzeugt wird, indem: (a) ein binäres Baumstruktur-Codebuch mit Zwischenknoten und Blattknoten auf der Grundlage einer ausgewählten Menge von Trainings-Kandidatenvektoren erzeugt wird, das eine indexierte Liste von Vektorquantisierungsschwerpunkten aufweist, einschließlich einer Liste von jedem Knoten zugeordneten Schwerpunkten und einer Liste von jedem Trainingsvektor zugeordneten Codebuch-Indizes; (b) ein Element aus jedem Schwerpunktvektor an einem vorgegebenen Knoten derart ausgewählt wird, daß dann, wenn ein vorgegebener Wert des ausgewählten Elements als Schwellwert verwendet würde, die Trainings-Kandidatenvektoren näherungsweise gleichmäßig zwischen den zwei möglichen, von dem gegebenen Knoten wegführenden Pfaden aufgeteilt würden; (c) eine neue binäre Baumstruktur erzeugt wird, indem jedem Zwischenknoten eine Kennzeichnung des ausgewählten im Schritt (b) Elements und der zugehörige Schwellwert zugeordnet wird, und die neue Baumstruktur gespeichert wird; (d) für jeden Trainings-Kandidatenvektor der Menge von Trainings-Kandidatenvektoren eine binäre Suche in der neuen Baumstruktur ausgeführt wird, wobei: (i) für jeden in der Binärsuche durchlaufenen Zwischenknoten das zugehörige ausgewählte Element jedes Trainings-Kandidatenvektors mit dem zugehörigen Schwellwert verglichen wird; und (ii) in Abhängigkeit von dem Vergleichsergebnis die binäre Baumstruktur bis zum Erreichen eines Blattknotens durchlaufen wird; (e) für jeden Blattknoten ein Häufigkeits-Histogramm der den Trainings-Kandidatenvektoren, die bei dem Durchlaufen der Binärstruktur den jeweiligen Blattknoten erreichten, zugeordneten Codebuch-Indizes erstellt wird, wobei die jedem Blattknoten auf diese weise zugeordneten Codebuch-Indizes mit ihren Häufigkeiten die dem Blattknoten zugeordnete Untermenge der Codebuch-Vektoren identifizieren.
  7. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die Histogrammhäufigkeiten normiert werden, so daß sie Wahrscheinlichkeiten wiedergeben.
  8. Vorrichtung zum Konvertieren eines Kandidatenvektorsignals in ein Vektorquantisierungssignal, wobei das Kandidatenvektorsignal einen Kandidatenvektor mit mehreren Elementen und das Vektorquantisierungssignal einen Vektor eines Codebuchs oder einen diesen Vektor kennzeichnenden Index darstellt, wobei die Vorrichtung aufweist: (a) einen ersten Speicher (30) zum Speichern von Knoten einer binären Baumstruktur zugeordneten Schwellwert-und Vektorparameter-Kennsätzen, wobei jeder Kennsatz ein Element des Kandidatenvektors und einen zugehörigen Schwellwert kennzeichnet; (b) eine mit dem ersten Speicher (30) gekoppelte Steuerschaltung (40, 38, 36), welche eine binäre Suche durch eine binäre Baumstruktur hindurch ausführt, wobei die Steuerschaltung aufweist: (i) einen Selektor (38), welcher das Kandidatenvektorsignal empfängt und für jeden bei der Ausführung der Binärsuche in der binären Baumstruktur durchlaufenen Zwischenknoten ein diesem Knoten zugeordnetes Element des Kandidatenvektors auswählt, und (ii) einen mit dem ersten Speicher (30) und dem Selektor (38) gekoppelten Komparator (36), welcher das ausgewählte Element mit dem zugehörigen Schwellwert für jeden bei der Ausführung der Binärsuche in der binären Baumstruktur durchlaufenen Zwischenknoten vergleicht, wobei die Steuerschaltung nach Durchlaufen der binären Baumstruktur für das jeweilige Kandidatenvektorsignal einen erreichten Blattknoten identifiziert; und (c) einen zweiten Speicher (32), der mit der Steuerschaltung (40, 38, 36) gekoppelt ist und eine Menge von Codebuchvektoren oder Codebuchvektoren-Indizes in Zuordnung zu jedem Blattknoten der Baumstruktur speichert, wobei die Steuerschaltung die dem identifizierten Blattknoten entsprechende Menge von Codebuchvektoren bzw. Codebuchvektoren-Indizes identifiziert, und (d) eine Auswahleinrichtung (42), die mit der Steuereinrichtung und dem zweiten Speicher (32) gekoppelt ist, das Kandidatenvektorsignal empfängt und in Abhängigkeit von dem Kandidatenvektorsignal einen der Codebuch-Vektoren bzw. Codebuchvektor-Indizes der identifizierten Menge auswählt und das Vektorquantisierungssignal erzeugt.
  9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, daß der Kandidatenvektor ein Cepstral-Vektor, ein Leistungsvektor, ein Cepstral-Differenzvektor oder ein Leistungsdifferenzvektor ist.
  10. Vorrichtung nach Anspruch 8 oder 9, dadurch gekennzeichnet, daß die Auswahleinrichtung (42) den Codebuch-Vektor bzw. Codebuch-Vektor-Index auswählt, der dem Kandidatenvektor am nächsten liegt.
DE4397106A 1992-12-31 1993-12-29 Schnelles auf einer Baumstruktur basierendes Verfahren zur Vektorquantisierung Expired - Lifetime DE4397106B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US999354 1992-12-31
US07/999,354 US5734791A (en) 1992-12-31 1992-12-31 Rapid tree-based method for vector quantization
PCT/US1993/012637 WO1994016436A1 (en) 1992-12-31 1993-12-29 A rapid tree-based method for vector quantization

Publications (1)

Publication Number Publication Date
DE4397106B4 true DE4397106B4 (de) 2004-09-30

Family

ID=25546235

Family Applications (2)

Application Number Title Priority Date Filing Date
DE4397106A Expired - Lifetime DE4397106B4 (de) 1992-12-31 1993-12-29 Schnelles auf einer Baumstruktur basierendes Verfahren zur Vektorquantisierung
DE4397106T Pending DE4397106T1 (de) 1992-12-31 1993-12-29 Schnelles auf einer Baumstruktur basierendes Verfahren zur Vektorquantisierung

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE4397106T Pending DE4397106T1 (de) 1992-12-31 1993-12-29 Schnelles auf einer Baumstruktur basierendes Verfahren zur Vektorquantisierung

Country Status (5)

Country Link
US (1) US5734791A (de)
AU (1) AU5961794A (de)
CA (1) CA2151372C (de)
DE (2) DE4397106B4 (de)
WO (1) WO1994016436A1 (de)

Families Citing this family (171)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3302266B2 (ja) * 1996-07-23 2002-07-15 沖電気工業株式会社 ヒドン・マルコフ・モデルの学習方法
AU727894B2 (en) * 1997-09-29 2001-01-04 Canon Kabushiki Kaisha An encoding method and apparatus
DE19810843B4 (de) * 1998-03-12 2004-11-25 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und Zugriffseinrichtung zum Bestimmen der Speicheradresse eines Datenwerts in einer Speichereinrichtung
US6781717B1 (en) * 1999-12-30 2004-08-24 Texas Instruments Incorporated Threshold screening using range reduction
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
GB2372598A (en) * 2001-02-26 2002-08-28 Coppereye Ltd Organising data in a database
ITFI20010199A1 (it) 2001-10-22 2003-04-22 Riccardo Vieri Sistema e metodo per trasformare in voce comunicazioni testuali ed inviarle con una connessione internet a qualsiasi apparato telefonico
EP1505572B1 (de) * 2002-05-06 2006-03-08 Prous Institute For Biomedical Research S.A. Spracherkennungsverfahren
US7506135B1 (en) * 2002-06-03 2009-03-17 Mimar Tibet Histogram generation with vector operations in SIMD and VLIW processor by consolidating LUTs storing parallel update incremented count values for vector data elements
US6931413B2 (en) * 2002-06-25 2005-08-16 Microsoft Corporation System and method providing automated margin tree analysis and processing of sampled data
KR100492965B1 (ko) * 2002-09-27 2005-06-07 삼성전자주식회사 벡터 양자화를 위한 고속 탐색방법
US7587314B2 (en) * 2005-08-29 2009-09-08 Nokia Corporation Single-codebook vector quantization for multiple-rate applications
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US8325748B2 (en) * 2005-09-16 2012-12-04 Oracle International Corporation Fast vector quantization with topology learning
US7633076B2 (en) 2005-09-30 2009-12-15 Apple Inc. Automated response to and sensing of user activity in portable devices
US7933770B2 (en) * 2006-07-14 2011-04-26 Siemens Audiologische Technik Gmbh Method and device for coding audio data based on vector quantisation
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US9053089B2 (en) 2007-10-02 2015-06-09 Apple Inc. Part-of-speech tagging using latent analogy
US8620662B2 (en) 2007-11-20 2013-12-31 Apple Inc. Context-aware unit selection
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8126858B1 (en) 2008-01-23 2012-02-28 A9.Com, Inc. System and method for delivering content to a communication device in a content delivery system
US8065143B2 (en) 2008-02-22 2011-11-22 Apple Inc. Providing text input using speech data and non-speech data
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US8464150B2 (en) 2008-06-07 2013-06-11 Apple Inc. Automatic language identification for dynamic text processing
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8768702B2 (en) 2008-09-05 2014-07-01 Apple Inc. Multi-tiered voice feedback in an electronic device
US8898568B2 (en) 2008-09-09 2014-11-25 Apple Inc. Audio user interface
WO2010033383A1 (en) * 2008-09-16 2010-03-25 Beckman Coulter, Inc. Interactive tree plot for flow cytometry data
US8712776B2 (en) 2008-09-29 2014-04-29 Apple Inc. Systems and methods for selective text to speech synthesis
US8583418B2 (en) 2008-09-29 2013-11-12 Apple Inc. Systems and methods of detecting language and natural language strings for text to speech synthesis
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US8862252B2 (en) 2009-01-30 2014-10-14 Apple Inc. Audio user interface for displayless electronic device
US8380507B2 (en) 2009-03-09 2013-02-19 Apple Inc. Systems and methods for determining the language to use for speech generated by a text to speech engine
CN101577551A (zh) * 2009-05-27 2009-11-11 华为技术有限公司 一种生成格型矢量量化码书的方法及装置
US10540976B2 (en) * 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US8682649B2 (en) 2009-11-12 2014-03-25 Apple Inc. Sentiment prediction from textual data
US8600743B2 (en) 2010-01-06 2013-12-03 Apple Inc. Noise profile determination for voice-related feature
US8311838B2 (en) 2010-01-13 2012-11-13 Apple Inc. Devices and methods for identifying a prompt corresponding to a voice input in a sequence of prompts
US8381107B2 (en) 2010-01-13 2013-02-19 Apple Inc. Adaptive audio feedback system and method
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
DE202011111062U1 (de) 2010-01-25 2019-02-19 Newvaluexchange Ltd. Vorrichtung und System für eine Digitalkonversationsmanagementplattform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8352483B1 (en) * 2010-05-12 2013-01-08 A9.Com, Inc. Scalable tree-based search of content descriptors
US8713021B2 (en) 2010-07-07 2014-04-29 Apple Inc. Unsupervised document clustering using latent semantic density analysis
US8719006B2 (en) 2010-08-27 2014-05-06 Apple Inc. Combined statistical and rule-based part-of-speech tagging for text-to-speech synthesis
US8719014B2 (en) 2010-09-27 2014-05-06 Apple Inc. Electronic device with text error correction based on voice recognition data
US8990199B1 (en) 2010-09-30 2015-03-24 Amazon Technologies, Inc. Content search with category-aware visual similarity
US8422782B1 (en) 2010-09-30 2013-04-16 A9.Com, Inc. Contour detection and image classification
US8463036B1 (en) 2010-09-30 2013-06-11 A9.Com, Inc. Shape-based search of a collection of content
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US10515147B2 (en) 2010-12-22 2019-12-24 Apple Inc. Using statistical language models for contextual lookup
US8781836B2 (en) 2011-02-22 2014-07-15 Apple Inc. Hearing assistance system for providing consistent human speech
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10672399B2 (en) 2011-06-03 2020-06-02 Apple Inc. Switching between text data and audio data based on a mapping
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8812294B2 (en) 2011-06-21 2014-08-19 Apple Inc. Translating phrases from one language into another using an order-based set of declarative rules
US8706472B2 (en) 2011-08-11 2014-04-22 Apple Inc. Method for disambiguating multiple readings in language conversion
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US8762156B2 (en) 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US8775442B2 (en) 2012-05-15 2014-07-08 Apple Inc. Semantic search using a single-source semantic model
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US10019994B2 (en) 2012-06-08 2018-07-10 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
GB201210702D0 (en) * 2012-06-15 2012-08-01 Qatar Foundation A system and method to store video fingerprints on distributed nodes in cloud systems
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US8935167B2 (en) 2012-09-25 2015-01-13 Apple Inc. Exemplar-based latent perceptual modeling for automatic speech recognition
EP4138075A1 (de) 2013-02-07 2023-02-22 Apple Inc. Sprachauslöser für digitalen assistenten
US9977779B2 (en) 2013-03-14 2018-05-22 Apple Inc. Automatic supplementation of word correction dictionaries
US10642574B2 (en) 2013-03-14 2020-05-05 Apple Inc. Device, method, and graphical user interface for outputting captions
US9733821B2 (en) 2013-03-14 2017-08-15 Apple Inc. Voice control to diagnose inadvertent activation of accessibility features
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10572476B2 (en) 2013-03-14 2020-02-25 Apple Inc. Refining a search based on schedule items
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
KR101857648B1 (ko) 2013-03-15 2018-05-15 애플 인크. 지능형 디지털 어시스턴트에 의한 사용자 트레이닝
KR101759009B1 (ko) 2013-03-15 2017-07-17 애플 인크. 적어도 부분적인 보이스 커맨드 시스템을 트레이닝시키는 것
CN112230878A (zh) 2013-03-15 2021-01-15 苹果公司 对中断进行上下文相关处理
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
CN110442699A (zh) 2013-06-09 2019-11-12 苹果公司 操作数字助理的方法、计算机可读介质、电子设备和***
CN105265005B (zh) 2013-06-13 2019-09-17 苹果公司 用于由语音命令发起的紧急呼叫的***和方法
US10791216B2 (en) 2013-08-06 2020-09-29 Apple Inc. Auto-activating smart responses based on activities from remote devices
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
CN111105804B (zh) * 2019-12-31 2022-10-11 广州方硅信息技术有限公司 语音信号处理方法、***、装置、计算机设备和存储介质
CN117556068B (zh) * 2024-01-12 2024-05-17 中国科学技术大学 目标索引模型的训练方法、信息检索方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0138061A1 (de) * 1983-09-29 1985-04-24 Siemens Aktiengesellschaft Verfahren zur Bestimmung von Sprachspektren für die automatische Spracherkennung und Sprachcodierung
DE3837590A1 (de) * 1988-11-05 1990-05-10 Ant Nachrichtentech Verfahren zum reduzieren der datenrate von digitalen bilddaten
EP0411675A2 (de) * 1982-06-11 1991-02-06 Mitsubishi Denki Kabushiki Kaisha Vorrichtung zur Zwischenbildkodierung
EP0431608A1 (de) * 1989-12-07 1991-06-12 Unisys Corporation Binärreflexivkodierer zur Vektorquantifizierung

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4348553A (en) * 1980-07-02 1982-09-07 International Business Machines Corporation Parallel pattern verifier with dynamic time warping
US4903305A (en) * 1986-05-12 1990-02-20 Dragon Systems, Inc. Method for representing word models for use in speech recognition
AU592236B2 (en) * 1986-10-16 1990-01-04 Mitsubishi Denki Kabushiki Kaisha Amplitude-adapted vector quantizer
US4727354A (en) * 1987-01-07 1988-02-23 Unisys Corporation System for selecting best fit vector code in vector quantization encoding
US4852173A (en) * 1987-10-29 1989-07-25 International Business Machines Corporation Design and construction of a binary-tree system for language modelling
US5194950A (en) * 1988-02-29 1993-03-16 Mitsubishi Denki Kabushiki Kaisha Vector quantizer
US5027406A (en) * 1988-12-06 1991-06-25 Dragon Systems, Inc. Method for interactive speech recognition and training
JPH0782544B2 (ja) * 1989-03-24 1995-09-06 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチテンプレートを用いるdpマツチング方法及び装置
US5297170A (en) * 1990-08-21 1994-03-22 Codex Corporation Lattice and trellis-coded quantization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0411675A2 (de) * 1982-06-11 1991-02-06 Mitsubishi Denki Kabushiki Kaisha Vorrichtung zur Zwischenbildkodierung
EP0138061A1 (de) * 1983-09-29 1985-04-24 Siemens Aktiengesellschaft Verfahren zur Bestimmung von Sprachspektren für die automatische Spracherkennung und Sprachcodierung
DE3837590A1 (de) * 1988-11-05 1990-05-10 Ant Nachrichtentech Verfahren zum reduzieren der datenrate von digitalen bilddaten
EP0431608A1 (de) * 1989-12-07 1991-06-12 Unisys Corporation Binärreflexivkodierer zur Vektorquantifizierung

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BAHL, J.R. et al. "Large Vocabulary National Lampnage Continuous Speech Recognition", In: Proceeding of the IEEE CASSP 1989, Glasgow *
GRAY, R.M., "Vector Chantization", In: IEEE ASSP Magazine, April 1984, Vol. 1, No. 2, S. 10-12 *
LEE, K., "Automatic Speech Recognition, The Development of the SPHINX-System", Kluwer Academic Publishers, Boston,/ Dordrecht/London, 1989 *
LINDE, Y., BUZO, A., GRAY, R.M., "An Algorythm for Vector Quantization", In: IEEE Trans. Comm., COM-28, No. 1, Jan. 1980, S. 84-95 *
RABINE, L.: SONDHI, M., LEVINSON, S., "Note of the Properties of a Vector Quantizer for CPC Coefficients", In: BSTJ, Vol. 62- No. 62, No. 8, Oct. 1983, S. 2603-2615 *

Also Published As

Publication number Publication date
CA2151372A1 (en) 1994-07-21
WO1994016436A1 (en) 1994-07-21
AU5961794A (en) 1994-08-15
US5734791A (en) 1998-03-31
DE4397106T1 (de) 1995-12-07
CA2151372C (en) 2005-04-19

Similar Documents

Publication Publication Date Title
DE4397106B4 (de) Schnelles auf einer Baumstruktur basierendes Verfahren zur Vektorquantisierung
DE3878071T2 (de) Sprachnormierung durch adaptive klassifizierung.
DE3337353C2 (de) Sprachanalysator auf der Grundlage eines verborgenen Markov-Modells
DE69619284T3 (de) Vorrichtung zur Erweiterung der Sprachbandbreite
DE69818231T2 (de) Verfahren zum diskriminativen training von spracherkennungsmodellen
DE4492048C2 (de) Vektorquantisierungs-Verfahren
DE69838305T2 (de) Orthogonalisierungssuche für die CELP basierte Sprachkodierung
DE69925479T2 (de) Dynamisch konfigurierbares akustisches modell für spracherkennungssysteme
DE3878001T2 (de) Spracherkennungseinrichtung unter anwendung von phonemermittlung.
DE2953262C2 (de)
DE602004003512T2 (de) Kompression gausscher Modelle
DE19647298C2 (de) Kodiersystem
DE69636209T2 (de) Vorrichtung zur Sprachkodierung
DE602004002312T2 (de) Verfahren und Vorrichtung zur Bestimmung von Formanten unter Benutzung eines Restsignalmodells
DE3043516C2 (de) Verfahren und Vorrichtung zur Spracherkennung
EP0285222B1 (de) Verfahren zum Erkennen zusammenhängend gesprochener Wörter
EP1214703A1 (de) Verfahren zum trainieren der grapheme nach phonemen regeln für die sprachsynthese
DE4491015C2 (de) Verfahren zum Erzeugen eines Spektralrauschbewertungsfilters zur Verwendung in einem Sprachcoder
DE3019823C2 (de)
DE19581667C2 (de) Spracherkennungssystem und Verfahren zur Spracherkennung
EP1187098B1 (de) Komprimieren von HMM-Prototypen
DE3733391A1 (de) Verfahren zur spracherkennung
DE4222916C2 (de) Verfahren zur schnellen Sprecheradaption in einem Spracherkenner für großen Wortschatz
DE602004007223T2 (de) Verfahren zur kontinuierlichwertigen Vokaltraktresonanzverfolgung unter Verwendung von stückweisen linearen Annäherungen
DE69915817T2 (de) Vorrichtung und verfahren zur spracherkennung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8607 Notification of search results after publication
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: APPLE INC., CUPERTINO, CALIF., US

R071 Expiry of right