DE69033510T2 - NUMERIC LANGUAGE ENCODER WITH IMPROVED LONG-TERM FORECASTING BY SUBSAMPLE RESOLUTION - Google Patents

NUMERIC LANGUAGE ENCODER WITH IMPROVED LONG-TERM FORECASTING BY SUBSAMPLE RESOLUTION

Info

Publication number
DE69033510T2
DE69033510T2 DE69033510T DE69033510T DE69033510T2 DE 69033510 T2 DE69033510 T2 DE 69033510T2 DE 69033510 T DE69033510 T DE 69033510T DE 69033510 T DE69033510 T DE 69033510T DE 69033510 T2 DE69033510 T2 DE 69033510T2
Authority
DE
Germany
Prior art keywords
speech
vector
filter
samples
circuit means
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
DE69033510T
Other languages
German (de)
Other versions
DE69033510D1 (en
DE69033510T3 (en
Inventor
Alan Gerson
A. Jasiuk
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23590969&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69033510(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Motorola Inc filed Critical Motorola Inc
Publication of DE69033510D1 publication Critical patent/DE69033510D1/en
Application granted granted Critical
Publication of DE69033510T2 publication Critical patent/DE69033510T2/en
Publication of DE69033510T3 publication Critical patent/DE69033510T3/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0011Long term prediction filters, i.e. pitch estimation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0012Smoothing of parameters of the decoder interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)
  • Analogue/Digital Conversion (AREA)
  • Near-Field Transmission Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

A digital speech coder includes a long-term filter (124) having an improved sub-sample resolution long-term predictor which allows for subsample resolution for the lag parameter L. A frame of N samples of input speech vector s(n) is applied to an adder (510). The output of the adder (510) produces the output vector b(n) for the long term filter (124). The output vector b(n) is fed back to a delayed vector generator block (530) of the long-term predictor. The nominal long-term predictor lag parameter L is also input to the delayed vector generator block (530). The long-term predictor lag parameter L can take on non-integer values, which may be multiples of one half, one third, one fourth or any other rational fraction. The delayed vector generator (530) includes a memory which holds past samples of b(n). In addition, interpolated samples of b(n) are also calculated by the delayed vector generator (530) and stored in its memory, at least one interpolated sample being calculated and stored between each past sample of b(n). The delayed vector generator (530) provides output vector q(n) to the long-term multiplier block (520), which scales the long-term predictor response by the long-term predictor coefficient beta . The scaled output beta q(n) is then applied to the adder (510) to complete the feedback loop of the recursive filter (124).

Description

Hintergrund der ErfindungBackground of the invention

Die vorliegende Erfindung bezieht sich im allgemeinen auf numerische oder digitale Sprachcodierung bei geringen Bitraten und ist insbesondere auf ein verbessertes Verfahren zur Bestimmung des Ausgangsverhaltens der Langzeitvorhersage für Sprachcodierer auf der Basis linearer Vorhersage mit Codeanregung.The present invention relates generally to numerical or digital speech coding at low bit rates and, more particularly, to an improved method for determining the long-term prediction output behavior for speech coders based on linear prediction with code excitation.

Die lineare Vorhersage mit Codeanregung (CELP) ist eine Sprachcodiertechnik, die die Möglichkeit besitzt, hochwertige synthetische Sprache bei geringen Bitraten, d. h. von 4,8 bis 9,6 Kilobit pro Sekunde (kbps), zu erzeugen. Diese Klasse der Sprachcodierung, die auch als lineare Vorhersage mit Vektoranregung oder stochastische Codierung bekannt ist, wird am häufigsten in zahlreichen Anwendungen der Sprachkommmunikation und Sprachsynthese verwendet. Es hat sich erwiesen, daß CELP insbesondere bei digitaler Sprachverschlüsselung und in digitalen Funktelefon-Kommunikationssystemen anwendbar ist, bei denen Sprachgüte, Datenrate, Größe und Kosten die wesentlichen Ergebnisse darstellen.Code Excitation Linear Prediction (CELP) is a speech coding technique that has the ability to produce high-quality synthetic speech at low bit rates, i.e., from 4.8 to 9.6 kilobits per second (kbps). This class of speech coding, also known as vector excitation linear prediction or stochastic coding, is most commonly used in numerous speech communication and speech synthesis applications. CELP has proven to be particularly applicable in digital speech encryption and in digital radiotelephone communication systems, where speech quality, data rate, size and cost are the key outcomes.

Der Term "Codeanregung oder "Vektoranregung" ist von der Tatsache abgeleitet, daß die Anregungsfolge für den Sprachvektor vektorquanisiert ist, d. h. ein einzelnes Codewort wird verwendet, um eine Folge oder einen Vektor der Anregungsabtastungen darzustellen. Auf diese Weise sind für die Codierung der Anregungsfolge Datenraten von weniger als einem Bit pro Abtastung möglich. Die gespeicherten Anregungscodevektoren bestehen im allgemeinen aus unabhängigen zufälligen weißen Gaußschen Folgen. Aus dem Codebuch wird ein Vektor gewählt, der jeweils einen Block von N Anregungsabtastungen darstellt. Jeder gespeicherte Vektor wird durch ein Codewort dargestellt, d. h. durch die Adresse der Speicherstelle des Codevektors. Dieses Codewort wird nachfolgend über einen Kommunikationskanal zum Sprachsynthesizer gesendet, um die Sprachrahmen im Empfänger zu rekonstruieren. Für eine genauere Erklärung der CELP siehe M. R. Schroeder und B. S. Atal, "Code-Excited Linear Prediction (CELP): High Quality Speech at Very Low Bit Rates", Berichte der IEEE Internationalen Konferenz zu Akustik, Sprache und Signalverarbeitung (ICASSP), Bd. 3, S. 937-40, März 1985.The term "code excitation" or "vector excitation" is derived from the fact that the excitation sequence for the speech vector is vector-quantized, i.e. a single code word is used to represent a sequence or vector of excitation samples. In this way, data rates of less than one bit per sample are possible for coding the excitation sequence. The stored excitation code vectors generally consist of independent random white Gaussian sequences. A Vector is chosen, each representing a block of N excitation samples. Each stored vector is represented by a codeword, that is, the address of the codevector's storage location. This codeword is subsequently sent over a communication channel to the speech synthesizer to reconstruct the speech frames in the receiver. For a more detailed explanation of CELP, see MR Schroeder and BS Atal, "Code-Excited Linear Prediction (CELP): High Quality Speech at Very Low Bit Rates", Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Vol. 3, pp. 937-40, March 1985.

In einem CELP-Sprachcodierer wird der Anregungscodevektor aus dem Codebuch auf zwei zeitlich veränderliche lineare Filter angewendet, die die Charakteristiken des Eingangssprachsignals modellieren. Das erste Filter enthält eine Einrichtung zur Langzeitvorhersage in seiner Rückkopplungsschleife, die eine große Verzögerung, d. h. 2 bis 15 Millisekunden, aufweist, die verwendet wird, um die Teilungsperiodizität stimmhafter Sprache einzubringen. Das zweite Filter enthält eine Einrichtung zur Kurzzeitvorhersage in seiner Rückkopplungsschleife, die eine geringe Verzögerung, d. h. weniger als 2 Millisekunden, aufweist, die verwendet wird, um eine spektrale Umhüllende oder Formatstruktur einzubringen. Für jeden Rahmen der Sprache legt der Sprachcodierer jeden einzelnen Codevektor auf die Filter an, um ein rekonstruiertes Sprachsignal zu erzeugen, und vergleicht das ursprüngliche Eingangssprachsignal mit dem rekonstruierten Signal, um ein Fehlersignal zu erzeugen. Das Fehlersignal wird nachfolgend gewichtet, indem es einen Wichtungsfilter mit einem Verhalten passiert, das auf der menschlichen Hörwahrnehmung basiert. Das optimale Anregungssignal wird bestimmt, indem der Codevekor gewählt wird, der für den momentanen Rahmen das gewichtete Fehlersignal mit minimaler Energie erzeugt. Das Codewort für den optimalen Codevektor wird dann über einen Kommunikationskanal übertragen.In a CELP speech coder, the excitation codevector from the codebook is applied to two time-varying linear filters that model the characteristics of the input speech signal. The first filter includes a long-term predictor in its feedback loop that has a large delay, i.e., 2 to 15 milliseconds, used to introduce the pitch periodicity of voiced speech. The second filter includes a short-term predictor in its feedback loop that has a small delay, i.e., less than 2 milliseconds, used to introduce a spectral envelope or format structure. For each frame of speech, the speech coder applies each individual codevector to the filters to produce a reconstructed speech signal and compares the original input speech signal with the reconstructed signal to produce an error signal. The error signal is subsequently weighted by passing it through a weighting filter with a behavior based on human auditory perception. The optimal excitation signal is determined by choosing the code vector that produces the weighted error signal with minimum energy for the current frame. generated. The codeword for the optimal code vector is then transmitted over a communication channel.

In einem CELP-Sprachsynthesizer wird das vom Kanal empfangene Codewort verwendet, um das Codebuch der Anregungsvektoren zu adressieren. Der einzelne Codevektor wird dann mit einem Verstärkungsfaktor multipliziert und durch die Langzeit- und Kurzzeitvorhersagefilter gefiltert, um einen rekonstruierten Sprachvektor zu erhalten. Der Verstärkungsfaktor und die Vorhersageparameter werden ebenfalls vom Kanal erhalten. Es hat sich herausgestellt, daß ein synthetisiertes Signal mit besserer Güte erzeugt werden kann, wenn die durch den Sythesizer tatsächlich verwendeten Parameter in der Analysestufe verwendet werden, wodurch die Quantisierungsfehler minimiert werden. Deswegen wird die Verwendung dieser Syntheseparameter in der CELP-Sprachanalysestufe zum Erzeugen von Sprache mit höherer Güte als Analyse-durch-Synthese- Sprachcodierung bezeichnet.In a CELP speech synthesizer, the codeword received from the channel is used to address the codebook of excitation vectors. The single codevector is then multiplied by a gain factor and filtered through the long-term and short-term prediction filters to obtain a reconstructed speech vector. The gain factor and prediction parameters are also obtained from the channel. It has been found that a synthesized signal with better quality can be produced if the parameters actually used by the synthesizer are used in the analysis stage, thereby minimizing the quantization errors. Therefore, the use of these synthesis parameters in the CELP speech analysis stage to produce higher quality speech is called analysis-by-synthesis speech coding.

Die Einrichtung der Kurzzeitvorhersage versucht, die momentane Ausgangsabtastung s(n) durch eine lineare Kombination der unmittelbar vorausgehenden Ausgangsabtastungen s(n - 1) gemäß der GleichungThe short-term prediction facility attempts to predict the current output sample s(n) by a linear combination of the immediately preceding output samples s(n - 1) according to the equation

s (n) = α&sub1;s (n - 1) + α&sub2;s (n - 2) +... + αps (n - p) + e (n)s (n) = α1 s (n - 1) + α2 s (n - 2) +... + αps (n - p) + e (n)

vorherzusagen, wobei p die Ordnung der Einrichtung zur Kurzzeitvorhersage ist und e(n) der Vorhersagerest ist, d. h. der Teil von s(n), der nicht durch die gewichtete Summe der p vorherigen Abtastungen dargestellt werden kann. Die Ordnung der Einrichtung zur Kurzzeitvorhersage ist typischerweise im Bereich von 8 bis 12 bei einer angenommenen Abtastrate von 8 Kilohertz (kHz). Die Wichtungen α&sub1;, α&sub2;, αp, werden in dieser Gleichung die Vorhersagekoeffizienten genannt. Die Koeffizienten der Kurzzeitvorhersage werden aus dem Sprachsignal bestimmt, indem konventionelle lineare Vorhersagecodierungs- (LPC) Techniken verwendet werden. Das Ausgangsverhalten des Kurzzeitfilters kann in der Schreibweise der Z-Transformation ausgedrückt werden als: where p is the order of the short-term predictor and e(n) is the prediction residual, i.e. the part of s(n) that cannot be represented by the weighted sum of the p previous samples. The order of the short-term predictor is typically in the range of 8 to 12 at an assumed sampling rate of 8 kilohertz (kHz). The weights α₁, α₂, αp, are called the prediction coefficients in this equation. The short-term predictor coefficients are determined from the speech signal using conventional linear predictive coding (LPC) techniques. The output behavior of the Short-term filter can be expressed in the Z-transform notation as:

Zur weiteren Erläuterung der Parameter des Kurzzeitfilters siehe den Artikel mit dem Titel "Predictive Coding of Speech at Low Bit Rate s, IEEE Trans. Commun., Bd. COM-30, S. 600- 14, April 1982, von B. S. Atal.For further explanation of the parameters of the short-term filter, see the article entitled "Predictive Coding of Speech at Low Bit Rates, IEEE Trans. Commun., Vol. COM-30, pp. 600-14, April 1982, by B. S. Atal.

Das Langzeitfilter muß andererseits die nächste Ausgangsabtastung aus den vorhergehenden Abtastungen vorhersagen, die sich über eine viel längere Zeitperiode erstrecken. Wenn in der Vorhersageeinrichtung lediglich eine einzelne frühere Abtastung verwendet wird, dann ist die Vorhersageeinrichtung eine Einzelabgriff-Vorhersageeinrichtung. Es werden typischerweise ein bis drei Abgriffe verwendet. Das Ausgangsverhalten für ein Langzeitfilter, das eine Einrichtung zur Langzeitvorsage mit Einzelabgriff enthält, ist in der Schreibweise der Z-Transformation gegeben als:The long-term filter, on the other hand, must predict the next output sample from the previous samples, which extend over a much longer period of time. If only a single previous sample is used in the predictor, then the predictor is a single-tap predictor. Typically one to three taps are used. The output behavior for a long-term filter containing a single-tap long-term predictor is given in Z-transform notation as:

B(z) = 1/ 1-βz-LB(z) = 1/ 1-βz-L

Es wird angemerkt, daß dieses Ausgangsverhalten lediglich eine Funktion der Verzögerung oder des Nachlaufs L des Filters und des Filterkoeffizienten β ist. Für stimmhafte Sprache würde der Nachlauf L typischerweise die Teilungsperiode der Sprache oder ein Vielfaches davon sein. Bei einer Abtastrate von 8 kHz würde ein geeigneter Bereich für den Nachlauf L zwischen 16 und 143 liegen, was einem Teilungsbereich zwischen 56 und 500 Hz entspricht.It is noted that this output behavior is only a function of the delay or lag L of the filter and the filter coefficient β. For voiced speech, the lag L would typically be the pitch period of the speech or a multiple thereof. For a sampling rate of 8 kHz, a suitable range for the lag L would be between 16 and 143, which corresponds to a pitch range between 56 and 500 Hz.

Der Nachlauf L der Langzeitvorhersage und der Koeffizient β der Langzeitvorhersage können entweder aus einer Konfiguration mit offener Schleife oder aus einer Konfiguration mit geschlossener Schleife bestimmt werden. Bei Verwendung der Konfiguration mit offener Schleife werden der Nachlauf L und der Koeffizient β aus dem Eingangssignal (oder aus dessen Rest) direkt berechnet. Bei der Konfiguration mit geschlossener Schleife werden der Nachlauf L und der Koeffizient β bei der Rahmenrate aus codierten Daten berechnet, die den vorherigen Ausgang des Langzeitfilters und des Eingangssprachsignals darstellen. Durch die Verwendung der codierten Daten basiert die Bestimmung des Langzeitvorhersagenachlaufs auf dem tatsächlichen Langzeitfilterzustand, der am Synthesizer vorhanden ist. Deswegen ergibt die Konfiguration mit geschlossener Schleife eine bessere Leistungsfähigkeit als das Verfahren mit offener Schleife, da selbst das Teilungsfilter zur Optimierung des Fehlersignals beitragen würde. Überdies arbeitet eine Vorhersageeinrichtung mit Einzelabgriff in der Konfiguration mit geschlossener Schleife sehr gut.The long-term forecast lag L and the long-term forecast coefficient β can be determined from either an open-loop or a closed-loop configuration. When using the In the open loop configuration, the lag L and the coefficient β are calculated directly from the input signal (or its residue). In the closed loop configuration, the lag L and the coefficient β are calculated at the frame rate from encoded data representing the previous output of the long-term filter and the input speech signal. By using the encoded data, the determination of the long-term prediction lag is based on the actual long-term filter state present at the synthesizer. Therefore, the closed loop configuration gives better performance than the open loop method, since even the division filter would help optimize the error signal. Moreover, a single-tap predictor works very well in the closed loop configuration.

Bei Verwendung der Konfiguration mit geschlossener Schleife wird das Ausgangsverhalten b(n) des Langzeitfilters lediglich aus vergangenen Ausgangsabtastungen vom Langzeitfilter und aus den Eingangssprachabtastungen s(n) gemäß der folgenden Gleichung bestimmt:When using the closed loop configuration, the output response b(n) of the long-term filter is determined only from past output samples from the long-term filter and from the input speech samples s(n) according to the following equation:

b (n) = s (n) + βb (n - L).b (n) = s (n) + βb (n - L).

Diese Technik ist problemlos für Teilungsvorläufe L, die größer als die Rahmenlänge N sind, d. h. L N, da der Term b(n - L) immer eine vergangene Abtastung für alle Abtastungsnummern n, 0 ≤ n ≤ N-1 darstellt. Ferner können im Fall L > N der Faktor γ der Anregungsverstärkung und der Koeffizient β der Langzeitvorhersage für gegebene Werte des Nachlaufs L des Codeworts i gleichzeitig optimiert werden. Es hat sich herausgestellt, daß diese gemeinsame Optimierungstechnik eine merkliche Verbesserung der Sprachgüte erzielt.This technique is straightforward for division advances L that are larger than the frame length N, i.e. L N, since the term b(n - L) always represents a past sample for all sample numbers n, 0 ≤ n ≤ N-1. Furthermore, in the case L > N, the excitation gain factor γ and the long-term prediction coefficient β can be optimized simultaneously for given values of the lag L of the codeword i. It has been found that this joint optimization technique achieves a noticeable improvement in speech quality.

Wenn jedoch Langzeitvorhersagenachläufe L behandelt werden müssen, die kürzer als die Rahmenlänge sind, versagt die Lösung mit geschlossener Schleife. Dieses Problem kann im Fall von weiblicher Sprache mit hoher Stimmlage auftreten. Eine weibliche Stimme zum Beispiel, die einer Teilungsfrequenz von 250 Hz entspricht, kann einen Langzeitvorhersagenachlauf L von 4 Millisekunden (ms) erfordern. Eine Teilung von 250 Hz bei einer Abtastrate von 8 kHz entspricht einem Langzeitvorhersagenachlauf L von 32 Abtastungen. Es ist jedoch nicht wünschenswert, eine Rahmenlänge von weniger als 4 ms zu verwenden, da der CELP-Anregungsvektor effektiver codiert werden kann, wenn größere Rahmenlängen verwendet werden. Bei Verwendung einer Rahmenlänge von 7,5 ms bei einer Abtastrate von 8 kHz würde die Rahmenlänge demzufolge 60 Abtastungen betragen. Dies bedeutet, daß lediglich 32 vergangene Abtastungen zur Verfügung stehen würden, um die nächsten 60 Abtastungen des Rahmens vorherzusagen. Wenn der Langzeitvorhersagenachlauf L kleiner als die Rahmenlänge N ist, sind somit nur L vergangene Abtastungen der benötigten N Abtastungen definiert.However, if long-term prediction lags L shorter than the frame length must be handled, the closed-loop solution fails. This problem may occur in the case of high-pitched female speech. For example, a female voice corresponding to a pitch frequency of 250 Hz may require a long-term prediction lag L of 4 milliseconds (ms). A pitch of 250 Hz at a sampling rate of 8 kHz corresponds to a long-term prediction lag L of 32 samples. However, it is not desirable to use a frame length of less than 4 ms, since the CELP excitation vector can be encoded more effectively when longer frame lengths are used. Using a frame length of 7.5 ms at a sampling rate of 8 kHz would therefore result in the frame length being 60 samples. This means that only 32 past samples would be available to predict the next 60 samples of the frame. If the long-term prediction lag L is smaller than the frame length N, only L past samples of the required N samples are defined.

Im Stand der Technik sind verschiedene alternative Lösungen versucht worden, die auf das Problem von Teilungsnachläufen L gerichtet sind, die kleiner als die Rahmenlänge N sind. Beim Versuch, den Langzeitvorhersagenachlauf L und den Koeffizienten β gemeinsam zu optimieren, würde eine erste Näherung darin bestehen, die Gleichung direkt zu lösen unter der Annahme, daß kein Anregungssignal vorhanden ist. Diese Näherung ist im Artikel mit dem Titel "Regular-Pulse Excitation - A Novel Approach to Effective and Efficient Multipulse Coding of Speech" von Kroon u. a., IEEE Berichte zu Akustik, Sprache und Signalverarbeitung, Bd. ASSP-34, Nr. 5. S. 1054-1063 erläutert. Wird diese Näherung verfolgt, muß jedoch beim Einzelparameter β eine nicht lineare Gleichung gelöst werden. Die Gleichung mit der zweiten oder dritten Potenz von β muß gelöst werden. Die Lösung der zweiten oder dritten Potenz von β ist rechnerisch unmöglich. Überdies ist mit dieser Näherung die gemeinsame Optimierung des Koeffizienten β mit dem Verstärkungsfaktor γ trotzdem nicht möglich.In the prior art, various alternative solutions have been attempted to address the problem of pitch lags L smaller than the frame length N. In attempting to optimize the long-term prediction lag L and the coefficient β together, a first approximation would be to solve the equation directly assuming that no excitation signal is present. This approximation is explained in the article entitled "Regular-Pulse Excitation - A Novel Approach to Effective and Efficient Multipulse Coding of Speech" by Kroon et al., IEEE Reports on Acoustics, Speech and Signal Processing, Vol. ASSP-34, No. 5, pp. 1054-1063. However, following this approximation requires solving a non-linear equation for the single parameter β. The equation with the second or third The second or third power of β must be solved. The solution of the second or third power of β is computationally impossible. Moreover, with this approximation, the joint optimization of the coefficient β with the gain factor γ is still not possible.

Eine zweite Lösung, die darin besteht, die Langzeitvorhersageverzögerung L darauf zu beschränken, daß sie größer als die Rahmenlänge N ist, wird. von Singhal und Atal im Artikel "Improving Performance of Multi-Pulse LPC Coders at Low Bit Rates", Berichts der IEEE Internationalen Konferenz zu Akustik, Sprache und Signalverarbeitung, Bd. 1, 19.-21. März 1984, S. 1.3.1-1.3.4 vorgeschlagen. Diese künstliche Einschränkung des Teilungsnachlaufs L stellt die Teilungsinformation oftmals nicht genau dar. Dementsprechend ist die Sprachgüte für Sprache mit hoher Stimmlage unter Verwendung dieser Näherung verschlechtert.A second solution, which consists in constraining the long-term prediction delay L to be greater than the frame length N, is proposed by Singhal and Atal in the article "Improving Performance of Multi-Pulse LPC Coders at Low Bit Rates", Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing, Vol. 1, March 19-21, 1984, pp. 1.3.1-1.3.4. This artificial constraining of the pitch lag L often does not accurately represent the pitch information. Accordingly, the speech quality for high-pitch speech is degraded using this approximation.

Eine dritte Lösung besteht darin, die Größe der Rahmenlänge N zu reduzieren. Bei einer kürzeren Rahmenlänge kann der Langzeitvorhersagenachlauf L immer aus den vergangenen Abtastungen bestimmt werden. Diese Näherung leidet jedoch unter einer starken Einschränkung der Bitrate. Bei einer kürzeren Rahmenlänge müssen eine größere Anzahl von Parametern der Langzeitvorhersage und Anregungsvektoren codiert werden, dementsprechend muß die Bitrate des Kanals größer sein, um die zusätzliche Codierung zu realisieren.A third solution is to reduce the size of the frame length N. With a shorter frame length, the long-term prediction lag L can always be determined from the past samples. However, this approximation suffers from a severe bit rate limitation. With a shorter frame length, a larger number of long-term prediction parameters and excitation vectors must be encoded, accordingly the channel bit rate must be larger to realize the additional coding.

Ein zweites Problem besteht bei Sprechern mit hoher Stimmlage. Die Abtastrate, die im Codierer verwendet wird, setzt der Leistungsfähigkeit einer Einzelabgriff-Teilungsvorhersageeinrichtung eine obere Begrenzung. Wenn zum Beispiel die Teilungsfrequenz tatsächlich 485 Hz beträgt, würde der nächstliegende Nachlaufwert 16 sein, was 500 Hz entspricht. Dies hat einen Fehler für die grundlegende Teilungsfrequenz von 15 Hz zur Folge haben, wodurch sich die Sprachgüte verschlechtert. Dieser Fehler vervielfacht sich für die Harmonischen der Teilungsfrequenz, was eine weitere Verschlechterung verursacht.A second problem is with high pitch speakers. The sampling rate used in the encoder places an upper limit on the performance of a single tap pitch predictor. For example, if the pitch frequency is actually 485 Hz, the closest lag value would be 16, which corresponds to 500 Hz. This has an error for the fundamental pitch frequency of 15 Hz, which degrades the speech quality. This error multiplies for the harmonics of the division frequency, causing further deterioration.

Es gibt deswegen einen Bedarf nach einem verbesserten Verfahren zum Bestimmen des Langzeitvorhersagenachlaufs L. Die optimale Lösung muß sich den Problemen sowohl der rechnerischen Komplexität als auch der Sprachgüte für die Codierung von Sprache mit hoher Stimmlage zuwenden.There is therefore a need for an improved method for determining the long-term prediction lag L. The optimal solution must address the problems of both computational complexity and speech fidelity for coding high-pitch speech.

IEEE Zeitschrift zu ausgewählten Bereichen in der Kommunikation, Februar 1988, Band 6, S. 353-363, "A Class of Analysisby-Synthesis Predictive Coders For High Quality Speech Coding At Rates Between 4.8 and 16 Kbits/sec% offenbart Verfahren zum Codieren und Rekonstruieren von Sprache unter Verwendung ganzzahliger Verzögerungswerte. Das US-Patent Nr. 4.569.030, erteilt am 4. Februar 1986, offenbart ein rekursives Filter mit einer Schleife, das sowohl ein Verzögerungselement mit der Verzögerung T als auch ein Verzögerungselement mit der Verzögerung 2T verwendet.IEEE Journal of Selected Areas in Communications, February 1988, Volume 6, pp. 353-363, "A Class of Analysisby-Synthesis Predictive Coders For High Quality Speech Coding At Rates Between 4.8 and 16 Kbits/sec% discloses methods for coding and reconstructing speech using integer delay values. U.S. Patent No. 4,569,030, issued February 4, 1986, discloses a single-loop recursive filter that uses both a delay element of delay T and a delay element of delay 2T.

Zusammenfassung der ErfindungSummary of the invention

Eine allgemeine Aufgabe der vorliegenden Erfindung besteht demzufolge darin, eine verbesserte Technik zur digitalen Sprachcodierung zu schaffen, das hochwertige Sprache bei geringen Bitraten erzeugt.A general object of the present invention is therefore to provide an improved technique for digital speech coding that produces high quality speech at low bit rates.

Eine speziellere Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren zu schaffen, um Parameter der Langzeitvorhersage unter Verwendung der Näherung mit geschlossener Schleife zu bestimmen.A more specific object of the present invention is to provide a method for determining long-term forecast parameters using the closed-loop approximation.

Eine weitere Aufgabe der vorliegenden Erfindung besteht darin, ein verbessertes Verfahren zum Bestimmen des Ausgangsverhaltens einer Langzeitvorhersageeinrichtung in dem Fall zu schaffen, wenn der Parameter L des Langzeitvorhersagenachlaufs keine ganzzahlige Zahl ist.Another object of the present invention is to provide an improved method for determining the output behavior of a long-term forecaster in the case where the parameter L of the long-term forecast lag is not an integer number.

Eine weitere Aufgabe der vorliegenden Erfindung besteht darin, einen verbesserten CELP-Sprachcodierer zu schaffen, der die gemeinsame Optimierung des Verstärkungsfaktors Gamma und des Koeffizienten Beta der Langzeitvorhersage während der Codebuchsuche nach dem optimalen Anregungscodevektor ermöglicht.Another object of the present invention is to provide an improved CELP speech coder that enables the joint optimization of the gain factor gamma and the coefficient beta of the long-term prediction during the codebook search for the optimal excitation code vector.

Gemäß Aspekten der Erfindung sind Verfahren zum Rekonstruieren von Sprache, die in den Ansprüchen 1 und 9 dargestellt sind, sowie Vorrichtungen zum Rekonstruieren von Sprache geschaffen, die in den Ansprüchen 5 und 11 dargestellt sind. Gemäß weiteren Aspekten der Erfindung ist ein Verfahren zum Codieren von Sprache, das im Anspruch 13 dargestellt ist, und eine Vorrichtung zum Codieren von Sprache geschaffen, die im Anspruch 16 dargestellt ist.According to aspects of the invention, there are provided methods for reconstructing speech as set out in claims 1 and 9, and apparatus for reconstructing speech as set out in claims 5 and 11. According to further aspects of the invention, there are provided a method for encoding speech as set out in claim 13, and an apparatus for encoding speech as set out in claim 16.

Kurze Beschreibung der ZeichnungShort description of the drawing

Die neuartigen Merkmale der vorliegenden Erfindung sind im einzelnen in den angefügten Ansprüchen dargestellt. Die Erfindung kann zusammen mit ihren weiteren Aufgaben und Vorteilen am besten unter Bezugnahme auf die nachfolgende Beschreibung verstanden werden, die in Verbindung mit der angefügten Zeichnung erfolgt, wobei in den verschiedenen Figuren der Zeichnung gleich bezeichnete Numerierungen gleiche Baugruppen bezeichnen und in denen:The novel features of the present invention are set forth with particularity in the appended claims. The invention, together with further objects and advantages thereof, may best be understood by reference to the following description taken in conjunction with the accompanying drawings, in which like numerals in the several figures of the drawing indicate like assemblies and in which:

Fig. 1 ist ein allgemeines Blockschaltbild eines linearen Vorhersagesprachcodierers mit Codeanregung, das die Lage eines Langzeitfilters zur Verwendung in der vorliegenden Erfindung erläutert;Fig. 1 is a general block diagram of a linear predictive speech coder with code excitation, illustrating the location of a long term filter for use in the present invention;

Fig. 2A ist ein detailliertes Blockschaltbild einer Ausführung des Langzeitfilters von Fig. 1, das das Langzeitvorhersageverhalten erläutert, wobei der Filternachlauf L ganzzahlig ist;Fig. 2A is a detailed block diagram of an implementation of the long-term filter of Fig. 1, illustrating the long-term prediction behavior, where the filter lag L is an integer;

Fig. 2B ist ein vereinfachter Schaltplan eines Schieberegisters, das verwendet werden kann, um die Funktion der Langzeitvorhersageeinrichtung von Fig. 2A zu erläutern;Fig. 2B is a simplified circuit diagram of a shift register that can be used to explain the operation of the long-term predictor of Fig. 2A;

Fig. 2C ist ein detailliertes Blockschaltbild einer weiteren Ausführung des Langzeitfilters von Fig. 1, das das Langzeitvorhersageverhalten erläutert, wobei der Filternachlauf L ganzzahlig ist;Fig. 2C is a detailed block diagram of another implementation of the long-term filter of Fig. 1, illustrating the long-term prediction behavior, where the filter lag L is an integer;

Fig. 3 ist ein detailliertes Ablaufdiagramm, das die Funktionen erläutert, die durch, das Langzeitfilter von Fig. 2A ausgeführt werden;Fig. 3 is a detailed flow chart explaining the functions performed by the long-term filter of Fig. 2A;

Fig. 4 ist ein allgemeines Blockschaltbild eines Sprachsynthesizers zur Verwendung gemäß der vorliegenden Erfindung;Fig. 4 is a general block diagram of a speech synthesizer for use in accordance with the present invention;

Fig. 5 ist ein detailliertes Blockschaltbild des Langzeitfilters von Fig. 1, das das Langzeitvorhersageverhalten der Subabtastauflösung gemäß der vorliegenden Erfindung erläutert;Fig. 5 is a detailed block diagram of the long-term filter of Fig. 1, illustrating the long-term prediction performance of the sub-sample resolution according to the present invention;

Fig. 6A und 6B sind detaillierte Ablaufdiagramme, die die Funktionen erläutern, die das Langzeitfilter von Fig. 5 ausführt; undFig. 6A and 6B are detailed flow charts explaining the functions performed by the long-term filter of Fig. 5; and

Fig. 7 ist ein detailliertes Blockschaltbild eines Teilungsnachfilters, das zwischen das Kurzzeitfilter und den D/A-Wandler des Sprachsynthesizers von Fig. 4 geschaltet wird.Fig. 7 is a detailed block diagram of a division post-filter that is connected between the short-term filter and the D/A converter of the speech synthesizer of Fig. 4.

Detaillierte Beschreibung der bevorzugten AusführungDetailed description of the preferred version

In Fig. 1 ist ein allgemeines Blockschaltbild eines linearen Vorhersagesprachcodierers 100 mit Codeanregung gezeigt, der das Langzeitfilter gemäß der vorliegenden Erfindung verwendet. Ein akustisches Eingangssignal, das zu analysieren ist, wird am Mikrofon 102 an den Sprachcodierer 100 angelegt. Das Eingangssignal, typischerweise ein Sprachsignal, wird dann an das Filter 104 angelegt. Das Filter 104 weist im allgemeinen Bandpaßfiltercharakteristiken auf. Wenn die Sprachbandbreite jedoch bereits angemessen ist, kann das Filter 104 eine direkte Drahtverbindung enthalten.In Fig. 1, a general block diagram of a linear code-excited predictive speech coder 100 using the long-term filter of the present invention is shown. An acoustic input signal to be analyzed is applied to the speech coder 100 at microphone 102. The input signal, typically a speech signal, is then applied to filter 104. Filter 104 generally has bandpass filter characteristics. However, if the speech bandwidth is already adequate, filter 104 may include a direct wire connection.

Das analoge Sprachsignal vom Filter 104 wird nachfolgend in eine Folge von N Impulsabtastungen umgewandelt, wobei die Amplitude jeder Impulsabtastung, wie in der Technik bekannt ist, dann im Analog/Digital-Wandler 108 (A/D) durch einen digitalen Code dargestellt wird. Die Abtastrate, die in der bevorzugten Ausführung eine 8,0 kHz-Rate darstellt, ist durch den Abtasttakt SC bestimmt. Der Abtasttakt SC wird gemeinsam mit dem Rahmentakt FC durch den Taktgeber 112 erzeugt.The analog speech signal from filter 104 is subsequently converted into a sequence of N pulse samples, the amplitude of each pulse sample being then represented by a digital code in analog-to-digital (A/D) converter 108, as is known in the art. The sampling rate, which in the preferred embodiment is an 8.0 kHz rate, is determined by the sampling clock SC. The sampling clock SC is generated together with the frame clock FC by the clock generator 112.

Der digitale Ausgang des A/D 108, der als Eingangssprachvektor s(n) dargestellt werden kann, wird dann an den Koeffizientenanalysator 110 angelegt. Dieser Eingangssprachvektor s(n) wird wiederholt in getrennten Rahmen erhalten, d. h. in Zeitblöcken, deren Länge durch den Rahmentakt FC bestimmt ist. In der bevorzugten Ausführung stellt der Eingangssprachvektor s(n), mit 0 ≤ n ≤ N-1, einen 7,5 ms Rahmen dar, der 60 Abtastungen enthält, wobei jede Abtastung durch 12 bis 16 Bits eines digitalen Codes dargestellt ist. In dieser Ausführung werden für jeden Sprachblock ein Satz linearer Vorhersagecodierungs- (LPC) Parameter durch den Koeffizientenanalysator 110 in einer Konfiguration mit offener Schleife erzeugt. Die Parameter ct1 der Kurzzeitvorhersage, der Koeffizient β der Langzeitvorhersage, der nominelle Parameter L des Langzeitvorhersagenachlaufs, die Parameter WFP des Wichtungsfilters und der Anregungsverstärkungsfaktor γ werden (gemeinsam mit dem besten Anregungscodewort I, wie später beschrieben ist) an den Multiplexer 150 angelegt und zur Verwendung durch den Sprachsynthesizer über den Kanal gesendet. Bezüglich repräsentativer Verfahren zum Erzeugen dieser Parameter für diese Ausführung siehe den Artikel mit dem Titel "Predictive Coding of Speech at Low Bit Rates", IEEE Trans. Commun., Bd. COM-30, S. 600-14, April 1982, von B. S. Atal. Der Eingangssprachvektor s(n) wird außerdem an den Subtrahierer 130 angelegt, dessen Funktion nachfolgend beschrieben wird.The digital output of the A/D 108, which can be represented as an input speech vector s(n), is then applied to the coefficient analyzer 110. This input speech vector s(n) is repeatedly obtained in separate frames, i.e. in time blocks whose length is determined by the frame clock FC. In the preferred embodiment, the input speech vector s(n), with 0 ≤ n ≤ N-1, represents a 7.5 ms frame containing 60 samples, each sample represented by 12 to 16 bits of digital code. In this embodiment, for each speech block, a set of linear predictive coding (LPC) parameters are generated by the coefficient analyzer 110 in an open loop configuration. The short-term prediction parameters ct1, the long-term prediction coefficient β, the long-term prediction lag nominal parameter L, the weighting filter parameters WFP, and the excitation gain factor γ are applied (together with the best excitation codeword I, as described later) to the multiplexer 150 and sent over the channel for use by the speech synthesizer. For representative methods of generating these parameters for this implementation, see the article entitled "Predictive Coding of Speech at Low Bit Rates," IEEE Trans. Commun., vol. COM-30, pp. 600-14, April 1982, by BS Atal. The input speech vector s(n) is also applied to the subtractor 130, the operation of which is described below.

Der Codebuch-ROM 120 enthält einen Satz von M Anregungsvektoren u1(n), wobei 1 ≤ i ≤ M, die jeweils N Abtastungen enthalten, wobei 0 ≤ n ≤ N-1. Der Codebuch-ROM 120 erzeugt diese pseudozufälligen Anregungsvektoren in Reaktion auf ein spezielles Anregungscodewort aus einem Satz Anregungscodewörter i. Jeder der M Anregungsvektoren enthält eine Folge zufälliger weißer Gaußscher Abtastungen, obwohl in der vorliegenden Erfindung weitere Arten von Anregungsvektoren verwendet werden können. Wenn das Anregungssignal bei einer Rate von 0,2 Bits pro Abtastung für jede der 60 Abtastungen codiert werden würde, dann gäbe es 4096 Codewärter i, die den möglichen Anregungsvektoren entsprechen.The codebook ROM 120 contains a set of M excitation vectors u1(n), where 1 ≤ i ≤ M, each containing N samples, where 0 ≤ n ≤ N-1. The codebook ROM 120 generates these pseudorandom excitation vectors in response to a particular excitation codeword from a set of excitation codewords i. Each of the M excitation vectors contains a sequence of random white Gaussian samples, although other types of excitation vectors may be used in the present invention. If the excitation signal is sampled at a rate of 0.2 bits per sample for each of the 60 samples , then there would be 4096 code words i corresponding to the possible excitation vectors.

Für jeden einzelnen Anregungsvektor ui(n) wird ein rekonstruierter Sprachvektor s'i(n) für den Vergleich mit dem Eingangssprachvektor s(n) erzeugt. Der Verstärkungsblock 122 skaliert den Anregungsvektor u1(n) mit dem Anregungsverstärkungsfaktor γ, der für den Rahmen konstant ist. Der Anregungsverstärkungsfaktor γ kann durch den Koeffizientenanalysator 110 im voraus berechnet werden und kann verwendet werden, um alle Anregungsvektoren zu analysieren, wie in Fig. 1 gezeigt ist, oder kann gemeinsam mit der Suche nach dem besten Anregungscoclewort, I optimiert und durch die Steuereinheit 140 der Codebuchsuche erzeugt werden.For each individual excitation vector ui(n), a reconstructed speech vector s'i(n) is generated for comparison with the input speech vector s(n). The gain block 122 scales the excitation vector u1(n) with the excitation gain factor γ, which is constant for the frame. The excitation gain factor γ may be pre-calculated by the coefficient analyzer 110 and may be used to analyze all excitation vectors as shown in Figure 1, or may be optimized along with the search for the best excitation code word, I, and generated by the codebook search control unit 140.

Das skalierte Anregungssignal γui(n) wird nachfolgend durch das Langzeitfilter 124 und das Kurzzeitfilter 126 gefiltert, um den rekonstruierten Sprachvektor s'i(n) zu erzeugen. Das Filter 124 verwendet die Parameter β und L der Langzeitvorhersage, um die Sprachperiodizität einzubringen, und das Filter 126 verwendet die Parameter αi der Kurzzeitvorhersage, um die spektrale Umhüllende einzubringen, wie obenstehend beschrieben ist. Das Langzeitfilter 124 wird in den nachfolgenden Figuren detailliert beschrieben. Es wird angemerkt, daß die Blöcke 124 und 126 tatsächlich rekursive Filter sind, die in ihren jeweiligen Rückkopplungswegen die Langzeitvorhersageeinrichtung und die Kurzzeitvorhersageeinrichtung enthalten.The scaled excitation signal γui(n) is subsequently filtered by the long-term filter 124 and the short-term filter 126 to produce the reconstructed speech vector s'i(n). The filter 124 uses the parameters β and L of the long-term prediction to introduce the speech periodicity and the filter 126 uses the parameters αi of the short-term prediction to introduce the spectral envelope, as described above. The long-term filter 124 is described in detail in the following figures. It is noted that the blocks 124 and 126 are actually recursive filters containing the long-term predictor and the short-term predictor in their respective feedback paths.

Der rekonstruierte Sprachvektor s'i(n) für den i-ten Anregungscodevektor wird mit dem gleichen Block des Eingangsprachvektors s(n) verglichen, indem diese zwei Signale im Subtrahierer 130 subtrahiert werden. Der Differenzvektor ei(n) stellt die Differenz zwischen den ursprünglichen und den rekonstruierten Sprachblöcken dar. Der Differenzvektor wird wahrnehmbar durch das Wichtungsfilter 132 gewichtet, indem die durch den Koeffizientenanalysator 110 erzeugten Parameter WTP des Wichtungsfilters verwendet werden. Bezüglich einer repräsentativen Übertragungsfunktion des Wichtungsfilters siehe die vorhergehende Referenzangabe. Die Wahrnehmungswichtung hebt jene Frequenzen hervor, bei denen der Fehler für das menschliche Ohr deutlicher wahrnehmbar ist, und dämpft andere Frequenzen.The reconstructed speech vector s'i(n) for the i-th excitation codevector is compared with the same block of the input speech vector s(n) by subtracting these two signals in the subtractor 130. The difference vector ei(n) represents the difference between the original and the reconstructed speech blocks. The difference vector is perceptually weighted by the weighting filter 132 using the weighting filter parameters WTP generated by the coefficient analyzer 110. For a representative transfer function of the weighting filter, see the previous reference. The perceptual weighting emphasizes those frequencies at which the error is more noticeable to the human ear and attenuates other frequencies.

Die Energieberechnungseinrichtung 134 berechnet die Energie des gewichteten Differenzvektors e'i(n), und liefert dieses Fehlersignal Ei an die Steuereinheit 140 der Codebuchsuche. Die Suchsteuereinheit vergleicht das i-te Fehlersignal für den vorhandenen Anregungsvektor ui(n) mit früheren Fehlersignalen, um den Anregungsvektor zu bestimmen, der den minimalen Fehler erzeugt. Der Code des i-ten Anregungsvektors, der einen minimalen Fehler aufweist, wird dann über den Kanal als der beste Anregungscode I ausgegeben. Alternativ kann die Suchsteuereinheit 140 ein spezielles Codewort bestimmen, das ein Fehlersignal erzeugt, das einige vorgegebene Kriterien aufweist, das beispielsweise einen vorgegebenen Fehlerschwellenwert einhält.The energy calculator 134 calculates the energy of the weighted difference vector e'i(n) and provides this error signal Ei to the codebook search control unit 140. The search control unit compares the i-th error signal for the existing excitation vector ui(n) with previous error signals to determine the excitation vector that produces the minimum error. The code of the i-th excitation vector that has a minimum error is then output over the channel as the best excitation code I. Alternatively, the search control unit 140 may determine a special code word that produces an error signal that has some predetermined criteria, for example that satisfies a predetermined error threshold.

Fig. 1 erläutert eine Ausführung der Erfindung für einen linearen Vorhersagesprachcodierer mit Codeanregung. In dieser Ausführung werden die Parameter L und β des Langzeitfilters in einer Konfiguration mit offener Schleife durch den Koeffizientenanalysator 110 bestimmt. Alternativ können die Parameter des Langzeitfilters in einer Konfiguration mit geschlossener Schleife bestimmt werden, wie in der zuvor erwähnten Referenz von Singhal und Atal beschrieben ist. Allgemein ist die Leistungsfähigkeit des Sprachcodierers durch die Verwendung von Parametern des Langzeitfilters, die in der Konfiguration mit geschlossener Schleife bestimmt werden, verbessert. Die neuartige Struktur der Langzeitvorhersageeinrichtung gemäß der vorliegenden Erfindung vereinfacht die Verwendung dieser mit geschlossener Schleife bestimmten Parameter für Nachläufe L, die kleiner als die Rahmenlänge N sind, stark.Fig. 1 illustrates an embodiment of the invention for a linear predictive speech coder with code excitation. In this embodiment, the long-term filter parameters L and β are determined in an open-loop configuration by the coefficient analyzer 110. Alternatively, the long-term filter parameters may be determined in a closed-loop configuration as described in the previously mentioned reference by Singhal and Atal. In general, the performance of the speech coder is improved by using long-term filter parameters determined in the closed-loop configuration. The novel structure of the long-term predictor according to the present invention greatly simplifies the use of these closed-loop parameters for lags L that are smaller than the frame length N.

Fig. 2 erläutert eine Ausführung des Langzeitfilters 124 von Fig. 1, wobei L als ganzzahlig vorausgesetzt wird. Obwohl Fig. 1 zeigt, daß der skalierte Anregungsvektor γu±(n) vom Verstärkerblock 122 in den Langzeitfilter 124 eingegeben wird, ist in Fig. 2A für den Zweck der Erläuterung ein beispielhafter Eingangssprachvektor s(n) verwendet worden. Deswegen wird ein Rahmen mit N Abtastungen des Eingangssprachvektors s(n) an den Addierer 210 angelegt. Der Ausgang des Addierers 210 erzeugt den Ausgangsvektor b(n) für das Langzeitfilter 124. Der Ausgangsvektor b(n) wird zum Verzögerungsblock 230 der Langzeitvorhersageeinrichtung zurückgeführt. Der nominale Nachlaufparameter L der Langzeitvorhersageeinrichtung wird ebenfalls in den Verzögerungsblock 230 eingegeben. Der Verzögerungsblock der Langzeitvorhersageeinrichtung liefert den Ausgangsvektor q(n) an den Langzeitvorhersage-Multipliziererblock 220, der das Langzeitvorhersageverhalten mit dem Koeffizienten β der Langzeitvorhersage skaliert. Der skalierte Ausgang βq(n) wird dann an den Addierer 210 geliefert, um die Rückkopplungsschleife des rekursiven Filters zu schließen.Fig. 2 illustrates an embodiment of the long-term filter 124 of Fig. 1, where L is assumed to be an integer. Although Fig. 1 shows that the scaled excitation vector γu±(n) is input to the long-term filter 124 from the amplifier block 122, an exemplary input speech vector s(n) has been used in Fig. 2A for the purpose of explanation. Therefore, a frame of N samples of the input speech vector s(n) is applied to the adder 210. The output of the adder 210 produces the output vector b(n) for the long-term filter 124. The output vector b(n) is fed back to the long-term predictor delay block 230. The long-term predictor's nominal lag parameter L is also input to the delay block 230. The long-term predictor delay block provides the output vector q(n) to the long-term predictor multiplier block 220, which scales the long-term predictor response by the long-term predictor coefficient β. The scaled output βq(n) is then provided to the adder 210 to close the recursive filter feedback loop.

Da Ausgangsverhalten Hn(z) des Langzeitfilters 124 ist in der Schreibweise der Z-Transformation definiert als:The output behavior Hn(z) of the long-term filter 124 is defined in the notation of the Z-transformation as:

Hn(z) = 1/1 - βz-[(n + L)/L]L)Hn(z) = 1/1 - βz-[(n + L)/L]L)

