DE69332990T2 - Verfahren zur Sprachanalyse und - Synthese - Google Patents

Verfahren zur Sprachanalyse und - Synthese Download PDF

Info

Publication number
DE69332990T2
DE69332990T2 DE69332990T DE69332990T DE69332990T2 DE 69332990 T2 DE69332990 T2 DE 69332990T2 DE 69332990 T DE69332990 T DE 69332990T DE 69332990 T DE69332990 T DE 69332990T DE 69332990 T2 DE69332990 T2 DE 69332990T2
Authority
DE
Germany
Prior art keywords
data
pitch
vector
block
section
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
DE69332990T
Other languages
English (en)
Other versions
DE69332990D1 (de
Inventor
Masayuki Shinagawa-ku Nishiguchi
Jun Shinagawa-ku Matsumoto
Shinobu Shinagawa-ku Ono
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP09225992A external-priority patent/JP3297750B2/ja
Priority claimed from JP09142292A external-priority patent/JP3237178B2/ja
Application filed by Sony Corp filed Critical Sony Corp
Application granted granted Critical
Publication of DE69332990D1 publication Critical patent/DE69332990D1/de
Publication of DE69332990T2 publication Critical patent/DE69332990T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/0212Speech 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 using orthogonal transformation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/04Speech 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 predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/04Speech 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 predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/93Discriminating between voiced and unvoiced parts of speech signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/04Speech 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 predictive techniques
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/04Speech 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 predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L2019/0001Codebooks
    • G10L2019/0004Design or structure of the codebook
    • G10L2019/0005Multi-stage vector quantisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/93Discriminating between voiced and unvoiced parts of speech signals
    • G10L2025/937Signal energy in various frequency bands
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique

Description

  • TECHNISCHES GEBIET
  • Diese Erfindung betrifft ein Sprach-Analyse-Synthese-Verfahren für Audiosignale, bei dem codierte Daten auf der Frequenzachse von Audiosignalen durch Teilen von Eingangsaudiosignalen wie beispielsweise Stimmen- bzw. Sprachsignale und/oder akustische Signale auf der blockweisen Basis erzeugt und die Audiosignale in Signale auf der Frequenzachse umgewandelt werden.
  • HINTERGRUNDGEBIET
  • Es sind eine Anzahl Codierungsverfahren bekannt, bei denen eine Signalkompression durch Verwendung statistischer Charakteristiken von Audiosignalen, die Stimmen- bzw. Sprachsignale und/oder akustische Signale enthalten, in der Zeitdomäne und in der Frequenzdomäne und Charakteristiken des menschlichen Gehörsinns ausgeführt wird. Diese Codierungsverfahren werden grob in eine Codierung in der Zeitdomäne, eine Codierung in der Frequenzdomäne und eine Analyse-Synthese-Codierung eingeteilt.
  • Als ein Beispiel einer hocheffizienten Codierung von Stimmen- bzw. Sprachsignalen ist es, wenn verschiedene Informationsdaten wie beispielsweise eine Spektrumamplitude oder Parameter derselben, beispielsweise LSP-Parameter, α-Parameter oder k-Parameter, quantisiert werden, bei einer Partiellautokorrelations-Analyse-Synthese-Codierung (PARCOR-Analyse-Synthese-Codierung), Multibanderregungscodierung (MBE-Codierung), Einzelbanderregungscodierung (SBE-Codierung), Oberschwingungscodierung, Seitenbandcodierung (SBC), Linearvorhersagecodierung (LPC), diskreten Cosinustransformation (DCT), modifizierten DCT (MDCT) oder schnellen Fouriertransformation (FFT), üblich, eine skalare Quantisierung auszuführen.
  • Indessen können bei dem Stimmen- bzw. Sprach-Analyse-Synthese-System wie dem PARCOR-Verfahren, da die Zeitsteuerung des Umschaltens der Erregungsquelle auf der Zeitachse auf der Block-um-Block-Basis (Rahmen-um-Rahmen-Basis) bzw. blockweisen Basis (rahmenweisen Basis) ist, stimmhafte und nicht stimmhafte Töne nicht gemeinsam im gleichen Rahmen existieren. Dies hat zur Folge, dass es unmöglich ist, Laute bzw. Stimmen hoher Qualität zu erzeugen.
  • Jedoch bei der MBE-Codierung wird das Band für Laute bzw. Stimmen in einem einzelnen Block (Rahmen) in mehrere Bänder geteilt und für jedes der Bänder eine Stimmhaft/Stimmlos-Entscheidung getroffen. Infolgedessen können Verbesserungen der Schall- bzw. Klang- bzw. Tonqualität beobachtet werden. Jedoch ist die MBE-Codierung hinsichtlich der Bitrate unvorteilhaft, da für jedes Band erhaltene Stimmhaft/Stimmlos-Entscheidungsdaten separat übertragen werden müssen.
  • Auch ist eine skalare Quantisierung wegen des erhöhten Quantisierungsrauschens schwierig auszuführen, wenn versucht wird, für eine weitere Erhöhung der Quantisierungseffizienz die Bitrate auf beispielsweise drei bis vier kbit/s abzusenken.
  • Es kann in Erwägung gezogen werden, eine Vektorquantisierung anzunehmen. Jedoch wird mit der Zahl b von Bits eines Ausgangssignals (Index) der Vektorquantisierung die Größe eines Codebuchs eines Vektorquantisierers proportional zu 2b erhöht, und das Operationsvolumen für eine Codebuchsuche wird ebenfalls proportional zu 2b erhöht. Da jedoch eine extrem kleine Zahl b von Bits eines Ausgangssignals das Quantisierungsrauschen erhöht, ist es wünschenswert, die Größe des Codebuchs oder die Operationsmenge für eine Codebuchsuche zu reduzieren, während ein gewisser größerer Wert der Bitzahl b beibehalten wird. Nebenbei bemerkt kann die Codierungseffi zienz nicht ausreichend erhöht werden, wenn die in jene auf der Frequenzachse umgewandelten Daten durch eine Vektorquantisierung direkt verarbeitet werden. Infolgedessen ist eine Technik für eine weitere Erhöhung des Kompressionsverhältnisses erforderlich.
  • Aus der europäischen Patentanmeldung EP-A-0 395 076 geht ein Sprachcodierungsgerät hervor, bei dem durch Verwendung Codebuchs reduzierter Größe, das aus mehreren Codebuchblöcken besteht, eine Vektorquantisierung ausgeführt wird.
  • Im Hinblick auf den oben beschriebenen Stand der Technik ist es eine Aufgabe der vorliegenden Erfindung, ein Sprach-Analyse-Synthese-Verfahren bereitzustellen, wodurch die für jedes Band erzeugten Stimmhaft/Stimmlos-Töne-Entscheidungsdaten ohne Verschlechterung der Tonqualität mit einer reduzierten Zahl Bits übertragen werden können.
  • Insbesondere ist es Aufgabe der vorliegenden Erfindung, ein Sprach-Analyse-Synthese-Verfahren bereitzustellen, wodurch eine Verbesserung der Tonqualität durch Verwendung eines Geräusches Rauschens, das fähig ist die Größe und Diffusion zur Modififikation aufgrund einer Prädiktion bzw. Vorhersage zu steuern, realisiert werden kann.
  • OFFENBARUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung ist ein Sprach-Analyse-Synthese-Verfahren bereitgestellt, das die Schritte aufweist: Teilen eines Eingangssprachsignals in Blöcke und finden einer Tonhöhe in jedem Block, Umwandeln der resultierenden Blocksignale in Signale auf der Frequenzachse, um Daten auf der Frequenzachse zu finden, Teilen der Daten auf der Frequenzachse in mehrere Frequenzbänder auf der Basis der Tonhöhendaten, Finden von Leistungsinformation für jedes der geteilten Bänder und Stimmhaft/Stimmlos-Entscheidungsinformation, Übertragen der Tonhöhendaten, der Leistungsinformation für jedes Band und der Stimmhaft/Stimmlos-Entscheidungsinformation, die bei den vorhergehenden Schritten gefunden wurden, Vorhersagen einer Blockende-Randphase auf der Basis der empfangenen Ton höhendaten für jeden Block und einer initialen Blockphase, und Modifizieren der vorhergesagten Blockende-Randphase unter Verwendung eines eine Diffusion auf einer vom Frequenzband abhängigen Phasenachse aufweisenden Rauschens.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein funktionelles Blockschaltbild, das eine schematische Anordnung einer Analyseseite oder Codiererseite einer Synthese-Analyse-Codierungseinrichtung für Stimmenbzw. Sprachsignale als ein spezifisches Beispiel einer Einrichtung ist, auf die ein hocheffizientes Codierungsverfahren der vorliegenden Erfindung angewendet ist.
  • 2 ist ein Diagramm zur Erläuterung einer Fensterverarbeitung.
  • 3 ist ein Diagramm zur Erläuterung einer Relation zwischen der Fensterverarbeitung und einer Fensterfunktion.
  • 4 ist ein Diagramm, das Zeitachsendaten als ein Objekt einer Orthogonaltransformationsverarbeitung (FFT-Verarbeitung) zeigt.
  • 5 ist ein Diagramm, das ein Leistungsspektrum von Spektrumdaten, eine Spektrumenveloppe und Erregungssignale auf der Frequenzachse zeigt.
  • 6 ist ein funktionelles Blockschaltbild, das eine schematische Anordnung einer Syntheseseite oder Decodiererseite der Synthese-Analyse-Codierungseinrichtung für Sprachsignale als ein konkretes Beispiel einer Einrichtung ist, auf die das hocheffiziente Codierungsverfahren der vorliegenden Erfindung angewendet ist.
  • 7 ist ein Diagramm zur Erläuterung einer Stimmlostonsynthese zum Zeitpunkt der Synthese von Sprachsignalen.
  • 8 ist ein Wellenformdiagramm zur Erläuterung eines herkömmlichen Tonhöhenextraktionsverfahrens.
  • 9 ist ein funktionelles Blockschaltbild zur Erläuterung eines ersten Beispiels des beim hocheffizienten Codierungsverfahren gemäß der vorliegenden Erfindung verwendeten Tonhöhenextraktionsverfahrens.
  • 10 ist ein Flussdiagramm zur Erläuterung einer Bewegung des ersten Beispiels des Tonhöhenextraktionsverfahrens.
  • 11 ist ein Wellenformdiagramm zur Erläuterung des ersten Beispiels des Tonhöhenextraktionsverfahrens.
  • 12 ist ein funktionelles Blockschaltbild, das eine schematische Anordnung eines konkreten Beispiels zeigt, auf das ein zweites Beispiel des bei dem hocheffizienten Codierungsverfahren der vorliegenden Erfindung verwendeten Tonhöhenextraktionsverfahrens angewendet ist.
  • 13 ist ein Wellenformdiagramm zur Erläuterung einer Verarbeitung einer Eingangssprachsignalwellenform des zweiten Beispiels des Tonhöhenextraktionsverfahrens.
  • 14 ist ein Flussdiagramm zur Erläuterung einer Bewegung der Tonhöhenextraktion im zweiten Beispiel des Tonhöhenextraktionsverfahrens.
  • 15 ist ein funktionelles Blockschaltbild, das eine schematische Anordnung eines konkreten Beispiels zeigt, auf das ein drittes Beispiel des Tonhöhenextraktionsverfahrens angewendet ist.
  • 16 ist ein Wellenformdiagramm zur Erläuterung einer herkömmlichen Sprachcodierung.
  • 17 ist ein Flussdiagramm zur Erläuterung einer Bewegung einer Codierung eines Beispiels eines bei dem hocheffizienten Codierungsverfahren der vorliegenden Erfindung angewendeten Sprachcodierungsverfahrens.
  • 18 ist ein Wellenformdiagramm zur Erläuterung einer Codierung eines Beispiels des Sprachcodierungsverfahrens.
  • 19 ist ein Flussdiagramm zur Erläuterung wesentlicher Abschnitte einer Ausführungsform des hocheffizienten Codierungsverfahrens der vorliegenden Erfindung.
  • 20 ist ein Diagramm zur Erläuterung einer Feststellung eines Grenzpunktes einer Stimmhaft(V)/Stimmlos(UV)-Tonabgrenzung eines Bandes.
  • 21 ist ein Blockschaltbild, das eine schematische Anordnung zur Erläuterung einer Umwandlung der Zahl von Daten zeigt.
  • 22 ist ein Wellenformdiagramm zur Erläuterung eines Beispiels einer Umwandlung der Zahl von Daten.
  • 23 ist ein Diagramm, das ein Beispiel einer Wellenform für eine expandierte Zahl von Daten vor einer FFT zeigt.
  • 24 ist ein Diagramm, das ein Vergleichsbeispiel der Wellenform für die expandierte Zahl von Daten vor der FFT zeigt.
  • 25 ist ein Diagramm zur Erläuterung einer Wellenform nach der FFT und einer Überabtastoperation.
  • 26 ist ein Diagramm zur Erläuterung einer Filterungsoperation bei der Wellenform nach der FFT.
  • 27 ist ein Diagramm, das eine Wellenform nach einer IFFT zeigt.
  • 28 ist ein Diagramm, das ein Beispiel einer Umwandlung der Zahl von Abtastwerten durch Überabtastung zeigt.
  • 29 ist ein Diagramm zur Erläuterung einer linearen Kompensations- und Beschränkungsverarbeitung zeigt.
  • 30 ist ein Blockschaltbild, das eine schematische Anordnung eines Codierers zeigt, auf den das hocheffiziente Codierungsverfahren der vorliegenden Erfindung angewendet ist.
  • 31 bis 36 sind Diagramme zur Erläuterung einer Bewegung einer Vektorquantisierung einer hierarchischen Struktur.
  • 37 ist ein Blockschaltbild, das eine schematische Anordnung eines Codierers zeigt, auf den ein anderes Beispiel des hocheffizienten Codierungsverfahrens angewendet ist.
  • 38 ist ein Blockschaltbild, das eine schematische Anordnung eines Codierers zeigt, auf den ein noch anderes Beispiel des hocheffizienten Codierungsverfahrens angewendet ist.
  • 39 ist ein Blockschaltbild, das eine schematische Anordnung eines Codierers zeigt, auf den ein hocheffizientes Codierungsverfahren zum Umschalten eines Codebuches einer Vektorquantisierung entsprechend Eingangssignalen angewendet ist.
  • 40 ist ein Diagramm zur Erläuterung eines Trainingsverfahrens des Codebuches.
  • 41 ist ein Blockschaltbild, das eine schematische Anordnung wesentlicher Abschnitte eines Codierers zur Erläuterung eines anderen Beispiels des hocheffizienten Codierungsverfahrens zum Umschalten des Codebuches zeigt.
  • 42 ist eine schematische Darstellung zur Erläuterung eines herkömmlichen Vektorquantisierers.
  • 43 ist ein Flussdiagramm zur Erläuterung eines LBG-Algorithmus.
  • 44 ist eine schematische Darstellung zur Erläuterung eines ersten Beispiels eines Vektorquantisierungsverfahrens.
  • 45 ist ein Diagramm zur Erläuterung von Kommunikationsfehlern in einem generellen Kommunikationssystem, das zur Erläuterung eines zweiten Beispiels des Vektorquantisierungsverfahrens verwendet ist.
  • 46 ist ein Flussdiagramm zur Erläuterung des zweiten Beispiels des Vektorquantisierungsverfahrens.
  • 47 ist eine schematische Darstellung zur Erläuterung eines dritten Beispiels des Vektorquantisierungsverfahrens.
  • 48 ist ein funktionelles Blockschaltbild eines konkreten Beispiels, bei dem ein Sprach-Analyse-Synthese-Verfahren auf einen sogenannten Vocoder angewendet ist.
  • 49 ist ein Graph zur Erläuterung eines bei dem Sprach-Analyse-Synthese-Verfahren angewendeten Gaußschen Rauschens.
  • BESTE ART UND WEISE DER AUSFÜHRUNG DER ERFINDUNG
  • Unter Bezugnahme auf die Zeichnungen werden bevorzugte Ausführungsformen des hocheffizienten Codierungsverfahrens gemäß der vorliegenden Erfindung erläutert.
  • Es ist für das hocheffiziente Codierungsverfahren möglich, ein Codierungsverfahren zu verwenden, das eine Umwandlung von Signalen auf der Block-um-Block-Basis bzw. blockwei sen Basis in Signale auf der Frequenzachse, Teilen des Frequenzbandes der resultierenden Signale in mehrere Bänder und voneinander Unterscheiden von stimmhaften (V) und stimmlosen (UV) Tönen für jedes der Bänder wie im Fall des später erläuterten Multibanderregungscodierungsverfahrens (MBE-Verfahren) aufweist.
  • Das heißt, bei einem generellen hocheffizienten Codierungsverfahren gemäß der vorliegenden Erfindung wird ein Stimmen- bzw. Sprachsignal in Blöcke geteilt, deren jeder aus einer vorbestimmten Zahl von Abtastpunkten bzw. Abtastwerten, beispielsweise 256 Abtastwerten besteht, und das resultierende Signal auf der blockweisen Basis wird durch eine Orthogonaltransformation wie beispielsweise FFT in Spektrumdaten auf der Frequenzachse umgewandelt. Gleichzeitig wird die Tonstärke bzw. Tonhöhe der Stimme bzw. Sprache in jedem Block extrahiert, und das Spektrum auf der Frequenzachse wird in einem Intervall entsprechend der Tonlage bzw. Tonhöhe in mehrere Bänder geteilt. Dann wird für jedes der geteilten Bänder eine Stimmhaft(V)/Stimmlos(UV)-Tonunterscheidung getroffen. Die V/UV-Tonunterscheidungsdaten werden codiert und zusammen mit Spektrumamplitudendaten übertragen.
  • Ein konkretes Beispiel eines Multibanderregungsvocoders (MBE-Vocoder), der eine Art Synthese-Analyse-Codierer für Sprachsignale (ein sogenannter Vocoder) ist, auf den das hocheffiziente Codierungsverfahren der vorliegenden Erfindung angewendet werden kann, wird nachfolgend unter Bezugnahme auf die Zeichnungen erläutert.
  • Der nun zu erläuternde MBE-Vocoder geht aus D. W. Griffin and J. S. Lim, „Multiband Excitation Vocoder", IEEE Trans. Acoustics, Speech and Signal Processing, Vol. 36, Nr. 8, August 1988, Seiten 1223–1235 hervor. Im Gegensatz zu einem herkömmlichen Partiellautokorrelationsvocoder (PARCOR-Vocoder), bei dem zum Zeitpunkt der Stimmen- bzw. Sprachmodellierung stimmhafte Bereiche und stimmlose Bereiche auf der blockweisen Basis oder auf der Rahmen-um-Rahmen-Basis bzw. rahmenweisen Basis umgeschaltet werden, führt der MBE-Vocoder eine Modellierung unter der Annahme aus, dass ein stimmhafter Bereich und ein stimmloser Bereich in einem gleichzeitigen Bereich auf der Frequenzachse, das heißt im gleichen Block oder Rahmen existiert.
  • Die 1 ist ein schematisches Blockschaltbild, das eine Gesamtanordnung einer Ausführungsform des MBE-Vocoders zeigt, auf den die vorliegende Erfindung angewendet ist.
  • Was die 1 betrifft, so wird einem Eingangsanschluss 101 ein Sprachsignal zugeführt und dann zu einem Filter 102, beispielsweise ein Hochpassfilter (HPF), übertragen, um von einer sogenannten Gleichsignalverschiebung (DC-Verschiebung) und wenigstens von Niederfrequenzkomponenten von nicht höher als 200 Hz zur Begrenzung des Frequenzbandes auf beispielsweise 200 bis 3400 Hz befreit zu werden. Ein vom Filter 102 erhaltenes Signal wird einem Tonhöhenextraktionsabschnitt 103 und einem Fensterverarbeitungsabschnitt 104 zugeführt. Der Tonhöhenextraktionsabschnitt 103 teilt Eingangssprachsignaldaten in Blöcke, deren jeder aus einer vorbestimmten Zahl oder N Abtastwerten, beispielsweise 256 Abtastwerte, besteht, und/oder schneidet mittels eines Rechteckfensters aus und führt eine Tonhöhenextraktion für Sprachsignale in jedem Block aus. Diese Blöcke, deren jeder aus 256 Abtastwerten besteht, werden, wie bei A in 5 gezeigt, entlang der Zeitachse in einem Intervall eines L Abtastwerte, beispielsweise 160 Abtastwerte aufweisenden Rahmens bewegt, so dass eine gegenseitige Blocküberlappung bzw. Interblocküberlappung gleich (N–L) Abtastwerte, beispielsweise 96 Abtastwerte beträgt. Der Fensterverarbeitungsabschnitt 104 multipliziert die N Abtastwerte jedes Blocks mit einer vorbestimmten Fensterfunktion, beispielsweise einem Hammingfenster, und die mit Fenstern versehenen Blöcke werden entlang der Zeitachse in einem Intervall von L Abtastwerten pro Rahmen sequentiell bewegt.
  • Diese Fensterverarbeitung kann durch die Formel XW(k, q) = x(q) w(kl – q) (1)ausgedrückt werden, wobei k eine Blockzahl und q einen Zeitindex einer Daten- oder Abtastwertzahl bezeichnet. Die Formel zeigt, dass die q-ten Daten eines Eingangssignals x(q) vor der Verarbeitung mit einer Fensterfunktion des k-ten Blocks w (kl – q) multipliziert wird, um Daten xw (k, q) zu ergeben. Die Fensterfunktion wr(r) für ein bei A in 2 gezeigtes rechteckiges Fenster im Tonhöhenextraktionsabschnitt 103 wird durch
    Figure 00100001
    ausgedrückt.
  • Die Fensterfunktion wh(r) für ein bei B in 2 gezeigtes Hammingfenster beim Fensterverarbeitungsabschnitt 104 ist durch
    Figure 00100002
    gegeben.
  • Bei Verwendung der Fensterfunktion wr(r) oder wh(r) ist eine von Null verschiedene Domäne der Fensterfunktion w(r) (= w(kl – q)) der obigen Formel (1) durch 0 ≤ kL – q < Ngegeben, und eine Modifikation von diesem wird durch die folgende Formel kL – N < q ≤ kLausgedrückt.
  • Deshalb gilt bei kL – N < q ≤ kL, dass die Fensterfunktion wr(kL – q) = 1 wie in 3 gezeigt für das rechtwinkelige Fenster steht. Die obigen Formeln (1) bis (3) zeigen an, dass das eine Länge von N(= 256) Abtastwerten aufweisende Fenster zu einem Zeitpunkt mit einer Rate von L(= 160) Abtastwerten vorbewegt wird. Von Null verschiedene Abtastwertzüge bei jedem Punkt N(0 ≤ r < N) geteilt durch jede der Fensterfunktionen der Formeln (2) und (3) sind durch xwr(k, r) bzw. xwh(k, r) angedeutet.
  • Der Fensterverarbeitungsabschnitt 104 addiert 0-Daten für 1792 Abtastwerte zu einem 256-Abtastwertblock-Abtastwertzug xwh(k,r) multipliziert mit dem Hammingfenster der Formel (3), wodurch, wie in 4 gezeigt, 2048 Abtastwerte erzeugt werden. Die Datenfolge von 2048 Abtastwerten auf der Zeitachse werden von einem Orthogonaltransformationsabschnitt 105 mit einer Orthogonaltransformation wie beispielsweise einer schnellen Fouriertransformation verarbeitet.
  • Der Tonhöhenextraktionsabschnitt 103 führt eine Tonhöhenextraktion auf der Basis des obigen Einzelblock-N-Abtastwert-Abtastwertzugs xwr(k, r) aus. Obgleich eine Tonhöhenextraktion unter Verwendung einer Periodizität der zeitlichen Wellenform, einer periodischen spektralen Frequenzstruktur oder einer Autokorrelationsfunktion ausgeführt werden kann, ist bei der vorliegenden Ausführungsform das Mitteabschneidewellenform- bzw. Mitteclipwellenform-Autokorrelationsverfahren angenommen. Was den Mitteabschneidepegel bzw. Mitteclippegel in jedem Block betrifft, kann für jeden Block ein einziger Abschneidepegel bzw. Clippegel eingestellt werden. Jedoch wird der Spitzenpegel von Signalen jeder Unterteilung des Blocks (jedes Subblocks) detektiert, und bei einer großen Differenz im Spitzenpegel zwischen den Subblocks wird der Clippegel im Block fortschreitend oder kontinuierlich geändert. Die Spitzenperiode wird auf der Basis des Spitzenabschnitts der Autokorrelationsdaten der zentralen Abschneidewellenform bzw. Clipwellenform bestimmt. Zu diesem Zeitpunkt werden von den zum laufenden Rahmen gehörenden autokorrelierten Daten mehrere Spitzen gefunden, wo die Autokorrelation von 1-Block-N-Abtastwerte-Daten als ein Objekt gefunden werden. Wenn das Maximum einer dieser Spitzen nicht kleiner als eine vorbestimmte Schwelle ist, ist die maximale Spitzenposition die Tonhöhenperiode. Andernfalls wird eine Spitze gefunden, die in einem gewissen Tonhöhenbereich ist, welcher der Relation mit einer Tonhöhe eines von dem laufenden Rahmen verschiedenen Rahmens wie beispielsweise eines vorhergehenden Rahmens oder nachfolgenden Rahmens, zum Beispiel in einem Bereich von ± 20% in Bezug auf die Tonhöhe des vorhergehenden Rahmens, genügt, und die Tonhöhe des laufenden Rahmens wird auf der Basis dieser Spitzenposition bestimmt. Der Tonhöhenextraktionsabschnitt 103 führt eine relativ grobe Tonhöhensuche durch eine offene Schleife aus. Die extrahierten Tonhöhendaten werden einem Feintonhöhensuchabschnitt 106 zuge führt, wo durch eine geschlossene Schleife eine feine Tonhöhensuche ausgeführt wird.
  • Vom Tonhöhenextraktionsabschnitt 103 extrahierte ganzzahlig bewertete grobe Tonhöhendaten und Daten auf der Frequenzachse aus dem Orthogonaltransformationsabschnitt 105 werden dem Feintonhöhensuchabschnitt 106 zugeführt. Der Feintonhöhensuchabschnitt 106 erzeugt einen optimalen Feintonhöhendatenwert mit gleitenden Dezimalstellen durch Oszillieren von ± mehreren Abtastwerten mit einer Rate von 0,2 bis 0,5 um den Tonhöhenwert als die Mitte. Als Feinsuchetechnik für die Wahl der Klangfarbe bzw. Tonhöhe wird ein Analyse-durch-Synthese-Verfahren verwendet, so dass das synthetisierte Leistungsspektrum dem Leistungsspektrum des ursprünglichen Tons am nächsten ist.
  • Nachfolgend wird die Feintonhöhensuche erläutert. Im MBE-Decodierer ist ein Modell derart angenommen, dass bei ihm S(j) als mit einer Orthogonaltransformation, beispielsweise FFT, verarbeitete Spektrumdaten auf der Frequenzachse durch S(j) = H(j) |E(j)| 0 < j < J (4)ausgedrückt sind, wobei J mit ωs/4π = fs/2 und folglich mit 4 kHz korrespondiert, wenn die Abtastfrequenz fs = ωs/2π gleich 8 kHz ist. In der Formel (4) stellt in dem Fall, dass die Spektrumdaten S(j) auf der Frequenzachse die wie bei A in 5 gezeigte Wellenform aufweisen, H(j) eine bei B in 5 gezeigte Spektrumeinhüllende bzw. Spektrumenveloppe der ursprünglichen Spektrumdaten S(j) dar, während E(j) ein Spektrum eines bei C in 5 gezeigten gleichpegeligen periodischen Erregungssignals darstellt. Das heißt, das FFT-Spektrum S(j) ist in einem Modell als ein Produkt der Spektrumenveloppe H(j) und dem Leistungsspektrum (E(j) des Erregungssignals angeordnet.
  • Das Leistungsspektrum |E(j)| des Erregungssignals wird durch Anordnen der Spektrumwellenform eines Bandes für jedes Band auf der Frequenzachse auf wiederholte Weise gebildet, bei Berücksichtigung der entsprechend der Tonhöhe bestimmten Periodizität (Tonhöhenstruktur) der Wellenform auf der Frequenzachse. Die Einzelbandwellenform kann durch FFT- Verarbeitung der wie in 4 gezeigt aus der 256-Abtastwerte-Hammingfensterfunktion mit dieser hinzugefügten 0-Daten von 1792 Abtastpunkten bestehenden Wellenform als Zeitachsensignale und durch Teilen der die Bandbreiten auf der Frequenzachse aufweisenden Impulswellenform entsprechend der obigen Tonhöhe gebildet werden.
  • Dann wird für jedes der entsprechend der Tonhöhe geteilten Bänder ein Wert (Amplitude) |Am|, der H(j) darstellt (oder der den Fehler für jedes Band minimiert), gefunden. Wenn ein oberer und unterer Grenzpunkt beispielsweise des m-ten Bandes (Band der m-ten Oberschwingung) auf am bzw. bm eingestellt werden, ist ein Fehler εm des m-ten Bandes durch die Formel
    Figure 00130001
    gegeben. Der den Fehler εm minimierende Wert von |Am| ist durch:
    Figure 00130002
    gegeben. Der Fehler εm wird für |Am| in der obigen Formel (6) minimiert. Eine solche Amplitude |Am| wird für jedes Band gefunden, und es wird der Fehler εm für jedes Band, wie er durch die Formel (5) unter Verwendung jeder Amplitude |Am| definiert ist, gefunden. Die Summe Σεm aller Bänder wird aus den Fehlern εm je Band gefunden. Die Summe Σεm aller Bänder wird für mehrere geringfügig verschiedene Tonhöhen gefunden, und es wird eine Tonhöhe gefunden, welche die Summe Σεm der Fehler minimiert.
  • Es werden mehrere Tonhöhen oberhalb und unterhalb der durch den Tonhöhenextraktionsabschnitt 103 in einem Intervall von beispielsweise 0,25 gefundenen groben Tonhöhe erzeugt. Dann wird die Summe Σεm der Fehler für jede der geringfügig verschiedenen Tonhöhen gefunden. Wenn die Tonhöhe bestimmt ist, wird die Bandbreite bestimmt. Unter Verwendung des Leistungsspektrums |S(j)| der Daten auf der Frequenzachse und des Erregungssignalsspektrums |E(j)| wird der Fehler εm der Formel (5) aus der Formel (6) gefunden, um die Summe Σεm aller Bänder zu finden. Die Summe Σεm wird für jede Tonhöhe gefunden, und eine Tonhöhe, die mit der minimalen Summe der Fehler korrespondiert, wird als eine optimale Tonhöhe bestimmt. Infolgedessen wird in der Feintonhöhensucheinheit 106 die feinste Tonhöhe (beispielsweise als 0,25-Intervall-Tonhöhe) gefunden, um die mit der optimalen Tonhöhe korrespondierende Amplitude |Am| zu bestimmen.
  • Bei der obigen Erläuterung der Feintonhöhensuche ist der Einfachheit halber angenommen, dass alle Bänder stimmhafter Ton sind. Da jedoch im MBE-Vocoder das Modell angenommen ist, bei welchem auf der gleichlaufenden Frequenzachse ein stimmloser Bereich vorhanden ist, ist es notwendig, für jedes Band eine Unterscheidung zwischen dem stimmhaften Ton und dem stimmlosen Ton zu treffen.
  • Daten der optimalen Tonhöhe und Amplitude |Am| werden vom Feintonhöhensuchabschnitt 106 einem Stimmhaft/Stimmlos-Unterscheidungsabschnitt 107 zugeführt, bei welchen eine Stimmhaft/Stimmlos-Unterscheidung für jedes Band ausgeführt wird. Für eine solche Unterscheidung wird ein Rausch-Signal-Verhältnis (NSR) verwendet. Das heißt, NSR für das m-te Band ist durch die Formel (7)
    Figure 00140001
    gegeben. Wenn der NSR-Wert größer als eine vorbestimmte Schwelle von beispielsweise 0,3 ist, das heißt, wenn der Fehler größer ist, kann geschlossen werden, dass die Annäherung von |S(j)| durch |Am| |E(j)| für das Band nicht gut ist, das heißt, das Erregungssignal |E(j)| ist nicht als die Basis ge eignet, so dass das Band als UV (stimmlos) festgestellt wird. Andernfalls kann geschlossen werden, dass die Näherung akzeptabel ist, so dass das Band als V (stimmhaft) festgestellt wird.
  • Einem Amplituden-Wiederauswertungsabschnitt 108 werden vom Orthogonaltransformationsabschnitt 105 Daten auf der Frequenzachse, vom Feintonhöhensuchabschnitt 106 Daten der Amplitude |Am|, die ausgewertet werden, um Feintonhöhendaten zu sein, und aus dem V/UV-Unterscheidungsabschnitt 107 die V/UV-Unterscheidungsdaten zugeführt. Der Amplituden-Wiederauswertungsabschnitt 108 findet wieder die Amplitude für das Band, das vom V/UV-Unterscheidungsabschnitt 107 als stimmlos (UV) festgestellt worden ist. Die Amplitude |Am|UV für dieses UV-Band kann durch
    Figure 00150001
    gefunden werden.
  • Daten aus dem Amplituden-Wiederauswertungsabschnitt 108 werden einem Datenzahl-Umwandlungsabschnitt 109 zugeführt, der ein Abschnitt zur Ausführung einer mit einer Abtastratenumwandlung vergleichbaren Verarbeitung ist. Der Datenzahl-Umwandlungsabschnitt 109 sorgt für eine konstante Zahl von Daten hinsichtlich der Änderungen der Zahl geteilter Bänder auf der Frequenzachse und folglich entsprechend der Tonhöhe der Zahl von Daten, vor allem der Zahl von Amplitudendaten. Das heißt, wenn die effektive Bandbreite eingestellt ist, dass sie bis zu 3400 kHz herauf ist, wird die effektive Bandbreite entsprechend der Tonhöhe in 8 bis 63 Bänder geteilt, und folglich wird die Zahl mMX + 1 der Daten der Amplitude |Am| (einschließlich der Amplitude |Am|UV des UV-Bandes) in einem Bereich von 8 bis 63 geändert. Folglich wandelt der Datenzahl-Umwandlungsabschnitt 109 die variable Zahl mMX + 1 in Daten einer vorbestimmten Zahl NC, beispielsweise 44, um.
  • Bei der vorliegenden Ausführungsform werden Leer- bzw. Dummydaten, die den Wert von den letzten Daten in einem Block zu den ersten Daten im Block interpolieren, zu den Amplitudendaten für den Block eines einzelnen effektiven Bandes auf der Frequenzachse addiert, um die Zahl von Daten auf NF zu erweitern. Die resultierenden Daten werden durch eine bandbreitenbegrenzungsartige Überabtastung mit einem Überabtastungsfaktor KOS, beispielsweise 8, verarbeitet, um Amplitudendaten zu finden, deren Zahl KOS-mal die Zahl der Amplitudendaten vor der Verarbeitung ist. Die Zahl gleich ((mMX + 1) × KOS) der Amplitudendaten wird zur Erweiterung auf eine noch größere Zahl NM, beispielsweise 2048, direkt interpoliert, und die NM Einheiten von Daten werden zur Umwandlung in die oben erwähnte vorbestimmte Zahl NC von Daten, beispielsweise 44, subabgetastet.
  • Daten aus dem Datenzahl-Umwandlungsabschnitt 109, das heißt die oben erwähnten M Einheiten der Amplitudendaten werden zu einem Vektorquantisierungsabschnitt 110 übertragen, bei dem die Daten in Datengruppen gruppiert werden, deren jede aus einer vorbestimmten Zahl von Daten besteht. Die Daten in jeder dieser Datengruppe werden in einem Vektor wiedergegeben und vektorquantisiert. Quantisierte Ausgangsdaten aus dem Vektorquantisierungsabschnitt 110 werden an einem Ausgangsanschluss 111 ausgegeben. Feintonhöhendaten aus dem Feintonhöhensuchabschnitt 106 werden von einem Tonhöhencodierer 115 codiert und über einen Ausgangsanschluss 112 ausgegeben.
  • Die Stimmhaft/Stimmlos-Unterscheidungsdaten (V/UV-Daten) aus dem Stimmhaft/Stimmlos-Ton-Unterscheidungsabschnitt 107 werden über einen Ausgangsanschluss 113 ausgegeben. Es sei darauf hingewiesen, dass die V/UV-Unterscheidungsdaten aus dem V/UV-Unterscheidungsabschnitt 107 Daten (V/UV-Code) sein können, die den Grenzpunkt zwischen dem stimmhaften Bereich und dem stimmlosen Bereich für alle Bänder darstellen, deren Zahl auf etwa 12 reduziert worden ist. Die Daten aus den Ausgangsanschlüssen 111 bis 113 werden als Signale eines vorbestimmten Übertragungsformats übertragen.
  • Diese Daten werden durch Verarbeitung von Daten in jedem aus der Zahl Abtastwerte N, beispielsweise 256 Abtastwerte bestehenden Block erzeugt, Da jedoch die Blöcke auf der Zeitachse mit dem aus L Abtastwerten als eine Einheit bestehenden Rahmen vorgeschoben werden, können die übertragenen Daten auf der Basis der Rahmen als Einheiten erzeugt werden. Das heißt, die Tonhöhendaten, V/UV-Entscheidungsdaten und die Amplitudendaten werden mit einem rahmenbasierten Zyklus aktualisiert.
  • Bezüglich 6 wird eine schematische Anordnung der Synthetisierungsseite (Decodierungsseite) zum Synthetisieren von Sprachsignalen auf der Basis der übertragenen Daten erläutert.
  • Bezüglich 6 werden die oben erwähnten vektorquantisierten Amplitudendaten, die codierten Tonhöhendaten und die V/UV-Entscheidungsdaten an Eingangsanschlüssen 121, 122 bzw. 123 eingegeben. Die quantisierten Amplitudendaten aus dem Eingangsanschluss 121 werden einem inversen Vektorquantisierungsabschnitt 124 zur inversen Quantisierung zugeführt und dann einem inversen Datenzahlumwandlungsabschnitt 125 zur inversen Umwandlung zugeführt. Der inverse Datenzahlumwandlungsabschnitt 125 führt eine Komplementoperation der vom Datenzahlumwandlungsabschnitt 109 ausgeführten Datenzahlumwandlung aus, und resultierende Amplitudendaten werden zu einem Stimmhafttonsyntheseabschnitt 126 und einem Stimmlostonsyntheseabschnitt 127 übertragen. Codierte Tonhöhendaten vom Eingangsanschluss 122 werden von einem Tonhöhendecodierer 128 decodiert und dann zum inversen Datenzahlumwandlungsabschnitt 125, zum Stimmhafttonsyntheseabschnitt 126 und zum Stimmlostonsyntheseabschnitt 127 übertragen. Die V/UV-Entscheidungsdaten vom Eingangsanschluss 123 werden zum Stimmhafttonsyntheseabschnitt 126 und zum Stimmlostonsyntheseabschnitt 127 übertragen.
  • Der Stimmhafttonsyntheseabschnitt 126 synthetisiert eine Stimmhafttonwellenform auf der Zeitachse durch beispielsweise eine Cosinuswellensynthese, und der Stimmlostonsyntheseabschnitt 127 synthetisiert eine Stimmlostonwellenform durch Filterung beispielsweise des Weißrauschens mit einem Bandpassfilter. Die resultierende Stimmhafttonwellenform und re sultierende Stimmlostonwellenform werden durch einen Addierer 129 summiert, um von einem Ausgangsanschluss 130 ausgegeben zu werden. In diesem Fall werden die Amplitudendaten, die Tonhöhendaten und die V/UV-Entscheidungsdaten für jeden aus L Einheiten von beispielsweise 160 Abtastwerten aktualisiert. Jedoch zur Verbesserung einer Interrahmenkontinuität oder – glattheit werden die Werte der Amplitudendaten und der Tonhöhendaten zu Datenwerten in beispielsweise den Mittelabschnitten in einem einzelnen Rahmen gemacht, und Datenwerte bis zur mittleren Position des nächsten Rahmens (ein einzelner Rahmen während der Synthese) werden durch Interpolation gefunden. Das heißt, beispielsweise in einem einzelnen Rahmen während der Synthese von der Mitte des Rahmens zur Analyse bis zur Mitte des nächsten Rahmens zur Analyse werden Datenwerte am Startabtastpunkt und die am Anschluss- bzw. Endeabtastpunkt (oder am Startpunkt des nächsten Syntheserahmens) erzeugt, und Datenwerte zwischen diesen Abtastpunkten werden durch Interpolation gefunden.
  • Wenn andererseits der oben erwähnte V/UV-Code als V/UV-Entscheidungsdaten übertragen wird, können alle Bänder in einem Grenzpunkt entsprechend dem V/UV-Code in den stimmhaften Tonbereich (V-Bereich) und den stimmlosen Tonbereich (UV-Bereich) geteilt werden, und die V/UV-Entscheidungsdaten können entsprechend der Abgrenzung erzeugt werden. Es ist eine Selbstverständlichkeit, dass bei Reduzierung der Zahl Bänder auf der Syntheseseite (Codiererseite) auf eine vorbestimmte Zahl von beispielsweise 12 Bändern die Zahl der Bänder in der mit der ursprünglichen Tonhöhe übereinstimmenden variablen Zahl gelöst oder wiedergewonnen werden können.
  • Es wird die Syntheseverarbeitung durch den Stimmhafttonsyntheseabschnitt 126 detailliert erläutert.
  • Wenn der stimmhafte Ton für einen einzelnen Syntheserahmen (aus L Abtastwerten, beispielsweise 160 Abtastwerte) auf der Zeitachse des als der stimmhafte Ton unterschiedenen m-ten Bandes gleich Vm(n) ist, kann er durch Vm(n) = Am(n) cos(θm(n)) 0 ≤ n < L (9) ausgedrückt werden, wobei der Zeitindex (Abtastwertzahl) im Syntheserahmen verwendet wird. Die stimmhaften Töne aller als stimmhafte Töne unterschiedenen Bänder werden summiert (ΣVm(n)), um einen entgültigen stimmhaften Ton V(n) zu synthetisieren.
  • In der obigen Formel (9) ist Am(n) die Amplitude der vom Startrand bis zum Anschluss- bzw. Enderand des Syntheserahmens interpolierten m-ten Oberschwingungen ist. Am einfachsten reicht es aus, den Wert der m-ten Oberschwingungen der auf der rahmenweisen Basis aktualisierten Amplitudendaten zu interpolieren. Das heißt, es reicht aus, Am(n) aus der folgenden Formel Am(n) = (L – n)A0m/L + nALm/L (10)zu berechnen, wobei A0m der Amplitudenwert der m-ten Oberschwingungen auf dem Startrand (n = 0) des Syntheserahmens ist und ALm der Amplitudenwert der m-ten Oberschwingungen des Enderandes des Syntheserahmens (n = L: auf dem Startrand des nächsten Syntheserahmens) ist.
  • Die Phase θm(n) in der obigen Formel (9) kann durch θm(n) = mω01n + n2m(ωL1 – ω01)/2L + Φ0m + Δωn (11)gefunden werden, wobei Φ0m die Phase der m-ten Oberschwingungen auf dem Startrand des Syntheserahmens (n = 0) (oder die Anfangsphase bzw. initiale Phase des Rahmens) ist, und ω01 die fundamentale Winkelfrequenz auf dem Startrand des Syntheserahmens (n = 0) ist. ωL1 ist die fundamentale Winkelfrequenz auf dem Enderand des nächsten Syntheserahmens (n = L). Δω in der obigen Formel (11) ist minimal eingestellt, so dass die Phase ΦLM für n = L gleich θm(L) ist.
  • Die Art und Weise, wie die Amplitude Am(n) und die Phase θm(n) für ein beliebiges m-tes Band entsprechend den Ergebnissen der V/UV-Unterscheidung für n = 0 und n = L gefunden wird, wird nachfolgend erläutert.
  • Wenn das m-te Band sowohl für n = 0 als auch n = L ein stimmhafter Ton ist, kann die Amplitude Am(n) durch lineare Interpolation der übertragenen Amplitudenwerte A0m und ALm aus der obigen Formel (10) berechnet werden. Was die Phase θm(L) betrifft, wird θω so eingestellt, dass θm(0) = Φ0m für n = 0 und θm(L) = ΦLm für n = L gilt.
  • Wenn für n = 0 der Ton V (stimmhaft) ist und für n = L gleich UV (stimmlos) ist, wird die Amplitude Am(n) linear interpoliert, so dass die Amplitude Am(0) bei Am(L) aus der übertragenen Amplitude A0m für Am(0) gleich 0 wird. Der übertragene Amplitudenwert ALm für n = L ist der Amplitudenwert für den stimmlosen Ton und wird, wie später erläutert, zum Synthetisieren des stimmlosen Tones angewendet. Die Phase θm(n) wird so eingestellt, dass θm(0) = Φ0m und θω = 0 gilt.
  • Wenn für n = 0 der Ton W (stimmlos) und für n = L stimmhaft (V) ist, wird die Amplitude Am(n) linear interpoliert, so dass die Amplitude Am(0) für n = 0 gleich 0 ist und gleich der übertragenen Amplitude ALm für n = L wird. Was die Phase θm(n) betrifft, die den Phasenwert θLm auf dem Enderand des Rahmens als die Phase θm(0) für n = 0 verwendet, so ist θm(0) durch θm(0) = θLm – m(ω01 + wL1)L/2 (12) ausgedrückt, wobei Δω = 0 gilt.
  • Es wird die Technik des Einstellens von Δθ so, dass θm(L) gleich ΦLm ist, wenn sowohl für n = 0 als auch n = L der Ton V (stimmhaft) ist, erläutert. Durch Setzen von n = L in der obigen Formel (11) wird die folgende Formel θm(L) = mω01L + L2m(ωL1 – ω01)/2L + Φ0m + ΔωL = m (ω01 + ωL1)L/2 + Φ0m + ΔωL = ΦLm erhalten. Die obige Formel kann so geordnet werden, dass sie Δω = (mod2π((ΦLm – Φ0m) – mL(ω01 + ωL1)/2)/L(13) ergibt, wobei mod2π(x) eine Funktion ist, die den Hauptwert von x zwischen –π und +π zurückbringt. Wenn beispielsweise x = 1,3π gilt, so gilt mod2π(x) = –0,7π. Wenn x = 2,3π gilt, so gilt mod2π(x) = 0,3π, und wenn x = –1,3π gilt, gilt mod2π(x) = 0,7π.
  • Die 7A zeigt ein Beispiel eines Spektrums stimmhafter Signale, wobei die Bänder mit den Bandzahlen (Oberschwingungszahlen) von 8, 9 und 10 von UV-Tönen (stimmlosen Tönen) und die verbleibenden Bänder von V-Tönen (stimmhaften Tönen) sind. Die Zeitachsensignale der Bänder der V-Töne werden vom Stimmhafttonsyntheseabschnitt 126 synthetisiert, und die Zeitachsensignale der Bänder der UV-Töne werden vom Stimmlostonsyntheseabschnitt 127 synthetisiert.
  • Wenn jedoch der stimmhafte Bandbereich (V-Bandbereich) und der stimmlose Bandbereich (UV-Bandbereich) anders voneinander abgegrenzt sind als von einem einzigen Punkt, kann der übertragene V/UV-Code auf 7 gesetzt werden, während alle anderen Bänder mit m nicht kleiner als 8 als stimmloser Bandbereich gemacht werden können. Alternativ dazu kann der V/UV-Code, der alle Bänder V (stimmhaft) macht, übertragen werden.
  • Es wird die Operation der Synthetisierung von UV-Tönen durch den UV-Tonsyntheseabschnitt 127 erläutert.
  • Die Weißrauschensignalform auf der Zeitachse von einem Weißrauschengenerator 131 wird mit einer geeigneten Fensterfunktion (beispielsweise ein Hammingfenster) bei einer vorbestimmten Länge (beispielsweise 256 Abtastwerte) multipliziert und von einem STFT-Prozessor 132 mit einer Kurztermfouriertransformation (= STFT) verarbeitet, wodurch ein Leistungsspektrum des Weißrauschens auf der Frequenzachse wie bei B in 7 gezeigt erzeugt wird. Das Leistungsspektrum aus dem STFT-Prozessor 132 wird zu einem Bandpassfilter 133 übertragen, wo das Spektrum mit der Amplitude |Am|UV für die UV-Bänder (beispielsweise m = 8, 9 oder 10) multipliziert wird, wie es bei C in 7 gezeigt ist, während die Amplitude der V-Bänder auf 0 gesetzt wird. Dem Bandpassfilter 133 werden auch die oben erwähnten Amplitudendaten, Tonhöhendaten und V/UV-Entscheidungsdaten zugeführt.
  • Da der V/UV-Code, der nur einen einzelnen Grenzpunkt zwischen dem stimmhaften Bereich (V-Bereich) und dem stimmlosen Bereich (UV-Bereich) aller Bänder bezeichnet, als die V/UV-Entscheidungsdaten verwendet wird, werden die Bänder in Richtung zur niedrigeren Frequenz des bezeichneten Grenzpunktes als die stimmhaften Bänder (V-Bänder) gesetzt, und die Bänder in Richtung zur höheren Frequenz des bezeichneten Grenzpunktes werden als die stimmlosen Bänder (UV-Bänder) ge setzt. Die Zahl dieser Bänder kann auf eine vorbestimmte kleinere Zahl, beispielsweise 12, reduziert werden.
  • Ein Ausgangssignal aus dem Bandpassfilter 133 wird einem ISTFT-Prozessor 134 zugeführt, während die Phase mit einer inversen STFT-Verarbeitung unter Verwendung der Phase des ursprünglichen Weißrauschens zur Umwandlung in Signale auf der Zeitachse verarbeitet wird. Ein Ausgangssignal aus dem ISTFT-Prozessor 134 wird zu einem Überlapp- und Addierabschnitt 135 übertragen, wo eine Überlappung und Addition mit einer geeigneten Gewichtung auf der Zeitachse wiederholt ausgeführt wird, um die Wiederherstellung der ursprünglichen kontinuierlichen Rauschwellenform zu ermöglichen, wodurch die kontinuierliche Wellenform auf der Zeitachse synthetisiert wird. Ein Ausgangssignal aus dem Überlapp- und Addierabschnitt 135 wird dem Addierer 129 zugeführt.
  • Die auf diese Weise in den Syntheseabschnitten 126, 127 synthetisierten und als die Zeitachsensignale wiederhergestellten V- und UV-Signale werden vom Addierer 129 mit einer festen Mischrate summiert, und dann werden die wiedergegebenen Signale vom Ausgangsanschluss 130 ausgegeben.
  • Indessen können die Anordnung der in 1 gezeigten Sprachanalyseseite (Codiererseite) und die Anordnung der in 6 gezeigten Sprachsyntheseseite (Decodiererseite), die als Hardwarekomponenten beschrieben worden sind, auch durch ein Softwareprogramm realisiert werden, das einen Digitalsignalprozessor (DSP) verwendet.
  • Als nächstes werden unter Bezugnahme auf die Zeichnungen konkrete Beispiele jedes Teils und Abschnitts des oben erwähnten Synthese-Analyse-Codierers oder Vocoders für Sprachsignale detailliert erläutert.
  • Zuerst wird ein konkretes Beispiel eines Tonhöhenextraktionsverfahrens durch den in 1 gezeigten Tonhöhenextraktionsabschnitt 103, das heißt ein konkretes Beispiel eines Tonhöhenextraktionsverfahrens zur Extraktion der Tonhöhe aus der stimmhaften Eingangssignalwellenform erläutert.
  • Die Sprachtöne werden in stimmhafte Töne und stimmlose Töne geteilt. Die stimmlosen Töne, die Töne ohne Schwingungen der Stimmbänder sind, werden als nicht periodisches Rauschen beobachtet. Normalerweise sind die Majorität von Sprachtönen stimmhafte Töne, und die stimmlosen Töne sind besondere Konsonanten, die als stimmlose Konsonanten bezeichnet werden. Die Periode der stimmhaften Töne wird durch die Periode von Schwingungen der Stimmbänder bestimmt und als eine Tonhöhenperiode bezeichnet, deren Kehrwert als Tonhöhenfrequenz bezeichnet wird. Die Tonhöhenperiode und die Tonhöhenfrequenz sind wichtige Determinanten der Höhe und Intonation von Stimmen bzw. Sprachen. Deshalb ist unter den Prozessen der Sprachsynthese zum Analysieren und Synthetisieren von Sprachen eine exakte, nachfolgend als Tonhöhenextraktion bezeichnete Extraktion der Tonhöhenperiode der ursprünglichen Sprachwellenform wichtig.
  • Das oben erwähnte Tonhöhenextraktionverfahren wird als Wellenformverarbeitungsverfahren zum Detektieren wird eingeteilt in die Kategorien Wellenformverarbeitungsverfahren zum Detektieren der Spitze der Periode auf der Wellenform, Korrelationsverarbeitungsverfahren, welches die Stärke der Korrelationsverarbeitung auf die Wellenformverzerrung verwendet, und Spektrumverarbeitungsverfahren, welches eine periodische Frequenzstruktur des Spektrums verwendet.
  • Ein Autokorrelationsverfahren, das eines der Korrelationsverfahren ist, wird unter Bezugnahme auf die 8 erläutert. Die 8A zeigt eine Eingangssprachtonwellenform x(n) für 300 Abtastwerte, und die 8B zeigt eine Wellenform, die durch Finden einer Autokorrelationsfunktion des in 8A gezeigten x(n) erzeugt wird. Die 8C zeigt eine Wellenform C[x(n)], die durch ein Mitteabschneiden bzw. Mitteclipping bei einem in 8A gezeigten Abschneide- bzw. Clippingpegel CL erzeugt wird, und 8D zeigt eine Wellenform Rc(k) die durch Finden der Autokorrelation des in 8C gezeigten C[x(n)] erzeugt wird.
  • Die Autokorrelationsfunktion der in 8A gezeigten Eingangssprachwellenform x(n) für 300 Abtastwerte ergibt sich wie oben beschrieben als eine in 8B gezeigte Wellenform Rx(k). Bei der Wellenform Rx(k) der in 8B gezeigten Au tokorrelationsfunktion wird bei der Tonhöhenperiode eine starke Spitze gefunden. Jedoch wird auch eine Zahl exzessiver Spitzen aufgrund von Dämpfungsschwingungen der Stimmbänder beobachtet. Zur Reduzierung dieser exzessiven Spitzen ist es denkbar, die Autokorrelationsfunktion von der in 8C gezeigten Mitteabschneide- bzw. Mitteclipwellenform C[x(n)] zu finden, bei der die Wellenform, die im absoluten Wert kleiner als der in 8A gezeigte Clippingpegel ± CL ist, unterdrückt ist. In diesem Fall bleiben in der in 8C gezeigten, in der Mitte abgeschnittenen bzw. geclipten Wellenform C[x(n)] nur mehrere Impulse beim ursprünglichen Tonhöhenintervall, und in der daraus gefundenen Wellenform der Autokorrelationsfunktion Re(k) sind exzessive Spitzen reduziert.
  • Die durch die obige Tonhöhenextraktion erhaltene Tonhöhe ist, wie oben beschrieben, eine wichtige Determinante der Höhe und Internotation von Stimmen. Die präzise Tonhöhenextraktion aus der ursprünglichen Stimmenwellenform ist beispielsweise für eine hocheffiziente Codierung von Stimmenwellenformen angenommen.
  • Indessen ist beim Finden der Tonhöhe aus der Spitze der Autokorrelation der Eingangssprachsignalwellenform der Clippingpegel konventionell so eingestellt worden, dass die Spitze durch das mittige Clipping als scharf erscheinend gefunden wird. Speziell ist der Clippingpegel so niedrig eingestellt worden, dass das Fehlen des Signals eines winzigen Pegels aufgrund des Clippings vermieden ist.
  • Wenn demgemäss scharfe Fluktuationen des Eingangspegels, beispielsweise ein Einstellen des Sprachtons mit dem niedrigen Clippingpegel vorhanden ist, werden zu dem Zeitpunkt exzessive Spitzen erzeugt, bei dem der Eingangspegel erhöht ist. Infolgedessen wird der Effekt des Clippings kaum erhalten, wobei die Gefahr einer Instabilität der Tonhöhenextraktion zurückbleibt.
  • Infolgedessen wird nachfolgend ein erstes konkretes Beispiel des Tonhöhenextraktionsverfahrens erläutert, bei dem eine sichere Tonhöhenextraktion auch dann möglich ist, wenn der Pegel der Eingangssprachwellenform in einem einzelnen Rahmen scharf geändert wird.
  • Das heißt, bei dem ersten Beispiel des Tonhöhenextraktionsverfahrens wird die einzugebende Sprachsignalwellenform auf der blockweisen Basis ausgegeben. Bei dem Tonhöhenextraktionsverfahren zur Extraktion der Tonhöhe auf der Basis des zentral bzw. mittig geklippten Ausgangssignals wird der Block in mehrere Subblöcke geteilt, um einen Pegel zum Clipping jedes der Subblöcke zu finden, und beim mittigen Abschneiden bzw. Clippen des Eingangssignals wird der Clippingpegel im Block auf der Basis des für jeden der Subblöcke gefundenen Pegels zum Clipping geändert.
  • Auch wenn es eine große Fluktuation des Spitzenpegels zwischen benachbarten Subblöcken unter den mehreren Subblöcken in dem Block gibt, wird der Clippingpegel beim mittigen Clipping im Block geändert.
  • Der Clippingpegel beim mittigen Clippling kann im Block stufenweise oder kontinuierlich geändert werden.
  • Gemäß diesem ersten Beispiel des Tonhöhenextraktionsverfahrens wird die auf der blockweisen Basis ausgegebene Eingangssprachsignalwellenform in mehrere Subblöcke geteilt, und der Clippingpegel wird innerhalb des Blocks auf der Basis des für jeden der Subblöcke gefundenen Pegels zum Clipping geändert, wodurch eine sichere Tonhöhenextraktion ausgeführt wird.
  • Außerdem wird beim Vorhandensein einer großen Fluktuation des Spitzenpegels zwischen benachbarten Subblöcken unter den mehreren Subblöcken der Clippingpegel innerhalb des Blocks geändert, wodurch eine sichere Tonhöhenextraktion realisiert wird.
  • Das erste konkrete Beispiel des Tonhöhenextraktionsverfahrens wird unter Bezugnahme auf die Zeichnungen erläutert.
  • Die 9 ist ein funktionelles Blockschaltbild zur Darstellung der Funktion der vorliegenden Ausführungsform des Tonhöhenextraktionsverfahrens gemäß der vorliegenden Erfindung.
  • Bezüglich 9 sind bei diesem Beispiel vorgesehen: ein Blockextraktionsverarbeitungsabschnitt 10 zum Ausgeben eines von einem Eingangsanschluss 1 zugeführten Eingangssprachsignals auf der blockweisen Basis, ein Clippingpegeleinstellungsabschnitt 11 zum Einstellen des Clippingpegels von einem einzelnen Block des vom Blockextraktionsverarbeitungsabschnitts 10 extrahierten Eingangssprachsignals, ein Mitteclipverarbeitungsabschnitt 12 zum mittigen Clipping eines einzelnen Blocks des Eingangssprachsignals bei dem vom Clippingpegeleinstellabschnitt 11 eingestellten Clippingpegel, ein Autokorrelationsberechnungsabschnitt 13 zur Berechnung einer Autokorrelation von der Mitteclipwellenform aus dem Mitteclipverarbeitungsabschnitt 12, und ein Tonhöhenkalkulator 14 zur Berechnung der Tonhöhe aus der Autokorrelationswellenform aus dem Autokorrelationsberechnungsabschnitt 13.
  • Der Clippingpegeleinstellungsabschnitt 11 weist auf: einen Subblockteilungsabschnitt 15 zur Teilung eines einzelnen Blocks des vom Blockextraktionsabschnitt 10 zugeführten Eingangssprachsignals in mehrere Subblöcke (bei der vorliegenden Ausführungsform zwei Subblöcke, das heißt eine erste und letzte Hälfte), eine Spitzenpegelextraktionseinheit 16 zur Extraktion des Spitzenpegels sowohl im ersten halben als auch letzten halben Subblock des zum Subblockteilungsabschnitt 15 geteilten Eingangssprachsignals, einen Maximumspitzenpegeldetektionsabschnitt 17 zum Detektieren des Maximumspitzenpegels in der ersten und letzten Hälfte von dem vom Spitzenpegelextraktionsabschnitt 16 extrahierten Spitzenpegel, einen Komparator 18 zum Vergleichen des Maximumspitzenpegels in der ersten Hälfte und des Maximumspitzenpegels in der letzten Hälfte aus dem Maximumspitzenpegeldetektorabschnitt 17 unter gewissen Bedingungen, und einen Clippingspegelsteuerungsabschnitt 19 zum Einstellen des Clippingspegels aus Ergebnissen des Vergleichs durch den Komparator 18 und der zwei vom Maximumspitzenpegeldetektorabschnitt 17 detektierten Maximumspitzenpegel und zur Steuerung des zentralen Clipverarbeitungsabschnitt 12.
  • Der Spitzenpegelextraktionsabschnitt 16 ist durch Subblockspitzenpegelextraktionsabschnitte 16a, 16b gebildet. Der Subblockspitzenpegelextraktionsabschnitt 16a extrahiert den Spitzenpegel aus der durch Teilung des Blocks durch den Subblockteilungsabschnitt 15 erzeugten ersten Hälfte. Der Subblockspitzenpegelextraktionsabschnitt 16b extrahiert den Spitzenpegel aus der durch Teilung des Blocks durch den Subblockteilungsabschnitt 15 erzeugten letzten Hälfte.
  • Der Maximumspitzenpegeldetektionsabschnitt 17 ist durch Subblockmaximumspitzenpegeldetektoren 17a, 17b gebildet. Der Subblockmaximumspitzenpegeldetektor 17a detektiert den Maximumspitzenpegel der ersten Hälfte aus dem vom Subblockspitzenpegelextraktionsabschnitt 16a extrahierten Spitzenpegel der ersten Hälfte. Der Subblockmaximimspitzenpegeldetektor 17b detektiert den Maximumspitzenpegel der letzten Hälfte aus dem vom Subblockspitzenpegelextraktionsabschnitt 16b extrahierten Spitzenpegel der letzten Hälfte.
  • Als nächstes werden eine Operation der aus dem in 9 gezeigten funktionellen Block gebildeten vorliegenden Ausführungsform unter Bezugnahme auf ein in 10 gezeigtes Flussdiagramm und eine in 11 gezeigte Wellenform erläutert.
  • Zuerst wird im Flussdiagramm der 10 beim in Gang bringen der Operation beim Schritt S1 eine Eingangssprachsignalwellenform auf der blockweisen Basis ausgegeben. Insbesondere wird das Eingangssprachsignal mit einer Fensterfunktion multipliziert und an dem Eingangssprachsignal eine partielle Überlappung ausgeführt, um die Eingangssprachsignalwellenform auszuschneiden. Infolgedessen wird die in 11A gezeigte Eingangssprachsignalwellenform eines einzelnen Rahmens (256 Abtastwerte) erzeugt. Dann geht die Operation zum Schritt S2 vor.
  • Beim Schritt S2 wird ein einzelner Block des beim Schritt S1 ausgegebenen Eingangssprachsignals weiter in mehrere Subblöcke geteilt. Beispielsweise wird bei der in 11A gezeigten Eingangssprachsignalwellenform eines einzelnen Blocks die erste Hälfte auf n = 0, 1, ..., 127 gesetzt, und die letzte Hälfte wird auf n = 128, 129, ..., 255 gesetzt. Dann geht die Operation zum Schritt S3 vor.
  • Beim Schritt S3 werden Spitzenpegel der Eingangssprachsignale in der beim Schritt S2 durch Teilung erzeugten ersten und letzten Hälfte extrahiert. Diese Extraktion ist die Operation des in 9 gezeigten Spitzenpegelextraktionsabschnitts 16.
  • Beim Schritt S4 werden Maximumspitzenpegel P1 und P2 in den jeweiligen Subblöcken aus den beim Schritt S3 extrahierten Spitzenpegeln in der ersten und letzten Hälfte detektiert. Diese Detektion ist die Operation des in 9 gezeigten Maximumspitzenpegeldetektionsabschnitts 17.
  • Beim Schritt S5 werden die beim Schritt S4 jeweils detektierten Maximumspitzenpegel P1 und P2 in der ersten und letzten Hälfte unter gewissen Bedingungen miteinander verglichen, und es wird eine Detektion ausgeführt, ob die Pegelfluktuation der Eingangssprachsignalwellenform in einem einzelnen Rahmen scharf ist oder nicht. Die erwähnten Bedingungen sind hier, dass der Maximumspitzenpegel P1 der ersten Hälfte kleiner ist als der vom Maximumspitzenpegel P2 der letzten Hälfte durch Multiplikation mit einem Koeffizienten k (0 < k < 1) erzeugte Wert ist, oder dass der Maximumspitzenpegel P2 der letzten Hälfte kleiner als der vom Maximumspitzenpegel P1 der ersten Hälfte durch Multiplikation mit einem Koeffizienten k (0 < k < 1) erzeugte Wert ist. Demgemäss werden bei diesem Schritt S5 die Maximumspitzenpegel P1 und P2 der ersten bzw. letzten Hälfte miteinander auf die Bedingung p1 < k·P2 oder k·P1 > P2 hin verglichen. Dieser Vergleich ist die Operation des in 9 gezeigten Komparators 18. Als Ergebnis des Vergleichs der Maximumspitzenpegel P1 und P2 der ersten bzw. letzten Hälfte unter den oben erwähnten Bedingungen beim Schritt S5 geht die Operation bei der Feststellung, dass die Pegelfluktuation des Eingangssprachsignals groß ist (JA) zum Schritt S6 vor. Wenn festgestellt wird, dass die Pegelfluktuation des Eingangssprachsignals nicht groß ist (NEIN), geht die Operation zum Schritt S7 vor.
  • Beim Schritt S6 wird entsprechend dem Ergebnis der Entscheidung beim Schritt S5, dass die Fluktuation des Maximumpegels groß ist, eine Berechnung mit verschiedenen Clippingpegeln ausgeführt. In der 11B zum Beispiel sind der Clippingpegel in der ersten Hälfte (0 < n < 127) und der Clippingpegel in der letzten Hälfte (128 < n < 255) auf k·P1 bzw. k·P2 eingestellt.
  • Andererseits wird beim Schritt S7 entsprechend dem Ergebnis der Entscheidung beim Schritt S5, dass die Pegelfluktuation des Eingangssprachsignals in einem Block nicht groß ist, eine Berechnung mit einem einheitlichen Clippingpegel ausgeführt. Beispielsweise wird vom Maximumspitzenpegel P1 und Maximumspitzenpegel P2 der kleinere mit k multipliziert, um k·P1 oder k·P2 zu erzeugen. k·P1 oder k·P2 wird dann abgeschnitten bzw. geclipt und gesetzt.
  • Diese Schritte S6 und S7 sind Operationen der in 9 gezeigten Clippingpegelsteuerungseinheit 19.
  • Beim Schritt S8 wird eine Mitteclipverarbeitung eines einzelnen Blocks der Eingangssprachwellenform bei einem beim Schritt S6 oder S7 eingestellten Clippingpegel ausgeführt. Die Mitteclipverarbeitung ist die Operation des in 9 gezeigten Mitteclipverarbeitungsabschnitts 12. Dann geht die Operation zum Schritt S9 vor.
  • Beim Schritt S9 wird die Autokorrelationsfunktion aus der von der Mitteclipverarbeitung beim Schritt S8 erhaltenen Mitteclipwellenform berechnet. Diese Berechnung ist die Operation der in 9 gezeigten Autokorrelationsberechnungseinheit 13. Dann geht die Operation zum Schritt S10 vor.
  • Beim Schritt S10 wird die Tonhöhe von der beim Schritt S9 gefundenen Autokorrelationsfunktion extrahiert. Diese Tonhöhenextraktion ist die Operation des in 9 gezeigten Tonhöhenberechnungsabschnitts 14.
  • Die 11A zeigt die Eingangssprachsignalwellenform, wobei ein einzelner Block aus 256 Abtastwerten von N = 0, 1, ..., 255 besteht. In der 11A ist die erste Hälfte auf N = 0, 1, ..., 127 eingestellt, und die letzte Hälfte ist auf N = 128, 129, ..., 255 eingestellt. Die Maximumspitzenpegel des Absolutwerts der Wellenform werden innerhalb von 100 Abtastwerten von N = 0, 1, ..., 99 in der ersten Hälfte bzw. innerhalb von 100 Abtastwerten von N = 156, 157, ..., 255 gefunden. Die auf diese Weise gefundenen Maximumspitzenpegel sind P1 bzw. P2. Wenn der Wert k wie in 11A gezeigt auf 0,6 für P1 = 1 und P2 = 3 eingestellt sind, gilt die folgende Formel P1 (= 1) < k·P2 (= 1,8).
  • In diesem Fall wird für die große Pegelfluktuation der Eingangssprachsignalwellenform der Clippingpegel der ersten Hälfte auf k·P1 = 0,6 eingestellt, und der Clippingpegel der letzten Hälfte wird auf k·P2 = 1,8 eingestellt. Diese Clippingpegel sind in der 11B gezeigt. Eine mit dem Mitteclipping bei den in 11B gezeigten Clippingpegeln verarbeitete Wellenform ist in der 11C gezeigt. Die Autokorrelationsfunktion der in 11C gezeigten mittegeklippten Wellenform wird so genommen, dass sie wie in 11D gezeigt ist. Aus der 11D kann die Tonhöhe berechnet werden.
  • Der Clippingpegel beim Mitteclipverarbeitungsabschnitt 12 kann nicht nur wie oben beschrieben fortschreitend im Block geändert werden, sondern auch wie durch eine gestrichelte Linie in 118 gezeigt kontinuierlich.
  • Bei Anwendung des ersten Beispiels des Tonhöhenextraktionsverfahrens auf den in Bezug auf die 1 bis 7 erläuterten MBE-Vocoder wird die Tonhöhenextraktion des Tonhöhenextraktionsabschnitts 103 durch Detektieren des Spitzenpegels des Signals jedes durch Teilen des Blocks erzeugten Subblocks und fortschreitende oder kontinuierliche Änderung des Clippingpegels, wenn die Differenz der Spitzenpegel dieser Subblocks ungleich 0 ist, ausgeführt. Infolgedessen kann auch beim Vorhandensein einer scharfen Fluktuation des Spitzenpegels die Tonhöhe sicher extrahiert werden.
  • Das heißt, gemäss dem ersten Beispiel des Tonhöhenextraktionsverfahrens wird durch Ausgeben des Eingangssprachsignals auf der blockweisen Basis, Teilen des Blocks in mehrere Subblöcke und Ändern des Clippingpegels des mittegeclippten Signals auf der blockweisen Basis entsprechend dem Spitzenpegel für jeden der Subblöcke eine sichere Tonhöhenextraktion möglich gemacht.
  • Außerdem wird entsprechend dem Tonhöhenextraktionsverfahren, wenn die Fluktuation der Spitzenpegel benachbarter Subblöcke unter den mehreren Subblöcken groß ist, der Clippingpegel für jeden Block geändert. Infolgedessen wird auch beim Vorhandensein scharfer Fluktuationen, beispielsweise Anstieg und Abfall von Stimme bzw. Sprache, eine sichere Tonhöhenextraktion möglich.
  • Indessen ist das erste Beispiel des Tonhöhenextraktionsverfahrens nicht auf das durch die Zeichnungen gezeigte Beispiel beschränkt. Das hocheffiziente Codierungsverfahren, auf welches das erste Beispiel angewendet ist, ist nicht auf dem MBE-Vocoder beschränkt.
  • Andere Beispiele, d. h. das zweite und dritte Beispiel des Tonhöhenextraktionsverfahrens werden unter Bezugnahme auf die Zeichnungen erläutert.
  • Generell besteht bei Beobachtung der Autokorrelation des Eingangssprachsignals eine hohe Wahrscheinlichkeit, dass das Maximum der Spitzen die Tonhöhe ist. Wenn jedoch die Spitzen der Autokorrelation wegen der Pegelfluktuation des Eingangssprachsignals oder des Hintergrundrauschens nicht klar erscheinen, kann eine korrekte Tonhöhe nicht mit einer eingefangenen Tonhöhe, die ein Ganzzahligfaches größer ist, erhalten werden, oder es wird festgestellt, dass keine Tonhöhe vorhanden ist. Es ist auch denkbar, zur Vermeidung des obigen Problems einen erlaubten Bereich der Tonhöhenfluktuationen zu begrenzen. Es ist jedoch unmöglich, einer scharfen Änderung der Tonhöhe eines einzelnen Sprechers oder einem Alternieren zweier oder mehrerer Sprecher, die beispielsweise kontinuierliche Änderungen zwischen männlichen Stimmen und weiblichen Stimmen verursachen, zu folgen.
  • Infolgedessen wird ein konkretes Beispiel des Tonhöhenextraktionsverfahrens vorgeschlagen, bei dem die Wahrscheinlichkeit des Einfangens einer falschen Tonhöhe niedrig wird und bei dem die Tonhöhe stabil extrahiert werden kann.
  • Das heißt, das zweite Beispiel des Tonhöhenextraktionsverfahrens weist die Schritte auf: Abgrenzen eines Eingangssprachsignals auf der rahmenweisen Basis, Detektieren mehrerer Spitzen von Autokorrelationsdaten eines laufenden Rahmens, Finden einer Spitze unter den detektierten mehreren Spitzen des gegenwärtigen bzw. laufenden Rahmens und innerhalb eines eine vorbestimmte Relation mit einer in einem vom laufenden Rahmen verschiedenen Rahmen gefundenen Tonhöhe erfüllenden Tonhöhenbereichs und Feststellen der Tonhöhe des laufenden Rahmens auf der Basis der Position der auf die obige Art und Weise gefundenen Spitze.
  • Mit der hohen Zuverlässigkeit der Tonhöhe des laufenden Rahmens werden mehrere Tonhöhen des laufenden Rahmens durch die Position der Maximumspitze bestimmt, wenn das Maximum unter den mehreren Spitzen des laufenden Rahmens gleich oder größer als eine vorbestimmte Schwelle ist, und die Tonhöhe des laufenden Rahmens wird durch die Position der Spitze in dem Tonhöhenbereich bestimmt, der eine vorbestimmte Relation mit der in einem vom laufenden Rahmen verschiedenen Rahmen gefundenen Tonhöhe erfüllt, wenn die Maximumspitze kleiner als die vorbestimmte Schwelle ist.
  • Indessen weist das dritte Beispiel des Tonhöhenextraktionsverfahrens die Schritte auf: Abgrenzen eines Eingangssprachsignals auf der rahmenweisen Basis, Detektieren aller Spitzen aus Autokorrelationsdaten eines laufenden Rahmens, Finden einer Spitze unter allen detektierten Spitzen des laufenden Rahmens und innerhalb eines Tonhöhenbereichs, der eine vorbestimmte Relation mit einer in einem vom laufenden Rahmen verschiedenen Rahmen gefundenen Spitze erfüllt, und Feststellen der Tonhöhe des laufenden Rahmens auf der Basis der Position der auf die obige Art und Weise gefundenen Spitze.
  • Bei dem Prozess der Ausgabe des Eingangssprachsignals auf der rahmenweisen Basis mit entlang der Zeitachse fortschreitenden Blöcken als Einheiten wird das Eingangssprachsignal in Blöcke geteilt, deren jeder aus einer vorbestimmten Zahl N Abtastwerten, beispielsweise 256 Abtastwerte, besteht und entlang der Zeitachse in einem Rahmenintervall von L Ab tastwerten, beispielsweise 160 Abtastwerte, das einen Überlappungsbereich von (N–L) Abtastwerten, beispielsweise 96 Abtastwerte, aufweist, bewegt.
  • Der Tonhöhenbereich, der die vorbestimmte Relation erfüllt, ist beispielsweise ein a- bis b-mal, beispielsweise 0,8- bis 1,2-mal größerer Bereich als eine feste Tonhöhe eines vorhergehenden Rahmens.
  • Bei Abwesenheit der fixierten Tonhöhe in dem vorhergehenden Rahmen wird eine typische Tonhöhe verwendet, die für jeden Rahmen gehalten wird und für eine Person, die das Objekt der Analyse sein soll, typisch ist, und der Ort der Tonhöhe wird unter Verwendung der Tonhöhe in dem a- bis b-fachen, beispielsweise 0,8- bis 1,2-fachen Bereich der typischen Tonhöhe verfolgt.
  • Außerdem wird in dem Fall, dass die Person plötzlich eine Stimme einer von der letzten Tonhöhe verschiedenen Tonhöhe erhebt, wird der Ort der Tonhöhe unter Verwendung einer Tonhöhe verfolgt, die ungeachtet der vergangenen Tonhöhe im laufenden Rahmen Tonhöhen springen oder überspringen kann.
  • Gemäß dem zweiten Beispiel des Tonhöhenextraktionsverfahrens kann die Tonhöhe des laufenden Rahmens auf der Basis der Position derjenigen Spitze unter den mehreren Spitzen bestimmt werden, die von den Autokorrelationsdaten des laufenden Rahmens des Eingangssprachsignals detektiert wird, das auf der rahmenweisen Basis abgegrenzt ist und sich in dem Tonhöhenbereich befindet, der die vorbestimmte Relation mit der in einem vom laufenden Rahmen verschiedenen Rahmen gefundenen Tonhöhe erfüllt. Deshalb wird die Wahrscheinlichkeit des Einfangens einer falschen Tonhöhe niedrig, und es kann eine stabile Tonhöhenextraktion ausgeführt werden.
  • Auch kann die Tonhöhe des laufenden Rahmens auf der Basis der Position derjenigen Spitze unter allen Spitzen bestimmt werden, die von den Autokorrelationsdaten des laufenden Rahmens des Eingangssprachsignals detektiert wird, das auf der rahmenweisen Basis abgegrenzt ist und in dem Tonhöhenbereich ist, der die vorbestimmte Relation mit der in einem vom laufenden Rahmen verschiedenen Rahmen gefundenen Ton höhe erfüllt. Deshalb wird die Wahrscheinlichkeit des Einfangens einer falschen Tonhöhe niedrig, und es kann eine stabile Tonhöhenextraktion ausgeführt werden.
  • Außerdem wird gemäß dem dritten Beispiel des Tonhöhenextraktionsverfahrens die Tonhöhe des laufenden Rahmens durch die Position der Maximumspitze bestimmt, wenn das Maximum unter den mehreren Spitzen des laufenden Rahmens gleich oder höher als eine vorbestimmte Schwelle ist. Die Tonhöhe des laufenden Rahmens wird durch die Position der Spitze in dem Tonhöhenbereich bestimmt, der eine vorbestimmte Relation mit der in einem vom laufenden Rahmen verschiedenen Rahmen gefundenen Tonhöhe erfüllt, wenn die Maximumspitze kleiner als die vorbestimmte Schwelle ist. Deshalb wird die Wahrscheinlichkeit des Einfangens einer falschen Tonhöhe niedrig, und es kann eine stabile Tonhöhenextraktion ausgeführt werden.
  • Nachfolgend werden unter Bezugnahme auf die Zeichnungen konkrete Beispiele erläutert, bei denen das zweite und dritte Beispiel des Tonhöhenextraktionsverfahrens auf eine Tonhöhenextraktionseinrichtung angewendet wird.
  • Die 12 ist ein Blockschaltbild, das eine schematische Anordnung einer Tonhöhenextraktionseinrichtung zeigt, auf die das zweite Beispiel des Tonhöhenextraktionsverfahrens angewendet ist.
  • Die in 12 gezeigte Tonhöhenextraktionseinrichtung weist auf: einen Blockextraktionsabschnitt 209 zum Ausgeben einer Eingangssprachsignalwellenform auf der blockweisen Basis, einen Rahmenabgrenzungsabschnitt 210 zur Abgrenzung auf der blockweisen Basis der vom Blockextraktionsabschnitt 209 auf der blockweisen Basis ausgegebenen Eingangssprachsignalwellenform, eine Mitteclipverarbeitungseinheit 211 zum Mitteclipping der Sprachsignalwellenform eines laufenden Rahmens aus dem Rahmenabgrenzungsabschnitt 210, einen Autokorrelationsberechnungsabschnitt 212 zur Berechnung von Autokorrelationsdaten aus der vom Mitteclipverarbeitungsabschnitt 211 mittegeclipten Sprachsignalwellenform, einen Spitzedetektionsabschnitt 213 zum Detektieren mehrerer oder aller Spitzen von den vom Autokorrelationsberechnungsabschnitt 212 berech neten Autokorrelationsdaten, einen Anderrahmentonhöhenberechnungsabschnitt 214 zur Berechnung einer Tonhöhe eines Rahmens (nachfolgend als anderer Rahmen bezeichnet), der verschieden von dem laufenden Rahmen aus dem Rahmenabgrenzungsabschnitt 210 ist, einen Vergleichs/Detektions-Abschnitt 215 zum Vergleichen der Spitzen danach, ob die vom Spitzendetektionsabschnitt 213 detektierten mehreren Spitzen in einem Tonhöhenbereich sind, der eine vorbestimmte Funktion mit der Tonhöhe des Andertonhöhenberechnungsabschnitts 212 erfüllt, und zum Detektieren von Spitzen in dem Bereich, und einen Tonhöhenentscheidungsabschnitt 216 zum Feststellen einer Tonhöhe des laufenden Rahmens auf der Basis der Position der vom Vergleichs/Detektions-Abschnitt 215 gefundenen Spitze.
  • Der Blockextraktionsabschnitt 209 multipliziert die Eingangssprachsignalwellenform mit einer Fensterfunktion, wobei eine partielle Überlappung der Eingangssprachsignalwellenform erzeugt wird, und schneidet die Eingangssprachsignalwellenform als einen Block von N Abtastwerten aus. Die Rahmenabgrenzungseinheit 210 grenzt auf der rahmenweisen L-Abtast wert-Basis die vom Blockextraktionsabschnitt 209 ausgegebene Signalwellenform auf der blockweisen Basis. In anderen Worten ausgedrückt gibt der Blockextraktionsabschnitt 209 das Eingangssprachsignal als eine Einheit von N Abtastwerten, die entlang der Zeitachse auf der rahmenweisen L-Abtastwert-Basis fortschreitet, aus.
  • Der Mitteclipverarbeitungsabschnitt 211 steuert Charakteristiken derart, dass die Periodizität der Eingangssprachsignalwellenform für einen einzelnen Rahmen aus dem Rahmenabgrenzungsabschnitt 210 fehlgeordnet bzw. gestört wird. Das heißt, es wird ein vorbestimmter Clippingpegel zur Reduzierung exzessiver Spitzen mittels einer Dämpfung von Stimmbändern vor Berechnung der Autokorrelation der Eingangssprachsignalwellenform eingestellt, und es wird eine Wellenform, die im Absolutwert kleiner als der Clippingpegel ist, unterdrückt.
  • Der Autokorrelationsberechnungsabschnitt 212 berechnet beispielsweise die Periodizität der Eingangssprachsignalwel lenform. Normalerweise wird die Tonhöhenperiode bei einer Position einer starken Spitze beobachtet. Bei dem zweiten Beispiel wird die Autokorrelationsfunktion berechnet, nachdem ein einzelner Rahmen der Eingangssprachsignalwellenform vom Mitteclipverarbeitungsabschnitt 211 mittegeclipt worden ist. Deshalb kann eine scharfe Spitze beobachtet werden.
  • Der Spitzedetektionsabschnitt 213 detektiert mehrere oder alle Spitzen von den vom Autokorrelationsberechnungsabschnitt 212 berechneten Autokorrelationsdaten. Kurz ausgedrückt wird der Wert r(n) des n-ten Abtastwertes der Autokorrelationsfunktion die Spitze, wenn der Wert r(n) größer als benachbarte Autokorrelationen r(n – 1) und r(n + 1) ist. Der Spitzedetektionsabschnitt 213 detektiert eine solche Spitze.
  • Der Anderrahmentonhöhenberechnungsabschnitt 214 berechnet eine Tonhöhe eines von dem vom Rahmenabgrenzungsabschnitt 210 abgegrenzten laufenden Rahmen verschiedenen Rahmen. Bei der vorliegenden Ausführungsform wird die Eingangssprachsignalwellenform durch den Rahmenabgrenzungsabschnitt 210 in beispielsweise einen laufenden Rahmen, einen vergangenen Rahmen und einen zukünftigen Rahmen geteilt. Bei der vorliegenden Ausführungsform wird der laufende Rahmen auf der Basis der festen Tonhöhe des vergangenen Rahmens bestimmt, und die bestimmte Tonhöhe des laufenden Rahmens wird auf der Basis der Tonhöhe des vergangenen Rahmens und der Tonhöhe des zukünftigen Rahmens fixiert. Die Idee einer präzisen Erzeugung der Tonhöhe des laufenden Rahmens aus dem vergangenen Rahmen, dem laufenden Rahmen und dem zukünftigen Rahmen wird als eine verzögerte Entscheidung bezeichnet.
  • Der Vergleichs/Detektions-Abschnitt 215 vergleicht die Spitzen danach, ob die vom Spitzendetektionsabschnitt 213 detektierten mehreren Spitzen in einem Tonhöhenbereich sind, der eine vorbestimmten Funktion mit der Tonhöhe des Anderrahmentonhöhenberechnungsabschnitts 214 erfüllt, und detektiert Spitzen in dem Bereich.
  • Der Tonhöhenentscheidungsabschnitt 216 stellt die Tonhöhe des laufenden Rahmens aus den vom Vergleichs/Detektions-Abschnitt 215 verglichenen und detektierten Spitzen fest.
  • Der Spitzedetektionsabschnitt 213 unter den oben beschriebenen Komponenteneinheiten und die Verarbeitung der mehreren oder aller vom Spitzendetektionsabschnitt 213 detektierten Spitzen werden unter Bezugnahme auf die 13 erläutert.
  • Die bei A in 13 gezeigte Eingangssprachsignalwellenform x(n) wird vom Mitteclipverarbeitungabschnitt 211 mittegeclipt, und dann wird die Wellenform r(n) der Autokorrelation wie bei B in 13 angedeutet vom Autokorrelationsberechnungsabschnitt 212 gefunden. Der Spitzedetektionsabschnitt 213 detektiert mehrere oder alle Spitzen, welche die Wellenform r(n) der Autokorrelation aufweist, was durch die Formel (14) r(n) > r(n – 1) und r(n) > r(n + 1) (14)ausgedrückt werden kann.
  • Gleichzeitig wird eine durch Normierung des Wertes der Autokorrelation r(n) erzeugte Spitze r'(n) wie bei C in 13 angedeutet aufgezeichnet. Die Spitze r'(n) ist die Autokorrelation r(n) dividiert durch die Autokorrelationsdaten r(0) für n = 0. Die Autokorrelationsdaten r(0), die als Spitze das Maximum ist, ist in den durch die Formel (14) ausgedrückten Spitzen nicht enthalten, da sie der Formel (14) nicht genügt. Die Spitze r'(n) wird als ein Volumen bzw. Lautstärkepegel betrachtet, das bzw. der den Grad des Seins einer Tonhöhe ausdrückt, und wird entsprechend ihrem Volumen bzw. Lautstärkepegel neu geordnet, um r'S(n), P(n) zu erzeugen. Der Wert r'S(n) ordnet r'(n) entsprechend ihrem Volumen bzw. Lautstärkepegel, wobei die folgende Bedingung r'S(0) > r'S(1) > r'S(2) > ... > r'S(j – 1) (15)erfüllt ist. In dieser Formel (15) stellt j die Gesamtzahl von Spitzen dar. P(n) drückt, wie bei C in 13 gezeigt, einen mit einer großen Spitze korrespondierenden Index aus. In der 13C ist der Index der größten Spitze bei einer Position n = 6 gleich P(0). Der Index der nächst größten Spitze (bei der Position n = 7) ist gleich P(1). P(n) erfüllt die Bedingung r'P(n)) = r'S(n). (16)
  • Die durch Neuordnung der normierten Funktion r'(n) der Autokorrelation r(n) erzeugte größte Spitze von r'S(n) ist gleich r'S(0). Es wird eine Tonhöhenentscheidung bzw. – feststellung in dem Fall, dass der größte oder maximale Spitzenwert r'S(0) einen durch beispielsweise k = 0,4 gegebenen vorbestimmten Wert überschreitet, erläutert.
  • Zuerst wird beim Überschreiten des Wertes k durch den Maximumspitzenwert r'S(0) die Tonhöhenentscheidung wie folgt ausgeführt.
  • Bei der vorliegenden Ausführungsform ist k auf 0,4 gesetzt. Wenn der Maximumspitzenwert r'S(0) k = 0,4 überschreitet, bedeutet dies, dass der Maximumspitzenwert r'S(0) als, Maximumwert der Autokorrelation sehr hoch ist. P(0) dieses Maximumspitzenwerts r'S(0) wird vom Tonhöhenentscheidungsabschnitt 216 als die Tonhöhe des laufenden Rahmens verwendet. Infolgedessen besteht die Wahrscheinlichkeit, dass, selbst wenn ein Sprecher, der ein Ziel der Analyse sein soll, plötzlich eine Stimme wie beispielsweise „Oh!" erhebt, ein Springen der Tonhöhe nur im laufenden Rahmen realisiert werden kann, ungeachtet der Tonhöhen im vergangenen und zukünftigen Rahmen. Gleichzeitig wird festgestellt, dass die Tonhöhe zu diesem Zeitpunkt eine für den Sprecher typische Tonhöhe ist, und sie wird beibehalten. Dies ist beim Fehlen der vergangenen Tonhöhe, beispielsweise wenn die Analyse nach einem Eliminieren der Stimme des Sprechers wieder aufgenommen wird, effektiv. In diesem Fall wird P(0) wie folgt als eine typische Tonhöhe gesetzt: Pt = P(0). (17)
  • Wenn der Maximumspitzenwert r'S(0) kleiner als k = 0,4 ist, gilt folgendes.
  • Wenn die Tonhöhe P–1 (nachfolgend als vergangene Tonhöhe bezeichnet) des anderen Rahmens nicht von der Anderrahmentonhöhenberechnungseinheit 214 berechnet wird, das heißt, wenn die vergangene Tonhöhe P–1 gleich 0 ist, wird k für einen Vergleich mit dem Maximumspitzenwert r'S(0) auf 0,25 erniedrigt. Wenn der Maximumspitzenwert r'S(0) größer als k ist, wird P(0) in der Position des Maximumspitzenwertes r'S(0) vom Tonhöhenentscheidungsabschnitt 216 als die Tonhöhe des laufenden Rahmens angenommen. Zu diesem Zeitpunkt wird die Tonhöhe P(0) nicht als eine Standardtonhöhe registriert.
  • Andererseits wird bei Berechnung der Tonhöhe des anderen Rahmens durch den Anderrahmentonhöhenberechnungsabschnitt 214 der Maximumspitzenwert r'S(P–1) in einem Bereich in der Nähe der vergangenen Tonhöhe P–1 gesucht. In anderen Worten ausgedrückt wird die Tonhöhe des laufenden Rahmens entsprechend der Position der Spitze in einem Bereich gesucht, der eine vorbestimmte Relation mit der vergangenen Tonhöhe P–1 erfüllt. Insbesondere wird r'S(n) in einem Bereich von 0 < n < j der bereits gefundenen vergangenen Tonhöhe P–1 gesucht, und der 0,8P–1 < P(0) < 1,2P–1 (18)erfüllende Minimumwert wird als nm gefunden. Je kleiner der Wert von n ist, desto größer ist die Spitze nach der Neuordnung. Die Tonhöhe P(nm) in der Position der Spitze r'S(nm), die nm ist, wird als ein Kandidat für die Tonhöhe des laufenden Rahmens registriert.
  • Ist indessen die Spitze r'S(nm) gleich 0,3 oder größer, kann sie als die Tonhöhe angenommen werden. Wenn die Spitze r'S(nm) kleiner als 0,3 ist, ist die Wahrscheinlichkeit, dass sie die Tonhöhe ist, niedrig, und deshalb wird r'S(n) in einem Bereich von 0 < n < j der schon gefundenen typischen Tonhöhe Pt gesucht, und der 0,8Pt < P(n) < 1,2Pt (19)erfüllende Minimumwert von n wird als nr gefunden. Je kleiner der Wert von n ist, desto größer ist die Spitze nach der Neuordnung. Die Tonhöhe P(nr) in der Position der Spitze r'S(nr), die nr ist, wird als die Tonhöhe des laufenden Rahmens angenommen. Infolgedessen wird die Tonhöhe P0 des laufenden Rahmens auf der Basis der Tonhöhe P–1 des anderen Rahmens bestimmt.
  • Als nächstes wird ein Verfahren zum präzisen Finden der Tonhöhe des laufenden Rahmens aus der Tonhöhe P0 des laufenden Rahmens, der Tonhöhe P–1 eines einzelnen vergangenen Rahmens und der Tonhöhe P1 eines einzelnen zukünftigen Rahmens erläutert, wobei die oben erwähnte Idee der verzögerten Entscheidung verwendet wird.
  • Der Grad der Tonhöhe des laufenden Rahmens wird durch den mit der Tonhöhe P0 korrespondierenden Wert von r', das heißt r'(P0) dargestellt und wird auf R gesetzt. Die Grade der Tonhöhen des vergangenen und zukünftigen Rahmens werden auf R bzw. R+ gesetzt. Demgemäss sind die Grade R, R und R+ gleich R = r'(P0), R = r'(P–1) bzw. R+ = r'(P1).
  • Wenn der Grad R der Tonhöhe des laufenden Rahmens sowohl größer als der Grad R der Tonhöhe des vergangenen Rahmens als auch größer als der Grad R+ der Tonhöhe des zukünftigen Rahmens ist, wird der Grad R der Tonhöhe des laufenden Rahmens als der höchste in der Zuverlässigkeit der Tonhöhe betrachtet. Deshalb wird die Tonhöhe P0 des laufenden Rahmens angenommen.
  • Wenn der Grad R der Tonhöhe des laufenden Rahmens kleiner als der Grad R der Tonhöhe des vergangenen Rahmens und kleiner als der Grad R+ der Tonhöhe des zukünftigen Rahmens ist, wobei der Grad R der Tonhöhe des vergangenen Rahmens größer als der Grad R+ der Tonhöhe des zukünftigen Rahmens ist, wird r'S(n) in einem Bereich von 0 ≤ n < j gesucht, wobei die Tonhöhe P–1 des zukünftigen Rahmens als der Standard- ton Pr, verwendet wird und der 0,8 Pr < P(n) < 1,2 Pr (20)erfüllende Minimumwert von n als na gefunden wird. Je kleiner der Wert von n ist, desto größer ist die Spitze nach der Neuordnung. Dann wird die Tonhöhe P(na) in der Position der Spitze r'a(na), die gleich na ist, als die Tonhöhe des laufenden Rahmens angenommen.
  • Hierauf wird die Tonhöhenextraktionsoperation im zweiten Beispiel des Tonhöhenextraktionsverfahrens unter Bezugnahme auf das Flussdiagramm der 14 erläutert.
  • Bezüglich 14 wird beim Schritt S201 zuerst eine Autokorrelationsfunktion einer Eingangssprachsignalwellenform gefunden. Insbesondere wird die Eingangssprachsignalwellenform für einen einzelnen Rahmen aus dem Rahmenabgrenzungsabschnitt 210 vom Mitteclipverarbeitungsabschnitt 211 mittege clipt, und dann wird die Autokorrelationsfunktion der Wellenform vom Autokorrelationsberechnungsabschnitt 212 berechnet.
  • Beim Schritt S202 werden mehrere oder alle Spitzen (Maximumwerte), welche die Bedingungen der Formel (14) erfüllen, vom Spitzedetektionsabschnitt 213 aus der Autokorrelationsfunktion des Schrittes S201 detektiert.
  • Beim Schritt S203 werden die mehreren oder alle Spitzen, die beim Schritt S202 detektiert werden, in der Folge ihrer Größe neu geordnet.
  • Beim Schritt S204 wird festgestellt, ob die Maximumspitze r'S(0) unter den beim Schritt S203 neugeordneten Spitzen größer als 0,4 ist oder nicht. Wenn JA gewählt ist, das heißt, wenn festgestellt wird, dass die Maximumspitze r'S(0) größer als 0,4 ist, geht die Operation zum Schritt S205 vor. Wenn andererseits NEIN gewählt ist, das heißt, wenn die Maximumspitze r'S(0) kleiner als 0,4 ist, geht die Operation zum Schritt S206 vor.
  • Beim Schritt S205 wird als Ergebnis der Entscheidung auf JA beim Schritt S204 festgestellt, dass P(0) die Tonhöhe P0 des laufenden Rahmens ist. P(0) wird als die typische Tonhöhe Pt gesetzt.
  • Beim Schritt S206 wird bestimmt, ob die Tonhöhe P–1 fehlt oder nicht in einem vorhergehenden Rahmen ist. Wenn JA gewählt ist, das heißt, wenn die Tonhöhe P–1 fehlt, geht die Operation zum Schritt S207 vor. Wenn andererseits NEIN gewählt ist, das heißt, wenn die Tonhöhe P–1 vorhanden ist, geht die Operation zum Schritt S208 vor.
  • Beim Schritt S207 wird bestimmt, ob der Maximumspitzenwert r'S(0) größer als k = 0,25 ist oder nicht. Wenn JA gewählt ist, das heißt, wenn der Maximumspitzenwert r'S(0) größer als k ist, geht die Operation zum Schritt S208 vor. Wenn andererseits NEIN gewählt ist, das heißt, wenn der Maximumspitzenwert r'S(0) kleiner als k ist, geht die Operation zum Schritt S209 vor.
  • Wenn beim Schritt S207 JA gewählt ist, das heißt, wenn der Maximumspitzenwert r'S(0) größer als k = 0,25 ist, wird beim Schritt S208 festgestellt, dass P(0) die Tonhöhe P0 des laufenden Rahmens ist.
  • Wenn beim Schritt S207 NEIN gewählt ist, das heißt, wenn der Maximumspitzenwert r'S(0) kleiner als k = 0,25 ist, wird beim Schritt S209 festgestellt, dass im laufenden Rahmen keine Tonhöhe vorhanden ist, das heißt P0 = P(0) gilt.
  • Beim Schritt S201 wird entsprechend der Tatsache, dass die Tonhöhe P–1 des vergangenen Rahmens beim Schritt S206 nicht gleich 0 ist, das heißt beim Vorhandensein der Tonhöhe festgestellt, ob der Spitzenwert bei der Tonhöhe P–1 des vergangenen Rahmens größer als 0,2 ist oder nicht. Wenn JA gewählt ist, das heißt, wenn die vergangene Tonhöhe P–1 größer als 0,2 ist, geht die Operation zum Schritt S211 vor. Wenn NEIN gewählt ist, das heißt, wenn die vergangene Tonhöhe P–1 kleiner als 0,2 ist, geht die Operation zum Schritt S214 vor.
  • Beim Schritt S211 wird entsprechend der Entscheidung auf JA beim Schritt S210 der Maximumspitzenwert r'S(P–1) in einem Bereich von 80% bis 120% der Tonhöhe P–1 des vergangenen Rahmens gesucht. Kurz ausgedrückt wird R'S(n) in einem Bereich von 0 < n < j der bereits gefundenen vergangenen Tonhöhe P–1 gesucht.
  • Beim Schritt S212 wird festgestellt, ob der beim Schritt S212 gesuchte Kandidat für die Tonhöhe des laufenden Rahmens größer als der vorbestimmte Wert 0,3 ist oder nicht. Wenn JA gewählt ist, geht die Operation zum Schritt S213 vor. Wenn NEIN gewählt ist, geht die Operation zum Schritt S217 vor.
  • Beim Schritt S213 wird entsprechend der Entscheidung auf JA beim Schritt S212 festgestellt, dass der Kandidat für die Tonhöhe des laufenden Rahmens die Tonhöhe P0 des laufenden Rahmens ist.
  • Beim Schritt S214 wird entsprechend der Entscheidung beim Schritt S210, dass der Spitzenwert r'(P–1) bei der vergangenen Tonhöhe P–1 kleiner als 0,2 ist, festgestellt, ob der Maximumspitzenwert r'S(0) größer als 0,35 ist oder nicht. Wenn JA gewählt ist, das heißt, wenn der Maximumspitzenwert r'S(0) größer als 0,35 ist, geht die Operation zum Schritt 5215 vor. Wenn NEIN gewählt ist, das heißt wenn der Maximum spitzenwert r'S(0) nicht größer als 0,35 ist, geht die Operation zum Schritt S216 vor.
  • Beim Schritt S215 wird, wenn beim Schritt S214 JA gewählt ist, das heißt der Maximumspitzenwert r'S(0) größer als 0,35 ist, festgestellt, dass P(0) die Tonhöhe P0 des laufenden Rahmens ist.
  • Beim Schritt S216 wird, wenn beim Schritt S214 NEIN gewählt ist, das heißt der Maximumspitzenwert r'S(0) nicht größer als 0,35 ist, festgestellt, dass im laufenden Rahmen keine Tonhöhe vorhanden ist.
  • Beim Schritt S217 wird entsprechend der Entscheidung auf NEIN beim Schritt S214 der Maximumspitzenwert r'S(Pt) innerhalb eines Bereiches von 80% bis 120% der typischen Tonhöhe Pt gesucht. Kurz ausgedrückt wird r'S(n) in einem Bereich von 0 ≤ n < j der bereits gefundenen typischen Tonhöhe Pt gesucht.
  • Beim Schritt S218 wird festgestellt, dass die beim Schritt S217 gefundene Tonhöhe die Tonhöhe P0 des laufenden Rahmens ist.
  • Auf diese Weise wird entsprechend dem zweiten Beispiel des Tonhöhenextraktionsverfahrens die Tonhöhe des laufenden Rahmens auf der Basis der im vergangenen Rahmen berechneten Tonhöhe festgestellt. Hierauf ist es möglich, die aus der Vergangenheit festgestellte Tonhöhe des laufenden Rahmens auf der Basis der Tonhöhe des vergangenen Rahmens, der Tonhöhe des laufenden Rahmens und der Tonhöhe des zukünftigen Rahmens präzise einzustellen.
  • Als nächstes wird eine Tonhöhenextraktionseinrichtung, auf die das dritte Beispiel des Tonhöhenextraktionsverfahrens angewendet ist, unter Bezugnahme auf die 15 erläutert. Die 15 ist ein funktionelles Blockschaltbild zur Erläuterung der Funktion des dritten Beispiels, wobei Darstellungen von Abschnitten, die ähnlich denen im funktionellen Blockschaltbild des zweiten Beispiels (12) sind, fortgelassen sind.
  • Die Tonhöhenextraktionseinrichtung, auf die das dritte Beispiel des Tonhöhenextraktionsverfahrens angewendet ist, weist auf: einen Maximumspitzedetektionsabschnitt 231 zum Detektieren mehrerer oder aller Spitzen der von einem Eingangsanschluss 203 durch einen Spitzedetektionsabschnitt 213 zugeführten Autokorrelationsdaten und zum Detektieren der Maximumspitze aus den mehreren oder allen Spitzen, einen Komparator 232 zum Vergleichen des Maximumspitzenwertes aus dem Maximumspitzedetektionsabschnitt 231 und einer Schwelle eines Schwelleneinstellungsabschnitts 233, einen Effektivtonhöhendetektionsabschnitt 235 zur Berechnung einer effektiven Tonhöhe aus über einen Eingangsanschluss 204 zugeführten Tonhöhen anderer Rahmen, und einen Multiplexer (MPX) 234, dem die Maximumspitze aus dem Maximumspitzedetektionsabschnitt 231 und die effektive Tonhöhe aus der Effektivtonhöhendetektionseinheit 235 zugeführt sind und in welchem eine Selektion zwischen der Maximumspitze und der effektiven Tonhöhe entsprechend Ergebnissen des Vergleichs durch den Komparator 232 zur Ausgabe von „1" an einem Ausgangsanschluss 205 gesteuert werden.
  • Der Maximumspitzedetektionsabschnitt 231 detektiert die Maximumspitze unter den mehreren oder allen vom Spitzedetektionsabschnitt 231 detektierten Spitzen.
  • Der Komparator 232 vergleicht die vorbestimmte Schwelle des Schwelleneinstellungsabschnitts 233 und die Maximumspitze des Maximumspitzedetektionsabschnitts 231 im Sinne der Größe.
  • Der Effektivtonhöhendetektionsabschnitt 235 detektiert die effektive Tonhöhe, die in einem Tonhöhenbereich vorhanden ist, der eine vorbestimmte Relation mit der in einem von dem laufenden Rahmen verschiedenen Rahmen gefundenen Tonhöhe erfüllt.
  • Der MPX 234 wählt die Tonhöhe bei der Position der Maximumspitze oder die effektive Tonhöhe aus dem Effektivtonhöhendetektionsabschnitt 235 auf der Basis der Ergebnisse des Vergleichs der Schwelle und der Maximumspitze durch den Komparator 232 und gibt sie aus.
  • Ein konkreter Verarbeitungsfluss, der ähnlich dem des im Flussdiagramm der 14 des zweiten Beispiels des Tonhöhenextraktionsverfahrens ist, ist fortgelassen.
  • Infolgedessen wird beim dritten Beispiel des Tonhöhenextraktionsverfahrens der vorliegenden Erfindung die Maximumspitze aus mehreren oder allen Spitzen der Autokorrelation detektiert, und die Maximumspitze und die vorbestimmte Schwelle werden verglichen, wobei die Tonhöhe des laufenden Rahmens auf der Basis des Vergleichsergebnisses festgestellt wird. Gemäß diesem dritten Beispiel des Tonhöhenextraktionsverfahrens der vorliegenden Erfindung wird die Tonhöhe des laufenden Rahmens auf der Basis von in den anderen Rahmen berechneten Tonhöhen festgestellt, und die aus den Tonhöhen der anderen Rahmen festgestellte Tonhöhe des laufenden Rahmens kann auf der Basis der Tonhöhen der anderen Rahmen und der Tonhöhe des laufenden Rahmens präzise eingestellt werden.
  • Eine Anwendung des zweiten und dritten Beispiels des Tonhöhenextraktionsverfahrens auf den in Bezug auf die 1 bis 7 erläuterten MBE-Vocoder ist wie folgt. Aus den Autokorrelationsdaten des laufenden Rahmens (die für 1-Block-N-Abtastwerte-Daten gefundene Autokorrelation) werden mehrere Spitzen gefunden. Wenn die Maximumspitze unter den mehreren Spitzen gleich oder größer als eine vorbestimmte Stelle ist, wird die Position der Maximumspitze gesetzt, um eine Tonhöhenperiode zu sein. Andernfalls wird eine Spitze in einem eine vorbestimmte Relation mit einer in einem vom laufenden Rahmen verschiedenen Rahmen, beispielsweise einem vorhergehenden und/oder folgenden Rahmen gefundenen Tonhöhe erfüllenden Tonhöhenbereich gefunden. Beispielsweise wird eine Tonhöhe gefunden, die in einem ± 20%-Bereich von einer Tonhöhe eines vorhergehenden Rahmens vorhanden ist. Auf der Basis der Position dieser Spitze wird die Tonhöhe des laufenden Rahmens festgestellt. Deshalb ist es möglich, eine präzise Tonhöhe einzufangen.
  • Gemäß dem zweiten Beispiel des Tonhöhenextraktionsverfahrens ist es möglich, die Tonhöhe des laufenden Rahmens auf der Basis der Position der Spitze, die sich unter den mehreren aus den Autokorrelationsdaten des laufenden Rahmens des auf der rahmenweisen Basis abgegrenzten Eingangssprachsignals detektierten Spitzen befindet und die in dem die vorbestimmte Relation mit der in einem vom laufenden Rahmen verschiedenen Rahmen gefundenen Tonhöhe erfüllenden Tonhöhenbereich vorhanden ist, festzustellen. Auch ist es möglich, die Tonhöhe des laufenden Rahmens auf der Basis der Position der Spitze, die sich unter allen aus den Autokorrelationsdaten des laufenden Rahmens des auf der rahmenweisen Basis abgegrenzten Eingangssprachsignals detektierten Spitzen befindet und die in dem die vorbestimmte Relation mit der in einem vom laufenden Rahmen verschiedenen Rahmen gefundenen Tonhöhe erfüllenden Tonhöhenbereich vorhanden ist, festzustellen. Außerdem ist es wie beim dritten Beispiel möglich, die Tonhöhe des laufenden Rahmens entsprechend der Position der Maximumspitze festzustellen, wenn die Maximumspitze unter den mehreren aus den Autokorrelationsdaten des laufenden Rahmens des auf der rahmenweisen Basis abgegrenzten Eingangssprachsignals detektierten Spitzen gleich oder größer als die vorbestimmte Schwelle ist. Auch ist es möglich, die Tonhöhe des laufenden Rahmens auf der Basis der Position der in dem die vorbestimmte Relation mit der in einem vom laufenden Rahmen verschiedenen Rahmen gefundenen Tonhöhe erfüllenden Tonhöhenbereich vorhandenen Spitze festzustellen, wenn die Maximumspitze kleiner als die vorbestimmte Schwelle ist. Demgemäss wird die Wahrscheinlichkeit des Einfangens einer falschen Tonhöhe erniedrigt. Außerdem ist es selbst nach der Beseitigung der Spitze möglich, eine stabile Verfolgung in Bezug auf die in der Vergangenheit gefundene sichere Tonhöhe auszuführen. Wenn infolgedessen mehrere Sprecher gleichzeitig sprechen, kann das Tonhöhenextraktionsverfahren auf eine Sprechertrennung zur Extraktion von Stimmen- bzw. Sprachtönen nur eines einzelnen Sprechers angewendet werden.
  • Indessen wird die Spektrumenveloppe von Sprachsignalen in einem einzelnen Block oder einem einzelnen Rahmen entsprechend den auf der blockweisen Basis extrahierten Tonhöhe in Bänder geteilt, wobei für jedes Band eine Stimmhaft/Stimmlos-Entscheidung ausgeführt wird. Auch im Hinblick auf die Periodizität des Spektrums wird die durch Finden der Amplitude bei jeder der Oberwellen erhaltenen Spektrumenveloppe quanti siert. Deshalb werden, wenn die Tonhöhe unsicher ist, die Stimmhaft/Stimmlos-Entscheidung und die spektrale Anpassung unsicher, wodurch die Gefahr einer Verschlechterung der Tonqualität effektiv synthetisierter Stimmen bzw. Sprachen zurückbleibt.
  • Kurz ausgedrückt ist es bei unklarer Tonhöhe, wenn der Versuch gemacht wird, eine wie in 16 durch eine gestrichelte Linie angedeutete unmögliche spektrale Anpassung in einem ersten Band zu machen, unmöglich, eine Spektrumamplitude in den folgenden Bändern zu erhalten. Selbst wenn zufällig eine spektrale Anpassung im ersten Band ausgeführt werden kann, wird das erste Band als ein stimmhaftes Band verarbeitet, wodurch abnorme Töne erzeugt werden. In der 16 zeigt die horizontale Achse die Frequenz und das Band an, und die vertikale Achse zeigt die Spektrumamplitude an. Die durch eine durchgezogene Linie gezeigte Wellenform zeigt die Spektrumenveloppe der Spracheingangswellenform an.
  • Infolgedessen wird nachfolgend ein Sprachtoncodierungsverfahren erläutert, bei welchem eine Spektrumanalyse durch Einstellen einer schmalen Bandbreite der Spektrumenveloppe ausgeführt werden kann, wenn die aus dem Eingangssprachsignal detektierte Tonhöhe unsicher ist.
  • Bei diesem Sprachtoncodierungsverfahren wird die Spekt rumenveloppe des Eingangssprachsignals gefunden und in mehrere Bänder geteilt. Bei dem Sprachtoncodierungsverfahren wird zur Ausführung einer Quantisierung entsprechend der Leistung jedes Bandes die Tonhöhe des Eingangssprachsignals detektiert. Bei sicherem Detektieren der Tonhöhe wird die Spektrumenveloppe in Bänder mit einer Bandbreite entsprechend der Tonhöhe geteilt, und bei einem nicht sicheren Detektieren der Tonhöhe wird die Spektrumenveloppe in Bänder mit der vorbestimmten schmaleren Bandbreite geteilt.
  • Bei einem sicheren Detektieren der Tonhöhe wird eine Stimmhaft/Stimmlos-Entscheidung (V/UV-Entscheidung) für jedes der durch die Teilung entsprechend der Tonhöhe erzeugten Bänder ausgeführt. Bei einem nicht sicheren Detektieren der Ton höhe wird festgestellt, dass alle Bänder mit der vorbestimmten schmaleren Bandbreite stimmlos sind.
  • Gemäß diesem Sprachtoncodierungsverfahren wird, wenn die vom Eingangssprachsignal detektierte Tonhöhe sicher ist, die Spektrumenveloppe in Bänder mit der Bandbreite entsprechend der detektierten Tonhöhe geteilt, und wenn die Tonhöhe nicht sicher ist, wird die Bandbreite der Spektrumenveloppe schmal eingestellt, wodurch eine fallweise Codierung ausgeführt wird.
  • Ein konkretes Beispiel des Sprachcodierungsverfahrens wird nachfolgend erläutert.
  • Für ein solches Sprachcodierungsverfahren kann ein Codierungsverfahren zum Umwandeln von Signalen auf der blockweisen Basis in Signale auf der Frequenzachse, Teilen der Signale in mehrere Bänder und Ausführen einer V/UV-Entscheidung für jedes der Bänder angewendet werden.
  • Eine Verallgemeinerung dieses Codierungsverfahrens ist wie folgt: ein Sprachsignal wird in Blöcke geteilt, deren jeder eine vorbestimmte Zahl Abtastwerte, beispielsweise 256 Abtastwerte aufweist, und durch eine Orthogonaltranformation wie beispielsweise FFT in Spektrumdaten auf der Frequenzachse umgewandelt, während die Tonhöhe der Stimme bzw. Sprache in dem Block detektiert wird. Ist die Tonhöhe sicher, wird das Spektrum auf der Frequenzachse in Bänder mit einem mit der Tonhöhe korrespondierenden Intervall geteilt. Ist die detektierte Tonhöhe nicht sicher oder wird keine Tonhöhe detektiert, wird das Spektrum auf der Frequenzachse in Bänder mit einer schmaleren Bandbreite geteilt und festgestellt, dass alle Bänder stimmlos sind.
  • Der Codierungsfluss dieses Sprachcodierungsverfahrens wird unter Bezugnahme auf das Flussdiagramm nach 17 erläutert.
  • Bezüglich der 17 wird die Spektrumenveloppe des Eingangssprachsignals beim Schritt S301 gefunden. Beispielsweise ist die gefundene Spektrumenveloppe eine Wellenform (sogenanntes ursprüngliches Spektrum), die durch eine, durchgezogene Linie in der 18 angedeutet ist.
  • Beim Schritt S302 wird von der beim Schritt S301 gefundenen Spektrumenveloppe des Eingangssprachsignals eine Tonhöhe detektiert. Bei dieser Tonhöhendetektion wird zur sicheren Detektion der Tonhöhe beispielsweise ein Autokorrelationsverfahren der Mitteclipwellenform angewendet. Das Autokorrelationsverfahren der Mitteclipwellenform ist ein Verfahren zur Autokorrelationsverarbeitung einer den Clippingpegel überschreitenden Mitteclipwellenform und zum Finden der Tonhöhe.
  • Beim Schritt S303 wird festgestellt, ob die beim Schritt S302 detektierte Tonhöhe sicher ist oder nicht. Beim Schritt S302 kann eine Unsicherheit wie beispielsweise ein unerwarteter Ausfall des Nehmens der Tonhöhe und eine Detektion einer Tonhöhe, die um ein ganzzahliges Vielfaches oder einen Bruch falsch ist, vorhanden sein. Solche unsicher detektierten Tonhöhen werden beim Schritt S303 unterschieden. Wenn JA gewählt ist, das heißt, wenn die detektierte Tonhöhe sicher ist, geht die Operation zum Schritt S304 vor. Ist NEIN gewählt, das heißt, ist die detektierte Tonhöhe unsicher, geht die Operation zum Schritt S305 vor.
  • Beim Schritt S304 wird entsprechend der Entscheidung beim Schritt S303, dass die beim Schritt S302 detektierte Tonhöhe sicher ist, die Spektrumenveloppe in Bänder mit einer mit der sicheren Tonhöhe korrespondierenden Bandbreite geteilt. In anderen Worten ausgedrückt wird die Spektrumenveloppe auf der Frequenzachse in Bänder mit einem mit der Tonhöhe korrespondierenden Intervall geteilt.
  • Beim Schritt S305 wird entsprechend der Entscheidung beim Schritt S303, dass die beim Schritt S302 detektierte Tonhöhe unsicher ist, die Spektrumenveloppe in Bänder mit der schmalsten Bandbreite geteilt.
  • Beim Schritt S306 wird für jedes der durch die Teilung mit dem mit der Tonhöhe beim Schritt S304 korrespondierenden Intervall erzeugten Bänder eine V/UV-Entscheidung getroffen.
  • Beim Schritt S307 wird festgestellt, dass alle durch die Teilung mit der schmalsten Bandbreite beim Schritt S305 erzeugten Bänder stimmlos sind. Bei der vorliegenden Ausführungsform wird die Spektrumenveloppe wie in 18 gezeigt in 148 Bänder von 0 bis 147 geteilt, und diese Bänder sind obligatorisch stimmlos gemacht. Mit den 148 so geteilten sehr kleinen Bändern ist es möglich, die durch eine durchgezogene Linie gezeigte ursprüngliche Spektrumenveloppe sicher zu verfolgen bzw. nachzuvollziehen.
  • Beim Schritt S308 wird die Spektrumenveloppe entsprechend der Leistung jedes bei den Schritten S304 und S305 gesetzten Bandes quantisiert. Insbesondere bei Ausführung der Teilung mit der beim Schritt S305 ausgeführten schmalsten Bandbreite kann die Präzision der Quantisierung verbessert werden. Außerdem wird bei Verwendung eines Weißrauschens als eine Erregungsquelle für alle Bänder ein synthetisiertes Rauschen ein durch ein Spektrum der durch eine gestrichelte Linie in 18 gezeigten Anpassung gefärbtes Rauschen, wobei kein Gitterrauschen erzeugt wird.
  • Auf diese Weise wird bei dem Beispiel des Sprachcodierungsverfahrens die Bandbreite der Entscheidungsbänder der Spektrumenveloppe geändert, abhängig von der bei der Tonhöhendetektion des Eingangssprachsignals detektierten Tonhöhe. Wenn beispielsweise die Tonhöhe sicher ist, wird die Bandbreite entsprechend der Tonhöhe eingestellt, und dann wird die U/UV-Entscheidung ausgeführt. Wenn die Tonhöhe nicht sicher ist, wird die schmalste Bandbreite eingestellt (beispielsweise Teilung in 148 Bänder), wodurch alle Bänder stimmlos gemacht werden.
  • Wenn demgemäss die Tonhöhe unklar und unsicher ist, wird eine Spektrumanalyse eines besonderen Falles ausgeführt, wodurch keine Verschlechterung der Tonqualität der synthetisierten Stimme verursacht wird.
  • Bei dem wie oben beschriebenen Sprachcodierungsverfahren wird die Spektrumenveloppe mit einer mit der detektierten Tonhöhe korrespondierenden Bandbreite geteilt, wenn die aus dem Eingangssprachsignal detektierte Tonhöhe sicher ist, und die Bandbreite der Spektrumenveloppe wird verengt, wenn die Tonhöhe nicht sicher ist. Infolgedessen kann eine fallweise Codierung ausgeführt werden. Insbesondere wenn die Tonhöhe nicht klar erscheint, werden alle Bänder als stimmlose Bänder des besonderen Falles verarbeitet. Deshalb kann die Präzision der Spektrumanalyse verbessert werden, und es wird kein Rauschen erzeugt, wodurch eine Verschlechterung der Tonqualität vermieden ist.
  • Die Anwendung des oben beschriebenen Sprachcodierungsverfahrens auf den in Bezug auf die 1 bis 7 erläuterten MBE-Vocoder ist wie folgt. Für den MBE-Vocoder ist eine Tonhöhendetektion hoher Präzision erforderlich. Jedoch bei Anwendung des Sprachcodierungsverfahrens auf den MBE-Vocoder, wird, wenn die Tonhöhe nicht klar erscheint, die Teilung der Spektrumenveloppe aufs Engste bzw. Schmalste eingestellt, um alle Bänder stimmlos zu machen. Infolgedessen ist es möglich, die ursprüngliche Spektrumenveloppe exakt zu verfolgen und die Präzision der Spektrumquantisierung zu verbessern.
  • Indessen können bei dem Sprach-Analyse-Synthese-System wie beispielsweise dem PARCOR-Verfahren, da die Zeitsteuerung der Änderung über die Erregungsquelle auf der blockweisen Basis (rahmenweisen Basis) auf der Zeitfrequenz ist, stimmhafte und stimmlose Töne nicht zusammen in einem einzelnen Rahmen vorhanden sein. Dies hat zur Folge, dass Stimmen bzw. Sprache hoher Qualität nicht erzeugt werden können bzw. kann.
  • Jedoch bei der MBE-Codierung werden Stimmen bzw. Sprache in einem einzelnen Block (Rahmen) in mehrere Bänder geteilt, und für jedes der Bänder wird eine Stimmhaft/Stimmlos-Entscheidung ausgeführt, wodurch eine Verbesserung in der Tonqualität beobachtet wird. Da jedoch für jedes Band erhaltene Stimmhaft/Stimmlos-Entscheidungsdaten separat übertragen werden müssen, ist die MBE-Codierung im Sinne der Bitrate unvorteilhaft.
  • Im Hinblick auf den oben beschriebenen Stand der Technik wird gemäss der vorliegenden Erfindung ein hocheffizientes Codierungsverfahren, bei dem für jedes Band erhaltene Stimmhaft/Stimmlos-Entscheidungsdaten mit einer kleinen Zahl Bits ohne Verschlechterung der Tonqualität übertragen werden können, vorgeschlagen.
  • Das hocheffiziente Codierungsverfahren der vorliegenden Erfindung weist die Schritte auf: Finden von Daten auf der Frequenzachse durch Abgrenzung eines Eingangssprachsignals auf der Block-um-Block-Basis bzw. blockweisen Basis und umwandeln des Signals in ein Signal auf der Frequenzachse, Teilen der Daten auf der Frequenzachse in mehrere Bänder, Entscheiden für jedes der geteilten Bänder, ob das Band stimmhaft oder stimmlos ist, Detektieren eines Bandes der höchsten Frequenz der stimmhaften Bänder, und Finden von Daten in einem Grenzpunkt zur Abgrenzung eines stimmhaften Bereichs und eines stimmlosen Bereichs auf der Frequenzachse entsprechend der Zahl Bänder von einem Band auf der niedrigeren Frequenzseite bis zum detektierten Band herauf.
  • Wenn das Verhältnis der Zahl stimmhafter Bänder von der niedrigeren Frequenzseite bis hoch zum detektierten Band zur Zahl stimmloser Bänder gleich oder größer als eine vorbestimmte Schwelle ist, wird die Position des detektierten Bandes als der Grenzpunkt zwischen dem stimmhaften Bereich und dem stimmlosen Bereich betrachtet. Es ist auch möglich, die Zahl Bänder auf eine vorbestimmte Zahl im Voraus zu reduzieren und infolgedessen einen einzelnen Grenzpunkt mit einer kleinen festen Zahl Bits zu übertragen.
  • Gemäß dem wie oben beschriebenen hocheffizienten Codierungsverfahren können, da der stimmhafte Bereich und der stimmlose Bereich in einer einzelnen Position mehrerer Bänder abgegrenzt sind, die Grenzpunktdaten mit einer kleinen Zahl Bits übertragen werden. Da auch der stimmhafte Bereich und der stimmlose Bereich für jedes Band im Block (Rahmen) festgestellt werden, kann eine synthetische Tonqualität erreicht werden.
  • Ein Beispiel eines solchen hocheffizienten Codierungsverfahrens wird nachfolgend erläutert.
  • Für das hocheffiziente Codierungsverfahren kann ein Codierungsverfahren, beispielsweise das oben erwähnte MBE-Codierungsverfahren (Multibanderregungscodierungsverfahren), bei welchem ein Signal auf der blockweisen Basis in ein Signal auf der Frequenzachse umgewandelt und dann in mehrere Bänder geteilt wird, wobei für jedes Band eine Stimmhaft/Stimmlos-Entscheidung gemacht wird, verwendet werden.
  • Das heißt, bei einem generell hocheffizienten Codierungsverfahren wird das Sprachsignal mit einem Intervall einer vorbestimmten Zahl Abtastwerte, beispielsweise 256 Abtastwerte, in Blöcke geteilt, und das Sprachsignal wird durch eine Orthogonaltransformation wie beispielsweise FFT in Spektrumdaten auf der Frequenzachse umgewandelt. Gleichzeitig wird die Tonhöhe der Stimme im Block extrahiert, und das Spektrum auf der Frequenzachse wird mit einem der Tonhöhe entsprechenden Intervall in Bänder geteilt und infolgedessen für jedes der geteilten Bänder eine Stimmhaft/Stimmlos-Entscheidung (V/UV-Entscheidung) ausgeführt. Die V/UV-Entscheidungsdaten werden codiert und zusammen mit Amplitudendaten übertragen.
  • Wenn beispielsweise das Sprach-Synthese-Analyse-System wie beispielsweise der MBE-Vocoder angenommen wird, beträgt die Abtastfrequenz fS für das Eingangssprachsignal auf der Zeitachse normalerweise 8 kHz, und die ganze Bandbreite beträgt 3,4 kHz, wobei das effektive Band 200 bis 3400 Hz ist. Die Tonhöhennacheilung bzw. der Tonhöhenversatz von einer höheren weiblichen Stimme herunter zu einer niedrigeren männlichen Stimme oder die mit der Tonhöhenperiode korrespondierende Zahl Abtastwerte beträgt annähernd 20 bis 147. Demgemäss ändert sich die Tonhöhenfrequenz in einem Bereich von 8000/147 ≈ 54 Hz bis 8000/20 = 400 Hz. Demgemäss stehen im Bereich bis zu 3,4 kHz auf der Frequenzachse 8 bis 63 Tonhöhenimpulse oder -Oberschwingungen.
  • Auf diese Weise wird bei in Betrachtziehung der Änderung der Zahl Bänder zwischen etwa 8 bis 63 für jedes Band aufgrund der Bandteilung mit dem mit der Tonhöhe korrespondierenden Intervall bevorzugterweise die Zahl geteilter Bänder auf eine vorbestimmte Zahl, beispielsweise 12 reduziert.
  • Bei dem vorliegenden Beispiel wird der Grenzpunkt zur Abgrenzung des stimmhaften Bereiches und des stimmlosen Bereiches in einer einzelnen Position aller Bänder auf der Basis der V/UV-Entscheidungsdaten für mehrere Bänder, die durch eine mit der Tonhöhe korrespondierende Teilung reduziert oder erzeugt sind, gefunden, und dann werden die Daten oder der V/UV-Code zum Anzeigen des Grenzpunktes übertragen.
  • Eine Detektionsoperation des Grenzpunktes zwischen dem V-Bereich und dem UV-Bereich wird unter Bezugnahme auf das Flussdiagramm nach 19 und eine in 20 gezeigte Spektrumwellenform und V/UV-Umschaltwellenform erläutert. In der folgenden Beschreibung wird die Zahl geteilter Bänder auf beispielsweise 12 reduziert angenommen. Jedoch kann eine ähnliche Detektion des Grenzpunktes auch auf den Fall der variablen Zahl Bänder, die entsprechend der ursprünglichen Tonhöhe geteilt sind, angewendet werden.
  • Bezüglich der 19 werden beim ersten Schritt S401 V/UV-Daten aller Bänder eingegeben. Wenn beispielsweise die Zahl Bänder wie in 20A gezeigt auf 12 vom 0-ten Band bis zum 11-ten Band reduziert wird, werden alle V/UV-Daten für alle 12 Bänder genommen.
  • Als nächstes wird beim Schritt S402 festgestellt, ob es nicht mehr als einen einzigen V/UV-Umschaltpunkt oder nicht gibt. Wenn NEIN gewählt ist, das heißt, wenn es zwei oder mehr Umschaltpunkte gibt, geht die Operation zum Schritt S403 vor. Beim Schritt S403 werden die V/UV-Daten von dem Band auf der hohen Frequenzseite abgetastet und folglich wird die Bandzahl BVH der höchsten Mittenfrequenz in den V-Bändern detektiert. Bei dem Beispiel nach 20A werden die V/UV-Daten vom 11-ten Band auf der hohen Frequenzseite in Richtung zum 0-ten Band auf der niedrigen Frequenzseite abgetastet, und die Zahl 8 des ersten V-Bandes wird auf BVH gesetzt.
  • Beim nächsten Schritt S404 wird die Zahl NV der V-Bänder durch Abtasten von 0-ten Band bis zum BVH-ten Band gefunden. Bei dem Beispiel nach 20A gilt NV = 7, da sieben Bänder vom 0-ten, 1-ten, 2-ten, 4-ten, 5-ten, 6-ten und 8-ten Band zwischen dem 0-ten Band und dem 8-ten Band V-Bänder sind.
  • Beim nächsten Schritt S405 wird das Verhältnis NV/(BVH + 1) der Zahl NV der V-Bänder zur Zahl BVH + 1 der Bänder vom 0-ten Band bis zum BVH-ten Band gefunden, und es wird festgestellt, ob dieses Verhältnis gleich oder größer als eine vorbestimmte Schwelle Nth ist oder nicht. Bei dem Beispiel nach 20A gilt für das Verhältnis NV/(BVH + 1) = 7/9 ≈ 0,78. Wenn die Schwelle auf beispielsweise 0,7 eingestellt ist, wird die Entscheidung JA getroffen. Wenn beim Schritt S405 JA gewählt ist, geht die Operation zum Schritt S406 vor, wo der V/UV-Code zur Anzeige des Grenzpunktes zwischen dem V-Bereich und dem UV-Bereich so eingestellt wird, dass er BVH ist. Wenn beim Schritt S405 NEIN gewählt ist, geht die Operation zum Schritt S407 vor, wo festgestellt wird, dass ein ganzzahliger Wert, beispielsweise ein Wert mit fallengelassenen Dezimalbruchstellen oder ein aufgerundeter Wert des zum Zweck der Erniedrigung des V-Grades bis herauf zum BVH-Band durch Multiplikation von BVH mit einer Konstanten k (k < 1) erzeugten Wertes k·BVH der V/UV-Code ist. Es wird festgestellt, dass die Bänder vom 0-ten Band bis zum Band des ganzzahligen wertes von k·BVH V-Bänder sind, und dass Bänder auf der höheren Frequenzseite UV-Bänder sind.
  • Wenn andererseits beim Schritt S402 JA gewählt ist, das heißt wenn festgestellt wird, dass es einen einzigen U/V-Umschaltpunkt oder keinen gibt, geht die Operation zum Schritt S408 vor, bei welchem festgestellt wird, ob das 0-te Band das V-Band ist oder nicht. Wen JA gewählt ist, das heißt, wenn festgestellt wird, dass das 0-te Band das V-Band ist, geht die Operation zum Schritt S402 vor, wo ähnlich zum Schritt S403 die Bandzahl BVH für das erste V-Band von der hohen Frequenzseite gesucht wird und als der V/UV-Code gesetzt wird. Wenn beim Schritt S408 NEIN gewählt ist, das heißt, wenn festgestellt wird, dass das 0-te Band das stimmlose Band ist, geht die Operation zum Schritt S411 vor, wo alle Bänder so eingestellt werden, dass sie W-Bänder sind, und infolgedessen der V/UV-Code so eingestellt wird, dass er gleich 0 ist.
  • Das heißt, wenn es einen einzigen oder keinen V/UV-Umschaltpunkt gibt, wobei die niedrige Frequenzseite gleich V ist, wird keine Modifikation addiert. Wenn die niedrige Frequenzseite gleich UV ist, werden alle Bänder so eingestellt, dass sie UV sind.
  • Auf diese Weise wird das V/UV-Umschalten auf keinmal oder einmal beschränkt, und die Position in allen Bänder für das V/UV-Schalten (Umschalten und Bereichsabgrenzung) wird übertragen. Die V/UV-Codes für ein Beispiel, bei welchem die Zahl Bänder wie in 20A gezeigt auf 12 reduziert ist, sind folgende:
    Figure 00560001
    wobei UV durch 0 und V durch 1 angezeigt ist. Es gibt 13 Typen von V/UV-Codes, die mit 4 Bits übertragen werden können. Für alle V/UV-Entscheidungskennzeichen für jedes der 12 Bänder sind 12 Bit notwendig. Jedoch kann bei den oben erwähnten V/UV-Codes das übertragene Datenvolumen für die V/UV-Entscheidung auf 4/12 = 1/3 reduziert werden.
  • Bei dem Beispiel nach 20B ist der Fall gezeigt, dass der V/UV-Code gleich 8 ist, wobei das 0-te Band bis 8-te Band so eingestellt sind, dass sie V-Bereiche sind, während das 9-te Band bis 11-te Band so eingestellt sind, dass sie UV-Bereiche sind. Indessen wird beim Schritt S405 bei auf beispielsweise 0,8 eingestellter Schwelle Nth, wenn der Wert von NV/(BVH + 1) wie in 20A gezeigt gleich 7/9 ≈ 0,78 ist, die Entscheidung NEIN getroffen. Deshalb wird beim Schritt S407 der Wert von k·BVH so eingestellt, dass er der V/UV-Code ist, wodurch die V/UV-Bereichsabgrenzung auf einer niedrigeren Frequenzseite als das 8-te Band ausgeführt wird.
  • Mit dem oben erwähnten Algorithmus wird das Inhaltsverhältnis der V-Bänderdeterminante der Tonqualität unter den V/UV-Daten aller ursprünglichen Bänder, beispielsweise 12 Bänder, oder in anderen Worten ausgedrückt die Änderung des V-Bandes der höchsten Mittenfrequenz, mit hoher Präzision verfolgt. Deshalb ist der Algorithmus für das Verursachen von wenig Verschlechterung der Tonqualität charakterisiert. Außerdem wird es durch Einstellen der Zahl Bänder so, dass sie so klein wie oben beschrieben sind, und Treffen der V/UV-Entscheidung für jedes Band möglich, die Bitrate bei einem Erhalt von Stimmen bzw. Sprache höherer Qualität als beim PARCOR-Verfahren zu reduzieren, wobei im Vergleich zu dem Fall des regulären MBE wenig Verschlechterung der Tonqualität verursacht wird. Insbesondere wenn die Teilungszahl auf 2 gesetzt wird und wenn ein Sprachtonmodell, bei dem die niedrige Frequenzseite stimmhaft ist und bei dem die hohe Frequenzseite stimmlos ist, vorgeschlagen wird, ist es möglich, sowohl eine signifikante Reduzierung der Bitrate und Aufrechterhaltung der Tonqualität zu erzielen.
  • Wie aus der obigen Beschreibung klar hervorgeht, wird das Eingangssprachsignal auf der blockweisen Basis abgegrenzt und in die Daten auf der Frequenzachse umgewandelt, so dass es in mehrere Bänder geteilt ist. Das Band der höchsten Frequenz unter den stimmhaften Bändern innerhalb jedes der geteilten Bänder wird detektiert, und es werden die Daten des Grenzpunktes zur Abgrenzung des stimmhaften Bereichs und des stimmlosen Bereichs auf der Frequenzachse entsprechend der Zahl Bänder von dem Band auf der niedrigen Frequenzseite zum detektierten Band gefunden. Deshalb ist es möglich, die Grenzpunktdaten mit einer kleinen Zahl Bits zu übertragen, während eine Verbesserung der Tonqualität erreicht wird.
  • Indessen werden bevorzugterweise Amplitudendaten zum Ausdrücken der Spektrumenveloppe auf der Frequenzachse parallel mit der Reduktion der Zahl Bänder auf eine vorbestimmte Zahl eingestellt. Die Umwandlung der Zahl Abtastwerte der Amplitudendaten wird unter Bezugnahme auf die 21 erläutert.
  • Bei Reduzierung der Bitrate auf beispielsweise 3 bis 4 kbit/s, um die Quantisierungseffizienz weiter zu verbessern, wird bei einer skalaren Quantisierung nur das Quantisierungsrauschen erhöht, wodurch Schwierigkeiten bei der praktischen Anwendbarkeit verursacht werden. Infolgedessen wird eine Vektorquantisierung zum Sammeln mehrerer Daten in einer Gruppe oder einem Vektor, die bzw. der durch einen einzelnen Code auszudrücken ist, um die Daten ohne separate Quantisierung von bei der Codierung erhaltenen Zeitachsendaten, Frequenzachsendaten und Filterkoeffizientendaten zu quantisieren, in Betracht gezogen.
  • Da jedoch die Zahl von Spektrumamplitudendaten von MBE, SBE und LPC sich entsprechend der Tonhöhe ändert, ist eine Vektorquantisierung variabler Dimension erforderlich, wodurch eine Verkomplizierung der Anordnung und Schwierigkeiten beim Erhalten guter Charakteristiken verursacht werden.
  • Auch ist es beim Nehmen einer Interblockdifferenz (Interrahmendifferenz) von Daten vor der Quantisierung unmöglich, die Differenz zu nehmen, ohne dass die Zahlen von Daten im vorhergehenden und nachfolgenden Block (Rahmen) miteinander koinzidieren. Infolgedessen wird eine Umwandlung der Zahl von Daten guter Charakteristiken bevorzugt, obgleich es notwendig sein kann, bei der Datenverarbeitung die variable Zahl von Daten in eine vorbestimmte Zahl von Daten umzuwandeln. Im Hinblick auf den oben beschriebenen Stand der Technik wird ein Umwandlungsverfahren für die Zahl von Daten vorgeschlagen, wodurch es möglich wird, eine variable Zahl von Daten in eine vorbestimmte Zahl von Daten umzuwandeln und eine Umwandlung der Zahl von Daten guter Charakteristiken, die keine Verbindung am Anschluss- bzw. Endpunkt erzeugen, auszuführen.
  • Das Umwandlungsverfahren für die Datenzahl weist die Schritte auf: Nichtlineares Komprimieren von Daten, bei denen die Zahl von Wellenformdaten in einem Block oder von die Wellenform ausdrückenden Parameterdaten variabel ist, und Verwenden eines Umwandlers für die Zahl von Daten, der eine variable Zahl nichtlinearer Kompressionsdaten in eine vorbestimmte Zahl von Daten zum Vergleichen der variablen Zahl nicht linearer Kompressionsdaten auf der blockweisen Basis mit der vorbestimmten Zahl von Referenzdaten auf der blockweisen Basis in einem nichtlinearen Bereich umwandelt.
  • Bevorzugterweise werden Leer- bzw. Dummydaten zum Interpolieren des Wertes von den letzten Daten in einem Block bis zum ersten Block bzw. zu den ersten Daten im Block an die variable Zahl nichtlinearer Kompressionsdaten für jeden Block angehängt, um die Zahl von Daten zu erweitern und dann eine Überabtastung vom Bandbegrenzungstyp auszuführen. Die Dummydaten zum Interpolieren des Wertes von den letzten Daten in dem Block bis zu den ersten Daten in dem Block sind Daten, die keinerlei plötzliche Änderung des Wertes beim Endpunkt des Blockes mit sich bringen oder die intermittierende und diskontinuierliche Werte vermeiden. Es wird ein Typ einer Änderung im Wert, wobei der letzte Datenwert im Block in einem vorbestimmten Intervall gehalten und dann auf den ersten Datenwert im Block geändert wird und wobei der erste Datenwert in einem vorbestimmten Intervall gehalten wird, in Betracht gezogen. Bei der Überabtastung vom Bandbegrenzungstyp kann eine Orthogonaltransformation wie beispielsweise eine schnelle Fouriertransformation (FFT) und ein 0-Daten-Einsetzen in ein mit dem Mehrfachen der Überabtastung (oder Tiefpassfilterverarbeitung) korrespondieres Intervall ausgeführt werden, und dann kann eine inverse Orthogonaltransformation wie beispielsweise IFFT ausgeführt werden.
  • Als nichtlinear komprimierte Daten können in die Daten auf der Frequenzachse umgewandelte Audiosignale wie beispielsweise Stimmen- bzw. Sprachsignale und akustische Signale verwendet werden. Speziell können Spektrumenveloppeamplitudendaten im Fall der Multibanderregungscodierung (MBE-Codierung), Spektrumamplitudendaten und ihre Parameterdaten (LSP-Parameter α-Parameter und k-Parameter) bei Einzelbanderregungscodierung (SBE-Codierung), Oberschwingungscodierung, Subbandcodierung (SBC), Linearvorhersagecodierung (LPC), diskrete Cosinustransformation (DCT), modifizierte DCT (MDCT) oder schnelle Fouriertransformation (FFT) verwendet werden. Die in die vorbestimmte Zahl von Daten umgewandelten Daten können vektorquantisiert werden. Vor der Vektorquantisierung kann eine Interblockdifferenz der vorbestimmten Zahl von Daten für jeden Block genommen werden, und die Interblockdiffe renzdaten können durch Vektorquantisierung verarbeitet werden.
  • Es wird möglich, die umgewandelte vorgestimmte Zahl nicht linear komprimierter Daten mit den Referenzdaten in dem nichtlinearen Bereich zu vergleichen und die Interblockdifferenz vektorzuquantisieren. Außerdem ist es möglich, die Kontinuität von Datenwerten in dem Block vor der Umwandlung der Zahl von Daten zu erhöhen, wodurch eine Umwandlung der Zahl von Daten hoher Qualität ausgeführt wird, die keine Verbindung am Blockendpunkt erzeugt.
  • Ein Beispiel des oben beschriebenen Umwandlungsverfahrens für die Zahl von Daten wird unter Bezugnahme auf die Zeichnungen erläutert.
  • Die 21 zeigt eine schematische Anordnung für das Umwandlungsverfahren für die Zahl von Daten, wie es oben beschrieben ist.
  • Bezüglich 21 werden Amplitudendaten der vom MBE-Vocoder berechneten Spektrumenveloppe einem Eingangsanschluss 411 zugeführt. Wenn die Amplitude in der Position jeder Oberschwingung gefunden ist, um die Amplitudendaten, welche die wie in 22B gezeigte Spektrumenveloppe ausdrücken, im Hinblick auf die Periodizität des mit der durch Analysieren des wie in 22A gezeigten Spektrums aufweisenden Sprachsignals gefundenen Tonhöhenfrequenz ω korrespondierenden Spektrums zu finden, ändert sich die Zahl der Amplitudendaten in einem vorbestimmten effektiven Band, beispielsweise 200 bis 3400 Hz, in Abhängigkeit von der Tonhöhenfrequenz ω. Infolgedessen wird eine vorbestimmte feste Frequenz ωC vorgeschlagen, und es werden die Amplitudendaten der Spektrumenveloppe in der Position der Oberwellen der vorbestimmten Frequenz ωC gefunden, wodurch die Zahl von Daten konstant gemacht wird.
  • Bei dem Beispiel nach 21 wird durch einen Nichtlinearkompressionsabschnitt 412 eine variable Zahl (mMX + 1) der Eingangsdaten aus dem Eingangsanschluss 411 mit einer logarithmischen Kompression in beispielsweise einen dB-Bereich komprimiert und dann durch einen Datenzahlumwandlungshaupt körper 413 in eine vorbestimmte Zahl (M) von Daten umgewandelt. Der Datenzahlumwandlungshauptkörper 413 weist einen Dummydatenanhängeabschnitt 414 und einen Bandbegrenzungstyp-Überabtastabschnitt 415 auf. Der Bandbegrenzungstyp-Überabtastabschnitt 415 ist durch einen Orthogonaltransformationsverarbeitungsabschnitt (beispielsweise FFT-Verarbeitungsabschnitt) 416, einen 0-Daten-Einsetz-Verarbeitungsabschnitt 417 und einen inversen Orthogonaltransformationsverarbeitungsabschnitt (beispielsweise IFFT-Verarbeitungsabschnitt) 418 gebildet. Mit der Bandbegrenzungstyp-Überabtastung verarbeitete Daten werden durch einen Linearinterpolationsabschnitt 419 linear interpoliert, dann durch einen Dezimierungsverarbeitungsabschnitt 420 auf eine vorbestimmte Zahl von Daten eingeschränkt und von einem Ausgangsanschluss 421 ausgegeben.
  • Ein Amplitudendatenarray, das aus im MBE-Vocoder berechneten (mMX + 1)-Daten besteht, wird auf a(m) eingestellt. m zeigt eine nachfolgende Zahl der Oberschwingungen oder eine Bandzahl an, und mMX ist der Maximumwert. Jedoch ist die Zahl von Amplitudendaten in allen Bändern einschließlich den Amplitudendaten in dem Band von m = 0 gleich (mMX + 1). Die Amplitudendaten a(m) werden vom Nichtlinearkompressionsabschnitt 414 in einen dB-Bereich umgewandelt. Das heißt, mit den erzeugten Daten adB(m) gilt die folgende Formel: adB(m) = 20 log10a(m). (21)
  • Da die Zahl (mMX + 1) der mit der logarithmischen Umwandlung umgewandelten Amplitudendaten adg(m) sich entsprechend der Tonhöhe ändert, werden die Amplitudendaten in die vorbestimmte Zahl (M) von Amplitudendaten bdB(m) umgewandelt. Diese Umwandlung ist eine Art Abtastratenumwandlung. Indessen kann die Kompressionsverarbeitung durch den nichtlinearen Kompressionsabschnitt 412 eine von der logarithmischen Kompression in den dB-Bereich verschiedene pseudologarithmische Kompressionsverarbeitung, beispielsweise ein sogenanntes γ-Gesetz oder α-Gesetz sein. Mit der Kompression der Amplitude auf diese Weise kann eine effiziente Codierung realisiert werden.
  • Die Abtastfrequenz fS für das in den MBE-Vocoder eingegebene Sprachsignal auf der Frequenzachse ist normalerweise gleich 8 kHz, und die ganze Bandbreite ist 3,4 kHz mit der effektiven Bandbreite von 200 bis 3400 kHz. Der Tonhöhenversatz der mit der Tonhöhenperiode korrespondierenden Zahl Abtastwerte von einer hohen weiblichen Stimme zu einer tiefen bzw. niedrigen männlichen Stimme beträgt etwa 20 bis 147. Demgemäss wird die Tonhöhenfrequenz (Winkelfrequenz) ω in einem Bereich von 8000/147 ≈ 54 Hz bis 8000/20 = 400 Hz geändert. Deshalb stehen in einem Bereich bis zu 3,4 kHz auf der Frequenzachse etwa 8 bis 63 Tonhöhenimpulse (Oberschwingungen). Das heißt, es werden als Wellenform des dB-Bereichs auf der Frequenzachse Daten, die aus 8 bis 63 Abtastwerten bestehen, mit einer Abtastumwandlung in eine vorbestimmte Zahl Abtastwerte, beispielsweise 44 Abtastwerte, verarbeitet. Diese Abtastumwandlung korrespondiert, wie in der 22C gezeigt, mit dem Finden von Abtastwerden der Position der Oberschwingungen für jede vorbestimmte Tonhöhenfrequenz ωC,.
  • Dann werden zur Erleichterung der FFT die (mMX + 1) Kompressionsdaten adB(m) durch den Dummydatenanhängeabschnitt 414 auf die Zahl NF, beispielsweise NF = 256 erweitert. Das heißt, mit den als Dummydaten a'dB(m) betrachteten Daten von (mMX + 1) bis NF werden die Kompressionsdaten unter Verwendung der folgenden Formel MMX + 1 ≤ m < NF/2: a'dB(m) = adB(mMX) NF/2 ≤ m < 3NF/4: a'dB(m) = adB(mMX) × k1 + adB(0) × k2, wobei k1 = (3NF/4 – n)/NF/4) k2 = (n – NF/2)/(NF/4) gilt, 3NF/4 ≤ m < NF: a'dB(m) = adB(0) (22)erweitert. Wie in der 23 gezeigt ist, werden die ursprünglichen Amplitudendaten adB (m) in einem Abschnitt von 0 bis mMX platziert, und die letzten Daten adB(mMX) in dem Block werden in einem Abschnitt mMX + 1 ≤ m < NF/2 gehalten. Ein Abschnitt 3NF/4 ≤ m < NF ist eine gefaltete Linie derart, dass die ersten Daten adB(0) in dem Block gehalten sind.
  • Das heißt, Daten werden produziert und angefüllt, so dass ein linker und rechter Rand der ursprünglichen Wellen form zur Ratenumwandlung wie in 23 gezeigt graduell miteinander verbunden sind. Bei FFT ist, da die Wellenform vor der Umwandlung als eine durch eine gestrichelte Linie in 23 gezeigte Wiederholungswellenform betrachtet wird, der Punkt von m = NF mit m = 0 zu verbinden.
  • Wenn nach der FFT eine Filterung zur Ausführung einer Multiplikation auf der Frequenzachse auszuführen ist, wird auf der in 23 gezeigten ursprünglichen Achse eine Faltung ausgeführt. Deshalb wird, wenn in einem von der wie in 24 gezeigten ursprünglichen Wellenform verschiedenen Abschnitt (mMX < m < NF) einfach 0 Anfüllung ausgeführt wird, eine durch eine gestrichelte Linie R in 24 angedeutete Verbindung an einem diskontinuierlichen Punkt erzeugt, wodurch die normale Ratenumwandlung gestört wird. Zur Verhinderung einer solchen Unvorteilhaftigkeit werden die Dummydaten angefüllt, so dass sie wie in 23 gezeigt nicht solche plötzlichen Änderungen des Wertes am Blockendpunkt mit sich bringen. Neben dem konkreten Beispiel der Dummydaten wird auch in Betracht gezogen, die ganzen Daten von den letzten Daten des Blocks zu den ersten Daten des Blocks linear zu interpolieren, wie es durch eine gestrichelte Linie I in 23 angezeigt ist, oder gekrümmt zu interpolieren.
  • Als nächstes wird die zu NF Punkten (NF Abtastwerte) erweiterte Progression oder Datenfolge vom FFT-Verarbeitungsabschnitt 416 des Bandbegrenzungstyp-Überabtastabschnitts 415 mit einer NF-Punkt-FFT verarbeitet, wodurch, wie in 25A gezeigt ein Fortschreiten bzw. eine Progression (Spektrum) von 0 bis NF erzeugt wird. Die (0S – 1)NF-Zahl von Nullen werden in einen Raum zwischen einem Abschnitt der mit 0 bis π korrespondierenden Abschnitt der Progression und einen mit π bis 2π korrespondierenden Abschnitt durch den 0-Daten-Einsetz-Verarbeitungsabschnitt 417 gefüllt. 0S ist zu diesem Zeitpunkt das Überabtastverhältnis. Beispielsweise werden im Fall von 0S = 8 gleich 7NF Nullen in den Raum zwischen den mit 0 bis π korrespondierenden Abschnitt und den mit π bis 2π korrespondierenden Abschnitt in der Progression gefüllt, wo durch eine 8NF-Punktprogression erzeugt wird, beispielsweise 2048 Punkte im Fall von NF = 256.
  • Das 0-Daten-Einsetzen kann eine LPF-Verarbeitung sein. Das heißt, eine Progression von OSNF als die Abtastrate wird mit einer durch die fette Linie in 26A gezeigte Tiefpassverarbeitung mit einer Grenzfrequenz bzw. einem Abschnitt von π/8 durch eine digitale Filteroperation bei OSNF verarbeitet, wodurch eine Folge von Abtastwerten erzeugt wird, wie sie in 26B gezeigt ist. Bei dieser Filteroperation besteht die Gefahr, dass eine Verbindung, wie sie durch die gestrichelte Linie R in 24 gezeigt ist, erzeugt werden kann. Bei der vorliegenden Ausführungsform werden zur Vermeidung der Verbindung der linke und rechte Rand der ursprünglichen Wellenform sanft miteinander verbunden, so dass keine plötzliche Änderung im Differentialkoeffizienten verursacht wird.
  • Als nächstes kann bei Verarbeitung von OSNF Punkten, beispielsweise 2048 Punkte, mit der inversen FFT durch die IFFT-Verarbeitungseinheit 418 die in 27 gezeigten, mit 0S überabgetasteten Amplitudendaten mit den Dummydaten erhalten werden. Bei Ausgabe des effektiven Abschnitts dieser Datenfolge, das heißt 0 bis 0S × (mMX + 1), kann die ursprüngliche Wellenform (ursprüngliche Amplitudendaten adB(m)) erhalten werden, die so überabgetastet ist, dass sie ein OS-mal größere Dichte aufweisen. Dies ist eine Datenfolge, die noch von der entsprechend der Tonhöhe variablen Zahl (mMX + 1) abhängt.
  • Als nächstes wird zur Umwandlung der Datenfolge in eine feste Zahl von Daten eine lineare Interpolation ausgeführt. Beispielsweise zeigt die 28A den Fall mMX = 19 (wobei die Zahl aller Bänder vor der Umwandlung und die Amplituden- daten gleich 20 sind). Durch Ausführen einer 8-fachen Überabtastung mit 0S = 8 werden 0S × (mMX + 1) = 160 Abtastdaten zwischen 0 und π erzeugt. Die 160 Abtastdaten werden dann von der Linearinterpolationseinheit 419 in eine vorbestimmte Zahl NM Daten, beispielsweise 2048 Daten, linear interpoliert.
  • Die 29A zeigt die von der Linearinterpolationseinheit 419 durch lineare Interpolation erzeugte vorbestimmte Zahl N, beispielsweise 2048 Daten. Um diese 2048 Abtastdaten in eine vorbestimmte Zahl von M Abtastwerten, beispielsweise 44 Abtastwerte, umzuwandeln, werden die 2048 Abtastdaten vom Einschränkungsverarbeitungsabschnitt 420 eingeschränkt. Infolgedessen werden 44-Punkt-Daten erhalten. Da es nicht notwendig ist, einen Gleichsignalwert (Gleichstromdatenwert oder den 0-ten Datenwert) zwischen dem 0-ten bis 2047-ten Abtastwert zu übertragen, können 44 Daten erzeugt werden, wobei der Wert von
    nint (2048/44)·i
    als der Einschränkungswert verwendet wird. Jedoch ist, da 1 ≤ i ≤ 44 gilt, „nint" eine Funktion, welche die nächste ganze Zahl anzeigt.
  • Auf diese Weise wird die in die vorbestimmte Zahl M von Abtastwerten umgewandelte Progression bdB(n) erhalten, wobei 1 ≤ n ≤ M gilt. Es genügt, wenn notwendig, die Interblock- oder Interrahmendifferenz zu nehmen, um die Progression der festen Zahl von Daten mit der Vektorquantisierung zu verarbeiten und ihren Index zu übertragen.
  • Auf der Empfangsseite (Syntheseseite oder Dekodiererseite) werden aus dem Index M-Punkt-Wellenformdaten erzeugt, die eine vektorquantisierte und inversquantisierte Progression bVQdB(n) sind. Die Datenfolge wird durch inverse Operationen der Bandbegrenzungsüberabtastung, linearen Interpolation bzw. Einschränkung ähnlich verarbeitet und dadurch in die (mMX + 1)-Punkt-Progression der notwendigen Zahl Punkte umgewandelt. Indessen kann mMX (oder + 1) durch separat übertragene Tonhöhendaten gefunden werden. Beispielsweise kann beim Setzen der für die Abtastperiode standardisierten Tonhöhenperiode auf p die Tonhöhenfrequenz ω durch 2π/p gefunden werden und als mMX + 1 = inint (p/2) berechnet werden, da π/ω = p/2 ist. Die Decodierungsverarbeitung wird auf der Basis der Amplitudendaten von mMX + 1 Punkten ausgeführt.
  • Gemäß dem oben beschriebenen Umwandlungsverfahren für die Zahl von Daten ist es, da die variable Zahl von Daten im Block nicht linear komprimiert sind und in die vorbestimmte Zahl von Daten umgewandelt werden, möglich, die Interblockdifferenz (Interrahmendifferenz) zu nehmen und die Vektorquantisierung auszuführen. Deshalb ist das Umwandlungsverfahren für die Verbesserung der Codierungseffizienz sehr effektiv. Auch werden bei der Ausführung der Bandbegrenzungstyp-Überabtastungsverarbeitung für die Datenzahlumwandlung (Abtastzahlumwandlung) die Dummydaten, beispielsweise zum Interpolieren zwischen dem letzten Datenwert im Block vor der Verarbeitung und den ersten Datenwert, addiert, um die Zahl von Daten zu erweitern. Deshalb ist es möglich, eine Unvorteilhaftigkeit wie die Erzeugung einer Verbindung am Endpunkt aufgrund der späteren Filterverarbeitung zu vermeiden und eine gute Codierung, insbesondere eine hocheffiziente Vektorquantisierung zu realisieren.
  • Bei Reduzierung der Bitrate auf etwa 3 bis 4 kbit/s, um die Quantisierungseffizienz weiter zu verbessern, wird das Quantisierungsrauschen bei der skalaren Quantisierung erhöht, wodurch Schwierigkeiten bei der praktischen Anwendbarkeit verursacht werden.
  • Infolgedessen kann die Anwendung einer Vektorquantisierung in Betracht gezogen werden. Jedoch beim Setzen der Zahl Bits des Vektorquantisierungsausgangssignals (Index) auf b erhöht sich die Größe des Codebuchs des Vektorquantisierers proportional zu 2b, und das Operationsvolumen für die Codebuchsuche erhöht sich ebenfalls proportional zu 2b. Wird jedoch die Zahl der Ausgangsbits b zu klein gemacht, wird das Quantisierungsrauschen erhöht. Deshalb werden bevorzugterweise die Größe des Codebuchs und das Operationsvolumen zum Zeitpunkt der Suche reduziert, wobei die Bitzahl b bis zu einem gewissen Grad beibehalten wird. Auch bei einer Vektorquantisierung der in die Daten auf der Frequenzachse umgewandelten Daten in diesem Zustand kann die Codierungseffizienz nicht ausreichend verbessert werden. Deshalb ist eine Technik zur weiteren Verbesserung des Kompressionsverhältnisses erforderlich.
  • Infolgedessen wird ein hocheffizientes Codierungsverfahren vorgeschlagen, wodurch es möglich ist, die Größe des Codebuchs des Vektorquantisierers und das Operationsvolumen zum Zeitpunkt der Suche ohne Absenkung der Zahl Ausgangsbits einer Vektorquantisierung zu reduzieren und das Kompressionsverhältnis bei der Vektorquantisierung zu verbessern.
  • Gemäß der vorliegenden Erfindung ist ein hocheffizientes Codierungsverfahren bereitgestellt, welches die Schritte aufweist: Teilen von Eingangsaudiosignalen in Blöcke und Umwandeln der Blocksignale in Signale auf der Frequenzachse zum Finden von Daten auf der Frequenzachse als einen Mdimensionalen Vektor, Teilen der M-dimensionalen Daten auf der Frequenzachse in mehrere Gruppen und Finden eines repräsentativen Wertes für jede der Gruppen zum Erniedrigen der M-Dimension auf eine S-Dimension, wobei S < M ist, Verarbeiten der S-dimensionalen Daten durch eine erste Vektorquantisierung, Verarbeiten von Ausgangsdaten der ersten Vektorquantisierung durch eine inverse Vektorquantisierung zum Finden eines korrespondierenden S-dimensionalen Codevektors, Expandieren des S-dimensionalen Codevektors auf einen ursprünglichen M-dimensionalen Vektor, und Verarbeiten von die Relation zwischen Daten auf der Frequenzachse des expandierten M-dimensionalen Vektors und des ursprünglichen M-dimensionalen Vektors darstellenden Daten mit einer zweiten Vektorquantisierung.
  • Die in Daten auf der Frequenzachse auf der blockweisen Basis umgewandelten und auf nichtlineare Weise komprimierten Daten können als die Daten auf der Frequenzachse des Mdimensionalen Vektors verwendet werden.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung weist das hocheffiziente Codierungsverfahren die Schritte auf: Nichtlineares Kompressimieren von durch Teilen von Eingangsaudiosignalen in Blöcke erhaltenen Daten und Umwandeln resultierender Blockdaten in Signale auf der Frequenzachse zum Finden von Daten auf der Frequenzachse als den Mdimensionalen Vektor und Verarbeiten der Daten auf der Fre quenzachse des M-dimensionalen Vektors mit einer Vektorquantisierung.
  • Bei diesem hocheffizienten Codierungsverfahren kann die Interblock-Differenz von vektorzuquantisierenden Daten genommen und mit einer Vektorquantisierung verarbeitet werden.
  • Gemäß einem noch anderen Aspekt der vorliegenden Erfindung weist ein hocheffizientes Codierungsverfahren auf: Nehmen einer Interblockdifferenz von durch Teilen von Eingangsaudiosignalen auf der blockweisen Basis erhaltenen Daten und durch Umwandeln in Signale auf der Frequenzachse zum Finden von Interblockdifferenzdaten als den M-dimensionalen Vektor und Verarbeiten der Interblockdifferenzdaten des M-dimensionalen Vektors mit einer Vektorquantisierung.
  • Gemäß einem noch anderen Aspekt der vorliegenden Erfindung weist ein hocheffizientes Codierungsverfahren die Schritte auf: Teilen von Eingangsaudiosignalen in Blöcke und Umwandeln der Blocksignale in Signale auf der Frequenzachse zum Umwandeln einer Amplitude des Spektrums in eine dB-Bereichsamplitude, um so Daten auf der Frequenzachse als einen M-dimensionalen Vektor zu finden, Teilen der M-dimensionalen Daten auf der Frequenzachse in mehrere Gruppen und Finden von Mittelwerten für die Gruppen zum Erniedrigen der M-Dimension auf eine S-Dimension, wobei S < M gilt, Verarbeiten von S-dimensionalen Mittelwertdaten mit einer ersten Vektorquantisierung, Verarbeiten von Ausgangsdaten der ersten Vektorquantisierung mit einer inversen Vektorquantisierung zum Finden eines korrespondierenden S-dimensionalen Codevektors, Expandieren des S-dimensionalen Codevektors auf einen ursprünglichen M-dimensionalen Vektor, und Verarbeiten von Differenzdaten zwischen Daten auf der Frequenzachse des expandierten M-dimensionalen Vektors und des ursprünglichen Mdimensionalen Vektors mit einer zweiten Vektorquantisierung.
  • Bei einem solchen hocheffizienten Codierungsverfahren wird es durch Vektorquantisierung mit einem hierarchischen Codebuch zur Erniedrigung der M-Dimension auf die S-Dimension und Ausführung der Vektorquantisierung, wobei S < M gilt, möglich, das Operationsvolumen der Codebuchsuche oder die Co debuchgröße zu verkleinern. Infolgedessen wird es möglich, einen effektiven Gebrauch vom Fehlerkorrekturcode zu machen. Andererseits kann die Quantisierungsqualität durch Ausführen der Vektorquantisierung nach einer nichtlinearen Kompression von Daten auf der Frequenzachse verbessert werden, während die Kompressionseffizienz durch Nehmen der Interblockdifferenz weiter verbessert werden kann.
  • Eine bevorzugte Ausführungsform des oben beschriebenen hocheffizienten Codierungsverfahrens wird unter Bezugnahme auf die Zeichnungen erläutert.
  • Die 30 zeigt eine schematische Anordnung eines Codierers zur Erläuterung des hocheffizienten Codierungsverfahrens gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Bei der 30 werden einem Eingangsanschluss 611 Sprachsignale oder akustische Signale zugeführt, um von einem Frequenzachsentransformationsprozessor 612 in Spektrumamplitudendaten auf der Frequenzachse umgewandelt zu werden. Der Frequenzachsentransformationsprozessor 12 weist auf: einen Blockbildungsabschnitt 612a zum Teilen von Eingangssignalen auf der Frequenzachse in Blöcke, deren jeder aus einer vorbestimmten Zahl von Abtastwerten, hier n Abtastwerte, besteht, einen Orthogonaltransformationsabschnitt 612b für beispielsweise eine schnelle Fouriertransformation (FFT), und einen Datenprozessor 612c zum Finden der für Eigenschaften einer Spektrumenveloppe repräsentativen Amplitudeninformation. Ein Ausgangssignal aus dem Frequenzachsentransformationsprozessor 612 wird über einen fakultativen nichtlinearen Kompressionsabschnitt 613 zur Umwandlung in dB-Bereichsdaten und einen fakultativen Prozessor 614 zum Nehmen der Interblockdifferenz ein Vektorquantisierer 615 zugeführt. Im Vektorquantisierer 615 wird eine vorbestimmte Zahl Abtastwerte, hier M Abtastwerte, genommen und in einen M-dimensionalen Vektor quantisiert und mit einer Vektorquantisierung verarbeitet. Generell ist die M-dimensionale Vektorquantisierung eine Operation der Suche nach einem Codevektor, der den kürzesten Abstand im Mdimensionalen Raum zum dimensionalen Eingangsvektor aus einem Codebuch aufweist, um einen Index des gesuchten Codevektors aus einem Ausgangsanschluss 616 auszugeben. Der Vektorquantisierer 615 der in 30 gezeigten Ausführungsform weist eine hierarchische Struktur derart auf, dass eine zweistufige Vektorquantisierung am Eingangsvektor ausgeführt wird.
  • Das heißt, bei dem in 30 gezeigten Vektorquantisierer 615 werden Daten des M-dimensionalen Vektors (Daten auf der Frequenzachse) als eine Einheit für die Vektorquantisierung zu einem Dimensionsverkleinerungsabschnitt 621 übertragen, in welchem die Daten in mehrere Gruppen geteilt werden und ein repräsentativer Wert in jeder Gruppe zur Verkleinerung der Zahl der Dimension auf S, wobei S < M ist, gefunden wird. Die 31 zeigt ein konkretes Beispiel von Elementen eines in den Vektorquantisierer 615 eingegebenen Mdimensionalen Vektors X, das heißt M Einheiten von Amplitudendaten x(n) auf der Frequenzachse, wobei 1 ≤ n ≤ M ist. Diese M Einheiten der Amplitudendaten x(n) werden in beispielsweise vier Abtastwerte gruppiert, und für jeden dieser vier Abtastwerte wird ein repräsentativer Wert, beispielsweise ein Mittelwert yi gefunden. Hierauf ergibt sich ein S-dimensionaler Vektor Y, der, wie in 32 gezeigt, aus S Einheiten der Mittelwertdaten y1 bis yS besteht, wobei S = M/4 gilt.
  • Diese S-dimensionalen Vektordaten werden durch einen S-dimensionalen Vektorquantisierer 622 mit einer Vektorquantisierung verarbeitet. Das heißt, es wird der dem S-dimensionalen Eingangscodevektor im S-dimensionalen Raum nächstliegende Codevektor unter den S-dimensionalen Codevektoren im Codebuch des S-dimensionalen Vektorquantisierers 622 gesucht. Indexdaten des so gesuchten Codevektors werden an einem Ausgangsanschluss 626 ausgegeben. Der so gesuchte Codevektor, das heißt der durch inverse Vektorquantisierung des Ausgangsvektors erhaltene Codevektor wird zu einem Dimensionsexpandierungsabschnitt 623 übertragen. Die 33 zeigt Elemente yVQI bis yVQS des S-dimensionalen Vektors YVQ als ein lokales Dekodiererausgangssignal, das durch Vektorquantisierung und dann inverse Quantisierung des aus S-Einheiten von in 32 gezeigten Mittelwertdaten y1 bis yS bestehenden S-dimensionalen Vektors Y, in anderen Worten ausgedrückt durch Aus geben des durch Quantisierung durch das Codebuch des Vektorquantisierers 622 gesuchten Codevektors erhalten wird.
  • Der Dimensionsexpandierungsabschnitt 623 expandiert den oben erwähnten S-dimensionalen Codevektor auf einen ursprünglichen M-dimensionalen Vektor. Die 34 zeigt ein Beispiel der Elemente des expandierten M-dimensionalen Vektors. Aus der 34 ist klar zu entnehmen, dass der aus 4S = M Elementen bestehende M-dimensionale Vektor durch Erhöhung der Elemente yVQ1 bis yVQS des invers vektorquantisierten S-dimensionalen Vektors YVQ erhalten wird. Die zweite Vektorquantisierung wird an Daten ausgeführt, welche die Relation zwischen dem expandierten M-dimensionalen Vektor und den Daten auf der Frequenzachse des ursprünglichen M-dimensionalen Vektors anzeigen.
  • Bei der Ausführungsform nach 30 werden die expandierten M-dimensionalen Vektordaten aus dem Dimensionsexpandierungsabschnitt 623 zu einem Subtrahierer 624 zum Subtrahieren des ursprünglichen M-dimensionalen Vektors von den Daten auf der Frequenzachse übertragen, wodurch S Einheiten von Vektordaten erzeugt werden, welche die Relation zwischen dem von der S-Dimension expandierten M-dimensionalen Vektor und dem ursprünglichen M-dimensionalen Vektor anzeigen. Die 35 zeigt M Einheiten aus Daten r1 bis rm die bei der Subtraktion der Elemente des in 34 gezeigten expandierten Mdimensionalen Vektors von den M Einheiten von Amplitudendaten x(n) auf der Frequenzachse, die jeweilige Elemente des in 31 gezeigten M-dimensionalen Vektors X sind, erhalten werden. Vier Abtastwerte jeder dieser M Einheiten aus Daten r1 bis rM werden als Sätze oder Vektoren gruppiert, um S Einheiten der vier dimensionalen Vektoren R1 bis RS zu erzeugen.
  • Die aus dem Subtrahierer 624 erhaltenen S Einheiten aus Vektoren werden durch S Einheiten aus Vektorquantisierern 6251 bis 625S einer Vektorquantisierergruppe 625 mit einer Vektorquantisierung verarbeitet. Ein aus jedem der Vektorquantisierer 6251 bis 625S ausgegebener Index wird von Ausgangsanschlüssen 6271 bis 627S ausgegeben. Die 36 zeigt Elemente rVQ1 bis rVQ4, rVQ5 bis rVQ8, ... rVQM der jeweiligen vierdimensionalen Vektoren RVQ1 bis RVQS, die aus der Vektorquantisierung der in 35 gezeigten vierdimensionalen Vektoren R1 bis RS resultieren, wobei die Vektorquantisierer 6251 bis 625S als die jeweiligen vierdimensionalen Vektorquantisierer verwendet werden.
  • Durch die oben beschriebene hierarchische zweistufige Vektorquantisierung wird es möglich, das Operationsvolumen für Codebuchsuche und den Speicherraum für das Codebuch wie beispielsweise die ROM-Kapazität zu verkleinern. Auch wird es möglich, eine effektive Anwendung der Fehlerkorrekturcodes durch vorzugsweise Fehlerkorrekturcodierung für die aus dem Ausgangsanschluss 626 erhaltenen Indizes der oberen Ordnung durchzuführen. Indessen ist die hierarchische Struktur des Vektorquantisierers 615 nicht auf zwei Stufen beschränkt, sondern kann auch drei oder mehr Stufen einer Vektorquantisierung aufweisen.
  • Indessen müssen die jeweiligen Komponenten der 30 nicht als Hardware ausgebildet sein, sondern können unter Verwendung eines sogenannten digitalen Signalprozessors (DSP) durch Softwaretechniken ausgeführt werden. Der Vektorquantisierer 615 enthält einen Addierer 628 zum Summieren der Elemente der quantisierten Daten aus dem ersten und zweiten Vektorquantisierer 622, 625, um M Einheiten der quantisierten Daten zu erzeugen. Das heißt, die M Einheiten der expandierten M-dimensionalen Daten aus dem Dimensionsexpandierungsabschnitt 623 werden zu den M Einheiten der Elementdaten jeder der S Einheiten der Codevektoren aus den Vektorquantisierern 6251 , 625S addiert, um M Einheiten aus Daten aus einem Ausgangsanschluss 629 auszugeben. Der Addierer 628 wird zum Nehmen einer später erläuterten Interblock- oder Interrahmendifferenz verwendet und kann in dem Fall, dass eine solche Interblockdifferenz nicht genommen wird, fortgelassen sein.
  • Die 37 zeigt eine schematische Anordnung eines Codierers zur Illustration des hocheffizienten Codierungsverfahrens als eine zweite Ausführungsform der vorliegenden Erfindung.
  • Bei der 37 werden Audiosignale, beispielsweise Sprachsignale oder akustische Signale, einem Eingangsanschluss 611 zugeführt, werden von einem Frequenzachsentransformationsprozessors 612 in Blöcke geteilt, deren jeder aus N Einheiten von Abtastwerten besteht, und die erzeugten Daten werden zu einem Nichtlinearkompressionsabschnitt 613 übertragen, bei dem eine nichtlineare Kompression zur Umwandlung der Daten in beispielsweise dB-Bereichsdaten ausgeführt wird. M Einheiten der erzeugten nichtlinear komprimierten Daten werden zu einem M-dimensionalen Vektor gesammelt, der dann von einem Vektorquantisierer 615 mit einer Vektorquantisierung verarbeitet und dann von einem Ausgangsanschluss 616 ausgegeben wird. Der Vektorquantisierer 615 kann eine hierarchische Struktur aus zwei Stufen oder drei Stufen oder mehr Stufen aufweisen oder kann so ausgebildet sein, dass er eine gewöhnliche Einstufenvektorquantisierung ausführt, ohne dass er eine hierarchische Struktur aufweist. Der Nichtlinearkompressionsabschnitt 613 kann so ausgebildet sein, dass er eine sogenannte pseudologarithmische μ-Gesetz- oder A-Gesetz-Kompression anstelle einer log-Kompression (logarithmische Kompression) der Umwandlung der Daten in dB-Bereichsdaten ausführt. Infolgedessen kann durch eine logarithmische Amplitudentransformation, Kompression und lineare Codierung eine effiziente Codierung realisiert werden.
  • Die 38 zeigt eine schematische Anordnung eines Codierers zur Erläuterung des hocheffizienten Codierungsverfahrens als eine dritte Ausführungsform der Erfindung.
  • Bei der 38 werden einem Eingangsanschluss zugeführte Audiosignale von einem Frequenzachsentransformationsprozessor 612 in blockweise Daten geteilt und werden in Daten auf der Frequenzachse geändert. Die resultierenden Daten werden über einen fakultativen Nichtlinearkompressionsabschnitt 613 zu einem Prozessor 614 zum Nehmen der Interblockdifferenz übertragen. Indessen wird, wenn die Blöcke der N Einheiten aus Abtastwerten teilweise mit benachbarten Blöcken überlappt sind und auf der Zeitachse auf der rahmenweise Basis angeordnet sind, wobei jeder Rahmen aus L Einheiten aus Abtastwerten besteht, wobei L < N ist, vom Prozessor 612 eine Rahmendifferenz genommen. Die M Einheiten von Daten, bei denen die Interblockdifferenz oder die Interrahmendifferenz genommen worden ist, werden zu einem M-dimensionalen Vektorquantisierer 615 übertragen. Die vom M-dimensionalen Vektorquantisierer 615 quantisierten Indexdaten werden von einem Ausgangsanschluss 616 ausgegeben. Der Vektorquantisierer 615 kann eine Multischichtstruktur aufweisen oder auch nicht.
  • Der Prozessor 614 zum Nehmen der Interblock- oder Interrahmendifferenz kann so ausgebildet sein, dass er Eingangsdaten um einen einzelnen Block oder einzelnen Rahmen verzögert, um die Differenz von den ursprünglichen Daten zu nehmen, die nicht verzögert sind. Jedoch beim Beispiel der 38 ist ein Subtrahierer 631 mit einer Eingangsseite des Vektorquantisierers 615 verbunden. Ein aus M Einheiten von Elementdaten bestehender Codevektor aus dem M-dimensionalen Vektorquantisierer 615 wird um einen einzelnen Block oder Rahmen verzögert und von den Eingangsdaten (M-dimensionaler Vektor) subtrahiert. Da in diesem Fall die Differenzdaten der vektorquantisierten Daten genommen wird, wird der Codevektor aus dem Vektorquantisierer 615 zu einem Addierer 632 übertragen. Ein Ausgangssignal aus dem Addierer 632 wird von einer Blockverzögerungs- oder Rahmenverzögerungsschaltung 633 verzögert und von einem Multiplizierer 634 mit einem Koeffizienten α multipliziert, das dann zum Addierer 632 übertragen wird. Ein Ausgangssignal aus dem Multiplizierer 634 wird zum Subtrahierer 631 übertragen. Indessen werden bei Verwendung der in 30 gezeigten zweistufigen hierarchischen Struktur beim Mdimensionalen Vektorquantisierer 615 die Daten aus einem Ausgangsanschluss 629 zum Addierer 632 als ein M-dimensionaler Codevektor zur Vektorquantisierung übertragen.
  • Durch Nehmen der Interblock- oder Interrahmendifferenz kann ein Präsenzbereich der Eingangsamplitudendaten auf der Frequenzachse im M-dimensionalen Raum enger bzw. schmaler gemacht werden. Dies deshalb, weil die Amplitudenänderungen des Spektrums gewöhnlich klein sind und eine starke Korrelation zwischen den Block- oder Rahmenintervallen zeigen. Folglich kann das Quantisierungsrauschen reduziert werden und infolgedessen kann die Datenkompressionseffizienz weiter verbessert werden.
  • Als nächstes wird nachfolgend eine konkrete Ausführungsform der vorliegenden Erfindung erläutert, bei der die spektralen Amplitudendaten von durch einen Frequenzachsentransformationsprozessor 612 erhaltenen Daten auf der Frequenzachse von einem Nichtlinearkompressionsabschnitt 613 in Amplitudendaten in einem dB-Bereich umgewandelt werden, um eine wie in 38 gezeigte Interblock- oder Interrahmendifferenz zu finden, und bei der die resultierenden Daten von einem Multischichtvektorquantisierer 615 mit einer wie in 30 gezeigten M-dimensionalen Vektorquantisierung verarbeitet werden. Obgleich bei dem Frequenzachsentransformationsprozessors 612 eine Vielfalt von Codierungssystemen angenommen werden kann, kann, wie später erläutert, eine analytische Multibanderregungs-Verarbeitung (analytische MBE-Verarbeitung) angewendet werden. Bei der Blockbildung durch den Frequenzachsentransformationsprozessor 612 werden die N Abtastblockdaten auf der Zeitachse auf der blockweisen Basis angeordnet, wobei jeder Rahmen aus L Einheiten von Abtastwerten besteht. Die Analyse wird für einen Block, der aus N Einheiten von Abtastwerten besteht, ausgeführt, und die Ergebnisse der Analyse werden in einem Intervall aus L Einheiten von Abtastwerten für jeden Rahmen erhalten (oder aktualisiert).
  • Es sei angenommen, dass der Wert von Daten wie beispielsweise Daten für die Spektrumamplitude als die aus dem Frequenzachsentransformationsprozessor 612 erhaltenen Ergebnisse der MBE-Analyse gleich a(m) ist, und dass eine Zahl von (mMK + 1) von Abtastwerten für jeden Rahmen erhalten wird, wobei 0 ≤ m ≤ mMX gilt.
  • Wenn durch Umwandlung der Zahl (mMX + 1) von Abtastwerten aus Amplitudenwerten a(m) in dB-Bereichswerte erhaltene Daten gleich adB sind, gilt ähnlich wie bei der oben erwähnten Formel (21) adB(m) = 20 log10a(m). (23)
  • Bei der MBE-Analyse wird die Zahl (mMK + 1) von Abtastwerten für jeden Rahmen abhängig von der Tonhöhenperiode geändert. Für die Interrahmendifferenz und die Vektorquantisierung ist es wünschenswert, die Zahl der in jedem Rahmen oder Block vorhandenen dB-Amplitudenwerte adB(m) konstant zu halten. Aus diesem Grund wird die (mMK + 1)-Zahl der dB-Amplitudenwerte adB(m) in eine konstante Zahl M von Daten bdB(n) umgewandelt. Die Zahl n von Abtastpunkten ist so gewählt, dass sie für jeden Rahmen oder Block einen Wert 1 ≤ n ≤ M annimmt. Die Daten für n = 0, die mit dem dB-Amplitudenwert adB(0) für m = 0 korrespondieren, weisen eine mit der Gleichsignalkomponente korrespondierende Amplitude auf und werden folglich nicht übertragen. Das heißt sie sind ständig auf 0 gesetzt.
  • Durch Nehmen der Interrahmendifferenz nach der Umwandlung in dB-Bereichsdaten wird es möglich, den Bereich der Präsenz der oben erwähnten Daten bdB(n) einzuengen. Dies deshalb, weil die Spektrumamplitude nur bei seltenen Gelegenheiten im Lauf eines Rahmenintervalls, beispielsweise etwa 20 ms, signifikant geändert wird und folglich eine starke Korrelation zeigt. Das heißt, die Vektorquantisierung wird an dem folgenden Wert cdB(n), cdB(n) = bdB(n) – b'dB(n), (24)von dem die Differenz genommen worden ist, ausgeführt. In dieser Formel ist b'dB(n) ein vorhergesagter Wert von bdB(n), und bedeutet b'dB(n) = α · b''dB(n)p, (25)was durch Multiplizieren eines Ausgangssignals b'' dB(n)p mit einem Koeffizienten a durch einen Multiplizierer 634 erhalten wird, wobei b''dB(n)p durch Verzögerung des invers quantisierten Ausgangssignals b''dB(n) aus dem Vektorquantisierer 615 (zum oben erwähnten Codevektor äquivalentes lokales Dekodiererausgangssignal) durch eine Verzögerungsschaltung 633 um einen einzelnen Rahmen erhalten wird, wobei p den Zustand anzeigt, dass er der vorhergehenden Rahmen ist.
  • Wenn die Interrahmenamplitudendifferenz auf diese Weise genommen wird, treten, obgleich das Quantisierungsrauschen weiter reduziert werden kann, leichter Codefehler auf. Dies deshalb, weil ein Fehler in einem gegebenen Rahmen auf sukzessive sich anschließende Rahmen fortgepflanzt wird. Folglich wird α auf etwa 0,7 bis 0,8 gesetzt, um eine sogenannte Leckdifferenz zu nehmen. Wenn das System stärker gegen Codefehler sein soll, ist es möglich, α sogar auf 0 zu reduzieren, das heißt, die Interrahmendifferenzen nicht zu nehmen, um zum nächsten Verarbeitungsschritt vorzugehen. In einem solchen Fall ist es notwendig, eine balancierte Leistung des ganzen Systems zu berücksichtigen.
  • Eine Ausführungsform, bei der die Interrahmendifferenzdaten cdB(n) quantisiert werden, das heißt bei welcher ein Array cdB(n) als der M Einheiten von Elementen aufweisende Mdimensionale Vektor vektorquantisiert wird, wird nachfolgend erläutert. Es kann auch der Fall, dass die Differenz nicht genommen wird, in cdB(n) enthalten sein, wenn α = 0 in Betracht gezogen wird. Die M Einheiten von Daten, die M-dimensional vektorzuquantisieren sind, werden durch x(n) ersetzt. Bei der vorliegenden Ausführungsform gilt x(n) ≡ cdB(n) und 1 ≤ n ≤ M. Mit der Zahl b von Bits des Index des M-dimensionalen Vektorquantisierungsausgangssignals ist es logisch möglich, eine gerade Vektorquantisierung einer direkten Suche eines Codebuchs, das eine Zahl von M-Dimension × 2b Codevektoren aufweist, auszuführen. Jedoch nimmt das Operationsvolumen der Codebuchsuche bei der Vektorquantisierung proportional zu M2b zu und ebenso die Tabellen-ROM-Größe. Es ist deshalb praktischer, eine Vektorquantisierung zu verwenden, die ein strukturiertes Codebuch aufweist. Bei der vorliegenden Ausführungsform ist der M-dimensionale Vektor in mehrere niedrig dimensionale Vektoren geteilt, und es wird ein Mittelwert jedes der niedrig dimensionalen Vektoren berechnet. Die niedrig dimensionalen Vektoren werden in Vektoren geteilt, die aus diesen Mittelwerten (obere Ordnungsschicht) und von den Mittelwerten befreiten Vektoren (niedrige Ordnungsschichten) bestehen, von denen jeder dann mit einer Vektorquantisierung verarbeitet wird.
  • Die M Einheiten von Daten x(n), beispielsweise die Differenzdaten cdB(n), werden in S Einheiten von Vektoren geteilt:
    Figure 00780001
  • In der obigen Formel (26) drücken X1, X2, ..., XS Vektoren der Dimensionen d1, d2, ... bzw. dS aus, wobei d1 + d2 + ... + dS = M ist. t bezeichnet eine Vektortransposition. Das zuvor erwähnte und in 31 gezeigte konkrete Beispiel korrespondiert mit dem Fall, bei welchem die Dimensionen sämtlicher Vektoren X1, X2, ..., XS alle auf 4 gesetzt sind, das heißt d1 = d2 = ... = dS = 4 gilt. Wenn Mittelwerte der Elemente der S Einheiten von Vektoren X1, X2, ... , XS gleich y1, y2, ... bzw. yS sind, kann yi (1 ≤ i ≤ S) durch
    Figure 00780002
    ausgedrückt werden, wobei
    Figure 00780003
    gi = 0 (i = 1)gilt. Die S-dimensionalen Mittelwerte, die diese Mittelwerte als Elemente haben, sind durch die Formel (28) Y = (y1, y2, ..., yS)t (28)definiert. Dies korrespondiert mit der 32. Dieser Sdimensionale Vektor Y wird zuerst vektorquantisiert. Während eine Vielfalt der Methoden zur Vektorquantisierung des Vektors Y in Betracht gezogen werden kann, beispielsweise gerade Vektorquantisierung, usw., wird bei der vorliegenden Ausführungsform die Form-Verstärkungs-Vektorquantisierung angewendet. Die Form-Verstärkungs-Vektorquantisierung ist in M. J. Sabin, R. M. Gray, „Product Code Vector Quantizer for Waveform and Voice Coding", IEEE Trans. On ASSP, Vol. ASSP-32, Nr. 3, Juni 1984 beschrieben.
  • Es sei angenommen, dass das Ergebnis des vektorquantisierten S-dimensionalen Vektors Y gleich YVQ ist, was durch die Formel (29) YVQ = (YVQ1, YVQ2, ..., yVQS) (29)ausgedrückt werden kann. YVQ kann als eine schematische Form oder ein charakteristisches Volumen des ursprünglichen Arrays x(n) (≡ cdB(n), 1 ≤ n ≤ M) betrachtet werden. Demgemäss benötigt er einen relativ starken Schutz gegen Übertragungsfehler.
  • Dann wird auf der Basis des S-dimensionalen Vektors YVQ das Eingangsarray x(n) des ursprünglichen M-dimensionalen Vektors (≡ cdB(n)) angenommen oder auf die eine oder andere Weise dimensionsexpandiert. Ein Fehlersignal zwischen dem angenommenen Wert und dem ursprünglichen Eingangsarray hat ein Eingangssignal zur Vektorquantisierung auf der nächsten Stufe zu sein. Als typische Verfahren zur Annahme gibt es eine nichtlineare Interpolation, wie sie in A. Gersho, „Optimal Non-linear Interpolative Vector Quantization", IEEE Trans. On Comm. Vol. 38, Nr. 9, Sept. 1990 beschrieben ist, Splineinterpolation, Multiterminterpolation, gerade Interpolation (Interpolation erster Ordnung), Halten 0-ter Ordnung usw. Wenn bei dieser Stufe eine exzellente Interpolation ausgeführt wird, wird der Präsenzbereich des Eingangsvektors für die nächststufige Vektorquantisierung enger bzw. schmaler gemacht, wodurch eine Quantisierung mit weniger Störung ermöglicht ist. Bei der vorliegenden Ausführungsform wird das in 34 gezeigte einfachste Halten 0-ter Ordnung angewendet.
  • Wenn die mittelwertfreien Vektoren, die mit S Einheiten von Vektoren korrespondieren, das heißt die von vorquantisierten Mittelwerten befreiten restlichen Vektoren mit R1, R2, ..., RS bezeichnet werden, werden diese Vektoren R1, R2, ..., RS durch die folgende Formel
    Figure 00790001
    gefunden. Der Vektor Ii in der Formel (30) mit 1 ≤ i ≤ S ist ein Einheitsdatenfolgevektor der di-Dimension, bei dem alle Elemente gleich 1 sind. Die 35 zeigt ein konkretes Beispiel für diesen Fall.
  • Diese restlichen Vektoren R1, R2, ..., RS werden unter Verwendung separater Codebücher vektorquantisiert. Obgleich hier für die Vektorquantisierung eine gerade Vektorquantisierung verwendet wird, ist es auch möglich, eine anders strukturierte Vektorquantisierung zu verwenden. Das heißt, für die folgende Formel (31), in welcher die restlichen Vektoren R1, R2, ..., RS durch Elemente
    Figure 00800001
    ausgedrückt sind, sind vektorquantisierte Daten durch RVQ1, RVQ2, ..., RVQS und generell durch RVQi dargestellt, mit RVQi = (rVQ(gi + 1), ..., rVQ(gi + di))t (32)
  • Diese Daten können als die restlichen Vektoren Ri betrachtet werden, an die ein Quantisierungsfehler εi angehängt ist. Das heißt, es gilt rVQi = Ri + εi (33)
  • Das heißt, es gilt
    Figure 00800002
  • Die 36 zeigt ein konkretes Beispiel der Elemente der restlichen Vektoren RVQ1, RVQ2, ..., RVQS nach der Quantisierung.
  • Ein auf die Codierungsseite übertragenes Indexausgangssignal ist ein YVQ anzeigender Index, und S Einheiten aus Indizes zeigen die S Einheiten der restlichen Vektoren RVQ1, RVQ2, ..., RVQS an. Indessen ist bei der Form-Verstärkungs-Vektorquantisierung ein Ausgangsindex durch einen Index zur Formung und einen Index zur Verstärkung dargestellt. Zur Erzeugung eines decodierten Wertes der Vektorquantisierung wird die folgende Operation ausgeführt. Nachdem YVQ, RVQi mit 1 ≤ i ≤ 5 durch ein Tabellennachschlagen aus dem übertragenen In dex erhalten sind, wird die folgende Operation ausgeführt. Das heißt, es wird aus der Formel (29) YVQi gefunden, und XVQi wird wie folgt gefunden: XVQi = RVQ1 + yVQiIi (1 ≤ i ≤ S) = Ri + εi + yVQiIi = Xi – yVQiIi + εi + yVQiIi = X1 – εi. (35)
  • Deshalb ist das in einem Dekodiererausgangssignal erscheinende Quantisierungsrauschen nur das während der Quantisierung von Ri erzeugte εi. Die Qualität der Quantisierung von Y auf der ersten Stufe ist nicht direkt im endgültigen Rauschen enthalten. Jedoch beeinflusst eine solche Qualität die Eigenschaften der Vektorquantisierung von RVQi auf der zweiten Stufe, wobei es schließlich auf den Pegel des Quantisierungsrauschens im Decodiererausgangssignal beiträgt.
  • Durch die hierarchische Struktur des Codebuchs der Vektorquantisierung wird es möglich
    • i) die Wiederholungszahl der Multiplikation und Addition zur Codebuchsuche zu reduzieren,
    • ii) die ROM-Kapazität für das Codebuch zu reduzieren, und
    • iii) einen effektiven Gebrauch der hierarchischen Fehlerkorrekturcodes zu machen.
  • Ein konkretes Beispiel betreffend die Effekte von i) und ii) wird nachfolgend gegeben.
  • Es sei nun angenommen, dass M = 44, S = 7, d1 = d2 = d3 = d4 = 5 und d5 = d6 = d7 = 8 gilt. Es sei auch angenommen, dass die Zahl der zur Quantisierung der Daten x(n) (= cdB(n)) und 1 ≤ n ≤ M verwendeten Bits gleich 48 ist.
  • Wenn der M = 44-dimensionale Vektor mit einem 48-Bit-Ausgangssignal vektorquantisiert wird, ist die Tabellengröße des Codebuchs gleich 248 ≈ 2,81 × 1014. Dies wird dann mit einer Wortbreite (= 44) multipliziert, um annähernd 1,238 × 1016 zu ergeben, was die Zahl der benötigten Wörter der Tabelle ist. Das Operationsvolumen für Tabellensuche ist ebenfalls ein Wert in der Größenordnung von 248 × 44.
  • Es sei die folgende Bitzuordnung betrachtet: Y → 13 Bit (8 Bit: Form, 5 Bit: Verstärkung),Dimension S = 7 X1 → 6 Bit, Dimension d1 = 5X2 → 5 Bit, Dimension d2 = 5 X3 → 5 Bit, Dimension d3 = 5 X4 → 5 Bit, Dimension d4 = 5 X5 → 5 Bit, Dimension d5 = 8 X6 → 5 Bit, Dimension d6 = 8 X7 → 4 Bit, Dimension d7 = 8Insgesamt: 48 Bit, (M =) 44 Dimensionen.
  • Für die Tabellenkapazität zu diesem Zeitpunkt, Y: Form: 7 × 28 = 1792, Verstärkung: 25 = 32 X1: 5 × 26 = 320 X2: 5 × 25 = 160 X3: 5 × 25 = 160 X4: 5 × 25 = 160 X5: 8 × 25 = 256 X6: 8 × 25 = 256 X7: 8 × 24 = 128
  • Das heißt es sind insgesamt 3264 Wörter erforderlich. Da das Operationsvolumen zur Tabellensuche grundsätzlich von der gleichen Größenordnung wie die Tabellengröße insgesamt ist, ist es in der Ordnung von annähernd 3264. Dieser Wert ist praktisch einwandfrei.
  • Was iii) betrifft, so kann ein Verfahren, bei dem die oberen 3, 3, 2, 2, 2 und 1 Bits der Indizes von X1 bis X7 geschützt sind und die unteren Bits ohne Fehlerkorrektur verwendet werden, für X1 bis X7 zum Schützen der 13 Bits der Quantisierungsausgangsindizes des erststufigen Vektors Y durch eine Vorwärtsfehlerkorrektur (FEC), beispielsweise die Faltungscodierung, angewendet werden. Eine effektivere FEC kann durch Aufrechterhaltung einer Relation zwischen den binären Daten des den Index des Vektorquantisierers anzeigenden Hammingabstandes und des Euklidabstandes des durch den Index bezeichneten Codevektors, das heißt durch Zuordnen des kleineren Hammingabstandes zum kleineren Euklidabstand des Codevektors angewendet werden.
  • Wie klar aus der vorhergehenden Beschreibung zu entnehmen ist, wird gemäß dem oben erwähnten hocheffizienten Codierungsverfahren das strukturierte Codebuch verwendet, und die M-dimensionalen Vektordaten werden in mehrere Gruppen geteilt, um den für jede Gruppe repräsentativen Werte zu finden, wodurch die M-Dimension auf die S-Dimension erniedrigt wird. Dann werden S-dimensionalen Vektordaten mit der ersten Vektorquantisierung verarbeitet, so dass der S-dimensionale Codevektor das lokale Decodiererausgangssignal bei der ersten Vektorquantisierung ist. Der S-dimensionale Codevektor wird auf den ursprünglichen M-dimensionalen Vektor expandiert, wodurch die Daten gefunden werden, welche die Relation zwischen den Daten auf der Frequenzachse des ursprünglichen M-dimensionalen Vektors anzeigen, und dann wird die zweite Vektorquantisierung ausgeführt. Deshalb ist es möglich, das Operationsvolumen für die Codebuchsuche und die Speicherkapazität für das Codebuch zu reduzieren und die Fehlerkorrekturcodierung bei der oberen und unteren Seite der hierarchischen Struktur effektiv anzuwenden.
  • Außerdem werden gemäß dem anderen hocheffizienten Codierungsverfahren die Daten auf der Frequenzachse im Voraus nichtlinear komprimiert und dann vektorquantisiert. Auf diese Weise ist es möglich, eine effiziente Codierung zu realisieren und Qualität der Quantisierung zu verbessern.
  • Des weiteren wird gemäß dem anderen hocheffizienten Codierungsverfahren die Interblockdifferenz vorhergehender und nachfolgender Blöcke für die auf der Frequenzachse für jeden Block erhaltenen Daten genommen, und die Interblockdifferenzdaten werden vektorquantisiert. Auf diese Weise ist es möglich, das Quantisierungsrauschen weiter zu reduzieren und das Kompressionsverhältnis zu verbessern.
  • Indessen wird es hinsichtlich des Stimmhaft/Stimmlos-Grades oder der Tonhöhe der Stimme bzw. Sprache, der bzw, die im Fall der Sprach-Synthese-Analyse-Codierung wie beispielsweise der oben erwähnten MBE schon als charakteristische Volumina bzw. Lautstärkepegel extrahiert sind, möglich, das Codebuch für Vektorquantisierung in Abhängigkeit von diesen charakteristischen Volumina bzw. Lautstärkepegeln, insbesondere den Ergebnissen der Stimmlos/Stimmhaft-Entscheidung umzuschalten. Das heißt, die Spektrumform differiert zwischen dem stimmhaften Ton und dem stimmlosen Ton signifikant, so dass es sehr wünschenswert ist, separat trainierte Codebücher für die jeweiligen Zustände zu haben. Im Fall der hierarchisch strukturierten Vektorquantisierung kann die Vektorquantisierung für die Schicht höherer Ordnung mit einem festen Codebuch ausgeführt werden, während das Codebuch für die Vektorquantisierung der Schicht niedrigerer Ordnung zwischen dem stimmhaften und dem stimmlosen Ton umgeschaltet werden kann. Andererseits kann die Bitzuordnung auf der Frequenzachse umgeschaltet werden, so dass der Ton niedriger Tonhöhe für den stimmhaften Ton betont bzw. hervorgehoben wird, und dass der Ton hoher Tonhöhe für den stimmlosen Ton betont bzw. hervorgehoben wird. Für die Umschaltsteuerung können das Vorhandensein oder die Abwesenheit der Tonhöhe, das Verhältnis bzw. die Proportion des stimmhaften Tons/stimmlosen Tons, der Pegel oder die Neigung des Spektrums usw. verwendet werden.
  • Indessen wird in dem Fall der Vektorquantisierung zur Quantisierung mehrerer Daten, die in einem durch einen einzelnen Code anstelle einer separaten Quantisierung von Zeitachsendaten, Frequenzachsendaten und Filterkoeffizientendaten bei der Codierung ausgedrückten Vektor gruppiert sind, das feste Codebuch zur Vektorquantisierung der Spektrumenveloppe der MBE, SBE und LPC oder von Parametern derselben wie beispielsweise ein LSP-Parameter, α-Parameter und k-Parameter verwendet. Jedoch bei Reduzierung der Zahl der verwendbaren Bits, das heißt bei Erniedrigung der Bitrate, wird es unmöglich mit dem festen Codebuch eine ausreichende Leistung zu erhalten. Deshalb ist es wünschenswert, die Eingangsdaten, die durch Gruppierung klassifiziert sind, so dass der Bereich ihrer Präsenz im Vektorraum eingeengt ist, vektorzuquantisieren.
  • Es wird in Betracht gezogen, dass selbst bei ausreichend hoher Übertragungsbitrate das strukturierte Codebuch zur Reduzierung des Operationsvolumens für die Suche verwendet wird. In diesem Fall ist es wünschenswert, anstelle der Verwendung eines einzigen Codebuchs aus (n + 1) Bits das Codebuch in zwei Codebücher zu teilen, deren jedes eine Ausgangsindexlänge von n Bits aufweist.
  • Im Hinblick auf den oben erwähnten Stand der Technik ist ein hocheffizientes Codierungsverfahren vorgeschlagen, wodurch es möglich ist, eine effiziente Vektorquantisierung entsprechend den Eigenschaften von Eingangsdaten auszuführen, die Größe des Codebuchs des Vektorquantisierers und das Operationsvolumen für die Suche zu reduzieren und eine Codierung hoher Qualität auszuführen.
  • Das hocheffiziente Codierungsverfahren weist die Schritte auf: Finden von Daten auf der Frequenzachse als einen Mdimensionalen Vektor auf der Basis von durch Teilen von Eingangsaudiosignalen wie beispielsweise Sprachsignalen und akustischen Signalen auf der blockweisen Basis und Umwandeln der Signale in Daten auf der Frequenzachse erhaltenen Daten, und Ausführen einer Quantisierung durch Verwendung eines Vektorquantisierers, der abhängig von Zuständen von Audiosignalen mehrere Codebücher zur Ausführung einer Vektorquantisierung bei den Daten auf der Frequenzachse der M-Dimension aufweist, und durch Umschalten und Quantisieren der mehreren Codebücher entsprechend Parametern, die Charakteristiken der Eingangsaudiosignale für jeden Block anzeigen.
  • Das andere hocheffiziente Codierungsverfahren weist die Schritte auf: Finden von Daten auf der Frequenzachse als den M-dimensionalen Vektor auf der Basis von durch Teilen von Eingangsaudiosignalen auf der blockweisen Basis und durch Umwandeln der Signale in Daten auf der Frequenzachse erhaltenen Daten, Reduzieren der M-Dimension auf eine S-Dimension, wobei S < M ist, durch Teilen der Daten auf der Frequenzachse der M-Dimension in mehrere Gruppen und durch Finden repräsentativer Werte für jede der Gruppen, Ausführen einer ersten Vektorquantisierung bei den Daten des S-dimensionalen Vektors, Finden eines korrespondierenden S-dimensionalen Codevektors durch inverse Vektorquantisierung der Ausgangsdaten der ersten Vektorquantisierung, Expandieren des S-dimensionalen Co devektors auf den ursprünglichen M-dimensionalen Vektor, und Ausführen einer Quantisierung durch Verwendung eines Vektorquantisierers für die zweite Vektorquantisierung, der abhängig von Zuständen der Audiosignale mehrere Codebücher zur Ausführung einer zweiten Vektorquantisierung bei Daten aufweist, die Relationen zwischen dem expandierten Mdimensionalen Vektor und den Daten auf der Frequenzachse des ursprünglichen M-dimensionalen Vektors anzeigen, und durch Umschalten der mehreren Codebücher entsprechend Parametern, welche Charakteristiken der Eingangsaudiosignale für jeden Block anzeigen.
  • Bei der Vektorquantisierung gemäß diesen hocheffizienten Codierungsverfahren ist es bei Verwendung eines Sprachsignals als das Audiosignal möglich, abhängig von einem Stimmhaft/Stimmlos-Zustand des Sprachsignals mehrere Codebücher als das Codebuch zu verwenden, um Parameter, die anzeigen, ob das Eingangssprachsignal für jeden Block stimmhaft oder stimmlos ist, als den Charakteristikparameter zu verwenden. Auch ist es möglich, als Charakteristikparameter den Tonhöhenwert, die Stärke der Tonhöhenkomponente, die Proportion des stimmhaften und stimmlosen Tons, die Neigung und den Pegel des Signalspektrums usw. zu verwenden, und es wird grundsätzlich vorgezogen, das Codebuch abhängig davon umzuschalten, ob das Sprachsignal stimmhaft oder stimmlos ist. Solche Charakteristikparameter können separat übertragen werden, während ursprünglich übertragene Parameter, wie sie durch das Codierungssystem im voraus vorgeschrieben sind, anstelle dessen verwendet werden können. Als die Daten auf der Frequenzachse des M-dimensionalen Vektors können Daten verwendet werden, die auf der blockweisen Basis in Daten auf der Frequenzachse umgewandelt und nichtlinear komprimiert sind. Außerdem kann vor der Vektorquantisierung eine Interblockdifferenz von vektorzuquantisierenden Daten genommen werden, so dass die Vektorquantisierung bei den Interblockdifferenzdaten ausgeführt werden kann.
  • Da die Quantisierung durch Umschalten der mehreren Codebücher entsprechend den die Charakteristiken des Eingangsau diosignals für jeden Block anzeigenden Parametern ausgeführt wird, ist es möglich, eine effektive Quantisierung auszuführen, die Größe des Codebuchs des Vektorquantisierers und das Operationsvolumen für jede Suche zu reduzieren und eine Codierung hoher Qualität auszuführen.
  • Eine Ausführungsform des hocheffizienten Codierungsverfahrens wird nachfolgend unter Bezugnahme auf die Zeichnungen erläutert.
  • Die 39 zeigt eine schematische Anordnung eines Codierers zur Darstellung des hocheffizienten Codierungsverfahren als eine Ausführungsform der vorliegenden Erfindung.
  • Bei der 39 wird ein Eingangssignal, beispielsweise ein Sprachsignal oder ein akustisches Signal, einem Eingangsanschluss 711 zugeführt und dann von einem Frequenzachsenumwandlungsabschnitt 712 in Spektrumamplitudendaten auf der Frequenzachse umgewandelt. Im Frequenzachsenumwandlungsabschnitt 712 sind ein Blockbildungsabschnitt 712a zum Teilen des Eingangssignals auf der Zeitachse in Blöcke, deren jeder eine vorbestimmte Zahl Abtastwerte, beispielsweise N Abtastwerte aufweist, ein Orthogonaltransformationsabschnitt 712b für schnelle Fouriertransformation (FFT) usw., und ein Datenprozessor 712c zum Finden von Charakteristiken der Spektrumenveloppe anzeigenden Amplitudendaten vorgesehen. Ein Ausgangssignal aus dem Frequenzachsenumwandlungsabschnitt 712 wird über einen fakultativen Nichtlinearkompressor 713 zur Umwandlung in beispielsweise einen dB-Bereich und über einen fakultativen Prozessor zum Nehmen der Interblockdifferenz zu einem Vektorquantisierungsabschnitt 715 übertragen. Durch den Vektorquantisierungsabschnitt 715 werden eine vorbestimmte Zahl, beispielsweise M Abtastwerte der Eingangsdaten als der M-dimensionale Vektor gruppiert und mit einer Vektorquantisierung verarbeitet. Generell wird bei der M-dimensionalen Vektorquantisierungsverarbeitung das Codebuch für einen Codevektor mit dem kürzesten Abstand vom dimensionalen Eingangsvektor im M-dimensionalen Raum abgesucht, und der Index des Codevektors, nach dem gesucht wird, wird von einem Ausgangsanschluss 716 ausgegeben. Der Vektorquantisierungsabschnitt 715 der in 39 gezeigten Ausführungsform enthält mehrere Arten Codebücher, die entsprechend Charakteristiken des Eingangssignals aus dem Frequenzachsenumwandlungsabschnitt 712 umgeschaltet werden.
  • Beim Beispiel der 39 ist angenommen, dass das Eingangssignal ein Sprachsignal ist. Ein Stimmhaftcodebuch (V-Codebuch) 715V und ein Stimmloscodebuch 715U werden von einem Umschalter 715W umgeschaltet und zu einem Vektorquantisierer 715Q übertragen. Der Umschalter 715W wird entsprechend einem Stimmhaft/Stimmlos-Entscheidungssignal (V/UV-Entscheidungssignal) aus dem Frequenzachsenumwandlungsabschnitt 712 gesteuert. Das V/UV-Signal oder -Kennzeichen ist ein Parameter, der im Fall eines später beschriebenen Multibanderregungsvocoders (MBE-Vocoder) (Sprach-Analyse-Synthese-Einrichtung) von der Analyseseite (Codierer) zur Syntheseseite (Decodierer) zu übertragen ist und nicht separat übertragen zu werden braucht.
  • Bezüglich des Beispiels des MBE kann das V/UV-Entscheidungskennzeichen als eine Art der übertragenen Daten für den Parameter zum Umschalten der Codebücher 715V , 715U verwendet werden. Das heißt, der Frequenzachsenumwandlungsabschnitt 712 führt eine Bandteilung entsprechend der Tonhöhe aus und trifft eine V/UV-Entscheidung für jedes der geteilten Bänder. Es sei angenommen, dass die Zahl V-Bänder und die Zahl UV-Bänder gleich NV bzw. NUV ist. Wenn NV und NUV mit einer vorbestimmten Schwelle Vth die folgende Relation
    Figure 00880001
    erfüllen, wird das V-Codebuch 715V gewählt. Andernfalls wird das UV-Codebuch 175U gewählt. Die Schwell Vth kann auf beispielsweise etwa 1 gesetzt werden.
  • Auf der Decodiererseite (Syntheseseite) wird ebenfalls das Umschalten und die Wahl der zwei Arten von V- und UV-Codebüchern ausgeführt. Beim MBE-Vocoder ist es, da das V/UV-Entscheidungskennzeichen eine in jedem Fall zu übertragende Neben- bzw. Seiteninformation ist, nicht erforderlich, separate charakteristische Parameter für das Codebuchumschalten bei diesem Beispiel zu übertragen, wodurch keine Erhöhung der Übertragungsbitrate verursacht wird.
  • Die Erzeugung oder das Training des V-Codebuchs 715V und des UV-Codebuchs 716U wird einfach durch Teilen von Trainingsdaten durch die gleichen Standards möglich gemacht. Das heißt, es wird angenommen, dass ein von der Gruppe von Amplitudendaten, bei denen festgestellt ist, dass sie stimmhaft (V) sind, erzeugtes Codebuch das V-Codebuch 715V ist, und dass ein von der Gruppe von Amplitudendaten, bei denen festgestellt ist, dass sie stimmlos (UV) sind, erzeugtes Codebuch das UV-Codebuch 715U ist.
  • Bei dem vorliegenden Beispiel ist es, da die V/UV Information zum Umschalten des Codebuchs verwendet wird, notwendig, das V/UV-Kennzeichen zu sichern, das heißt, eine hohe Zuverlässigkeit des V/UV-Kennzeichens zu haben. Beispielsweise sollten in einem klar als ein Konsonant oder ein Hintergrundrauschen betrachteten Abschnitt alle Bänder UV sein. Als ein Beispiel der obigen Entscheidung sei darauf hingewiesen, dass winzige oder kleine Eingangssignale hoher Leistung im Hochfrequenzbereich gleich UV gemacht werden.
  • Die schnelle Fouriertransformation (FFT) wird bei den N Punkten des Eingangssignals (256 Abtastwerte) ausgeführt, und in jedem der Abschnitte von 0 bis N/4 und N/4 bis N/2 zwischen effektiv 0 bis n (0 bis N/2) wird eine Leistungsberechnung ausgeführt.
    Figure 00890001
    wobei rms(i) gleich
    Figure 00890002
    ist und wobei Re(i) und Im(i) der Realteil bzw. Imaginärteil der FFT der Eingangsprogression ist. Bei Verwendung von PL und PH der Formel (37) wird die folgende Formel
    Figure 00900001
    erzeugt. Wenn Rd < Rth und L < Lth gilt, werden alle Bänder bedingungslos UV gemacht.
  • Diese Operation hat den Effekt der Vermeidung der Verwendung einer im winzigen oder kleinen Eingangssignal detektierten falschen Tonhöhe. Auf diese Weise ist die Erzeugung eines sicheren V/UV-Kennzeichens von vorne herein zum Umschalten des Codebuchs bei der Vektorquantisierung sollten.
  • Als nächstes wird das Training bei der Erzeugung der Vund U/V-Codebücher unter Bezugnahme auf die 40 erläutert.
  • Bei der 40 wird ein Signal aus einem Trainingssatz 731, der aus einem Trainingssprachsignal für mehrere Minuten besteht, zu einem Frequenzachsenumwandlungsabschnitt 732 gesendet, wo eine Tonhöhenextraktion von einem Tonhöhenextraktionsabschnitt 732a ausgeführt wird und eine Berechnung der Spektrumamplitude von einem Spektrumamplitudenberechnungsabschnitt 732b ausgeführt wird. Auch wird für jedes Band eine V/UV-Entscheidung von einem V/UV-Entscheidungsabschnitt 732c für jedes Band getroffen. Ausgangsdaten aus dem Frequenzachsenumwandlungsabschnitt 732 werden zu einem Vortrainingsverarbeitungsabschnitt 734 übertragen.
  • Im Vortrainingsverarbeitungsabschnitt 734 werden die Bedingungen der Formeln (36) und (38) von einem Prüfabschnitt 334a geprüft, und entsprechend der resultierenden V/UV-Information werden die Spektrumamplitudendaten von einem Trainingsdatenzuordnungsabschnitt 734b zugeordnet. Die Amplitudendaten werden zu einem V- Trainingsausgangsdatenabschnitt 736a für stimmhafte Töne (V-Töne) und zu einem UV-Trainings datenausgangsabschnitt 737a für stimmlose Töne (UV-Töne) übertragen.
  • Die vom V-Trainingsdatenausgabeabschnitt 736a ausgegebenen V-Spektrumamplitudendaten werden zu einem Trainingsprozessor 736b gesendet, bei dem eine Trainingsverarbeitung durch beispielsweise das LBG-Verfahren ausgeführt wird, wodurch ein V-Codebuch 736c erzeugt wird. Das LBG-Verfahren ist ein Trainingsverfahren für das Codebuch in einem Algorithmus zum Konstruieren eines Vektorquantiserers, das in Linde, Y., Buzo, A. und Gray, R. M., „An Algorithm for Vector Quantizer Design", IEEE Trans. Comm., COM-28, Jan. 1980, Seiten 84–95 vorgeschlagen ist. Dieses LBG-Verfahren dient zum Konstruieren eines lokal optimalen Vektorquantisierers durch Verwendung einer sogenannten Trainingskette für eine Informationsquelle mit einer unbekannten Wahrscheinlichkeitsdichtefunktion. Ähnlich werden die vom UV-Trainingsdatenausgabeabschnitt 737a ausgegebenen UV-Spektrumamplitudendaten zu einem Trainingsprozessor 737c gesendet, bei dem eine Trainingsverarbeitung durch beispielsweise das LBG-Verfahren ausgeführt wird, wodurch ein UV-Codebuch 737c erzeugt wird.
  • Weist der Vektorquantierungsabschnitt eine hierarchische Struktur auf, bei der ein Codebuch eines Abschnitts für gemeinsamen V/UV-Gebrauch für die obere Schicht verwendet wird, während nur das Codebuch für die untere Schicht entsprechend V/UV umgeschaltet wird, was später zu beschreiben ist, ist es notwendig, das Codebuch eines Abschnitts für gemeinsamen V/UV-Gebrauch zu erzeugen. In diesem Fall ist es notwendig, die Ausgangsdaten aus dem Frequenzachsenumwandlungsabschnitt 732 zu einem Trainingsdatenausgabeabschnitt 735a für ein Codebuch eines Abschnitts für gemeinsamen V/UV-Gebrauch zu senden. Die vom Trainingsdatenausgabeabschnitt 735a für das Codebuch des Abschnitts für gemeinsamen V/UV-Gebrauch ausgegebenen Spektrumamplitudendaten werden zu einem Trainingsprozessor 735b gesendet, wo eine Trainingsverarbeitung durch beispielsweise das LBG-Verfahren ausgeführt wird, wodurch ein Codebuch 735c für gemeinsamen V/UV-Gebrauch erzeugt wird. Es ist erforderlich, den Codevektor vom erzeugten Codebuch 735c für gemeinsamen V/UV-Gebrauch zum V- Trainingsdatenausgabeabschnitt 736a und zum UV-Trainingsdatenausgabeabschnitt 737a zu senden, eine Vektorquantisierung für die obere Schicht an den V- und UV-Trainingsdaten durch Verwendung des Codebuchs für gemeinsamen V/UV-Gebrauch auszuführen und V- und UV-Trainingsdaten für die untere Schicht zu erzeugen.
  • Eine konkrete Anordnung und Operation der hierarchisch strukturierten Vektorquantisierungseinheit wird unter Bezugnahme auf die 41 und die 31 bis 36 erläutert. Die in 41 gezeigte Vektorquantisierungseinheit 715 ist so hierarchisch strukturiert, dass sie zwei Schichten aufweist, beispielsweise eine obere und eine untere Schicht, bei denen eine zweistufige Vektorquantisierung am Eingangsvektor ausgeführt wird, wie es bezüglich der 31 bis 36 erläutert ist.
  • Die Amplitudendaten auf der Frequenzachse aus dem Frequenzachsenumwandlungsabschnitt 712 nach 39 werden über den fakultativen Nichtlinearkompressor 713 und den fakultativen Interblockdifferenz-Verarbeitungsabschnitt 714 einem Eingangsanschluss 717 der in 41 gezeigten Vektorquantisierungseinheit 715 als der M-dimensionale Vektor zugeführt, der die Einheit für die Vektorquantisierung zu sein hat. Der Mdimensionale Vektor wird zu einem Dimensionsreduktionsabschnitt 721 übertragen, wo er in mehrere Gruppen geteilt wird und seine Dimension durch wie in den 31 und 32 gezeigtes Finden des repräsentativen Wertes für jede der Gruppen auf eine S-Dimension (S < M) reduziert wird.
  • Als nächstes wird der S-dimensionale Vektor durch einen S-dimensionalen Vektorquantisierer 722Q quantisiert. Das heißt, unter den S-dimensionalen Codevektoren in einem Codebuch 722C des S-dimensionalen Vektorquantisierers 722Q wird das Codebuch nach dem Codebuch mit dem kürzesten Abstand vom S-dimensionalen Eingangsvektor im S-dimensionalen Raum abgesucht, und die Indexdaten des gesuchten Codevektors werden von einem Ausgangsanschluss 726 ausgegeben. Der gesuchte Codevektor (ein durch inverse Vektorquantisierung des Ausgangsindex erhaltener Codevektor) wird zu einem Dimensionsexpan dierungsabschnitt 723 gesendet. Für das Codebuch 722C wird das in 40 erläuterte Codebuch 735C für gemeinsamen V/UV-Gebrauch wie in 33 gezeigt verwendet. Der Dimensionsexpandierungsabschnitt 723 expandiert wie in der 34 gezeigt den S-dimensionalen Codevektor auf den ursprünglichen M-dimensionalen Vektor.
  • Bei dem Beispiel nach 41 werden die expandierten M-dimensionalen Vektordaten aus dem Dimensionsexpandierungsabschnitt 723 einem Subtrahierer 724 zugeführt, wo S Einheiten von Vektoren, die Relationen zwischen dem vom S-dimensionalen Vektor expandierten M-dimensionalen Vektor und dem ursprünglichen M-dimensionalen Vektor anzeigen, wie in 35 gezeigt durch Subtrahieren von den Daten auf der Frequenzachse des ursprünglichen M-dimensionalen Vektors erzeugt werden.
  • Die auf diese Weise vom Subtrahierer 724 erhaltenen S Vektoren werden jeweils mit einer Vektorquantisierung durch je eine von S Einheiten von Vektorquantisierern 7251Q bis 725SQ einer Vektorquantisierungsgruppe 725 verarbeitet. Von den Vektorquantisierern 7251Q bis 725SQ ausgegebene Indizes werden von jeweiligen Ausgangsanschlüssen 7271Q bis 727SQ wie in 36 gezeigt ausgegeben.
  • Für die Vektorquantisierer 7251Q bis 725SQ werden jeweilige V-Codebücher 7251V bis 725SV und jeweilige UV-Codebücher 7251U bis 725SU verwendet. Diese V-Codebücher 7251V bis 725SV und UV-Codebücher 7251U bis 725SU werden von entsprechend einer V/UV-Information aus einem Eingangsanschluss 718 gesteuerten Umschaltern 7251W bis 725SW umgeschaltet, um gewählt zu werden. Diese Umschalter 7251W bis 725SW können für alle Bänder gleichzeitig oder sperrend zum Umschalten gesteuert werden. Jedoch hinsichtlich der verschiedenen Frequenzbänder der Vektorquantisierer 7251Q bis 725SQ können die Umschalter 7251W bis 725SW entsprechend einem V/UV-Kennzeichen für jedes Band zur Umschaltung gesteuert werden. Es ergibt sich von selbst, dass die V-Codebücher 7251V bis 725SV mit dem V-Codebuch 736c in 40 korrespondieren, und dass die UV-Codebücher 7251U bis 725SU mit dem UV-Codebuch 737c korrespondieren.
  • Durch Ausführen der hierarchisch strukturierten zweistufigen Vektorquantisierung wird es möglich, das Operationsvolumen der Codebuchsuche zu reduzieren und das Speichervolumen (beispielsweise ROM-Kapazität) für das Codebuch zu reduzieren. Auch wird es durch Ausführen einer Fehlerkorrekturcodierung an einem vom Ausgangsanschluss 726 erhaltenen wichtigeren Index auf der oberen Schicht möglich, den Fehlerkorrekturcode effektiv anzunehmen. Indessen ist die hierarchische Struktur der Vektorquantisierungseinheit 715 nicht auf die zwei Stufen beschränkt, sondern sie kann eine Multischichtstruktur aus drei oder mehr Stufen sein.
  • Jeder Abschnitt der 39 bis 41 muss nicht ganz durch Hardware gebildet sein, sondern kann unter Verwendung beispielsweise eines Digitalsignalprozessors (DSP) durch Software realisiert werden.
  • Wie oben beschrieben kann beispielsweise in dem Fall der Sprach-Synthese-Analyse-Codierung hinsichtlich des Stimmhaft/Stimmlos-Grades und der Tonhöhe, die im voraus als die charakteristischen Volumina bzw. Lautstärkepegel extrahiert sind, eine gute Vektorquantisierung durch Umschalten des Codebuches entsprechend den charakteristischen Größen, insbesondere des Ergebnisses der Stimmhaft/Stimmlos-Entscheidung realisiert werden. Das heißt, die Form des Spektrums differiert stark zwischen dem stimmhaften Ton und dem stimmlosen Ton, und infolgedessen wird es im Sinne einer Verbesserung der Charakteristiken sehr vorgezogen, die Codebücher entsprechend den jeweiligen Zuständen separat zu trainieren. Auch kann in dem Fall der hierarchisch strukturierten Vektorquantisierung ein festes Codebuch zur Vektorquantisierung der oberen Schicht verwendet werden, während ein Umschalten von zwei Codebüchern, das heißt eines stimmhaften und stimmlosen Codebuches nur für die Vektorquantisierung auf der unteren Schicht verwendet werden kann. Auch kann bei der Bitzuordnung auf der Frequenzachse das Codebuch gewechselt werden, so dass der niedrigtonige Klang bzw. Ton für den stimmhaften Klang bzw. Ton betont bzw. hevorgehoben wird, während der hochtonige Klang bzw. Ton für den stimmlosen Klang bzw. Ton betont hervorgehoben wird. Für die Umschaltsteuerung können das Vorhandensein oder Fehlen der Tonhöhe, das Stimmhaft/Stimmlos-Verhältnis, der Pegel und die Neigung des Spektrums usw. verwendet werden. Außerdem können drei oder mehr Codebücher umgeschaltet werden. Beispielsweise können zwei oder mehr stimmlose Codebücher für Konsonanten und für Hintergrundrauschen usw. verwendet werden.
  • Als nächstes wird ein konkretes Beispiel des Vektorquantisierungsverfahrens, bei dem eine Quantisierung durch Gruppierung der Wellenform des Klanges bzw. Tones und der mehreren Abtastwerte der Spektrumenveloppeparameter in einem durch einen einzelnen Code ausgedrückten Vektor ausgeführt wird, erläutert.
  • Die oben erwähnte Vektorquantisierung dient zum Ausführen einer Q von einem in einem k-dimensionalen Euklidraum Rk vorhandenen Eingangsvektor X in einen Ausgangsvektor y. Der Ausgangsvektor y ist aus einer Gruppe von N Einheiten von Wiedergabevektoren Y = {y1, y2, ..., yN} gewählt.
  • Das heißt, der Ausgangsvektor y kann durch Y = Q(X) (39)ausgedrückt werden, wobei y ∊ Y gilt. Der Satz Y wird als Codebuch bezeichnet, das N Einheiten (Pegel) aus Codevektoren y1, y2, ..., yN aufweist. Dieses N wird als die Codebuchgröße bezeichnet.
  • Beispielsweise hat ein N-pegeliger, k-dimensionaler Vektorquantisierer einen partiellen Raum des aus N Einheiten von Bereichen oder Zellen bestehenden Eingangsraums. Die N Zellen werden durch {R1, R2, ..., RN} ausgedrückt. Die Zelle Ri ist beispielsweise ein Satz aus einem yi als den repräsentativen Vektor wählenden Eingangsvektor X und kann durch Ri = Q–1(yi) = {x Rk : Q(x) = yi} (40)ausgedrückt werden, wobei 1 ≤ i ≤ N gilt.
  • Die Summe aller geteilten Zellen korrespondiert mit dem ursprünglichen k-dimensionalen Euklidraum Rk, und diese Zel len haben keinen überlappten Abschnitt. Dies wird durch die folgende Formel
    Figure 00960001
    ausgedrückt. Demgemäss bestimmt die mit dem Ausgangssatz Y korrespondierende Zellenteilung {Ri} den Vektorquantisierer Q.
  • Es ist möglich, in Betracht zu ziehen, dass der Vektorquantisierer in einen Codierer C und einen Decodierer De geteilt ist. Der Codierer C führt die Abbildung des Eingangsvektors X auf einen Index i aus. Des Index i wird aus einem Satz von N Einheiten I = {1, 2, ... N} gewählt und durch I = C(X) (42)ausgedrückt, wobei i ∊ I gilt.
  • Der Decodierer De führt die Abbildung des Index i auf einen korrespondierenden Wiedergabevektor (Ausgabevektor) yi aus. Der Wiedergabevektor yi wird aus dem Codebuch Y gewählt. Dies wird durch yi = De(i) (43)ausgedrückt, wobei yi ∊ Y gilt.
  • Die Operation des Vektorquantisierers ist die der Kombination des Codierers C und des Decodierers De und kann durch die Formeln (39), (49), (41), (42) und (43) und die folgende Formel (44) y = Q(X) = De(i) = De(C(X)) (44)ausgedrückt werden.
  • Der Index i ist eine Binärzahl, und die Bitrate Bt als die Transmissionsrate des Vektorquantisierers und die Auflösung b des Vektorquantisierers sind durch die folgenden Formeln Bt = log2N (bit/Vektor) (45) B = Bt/k (bit/Abtastwert) (46)ausgedrückt.
  • Als nächstes wird ein Verzerrungsmaß als die Auswertungsskala eines Fehlers erläutert.
  • Das Verzerrungsmaß d(X, y) ist eine den Grad der Diskrepanz (Fehler) zwischen dem Eingangsvektor X und dem Ausgangsvektor y anzeigende Skala. Das Verzerrungsmaß d(X, y) ist durch
    Figure 00970001
    ausgedrückt, wobei Xi, yi die i-ten Elemente des Vektors X bzw. y sind.
  • Das heißt, die Leistung des Vektorquantisierers ist definiert durch die gesamte mittlere Verzerrung, die durch Da = E[d(X, y)] (48)gegeben ist, wobei E der Erwartungswert ist.
  • Normalerweise zeigt die Formel (48) den Mittelwert einer Zahl Abtastwerte an und kann durch
    Figure 00970002
    ausgedrückt werden, wobei {Xn} ein Eingangsvektorarray mit yn = Q(Xn) ist. M ist die Zahl Abtastwerte.
  • Als nächstes wird der zur Erzeugung des Codebuchs des Vektorquantisierers verwendete LBG-Algorithmus erläutert.
  • Ursprünglich ist es schwierig ein konkretes Design des Codebuchs des Vektorquantisierers ohne Kenntnis des Verzerrungsmaßes und der Wahrscheinlichkeitsdichtefunktion (PDF) der Eingangsdaten auszuführen. Jedoch macht es die Verwendung von Trainingsdaten möglich, das Codebuch des Vektorquantisierers ohne die PDF zu bilden. Beispielsweise ist es mit der Dimension k der Codebuchgröße N und den bestimmten Trainingsdaten x(n) möglich, das optimale Codebuch aus diesen Elementen zu erzeugen. Dieses Verfahren ist ein als das LBG-Verfahren bezeichneter Algorithmus. Das heißt, auf der Annahme, dass Trainingsdaten aller Größenarten die PDF der Stimme bzw. Sprache ausdrücken, ist es möglich, ein Codebuch des Vektor quantisierers durch Optimierung der Trainingsdaten zu erzeugen.
  • Die Charakteristiken des LBG-Algorithmus bestehen aus der Wiederholung der Nächstnachbarbedingung (optimale Teilungsbedingung) zur Teilung und der Schwerpunktbedingung (Repräsentativpunktbedingung) zur Bestimmung eines repräsentativen Punktes. Das heißt, der LBG-Algorithmus fokussiert darauf, wie die Teilung und der repräsentative Punkt zu bestimmen sind. Die optimale Teilungsbedingung bedeutet die Bedingung für den optimalen Codierer zum Zeitpunkt, bei dem der Decodierer vorgesehen ist. Die Repräsentativpunktbedingung bedeutet die Bedingung für den optimalen Decodierer zum Zeitpunkt, wenn der Codierer vorgesehen ist.
  • Unter der optimalen Teilungsbedingung wird die Zelle Rj durch die folgende Formel Rj = {X : d(X, yj) ≤ d (X, yi) für alle i ≠ j, i, j ∊ I} (50)ausgedrückt, wenn der repräsentative Punkt vorhanden ist. In der Formel (50) ist die j-te Zelle Rj ein Satz Eingangssignal X derart, dass der j-te repräsentative yi der nächste ist. Kurz ausgedrückt bestimmt der Satz Eingangssignal X so, dass der nächste repräsentative Punkt gesucht wird, wenn das Eingangssignal vorhanden ist, den Raum Rj, der den repräsentativen Punkt bildet. In anderen Worten ausgedrückt ist dies eine Operation zum Wählen des Codevektors, der dem gegenwärtigen Eingangssignal in das Codebuch am nächsten ist, das heißt die Operation des Vektorquantisierers oder die Operation des Codierers selbst.
  • Wenn der Decodierer wie oben beschrieben bestimmt ist, kann der optimale Codierer so gefunden werden, dass er die minimale Verzerrung ergibt. Der Codierer C wird C(X) = j iff d(X, Yj) ≤ d(X, yi) für alle I ∊ I, (51)wobei „iff" bedeutet „solange wie ...". Dies bedeutet, dass der Index j ausgegeben wird, wenn der Abstand zwischen den Eingangssignalen X und yj kürzer als der Abstand von jedem yi ist. Das heißt es ist der optimale Codierer, der den nächsten repräsentativen Punkt findet, und er gibt dessen Index aus.
  • Die Repräsentativpunktbedingung ist eine Bedingung, unter welcher bei Bestimmung eines Raumes Ri, das heißt bei Feststellung des Codierers der optimale Vektor y1 der Schwerpunkt im Raum der i-ten Zelle Ri ist und angenommen ist, dass der Schwerpunkt der repräsentative Vektor ist. Dieser y1 wird wie folgt bezeichnet: Y1 = cent(Ri) ∊ Ri. (52)
  • Jedoch wird der Schwerpunkt von Ri, das heißt cent(Ri) wie folgt definiert: YC = cent(Ri) (53)wenn E[d(X, yC)|X ∊ Ri] ≤ E [d(X, y)X ∊ Ri] für alle y ∊ Ri.
  • Diese Formel (53) zeigt an, dass yC der repräsentative Punkt im Raum Ri wird, wenn der Erwartungswert der Verzerrung zwischen dem Eingangssignal X im Raum und yC minimiert wird. Der optimale Codevektor yi minimiert die Verzerrung im Raum Ri. Demgemäss gibt bei Feststellung des Codierers der optimale Codierer den repräsentativen Punkt des Raumes aus und kann durch die folgende Formel (54) De(i) = cent(Ri) (54)ausgedrückt werden. Normalerweise wird angenommen, dass der Mittelwert (gewichteteter Mittelwert oder einfaches Mittel) des Eingangsvektors X der repräsentative Punkt ist.
  • Bei Feststellung der Nächstnachbarbedingung und der Repräsentativpunktbedingung zur Bestimmung der Teilung bzw. des repräsentativen Punktes wird der LBG-Algorithmus entsprechend einem in 43 gezeigten-Flussdiagramm ausgeführt.
  • Zuerst wird beim Schritt S821 eine Initialisierung ausgeführt. Speziell wird die Verzerrung D–1 auf unendlich eingestellt und dann wird die Iterationszahl n auf „0" (n = 0) gesetzt. Auch werden Y0, ε und nm als das anfängliche Codebuch, die Schwelle bzw. die maximale Iterationszahl definiert.
  • Beim Schritt S822 werden mit dem beim Schritt S821 bereitgestellten anfänglichen bzw. initialen Codebuch Y0 werden die Trainingsdaten unter der Nächstnachbarbedingung codiert. Kurz ausgedrückt wird das initiale Codebuch durch Abbildung verarbeitet.
  • Beim Schritt S823 wird eine Verzerrungsberechnung zur Berechnung der Quadratsumme des Abstandes zwischen den Eingangsdaten und den Ausgangsdaten ausgeführt.
  • Beim Schritt S824 wird festgestellt, ob die beim Schritt S823 aus der vorhergehenden Verzerrung Dn–1 und der gegenwärtigen Verzerrung Dn gefundene Reduktionsrate der Verzerrung kleiner als der Schwellenwert ε ist, oder ob die Iterationszahl n die im voraus festgestellte maximale Iterationszahl nm erreicht hat. Wenn JA gewählt ist, endet die Ausführung des LBG-Algorithmus, und wenn NEIN gewählt ist, geht die Operation zum nächsten Schritt S825 vor.
  • Der Schritt S825 dient zur Vermeidung, dass der Codevektor mit den Eingangsdaten insgesamt nicht durch Abbildung verarbeitet wird, die im Fall eines unrichtigen initialen Codebuchs beim Schritt S821 gesetzt wird. Normalerweise wird der Codevektor mit den insgesamt nicht abgebildeten Eingangsdaten in die Nähe einer Zelle bewegt, welche die größte Verzerrung aufweist.
  • Beim Schritt 826 wird ein neuer Schwerpunkt durch Berechnung gefunden. Speziell wird der Mittelwert der in der bereitgestellten Zelle vorhandenen Trainingsdaten als ein neuer Codevektor berechnet, der dann aktualisiert wird.
  • Die zum Schritt S827 vorgehende Operation kehrt zum Schritt S822 zurück, und dieser Operationsfluss wird wiederholt, bis beim Schritt S824 JA gewählt wird.
  • Es ergibt sich, dass der oben erwähnte Fluss den LBG-Algorithmus in einer Richtung zur Verkleinerung der Verzerrung zwischen dem Eingangssignal und dem Ausgangssignal konvergiert, um die Operation bei einer gewissen Stufe aufzuhängen.
  • Indessen hat der konventionelle LBG-Algorithmus beim trainierten Vektorquantisierer keine Relation zwischen dem Euklidabstand des Codevektors und dem Hammingabstand seines Index gegeben. Deshalb besteht die Gefahr, dass wegen Code fehlern im Übertragungspfad ein irrelevantes Codebuch gewählt wird.
  • Obgleich andererseits ein Einstellverfahren zur Vektorquantisierung im Hinblick auf den Codefehler im Übertragungspfad vorgeschlagen ist, hat es einen Nachteil wie beispielsweise eine Verschlechterung von Charakteristiken bei der Abwesenheit von Fehlern.
  • Infolgedessen wird im Hinblick auf den oben beschriebenen Stand der Technik ein Vektorquantisierungsverfahren vorgeschlagen, das Stärke gegen die Übertragungspfadfehler ohne Verursachung einer Verschlechterung von Charakteristiken bei der Abwesenheit der Fehler aufweist.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung ist ein Vektorquantisierungsverfahren zum Suchen eines aus mehreren M-dimensionalen Codevektoren mit M Einheiten von Daten als M Vektoren bestehenden Codebuchs und zur Ausgabe eines Index eines Codebuchs, nach dem gesucht wird, bereitgestellt, wobei das Verfahren koinzidente Größenrelationen eines Abstandes zwischen Codevektoren im Codebuch und einem Hammingabstand mit dem auf binäre weise ausgedrückten Index aufweist.
  • Gemäß dem zweiten Aspekt der vorliegenden Erfindung ist auch ein Vektorquantisierungsverfahren zum Suchen eines aus mehreren M-dimensionalen Codevektoren mit M Einheiten von Daten als M Vektoren bestehenden Codebuch und zum Ausgeben eines Index eines Codebuchs, nach dem gesucht wird, bereitgestellt, wobei ein Teil von Bits von den Index ausdrückenden binären Daten mit einem Fehlerkorrekturcode geschützt ist, und Größenrelationen eines Hammingabstandes zwischen verbleibenden Bits und einem Abstand zwischen Codevektoren im Codebuch miteinander koinzidieren.
  • Gemäß dem dritten Aspekt der vorliegenden Erfindung ist außerdem das Vektorquantisierungsverfahren bereitgestellt, bei dem ein durch Gewichtung mit einer zum Definieren eines Verzerrungsmaßes verwendeten gewichteten Matrix gefundener Abstand als ein Abstand zwischen den Codevektoren verwendet wird.
  • Mit dem Vektorquantisierungsverfahren des ersten Aspekts der vorliegenden Erfindung ist es dadurch, dass man koinzidente Größenrelationen eines Abstandes zwischen Codevektoren in dem aus mehreren M-dimensionalen Codevektoren mit M Einheiten von Daten als die M-dimensionalen Vektoren bestehenden Codebuch und eines Hammingabstandes mit dem auf binäre Weise ausgedrückten Index des gesuchten Codevektors hat, möglich, Effekte des Codefehlers im Übertragungspfad zu verhindern.
  • Mit dem Vektorquantisierungsverfahren des zweiten Aspekts der vorliegenden Erfindung ist es durch Schützen eines Teils von Bits von den Index des gesuchten Codevektors ausdrückenden binären Daten mit einem Fehlercorrekturcode und dadurch, dass man die koinzidenten Größenrelationen eines Hammingabstandes zwischen verbleibenden Bits und eines Abstand zwischen Codevektoren im Codebuch hat, möglich, die Effekte des Codefehlers im Übertragungspfad zu verhindern.
  • Mit dem Vektorquantisierungsverfahren des dritten Aspekts der vorliegenden Erfindung ist es durch Verwendung eines durch Gewichtung mit einer zum Definieren des Verzerrungsmaßes verwendeten gewichteten Matrix gefundenen Abstandes als ein Abstand zwischen den Codevektoren möglich, die Effekte des Codefehlers im Übertragungspfad ohne Verursachung einer Charakteristikverschlechterung bei Abwesenheit des Fehlers zu verhindern.
  • Bevorzugte Ausführungsformen des oben beschriebenen Vektorquantisierungsverfahrens werden nachfolgend unter Bezugnahme auf die Zeichnungen erläutert.
  • Das Vektorquantisierungsverfahren des ersten Aspekts der vorliegenden Erfindung ist ein Vektorquantisierungsverfahren, das die koinzidenten Größenrelationen des Abstandes zwischen Codevektoren im Codebuch und des Hammingabstandes mit dem auf binäre Weise ausgedrückten Index hat und das stark gegen den Übertragungsfehler ist.
  • Indessen wird die Erzeugung eines generellen initialen Codebuchs als einer Basis für das oben erwähnte Codebuch erläutert.
  • Mit dem oben erwähnten LBG werden die Schwerpunkte in Zellen nur minuziös angeordnet, um optimiert zu werden, doch werden sie in den relativen positionellen Relationen nicht geändert. Deshalb wird die Qualität des auf der Basis des initialen Codebuchs erzeugten Codebuchs unter dem Einfluss des Verfahrens zur Erzeugung des initialen Codebuchs bestimmt. Bei diesem ersten Beispiel wird zur Erzeugung des initialen Codebuchs ein gespaltener Algorithmus bzw. Splittingalgorithmus verwendet.
  • Zuerst wird bei der Erzeugung des den Splittingalgorithmus verwendenden initialen Codebuchs der repräsentative Punkt aller Trainingsdaten aus dem Mittel aller Trainingsdaten gefunden. Dann wird dem repräsentativen Punkt ein kleiner Versatz zur Erzeugung zweier repräsentativer Punkte gegeben. Der LBG wird ausgeführt, und dann werden die zwei repräsentativen Punkte mit einem kleinen Versatz in vier repräsentative Punkte geteilt. Wenn die Umwandlung des LBG eine Zahl mal wiederholt wird, wird die Zahl repräsentativer Punkte wie 2, 4, 8, ..., 2n erhöht. Diese Operation wird durch die folgende Formel (55) Y(N/2)+i = modify(yi, L) (55)ausgedrückt, wobei 1 ≤ i ≤ N/2 gilt und L das L-te Element anzeigt.
  • Demgemäss ist die Erzeugung des den Splittingalgorithmus verwendenden initialen Codebuchs ein Verfahren zur Gewinnung eines N-pegeligen initialen Codebuchs durch die Formel (55) aus dem Codevektor Y = {y1, y2, ..., yN/2} eines N/2-pegeligen Vektorquantisierers.
  • Auf der rechten Seite der Formel (55) bedeutet „modify" (yi, L), dass das L-te Element von (y1, y2, ..., yL, yk) modifiziert wird und durch (y1, y2, ..., yL + ε0, yk) ausgedrückt werden kann. Das heißt, modify (yi, L) ist eine Funktion zur Verschiebung des L-ten Elements des Codevektors yi um einen kleinen Betrag ε0 (oder in anderen Worten ausgedrückt eine addierende Modifikation von +ε0 zum L-ten Element des Codevektors yi).
  • Dann wird der modifizierte Codevektor yL + ε0, als neuer Startcodevektor mit Training durch den LBG verarbeitet und geteilt.
  • Bei der Erzeugung des den Splittingalgorithmus verwendenden initialen Codebuchs ist der Euklidabstand um so kleiner je später die Teilung ist. Das erste Beispiel wird durch Verwendung der oben erwähnten Charakteristiken, die nachfolgend unter Bezugnahme auf die 44 erläutert werden, realisiert.
  • Die 44 zeigt eine Reihe von Zuständen, bei denen ein einzelner durch Mittelung von Trainingsdaten in einer einzelnen Zelle gefundener repräsentativer Punkt in einer 8-mal geteilten Zelle durch wiederholte Umwandlung des LBG acht repräsentative Punkte wird. Die 44A bis 44D zeigen die Änderung und Richtung der Teilung derart, dass in 44A ein einziger repräsentativer Punkt, in 44B zwei, in 44C vier und in 44D acht vorhanden sind.
  • Die Repräsentativpunkte y3 und y7 in 44D sind durch Teilung von y'3 in 44C erzeugt. y3 ist binär ausgedrückt gleich „11", und y3 und y7 sind jeweils binär ausgedrückt gleich „011" bzw. „111". Dies zeigt an, dass die Differenz zwischen y(N/2)+i und yi nur die Polarität (1 oder 0) des MBS (oberste Stelle) des Index ist. Demgemäss ist der Abstand zwischen den Codevektoren von y(N/2)+i und yi sehr kurz. In anderen Worten ausgedrückt wird, wenn die Teilung fortschreitet, der Abstand der Bewegung des Codevektors aufgrund der Teilung reduziert. Dies bedeutet, dass das korrekte untere Bit auch ein falsches oberes Bit des Index bewältigen kann. Deshalb wird der Effekt des falschen oberen Bits des Index relativ unbedeutend.
  • Da es im Sinne einer späteren Verarbeitung zweckdienlich ist, das obere Bit zu betonen bzw. hervorzuheben, werden die MSB und die LSB (unterste Stelle) im Bitarray des binär ausgedrückten Index des Codebuchs zueinander ersetzt. Die Tabelle 1 zeigt die acht Indizes zusammen mit den Codevektoren der 44D, und die Tabelle 2 zeigt die Ersetzung des MSB und LSB miteinander im Bitarray des Index bei konstanten Codevektoren.
  • TABELLE 1
    Figure 01050001
  • TABELLE 2
    Figure 01050002
  • In der Tabelle 2 korrespondieren die Codevektoren y3 und y7 dezimal ausgedrückt mit „6" bzw. „7", und die Codevektoren y0 und y4 korrespondieren mit „0" und „1". Die Codevektoren y3, Y7 und die Codevektoren y0, y4 sind, wie aus der 44D hervorgeht, Paare nächster Codevektoren.
  • Demgemäss ist die Differenz zwischen „0" und „1" des LSB des binär ausgedrückten Index die Differenz zwischen „0" und 1" 2" und 3" 4" und 6" und 6" und 7". Beispielswei se wird selbst wenn „110" mit „111" verwechselt wird, der Codevektor y3 nur mit y7 verwechselt. Auch wird selbst wenn „000" mit „001" verwechselt wird, der Codevektor y0 mit y4 verwechselt. Diese Paare Codevektoren sind die Paare nächster Codevektoren in 44D. Kurz: Selbst bei einem Verwechseln auf der LSB-Seite der Indizes ist der Fehler im Abstand von mit den Indizes korrespondierenden Codevektoren klein.
  • In den binären Daten des Index ist der Hammingabstand auf der LSB-Seite durch eine koinzidente Größenrelation mit dem Abstand zwischen den Codevektoren gegeben. Demgemäss wird es nur durch Schützen der MSB-Seite der Binärdaten des Index alleine mit dem Fehlerkorrekturcode möglich, den Effekt des Fehlers im Übertragungspfad auf das Minimum zu steuern.
  • Als nächstes wird ein Beispiel des Vektorquantisierungsverfahrens des zweiten Aspekts der vorliegenden Erfindung erläutert.
  • Das Vektorquantisierungsverfahren des zweiten Aspekts der vorliegenden Erfindung ist ein Verfahren, bei welchem der Hammingabstand zum Zeitpunkt des Trainings des Vektorquantisierers in Rechnung gestellt wird.
  • Zuerst wird vor der Erläuterung des Vektorquantisierungsverfahrens des zweiten Aspekts ein Vektorquantisierungsverfahren, bei dem der Vektorquantisierer an einen Kommunikationspfad angepasst ist und bei dem ein in 45 gezeigtes Kommunikationssystem hinsichtlich Kommunikationsfehlern verwendet ist, wodurch eine Verschlechterung von Charakteristiken bei der Abwesenheit von Fehlern verursacht wird, erläutert.
  • Bei dem in 45 gezeigten Kommunikationssystem wird ein von einen Eingangsanschluss 821 in einen Vektorquantisierer 822 eingegebener Eingangsvektor X durch Abbildung in einen Abbildungsabschnitt 822a verarbeitet, um yi auszugeben. Der Index i wird von einem Codierer 822b über einen Kommunikationspfad 823 zu einem Dekodierer 824 als Binärdaten übertragen. Der Dekodierer 824 inversquantisiert den übertragenen Index und gibt Daten von einem Ausgangsanschluss 825 ab. Es sei angenommen, dass die Wahrscheinlichkeit, dass sich der Index i während des Zeitpunkts, bei dem durch das Kommunikationssystem 823 ein Fehler zum Index i addiert wird, und bei dem der Index i mit dem Fehler zum Dekodierer 824 übertragen wird, die Wahrscheinlichkeit P(j|i) ist. Das heißt, die Wahrscheinlichkeit P(j|i) ist die Wahrscheinlichkeit, dass der Übertragungsindex i als der Empfangsindex j empfangen wird. In einem symmetrischen binären Kommunikationspfad (Binärdaten-Kommunikationspfad) in welchem die Bitfehlerrate e ist, kann die Wahrscheinlichkeit P(j|i) durch
    Figure 01070001
    ausgedrückt werden, wobei dij den binär ausgedrückten Hammingabstand mit dem Übertragungsindex i und dem Empfangsindex j anzeigt und S die binär ausgedrückte Zahl von Stellen (Bitzahl) mit dem Übertragungsindex i und dem Empfangsindex j ausdrückt.
  • Unter der Bedingung, dass der Kommunikationspfadfehler mit der durch die Formel (56) gezeigten Wahrscheinlichkeit P(j|i) erzeugt wird, ist der optimale Flächenschwerpunkt (Repräsentativer Punkt) yu zu dem Zeitpunkt, bei dem die Zellteilung {Ri} bereitgestellt ist, wie folgt ausgedrückt:
    Figure 01070002
  • In der Formel (57) bezeichnet |Ri| die Zahl Trainingsvektoren im partiellen Raum Ri. Normalerweise ist ein repräsentativer Punkt das durch die Summe von Trainingsvektoren X im partiellen Raum geteilt durch die Zahl der Trainingsvektoren X gefundene Mittel. Bei der Formel (57) jedoch wird das gewichtete Mittel gefunden, das durch Gewichtung der Summe des Mittels der Trainingsvektoren X in allen partiellen Räumen mit der Fehlerwahrscheinlichkeit P(u|i) erzeugt wird. Gemäss der Formel (57) kann davon gesprochen werden, das gewichtete Mittel in dem mit der Wahrscheinlichkeit des sich in den Emp fangsindex u sich ändernden Übertragungsindex i gewichteten Flächenschwerpunkt auszudrücken.
  • Die optimale Teilung Ru eines Codebuchs {yi : i = 1, 2, ..., N)} kann durch die folgende Formel
    Figure 01080001
    ausgedrückt werden. Kurz ausgedrückt drückt die Formel (58) einen partiellen Raum aus, der durch einen Satz Eingangsvektoren X gebildet ist, der einen Index u mit dem minimalen gewichteten Mittel von Verzerrungsmaßen d(X, yj), der mit der Wahrscheinlichkeit, dass sich der vom Codierer ausgegebene Index u im Übertragungspfad in j ändert, wählt. Zu diesem Zeitpunkt kann die optimale Teilungsbedingung wie folgt ausgedrückt werden:
    Figure 01080002
  • Das optimale Codebuch für die Bitfehlerrate wird wie oben beschrieben erzeugt. Da jedoch dies ein hinsichtlich der Bitfehlerrate erzeugtes Codebuch ist, werden Charakteristiken bei Abwesenheit des Fehlers mehr als bei dem konventionellen Vektorquantisierungsverfahren verschlechtert.
  • Infolgedessen hat der Erfinder der vorliegenden Erfindung ein Vektorquantisierungsverfahren als die zweite Ausführungsform des Vektorquantisierungsverfahrens in Betracht gezogen, das beim Training des Vektorquantisierers den Hammingabstand in Rechnung stellt und keine Verschlechterung von Charakteristiken bei Abwesenheit des Fehlers verursacht.
  • Speziell wird die Bitfehlerrate e auf 0,5 gesetzt, ein im Kommunikationspfad nicht zuverlässiger Wert. Kurz ausgedrückt werden sowohl P(u|i) als auch P(i|u) konstant eingestellt. Dies erzeugt einen instabilen Zustand, in welchem unbekannt ist, wohin die Zelle bewegt wird. Zur Vermeidung die ses instabilen Zustandes wird am meisten bevorzugt, den Mittelpunkt der Zelle auf der Decodiererseite auszugeben. Dies bedeutet, dass bei der Formel (57) yu auf einen einzelnen Punkt (den Schwerpunkt des ganzen Trainingssatzes) konzentriert ist. Auf der Codiererseite werden alle Eingangsvektoren X mit einer Abbildung auf den gleichen Codevektor verarbeitet, wie es durch die Formel (59) gezeigt ist. Kurz ausgedrückt ist das Codebuch in einem Zustand eines hohen Energiepegels für jede Übertragung.
  • Wenn die Bitfehlerrate e graduell von 0,5 auf 0 reduziert wird, wodurch die Struktur graduell fixiert wird, um die Bitfehlerrate letztendlich auf 0 zu reduzieren, kann ein partieller Raum derart, dass er die ganzen Basistrainingsdaten X abdeckt, erzeugt werden. Das heißt, die Wirkung des Hammingabstandes der Indizes der benachbarten Zellen im LBG-Trainingsprozess wird durch B(i|j) reflektiert. Insbesondere bei dem durch die Formel (57) angezeigten repräsentativen Punkt wird dessen Aktualisierung durch den repräsentativen Punkt einer anderen Zelle während der Ausführung einer Gewichtung entsprechend dem Hammingabstand beeinflusst. Auf diese Weise korrespondiert der Prozess der graduellen Reduzierung der Fehlerrate von 0,5 auf 0 mit einem Prozess einer Kühlung durch graduelle Entfernung von Wärme.
  • Bei dieser Stufe wird ein Verarbeitungsfluss des oben erwähnten zweiten Beispiels, das heißt das Vektorquantisierungsverfahren, das keine Verschlechterung von Charakteristiken auch bei der Abwesenheit des Fehlers verursacht, wobei der Hammingabstand zum Zeitpunkt des Trainings der Vektorquantisierung in Rechnung gestellt wird, unter Bezugnahme auf die 46 erläutert.
  • Zuerst wird beim Schritt S811 eine Initialisierung ausgeführt. Speziell wird die Verzerrung D–1 auf Unendlich eingestellt, und die Wiederholungszahl n wird auf „0" (n = 0) gesetzt, während die Bitfehlerrate e auf 0,49 gesetzt wird. Auch werden Y0 ε und nm als das initiale Codebuch, die Schwelle bzw. die maximale Iterationszahl definiert.
  • Beim Schritt S812 werden mit dem beim Schritt S811 gegebenen initialen Codebuch X0 alle bei diesem Zustand vorhandenen Trainingsdaten unter der Nächstnachbarbedingung kodiert. Kurz ausgedrückt wird das initiale Codebuch durch Abbildung verarbeitet.
  • Beim Schritt S813 wird eine Verzerrungsberechnung zur Berechnung der Quadratsumme des Abstandes zwischen den Eingangsdaten und den Ausgangsdaten ausgeführt.
  • Beim Schritt S814 wird festgestellt, ob die Reduktionsrate der aus der vorhergehenden Verzerrung D–1 und der gegenwärtigen Verzerrung Dn beim Schritt S813 kleiner als die Schwelle ε wird oder nicht, oder ob die Iterationszahl n die maximale Iterationszahl nm, die im Voraus bestimmt ist, erreicht hat. Wenn JA gewählt ist, geht die Operation zum Schritt S815 vor, und wenn NEIN gewählt ist, geht die Operation zum Schritt S816 vor.
  • Beim Schritt S815 wird festgestellt, ob die Bitfehlerrate e gleich 0 wird nicht. Wenn JA gewählt ist, endet der Operationsfluss, und wenn NEIN gewählt ist, geht die Operation zum Schritt S819 vor.
  • Der Schritt S816 dient dazu, zu vermeiden, dass der Codevektor mit den Eingangsdaten nicht als Ganzes mit der Abbildung verarbeitet wird, die vorhanden ist, wenn beim Schritt S811 ein unrichtiges initiales Codebuch vorhanden ist. Normalerweise wird der Codevektor mit den nicht durch Abbildung verarbeiteten Eingangsdaten in die Nähe einer Zelle mit der größten Verzerrung verschoben.
  • Beim Schritt S817 wird ein neuer Schwerpunkt durch Berechnung auf der Basis der Formel (57) gefunden.
  • Die zum Schritt S818 vorgehende Operation kehrt zum Schritt S812 zurück, und dieser Operationsfluss wird wiederholt, bis beim Schritt S815 JA gewählt ist.
  • Beim Schritt S819 wird α (beispielsweise α = 0,01) von der Bitfehlerrate e für jeden Fluss reduziert, bis beim Schritt s815 die Entscheidung über die Bitfehlerrate e = 0 getroffen wird.
  • Bei der vorliegenden zweiten Ausführungsform kann das optimierte Codebuch schließlich durch den oben erwähnten Operationsfluss mit der Fehlerrate e = 0 erzeugt werden, und es wird eine kleine Verschlechterung von Vektorquantisierungscharakteristiken bei der Abwesenheit des Fehlers erzeugt.
  • Auch wenn ein oberes Bit g mit einer Fehlerkorrektur geschützt wird, während ein unteres Bit W-g nicht mit der Fehlerkorrektur in einem durch W Bits ausgedrückten Index verarbeitet wird, kann P(i|j) durch Reflektieren nur des Hammingabstandes des unteren Bits W-g mit der Formel (56) gefunden werden. Das heißt, wenn der Index die gleichen oberen g Bits aufweist, wird der Hammingabstand betrachtet. Wenn es auch nur ein einzelnes verschiedenes Bit unter den oberen g Bits gibt, wird der Index auf P(i|j) = 0 gesetzt. Kurz ausgedrückt wird angenommen, dass das obere g-Bit, das mit der Fehlerkorrektur gestützt ist, fehlerfrei ist.
  • Als nächstes wird das dritte Beispiel des Vektorquantisierungsverfahrens des dritten Aspekts der vorliegenden Erfindung erläutert.
  • Beim dritten Beispiel des Vektorquantisierungsverfahrens ist ein initiales N-Punkt-Codebuch mit einer gewünschten Struktur vorgesehen. Wenn ein initiales Codebuch, das eine analoge Relation zwischen dem Hammingabstand und dem Euklidabstand aufweist, kollabiert die Struktur nicht, selbst wenn sie durch den konventionellen LBG trainiert wird.
  • Bei der Erzeugung des initialen Codebuchs bei diesem dritten Beispiel wird der Repräsentativpunkt jedes MaL bei Eingabe eines einzelnen Abtastwertes der Trainingsdaten aktualisiert. Normalerweise ist, wie in der 47 gezeigt der durch die Eingangstrainingsdaten X in einer Zelle mj aktualisierte Repräsentativpunkt nur mj·mj neu beispielsweise mj+1 und mj+2 werden wie folgt aktualisiert: mj neu = mj alt + Δmj (60)wobei Δmj = (X – mj alt)·α α < 1 gilt.
  • Kurz ausgedrückt wird die Abtastung mit allen Trainingsdaten X ausgeführt. Dann wird die gleiche Abtastung mit verkleinertem α ausgeführt. Schließlich wird bei weiterer Redu zierung von α eine Umwandlung bis 0 ausgeführt, wodurch das initiale Codebuch erzeugt wird.
  • Bei diesem dritten Beispiel werden die Eingangstrainingsdaten X nicht nur bei mj reflektiert, sondern auch bei mj+1 und mj+2, so dass alle peripheren Zellen beeinflusst werden. Beispielsweise im Fall von mj+1 wird mj+1 neu wie folgt: mj+1 neu = mj+1 alt + Δmj+1 wobei Δmj+1 = (X – mj+1 alt)·α f(j + 1, j) α < 1 gilt. (61)
  • In der Formel (61) ist f(j + 1, j) eine Funktion zum Zurückbringen eines mit dem Kehrwert des Hammingabstandes von j und j + 1 proportionaler Werts, beispielsweise f(j + 1 , j) = P(j + 1|j).
  • Eine generellere Form der Formel (61) ist folgende: mj neu = mj alt + Δmj wobei Δmj = (X – mj)·α·f(j, C(X)) α < 1 gilt. (62)
  • C(X) in der Formel (62) bringt einen Index u einer Zelle mit dem Schwerpunkt nächst dem Eingangssignal X zurück. C(X) kann wie folgt definiert werden: C(X) U iff d (X, yu) ≤ d (X, yj) für alle i ε I. (63)
  • Als ein Beispiel der Funktion f kann f(j, C(X)) = P(j|C(X))verwendet werden. Infolgedessen wird bei der dritten Ausführungsform das initiale Codebuch durch das oben beschriebene Aktualisierungsverfahren erzeugt, und dann wird der LBG ausgeführt.
  • Demgemäss kollabiert bei der dritten Ausführungsform der vorliegenden Erfindung, wenn das initiale N-Punkt-Codebuch mit der analogen Relation zwischen dem Hammingabstand und dem Euclidabstand erzeugt wird, die Struktur nicht, selbst wenn das Training mit dem konventionellen LBG ausgeführt wird.
  • Gemäß dem wie oben beschriebenen Vektorquantisierungsverfahren werden der Abstand von Codevektoren in dem aus mehreren M-dimensionalen Codevektoren mit M Einheiten aus Daten als M-dimensionale Vektoren bestehenden Codebuch und der Ham mingabstand zum Zeitpunkt des Ausdrückens der Indizes der gesuchten Codevektoren in der binären Weise in der Größe koinzident gemacht. Auch wird ein Teil von Bits der die Indizes der gesuchten Vektoren ausdrückenden binären Daten mit dem Fehlerkorrekturcode geschützt, während der Hammingabstand der verbleibenden Bits und der Abstand zwischen den Codevektoren in dem Codebuch in der Größe koinzident gemacht werden. Auf diese Weise ist es möglich, den Effekt des Codefehlers im Übertragungspfad zu steuern. Außerdem ist es durch Einstellen des durch Gewichtung mit der zum Definieren des Verzerrungsmaßes gefundenen Abstandes als der Abstand zwischen den Vektoren möglich, die Wirkung des Codefehlers im Übertragungspfad zu steuern, ohne dass eine Verschlechterung von Charakteristiken bei der Abwesenheit des Fehlers verursacht wird.
  • Als nächstes wird eine Anwendung des Sprach-Analyse-Synthese-Verfahrens auf die Stimmensignal-Analyse-Synthese-Kodierungseinrichtung erläutert.
  • Bei dem in der Stimmen-Analyse-Synthese-Einrichtung angewendeten Stimmen-Analyse-Synthese-Verfahren ist es notwendig, die Phase auf der Analyseseite an die Phase auf der Syntheseseite anzupassen. In diesem Fall kann eine lineare Vorhersage durch die Winkelfrequenz und eine Modifikation durch das Weißrauschen zur Gewinnung von Phaseninformation auf der Syntheseseite verwendet werden. Jedoch ist es nicht möglich, mit dem Weißrauschen eine Steuerung von Rauschen oder Fehlern durch den realen Wert der Phase und der Vorhersage auszuführen.
  • Auch wird der Pegel des Weißrauschens bei einem Verhältnis stimmloser Töne im ganzen Band geändert, so dass er in dem Modifikationstherm zu verwenden ist. Deshalb kann in dem Fall, dass ein großes Verhältnis von stimmhaften Tönen enthaltende Blöcke aufeinanderfolgend existieren die Modifikation nicht nur durch Vorhersage ausgeführt werden. Dies hat zur Folge, dass, wenn starke Vokale sich lange fortsetzen, Fehler akkumuliert werden, was die Tonqualität verschlechtert.
  • Infolgedessen wird ein Sprach-Analyse-Synthese-Verfahren vorgeschlagen, durch das eine Verbesserung der Tonqualität durch Verwendung von Rauschen, das die Größe und Diffusion für eine Modifikation aufgrund einer Vorhersage steuern kann, realisiert werden kann.
  • Das heißt, das Sprach-Analyse-Synthese-Verfahren weist die Schritte auf: Teilen eines Spracheingangssignals auf der blockweisen Basis und Finden von Tonhöhendaten im Block, Umwandeln des Sprachsignals auf der blockweisen Basis in das Signal auf der Frequenzachse und Finden von Daten auf der Frequenzachse, Teilen der Daten auf der Frequenzachse in mehrere Bänder auf der Basis der Tonhöhendaten, Finden von Leistungsinformation für jedes der geteilten Bänder und Feststellen von Information darüber, ob das Band stimmhaft oder stimmlos ist, Übertragen der bei dem obigen Prozessen gefundenen Tonhöhendaten, der Leistungsinformation für jedes Band und der Stimmhaft/Stimmlos-Entscheidungsinformation, Vorhersagen einer Blockende-Randphase auf der Basis der durch Übertragung erhaltenen Tonhöhendaten für jeden Block und einer initialen Blockphase, und Modifizieren der vorhergesagten Blockende-Randphase unter Verwendung eines eine Diffusion entsprechend jedem Band aufweisenden Rauschens. Vorzugsweise ist das oben erwähnte Rauschen ein Gaußsches Rauschen.
  • Gemäß einem solchen Sprach-Analyse-Synthese-Verfahren werden die Leistungsinformation und die Stimmhaft/Stimmlos-Entscheidungsinformation auf der Analyseseite gefunden und dann für jedes der mehreren Bänder, die durch Teilen der durch Umwandlung des blockweisen Sprachsignals in das Signal auf der Frequenzachse auf der Basis der aus dem blockweisen Sprachsignal gefundenen Tonhöhendaten erhaltenen Daten auf der Frequenzachse erzeugt sind, übertragen, und die Blockende-Randphase wird auf der Syntheseseite auf der Basis der Tonhöhendaten für jeden durch Übertragung erhaltenen Block und der initialen Blockphase vorhergesagt. Dann wird die vorhergesagte Ende-Randphase unter Verwendung des Gaußschen Rauschens mit einer Diffusion entsprechend jedem Band modifiziert. Auf diese Weise ist es möglich, einen Fehler oder eine Differenz zwischen dem vorhergesagten Phasenwert und dem realen Wert zu steuern.
  • Ein konkretes Beispiel, bei welchem das oben beschriebene Sprach-Analyse-Synthese-Verfahren auf die Sprachsignal-Analyse-Synthese-Kodierungseinrichtung (den sogenannten Vocoder) angewendet ist, wird unter Bezugnahme auf die Zeichnungen erläutert. Die Analyse-Synthese-Kodierungseinrichtung führt eine Modellierung derart aus, dass ein stimmhafter Abschnitt und ein stimmloser Abschnitt in einem koinzidenten Frequenzachsenbereich (im gleichen Block oder gleichen Rahmen) vorhanden sind.
  • Die 48 ist eine schematische Darstellung, die eine schematische Anordnung eines ganzen Beispiels zeigt, bei welchem das Sprach-Analyse-Synthese-Verfahren auf die Sprachsignal-Analyse-Synthese-Kodierungseinrichtung angewendet ist.
  • Bei der 48 weist die Sprach-Analyse-Synthese-Kodierungseinrichtung auf: einen Analyseabschnitt 910 zum Analysieren von Tonhöhendaten usw. aus einem Spracheingangssignal und einen Syntheseabschnitt 920 zum Empfang verschiedener Informationstypen wie beispielsweise die vom Analyseabschnitt 910 durch einen Übertragungsabschnitt 902 übertragenen Tonhöhendaten, Synthetisieren stimmhafter bzw. stimmloser Töne und Synthetisieren der stimmhaften und stimmlosen Töne zusammen.
  • Der Analyseabschnitt 910 weist auf: einen Blockextraktionsabschnitt 911 zum Ausgeben eines von einem Eingangsanschluss 901 auf der blockweisen Basis eingegebenen Sprachsignals, wobei jeder Block aus einer vorbestimmten Zahl Abtastwerten (N Abtastwerte) besteht, einen Tonhöhendatenextraktionsabschnitt 912 zum Extrahieren von Tonhöhendaten aus dem Eingangsprachsignal auf der blockweisen Basis aus dem Blockextraktionsabschnitt 911, einen Datenumwandlungsabschnitt 913 zum Finden von auf der Frequenzachse umgewandelten Daten aus dem Eingangssprachsignal auf der blockweisen Basis aus dem Blockextraktionsabschnitt 911, einen Bandteilungsabschnitt 914 zum Teilen der Daten auf der Frequenzachse aus dem Datenumwandlungsabschnitt 913 in mehrere Bänder auf der Basis der Tonhöhendaten des Tonhöhendatenextraktionsabschnitts 912, und einen Amplitudendaten- und V/UV-Entscheidungsinformations- Detektionsabschnitt 915 zum Finden von Leistungsinformation (Amplitudeninformation) für jedes Band des Bandteilungsabschnitts 914 und einer Entscheidungsinformation darüber, ob das Band stimmhaft (V) oder stimmlos (UV) ist.
  • Der Syntheseabschnitt 920 empfängt die Tonhöhendaten, die V/UV-Entscheidungsinformation und die Amplitudeninformation, die vom Übertragungsabschnitt 902 übertragen werden, aus dem Analyseabschnitt 910. Dann synthetisiert der Syntheseabschnitt 920 den stimmhaften Ton durch einen Stimmhafttonsyntheseabschnitt 921 und den stimmlosen Ton durch einen Stimmlostonsyntheseabschnitt 927 und addiert den synthetisierten stimmhaften und stimmlosen Ton durch einen Addierer 928 zusammen. Dann gibt der Syntheseabschnitt 920 das synthetisierte Sprachsignal aus dem Ausgangsanschluss 903 aus.
  • Die oben erwähnte Information wird durch Verarbeitung der Daten in dem Block aus den N Abtastwerten, beispielsweise 256 Abtastwerte, erhalten. Da jedoch der Block auf der Basis eines Rahmens aus L Abtastwerten als eine Einheit auf der Zeitachse vorwärtsgeht, werden die übertragenen Daten auf der rahmenweisen Basis erhalten. Das heißt, die Tonhöhendaten, die V/UV-Information und die Amplitudeninformation werden mit dem Rahmenzyklus aktualisiert. Der Stimmhafttonsyntheseabschnitt 921 weist auf: einen Phasenvorhersageabschnitt 922 zum Vorhersagen einer Rahmenende-Randphase (Startrandphase des nächsten Syntheserahmens) auf der Basis der Tonhöhendaten und einer initialen Rahmenphase, die von einem Eingangsanschluss 904 zugeführt sind, einen Phasenmodifikationsabschnitt 924 zum Modifizieren der Vorhersage aus dem Phasenvorhersageabschnitt 922 unter Verwendung eines Modifikationsterms aus einem Rauschenadditionsabschnitt 923, dem die Phasendaten und die V/UV-Entscheidungsinformation zugeführt sind, einen Sinuswellenerzeugungsabschnitt 925 zum Auslesen und Ausgeben einer Sinuswelle aus einem nicht gezeigten Sinuswellen-ROM auf der Basis der Modifikationsphaseninformation aus dem Phasenmodifikationsabschnitt 924, und einen Amplitudenverstärkungsabschnitt 926, dem die Amplitudeninformation zum Verstärken der Amplitude der Sinuswelle aus dem Sinuswellenerzeugungsabschnitt 925 zugeführt ist.
  • Die Tonhöhendaten, die V/UV-Entscheidungsinformation und die Amplitudeninformation werden dem Stimmlostonsyntheseabschnitt 927 zugeführt, bei dem beispielsweise das Weißrauschen durch Filterung mit einem nicht gezeigten Bandpassfilter verarbeitet wird, um eine Stimmlostonwellenform auf der Zeitachse zu synthetisieren.
  • Der Addierer 928 addiert den vom Stimmhafttonsyntheseabschnitt 921 und Stimmlostonsyntheseabschnitt 927 synthetisierten stimmhaften Ton bzw. stimmlosen Ton mit einem festen Mischungsverhältnis. Das addierte Sprachsignal wird aus dem Ausgangsanschluss 903 als das Sprachsignal ausgegeben.
  • Im Phasenvorhersageabschnitt 922 im Stimmhafttonsyntheseabschnitt 921 des Syntheseabschnitts 920 wird unter der Annahme, dass die Phase (initiale Rahmenphase) der m-ten Oberwelle zum Zeitpunkt 0 (Kopf des Rahmens) gleich ψ0m ist, die Phase ψLm ab Ende des Rahmens wie folgt vorhergesagt: ψLm = ψ0m + m(ω01 + ωL1)L/2 (64)
  • Die Phase jedes Bandes φm wird wie folgt gefunden: Φm = ψLm + εm (65)
  • In den Formeln (64) und (65) bezeichnet ω01 die fundamentale Winkelfrequenz am Startrand (n = 0) des Syntheserahmens, und ωL1 bezeichnet die fundamentale Winkelfrequenz am Endrand des Syntheserahmens (n = L, Startrand des nächsten Syntheserahmens), während εm den Vorhersagemodifikationsterm in jedem Band bezeichnet.
  • Durch die Formel (64) findet der Phasenvorhersageabschnitt 922 eine Phase als die Vorhersagephase zum Zeitpunkt L durch Multiplizieren der mittleren Winkelfrequenz der m-ten Oberschwingung bzw. Oberwelle mit der Zeit und durch Hinzuaddieren der initialen Phase der m-ten Oberwelle. Aus der Formel (65) wird gefunden, dass die Phase εm jedes Bandes ein durch Addieren des Vorhersagemodifikationsterms εm zur Vorhersagephase erzeugter Wert ist.
  • Für den Vorhersagemodifikationsterms εm kann wegen seiner zufälligen Verteilung zwischen den Bändern eine Zufallszahl verwendet werden. Jedoch wird bei der vorliegenden Ausführungsform ein Gaußsches Rauschen verwendet. Das Gaußsche Rauschen ist ein Rauschen, dessen Diffusion, wie in 49 gezeigt, in Richtung zum höheren Frequenzband zunimmt (beispielsweise von ε1 auf ε10. Das Gaußsche Rauschen approximiert den Vorhersagewert der Phase richtig auf den realen Wert der Phase.
  • Wenn wie in 49 gezeigt die Diffusion einfach proportional zu m ist, wird der Vorhersagemodifikationsterm εm durch εm = h1N(O, ki) (66)angezeigt, wobei h1, ki und 0 eine Konstante, einen Bruchteil bzw. einen Mittelwert bedeuten.
  • Wenn das ganze Band in zwei Bänder aus einem stimmhaften Band und einem stimmlosen Band geteilt wird, wobei der stimmlose Abschnitt größer ist, werden die Phasen von die Stimme bzw. Sprache bildenden Frequenzkomponenten zufälliger. Deshalb kann der Vorhersagemodifikationsterm εm ausgedrückt werden durch εm = h2nujN(O, ki) (67)wobei h2, ki, 0 und nuj eine Konstante, einen Bruch, ein Mittel bzw, die Zahl stimmloser Bänder in einem Block j bedeuten.
  • Wenn es wie oben beschrieben keine zufällige Verteilung zwischen Bändern gibt, insbesondere aufgrund von lange fortgesetzten Vokalen oder wenn Vokale auf Konsonanten und stimmlose Töne verschoben werden, verschlechtert der in den Formeln (66) und (67) gezeigte Vorhersagemodifikationsterm eher die Qualität des synthetischen Tons. Deshalb wird bei Zulässigkeit einer Verzögerung der Amplitudeninformations(Leistungs)-S-Pegel eines vorhergehenden Rahmens oder eine Reduktion des stimmhaften Tonabschnitts geprüft, wobei der Modifikationsterm εm durch εm = h3 max (a, Sj – Sj+1)N(O, ki) (68) εm = h4 max (b, nvj – nv(j+1))N(O, ki) (69)eingestellt, wobei a, b, h3 und h4 Konstanten sind.
  • Wenn außerdem die Tonhöhendaten beim Tonhöhendatenextraktionsabschnitt 912 niedrig sind, wird die Zahl der Frequenzbänder erhöht, und es wird der umgekehrte Effekt der Ausrichtung der Phasen erhöht. Bei in Betracht ziehen dieses wird der Modifikationsterm εm ausgedrückt durch εm = f(Sj, hj)N(O, ki) (70)wobei f die Frequenz bedeutet.
  • Bei der die vorliegende Erfindung auf die Sprachsignal-Analyse-Synthese-Kodierungseinrichtung anwendenden Ausführungsform können die Größe und die Diffusion des für die Phasenvorhersagemodifikation verwendenden Rauschens durch Verwendung eines Gaußschen Rauschens gesteuert werden.
  • Bei dem Beispiel, bei dem ein solches Sprach-Analyse-Synthese-Verfahren auf den bezüglich der 1 bis 7 erläuterten MBE angewendet ist, können die Größe und Diffusion des für die Phasenvorhersage verwendeten Rauschens durch Verwendung eines Gaußschen Rauschens gesteuert werden.
  • Bei den oben beschriebenen Sprach-Analyse-Synthese-Verfahren werden die Leistungsinformation und die V/UV-Entscheidungsinformation auf der Analyseseite gefunden und für jedes der mehreren Frequenzbänder, die durch Teilen der durch Umwandeln des blockweisen Sprachsignals in das Signal auf der Frequenzachse auf der Basis der aus dem blockweisen Sprachsignal gefundenen Tonhöhendaten erhaltenen Frequenzachsendaten erzeugt werden, übertragen, und die Blockende-Randphase wird auf der Syntheseseite auf der Basis der für jeden Block durch Übertragung erhaltenen Tonhöhendaten und der initialen Blockphase vorhergesagt. Dann wird die vorhergesagte Ende-Randphase unter Verwendung des eine Diffusion entsprechend jedem Band aufweisenden Gaußschen Rauschens modifiziert. Auf diese Weise ist es möglich, die Größe und die Diffusion des Rauschens zu steuern und infolgedessen eine Verbesserung in der Tonqualität zu erwarten. Auch ist es durch Verwendung des Signalpegels der Stimme bzw. Sprache und deren zeitlichen Änderungen möglich, eine Akkumulation von Fehlern zu verhindern und eine Verschlechterung der Tonqualität in einem Vokalabschnitt oder bei einem Umschaltpunkt von dem Vokalabschnitt auf einen Konsonantenabschnitt zu verhindern.
  • Indessen ist die vorliegende Erfindung nicht auf die obigen Ausführungsformen beschränkt. Beispielsweise kann als Eingangssignal nicht nur das Sprachsignal sondern auch ein akustisches Signal verwendet werden. Der Charakteristiken des Eingangsaudiosignals (Sprachsignal oder akustisches Signal) ausdrückende Parameter ist nicht auf die V/UV-Entscheidungsinformation beschränkt, sondern es können der Tonhöhenwert, die Stärke von Tonhöhenkomponenten, die Neigung und der Pegel des Signalspektrums usw. verwendet werden. Außerdem kann anstelle dieser charakteristischen Parameter ein Teil der entsprechend den Codierungsverfahren ursprünglich zu übertragenden Parameterinformation verwendet werden. Auch können die Charakteristikparameter separat übertragen werden. Im Fall der Verwendung anderer Übertragungsparameter können diese Parameter als ein adaptives Codebuch betrachtet werden, und in dem Fall der separaten Übertragung der Charakteristikparameter können die Parameter als ein strukturiertes Codebuch betrachtet werden.

Claims (2)

  1. Sprachanalyse-Sythese-Verfahren, das die Schritte aufweist: Teilen (911) eines Eingangssprachsignals in Blöcke und Finden (912) von Tonhöhendaten in jedem Block, Umwandeln (913) der resultierenden Blocksignale in Signale auf der Frequenzachse, um Daten auf der Frequenzachse zu finden, Teilen (914) der Daten auf der Frequenzachse in mehrere Frequenzbänder auf der Basis der Tonhöhendaten, Finden (915) einer Leistungsinformation für jedes der geteilten Bänder und einer Stimmhaft/Stimmlos-Entscheidungsinformation, Übertragen (902) der Tonhöhendaten, der Leistungsinformation für jedes Band und der Stimmhaft/Stimmlos-Entscheidungsinformation, die bei den vorhergehenden Schritten gefunden wurden, Vorhersagen (922) einer Blockende-Randphase auf der Basis der aufgezeichneten Tonhöhendaten für jeden Block und einer initialen Blockphase, und Modifizieren (924) der vorhergesagten Blockende-Randphase unter Verwendung eines Rauschens, das auf einer Phasenachse (49) eine vom Frequenzband abhängige Diffusion aufweist.
  2. Sprachanalyse-Synthese-Verfahren nach Anspruch 1, wobei das Rauschen ein Gauß'sches Rauschen ist.
DE69332990T 1992-03-18 1993-03-18 Verfahren zur Sprachanalyse und - Synthese Expired - Lifetime DE69332990T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP9142292 1992-03-18
JP09225992A JP3297750B2 (ja) 1992-03-18 1992-03-18 符号化方法
JP9225992 1992-03-18
JP09142292A JP3237178B2 (ja) 1992-03-18 1992-03-18 符号化方法及び復号化方法

Publications (2)

Publication Number Publication Date
DE69332990D1 DE69332990D1 (de) 2003-06-18
DE69332990T2 true DE69332990T2 (de) 2004-05-19

Family

ID=26432860

Family Applications (8)

Application Number Title Priority Date Filing Date
DE69332989T Expired - Lifetime DE69332989T2 (de) 1992-03-18 1993-03-18 Hocheffizientes Kodierverfahren
DE69332994T Expired - Lifetime DE69332994T2 (de) 1992-03-18 1993-03-18 Hocheffizientes Kodierverfahren
DE69333046T Expired - Lifetime DE69333046T2 (de) 1992-03-18 1993-03-18 Hocheffizientes Kodierverfahren
DE69331425T Expired - Lifetime DE69331425T2 (de) 1992-03-18 1993-03-18 Hochwirksames kodierungsverfahren
DE69332990T Expired - Lifetime DE69332990T2 (de) 1992-03-18 1993-03-18 Verfahren zur Sprachanalyse und - Synthese
DE69332991T Expired - Lifetime DE69332991T2 (de) 1992-03-18 1993-03-18 Verfahren zur Grundfrequenz-Extraktion
DE69332992T Expired - Lifetime DE69332992T2 (de) 1992-03-18 1993-03-18 Hocheffizientes Kodierverfahren
DE69332993T Expired - Lifetime DE69332993T2 (de) 1992-03-18 1993-03-18 Hocheffizientes Kodierverfahren

Family Applications Before (4)

Application Number Title Priority Date Filing Date
DE69332989T Expired - Lifetime DE69332989T2 (de) 1992-03-18 1993-03-18 Hocheffizientes Kodierverfahren
DE69332994T Expired - Lifetime DE69332994T2 (de) 1992-03-18 1993-03-18 Hocheffizientes Kodierverfahren
DE69333046T Expired - Lifetime DE69333046T2 (de) 1992-03-18 1993-03-18 Hocheffizientes Kodierverfahren
DE69331425T Expired - Lifetime DE69331425T2 (de) 1992-03-18 1993-03-18 Hochwirksames kodierungsverfahren

Family Applications After (3)

Application Number Title Priority Date Filing Date
DE69332991T Expired - Lifetime DE69332991T2 (de) 1992-03-18 1993-03-18 Verfahren zur Grundfrequenz-Extraktion
DE69332992T Expired - Lifetime DE69332992T2 (de) 1992-03-18 1993-03-18 Hocheffizientes Kodierverfahren
DE69332993T Expired - Lifetime DE69332993T2 (de) 1992-03-18 1993-03-18 Hocheffizientes Kodierverfahren

Country Status (4)

Country Link
US (3) US5765127A (de)
EP (8) EP1061504B1 (de)
DE (8) DE69332989T2 (de)
WO (1) WO1993019459A1 (de)

Families Citing this family (128)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495552A (en) * 1992-04-20 1996-02-27 Mitsubishi Denki Kabushiki Kaisha Methods of efficiently recording an audio signal in semiconductor memory
JP3475446B2 (ja) * 1993-07-27 2003-12-08 ソニー株式会社 符号化方法
CA2121667A1 (en) * 1994-04-19 1995-10-20 Jean-Pierre Adoul Differential-transform-coded excitation for speech and audio coding
JP3528258B2 (ja) * 1994-08-23 2004-05-17 ソニー株式会社 符号化音声信号の復号化方法及び装置
JP3328080B2 (ja) * 1994-11-22 2002-09-24 沖電気工業株式会社 コード励振線形予測復号器
FR2729247A1 (fr) * 1995-01-06 1996-07-12 Matra Communication Procede de codage de parole a analyse par synthese
FR2739482B1 (fr) * 1995-10-03 1997-10-31 Thomson Csf Procede et dispositif pour l'evaluation du voisement du signal de parole par sous bandes dans des vocodeurs
US5937381A (en) * 1996-04-10 1999-08-10 Itt Defense, Inc. System for voice verification of telephone transactions
JP3707154B2 (ja) * 1996-09-24 2005-10-19 ソニー株式会社 音声符号化方法及び装置
CN1163868C (zh) * 1996-11-11 2004-08-25 松下电器产业株式会社 一种转换话音重现速率的方法及其装置
US6167375A (en) * 1997-03-17 2000-12-26 Kabushiki Kaisha Toshiba Method for encoding and decoding a speech signal including background noise
US6363175B1 (en) * 1997-04-02 2002-03-26 Sonyx, Inc. Spectral encoding of information
US6208962B1 (en) * 1997-04-09 2001-03-27 Nec Corporation Signal coding system
US6336092B1 (en) * 1997-04-28 2002-01-01 Ivl Technologies Ltd Targeted vocal transformation
IL120788A (en) * 1997-05-06 2000-07-16 Audiocodes Ltd Systems and methods for encoding and decoding speech for lossy transmission networks
EP0878790A1 (de) * 1997-05-15 1998-11-18 Hewlett-Packard Company Sprachkodiersystem und Verfahren
JP3134817B2 (ja) * 1997-07-11 2001-02-13 日本電気株式会社 音声符号化復号装置
SE514792C2 (sv) * 1997-12-22 2001-04-23 Ericsson Telefon Ab L M Förfarande och anordning för avkodning vid kanaloptimerad vektorkvantisering
US6799159B2 (en) 1998-02-02 2004-09-28 Motorola, Inc. Method and apparatus employing a vocoder for speech processing
US6810377B1 (en) * 1998-06-19 2004-10-26 Comsat Corporation Lost frame recovery techniques for parametric, LPC-based speech coding systems
JP3273599B2 (ja) * 1998-06-19 2002-04-08 沖電気工業株式会社 音声符号化レート選択器と音声符号化装置
US6253165B1 (en) * 1998-06-30 2001-06-26 Microsoft Corporation System and method for modeling probability distribution functions of transform coefficients of encoded signal
US6507814B1 (en) * 1998-08-24 2003-01-14 Conexant Systems, Inc. Pitch determination using speech classification and prior pitch estimation
US7072832B1 (en) * 1998-08-24 2006-07-04 Mindspeed Technologies, Inc. System for speech encoding having an adaptive encoding arrangement
US7272556B1 (en) * 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
FR2786908B1 (fr) * 1998-12-04 2001-06-08 Thomson Csf Procede et dispositif pour le traitement des sons pour correction auditive des malentendants
SE9903553D0 (sv) 1999-01-27 1999-10-01 Lars Liljeryd Enhancing percepptual performance of SBR and related coding methods by adaptive noise addition (ANA) and noise substitution limiting (NSL)
US6449592B1 (en) 1999-02-26 2002-09-10 Qualcomm Incorporated Method and apparatus for tracking the phase of a quasi-periodic signal
KR100319557B1 (ko) * 1999-04-16 2002-01-09 윤종용 블럭 단위로 부호화된 영상의 블럭 경계 잡음 성분 제거 방법
JP2000305599A (ja) * 1999-04-22 2000-11-02 Sony Corp 音声合成装置及び方法、電話装置並びにプログラム提供媒体
JP2001006291A (ja) * 1999-06-21 2001-01-12 Fuji Film Microdevices Co Ltd オーディオ信号の符号化方式判定装置、及びオーディオ信号の符号化方式判定方法
FI116992B (fi) * 1999-07-05 2006-04-28 Nokia Corp Menetelmät, järjestelmä ja laitteet audiosignaalin koodauksen ja siirron tehostamiseksi
FR2796194B1 (fr) * 1999-07-05 2002-05-03 Matra Nortel Communications Procedes et dispositifs d'analyse et de synthese audio
US7092881B1 (en) * 1999-07-26 2006-08-15 Lucent Technologies Inc. Parametric speech codec for representing synthetic speech in the presence of background noise
JP2001075600A (ja) * 1999-09-07 2001-03-23 Mitsubishi Electric Corp 音声符号化装置および音声復号化装置
US6782360B1 (en) * 1999-09-22 2004-08-24 Mindspeed Technologies, Inc. Gain quantization for a CELP speech coder
US6952671B1 (en) * 1999-10-04 2005-10-04 Xvd Corporation Vector quantization with a non-structured codebook for audio compression
US6980950B1 (en) * 1999-10-22 2005-12-27 Texas Instruments Incorporated Automatic utterance detector with high noise immunity
US6377916B1 (en) * 1999-11-29 2002-04-23 Digital Voice Systems, Inc. Multiband harmonic transform coder
CN1262991C (zh) * 2000-02-29 2006-07-05 高通股份有限公司 跟踪准周期性信号的相位的方法和设备
US6901362B1 (en) * 2000-04-19 2005-05-31 Microsoft Corporation Audio segmentation and classification
SE0001926D0 (sv) 2000-05-23 2000-05-23 Lars Liljeryd Improved spectral translation/folding in the subband domain
US6789070B1 (en) * 2000-06-14 2004-09-07 The United States Of America As Represented By The Secretary Of The Navy Automatic feature selection system for data containing missing values
CN1193347C (zh) 2000-06-20 2005-03-16 皇家菲利浦电子有限公司 正弦编码
US7487083B1 (en) * 2000-07-13 2009-02-03 Alcatel-Lucent Usa Inc. Method and apparatus for discriminating speech from voice-band data in a communication network
US7277766B1 (en) * 2000-10-24 2007-10-02 Moodlogic, Inc. Method and system for analyzing digital audio files
US7039716B1 (en) * 2000-10-30 2006-05-02 Cisco Systems, Inc. Devices, software and methods for encoding abbreviated voice data for redundant transmission through VoIP network
JP2002312000A (ja) * 2001-04-16 2002-10-25 Sakai Yasue 圧縮方法及び装置、伸長方法及び装置、圧縮伸長システム、ピーク検出方法、プログラム、記録媒体
GB2375028B (en) * 2001-04-24 2003-05-28 Motorola Inc Processing speech signals
JP3901475B2 (ja) * 2001-07-02 2007-04-04 株式会社ケンウッド 信号結合装置、信号結合方法及びプログラム
US8605911B2 (en) 2001-07-10 2013-12-10 Dolby International Ab Efficient and scalable parametric stereo coding for low bitrate audio coding applications
SE0202159D0 (sv) 2001-07-10 2002-07-09 Coding Technologies Sweden Ab Efficientand scalable parametric stereo coding for low bitrate applications
US6941516B2 (en) * 2001-08-06 2005-09-06 Apple Computer, Inc. Object movie exporter
US6985857B2 (en) * 2001-09-27 2006-01-10 Motorola, Inc. Method and apparatus for speech coding using training and quantizing
EP1423847B1 (de) 2001-11-29 2005-02-02 Coding Technologies AB Wiederherstellung von hochfrequenzkomponenten
TW589618B (en) * 2001-12-14 2004-06-01 Ind Tech Res Inst Method for determining the pitch mark of speech
ATE328395T1 (de) * 2002-02-27 2006-06-15 Sonyx Inc Vorrichtung und verfahren zur kodierung von information und vorrichtung und verfahren zur dekodierung von kodierten information
JP3861770B2 (ja) * 2002-08-21 2006-12-20 ソニー株式会社 信号符号化装置及び方法、信号復号装置及び方法、並びにプログラム及び記録媒体
SE0202770D0 (sv) 2002-09-18 2002-09-18 Coding Technologies Sweden Ab Method for reduction of aliasing introduces by spectral envelope adjustment in real-valued filterbanks
KR100527002B1 (ko) * 2003-02-26 2005-11-08 한국전자통신연구원 음성 신호의 에너지 분포 특성을 고려한 쉐이핑 장치 및 방법
US7571097B2 (en) * 2003-03-13 2009-08-04 Microsoft Corporation Method for training of subspace coded gaussian models
WO2004084467A2 (en) * 2003-03-15 2004-09-30 Mindspeed Technologies, Inc. Recovering an erased voice frame with time warping
KR100516678B1 (ko) * 2003-07-05 2005-09-22 삼성전자주식회사 음성 코덱의 음성신호의 피치검출 장치 및 방법
US7337108B2 (en) * 2003-09-10 2008-02-26 Microsoft Corporation System and method for providing high-quality stretching and compression of a digital audio signal
US6944577B1 (en) * 2003-12-03 2005-09-13 Altera Corporation Method and apparatus for extracting data from an oversampled bit stream
KR101190875B1 (ko) * 2004-01-30 2012-10-15 프랑스 뗄레콤 차원 벡터 및 가변 분해능 양자화
KR101008022B1 (ko) * 2004-02-10 2011-01-14 삼성전자주식회사 유성음 및 무성음 검출방법 및 장치
CA2555757C (en) * 2004-03-03 2015-01-20 Aware, Inc. Impulse noise management
CN1954363B (zh) 2004-05-19 2011-10-12 松下电器产业株式会社 编码装置和编码方法
US8938390B2 (en) * 2007-01-23 2015-01-20 Lena Foundation System and method for expressive language and developmental disorder assessment
US9240188B2 (en) * 2004-09-16 2016-01-19 Lena Foundation System and method for expressive language, developmental disorder, and emotion assessment
US10223934B2 (en) 2004-09-16 2019-03-05 Lena Foundation Systems and methods for expressive language, developmental disorder, and emotion assessment, and contextual feedback
US9355651B2 (en) 2004-09-16 2016-05-31 Lena Foundation System and method for expressive language, developmental disorder, and emotion assessment
AU2005285694B2 (en) * 2004-09-20 2010-09-16 Nederlandse Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Tno Frequency compensation for perceptual speech analysis
CN101044553B (zh) * 2004-10-28 2011-06-01 松下电器产业株式会社 可扩展编码装置、可扩展解码装置及其方法
US7567899B2 (en) * 2004-12-30 2009-07-28 All Media Guide, Llc Methods and apparatus for audio recognition
US8050334B2 (en) * 2005-07-07 2011-11-01 Nippon Telegraph And Telephone Corporation Signal encoder, signal decoder, signal encoding method, signal decoding method, program, recording medium and signal codec method
WO2007114291A1 (ja) * 2006-03-31 2007-10-11 Matsushita Electric Industrial Co., Ltd. 音声符号化装置、音声復号化装置、およびこれらの方法
WO2007114290A1 (ja) * 2006-03-31 2007-10-11 Matsushita Electric Industrial Co., Ltd. ベクトル量子化装置、ベクトル逆量子化装置、ベクトル量子化方法及びベクトル逆量子化方法
KR100900438B1 (ko) * 2006-04-25 2009-06-01 삼성전자주식회사 음성 패킷 복구 장치 및 방법
US7684516B2 (en) * 2006-04-28 2010-03-23 Motorola, Inc. Method and apparatus for improving signal reception in a receiver
JP4823001B2 (ja) * 2006-09-27 2011-11-24 富士通セミコンダクター株式会社 オーディオ符号化装置
KR100924172B1 (ko) * 2006-12-08 2009-10-28 한국전자통신연구원 가변 대역폭 무선채널 측정 방법 및 이를 위한 송수신장치
WO2008084688A1 (ja) * 2006-12-27 2008-07-17 Panasonic Corporation 符号化装置、復号装置及びこれらの方法
EP2126901B1 (de) * 2007-01-23 2015-07-01 Infoture, Inc. System zur sprachanalyse
WO2008108078A1 (ja) * 2007-03-02 2008-09-12 Panasonic Corporation 符号化装置および符号化方法
JP5088050B2 (ja) * 2007-08-29 2012-12-05 ヤマハ株式会社 音声処理装置およびプログラム
US8688441B2 (en) * 2007-11-29 2014-04-01 Motorola Mobility Llc Method and apparatus to facilitate provision and use of an energy value to determine a spectral envelope shape for out-of-signal bandwidth content
US8433582B2 (en) * 2008-02-01 2013-04-30 Motorola Mobility Llc Method and apparatus for estimating high-band energy in a bandwidth extension system
US20090201983A1 (en) * 2008-02-07 2009-08-13 Motorola, Inc. Method and apparatus for estimating high-band energy in a bandwidth extension system
US20090276221A1 (en) * 2008-05-05 2009-11-05 Arie Heiman Method and System for Processing Channel B Data for AMR and/or WAMR
US20090319263A1 (en) * 2008-06-20 2009-12-24 Qualcomm Incorporated Coding of transitional speech frames for low-bit-rate applications
US8768690B2 (en) * 2008-06-20 2014-07-01 Qualcomm Incorporated Coding scheme selection for low-bit-rate applications
US20090319261A1 (en) * 2008-06-20 2009-12-24 Qualcomm Incorporated Coding of transitional speech frames for low-bit-rate applications
US8463412B2 (en) * 2008-08-21 2013-06-11 Motorola Mobility Llc Method and apparatus to facilitate determining signal bounding frequencies
US8463599B2 (en) * 2009-02-04 2013-06-11 Motorola Mobility Llc Bandwidth extension method and apparatus for a modified discrete cosine transform audio coder
RU2519027C2 (ru) * 2009-02-13 2014-06-10 Панасоник Корпорэйшн Устройство векторного квантования, устройство векторного обратного квантования и способы для этого
US8620967B2 (en) * 2009-06-11 2013-12-31 Rovi Technologies Corporation Managing metadata for occurrences of a recording
JP5433696B2 (ja) * 2009-07-31 2014-03-05 株式会社東芝 音声処理装置
US8677400B2 (en) 2009-09-30 2014-03-18 United Video Properties, Inc. Systems and methods for identifying audio content using an interactive media guidance application
US8161071B2 (en) 2009-09-30 2012-04-17 United Video Properties, Inc. Systems and methods for audio asset storage and management
JP5260479B2 (ja) * 2009-11-24 2013-08-14 ルネサスエレクトロニクス株式会社 プリアンブル検出装置、方法及びプログラム
WO2011076284A1 (en) * 2009-12-23 2011-06-30 Nokia Corporation An apparatus
US8886531B2 (en) 2010-01-13 2014-11-11 Rovi Technologies Corporation Apparatus and method for generating an audio fingerprint and using a two-stage query
US20110173185A1 (en) * 2010-01-13 2011-07-14 Rovi Technologies Corporation Multi-stage lookup for rolling audio recognition
US9008811B2 (en) 2010-09-17 2015-04-14 Xiph.org Foundation Methods and systems for adaptive time-frequency resolution in digital data coding
US8761545B2 (en) * 2010-11-19 2014-06-24 Rovi Technologies Corporation Method and apparatus for identifying video program material or content via differential signals
JP5637379B2 (ja) * 2010-11-26 2014-12-10 ソニー株式会社 復号装置、復号方法、およびプログラム
EP2650878B1 (de) * 2011-01-25 2015-11-18 Nippon Telegraph and Telephone Corporation Kodierverfahren, kodiervorrichtung, verfahren zur periodischen bestimmung von merkmalsmengen, vorrichtung zur periodischen bestimmung von merkmalsmengen, programm und aufzeichnungsmedium
JP5994639B2 (ja) * 2011-02-01 2016-09-21 日本電気株式会社 有音区間検出装置、有音区間検出方法、及び有音区間検出プログラム
WO2012122297A1 (en) 2011-03-07 2012-09-13 Xiph. Org. Methods and systems for avoiding partial collapse in multi-block audio coding
WO2012122303A1 (en) 2011-03-07 2012-09-13 Xiph. Org Method and system for two-step spreading for tonal artifact avoidance in audio coding
WO2012122299A1 (en) * 2011-03-07 2012-09-13 Xiph. Org. Bit allocation and partitioning in gain-shape vector quantization for audio coding
US8620646B2 (en) * 2011-08-08 2013-12-31 The Intellisis Corporation System and method for tracking sound pitch across an audio signal using harmonic envelope
JP5908112B2 (ja) * 2011-12-15 2016-04-26 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン クリッピングアーチファクトを回避する装置、方法及びコンピュータプログラム
JP5998603B2 (ja) * 2012-04-18 2016-09-28 ソニー株式会社 音検出装置、音検出方法、音特徴量検出装置、音特徴量検出方法、音区間検出装置、音区間検出方法およびプログラム
US20130307524A1 (en) * 2012-05-02 2013-11-21 Ramot At Tel-Aviv University Ltd. Inferring the periodicity of discrete signals
CN105229738B (zh) * 2013-01-29 2019-07-26 弗劳恩霍夫应用研究促进协会 用于使用能量限制操作产生频率增强信号的装置及方法
US9236058B2 (en) * 2013-02-21 2016-01-12 Qualcomm Incorporated Systems and methods for quantizing and dequantizing phase information
US10008198B2 (en) * 2013-03-28 2018-06-26 Korea Advanced Institute Of Science And Technology Nested segmentation method for speech recognition based on sound processing of brain
BR112015030672B1 (pt) * 2013-06-10 2021-02-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V aparelho e método de codificação, processamento e decodificação de envelope de sinal de áudio por divisão do envelope de sinal de áudio empregando codificação e quantização de distribuição
EP3008726B1 (de) 2013-06-10 2017-08-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und verfahren zur audiosignalhüllkurvencodierung, verarbeitung und decodierung durch modellierung einer repräsentation einer kumulativen summe unter verwendung von verteilungsquantisierung und -codierung
US9570093B2 (en) 2013-09-09 2017-02-14 Huawei Technologies Co., Ltd. Unvoiced/voiced decision for speech processing
CN105206278A (zh) * 2014-06-23 2015-12-30 张军 一种基于流水线的三维音频编码加速方法
WO2019113477A1 (en) 2017-12-07 2019-06-13 Lena Foundation Systems and methods for automatic determination of infant cry and discrimination of cry from fussiness
EP3742443B1 (de) * 2018-01-17 2022-08-03 Nippon Telegraph And Telephone Corporation Decodiervorrichtung, verfahren und programm dafür
US11256869B2 (en) * 2018-09-06 2022-02-22 Lg Electronics Inc. Word vector correction method
CN115116456A (zh) * 2022-06-15 2022-09-27 腾讯科技(深圳)有限公司 音频处理方法、装置、设备、存储介质及计算机程序产品

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3617636A (en) * 1968-09-24 1971-11-02 Nippon Electric Co Pitch detection apparatus
JPS592033B2 (ja) * 1979-12-18 1984-01-17 三洋電機株式会社 音声分析合成装置
JPS5853357B2 (ja) * 1980-03-28 1983-11-29 郵政省電波研究所長 音声分析合成方式
JPS5853357A (ja) * 1981-09-24 1983-03-29 Nippon Steel Corp 連続鋳造用タンデツシユ
JPS592033A (ja) * 1982-06-28 1984-01-07 Hitachi Ltd 背面投写スクリ−ン
DE3685238D1 (de) * 1985-02-28 1992-06-17 Mitsubishi Electric Corp Adaptive zwischenbild-vektorquantisier-kodiereinrichtung.
IT1184023B (it) * 1985-12-17 1987-10-22 Cselt Centro Studi Lab Telecom Procedimento e dispositivo per la codifica e decodifica del segnale vocale mediante analisi a sottobande e quantizzazione vettorariale con allocazione dinamica dei bit di codifica
US4935963A (en) * 1986-01-24 1990-06-19 Racal Data Communications Inc. Method and apparatus for processing speech signals
JPS62271000A (ja) * 1986-05-20 1987-11-25 株式会社日立国際電気 音声の符号化方法
JPH0833746B2 (ja) * 1987-02-17 1996-03-29 シャープ株式会社 音声・楽音の帯域分割符号化装置
EP0280827B1 (de) * 1987-03-05 1993-01-27 International Business Machines Corporation Verfahren zur Grundfrequenzbestimmung und Sprachkodierer unter Verwendung dieses Verfahrens
US4868867A (en) * 1987-04-06 1989-09-19 Voicecraft Inc. Vector excitation speech or audio coder for transmission or storage
JP2744618B2 (ja) * 1988-06-27 1998-04-28 富士通株式会社 音声符号化伝送装置、並びに音声符号化装置及び音声復号化装置
US5384891A (en) * 1988-09-28 1995-01-24 Hitachi, Ltd. Vector quantizing apparatus and speech analysis-synthesis system using the apparatus
JPH02287399A (ja) * 1989-04-28 1990-11-27 Fujitsu Ltd ベクトル量子化制御方式
US5010574A (en) * 1989-06-13 1991-04-23 At&T Bell Laboratories Vector quantizer search arrangement
JP2844695B2 (ja) * 1989-07-19 1999-01-06 ソニー株式会社 信号符号化装置
US5115240A (en) * 1989-09-26 1992-05-19 Sony Corporation Method and apparatus for encoding voice signals divided into a plurality of frequency bands
JPH03117919A (ja) * 1989-09-30 1991-05-20 Sony Corp ディジタル信号符号化装置
JP2861238B2 (ja) * 1990-04-20 1999-02-24 ソニー株式会社 ディジタル信号符号化方法
JP3012994B2 (ja) * 1990-09-13 2000-02-28 沖電気工業株式会社 音韻識別方法
US5226108A (en) * 1990-09-20 1993-07-06 Digital Voice Systems, Inc. Processing a speech signal with estimated pitch
US5216747A (en) * 1990-09-20 1993-06-01 Digital Voice Systems, Inc. Voiced/unvoiced estimation of an acoustic signal
JP3077943B2 (ja) * 1990-11-29 2000-08-21 シャープ株式会社 信号符号化装置
US5247579A (en) * 1990-12-05 1993-09-21 Digital Voice Systems, Inc. Methods for speech transmission
US5226084A (en) * 1990-12-05 1993-07-06 Digital Voice Systems, Inc. Methods for speech quantization and error correction
ZA921988B (en) * 1991-03-29 1993-02-24 Sony Corp High efficiency digital data encoding and decoding apparatus
JP3178026B2 (ja) * 1991-08-23 2001-06-18 ソニー株式会社 ディジタル信号符号化装置及び復号化装置
US5272698A (en) * 1991-09-12 1993-12-21 The United States Of America As Represented By The Secretary Of The Air Force Multi-speaker conferencing over narrowband channels
US5317567A (en) * 1991-09-12 1994-05-31 The United States Of America As Represented By The Secretary Of The Air Force Multi-speaker conferencing over narrowband channels
JP3141450B2 (ja) * 1991-09-30 2001-03-05 ソニー株式会社 オーディオ信号処理方法
EP0535889B1 (de) * 1991-09-30 1998-11-11 Sony Corporation Verfahren und Anordnung zur Audiodatenkompression
US5272529A (en) * 1992-03-20 1993-12-21 Northwest Starscan Limited Partnership Adaptive hierarchical subband vector quantization encoder
JP3277398B2 (ja) * 1992-04-15 2002-04-22 ソニー株式会社 有声音判別方法
JP3104400B2 (ja) * 1992-04-27 2000-10-30 ソニー株式会社 オーディオ信号符号化装置及び方法
JPH05335967A (ja) * 1992-05-29 1993-12-17 Takeo Miyazawa 音情報圧縮方法及び音情報再生装置
US5440345A (en) * 1992-07-17 1995-08-08 Kabushiki Kaisha Toshiba High efficient encoding/decoding system
JP3343965B2 (ja) * 1992-10-31 2002-11-11 ソニー株式会社 音声符号化方法及び復号化方法
JP3186292B2 (ja) * 1993-02-02 2001-07-11 ソニー株式会社 高能率符号化方法及び装置
JP3475446B2 (ja) * 1993-07-27 2003-12-08 ソニー株式会社 符号化方法
JP3277692B2 (ja) * 1994-06-13 2002-04-22 ソニー株式会社 情報符号化方法、情報復号化方法及び情報記録媒体

Also Published As

Publication number Publication date
EP1065655B1 (de) 2003-06-11
EP1065654B1 (de) 2003-05-14
DE69332992T2 (de) 2004-05-19
DE69332991D1 (de) 2003-06-18
EP1061505A1 (de) 2000-12-20
EP1061504B1 (de) 2003-05-14
EP1052623A2 (de) 2000-11-15
EP1061502A1 (de) 2000-12-20
DE69331425D1 (de) 2002-02-14
EP1052623B1 (de) 2003-05-14
EP1059627A1 (de) 2000-12-13
EP1065654A1 (de) 2001-01-03
EP0590155B1 (de) 2002-01-09
DE69332993D1 (de) 2003-06-18
EP1059627B1 (de) 2003-05-14
DE69332991T2 (de) 2004-05-19
DE69331425T2 (de) 2002-08-29
DE69332994D1 (de) 2003-06-18
EP1065655A1 (de) 2001-01-03
DE69333046D1 (de) 2003-07-17
WO1993019459A1 (en) 1993-09-30
DE69332993T2 (de) 2004-05-19
DE69332989T2 (de) 2004-05-19
DE69332989D1 (de) 2003-06-18
DE69332994T2 (de) 2004-05-13
US5960388A (en) 1999-09-28
EP0590155A1 (de) 1994-04-06
US5878388A (en) 1999-03-02
DE69332990D1 (de) 2003-06-18
EP1061504A1 (de) 2000-12-20
EP1061505B1 (de) 2003-05-14
EP0590155A4 (en) 1997-07-16
DE69332992D1 (de) 2003-06-18
DE69333046T2 (de) 2004-05-06
EP1052623A3 (de) 2000-12-27
US5765127A (en) 1998-06-09
EP1061502B1 (de) 2003-05-14

Similar Documents

Publication Publication Date Title
DE69332990T2 (de) Verfahren zur Sprachanalyse und - Synthese
DE60006271T2 (de) Celp sprachkodierung mit variabler bitrate mittels phonetischer klassifizierung
DE60024123T2 (de) Lpc-harmonischer sprachkodierer mit überrahmenformat
DE69634179T2 (de) Verfahren und Vorrichtung zur Sprachkodierung und -dekodierung
DE69724126T2 (de) Audiosignalkodier- und dekodierverfahren und audiosignalkodierer und -dekodierer
DE60121405T2 (de) Transkodierer zur Vermeidung einer Kaskadenkodierung von Sprachsignalen
DE69634645T2 (de) Verfahren und Vorrichtung zur Sprachkodierung
DE69915400T2 (de) Vorrichtung zur Kodierung und Dekodierung von Audiosignalen
DE69932460T2 (de) Sprachkodierer/dekodierer
DE69729527T2 (de) Verfahren und Vorrichtung zur Kodierung von Sprachsignalen
JPH05346797A (ja) 有声音判別方法
JPH0744193A (ja) 高能率符号化方法
DE69725945T2 (de) Sprachkodierer mit niedriger Bitrate
DE60220847T2 (de) Spracherkennungssystem, System zur Ermittlung von Referenzmustern, sowie entsprechende Verfahren
JP3297749B2 (ja) 符号化方法
CN106935243A (zh) 一种基于melp的低比特数字语音矢量量化方法和系统
JP3271193B2 (ja) 音声符号化方法
JP3398968B2 (ja) 音声分析合成方法
DE60021455T2 (de) Multimodale Quantisierung des Prädiktionsfehlers in einem Sprachkodierer
JP3297750B2 (ja) 符号化方法
JP3218681B2 (ja) 背景雑音検出方法及び高能率符号化方法
JPH07104777A (ja) ピッチ検出方法及び音声分析合成方法
JPH05297897A (ja) 有声音判別方法

Legal Events

Date Code Title Description
8364 No opposition during term of opposition