wobei n eine Nummer der Abtastungen eines Rahmens ist, der N Abtastungen enthält, mit 0 ≤ n ≤ N-1, b einen Filterkoeffizienten darstellt, L den nominellen Nachlauf oder die Verzögerung der Langzeitvorhersageeinrichtung darstellt, und (n + L)/L die nächstliegende ganze Zahl ist, die kleiner oder gleich (n + L)/L ist. Die Langzeitvorhersageverzögerung (n + L)/L L variiert als eine Funktion der Nummer n der Abtastungen. Somit wird gemäß der vorliegenden Erfindung die tatsächliche Langzeitvorhersageverzögerung zu kL, wobei L der grundlegende oder nominelle Langzeitvorhersagenachlauf ist und k eine ganze Zahl ist, die als eine Funktion der Nummer n der Abtastungen aus der Menge (1, 2, 3, 4, ...) gewählt ist. Dementsprechend ist das Ausgangsverhalten b(n) des Langzeitfilters eine Funktion des nominellen Parameters L des Langzeitvorhersagenachlaufs und des Filterzustands FS, der am Anfang des Rahmens vorhanden ist. Diese Feststellung gilt für alle Werte von L, selbst für den problematischen Fall, wenn der Teilungsnachlauf L kürzer als die Rahmenlänge N ist.where n is a number of samples of a frame containing N samples, with 0 ≤ n ≤ N-1, b represents a filter coefficient, L represents the nominal lag or delay of the long-term predictor, and (n + L)/L is the nearest integer less than or equal to (n + L)/L. The long term prediction delay (n + L)/LL varies as a function of the number n of samples. Thus, according to the present invention, the actual long term prediction delay becomes kL, where L is the basic or nominal long term prediction lag and k is an integer chosen from the set (1, 2, 3, 4, ...) as a function of the number n of samples. Accordingly, the output behavior b(n) of the long term filter is a function of the nominal long term prediction lag parameter L and the filter state FS present at the beginning of the frame. This statement holds for all values of L, even for the problematic case when the pitch lag L is shorter than the frame length N.

Die Funktion des Blocks 230 der Langzeitvorhersageverzögerung besteht darin, zur Vorhersage zukünftiger Abtastungen die momentanen Eingangsabtastungen zu speichern. Fig. 2B stellt eine vereinfachte Darstellung eines Schieberegisters dar, die beim Verständnis der Funktion des Blocks 230 der Langzeitvorhersageverzögerung von Fig. 2A nützlich sein kann. Für die Abtastung Nummer 1, wobei n = 1, wird die momentane Ausgangsabtastung b(n) an den Eingang des Schieberegisters angelegt, der in Fig. 2B auf der rechten Seite gezeigt ist. Für die nächste Abtastung n = 1+1, wird die vorherige Abtastung b(n) nach links ins Schieberegister geschoben. Diese Abtastung wird nun die vorletzte Abtastung b(n - 1). Für die nächste Abtastung n = 1+2 wird eine weitere Abtastung von b(n) in das Register geschoben, und die ursprüngliche Abtastung wird wiederum nach links verschoben, und wird die vorletzte Abtastung b(n-2). Nachdem L Abtastungen hineingeschoben worden sind, ist die ursprüngliche Abtastung L-mal nach links verschoben worden, so daß sie als b(n - L) dargestellt werden kann.The function of the long-term prediction delay block 230 is to store the current input samples for predicting future samples. Figure 2B shows a simplified representation of a shift register that may be useful in understanding the function of the long-term prediction delay block 230 of Figure 2A. For sample number 1, where n = 1, the current output sample b(n) is applied to the input of the shift register shown on the right in Figure 2B. For the next sample n = 1+1, the previous sample b(n) is shifted to the left in the shift register. This sample now becomes the second to last sample b(n - 1). For the next sample n = 1+2, another sample of b(n) is shifted into the register, and the original sample is again shifted left, becoming the second-to-last sample b(n-2). After L samples have been shifted in, the original sample has been shifted left L times, so it can be represented as b(n - L).

Wie oben erwähnt ist, ist der Nachlauf L typischerweise die Teilungsperiode der stimmhaften Sprache oder ein Vielfaches davon. Wenn der Nachlauf L zumindest so lang ist wie die Rahmenlänge N, ist eine ausreichende Anzahl von vergangenen Abtastungen hineingeschoben und gespeichert worden, um den nächsten Sprachrahmen vorherzusagen. Selbst in dem extremen Fall, wenn L = N mit n = N-1, wird b(n - L) gleich b(-1) sein, was wirklich eine vergangene Abtastung ist. Deswegen würde die Abtastung b(n - L) aus dem Schieberegister als die Ausgangsabtastung q(n) ausgegeben.As mentioned above, the lag L is typically the pitch period of the voiced speech or a multiple of it. If the lag L is at least as long as the frame length N, a sufficient number of past samples have been shifted in and stored to predict the next frame of speech. Even in the extreme case when L = N with n = N-1, b(n - L) will be equal to b(-1), which is truly a past sample. Therefore, the sample b(n - L) would be output from the shift register as the output sample q(n).

Wenn jedoch der Parameter L des Langzeitvorhersagenachlaufs kleiner als die Rahmenlänge N ist, dann würde am Beginn des nächsten Rahmens eine nicht ausreichende Anzahl von Abtastungen in das Schieberegister hineingeschoben worden sein. Wird das obenstehende Beispiel einer Teilungsperiode von 250 Hz verwendet, ist der Teilungsnachlauf L gleich 32. Wenn L = 32 und N = 60 sind, und n = N - 1 = 59, würde b(n - L) normalerweise gleich b(2'7) sein, was in bezug auf den Beginn eines Rahmens mit 60 Abtastungen eine zukünftige Abtastung darstellt. Mit anderen Worten sind nicht genug vergangene Abtastungen gespeichert worden, um ein vollständiges Langzeitvorhersageverhalten zu schaffen. Das vollständige Langzeitvorhersageverhalten wird am Beginn des Rahmens benötigt, so daß die Analyse mit geschlossener Schleife der Vorhersageparameter durchgeführt werden kann. In diesem Fall werden gemäß der vorliegenden Erfindung die gleichen gespeicherten Abtastungen b(n - L), 0 ≤ n ≤ L, wiederholt, so daß das Ausgangsverhalten der Langzeitvorhersage immer eine Funktion der Abtastungen ist, die vor dem Beginn eines neuen Rahmens in den Block der Langzeitvorhersageverzögerung eingegeben wurden. In bezug auf Fig. 2b ist das Schieberegister deswegen erweitert worden, um weitere kL Abtastungen zu speichern, die eine Modifizierung der Struktur des Blocks 230 der Langzeitvorhersageverzögerung darstellen. Da sich das Schieberegister mit neuen Abtastungen b(n) füllt, muß deswegen k in der Weise gewählt werden, damit b(n - kL) eine Abtastung darstellt, die vor dem Beginn des Rahmens im Schieberegister vorhanden war. Bei Verwendung des früheren Beispiels von L = 32 und N = 60, würde die Ausgangsabtastung q(32) eine Wiederholung der Abtastung q(0) sein, wobei b (0 - L) = b (32 - 2L) oder b(-32).However, if the long term prediction lag parameter L is less than the frame length N, then at the beginning of the next frame an insufficient number of samples would have been shifted into the shift register. Using the above example of a 250 Hz division period, the division lag L is 32. If L = 32 and N = 60, and n = N - 1 = 59, b(n - L) would normally be equal to b(2'7), which represents a future sample with respect to the beginning of a 60 sample frame. In other words, not enough past samples have been stored to provide complete long term prediction performance. Complete long term prediction performance is needed at the beginning of the frame so that closed loop analysis of the prediction parameters can be performed. In this case, according to the present invention, the same stored samples b(n - L), 0 ≤ n ≤ L, so that the output behavior of the long-term prediction is always a function of the samples that were input to the long-term prediction delay block before the start of a new frame. With reference to Fig. 2b, the shift register has therefore been extended to store additional kL samples, which represent a modification of the structure of the long-term prediction delay block 230. Since the Therefore, when the framer fills the shift register with new samples b(n), k must be chosen such that b(n - kL) represents a sample that was present in the shift register before the start of the frame. Using the earlier example of L = 32 and N = 60, the output sample q(32) would be a repeat of sample q(0), where b(0 - L) = b(32 - 2L) or b(-32).

Somit würde das Ausgangsverhalten q(n) des Blocks 230 der LangzeitvorhersageverzögerungThus, the output behavior q(n) of block 230 would be the long-term prediction delay

Q (n) = b (n - kL)Q (n) = b (n - kL)

entsprechen, wobei 0 ≤ n ≤ N - 1 und k als die kleinste ganze Zahl gewählt ist, so daß (n - kL) negativ ist. Genauer, wenn ein Rahmen mit N Abtastungen s(n) in das Langzeitvorhersagefilter 124 eingegeben wird, gilt für jede Abtastungszahl n j ≤ n ≤ N + j - 1, wobei j der Index für die erste Abtastung eines Rahmens mit N Abtastungen ist. Somit würde sich die Variable k so verändern, daß (n - kL) immer kleiner als j ist. Dies sichert, daß die Langzeitvorhersageeinrichtung zur Vorhersage des Ausgangsverhaltens lediglich Abtastungen verwendet, die vor dem Beginn des Rahmens zur Verfügung stehen.where 0 ≤ n ≤ N - 1 and k is chosen as the smallest integer such that (n - kL) is negative. More specifically, if a frame of N samples s(n) is input to the long-term prediction filter 124, for each sample number n, j ≤ n ≤ N + j - 1, where j is the index for the first sample of a frame of N samples. Thus, the variable k would change such that (n - kL) is always less than j. This ensures that the long-term predictor only uses samples available before the start of the frame to predict the output behavior.

Die Funktion des Langzeitfilters 124 von Fig. 2A wird nun gemäß dem Ablaufdiagramm von Fig. 3 beschrieben. Beginnend am Schritt 350 wird im Schritt 351 die Abtastungszahl n auf null initialisiert. Der nominelle Parameter L des Langzeitvorhersagenachlauf und der Koeffizient β der Langzeitvorhersage werden im Schritt 352 vom Koeffizientenanalysator 110 eingegeben. Im Schritt 353 wird die Abtastungszahl n geprüft, um festzustellen, ob ein gesamter Rahmen ausgegeben worden ist. Wenn n ≥ N, endet die Operation am Schritt 361. Wenn noch nicht alle Abtastungen berechnet worden sind, wird im Schritt 354 eine Signalabtastung s(n) eingegeben. Im Schritt 355 wird das Ausgangsverhalten des Blocks 230 der Langzeitvorhersageverzögerung gemäß der GleichungThe operation of the long-term filter 124 of Fig. 2A will now be described according to the flow chart of Fig. 3. Beginning at step 350, the sample number n is initialized to zero in step 351. The nominal long-term prediction lag parameter L and the long-term prediction coefficient β are input from the coefficient analyzer 110 in step 352. In step 353, the sample number n is checked to determine if an entire frame has been output. If n ≥ N, the operation ends at step 361. If all samples have not yet been calculated, a signal sample s(n) is input in step 354. In step 355, the output behavior of the block 230 of the long-term prediction delay is determined according to the equation

q(n) = b(n - (n + L)/L L)q(n) = b(n - (n + L)/L L)

berechnet, wobei (n + L)/L die nächste ganze Zahl ist, die kleiner oder gleich (n + L)/L ist. Wenn zum Beispiel n = 56 und N = 32, dann wird L(n + L)/Li zu (56+32)/32 L, was (2,75) L ist oder 2L. Im Schritt 356 wird das Ausgangsverhalten b(n) des Langzeitfilters gemäß der Gleichungwhere (n + L)/L is the next integer that is less than or equal to (n + L)/L. For example, if n = 56 and N = 32, then L(n + L)/Li becomes (56+32)/32 L, which is (2.75) L or 2L. In step 356, the output response b(n) of the long-term filter is calculated according to the equation

b (n) = βq (n) + s (n)b (n) = βq (n) + s (n)

berechnet. Dies stellt die Funktion des Multiplizierers 220 und des Addierers 210 dar. Im Schritt 357 wird die Abtastung im Schieberegister für alle Speicherstellen im Register zwischen b (n - 2) und b (n - LMAX) um eine Position nach links verschoben, wobei LMAX den maximalen Langzeitvorhersagenachlauf darstellt, der zugewiesen werden kann. In der bevorzugten Ausführung würde LMAX gleich 143 sein. Im Schritt 358 wird die Ausgangsabtastung b(n) in die erste Stelle b(n - 1) der Schieberegisters eingegeben. Der Schritt 359 gibt die gefilterte Abtastung b(n) aus. Die Nummer der Abtastung n wird dann im Schritt 360 erhöht und im Schritt 353 geprüft. Wenn alle N Abtastungen berechnet worden sind, endet der Vorgang im Schritt 361.This represents the function of multiplier 220 and adder 210. In step 357, the sample in the shift register is shifted left one position for all locations in the register between b(n - 2) and b(n - LMAX), where LMAX represents the maximum long-term prediction lag that can be assigned. In the preferred embodiment, LMAX would be equal to 143. In step 358, the output sample b(n) is input to the first location b(n - 1) of the shift register. Step 359 outputs the filtered sample b(n). The sample number n is then incremented in step 360 and checked in step 353. When all N samples have been calculated, the process ends in step 361.

Fig. 2C ist eine alternative Ausführung eines Langzeitfilters, der die vorliegende Erfindung beinhaltet. Das Filter 124' ist die vorwärtsgeregelte inverse Version der rekursiven Filterkonfiguration von Fig. 2A. Der Eingangsvektor s(n) wird sowohl an den Subtrahierer 240 als auch an den Block 260 der Langzeitvorhersageverzögerung angelegt. Der verzögerte Vektor q(n) wird an den Multiplizierer 250 ausgegeben, der den Vektor mit dem Koeffizienten β der Langzeitvorhersage skaliert. Das Ausgangsverhalten Hn(z) des digitalen Filters 124' ist in der Schreibweise der z-Transformation alsFig. 2C is an alternative embodiment of a long-term filter incorporating the present invention. The filter 124' is the feedforward inverse version of the recursive filter configuration of Fig. 2A. The input vector s(n) is applied to both the subtractor 240 and the long-term prediction delay block 260. The delayed vector q(n) is output to the multiplier 250, which scales the vector by the long-term prediction coefficient β. The output response Hn(z) of the digital filter 124' is written in z-transform notation as

Hn(z) = 1 - βz (n + L)/L LHn(z) = 1 - βz (n + L)/LL

gegeben, wobei n die Nummer der Abtastung eines Rahmens bezeichnet, der N Abtastungen enthält, mit 0 ≤ n ≤ N - 1, β den Koeffizienten des Langzeitfilters darstellt, und L(n + L)/Li die nächste ganze Zahl darstellt, die kleiner oder gleich (n + L)/L) ist. Das Ausgangssignal b(n) des Filters 124' kann ebenfalls durch das Eingangssignal s(n) ausgedrückt werden als:where n denotes the number of the sample of a frame containing N samples, with 0 ≤ n ≤ N - 1, β represents the coefficient of the long-term filter, and L(n + L)/Li represents the next integer less than or equal to (n + L)/L). The output signal b(n) of the filter 124' can also be expressed in terms of the input signal s(n) as:

b(n) = s(n) -βs(n - (n + L)/L L)b(n) = s(n) -βs(n - (n + L)/L L)

für 0 ≤ n ≤ N - 1. Fachmännern ist selbstverständlich, daß die Struktur der Langzeitvorhersageeinrichtung wiederum modifiziert wurde, um in dem Fall, wenn der Langzeitvorhersagenachlauf L kleiner als die Rahmenlänge N ist, wiederholt die gleichen gespeicherten Abtastungen der Langzeitvorhersageeinrichtung auszugeben.for 0 ≤ n ≤ N - 1. Those skilled in the art will appreciate that the structure of the long-term predictor has again been modified to repeatedly output the same stored samples of the long-term predictor in the case where the long-term prediction lag L is less than the frame length N.

In Fig. 5 ist die bevorzugten Ausführung des Langzeitfilters 124 von Fig. 1 erläutert, die für den Nachlaufparameter L eine Subabtastauflösung ermöglicht. Ein Rahmen mit N Abtastungen des Eingangssprachvektors s(n) wird an den Addierer 510 angelegt. Der Ausgang des Addierers 510 erzeugt den Ausgangsvektor b(n) für das Langzeitfilter 124. Der Ausgangsvektor b(n) wird zum Generatorblock 530 des verzögerten Vektors der Langzeitvorhersageeinrichtung zurückgeführt. Der nominelle Parameter L des Langzeitvorhersagenachlaufs wird ebenfalls in den Generatorblock 530 des verzögerten Vektors eingegeben. Der Parameter L des Langzeitvorhersagenachlaufs kann nicht ganzzahlige Werte annehmen. Die bevorzugte Ausführung läßt zu, daß L Werte annehmen kann, die ein Vielfaches von einem Halbem sind. Alternative Realisierungen der Langzeitvorhersageeinrichtung mit Subabtastauflösung der vorliegenden Erfindung könnten Werte zulassen, die Vielfache von einem Drittel oder einem Viertel oder irgendeinem weiteren rationalen Bruch sind.Figure 5 illustrates the preferred embodiment of the long-term filter 124 of Figure 1 which allows sub-sample resolution for the lag parameter L. A frame of N samples of the input speech vector s(n) is applied to the adder 510. The output of the adder 510 produces the output vector b(n) for the long-term filter 124. The output vector b(n) is fed back to the long-term predictor delayed vector generator block 530. The nominal long-term prediction lag parameter L is also fed to the delayed vector generator block 530. The long-term prediction lag parameter L can take non-integer values. The preferred embodiment allows L to take values that are multiples of one-half. Alternative implementations of the sub-sample resolution long-term forecaster of the present invention could allow values that are multiples of one-third or one-quarter or some other rational fraction.

In der bevorzugten Ausführung enthält der Generator 530 des verzögerten Vektors einen Speicher, der die vergangenen Abtastungen von b(n) hält. Außerdem werden durch den Generator 530 des verzögerten Vektors ebenfalls interpolierte Abtastungen von b(n) berechnet und in seinem Speicher gespeichert. In der bevorzugten Ausführung beinhaltet der Zustand der Langzeitvorhersageeinrichtung, der im Generator 530 des verzögerten Vektors enthalten ist, für jede gespeicherte Abtastung von b(n) zwei Abtastungen. Eine Abtastung ist für b (n) und die andere Abtastung stellt eine interpolierte Abtastung zwischen zwei aufeinanderfolgenden b(n)-Abtastungen dar. Auf diese Weise können vom Generator 530 des verzögerten Vektors Abtastungen von b(n) erhalten werden, die ganzzahligen Verzögerungen oder Vielfachen von halben Abtastverzögerungen entsprechen. Die Interpolation erfolgt unter Verwendung des interpolierenden Filters mit endlichem Impulsverhalten, das in dem Buch von R. Crochiere und L. Rabiner mit dem Titel "Multirate Digital Signal Processing" beschrieben ist, herausgegeben durch Prentice Hall 1983. Die Funktion des Generators 530 des verzögerten Vektors wird nachfolgend detailliert in Verbindung mit den Ablaufdiagrammen in den Fig. 6A und βE beschrieben.In the preferred embodiment, the delayed vector generator 530 includes a memory that holds the past samples of b(n). In addition, interpolated samples of b(n) are also calculated by the delayed vector generator 530 and stored in its memory. In the preferred embodiment, the long-term predictor state contained in the delayed vector generator 530 includes two samples for each stored sample of b(n). One sample is for b(n) and the other sample represents an interpolated sample between two consecutive b(n) samples. In this way, samples of b(n) corresponding to integer delays or multiples of half sample delays can be obtained from the delayed vector generator 530. The interpolation is performed using the finite impulse response interpolating filter described in the book by R. Crochiere and L. Rabiner entitled "Multirate Digital Signal Processing" published by Prentice Hall in 1983. The operation of the delayed vector generator 530 is described in detail below in connection with the timing diagrams in Figs. 6A and βE.

Der Generator 530 des verzögerten Vektors liefert den Ausgangsvektor q(n) an den Langzeitmultipliziererblock 520, der das Langzeitvorhersageverhalten mit dem Koeffizienten β der Langzeitvorhersage skaliert. Der skalierte Ausgang βq(n) wird dann an den Addierer 510 angelegt, um die Rückkopplungsschleife des rekursiven Filters 124 in Fig. 5 zu schließen.The delayed vector generator 530 provides the output vector q(n) to the long-term multiplier block 520, which scales the long-term prediction response by the long-term prediction coefficient β. The scaled output βq(n) is then applied to the adder 510 to close the feedback loop of the recursive filter 124 in Figure 5.

In Fig. 6A und 6B sind detaillierte Ablaufdiagramme erläutert, die Funktionen darstellen, die durch das Langzeitfilter von Fig. 5 ausgeführt werden. Gemäß der bevorzugten Ausführung der vorliegenden Erfindung wird die Auflösung des Langzeitvorhersagespeichers erweitert, indem eine N-Punkt-Folge b(n) auf einen 2N-Punkt-Vektor ex(i) abgebildet wird. Die negativ indizierten Abtastungen von ex(i) enthalten die vergangenen Werte der erweiterten Auflösung des Langzeitfilterausgangs b(n) oder die Langzeithistorie der erweiterten Auflösung. Der Abbildungsvorgang verdoppelt jedes Mal, wenn er adressiert wird, die temporäre Auflösung des Langzeitvorhersagespeichers. Hier ist zur Einfachheit eine einstufige Abbildung beschrieben, obwohl in weiteren Ausführungen der vorliegenden Erfindung zusätzliche Stufen realisiert werden können.In Fig. 6A and 6B, detailed flow diagrams are illustrated that illustrate functions performed by the long-term filter of Fig. 5. According to the preferred embodiment of the present invention, the resolution of the long-term prediction memory is extended by an N-point sequence b(n) is mapped to a 2N-point vector ex(i). The negatively indexed samples of ex(i) contain the past values of the extended resolution of the long-term filter output b(n) or the long-term history of the extended resolution. The mapping process doubles the temporal resolution of the long-term prediction memory each time it is addressed. A single-stage mapping is described here for simplicity, although additional stages may be implemented in further embodiments of the present invention.

Beginnend in Fig. 6A beim START-Schritt 602 geht das Ablaufdiagramm zum Schritt 604 über, wo L, β und s(n) eingegeben werden. Im Schritt 608 wird der Vektor q(n) gemäß der GleichungBeginning in Fig. 6A at START step 602, the flowchart proceeds to step 604 where L, β and s(n) are input. In step 608, the vector q(n) is calculated according to the equation

q(n) = ex(2n - 2L (n + L)/L )q(n) = ex(2n - 2L (n + L)/L )

für 0 ≤ n ≤ N - 1for 0 ≤ n ≤ N - 1

aufgebaut, wobei (n + L)/L die nächste ganzzahlige Zahl darstellt, die kleiner oder gleich (n + L)/L ist und L der Langzeitvorhersagenachlauf ist. Für stimmhafte Sprache kann der Langzeitvorhersagenachlauf L die Teilungsperiode oder ein Vielfaches der Teilungsperiode sein. L kann ganzzahlig sein oder eine reelle Zahl, deren Bruchteil in der bevorzugten Ausführung 0,5 ist. Wenn der Bruchteil von L 0,5 ist, besitzt L eine effektive Auflösung von einer halben Abtastung.where (n + L)/L represents the next integer number less than or equal to (n + L)/L and L is the long-term prediction lag. For voiced speech, the long-term prediction lag L may be the pitch period or a multiple of the pitch period. L may be an integer or a real number whose fractional part is 0.5 in the preferred implementation. If the fractional part of L is 0.5, L has an effective resolution of half a sample.

Im Schritt 610 wird der Vektor b(n) des Langzeitfilters gemäß der GleichungIn step 610, the vector b(n) of the long-term filter is calculated according to the equation

b (n) = βq (n) + s (n)b (n) = βq (n) + s (n)

für 0 ≤ n ≤ N - 1for 0 ≤ n ≤ N - 1

berechnet.calculated.

Im Schritt 612 wird der Vektor b(n) des Langzeitfilters ausgegeben. Im Schritt 614 wird der Zustand der erweiterten Auflösung ex(n) aktualisiert, um die interpolierten Werte von b(n) zu berechnen und im Speicher des Generators 530 des verzögerten Vektors zu speichern. Der Schritt 614 ist in der Fig. 6B genauer erläutert. Nachfolgend ist der Vorgang im Schritt 616 abgeschlossen und stoppt.In step 612, the vector b(n) of the long-term filter is output. In step 614, the state of the extended Resolution ex(n) is updated to calculate the interpolated values of b(n) and store them in the memory of the delayed vector generator 530. Step 614 is explained in more detail in Figure 6B. Subsequently, the process is completed in step 616 and stops.

In der Fig. 6B beim START-Schritt 622 beginnend, geht das Ablaufdiagramm zum Schritt 624 über, wo die Abtastungen in ex(i), die in diesem Subrahmen zu berechnen sind, auf Null gesetzt werden, ex(i) = 0 für i = -M, -M + 2, ... 2N - 1, wobei M für ein interpolierendes Filter der Ordnung 2M + 1 als ungeradzahlig gewählt ist. Wenn zum Beispiel die Ordnung des Filters 39 beträgt, ist M 19. Obwohl M zur Einfachheit ungeradzahlig gewählt ist, kann M ebenfalls geradzahlig sein. Im Schritt 626 wird jede weitere Abtastung von ex(i) für i = 0,2, ..., 2(N - 1) mit den Abtastungen von b(n) gemäß der GleichungBeginning in Figure 6B at START step 622, the flowchart proceeds to step 624 where the samples in ex(i) to be computed in this subframe are set to zero, ex(i) = 0 for i = -M, -M + 2, ... 2N - 1, where M is chosen to be odd for an interpolating filter of order 2M + 1. For example, if the order of the filter is 39, M is 19. Although M is chosen to be odd for simplicity, M can also be even. In step 626, each subsequent sample of ex(i) for i = 0,2, ..., 2(N - 1) is compared with the samples of b(n) according to the equation

ex (2i) = b (i)ex (2i) = b (i)

für i = 0, 1, ..., N-1for i = 0, 1, ..., N-1

initialisiert. Somit enthält ex(i) für i = 0, 1, ..., N-1 nun den Ausgangsvektor b(n) für den momentanen Rahmen, der auf seine geraden Indizes abgebildet ist. während die ungeraden Indizes von ex(i) für i = 1, 3, ..., 2(N - 1) + 1 mit Nullen initialisiert sind.initialized. Thus, ex(i) for i = 0, 1, ..., N-1 now contains the output vector b(n) for the current frame mapped to its even indices. while the odd indices of ex(i) for i = 1, 3, ..., 2(N - 1) + 1 are initialized with zeros.

Im Schritt 628 werden die auf Null initialisierten interpolierten Abtastungen von ex(i) durch FIR-Interpolation rekonstruiert, indem unter der Annahme, daß, wie obenstehend erläutert ist, die Ordnung eines solchen FIR-Filters 2M+1 ist, ein symmetrisches, Null-Phasenschiebefilter verwendet wird. Die FIR-Filterkoeffizienten sind a(j), wobei j = -M, -M + 2, ..., M - 1, M und a(j) = a(-j). Nur gerade Abtastungen, von denen gezeigt ist, daß sie die FIR-Filterabgriffe sind, werden bei der Abtastungsrekonstruktion verwendet, da ungerade Abtastungen auf Null gesetzt worden sind. Als Ergebnis werden tatsächlich M+1 Abtastungen anstatt von 2M + 1 Abtastungen für jede rekonstruierte Abtastung gewichtet und summiert. Die FIR-Interpolation wird gemäß der GleichungIn step 628, the zero-initialized interpolated samples of ex(i) are reconstructed by FIR interpolation using a symmetric, zero phase shift filter, assuming that, as explained above, the order of such an FIR filter is 2M+1. The FIR filter coefficients are a(j), where j = -M, -M + 2, ..., M - 1, M and a(j) = a(-j). Only even samples, which are shown to be the FIR filter taps, are used in the sample reconstruction, since odd samples have been set to zero. As As a result, M+1 samples are actually weighted and summed instead of 2M + 1 samples for each reconstructed sample. The FIR interpolation is performed according to the equation

ex(i) = a2j - 1[ex(i - 2j + 1) + ex(i + 2j - 1)]ex(i) = a2j - 1[ex(i - 2j + 1) + ex(i + 2j - 1)]

für i = -M, -M + 2, ..., 2(N - 1) - M - 2, 2(N - 1) - Mfor i = -M, -M + 2, ..., 2(N - 1) - M - 2, 2(N - 1) - M

ausgeführt.executed.

Es wird angemerkt, daß die erste Abtastung, die zu rekonstruieren ist, ex(-M) ist, und nicht ex(1), wie erwartet werden könnte. Dies ist so, da die interpolierten Abtastungen bei den Indizes -M, -M + 2, ..., -1 in dem vorherigen Rahmen rekonstruiert wurden, indem eine Abschätzung der Anregung im momentanen Rahmen verwendet wurde, da die wirklichen Anregungsabtastungen zu dem Zeitpunkt undefiniert waren. Im momentanen Rahmen sind jene Abtastungen bekannt (b(n) steht zur Verfügung) und somit werden die Abtastungen von ex(i) für i = -M, -M + 2, ..., -1 nun nochmals rekonstruiert, wobei die Filterabgriffe auf die tatsächlichen und nicht auf die abgeschätzten Werte von b(n) zeigen.Note that the first sample to be reconstructed is ex(-M), and not ex(1) as might be expected. This is because the interpolated samples at indices -M, -M + 2, ..., -1 in the previous frame were reconstructed using an estimate of the excitation in the current frame, since the actual excitation samples were undefined at that time. In the current frame, those samples are known (b(n) is available) and so the samples of ex(i) for i = -M, -M + 2, ..., -1 are now reconstructed again with the filter taps pointing to the actual and not the estimated values of b(n).

Der größte Wert von i in der obigen Gleichung ist 2 (N - 1)-M. Dies bedeutet, daß (M + 1)/2 geradzahlige Abtastungen von ex(i) für i = 2N - M, 2N - M + 2, ..., 2(N - 1) + 1 noch zu rekonstruieren sind. Für jene Werte des Indexes i zeigen jedoch die oberen Abgriffe des Interpolationsfilters auf die zukünftigen Abtastungen der Anregung, die bis jetzt noch undefiniert sind. Um die Werte von ex(i) für jene Indizes zu berechnen, wird im Schritt 630 der zukünftige Zustand von ex(i) für 1 = 2N, 2N + 2, ..., 2N + M - 1 durch die BewertungThe largest value of i in the above equation is 2 (N - 1)-M. This means that (M + 1)/2 even samples of ex(i) for i = 2N - M, 2N - M + 2, ..., 2(N - 1) + 1 are still to be reconstructed. However, for those values of index i, the upper taps of the interpolation filter point to the future samples of the excitation, which are as yet undefined. To calculate the values of ex(i) for those indices, in step 630 the future state of ex(i) for 1 = 2N, 2N + 2, ..., 2N + M - 1 is determined by evaluating

ex (i) = λex (i - 2L),ex (i) = λex (i - 2L),

für i = 2N, 2N + 2, ..., 2N + M - 1for i = 2N, 2N + 2, ..., 2N + M - 1

erweitert. Der minimale Wert von 2L, der in diesem Schema zu verwenden ist, beträgt 2M + 1. Diese Einschränkung kann aufgehoben werden, wenn man definiert:The minimum value of 2L to be used in this scheme is 2M + 1. This restriction can be removed by defining:

ex(i) = λex(F(i - 2L)),ex(i) = λex(F(i - 2L)),

für i = 2N, 2N + 2, ..., 2N + M - 1;for i = 2N, 2N + 2, ..., 2N + M - 1;

wobei F(i - 2L) für den Fall, daß i - 2L gleich ungeraden Zahlen ist, durch where F(i - 2L) for the case that i - 2L is equal to odd numbers is given by

gegeben ist und wobei F(i - 2L) für den Fall, daß i - 2L gleich geraden Zahlen ist, durch and where F(i - 2L) for the case that i - 2L is equal to even numbers is given by

gegeben ist. Der Parameter λ, der Skalierungsfaktor der Historieerweiterung, kann mit dem Koeffizienten β der Teilungsvorhersage gleichgesetzt oder auf Eins gesetzt werden.is given. The parameter λ, the scaling factor of the history extension, can be set equal to the coefficient β of the division prediction or set to one.

Wenn die Anregungshistorie auf diese Weise erweitert wurde, werden im Schritt 632 die letzten (M + 2)/2 auf Null gesetzten Abtastungen des momentanen Rahmens mit erweiterter Auflösung unter Verwendung vonIf the excitation history has been extended in this way, in step 632 the last (M + 2)/2 zeroed samples of the current frame are expanded resolution using

ex(i) = 2 a2j - 1[ex(i - 2j + 1) + ex(i + 2j - 1)]ex(i) = 2 a2j - 1[ex(i - 2j + 1) + ex(i + 2j - 1)]

für i = 2N - M, 2N - M + 2, ..., 2(N - 1)+ 1for i = 2N - M, 2N - M + 2, ..., 2(N - 1)+ 1

berechnet. Diese Abtastungen werden beim nächsten Subrahmen neu berechnet, wenn die tatsächlichen Anregungsabtastungen für ex(i), i = 2N, 2N + 2, ..., 2N + M - 1 zur Verfügung stehen.These samples are recalculated at the next subframe when the actual excitation samples for ex(i), i = 2N, 2N + 2, ..., 2N + M - 1 are available.

Auf diese Weise ist b(n) für n = 0, N-1 auf den Vektor ex(i), i = 0, 2, ..., 2(N - 1) abgebildet worden. Die fehlenden auf Null gesetzten Abtastungen sind unter Verwendung eines FIR- Interpolationsfilters rekonstruiert worden. Es ist anzumerken, daß die FIR-Interpolation lediglich auf die fehlenden Abtastungen angewendet wird. Dies sichert, daß keine Verzerrung unnötigerweise in die bekannten Abtastungen eingeführt wird, die bei geradzahligen Indizes von ex(i) gespeichert sind. Dadurch, daß nur die fehlenden Abtastungen verarbeitet werden, besteht ein zusätzlicher Vorteil darin, daß der mit der Interpolation verbundene Rechenaufwand halbiert ist.In this way, b(n) for n = 0, N-1 has been mapped to the vector ex(i), i = 0, 2, ..., 2(N - 1). The missing samples set to zero are calculated using a FIR interpolation filter. Note that the FIR interpolation is only applied to the missing samples. This ensures that no distortion is unnecessarily introduced into the known samples stored at even indices of ex(i). By processing only the missing samples, an additional advantage is that the computational effort associated with the interpolation is halved.

Im Schritt 634 wird schließlich die Langzeitvorhersagehistorie aktualisiert, indem der Inhalt des Anregungsvektors ex(i) mit erweiterter Auflösung um 2N Punkte in Abwärtsrichtung verschoben wird:Finally, in step 634, the long-term prediction history is updated by shifting the content of the excitation vector ex(i) with extended resolution by 2N points in the downward direction:

ex (i) = ex (i + 2N)ex (i) = ex (i + 2N)

für i = -2Max_L, -1for i = -2Max_L, -1

wobei Max L die maximale Langzeitvorhersageverzögerung ist, die verwendet wird.where Max L is the maximum long-term prediction lag used.

In Fig. 4 wird ein Blockschaltbild eines Sprachsynthesizers unter Verwendung des Langzeitfilters der vorliegenden Erfindung erläutert. Der Synthesizer 400 erhält die Parameter αi der Kurzzeitvorhersage, die Parameter β und L der Langzeitvorhersage, den Faktor γ der Anregungsverstärkung sowie das Codewort I, die über den Demultiplexer 450 vom Kanal empfangen werden. Das Codewort I wird an den Codebuch- ROM 420 angelegt, um das Codebuch der Anregungsvektoren zu adressieren. Der einzelne Anregungsvektor u1(n) wird dann im Block 422 mit dem Verstärkungsfaktor γ multipliziert, durch das Langzeitvorhersagefilter 424 und das Kurzzeitvorhersagefilter 426 gefiltert, um den rekonstruierten Sprachvektor s'I(n) zu erhalten. Dieser Vektor, der einen Rahmen rekonstruierter Sprache darstellt, wird dann an den Analog/Digital- (A/D) Wandler 408 angelegt, um ein rekonstruiertes Analogsignal zu erzeugen, das dann zum Reduzieren von Treppeneffekten durch das Filter 404 tiefpaßgefiltert wird und an einen Ausgangsübertrager wie etwa einen Lautsprecher 402 angelegt wird. Somit verwendet der CELP-Synthesizer die gleichen Einrichtungen Codebuch, Verstärkerblock, Langzeitfilter und Kurzzeitfilter wie der CELP-Analysator von Fig. 1.Referring to Fig. 4, a block diagram of a speech synthesizer using the long-term filter of the present invention is illustrated. The synthesizer 400 receives the short-term prediction parameters αi, the long-term prediction parameters β and L, the excitation gain factor γ, and the code word I received from the channel via the demultiplexer 450. The code word I is applied to the code book ROM 420 to address the code book of excitation vectors. The single excitation vector u1(n) is then multiplied by the gain factor γ in block 422, filtered by the long-term prediction filter 424 and the short-term prediction filter 426 to obtain the reconstructed speech vector s'I(n). This vector, which represents a frame of reconstructed speech, is then applied to the analog-to-digital (A/D) converter 408 to produce a reconstructed analog signal, which is then used to reduce staircase effects by filter 404 and applied to an output transformer such as loudspeaker 402. Thus, the CELP synthesizer uses the same codebook, amplifier block, long-term filter and short-term filter devices as the CELP analyzer of Fig. 1.

Fig. 7 ist ein detailliertes Blockschaltbild eines Teilungsnachfilters, das zwischen das Kurzzeitfilter 426 und den D/A- Wandler 408 des Sprachsynthesizers in Fig. 4 geschaltet wird. Ein Teilungsnachfilter verbessert die Sprachgüte durch das Entfernen von Rauschen, das durch die Filter 424 und 426 eingebracht wird. Ein Rahmen mit N Abtastungen des rekonstruierten Sprachvektors s'I(n) wird an den Addierer 710 angelegt. Der Ausgang des Addierers 710 erzeugt den Ausgangsvektor s"I(n) für das Teilungsnachfilter. Der Ausgangsvektor s"I(n) wird zum Generatorblock 730 der verzögerten Abtastung des Teilungsnachfilters zurückgeführt. Der nominelle Parameter L des Langzeitvorhersagenachlaufs wird ebenfalls in den Generatorblock 730 der verzögerten Abtastung eingegeben. L kann in der vorliegenden Erfindung nicht ganzzahlige Werte annehmen. Wenn L nicht ganzzahlig ist, wird ein interpolierendes FIR-Filter verwendet, um die benötigen gebrochenen Abtastungsverzögerungen zu erzeugen. Der Generatorblock 730 der verzögerten Abtastung liefert den Ausgangsvektor q(n) zum Multipliziererblock 720, der das Teilungsnachfilterverhalten mit dem Koeffizienten R skaliert, der eine Funktion des Koeffizienten β der Langzeitvorhersage ist. Der skalierte Ausgangsvektor Rq(n) wird nachfolgend an den Addierer 710 angelegt, um die Rückkopplungsschleife des Teilungsnachfilters in Fig. 7 zu schließen.Figure 7 is a detailed block diagram of a division postfilter connected between the short-term filter 426 and the D/A converter 408 of the speech synthesizer in Figure 4. A division postfilter improves speech quality by removing noise introduced by filters 424 and 426. A frame of N samples of the reconstructed speech vector s'I(n) is applied to the adder 710. The output of the adder 710 produces the output vector s"I(n) for the division postfilter. The output vector s"I(n) is fed back to the delayed sample generator block 730 of the division postfilter. The nominal long-term prediction lag parameter L is also input to the delayed sample generator block 730. L may take non-integer values in the present invention. If L is non-integer, an interpolating FIR filter is used to generate the required fractional sampling delays. The delayed sampling generator block 730 provides the output vector q(n) to the multiplier block 720, which scales the division postfilter response by the coefficient R, which is a function of the long-term prediction coefficient β. The scaled output vector Rq(n) is subsequently applied to the adder 710 to close the feedback loop of the division postfilter in Figure 7.

Durch die Verwendung des Langzeitvorhersageverhaltens gemäß der vorliegenden Erfindung können der Faktor &gamma; der Anregungsverstärkung und der Koeffizient &beta; der Langzeitvorhersage für alle Werte von L in einer Konfiguration mit geschlossener Schleife gleichzeitig optimiert werden. Diese gemeinsame Optimierungstechnik war zuvor für Werte von L < N unmöglich, da die Gleichungen der gemeinsamen Optimierung im Einzelparameter &beta; nichtlinear werden würden. Die vorliegende Erfindung modifiziert die Struktur der Langzeitvorhersageeinrichtung, um eine lineare Gleichung der gemeinsamen Optimierung zu ermöglichen. Die vorliegende Erfindung ermöglicht außerdem, daß der Nachlauf der Langzeitvorhersageeinrichtung eine bessere Auflösung als eine Abtastung aufweist, wodurch ihre Leistungsfähigkeit verbessert wird.By using the long-term prediction behavior according to the present invention, the excitation gain factor γ and the long-term prediction coefficient β can be determined for all values of L in a closed loop configuration. loop simultaneously. This joint optimization technique was previously impossible for values of L < N because the joint optimization equations would become nonlinear in the single parameter β. The present invention modifies the structure of the long-term predictor to allow a linear joint optimization equation. The present invention also allows the long-term predictor's lag to have better resolution than a sample, thereby improving its performance.

Überdies ist die Prozedur der Codebuchsuche weiter vereinfacht worden, da das Nullzustandsverhalten des Langzeitfilters für Nachläufe, die kleiner als die Rahmenlänge sind, Null wird. Dieses zusätzliche Merkmal ermöglicht Fachmännern, den Einfluß des Langzeitfilters aus der Prozedur der Codebuchsuche zu entfernen. Somit ist ein CELP-Sprachcodierer gezeigt worden, der für alle Teilungsraten eine höhere Güte der Sprache schaffen kann, während die Vorteile der praktischen Realisierung und der geringen Bitrate beibehalten werden.Moreover, the codebook search procedure has been further simplified since the zero-state behavior of the long-term filter becomes zero for lags smaller than the frame length. This additional feature allows practitioners to remove the influence of the long-term filter from the codebook search procedure. Thus, a CELP speech coder has been demonstrated that can provide higher quality of speech for all pitch rates while retaining the advantages of practical implementation and low bit rate.

Während spezielle Ausführungen der vorliegenden Erfindung hier gezeigt und beschrieben wurden, können weitere Modifikationen und Verbesserungen ausgeführt werden. Beispielsweise kann bei der hier beschriebenen Filtertechnik der Langzeitvorhersage durch Subabtastauflösung jeder Typ der Sprachcodierung (z. B. RELP, Mehrfachimpuls, RPE, LPC, usw.) verwendet werden. Überdies können zusätzliche gleichwertige Konfigurationen der Struktur zur Langzeitvorhersage durch Subabtastauflösung aufgebaut werden, die die gleichen Berechnungen ausführen, wie diejenigen, die obenstehend erläutert sind.While specific embodiments of the present invention have been shown and described herein, further modifications and improvements may be made. For example, the sub-sample resolution long-term prediction filtering technique described herein may utilize any type of speech coding (e.g., RELP, multi-pulse, RPE, LPC, etc.). Moreover, additional equivalent configurations of the sub-sample resolution long-term prediction structure may be constructed that perform the same computations as those discussed above.

Claims (16)

1. Verfahren zum Rekonstruieren von Sprache mit den folgenden Schritten:1. Procedure for reconstructing speech with the following steps: - Empfangen eines Satzes von Sprachparametern, die ein Codewort I und einen Verzögerungsparameter L enthalten, von einem Kommunikationskanal, wobei der Verzögerungsparameter L einen Wert in einem vorgegebenen Bereich aufweisen kann, der ganzzahlige und nicht ganzzahlige Werte, die sich auf eine Sprachteilungsperiode beziehen, enthält;- receiving a set of speech parameters comprising a codeword I and a delay parameter L, from a communication channel, wherein the delay parameter L may have a value in a predetermined range including integer and non-integer values relating to a speech division period; - Erzeugen eines Anregungsvektors mit einer Vielzahl von Abtastungen in Reaktion auf das Codewort I;- generating an excitation vector having a plurality of samples in response to the code word I; - Filtern des Anregungsvektors, der zumindest auf dem Verzögerungsparameter L und gespeicherten Filterzustandsabtastungen basiert, wobei der Schritt des Filterns die folgenden Schritte umfaßt:- filtering the excitation vector based at least on the delay parameter L and stored filter state samples, the step of filtering comprising the following steps: - Berechnen interpolierter Filterzustandsabtastungen aus den gespeicherten Filterzustandsabtastungen unter Verwendung eines nicht ganzzahligen L-Werts; und- calculating interpolated filter state samples from the stored filter state samples using a non-integer L value; and - Kombinieren des Anregungsvektors mit den interpolierten Filterzustandsabtastungen, um dadurch einen Filterausgangsvektor mit einer Vielzahl Filterausgangsabtastungen zu bilden; und Verarbeiten des Filterausgangsvektors, um rekonstruierte Sprache zu erzeugen.- combining the excitation vector with the interpolated filter state samples to thereby form a filter output vector having a plurality of filter output samples; and processing the filter output vector to generate reconstructed speech. 2. Verfahren zum Rekonstruieren von Sprache nach Anspruch 1, weiter dadurch gekennzeichnet, daß der Schritt des Filterns das Kombinieren des Anregungsvektors mit den gespeicherten Filterzustandsabtastungen in Reaktion darauf, daß L ganzzahlig ist, enthält, um dadurch Filterzustandsausgangsabtastungen zu bilden.2. A method for reconstructing speech as claimed in claim 1, further characterized in that the step of filtering includes combining the excitation vector with the stored filter state samples in response to L being an integer, to thereby form filter state output samples. 3. Verfahren zum Rekonstruieren von Sprache nach Anspruch 1, weiter dadurch gekennzeichnet, daß der Schritt des Filterns das Aktualisieren der gespeicherten Filterzustandsabtastungen unter Verwendung der Filterausgangsabtastungen enthält.3. A method for reconstructing speech as claimed in claim 1, further characterized in that the step of filtering includes updating the stored filter state samples using the filter output samples. 4. Verfahren zum Rekonstruieren von Sprache nach Anspruch 1, weiter die folgenden Schritte umfassend:4. A method for reconstructing speech according to claim 1, further comprising the following steps: - Umwandeln der rekonstruierten Sprache in ein analoges Sprachsignal; und- converting the reconstructed speech into an analogue speech signal; and - Umsetzen des analogen Sprachsignals in einen wahrnehmbaren Tonausgang, so daß die Sprachteilungsperioden genauer vorhergesagt werden.- Converting the analog speech signal into a perceptible sound output so that the speech division periods are predicted more accurately. 5. Vorrichtung zum Rekonstruieren von Sprache umfassend:5. Apparatus for reconstructing speech comprising: - Empfangsschaltungseinrichtung (450) zum Empfangen eines Satzes Sprachparameter von einem Kommunikationskanal, die ein Codewort I und einen Verzögerungsparameter L enthalten;- receiving circuit means (450) for receiving a set of speech parameters from a communication channel, containing a code word I and a delay parameter L ; - Erzeugungsschaltungseinrichtung (420) zum Erzeugen eines Anregungsvektors mit einer Vielzahl von Abtastungen in Reaktion auf das Codewort I;- generating circuit means (420) for generating an excitation vector having a plurality of samples in response to the code word I; - Filterschaltungseinrichtung (124, 424) zum Filtern des Anregungsvektors auf der Grundlage zumindest des Verzögerungsparameters L und gespeicherter Filterzustandsabtastungen, dadurch gekennzeichnet, daß L einen Wert in einem vorgegebenen Bereich aufweist, der ganzzahlige und nicht ganzzahlige Werte enthält, die sich auf eine Sprachteilungsperiode beziehen, sowie dadurch, daß die Filterschaltungseinrichtung umfaßt:- filter circuit means (124, 424) for filtering the excitation vector based on at least the delay parameter L and stored filter state samples, characterized in that L has a value in a predetermined range containing integer and non-integer values relating to a speech division period, and in that the filter circuit means comprises: - Berechnungsschaltungseinrichtung (530) zum Berechnen interpolierter Filterzustandsabtastungen aus den gespeicherten Filterzustandsabtastungen unter Verwendung eines nicht ganzzahligen L-Werts; und- calculation circuit means (530) for calculating interpolated filter state samples from the stored filter state samples using a non-integer L value; and - Kombinierschaltungseinrichtung (510, 520) zum Kombinieren des Anregungsvektors mit den interpolierten Filterzustandsabtastungen, um dadurch einen Filterausgangsvektor mit einer Vielzahl von Filterausgangsabtastungen zu bilden; und- combining circuit means (510, 520) for combining the excitation vector with the interpolated filter state samples to thereby form a filter output vector having a plurality of filter output samples; and - Verarbeitungsschaltungseinrichtung (426) zum Verarbeiten des Filterausgangsvektors, um rekonstruierte Sprache zu erzeugen.- processing circuit means (426) for processing the filter output vector to produce reconstructed speech. 6. Vorrichtung zum Rekonstruieren von Sprache nach Anspruch 5, wobei die Kombinierschaltungseinrichtung weiter in Reaktion darauf, daß L ganzzahlig ist, das Kombinieren des Anregungsvektors mit den gespeicherten Filterzustandsabtastungen enthält, um dadurch Filterausgangszustandsabtastungen zu bilden.6. Apparatus for reconstructing speech as claimed in claim 5, wherein the combining circuit means further includes, in response to L being an integer, combining the excitation vector with the stored filter state samples to thereby form filter output state samples. 7. Vorrichtung zum Rekonstruieren von Sprache nach Anspruch 5, wobei die Filterschaltungseinrichtung weiter eine Aktualisierungsschaltungseinrichtung zum Aktualisieren der gespeicherten Filterzustandsabtastungen unter Verwendung der Filterausgangsabtastungen enthält.7. The speech reconstructor of claim 5, wherein the filter circuit means further includes updating circuit means for updating the stored filter state samples using the filter output samples. 8. Vorrichtung zum Rekonstruieren von Sprache nach Anspruch 5, weiter umfassend:8. Apparatus for reconstructing speech according to claim 5, further comprising: - Umwandlungsschaltungseinrichtung zum Umwandeln der rekonstruierten Sprache in ein analoges Sprachsignal; und- Conversion circuit means for converting the reconstructed speech into an analogue speech signal; and - Umsetzschaltungseinrichtung zum Umsetzen des analogen Sprachsignals in einen wahrnehmbaren Tonausgang, so daß die Sprachteilungsperioden genauer vorhergesagt werden.- Conversion circuit means for converting the analogue speech signal into a perceptible sound output so that the speech division periods are predicted more accurately. 9. Verfahren zum Rekonstruieren von Sprache, die folgenden Schritte umfassend:9. A method for reconstructing speech, comprising the following steps: - Empfangen eines Satzes Sprachparameter von einem Kommunikationskanal, die ein Codewort I und einen Verzögerungsparameter L enthalten;- receiving a set of speech parameters from a communication channel, which include a code word I and a delay parameter L; - Erzeugen eines Anregungsvektors mit einer Vielzahl von Abtastungen in Reaktion auf das Codewort I;- generating an excitation vector having a plurality of samples in response to the code word I; - Filtern des Anregungsvektors zumindest auf der Grundlage des Verzögerungsparameters L, eines Satzes gespeicherter Filterzustandsabtastungen, die dadurch gekennzeichnet sind, daß L einen Wert in einem vorgegebenen Bereich aufweist, der ganzzahlige und nicht ganzzahlige Werte enthält, die sich auf eine Sprachteilungsperiode beziehen, und zumindest eines Satzes gespeicherter interpolierter Filterzustandsabtastungen, wobei der Schritt des Filterns die folgenden Schritte umfaßt:- filtering the excitation vector at least on the basis of the delay parameter L, a set of stored filter state samples, characterized in that L has a value in a predetermined range containing integer and non-integer values related to a speech division period, and at least one set of stored interpolated filter state samples, the step of filtering comprising the following steps: - Wählen eines Satzes Filterzustandsabtastungen aus der Gruppe, die aus dem Satz gespeicherter Filterzustandsabtastungen und dem zumindest einen Satz gespeicherter interpolierter Filterzustandsabtastungen besteht, wobei der Schritt des Wählens zumindest den Verzögerungsparameter L verwendet; und- selecting a set of filter state samples from the group consisting of the set of stored filter state samples and the at least one set of stored interpolated filter state samples, wherein the step of selecting uses at least the delay parameter L; and - Kombinieren des Anregungsvektors mit den gewählten Filterzustandsabtastungen, um dadurch einen Filterausgangsvektor mit einer Vielzahl von Filterausgangsabtastungen zu bilden; und- combining the excitation vector with the selected filter state samples to thereby form a filter output vector having a plurality of filter output samples; and - Verarbeiten des Filterausgangsvektors, um rekonstruierte Sprache zu erzeugen.- Processing the filter output vector to produce reconstructed speech. 10. Verfahren zum Rekonstruieren von Sprache nach Anspruch 9, weiter die folgenden Schritte umfassend:10. A method for reconstructing speech according to claim 9, further comprising the following steps: - Umwandeln der rekonstruierten Sprache in ein analoges Sprachsignal; und- converting the reconstructed speech into an analogue speech signal; and - Umsetzen des analogen Sprachsignals in einen wahrnehmbaren Tonausgang, so daß die Sprachteilungsperioden genauer vorhergesagt werden.- Converting the analog speech signal into a perceptible sound output so that the speech division periods are predicted more accurately. 11. Vorrichtung zum Rekonstruieren von Sprache umfassend:11. Apparatus for reconstructing speech comprising: - Empfangsschaltungseinrichtung (450) zum Empfangen eines Satzes Sprachparameter von einem Kommunikationskanal, die ein Codewort I und einen Verzögerungsparameter L enthalten, wobei L einen Wert in einem vorgegebenen Bereich aufweisen kann, der ganzzahlige und nicht ganzzahlige Werte enthält, die sich auf eine Sprachteilungsperiode beziehen;- receiving circuit means (450) for receiving a set of speech parameters from a communication channel, including a code word I and a delay parameter L, where L can have a value in a predetermined range including integer and non-integer values relating to a speech division period; - Erzeugungsschaltungseinrichtung (420) zum Erzeugen eines Anregungsvektors mit einer Vielzahl von Abtastungen in Reaktion auf das Codewort I;- generating circuit means (420) for generating an excitation vector having a plurality of samples in response to the code word I; - Filterschaltungseinrichtung (124, 424) zum Filtern des Anregungsvektors auf der Grundlage zumindest des Verzögerungsparameters L, eines Satzes gespeicherter Filterzustandsabtastungen und zumindest eines Satzes gespeicherter interpolierter Filterzustandsabtastungen, wobei die Filterschaltungseinrichtung umfaßt:- filter circuit means (124, 424) for filtering the excitation vector based on at least the delay parameter L, a set of stored filter state samples and at least one set of stored interpolated filter state samples, the filter circuit means comprising: - Wählschaltungseinrichtung zum Wählen eines Satzes Filterzustandsabtastungen aus der Gruppe, die aus dem Satz gespeicherter Filterzustandsabtastungen und zumindest einem Satz gespeicherter interpolierter Filterzustandsabtastungen besteht, wobei der Schritt des Wählens zumindest den Verzögerungsparameter L verwendet, und- selection circuit means for selecting a set of filter state samples from the group consisting of the set of stored filter state samples and at least one set of stored interpolated filter state samples, the step of selecting using at least the delay parameter L, and - Kombinierschaltungseinrichtung zum Kombinieren des Anregungsvektors mit den gewählten Filterzustandsab tastungen, um dadurch einen Filterausgangsvektor mit einer Vielzahl von Filterausgangsabtastungen zu bilden; und- Combining circuit means for combining the excitation vector with the selected filter state samples to thereby form a filter output vector having a plurality of filter output samples; and - Verarbeitungsschaltungseinrichtung (426) zum Verarbeiten des Filterausgangsvektors, um rekonstruierte Sprache zu erzeugen.- processing circuit means (426) for processing the filter output vector to produce reconstructed speech. 12. Vorrichtung zum Rekonstruieren von Sprache nach Anspruch 11, weiter umfassend:12. Apparatus for reconstructing speech according to claim 11, further comprising: - Umwandlungsschaltungseinrichtung zum Umwandeln der rekonstruierten Sprache in ein analoges Sprachsignal; und- Conversion circuit means for converting the reconstructed speech into an analogue speech signal; and - Umsetzschaltungseinrichtung zum Umsetzen des analogen Sprachsignals in einen wahrnehmbaren Tonausgang, so daß die Sprachteilungsperioden genauer vorhergesagt werden.- Conversion circuit means for converting the analogue speech signal into a perceptible sound output so that the speech division periods are predicted more accurately. 13. Verfahren zum Codieren von Sprache in Sätze von Sprachparametern zur Übertragung auf einem Kommunikationskanal, wobei das Verfahren die folgenden Schritte umfaßt:13. A method for encoding speech into sets of speech parameters for transmission on a communications channel, the method comprising the following steps: - mehrfaches Abtasten eines Sprachsignals, um eine Vielzahl von Abtastungen zu schaffen, die einen momentanen Sprachvektor bilden;- multiple sampling of a speech signal to create a plurality of samples forming an instantaneous speech vector; - Erzeugen eines Verzögerungswerts L, der einen Wert in einem vorgegebenen Bereich aufweist, der ganzzahlige und nicht ganzzahlige Werte enthält, die sich auf eine Sprachteilungsperiode des momentanen Sprachvektors beziehen;- generating a delay value L having a value in a predetermined range including integer and non-integer values related to a speech division period of the current speech vector; - Suchen von Anregungsvektoren, um ein Codewort I zu bestimmen, das am besten mit dem momentanen Sprachvektor übereinstimmt, wobei der Schritt des Suchens die folgenden Schritte umfaßt:- searching excitation vectors to determine a codeword I that best matches the current speech vector, the searching step comprising the following steps: - Erzeugen von Anregungsvektoren in Reaktion auf entsprechende Codeworte;- generating excitation vectors in response to corresponding code words; - Filtern jedes Anregungsvektors mit den Schritten:- Filter each excitation vector with the steps: - Berechnen interpolierter Filterzustandsabtastungen aus den gespeicherten gefilterten Zustandsabtastungen unter Verwendung eines nicht ganzzahligen L- Werts, und- calculating interpolated filter state samples from the stored filtered state samples using a non-integer L-value, and - Kombinieren des Anregungsvektors mit den interpolierten Filterzustandsabtastungen, um dadurch einen Filterausgangsvektor mit einer Vielzahl von Filterausgangsabtastungen zu bilden;- combining the excitation vector with the interpolated filter state samples to thereby form a filter output vector having a plurality of filter output samples; - Wählen des Codeworts I des Anregungsvektors, für das sich die Sprache, die unter Verwendung des nicht ganzzahligen L-Werts synthetisiert wird, am geringsten vom Sprachsignal unterscheidet; und- choosing the codeword I of the excitation vector for which the speech synthesized using the non-integer L value differs the least from the speech signal; and - Übertragen des gewählten Parameters L zusammen mit im voraus gewählten Sprachparametern für den momentanen Sprachvektor auf dem Kommunikationskanal, so daß die Sprachteilungsperioden genauer vorhergesagt werden.- Transmitting the selected parameter L together with preselected speech parameters for the current speech vector on the communication channel so that the speech division periods are predicted more accurately. 14. Verfahren zum Codieren von Sprache nach Anspruch 13, weiter dadurch gekennzeichnet, daß der Schritt des Suchens des Anregungsvektors umfaßt:14. A method for coding speech according to claim 13, further characterized in that the step of searching the excitation vector comprises: - Verarbeiten des Filterausgangsvektors, um einen rekonstruierten Sprachvektor zu erzeugen; und- processing the filter output vector to produce a reconstructed speech vector; and - Vergleichen des rekonstruierten Sprachvektors mit dem momentanen Sprachvektor, um die Differenz zwischen ihnen zu bestimmen.- Compare the reconstructed speech vector with the current speech vector to determine the difference between them. 15. Verfahren zum Codieren von Sprache nach Anspruch 13, weiter dadurch gekennzeichnet, daß der Schritt des Wählens des Codeworts I das Wählen des Codeworts I des Anregungsvektors umfaßt, für das sich der rekonstruierte Sprachvektor am geringsten vom momentanen Sprachvektor unterscheidet.15. A method of coding speech according to claim 13, further characterized in that the step of selecting the codeword I comprises selecting the codeword I of the excitation vector for which the reconstructed speech vector differs the least from the current speech vector. 16. Vorrichtung zum Codieren von Sprache in Sätze von Sprachparametern zur Übertragung auf einem Kommunikationskanal, wobei die Vorrichtung umfaßt:16. Apparatus for encoding speech into sets of speech parameters for transmission on a communications channel, the apparatus comprising: - Abtastschaltungseinrichtung zum mehrfachen Abtasten eines Sprachsignals, um eine Vielzahl von Abtastungen zu schaffen, die einen momentanen Sprachvektor bilden;- sampling circuit means for multiple sampling a speech signal to provide a plurality of samples forming an instantaneous speech vector; - Erzeugungsschaltungseinrichtung zum Erzeugen eines Verzögerungsparameters L, der einen Wert in einem vorgegebenen Bereich aufweist, der ganzzahlige und nicht ganzzahlige Werte enthält, die sich auf eine Sprachteilungsperiode des momentanen Sprachvektors beziehen;- generating circuit means for generating a delay parameter L having a value in a predetermined range including integer and non-integer values relating to a speech division period of the current speech vector; - Suchschaltungseinrichtung zum Suchen von Anregungsvektoren, um ein Codewort I zu bestimmen, das mit dem momentanen Sprachvektor am besten übereinstimmt, wobei die Suchschaltungseinrichtung umfaßt:- Search circuit means for searching excitation vectors to determine a code word I which best matches the current speech vector, the search circuit means comprising: - Erzeugungsschaltungseinrichtung zum Erzeugen von Anregungsvektoren in Reaktion auf entsprechende Codeworte;- generating circuit means for generating excitation vectors in response to corresponding code words; - Filterschaltungseinrichtung zum Filtern jedes Anregungsvektors auf der Grundlage zumindest des Verzögerungsparameters L, eines Satzes gespeicherter Filterzustandsabtastungen und zumindest eines Satzes gespeicherter interpolierter Filterzustandsabtastungen, wobei die Filterschaltungseinrichtung umfaßt:- filter circuit means for filtering each excitation vector based on at least the delay parameter L, a set of stored filter state samples and at least one set of stored interpolated filter state samples, the filter circuit means comprising: - Wählschaltungseinrichtung zum Wählen eines Satzes Filterzustandsabtastungen aus der Gruppe, die aus dem Satz gespeicherter Filterzustandsabtastungen und zumindest einem Satz gespeicherter interpolierter Filterzustandsabtastungen besteht, wobei die Wählschaltungseinrichtung zumindest den Verzögerungsparameter L verwendet, und- selection circuit means for selecting a set of filter state samples from the group consisting of the set of stored filter state samples and at least one set of stored interpolated filter state samples, the selection circuit means using at least the delay parameter L, and - Kombinierschaltungseinrichtung zum Kombinieren des Anregungsvektors mit gewählten Filterzustandsabtastungen, um dadurch einen Filterausgangsvektor mit einer Vielzahl von Filterausgangsabtastungen zu bilden;- Combining circuit means for combining the excitation vector with selected filter state samples to thereby produce a filter output vector with a plurality of filter output samples; - Verarbeitungsschaltungseinrichtung zum Verarbeiten des Filterausgangsvektors, um einen rekonstruierten Sprachvektor zu erzeugen;- processing circuitry for processing the filter output vector to produce a reconstructed speech vector; - Vergleichsschaltungseinrichtung zu Vergleichen des rekonstruierten Sprachvektors mit dem momentanen Sprachvektor, um die Differenz zwischen ihnen zu bestimmen;- comparison circuit means for comparing the reconstructed speech vector with the current speech vector to determine the difference between them; - Wählschaltungseinrichtung zum Wählen des Codeworts I des Anregungsvektors, für das sich der rekonstruierte Sprachvektor am geringsten vom momentanen Sprachvektor unterscheidet; und- selection circuit means for selecting the code word I of the excitation vector for which the reconstructed speech vector differs the least from the current speech vector; and - Übertragungsschaltungseinrichtung zum Übertragen des gewählten Codeworts I und des Verzögerungsparameters L zusammen mit im voraus gewählten Sprachparametern für den momentanen Sprachvektor auf dem Kommunikationskanal, so daß die Sprachteilungsperioden genauer vorhergesagt werden.- Transmission circuit means for transmitting the selected code word I and the delay parameter L together with preselected speech parameters for the current speech vector on the communication channel, so that the speech division periods are more accurately predicted.
DE69033510T 1989-09-01 1990-06-25 NUMERICAL LANGUAGE CODIER WITH IMPROVED LONG-TERM PRESENCE THROUGH SUBABASE RESOLUTION Expired - Lifetime DE69033510T3 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US40220689A 1989-09-01 1989-09-01
US402206 1989-09-01
PCT/US1990/003625 WO1991003790A1 (en) 1989-09-01 1990-06-25 Digital speech coder having improved sub-sample resolution long-term predictor

Publications (3)

Publication Number Publication Date
DE69033510D1 DE69033510D1 (en) 2000-05-25
DE69033510T2 true DE69033510T2 (en) 2000-11-23
DE69033510T3 DE69033510T3 (en) 2007-06-06

Family

ID=23590969

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69033510T Expired - Lifetime DE69033510T3 (en) 1989-09-01 1990-06-25 NUMERICAL LANGUAGE CODIER WITH IMPROVED LONG-TERM PRESENCE THROUGH SUBABASE RESOLUTION

Country Status (12)

Country Link
EP (1) EP0450064B2 (en)
JP (1) JP3268360B2 (en)
CN (1) CN1026274C (en)
AT (1) ATE191987T1 (en)
AU (1) AU634795B2 (en)
CA (1) CA2037899C (en)
DE (1) DE69033510T3 (en)
DK (1) DK0450064T4 (en)
ES (1) ES2145737T5 (en)
MX (1) MX167644B (en)
SG (1) SG47028A1 (en)
WO (1) WO1991003790A1 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327520A (en) * 1992-06-04 1994-07-05 At&T Bell Laboratories Method of use of voice message coder/decoder
FR2702590B1 (en) * 1993-03-12 1995-04-28 Dominique Massaloux Device for digital coding and decoding of speech, method for exploring a pseudo-logarithmic dictionary of LTP delays, and method for LTP analysis.
FI96248C (en) 1993-05-06 1996-05-27 Nokia Mobile Phones Ltd Method for providing a synthetic filter for long-term interval and synthesis filter for speech coder
DE4421853A1 (en) * 1994-06-22 1996-01-04 Philips Patentverwaltung Mobile terminal
GB9408037D0 (en) * 1994-04-22 1994-06-15 Philips Electronics Uk Ltd Analogue signal coder
JP2970407B2 (en) * 1994-06-21 1999-11-02 日本電気株式会社 Speech excitation signal encoding device
FR2729246A1 (en) * 1995-01-06 1996-07-12 Matra Communication SYNTHETIC ANALYSIS-SPEECH CODING METHOD
FR2729247A1 (en) * 1995-01-06 1996-07-12 Matra Communication SYNTHETIC ANALYSIS-SPEECH CODING METHOD
FR2729244B1 (en) * 1995-01-06 1997-03-28 Matra Communication SYNTHESIS ANALYSIS SPEECH CODING METHOD
US5708757A (en) * 1996-04-22 1998-01-13 France Telecom Method of determining parameters of a pitch synthesis filter in a speech coder, and speech coder implementing such method
JP4857468B2 (en) * 2001-01-25 2012-01-18 ソニー株式会社 Data processing apparatus, data processing method, program, and recording medium
JP4857467B2 (en) 2001-01-25 2012-01-18 ソニー株式会社 Data processing apparatus, data processing method, program, and recording medium
GB2466674B (en) 2009-01-06 2013-11-13 Skype Speech coding
GB2466673B (en) 2009-01-06 2012-11-07 Skype Quantization
GB2466671B (en) 2009-01-06 2013-03-27 Skype Speech encoding
GB2466675B (en) 2009-01-06 2013-03-06 Skype Speech coding
GB2466672B (en) * 2009-01-06 2013-03-13 Skype Speech coding
CN104025191A (en) * 2011-10-18 2014-09-03 爱立信(中国)通信有限公司 An improved method and apparatus for adaptive multi rate codec
FR3015754A1 (en) 2013-12-20 2015-06-26 Orange RE-SAMPLING A CADENCE AUDIO SIGNAL AT A VARIABLE SAMPLING FREQUENCY ACCORDING TO THE FRAME

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL168669C (en) * 1974-09-16 1982-04-16 Philips Nv INTERPOLING DIGITAL FILTER WITH INPUT BUFFER.
US4080660A (en) * 1975-07-11 1978-03-21 James Nickolas Constant Digital signal time scale inversion
US4020332A (en) * 1975-09-24 1977-04-26 Bell Telephone Laboratories, Incorporated Interpolation-decimation circuit for increasing or decreasing digital sampling frequency
NL8105801A (en) * 1981-12-23 1983-07-18 Philips Nv RECURSIVE DIGITAL FILTER.
US4573135A (en) * 1983-04-25 1986-02-25 Rca Corporation Digital lowpass filter having controllable gain
JPS60116000A (en) * 1983-11-28 1985-06-22 ケイディディ株式会社 Voice encoding system
JPS63214032A (en) * 1987-03-02 1988-09-06 Fujitsu Ltd Coding transmitter
JPS63249200A (en) * 1987-04-06 1988-10-17 日本電信電話株式会社 Vector quantization system
JPH01177227A (en) * 1988-01-05 1989-07-13 Toshiba Corp Sound coder and decoder

Also Published As

Publication number Publication date
JP3268360B2 (en) 2002-03-25
ES2145737T5 (en) 2007-03-01
DE69033510D1 (en) 2000-05-25
DK0450064T3 (en) 2000-10-02
CN1050633A (en) 1991-04-10
AU634795B2 (en) 1993-03-04
CN1026274C (en) 1994-10-19
EP0450064B1 (en) 2000-04-19
DK0450064T4 (en) 2006-09-04
JPH04502675A (en) 1992-05-14
CA2037899C (en) 1996-09-17
ATE191987T1 (en) 2000-05-15
AU5952590A (en) 1991-04-08
CA2037899A1 (en) 1991-03-02
DE69033510T3 (en) 2007-06-06
EP0450064A4 (en) 1995-04-05
EP0450064B2 (en) 2006-08-09
MX167644B (en) 1993-03-31
SG47028A1 (en) 1998-03-20
EP0450064A1 (en) 1991-10-09
ES2145737T3 (en) 2000-07-16
WO1991003790A1 (en) 1991-03-21

Similar Documents

Publication Publication Date Title
DE3853916T2 (en) DIGITAL VOICE ENCODER WITH IMPROVED VERTOR EXCITATION SOURCE.
DE69033510T2 (en) NUMERIC LANGUAGE ENCODER WITH IMPROVED LONG-TERM FORECASTING BY SUBSAMPLE RESOLUTION
DE60121405T2 (en) Transcoder to avoid cascade coding of speech signals
DE4492048C2 (en) Vector quantization method
DE69604729T2 (en) METHOD FOR SPEECH CODING BY MEANS OF LINEAR PREDICTION AND EXCITATION BY ALGEBRAIC CODES
DE69910240T2 (en) DEVICE AND METHOD FOR RESTORING THE HIGH FREQUENCY PART OF AN OVER-SAMPLE SYNTHETIZED BROADBAND SIGNAL
DE60006271T2 (en) CELP VOICE ENCODING WITH VARIABLE BITRATE BY MEANS OF PHONETIC CLASSIFICATION
DE69227401T2 (en) Method for coding and decoding speech signals
DE19604273C2 (en) Method and device for performing a search in a code book with regard to the coding of a sound signal, cell communication system, cell network element and mobile cell transmitter / receiver unit
DE69619054T2 (en) Method and device for speech coding
DE69932460T2 (en) Speech coder / decoder
DE69613907T2 (en) Changed fundamental frequency delay when data frames are lost
DE69608947T2 (en) Method of analyzing an audio frequency signal by linear prediction, and application to a method of encoding and decoding an audio frequency signal
DE3856211T2 (en) Process for adaptive filtering of speech and audio signals
DE19647298C2 (en) Coding system
DE60029990T2 (en) SMOOTHING OF THE GAIN FACTOR IN BROADBAND LANGUAGE AND AUDIO SIGNAL DECODER
DE69029232T2 (en) System and method for speech coding
DE69521164T2 (en) System for coding and decoding signals
DE69328450T2 (en) Method and device for speech coding
DE69317958T2 (en) Low delay audio signal encoder using analysis-by-synthesis techniques
DE69900786T2 (en) VOICE CODING
DE602004006211T2 (en) Method for masking packet loss and / or frame failure in a communication system
DE69223335T2 (en) Speech coding system
DE69329569T2 (en) Digital coding of speech signals
DE69426860T2 (en) Speech coder and method for searching codebooks

Legal Events

Date Code Title Description
8363 Opposition against the patent
8328 Change in the person/name/address of the agent

Free format text: SCHUMACHER & WILLSAU, PATENTANWALTSSOZIETAET, 80335 MUENCHEN

8366 Restricted maintained after opposition proceedings