JPH06138896A - Device and method for encoding speech frame - Google Patents

Device and method for encoding speech frame

Info

Publication number
JPH06138896A
JPH06138896A JP4160233A JP16023392A JPH06138896A JP H06138896 A JPH06138896 A JP H06138896A JP 4160233 A JP4160233 A JP 4160233A JP 16023392 A JP16023392 A JP 16023392A JP H06138896 A JPH06138896 A JP H06138896A
Authority
JP
Japan
Prior art keywords
vector
speech
codebook
value
output
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.)
Pending
Application number
JP4160233A
Other languages
Japanese (ja)
Inventor
William C Yip
イップ ウィリアム・シー
David L Barron
バロン デビッド・エル
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
Priority claimed from US07/708,947 external-priority patent/US5265190A/en
Priority claimed from US07/708,609 external-priority patent/US5173941A/en
Priority claimed from US07/714,409 external-priority patent/US5179594A/en
Priority claimed from US07/722,572 external-priority patent/US5187745A/en
Application filed by Motorola Inc filed Critical Motorola Inc
Publication of JPH06138896A publication Critical patent/JPH06138896A/en
Pending 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/0013Codebook search algorithms
    • G10L2019/0014Selection criteria for distances
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/06Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being correlation coefficients
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/18Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being spectral information of each sub-band

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)

Abstract

PURPOSE: To relieve the burden of code exciting linear prediction(CELP) voice encoding in terms of a computer by selecting an adaptive code book vector having a min. error function. CONSTITUTION: An adaptive code book searcher 220' uses the inpulse sensible weighting response function H(n) of a short term LPC filter in a convolution generator 510' in order to generate a convolution signal W(n) and uses the frame of target voice X(n) which is sensibly weighted in order to execute a convolution. Then, a self correlative coefficient 552' stored in a table 555' before code book searching is used next for calculating energy as against respective candidate vectors from an adaptive code book 155 later, the result of the normalized correlation of the respective vectors is compared in a peak selector 570' and the vector Ck (m) having a max. mutual correlative value is identified as an optimum pitch cycle vector by the peak selector 570'.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、音声または他のアナロ
グ信号のデジタル符号化のための改良された手段および
方法に関し、より詳細には、コード励起またはコード駆
動線形予測符号化(code excited lin
ear predictive coding)に関す
る。
FIELD OF THE INVENTION This invention relates to improved means and methods for digital encoding of speech or other analog signals, and more particularly to code excitation or code driven linear predictive coding.
ear predictive coding).

【0002】[0002]

【従来の技術】コード励起線形予測(CELP)符号化
はよく知られた音声通信のための確率的または推計的な
(stochastic)符号化技術である。CELP
符号化においては、短時間スペクトルおよび長時間ピッ
チが1組の時間変化する線形フィルタによりモデル化さ
れる。典型的な音声コーダをベースとした通信システム
においては、音声は送信されることが望まれる最も高い
周波数のほぼ2倍でA/D変換器によってサンプルさ
れ、たとえば、4KHzの音声帯域幅に対しては典型的
には8KHzのサンプリング周波数が使用される。CE
LP符号化は線形予測(LPC)フィルタを励起または
駆動するためにエンコードされた励起情報を使用して音
声を合成する。フィルタへの入力として使用される、励
起または駆動(excitation)はホワイトガウ
ス信号のコードブックによりモデル化される。最適の励
起は候補の(candidate)励起ベクトルのコー
ドブックをフレームごとのベースでサーチすることによ
り検出される。
Code Excited Linear Prediction (CELP) coding is a well-known stochastic or stochastic coding technique for voice communications. CELP
In encoding, the short time spectrum and long time pitch are modeled by a set of time varying linear filters. In a typical voice coder-based communication system, voice is sampled by an A / D converter at approximately twice the highest frequency desired to be transmitted, eg, for a voice bandwidth of 4 KHz. Typically uses a sampling frequency of 8 KHz. CE
LP coding synthesizes speech using encoded excitation information to excite or drive a linear prediction (LPC) filter. The excitation or excitation used as input to the filter is modeled by a codebook of white Gaussian signals. The optimal excitation is detected by searching the codebook of candidate excitation vectors on a frame-by-frame basis.

【0003】LPC分析がLPCパラメータを決定する
ために入力音声フレームに対して行われる。次にLPC
フィルタがテーブル、すなわち、コードブックからの種
々の候補ベクトルによって励起される時に、LPCフィ
ルタの出力をデジタル化された入力音声と比較すること
により分析が進められる。最善の候補ベクトルが候補励
起ベクトルを使用して合成された音声がどれだけよく入
力音声に整合するかに基づき選択される。これは通常音
声のいくつかのサブフレームに対して行われる。
LPC analysis is performed on input speech frames to determine LPC parameters. Next LPC
The analysis proceeds by comparing the output of the LPC filter with the digitized input speech as the filter is excited by various candidate vectors from the table, the codebook. The best candidate vector is selected based on how well the speech synthesized using the candidate excitation vector matches the input speech. This is usually done for several subframes of speech.

【0004】最善の整合が検出された後、最善のコード
ブック入力(エントリ:entry)を特定する情報、
LPCフィルタの係数およびゲイン係数がシンセサイザ
に送信される。シンセサイザはコードブックの同じコピ
ーを有し、かつそのコードブックにおける適切なエント
リにアクセスし、それを同じLPCフィルタを励起する
ために使用する。
Information identifying the best codebook entry after the best match is detected,
The LPC filter coefficients and gain coefficients are sent to the synthesizer. The synthesizer has the same copy of the codebook and accesses the appropriate entry in that codebook and uses it to excite the same LPC filter.

【0005】コードブックはそれらの構成要素が連続し
た励起サンプルであるベクトルからなる。各ベクトルは
サブフレームまたはフレームにおいて音声サンプルがあ
るのと同じ数の励起サンプルを含む。励起サンプルは数
多くの異なる発生源(sources)からくることが
できる。ロングタームのピッチの符号化は適応コードブ
ックからのコードベクトルの適切な選択によって決定さ
れる。適応コードブックは1組の異なるピッチ周期のあ
らかじめ合成された音声励起波形である。
A codebook consists of vectors whose components are consecutive excitation samples. Each vector contains as many excitation samples as there are audio samples in a subframe or frame. Excited samples can come from a number of different sources. The encoding of the long term pitch is determined by the proper selection of code vectors from the adaptive codebook. The adaptive codebook is a set of pre-synthesized speech excitation waveforms with different pitch periods.

【0006】コードベクトルの最適の選択は、推計的ま
たは適応的コードブックのいずれからでも、知覚的に重
み付けられたエラー関数を最小化することに依存する。
このエラー関数は典型的にはコードブックの各ベクトル
に対し合成された音声と目標音声との比較から得られ
る。これらの徹底的な比較手順は多量の計算を必要とし
かつ通常単一のデジタル信号プロセッサ(DSP)がリ
アルタイムで実行するには実用的ではない。音声品質を
犠牲にすることなく計算の複雑さを低減することが可能
なことがデジタル通信環境においては重要である。
The optimal choice of code vectors depends on minimizing the perceptually weighted error function, either from the stochastic or adaptive codebook.
This error function is typically obtained by comparing the synthesized speech for each vector in the codebook with the target speech. These exhaustive comparison procedures are computationally intensive and are usually not practical for a single digital signal processor (DSP) to perform in real time. It is important in a digital communication environment to be able to reduce computational complexity without sacrificing voice quality.

【0007】[0007]

【発明が解決しようとする課題】エラー関数、コードブ
ックベクトルサーチ、計算は励起情報のベクトルおよび
マトリクス操作およびLPCフィルタを用いて行われ
る。問題は、多数の計算、たとえば、4.8Kbpsの
ボコーダに対して毎秒約5×10の乗算−加算演算を
行わなければならないことである。従来技術の構成は行
わなければならない計算の数を低減する上で完全には成
功していなかった。従って、音声品質を犠牲にすること
なく計算機的な負担を低減する改良されたCELP符号
化手段および方法の必要性が存在し続ける。
Error functions, codebook vector searches, and calculations are performed using vector and matrix operations of excitation information and LPC filters. The problem is that many calculations have to be performed, for example about 5 × 10 8 multiply-add operations per second for a 4.8 Kbps vocoder. Prior art arrangements have not been entirely successful in reducing the number of calculations that must be performed. Therefore, there continues to be a need for improved CELP coding means and methods that reduce the computational burden without sacrificing voice quality.

【0008】従来技術の4.8kビット/秒のCELP
符号化システムが合衆国政府のGeneral Ser
vices Administrationによって発
行されたFederal Standard FED−
STD−1016に述べられている。従来技術のCEL
Pボコーダシステムはたとえば、Ketchum他への
米国特許第4,899,385号および第4,910,
781号、Atalへの第4,220,819号、Li
nへの第4,797,925号、およびGersonへ
の第4,817,157号に述べられており、これらは
ここに参照のため導入される。
Prior art 4.8 kbit / sec CELP
The encoding system is the US Government's General Ser
Federal Standard FED-issued by Vice Administration
STD-1016. Prior art CEL
P-vocoder systems are described, for example, in US Pat. Nos. 4,899,385 and 4,910 to Ketchum et al.
781, No. 4,220,819 to Atal, Li
n, 4,797,925, and Gerson, 4,817,157, which are hereby incorporated by reference.

【0009】典型的な従来技術のCELPボコーダシス
テムは8KHzのサンプリングレートおよび4つの7.
5ミリセカンドのサブフレームに分割された30ミリセ
カンドのフレーム期間を使用する。従来技術のCELP
符号化は3つの基本的な機能からなる。すなわち、
(1)短時間遅延「スペクトル」予測、(2)長時間遅
延「ピッチ」サーチ、および(3)残留(residu
al)「コードブック」サーチである。
A typical prior art CELP vocoder system has a sampling rate of 8 KHz and four 7.
A 30 millisecond frame period divided into 5 millisecond subframes is used. Prior art CELP
The encoding consists of three basic functions. That is,
(1) short delay "spectrum" prediction, (2) long delay "pitch" search, and (3) residual (residu)
al) "Codebook" search.

【0010】本発明は人間の音声を表わすアナログ信号
の場合につき説明されるが、これは単に説明の便宜のた
めのものに過ぎず、かつ、ここで使用されている、「音
声(speech)」なる用語はシステムのサンプリン
グ能力内での帯域幅の任意の形式のアナログ信号を含む
ことを意図している。
Although the present invention is described in the case of an analog signal representing human speech, this is merely for convenience of description and as used herein, "speech". The term is intended to include any form of analog signal of bandwidth within the sampling capability of the system.

【0011】[0011]

【課題を解決するための手段および作用】本発明は適応
的および推計的コードブックに基づくCELP音声符号
化の計算機的な負担を実質的に低減する改良された手段
および方法を提供する。
SUMMARY OF THE INVENTION The present invention provides improved means and methods that substantially reduce the computational burden of adaptive and stochastic codebook based CELP speech coding.

【0012】第1の実施例においては、再帰計算ループ
がそこから最適の励起ベクルを選択するために適応コー
ドブックのベクトルの票決をするために使用される。好
ましい実施例においては、ショートタームの知覚的に重
み付けられたフィルタのインパルス関数が適応コードブ
ックにおいて各ベクトルと相関された知覚的に重み付け
られた目標音声および結果とコンボルブされかつ自己相
関されたコードブックベクトルおよび自己相関されたイ
ンパルス関数と組合わされてエラー関数を生成する。最
小のエラー関数を有する適応コードブックベクトルが選
択されて調べられている特定の音声フレーム(またはサ
ブフレーム)を表わす。
In the first embodiment, a recursive computation loop is used to vote the vector of the adaptive codebook to select the optimal excitation vector from it. In the preferred embodiment, the impulse function of the short-term perceptually weighted filter is convolved and autocorrelated with the perceptually weighted target speech and the result correlated with each vector in the adaptive codebook. Combined with the vector and auto-correlated impulse function to generate an error function. The adaptive codebook vector with the smallest error function is selected to represent the particular speech frame (or subframe) being examined.

【0013】別の実施例はさらに適応コードブックのた
めの再帰ループを、その各々がNのエントリを有する適
応コードブックのKのベクトルに対し行わなければなら
ない自己相関演算の数を低減することにより簡略化す
る。自己相関は最初は各コードブックベクトルにおける
Nの自己相関係数に対しP<<Nの小さな数Pについて
のみ行われ、かつ検出された値はすべてのKのコードブ
ックベクトルを通して操作するために使用され入力音声
に対し最善の整合を与えるKのコードブックベクトル
(S<<K)の内のSを探す。Sのベクトルに対する自
己相関関数は次にRの自己相関係数(P<R≦N)に対
し再計算されかつSのコードブックベクトルはSの適応
コードブックベクトルの内のどれが入力音声に対し最善
の整合を与えるかを決定するために再評価される。
Another embodiment further provides a recursive loop for the adaptive codebook by reducing the number of autocorrelation operations that must be performed on the K vectors of the adaptive codebook, each having N entries. To simplify. Autocorrelation is initially performed only for a small number P of P << N for N autocorrelation coefficients in each codebook vector, and the detected value is used to operate through all K codebook vectors. Search for S of the K codebook vectors (S << K) that give the best match to the input speech. The autocorrelation function for the S vector is then recomputed for the R autocorrelation coefficient (P <R≤N) and the S codebook vector is any of the S adaptive codebook vectors for the input speech. Re-evaluated to determine which gives the best match.

【0014】さらに別の実施例は、フレーム長Lより短
い長さMのコードブックベトクルが評価されている時に
自己相関係数を決定するために実行されなければならな
い計算の数をさらに低減する。長さM<Lの第1のベク
トルC(n)の自己相関係数U(m)が計算され、
ここでk=1かつmは自己相関遅れ指数(lag in
dex)でありまたnはコードブックベクトルにおける
連続するサンプルの指数(index)であり、さらに
Lは次式による分析フレーム長である。 (m)=(L/M)U′(m) (2) なおm=0〜T<mである。残りのコードブックベクト
ルの自己相関係数U(m)は次式に従って増分的に計
算され、ここでk≧2である。 U′(m)=[U′k−1(m)+C(M+k−1) ・C(M+k−1+m)] (3) U(m)={L/(M+k−1)}U′(m) (4)
Yet another embodiment further reduces the number of calculations that must be performed to determine the autocorrelation coefficient when a codebook vector of length M less than the frame length L is being evaluated. . The autocorrelation coefficient U k (m) of the first vector C k (n) of length M <L is calculated,
Here, k = 1 and m is an autocorrelation delay index (lag in
dex) and n is the index of consecutive samples in the codebook vector, and L is the analysis frame length according to U 1 (m) = (L / M) U ′ 1 (m) (2) Note that m = 0 to T <m. The autocorrelation coefficient U k (m) of the remaining codebook vectors is incrementally calculated according to the following equation, where k ≧ 2. U ′ k (m) = [U ′ k−1 (m) + C k (M + k−1) · C k (M + k−1 + m)] (3) U k (m) = {L / (M + k−1)} U'k (m) (4)

【0015】ただし、m=0〜T<M、かつプロセスは
(M+k−1)=Lまで反復される。T=M−1である
ことが好ましい。得られた値U′(m)およびU
(m)は示されたスケーリングファクタによってスケー
リングされ、たとえば、k=1に対し(L/M)、k=
2に対しL/(M+1)、そして同様に(M+k−1)
=Lまで行われる。得られた自己相関係数はコードブッ
クベクトルC(n)の内のどれが入力音声と比較した
時最小のエラーを生成するかを決定する上で使用され
る。
However, m = 0 to T <M, and the process is repeated until (M + k−1) = L. It is preferred that T = M-1. The obtained values U l ′ (m) and U k
(M) is scaled by the indicated scaling factor, eg (L / M) for k = 1, k =
L / (M + 1) for 2, and similarly (M + k-1)
= L is performed. The resulting autocorrelation coefficient is used in determining which of the codebook vectors C k (n) produces the smallest error when compared to the input speech.

【0016】さらに別の実施例においては、目標音声を
模写するための最適の推計的コードブックベクトルを識
別するためにCELP符号化プロセスによって発生され
る他のベクトルとともに推計的コードブックのベクトル
の相関係数をより迅速かつ容易に決定するための手段お
よび方法が提供される。より詳細には、n=1からNま
でに至る指数nによって識別される値を有する第1のベ
クトルV(n)、および1組の第2のベクトルS
(n)であって該第2のベクトルの各々は指数kによ
って識別されかつ該第2のベクトルの各々はゼロ(ze
ro)または非ゼロ(non−zero)であってかつ
n=1からNに至る指数nによって識別されるNまでの
値を有するもの、がS(n)が非ゼロとし異なるk
に対しS(n)の指数nk,iを識別し、指数n
k,iに対応するV(n)の値を加算して和Q(k)を
形成し、最も大きな値Q(k=j)に対応する値k=j
を識別し、かつSk=j(n)を使用して音声を合成す
ることにより組合わされる。
In yet another embodiment, the phase of the stochastic codebook vector along with other vectors generated by the CELP encoding process to identify the optimal stochastic codebook vector for replicating the target speech. Means and methods are provided for determining the number of relationships more quickly and easily. More specifically, a first vector V (n) having a value identified by an index n ranging from n = 1 to N, and a set of second vectors S
k (n), each of the second vectors is identified by an index k, and each of the second vectors is zero (ze).
ro) or non-zero and having values up to N identified by the exponent n from n = 1 to N, where k is different from S k (n i ).
To the index n k, i of S k (n) for
The values of V (n) corresponding to k and i are added to form a sum Q (k), and the value k = j corresponding to the largest value Q (k = j).
, And combine them by synthesizing the speech using S k = j (n).

【0017】好ましい実施例においては、前記組の第2
のベクトルの連続するベクトルはオーバラップ量Δk,
Δnに従って先行する第2のベクトルのオーバラップに
より決定され、かつ前記識別および加算ステップは、S
(n)が非ゼロであるとしS(n)の指数n
1,iをk=1に対して識別する段階、n1,iからス
タートしかつ前記オーバラップ量Δk,Δnを使用する
段階、S(ni′)が非ゼロであるとしk>1に対し
指数nk,i′をさらに決定する段階、およびそのよう
な指数に対するV(n)の値およびさらに他の指数を加
算して和Q(k)を形成する段階を具備する。
In a preferred embodiment, the second of the set
The continuous vector of the vector is the overlap amount Δk,
Determined by the overlap of the preceding second vector according to Δn, and said identifying and adding step is S
1 (n i ) is non-zero, the index n of S k (n)
1, i for k = 1, starting from n 1, i and using said overlap amounts Δk, Δn, if S k (n i ′ ) is non-zero, k> 1 , For further exponents n k, i ′ , and for summing the values of V (n) for such exponents and further exponents to form sum Q (k).

【0018】さらに別の実施例においては、n=1〜N
の出力、n=1〜Nの第1の入力、第2の入力、および
n=1〜Nの選択手段を有するN×Nのマルチプレクサ
がコードブックベクトルを組合わせるために使用され
る。n番目の選択手段に提供される第1の論理レベルは
n番目の出力をn番目の第1の入力に結合しかつn番目
の選択手段に提供される第2の論理レベルはn番目の出
力を前記第2の入力に結合する。前記第2の入力は便宜
的には所定の論理レベルである。前記第1のベクトルの
n=1〜Nの値はマルチプレクサのn=1〜Nの第1の
入力に供給されかつ指数k=1の第2のベクトルのn=
1〜Nの値がマルチプレクサのn=1〜Nの選択手段に
供給される。前記第2のベクトルはn=1〜Nの選択手
段においてnのある値に対し第1の論理レベルを提供し
かつnの他の値に対し第2の論理レベルを提供する。マ
ルチプレクサ出力に現われる第1のベクトルの値はアキ
ュムレータにおいて加算され和(sum)を提供する。
前記提供および加算段階はkのさらに他の値に対して繰
返され、かつどの第2のベクトルが目標音声に最も近い
整合を与える和を有するかに基づき音声が合成される。
In yet another embodiment, n = 1 to N
, An N × N multiplexer having n = 1 to N first inputs, a second input, and n = 1 to N selection means are used to combine the codebook vectors. The first logic level provided to the nth selection means couples the nth output to the nth first input and the second logic level provided to the nth selection means is the nth output. To the second input. The second input is expediently a predetermined logic level. The values of n = 1 to N of said first vector are fed to the first inputs of n = 1 to N of the multiplexer and n = of the second vector of index k = 1.
The values 1 to N are supplied to the n = 1 to N selection means of the multiplexer. The second vector provides a first logic level for some values of n and a second logic level for other values of n in the selection means for n = 1 to N. The values of the first vector appearing at the multiplexer output are added in the accumulator to provide the sum.
The providing and summing steps are repeated for further values of k, and speech is synthesized based on which second vector has the sum that gives the closest match to the target speech.

【0019】好ましい実施例においては、各々の第2の
ベクトルは2つの部分に分割され、すなわち、第2のベ
クトルの0,+1の値のロケーションに対応する値0,
1を有する第1の部分、および第2のベクトルの値0,
−1のロケーションに対応する値0,1を有する第2の
部分に分割される。各部分は望ましくはROMに記憶さ
れる。各部分に関連して上に述べられかつ同様にして動
作するもののようなマルチプレクサが設けられ、各マル
チプレクサは前記第2のベクトルのその関連する部分の
0,1の値に基づく累算された出力和を提供する。前記
提供および加算段階は上に述べたkの各値に対し各々の
ROM−マルチプレクサの組合わせに対して反復され、
かつ各々から生ずる和はさらに他の加算器(または減算
器)において組合わされてどのベクトルが目標音声に対
し最も近い整合を与えるかを選択する上で使用するため
の組合わされた出力を提供する。
In the preferred embodiment, each second vector is divided into two parts: the value 0, which corresponds to the location of the 0, + 1 value of the second vector.
The first part having 1 and the value 0 of the second vector,
It is divided into a second part having the values 0,1 corresponding to a location of -1. Each part is preferably stored in ROM. Multiplexers are provided for each part, such as those described above and operating in a similar manner, each multiplexer providing an accumulated output based on the 0,1 value of its associated part of the second vector. Offer the sum. The providing and adding steps are repeated for each ROM-multiplexer combination for each value of k as described above,
And the sums resulting from each are further combined in another adder (or subtractor) to provide a combined output for use in selecting which vector gives the closest match to the target speech.

【0020】[0020]

【実施例】図1は、単純化されたブロック図形式で、C
ELP符号化を利用したボコーダ送信システムを示す。
CELPコーダ100は入力音声102を受信しかつC
ELP符号化出力信号104を生成する。CELP符号
化信号104は送信経路またはチャネル106を介して
CELPデコーダ300に送信され、そこで元の音声信
号102の模写(facsimile)302が合成に
より再構成される。送信チャネル106は任意の形式と
することができるが、典型的には制限された帯域幅の有
線または無線通信リンクである。CELPコーダ100
はしばしば「アナライザ」と称されるが、それはその機
能が元の音声102を最もよく表すCELPコードパラ
メータ104(たとえば、コードブックベクトル、ゲイ
ン情報、LPCフィルタのパラメータ、その他)を決定
することであるためである。CELPデコーダ300は
しばしばシンセサイザと称されるが、それはその機能が
入力CELP符号化信号104に基づき出力合成音声3
02を再生することであるためである。CELPデコー
ダ300は伝統的なものでありかつ本発明の一部ではな
く、従ってこれ以上の詳細は説明しない。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT FIG. 1 is a simplified block diagram form of C
1 illustrates a vocoder transmission system utilizing ELP coding.
CELP coder 100 receives input speech 102 and
An ELP encoded output signal 104 is generated. CELP encoded signal 104 is transmitted via transmission path or channel 106 to CELP decoder 300, where a facsimile 302 of original audio signal 102 is reconstructed by synthesis. The transmission channel 106 can be of any form, but is typically a limited bandwidth wired or wireless communication link. CELP coder 100
Is often referred to as an "analyzer", whose function is to determine the CELP code parameters 104 (eg, codebook vectors, gain information, LPC filter parameters, etc.) that best represent the original speech 102. This is because. CELP decoder 300 is often referred to as a synthesizer, whose function is to output synthesized speech 3 based on input CELP encoded signal 104.
02 is to be reproduced. CELP decoder 300 is conventional and not part of the present invention, and thus will not be described in further detail.

【0021】図2の(a)および(b)は、CELPコ
ーダ100を非常に詳細にかつ本発明の好ましい実施例
に従って示す。入力アナログ音声信号102はまずフィ
ルタ110によって帯域ろ波されて(band−pas
sed)エイリアシング(aliasing)を防止す
る。帯域ろ波されたアナログ音声信号111は次にアナ
ログ−デジタル(A/D)コンバータ112によってサ
ンプルされる。サンプリングは通常ナイキストレート、
たとえば、4KHzのCELPボコーダに対して8KH
zで行われる。他のサンプリングレートも使用すること
ができる。任意の適切なA/Dコンバータを使用でき
る。A/Dコンバータ112からのデジタル化された信
号113はひとつながりのサンプル、たとえば、その振
幅が音声波形のエンベロープに対応するひとつながりの
狭いパルスからなる。
2A and 2B show CELP coder 100 in greater detail and in accordance with a preferred embodiment of the present invention. The input analog audio signal 102 is first band-pass filtered by a filter 110 (band-pas).
sed) Prevents aliasing. The bandpass filtered analog audio signal 111 is then sampled by an analog-to-digital (A / D) converter 112. Sampling is usually Nike straight,
For example, 8KH for a 4K CELP vocoder
performed in z. Other sampling rates can also be used. Any suitable A / D converter can be used. The digitized signal 113 from the A / D converter 112 consists of a series of samples, for example a series of narrow pulses whose amplitude corresponds to the envelope of the speech waveform.

【0022】テジタル化音声信号113は次にフレーム
またはブロックに分割され、すなわち、所定の数のデジ
タル化された音声サンプル、たとえば、フレームごとに
60,180または240サンプル、を含む連続する時
間ブラケットに分割される。これはCELP処理におい
ては習慣的に「フレームレート」と称されている。他の
フレームレートも使用できる。これはフレーマ114に
おいて行われる。これを達成するための手段は技術上よ
く知られている。連続する音声フレーム115はフレー
ムメモリ116に記憶される。フレームメモリ116の
出力117はデジタル化音声115のフレーム117を
その機能につき以下に説明するブロック122,14
2,162および235に送る。
The digitized audio signal 113 is then divided into frames or blocks, ie, into consecutive time brackets containing a predetermined number of digitized audio samples, eg 60, 180 or 240 samples per frame. Will be divided. This is customarily called "frame rate" in CELP processing. Other frame rates can also be used. This is done in the framer 114. Means for achieving this are well known in the art. The consecutive audio frames 115 are stored in the frame memory 116. The output 117 of the frame memory 116 is a block 122, 14 whose function is described below for the frame 117 of the digitized audio 115.
2, 162 and 235.

【0023】当業者はデジタル化音声のフレームはさら
にサブフレームに分割でき、かつ音声分析および合成は
サブフレームを使用して行うことができることを理解す
るであろう。ここで用いられている用語「フレーム」
は、単数または複数であっても、デジタル音声のフレー
ムおよびサブフレームの双方に言及することを考えてい
る。
Those skilled in the art will appreciate that a frame of digitized speech can be further divided into subframes, and speech analysis and synthesis can be done using subframes. The term "frame" as used here
Considers to refer to both frames and subframes of digital speech, whether singular or plural.

【0024】CELPコーダ100は2つのコードブッ
ク、すなわち、適応コードブック155および推計的
(stochastic)コードブック180を使用す
る(図2の(b)を参照)。各音声フレーム115に対
し、コーダ100は声道(vocal tract)の
フォルマント特性を表すLPC係数123を計算する。
コーダ100はまた推計的コードブック180および適
応的コードブック155の双方からの入力(ベクトル)
および関連するスケーリング(ゲイン)ファクタをサー
チし、これらは、LPC係数123を有するフィルタを
励起または駆動するために使用された時、最もよく入力
音声フレーム117を近似するものがサーチされる。L
PCケース、コードブックベクトルおよびスケーリング
(ゲイン係数)情報は処理されかつチャネルコーダ21
0に送られ、そこでこれらは組合わされて符号化CEL
P信号104を形成し、該信号104は経路106によ
ってCELPデコーダ300に送信される。以上のこと
が行われる処理につきより詳細に説明する。
CELP coder 100 uses two codebooks, an adaptive codebook 155 and a stochastic codebook 180 (see FIG. 2 (b)). For each speech frame 115, the coder 100 calculates an LPC coefficient 123 that represents the formant characteristics of the vocal tract.
The coder 100 also inputs (vectors) from both the stochastic codebook 180 and the adaptive codebook 155.
And the associated scaling (gain) factors, which, when used to excite or drive a filter with LPC coefficients 123, are searched for the one that best approximates the input speech frame 117. L
The PC case, codebook vector and scaling (gain factor) information is processed and channel coder 21
0, where they are combined and encoded CEL
P signal 104 is formed and is transmitted to CELP decoder 300 by path 106. The processing in which the above is performed will be described in more detail.

【0025】次に、ブロック122,125,130お
よび135を含むデータパス121を参照すると、LP
Cアナライザ122は入力音声フレーム117に応答し
てよく知られた技術を用いてLPC係数123を決定す
る。LPC係数123はラインスペクトル対(LSP)
またはラインスペクトル周波数(LSF)の形式になっ
ており、これらの用語は技術上よく理解されている。L
SP123はコーダ125によって量子化され、かつ量
子化されたLPC出力信号126はチャネルコーダ21
0に送信され、そこでその信号は送信チャネル106を
介してデコーダ300に送信されるCELP信号104
の一部(すなわち、LPCフィルタ係数)を形成する。
Referring now to data path 121, which includes blocks 122, 125, 130 and 135, LP
The C analyzer 122 is responsive to the input speech frame 117 to determine the LPC coefficient 123 using well known techniques. LPC coefficient 123 is line spectrum pair (LSP)
Or in the form of Line Spectral Frequency (LSF), these terms are well understood in the art. L
The SP 123 is quantized by the coder 125, and the quantized LPC output signal 126 is the channel coder 21.
0, where the signal is transmitted to decoder 300 via transmit channel 106.
Form a part (i.e., the LPC filter coefficient) of.

【0026】量子化されたLPC係数126はデコーダ
130によってデコードされ、かつデコードされたLS
Pは出力信号131,132を介してそれぞれ、データ
パス141および161に関連して説明する、スペクト
ルインバースフィルタ(spectrum inver
se filters)145および170に送信さ
れ、かつ出力信号133を介して帯域幅拡張重み付け発
生器135に送信される。信号131,132および1
33はデコードされた量子化LPC係数に関する情報を
含む。コーダ125およびデコーダ130を実現する手
段は技術上よく知られている。
The quantized LPC coefficients 126 are decoded by the decoder 130 and the decoded LS
P is a spectral inverse filter, described in connection with data paths 141 and 161, respectively, via output signals 131, 132.
se filters) 145 and 170, and via output signal 133 to bandwidth extension weighting generator 135. Signals 131, 132 and 1
33 contains information about the decoded quantized LPC coefficients. Means for implementing coder 125 and decoder 130 are well known in the art.

【0027】帯域幅拡張重み付け発生器135はスケー
リングファクタ(典型的には=0.8)を提供しかつフ
ォルマントの帯域幅拡張の機能を達成し、帯域幅拡張さ
れたLPCフィルタ係数に関する情報を含む出力信号1
36,137を生成する。信号136,137はそれぞ
れ、それらの機能については以下に説明するカスケード
重み付けフィルタ150および175に送信される。
The bandwidth extension weight generator 135 provides a scaling factor (typically = 0.8) and performs the function of formant bandwidth extension and contains information about the bandwidth extended LPC filter coefficients. Output signal 1
36 and 137 are generated. Signals 136 and 137 are each sent to cascade weighting filters 150 and 175, whose functions are described below.

【0028】次に、ブロック142,145および15
0を含むデータパス141を参照すると、スペクトル予
測器メモリ減算器142は117を介してフレームメモ
リ116から到達する入力サンプル音声115からショ
ートタームスペクトル予測器フィルタ195(図2の
(b)を参照)における前の状態196(すなわち、直
前のフレームにより残されたもの)を減算する。減算器
142は音声残留信号143を提供し該信号143はデ
ジタル化入力音声115から技術上フィルタリンギング
信号またはフィルタリングダウンと称されるものを減算
したものである。フィルタリンギング信号は与えられた
音声フレームに関連するフィルタ(たとえば、図2の
(b)のLPCフィルタ195)を駆動するために使用
されるインパルスがそのフレームの終りまでに完全に消
散せず、後続のフレームに広がるフィルタ駆動または励
起(すなわち、「リンギング」)を引き起こし得るため
に生ずる。
Next, blocks 142, 145 and 15
Referring to the data path 141 including 0, the spectrum predictor memory subtractor 142 receives the short-term spectrum predictor filter 195 from the input sample speech 115 arriving from the frame memory 116 via 117 (see (b) of FIG. 2). Subtract the previous state at 196 (ie, the one left by the previous frame). Subtractor 142 provides speech residual signal 143, which is digitized input speech 115 minus what is technically referred to as a filter ringing signal or filtering down. The filter ringing signal is such that the impulse used to drive the filter associated with a given speech frame (eg, the LPC filter 195 of FIG. 2B) has not completely dissipated by the end of that frame, Occurs because it may cause a filter drive or excitation (ie, "ringing") that spans the frame of.

【0029】このリンギング信号は後続のフレームにお
いてひずみとして現れるが、その理由はこのリンギング
信号がそのフレームの音声内容と無関係であるためであ
る。もし該リンギング信号が除去されなければ、それは
コードパラメータの選択に影響を与えかつデコーダ30
0によって合成される音声の品質を劣化させる。
The ringing signal appears as distortion in subsequent frames because it is independent of the speech content of that frame. If the ringing signal is not removed, it affects the selection of code parameters and the decoder 30.
0 deteriorates the quality of speech synthesized.

【0030】音声115からフィルタリンギング信号1
96をマイナス(減算)したものに関する情報を含む音
声残留または残差信号143はデコーダ130から信号
131とともにスペクトルインバースフィルタ145に
供給される。フィルタ145は典型的にはゼロフィルタ
として実施できるが(すなわち、A(z)=A+A
1z −1+…+A−nであり、ここで各AはLPC
フィルタの係数でありかつzは該フィルタの「Z変換」
である)、しかし技術上よく知られた他の手段も使用で
きる。信号131および143はフィルタ145におい
てLPCインバースろ波された音声を生成するためにコ
ンボリューションによって組合わされる。フィルタ14
5の出力信号146はカスケード重み付けフィルタ15
0に送られる。フィルタ150は典型的には極(pol
e)フィルタとして実施されるが(すなわち、1/A
(z/r)、ただしA(z/r)=A+Arz−1
+…+A−nであり、かつ各AはLPCフィル
タ係数であり、またrは拡張ファクタでありかつzは該
フィルタの「Z変換」である)、しかし技術上よく知ら
れた他の手段を用いることもできる。
Filter ringing signal 1 from voice 115
The speech residual or residual signal 143, which contains information about minus 96 (subtracted), is provided from the decoder 130 along with the signal 131 to the spectral inverse filter 145. Filter 145 can typically be implemented as a zero filter (ie, A (z) = A 0 + A
1z -1 + ... + a A n z -n, each A LPC here
Is the coefficient of the filter and z is the "Z transform" of the filter
However, other means well known in the art can also be used. Signals 131 and 143 are combined by convolution to produce LPC inverse filtered speech at filter 145. Filter 14
5 output signal 146 is a cascade weighting filter 15
Sent to 0. Filter 150 is typically a pole.
e) implemented as a filter (ie 1 / A
(Z / r), where A (z / r) = A 0 + A 1 rz −1
+ ... + A n r n z −n and each A is an LPC filter coefficient, r is an expansion factor and z is the “Z transform” of the filter), but are well known in the art. Other means can also be used.

【0031】ブロック150からの出力信号152はブ
ロック135から到達する帯域幅拡張されたLPC係数
信号136によるインパルス関数(たとえば、1,0,
0,…,0)のコンボリューションから得られる知覚的
に重み付けられたLPCインパルス関数H(n)であ
る。信号136はまたブロック150においてコンボリ
ューションによって信号146と組合わされ出力151
においてパス141から得られる知覚的に重み付けられ
た短時間遅延目標音声信号X(n)を生成する。
The output signal 152 from block 150 is an impulse function (eg 1, 0, 0, ...) Due to the bandwidth expanded LPC coefficient signal 136 arriving from block 135.
0, ..., 0) is the perceptually weighted LPC impulse function H (n) obtained from the convolution of 0 ,. Signal 136 is also combined with signal 146 by convolution in block 150 to output 151.
Generate the perceptually weighted short delay target audio signal X (n) obtained from path 141 at.

【0032】重み付けフィルタ150の出力151およ
び152は適応コードブックサーチャ220に供給され
る。目標音声信号151(すなわち、X(n))および
知覚的に重み付けされたインパルス関数信号152(す
なわち、H(n))はサーチャ220および適応コード
ブック155によって使用されてピッチ周期(すなわ
ち、フィルタ195のための駆動ベクトル)およびそれ
に対するゲインであって、デジタル化入力音声フレーム
117に最も近く対応するものを決定する。これが達成
される方法は図3および図4に関連してより詳細に説明
する。
The outputs 151 and 152 of weighting filter 150 are provided to adaptive codebook searcher 220. The target speech signal 151 (ie, X (n)) and the perceptually weighted impulse function signal 152 (ie, H (n)) are used by the searcher 220 and the adaptive codebook 155 to produce a pitch period (ie, filter 195). Drive vector) and the gain therefor that most closely correspond to the digitized input speech frame 117. The way in which this is achieved will be explained in more detail in connection with FIGS.

【0033】次に、ブロック162,165,170お
よび175を含むデータパス161を参照すると、ピッ
チ予測器メモリ減算器162が長時間遅延ピッチ予測器
フィルタ190における前のフィルタ状態192を11
7を介してメモリ116から受信されたデジタル化入力
サンプル音声115から減算してサンプルされた音声マ
イナス長時間遅延ピッチ予測器フィルタ190のリンギ
ングからなる出力信号163を与える。出力信号163
はスペクトル予測器メモリ減算器165に供給される。
Referring now to datapath 161, which includes blocks 162, 165, 170 and 175, pitch predictor memory subtractor 162 sets previous filter state 192 in long delay pitch predictor filter 190 to 11
7 provides an output signal 163 consisting of the sampled speech minus the long delay pitch predictor filter 190 ringing subtracted from the digitized input sample speech 115 received from memory 116 via 7. Output signal 163
Is supplied to the spectrum predictor memory subtractor 165.

【0034】スペクトルメモリ減算器165はブロック
142に関して述べたのと同様の機能を達成し、かつ短
時間遅延スペクトル予測器(「スペクトルの」)フィル
タのリンギングまたはリングダウン信号196をピッチ
減算器162を介して送信されたデジタル化入力音声フ
レーム117から減算する。これは、現在のフレームの
サンプルされた音声117から前のフレームから残され
た長時間遅延(「ピッチ」)フィルタ190および短時
間遅延(「スペクトル」)フィルタ195のリンギング
を減算したものからなる剰余出力信号166を生成す
る。剰余信号166はブロック145と類似したスペク
トルインバースフィルタ170に供給される。
Spectral memory subtractor 165 performs a function similar to that described with respect to block 142, and reduces the short delay spectral predictor ("spectral") filter ringing or ringdown signal 196 to pitch subtractor 162. Subtract from digitized input speech frame 117 transmitted over. This is the remainder consisting of the sampled speech 117 of the current frame minus the ringing of the long delay (“pitch”) filter 190 and the short delay (“spectral”) filter 195 left over from the previous frame. Generate an output signal 166. The remainder signal 166 is provided to a spectral inverse filter 170 similar to block 145.

【0035】インバースフィルタ170は剰余信号16
6およびデコーダ130の出力132を受信する。信号
132はデコードされた量子化LPC係数に関する情報
を含む。フィルタ170はコンボリューションによって
信号166および132を組合わせLPCインバースろ
波音声を備えた出力信号171を生成する。出力信号1
71はブロック150に類似したカスケード重み付けフ
ィルタ175に送られる。
The inverse filter 170 outputs the remainder signal 16
6 and the output 132 of the decoder 130. Signal 132 contains information about the decoded quantized LPC coefficients. The filter 170 combines the signals 166 and 132 by convolution to produce an output signal 171 with LPC inverse filtered speech. Output signal 1
71 is sent to a cascade weighting filter 175 similar to block 150.

【0036】重み付けフィルタ175はフィルタ170
からの信号171および帯域幅拡張重み付け発生器13
5からの信号137を受信する。信号137は帯域幅拡
張LPC係数に関する情報を含む。カスケード重み付け
フィルタ175は出力信号176,177を発生する。
フィルタ175は典型的には極フィルタ(すなわち、複
素面に極のみ)として実施されるが、技術上よく知られ
た他の手段も使用できる。
The weighting filter 175 is the filter 170.
171 from and the bandwidth extension weighting generator 13
The signal 137 from 5 is received. Signal 137 contains information about bandwidth-enhanced LPC coefficients. Cascade weighting filter 175 produces output signals 176 and 177.
Filter 175 is typically implemented as a pole filter (ie, only poles in the complex plane), although other means well known in the art can be used.

【0037】信号137,171はフィルタ175にお
いてコンボリューションによって組合わされ出力177
においてパス121から得られた知覚的に重み付けられ
たLPCインパルス関数H(n)を生成し、かつ出力1
76においてパス161から得られた知覚的に重み付け
られた長時間遅延および短時間遅延目標音声信号Y
(n)を生成する。出力信号176,177は推計的ま
たは確率的(stochastic)サーチャ225に
送られる。確率的サーチャ225は確率的コードブック
180を使用して最適のホワイトノイズベクトルおよび
最適のスケーリング(ゲイン)ファクタを選択し、これ
らは、所定の係数のピッチおよびLPCフィルタに印加
された時、入力デジタル音声フレーム117に対し最善
の整合を与える。確率的サーチャ225は技術上よく知
られた動作を行いかつ一般に図3および図4に関連して
より詳細に説明する適応サーチャ220によって達成さ
れるものと類似の動作を行う。
Signals 137 and 171 are combined by convolution in filter 175 and output 177.
Generate the perceptually weighted LPC impulse function H (n) obtained from path 121 at
At 76, the perceptually weighted long and short delay target speech signal Y obtained from path 161.
(N) is generated. The output signals 176, 177 are sent to a stochastic or stochastic searcher 225. The probabilistic searcher 225 uses the probabilistic codebook 180 to select the optimal white noise vector and the optimal scaling (gain) factor, which when applied to the pitch of the predetermined coefficient and the LPC filter. Gives the best match to audio frame 117. Probabilistic searcher 225 operates in a manner well known in the art and generally operates similar to that achieved by adaptive searcher 220 described in more detail in connection with FIGS.

【0038】要約すると、チェイン141においては、
スペクトルインバースフィルタ145はLSP131お
よび剰余143を受信しかつその出力146をカスケー
ド重み付けフィルタ150に送信して出力152に知覚
的に重み付けされたLPCインパルス関数応答H(n)
を発生しかつ出力151に知覚的に重み付けされた短時
間遅延目標音声信号X(n)を発生する。チェイン16
1においては、スペクトルインバースフィルタ170は
LSP132と短時間遅延および長時間遅延音声残差
(residual)166を受信し、かつその出力1
71を重み付けフィルタ175に送り出力177に知覚
的に重み付けられたLPCインパルス関数H(n)を発
生しかつ出力176に知覚的に重み付けられたショート
タームおよびロングターム遅延目標音声信号Y(n)を
発生する。
In summary, in the chain 141,
Spectral inverse filter 145 receives LSP 131 and residue 143 and sends its output 146 to cascade weighting filter 150 to output 152 a perceptually weighted LPC impulse function response H (n).
And a perceptually weighted short-time delayed target speech signal X (n) at output 151. Chain 16
1, the spectral inverse filter 170 receives the LSP 132 and the short and long delay speech residuals 166 and outputs 1
71 to the weighting filter 175 to generate the perceptually weighted LPC impulse function H (n) at the output 177 and the perceptually weighted short-term and long-term delayed target speech signal Y (n) at the output 176. Occur.

【0039】集合的に230とラベル付けられたブロッ
ク135,150,175は知覚的重み付け機能を提供
する。チェイン121からのデコードされたLSPはブ
ロック135において出力136,137に帯域幅拡張
重み付けファクタを発生するために使用される。重み付
けファクタ136,137はカスケード重み付けフィル
タ150および175において知覚的に重み付けられた
LPCインパルス関数H(n)を発生するために使用さ
れる。知覚的重み付けブロック230の各要素はLPC
係数に応答して重要な音声内容を有することが知られて
いる音声の部分を強調するマトリクスの形式のスペクト
ル重み付け情報を計算する。このスペクトル重み付け情
報1/A(z/r)はカスケード重み付けフィルタ15
0および175の有限インパル応答H(n)に基づく。
有限インパルス応答関数H(n)の利用はコードブック
サーチャ220および225が達成しなければならない
計算の数を大幅に低減する。スペクトル重み付け情報は
サーチャによってコードブック155および180から
の駆動情報に対する最善の候補を決定するために利用さ
れる。
Blocks 135, 150, 175 collectively labeled 230 provide a perceptual weighting function. The decoded LSP from chain 121 is used at block 135 to generate a bandwidth expansion weighting factor at outputs 136 and 137. Weighting factors 136, 137 are used to generate perceptually weighted LPC impulse function H (n) in cascade weighting filters 150 and 175. Each element of the perceptual weighting block 230 is an LPC.
In response to the coefficients, compute spectral weighting information in the form of a matrix that emphasizes portions of the speech known to have significant speech content. This spectrum weighting information 1 / A (z / r) is used as the cascade weighting filter 15.
Based on finite impal response H (n) of 0 and 175.
Utilizing the finite impulse response function H (n) significantly reduces the number of calculations that the codebook searchers 220 and 225 must accomplish. The spectral weighting information is utilized by the searcher to determine the best candidate for the driving information from codebooks 155 and 180.

【0040】図2の(a)および(b)を引き続き参照
すると、適応コードブックサーチャ220はチャネルコ
ーダ210に送られるべき最適の適応コードブックベク
トル指数221および関連するゲイン222を発生す
る。確率的コードブックサーチャ225はチャネルコー
ダ210に送信されるべき最適の確率的コードブックベ
クトル指数226、および関連するゲイン227を発生
する。これらの信号はチャネルコーダ210によってエ
ンコードされる。
With continued reference to FIGS. 2A and 2B, adaptive codebook searcher 220 produces an optimal adaptive codebook vector index 221 and associated gain 222 to be sent to channel coder 210. Probabilistic codebook searcher 225 produces an optimal stochastic codebook vector index 226 to be transmitted to channel coder 210 and an associated gain 227. These signals are encoded by the channel coder 210.

【0041】チャネルコーダ210は5つの信号を受信
する。すなわち、コーダ125からの量子化LSP12
6、最適確率的コードブックベクトル指数226および
そのためのゲイン設定227、および適応コードブック
ベクトル指数221とそのためのゲイン設定222であ
る。チャネルコーダ210の出力はエンコードされたパ
ラメータの直列的なビットストリーム104である。ビ
ットストリーム104はチャネル106を介してCEL
Pデコーダ300(図1を参照)に送られ、そこで、デ
コードの後、回復されたLSP、コードブックーベクト
ルおよびゲイン設定は同じフィルタおよびコードブック
に印加されて合成された音声302を生成する。
Channel coder 210 receives five signals. That is, the quantized LSP 12 from the coder 125
6, optimal stochastic codebook vector index 226 and gain setting 227 therefor, and adaptive codebook vector index 221 and gain setting 222 therefor. The output of channel coder 210 is a serial bitstream 104 of encoded parameters. Bitstream 104 is CEL over channel 106
It is sent to a P-decoder 300 (see FIG. 1), where after decoding, the recovered LSP, codebook vector and gain settings are applied to the same filter and codebook to produce synthesized speech 302.

【0042】すでに説明したように、CELPコーダ1
00は分析、合成および比較のプロセスによりデコーダ
300に送信されるべき最適のCELPパラメータを決
定する。試験的なCELPパラメータを使用した結果は
入力音声とフレームごとに比較され最適のCELPパラ
メータが選択できるようにしなければならない。ブロッ
ク190,195,197,200,205および23
5はこれを達成するためにすでに図2の(a)および
(b)において説明したブロックと組合わせて使用され
る。選択されたCELPパラメータ(LSP係数、コー
ドブックベクトルおよびゲイン、その他)は出力211
を介してデコーダ182に受け渡されそこでそれらのパ
ラメータはブロック190,195,197,200,
205および235に分配されかつ次にすでに述べたブ
ロック142,145,150,162,165,17
0および175に戻る。
As already explained, the CELP coder 1
00 determines the optimal CELP parameters to be sent to the decoder 300 by the process of analysis, synthesis and comparison. The results of using the trial CELP parameters must be compared on a frame-by-frame basis with the input speech so that the optimal CELP parameters can be selected. Blocks 190, 195, 197, 200, 205 and 23
5 is used to achieve this in combination with the blocks already described in Figures 2a and 2b. The selected CELP parameters (LSP coefficient, codebook vector and gain, etc.) are output 211
To the decoder 182, where those parameters are passed to blocks 190, 195, 197, 200,
205 and 235 and blocks 142, 145, 150, 162, 165, 17 already mentioned above.
Return to 0 and 175.

【0043】ブロック182は信号126,221,2
22,226,227を回復するためにコーダ210か
らの信号211をデコードする機能を有する「チャネル
デコーダ」として識別される。しかしながら、当業者は
ブロック210−182によって示されるコード−デコ
ード動作は省略できかつ信号126,221,222,
226,227は符号化されない形式でブロック182
に供給されブロック182は単に該信号をブロック19
0,195,197,200,205および235に分
配するためのバッファとして作用するようにできること
を理解するであろう。いずれの構成も満足すべきもので
あり、かつ用語「チャネルコーダ182」、「コーダ1
82」または「ブロック182」はそのような情報を受
け渡すための構成または任意の他の手段を示すことを意
図している。
Block 182 represents signals 126, 221, 2
Identified as a "channel decoder" that has the ability to decode the signal 211 from the coder 210 to recover 22, 226, 227. However, those skilled in the art can omit the code-decode operation represented by blocks 210-182 and use signals 126, 221, 222,
226 and 227 are blocks 182 in uncoded form
Block 182 simply supplies the signal to block 19
It will be appreciated that it can be made to act as a buffer for distribution to 0, 195, 197, 200, 205 and 235. Both configurations are satisfactory and the terms "channel coder 182", "coder 1"
82 "or" block 182 "is intended to indicate an arrangement or any other means for passing such information.

【0044】デコーダ182の出力信号は、ブロック1
95に送られる量子化LSP信号126、ブロック19
0に送られる適応コードブック指数信号221、ブロッ
ク190に送られる適応コードブックベクトルゲイン指
数信号222、ブロック180に送られる確率的コード
ブック指数信号226、およびブロック197に送られ
る確率的コードブックベクトルゲイン指数信号227で
ある。これらの信号はフィルタ190を駆動し、それに
より適応コードブック155およびフィルタ195に供
給される出力191を生成する。出力191はコーダ1
82の出力126と組合わせてさらにフィルタ195を
駆動し合成された音声196を生成する。
The output signal of the decoder 182 is the block 1
Quantized LSP signal 126 to block 95, block 19
Adaptive codebook exponent signal 221, sent to block 190, adaptive codebook vector gain exponent signal 222, sent to block 180, stochastic codebook exponent signal 226, and stochastic codebook vector gain, sent to block 197. The index signal 227. These signals drive filter 190, thereby producing output 191 that is provided to adaptive codebook 155 and filter 195. Output 191 is coder 1
In combination with output 126 of 82, filter 195 is further driven to produce synthesized speech 196.

【0045】シンセサイザ228はゲイン乗算器19
7、長時間遅延ピッチ予測器190、および短時間遅延
スペクトル予測器195、減算器235、スペクトルイ
ンバースフィルタ220およびカスケード重み付けフィ
ルタ205を具備する。デコードされたパラメータ12
6,221,222,226および227を使用して、
確率的コードベクトル179が選択されかつゲインパラ
メータ226によっスケーリングされるべきゲイン乗算
器197に送られる。ゲイン乗算器197の出力198
は長時間遅延ピッチ予測器190によって使用され音声
残差191を発生する。フィルタ状態出力情報192、
これはまた技術上予測器フィルタ190の音声残差(s
peech residual)とも称されるが、フィ
ルタメモリの更新のためにピッチメモリ減算器162に
送られる。そのパラメータが入力LPCパラメータ信号
126によってセットされるLPCフィルタである、短
時間遅延スペクトル予測器195が音声残差191によ
って駆動され合成デジタル音声出力196を生成する。
同じ音声残差信号191は適応コードブック155の更
新のために使用される。
The synthesizer 228 is a gain multiplier 19
7, a long delay pitch predictor 190, a short delay spectrum predictor 195, a subtractor 235, a spectrum inverse filter 220 and a cascade weighting filter 205. Decoded parameter 12
6,221,222,226 and 227,
The stochastic code vector 179 is selected and sent to the gain multiplier 197 to be scaled by the gain parameter 226. Output 198 of gain multiplier 197
Is used by the long delay pitch estimator 190 to generate the speech residual 191. Filter status output information 192,
This is also technically the speech residual of the predictor filter 190 (s
Also referred to as "peek residual", it is sent to the pitch memory subtractor 162 for updating the filter memory. A short delay spectrum predictor 195, which is an LPC filter whose parameters are set by the input LPC parameter signal 126, is driven by the speech residual 191 to produce a synthetic digital speech output 196.
The same speech residual signal 191 is used for updating the adaptive codebook 155.

【0046】合成音声196は減算器235によってデ
ジタル化入力音声197から減算されデジタル音声剰余
出力信号236を生成する。音声剰余236はスペクト
ルインバースフィルタ200に供給され残留誤差信号2
02を発生する。出力信号202はカスケード重み付け
フィルタ205に供給され、かつ出力フィルタ状態情報
206,207は信号パス141および161と組合わ
せて前に述べたようにカスケード重み付けフィルタ15
0および175を更新するために使用される。スペクト
ルインバースフィルタ200のフィルタ状態情報であ
る、出力信号201,203はブロック145,170
に関して前に述べたようにスペクトルインバースフィル
タ145および170を更新するために使用される。
The synthesized voice 196 is subtracted from the digitized input voice 197 by the subtractor 235 to generate a digital voice remainder output signal 236. The speech residue 236 is supplied to the spectrum inverse filter 200 and the residual error signal 2 is supplied.
02 is generated. The output signal 202 is provided to the cascade weighting filter 205, and the output filter state information 206, 207 in combination with the signal paths 141 and 161 is cascade weighting filter 15 as previously described.
Used to update 0 and 175. Output signals 201 and 203, which are filter state information of the spectrum inverse filter 200, are output to blocks 145 and 170.
Used to update the spectral inverse filters 145 and 170 as described above with respect to.

【0047】図3および図4は適応コードブックサーチ
ャ220の単純化したブロック図である。図3は適応コ
ードブックサーチャ220の適切な構成を示しかつ図4
はさらに改良された構成を示す。図4の構成が好まし
い。
FIGS. 3 and 4 are simplified block diagrams of adaptive codebook searcher 220. FIG. 3 illustrates a suitable configuration of adaptive codebook searcher 220 and FIG.
Shows a further improved configuration. The configuration of Figure 4 is preferred.

【0048】次に図3および図4を概略的に参照する
と、適応コードブック155の情報は前のフレームから
の励起または駆動情報である。各々のフレームに対し、
前記駆動情報はサンプルされた元の音声と同じ数のサン
プルからなる。コードブック155は便宜的には巡回的
なリストとして編成され、それにより新しい組のサンプ
ルが単にコードブック155にシフト入力されて該コー
ドブックに現在ある前のサンプルに置き変わるようにさ
れる。新しい駆動サンプルは長時間遅延ピッチ予測器1
90の出力191によって提供される。
Referring now generally to FIGS. 3 and 4, the information in adaptive codebook 155 is the excitation or drive information from the previous frame. For each frame,
The drive information consists of the same number of samples as the original audio sampled. The codebook 155 is conveniently organized as a cyclic list so that a new set of samples is simply shifted into the codebook 155 to replace the previous sample currently in the codebook. New driving sample is long delay pitch predictor 1
90 provided by output 191.

【0049】コードブック155からの駆動情報を使用
する場合、サーチャ220は組(sets)で、すなわ
ち、サブフレームで処理しかつ該ベクトルをばらばらに
なったサンプルとして取扱わない。サーチャ220はコ
ードブック155におけるサンプルをリニアアレイとし
て取扱う。たとえば、60サンプルのフレームに対し、
サーチャ220はコードブック155からのサンプル1
〜サンプル60を使用して第1の候補の組の情報を形成
し、サンプル2〜サンプル61を使用して第2の組の候
補の情報を形成し、以下同様である。このタイプのコー
ドブックサーチはしばしばオーバラッピング・コードブ
ックサーチと称される。本発明はコードブック155の
構造および機能に関するものではなく、最適のコードブ
ックベクトルを識別するためにどのようにしてコードブ
ック155がサーチされるかに関するものである。
When using the drive information from codebook 155, searcher 220 does not process the vectors in sets, ie, in subframes, and as disjoint samples. Searcher 220 treats the samples in codebook 155 as a linear array. For example, for a 60 sample frame,
Searcher 220 is sample 1 from codebook 155
~ Sample 60 is used to form the first set of candidate information, Samples 2 to 61 are used to form the second set of candidate information, and so on. This type of codebook search is often referred to as an overlapping codebook search. The invention does not relate to the structure and function of codebook 155, but to how codebook 155 is searched to identify the optimal codebook vector.

【0050】適応コードブックサーチャ220は図2の
(b)における出力191からすでに適応コードブック
155に格納された前に合成されたピッチ情報156を
アクセスし、かつ各々のそのような組の情報156を利
用してブロック150から受信された目標駆動151お
よびコードブック155からアクセスされた駆動156
の間のエラー基準を最小化する。スケーリングファクタ
またはゲイン指数222もまた各々のアクセスされた組
の情報156から計算されるが、それは適応コードブッ
ク155に記憶された情報は人間の声または他の入力信
号のダイナミックレンジの変化を考慮に入れないからで
ある。
Adaptive codebook searcher 220 accesses previously synthesized pitch information 156 already stored in adaptive codebook 155 from output 191 in FIG. 2B, and each such set of information 156. Target drive 151 received from block 150 and drive 156 accessed from codebook 155 using
Minimize the error criterion between A scaling factor or gain index 222 is also calculated from each accessed set of information 156, which the information stored in the adaptive codebook 155 allows for changes in the dynamic range of the human voice or other input signal. Because I can't enter.

【0051】使用される好ましいエラー基準は最小2乗
予測エラー(MPSE)であり、これはフレームメモリ
出力117からの元の音声フレーム115と図2の
(b)のブロック195の出力において生成される合成
音声196の間の誤差の2乗である。合成音声196は
コードブック155から得られた試行的駆動情報156
に関して計算される。エラー基準はコードブック155
から得られた各々の候補ベクトルまたは組の駆動情報1
56に対して評価され、かつ最も低いエラー値を与える
特定の組の駆動情報156′が現在のフレーム(または
サブフレーム)のために使用される組の情報である。
The preferred error criterion used is Least Squares Prediction Error (MPSE), which is produced at the original speech frame 115 from the frame memory output 117 and at the output of block 195 of FIG. 2B. It is the square of the error between the synthetic speech 196. The synthetic speech 196 is the trial drive information 156 obtained from the codebook 155.
Is calculated with respect to. The error criterion is Codebook 155
Driving information 1 for each candidate vector or set obtained from
The particular set of drive information 156 'that is evaluated for 56 and gives the lowest error value is the set of information used for the current frame (or subframe).

【0052】サーチャ220が対応する最善の整合のス
ケーリングファクタまたはゲイン222とともに使用さ
れるべき最善の組の駆動情報156′を決定した後、最
善の整合の指数156′に対応するベクトル指数出力信
号221および最善の整合のスケーリングファクタ22
2′に対応するスケーリングファクタ222はチャネル
エンコーダ210に送信される。
After the searcher 220 has determined the best set of driving information 156 'to be used with the corresponding best matching scaling factor or gain 222, the vector exponential output signal 221 corresponding to the best matching exponent 156'. And the best matching scaling factor 22
The scaling factor 222 corresponding to 2'is transmitted to the channel encoder 210.

【0053】図3は第1の実施例による適応サーチャ2
20のブロック図を示し、かつ図4はさらに改良されか
つ好ましい実施例による適応サーチャ220′を示す。
適応サーチャ220,220′は適応コードブック15
5を介してベクトル指数C(n)…C(n)の順次
的なサーチを行う。順次的(sequential)サ
ーチ動作の間、サーチャ220,220′はコードブッ
ク155から各々の候補励起または駆動ベクトルC
(n)をアクセスし、ここでkはコードブックにおけ
る特定のベクトルを識別する1からKに至る指数であ
り、かつnはn=1からn=Nに至る別の指数であり、
Nは与えられたフレーム内のサンプルの数である。典型
的なCELPのアプリケーションにおいては、K=25
6または512または1024であり、かつN=60ま
たは120または240であるが、KおよびNの他の値
も使用することができる。
FIG. 3 shows the adaptive searcher 2 according to the first embodiment.
20 shows a block diagram of 20 and FIG. 4 shows an adaptive searcher 220 'according to a further improved and preferred embodiment.
The adaptive searchers 220 and 220 'are the adaptive codebook 15
5, a vector index C 1 (n) ... C k (n) is sequentially searched. During a sequential search operation, the searchers 220, 220 ′ may search for each candidate excitation or drive vector C from the codebook 155.
Access k (n), where k is an index from 1 to K that identifies a particular vector in the codebook, and n is another index from n = 1 to n = N,
N is the number of samples in a given frame. In a typical CELP application, K = 25
6 or 512 or 1024 and N = 60 or 120 or 240, but other values of K and N can also be used.

【0054】適応コードブック155は前に合成された
音声波形から決定されるセットの異なるピッチ期間また
は周期を含む。第1のサンプルベクトルは合成音声波形
(N)のN番目のサンプルからスタートし、これは
現在の最後のサンプルの合成された音声波形からNサン
プル戻った所に位置する。人間の声では、ピッチ周波数
は一般に40Hz〜500Hzの付近である。これは約
200〜16サンプルに変換される。もし分数的な(f
ractional)ピッチが計算に含まれておれば、
Kはピッチ範囲を表すために256または512となり
得る。従って、適応コードブックは1組のKのベクトル
(n)を含み、これらは基本的に特定の周波数の1
つまたはそれ以上のピッチ期間のサンプルである。
Adaptive codebook 155 includes a set of different pitch periods or periods determined from the previously synthesized speech waveform. The first sample vector starts from the Nth sample of the synthesized speech waveform C k (N), which is N samples back from the synthesized speech waveform of the current last sample. For human voices, the pitch frequency is generally around 40 Hz to 500 Hz. This translates to about 200-16 samples. If fractional (f
rational) If pitch is included in the calculation,
K can be 256 or 512 to represent the pitch range. Therefore, the adaptive codebook contains a set of K vectors C k (n), which are essentially one for a particular frequency.
Samples of one or more pitch periods.

【0055】次に図3を参照すると、適応コードブック
サーチャ220のコンボリューション発生器510は各
々のコードブックベクトルC(n)、すなわち、信号
156、を知覚的に重み付けられたLPCインパルス応
答関数H(n)、すなわち、カスケード重み付けフィル
タ150からの信号152でコンボルブする。コンボリ
ューション発生器510の出力512は次に相互相関器
(cross−correlator)520において
目標音声残差信号X(n)(すなわち、図2の(a)お
よび(b)の信号151)と相互相関される。コンボリ
ューションおよび相関は各々のコードブックベクトルC
(n)に対して行われ、ここでn=1,…,Nであ
る。コンボリューション発生器510によって行われる
動作は数学的に次の式(1)によって表される。 相互相関発生器520によって行われる動作は数学的に
以下の式(2)によって表される。
Referring now to FIG. 3, the convolution generator 510 of the adaptive codebook searcher 220 provides a perceptually weighted LPC impulse response function for each codebook vector C k (n), or signal 156. H (n), ie, convolve with the signal 152 from the cascade weighting filter 150. The output 512 of the convolution generator 510 is then cross-correlated with the target speech residual signal X (n) (ie, signal 151 of FIGS. 2A and 2B) in a cross-correlator 520. To be done. The convolution and correlation are for each codebook vector C
performed on k (n), where n = 1, ..., N. The operation performed by the convolution generator 510 is mathematically represented by equation (1) below. The operation performed by cross-correlation generator 520 is mathematically represented by equation (2) below.

【0056】コンボリューション発生器510の出力5
12はまたエネルギ計算機535に供給され、該エネル
ギ計算機535は2乗器552およびアキュムレータ5
53(アキュムレータ553は2乗器552によって決
定される2乗の和を提供する)を具備する。出力554
は除算器(divider)530に伝達され、該除算
器530は信号551および555の比率を計算する。
相互相関器520の出力521は2乗器525に供給さ
れ、該2乗器525の出力はまた除算器530に供給さ
れる。除算器530の出力531はピーク選択回路57
0に供給され、該ピーク選択回路570の機能はC
(n)のどの値C(m)が最善の整合を生成する
か、すなわち、最大の相互相関を決定することである。
これは数学的には式(3a)および(3b)によって表
される。式(3a)はエラーEを表す。 エラーEを最小にすることは以下の式(3b)により表
される相互相関を最大にすることであり、ここでG
式(4)で規定される。
Output 5 of convolution generator 510
12 is also fed to an energy calculator 535, which has a squarer 552 and an accumulator 5.
53 (accumulator 553 provides the sum of squares determined by squarer 552). Output 554
Is transmitted to a divider 530, which calculates the ratio of signals 551 and 555.
The output 521 of the cross-correlator 520 is fed to a squarer 525, the output of which is also fed to a divider 530. The output 531 of the divider 530 is the peak selection circuit 57.
0, and the function of the peak selection circuit 570 is C
It is to determine which value C k (m) of k (n) produces the best match, ie the maximum cross-correlation.
This is mathematically represented by equations (3a) and (3b). Equation (3a) represents the error E. Minimizing the error E is maximizing the cross-correlation represented by equation (3b) below, where G k is defined by equation (4).

【0057】最適のベクトル指数C(m)の識別子
(指数)は出力221に伝達される。ピーク選択器57
0の出力571は最善の整合のピッチベクトルC
(m)に関連するゲインスケーリング情報をゲイン指
数出力222を提供するゲイン計算機580に伝達す
る。ゲイン計算機580によって行われる演算は数学的
に以下の式(4)により表される。
The identifier (index) of the optimal vector index C k (m) is transmitted to the output 221. Peak selector 57
The output 571 of 0 is the best matching pitch vector C
The gain scaling information associated with k (m) is communicated to gain calculator 580, which provides gain index output 222. The operation performed by the gain calculator 580 is mathematically represented by the following equation (4).

【0058】出力221および222はチャネルコーダ
210に送られる。コンボリューション発生器510、
相互相関発生器520、2乗器525および552(こ
れらは異なる入力に対し同様の機能を達成する)、アキ
ュムレータ553、除算器530、ピーク選択器570
およびゲイン計算機580を提供するための手段はそれ
ぞれ技術上よく知られている。
The outputs 221 and 222 are sent to the channel coder 210. A convolution generator 510,
Cross-correlation generator 520, squarers 525 and 552 (these perform similar functions for different inputs), accumulator 553, divider 530, peak selector 570.
And means for providing gain calculator 580 are each well known in the art.

【0059】図3の構成は満足すべき結果を与えるが、
各々のコードブックベクトルに対し必要なコンボリュー
ションを行いかつ相関を行うために必要以上の計算を必
要とする。これはコンボリューション510および相関
520が共に各々の音声フレーム117に対するコード
ブック155におけるすべての候補ベクトルに対し行わ
なければならないためである。図3の構成におけるこの
制限は図4の構成により克服される。
The configuration of FIG. 3 gives satisfactory results,
It requires more computation than necessary to perform the necessary convolution and correlation for each codebook vector. This is because both convolution 510 and correlation 520 must be done for all candidate vectors in codebook 155 for each speech frame 117. This limitation in the configuration of FIG. 3 is overcome by the configuration of FIG.

【0060】図4の適応コードブックサーチャ220′
はコンボリューション信号W(n)を発生するためにコ
ンボリューション発生器510′におけるショートター
ムLPCフィルタのインパルス知覚的重み付け応答関数
H(n)(すなわち、図2のブロック150の出力15
2)とコンボルブするために知覚的に重み付けされた目
標音声X(n)のフレーム(すなわち、図2の(a)お
よび(b)の信号151)を使用する。これは入力音声
のフレーム117ごとに1度だけ行われる。これはコー
ドブックにおける候補ベクトルの数にほぼ等しい大きな
ファクタで計算機的な負荷を直ちに低減する。これは非
常に大きな計算機的な節約になる。コンボリューション
発生器510によって行われる動作は以下の式(5)に
より数学的に表現される。
Adaptive codebook searcher 220 'of FIG.
Is the impulse perceptual weighting response function H (n) of the short-term LPC filter in convolution generator 510 'to generate convolution signal W (n) (ie, output 15 of block 150 of FIG. 2).
2) Use the perceptually weighted frame of the target speech X (n) (ie, signal 151 of FIGS. 2a and 2b) to convolve with 2). This is done only once per frame 117 of the input speech. This immediately reduces the computational load by a large factor that is approximately equal to the number of candidate vectors in the codebook. This is a huge computational savings. The operation performed by the convolution generator 510 is mathematically represented by equation (5) below.

【0061】コンボリューション発生器510′の出力
512′は次に相互相関発生器520′により適応コー
ドブック155における各ベクトルC(n)と相関さ
れる。相互相関発生器520′により行われる演算は数
学的に次の式(6)によって表される。
The output 512 'of the convolution generator 510' is then correlated by the cross-correlation generator 520 'with each vector C k (n) in the adaptive codebook 155. The operation performed by the cross-correlation generator 520 'is mathematically represented by the following equation (6).

【0062】出力551′は2乗器525′により2乗
され候補ベクトルC(n)のエネルギにより正規化さ
れた各ベクトルC(n)の相関の2乗である出力52
1′を生成する。これは自己相関発生器560′に各々
の候補ベクトルC(n)(出力156)を提供するこ
とにより、かつその出力が引き続き操作されかつ組合わ
される自己相関発生器550′に対しフィルタのインパ
ルス応答H(n)(出力152からの)を提供すること
により達成される。自己相関発生器550′の出力55
2′は後にその機能を説明するルックアップテーブル5
50′に供給される。テーブル555′の出力556′
は乗算器543に供給され、そこで自己相関器560′
の出力561と組合わされる。
The output 551 'is the square of the correlation of each vector Ck (n) squared by the squarer 525' and normalized by the energy of the candidate vector Ck (n).
1'is generated. This is by providing each candidate vector C k (n) (output 156) to the autocorrelation generator 560 ', and the impulse of the filter for the autocorrelation generator 550' whose output is subsequently manipulated and combined. This is accomplished by providing the response H (n) (from output 152). Output 55 of autocorrelation generator 550 '
2'is a lookup table 5 whose function will be described later.
50 '. Output 556 'of table 555'
Is fed to a multiplier 543, where the autocorrelator 560 '
Output 561 of the.

【0063】乗算器543′の出力545′はアキュム
レータ540′に供給され、該アキュムレータ540′
はnの引き続く値に対する積を加算しかつその和54
1′を除算器530に送り、そこで相互相関発生器52
0′の出力521′と組合わされる。自己相関器56
0′により行われる操作は数学的に以下の式(7)によ
って記述され、かつ自己相関器550′により行われる
演算は数学的に次の式(8)により記述される。 この場合、C(n)はk番目の適応コードブックベク
トルであり、各ベクトルは1からKに至る指数kにより
識別され、H(n)は知覚的に重み付けされたLPCイ
ンパルス応答であり、Nは分析フレームにおけるテジタ
ル化されたサンプルの数であり、そしてmはダミー整数
指数であり、nは音声フレーム内のNのサンプルの内ど
れが考慮されているかを示す整数指数である。
The output 545 'of the multiplier 543' is supplied to the accumulator 540 ', and the accumulator 540'.
Adds the products of n to successive values and sums 54
1'is sent to the divider 530, where the cross-correlation generator 52
0's output 521 'combined. Autocorrelator 56
The operation performed by 0'is mathematically described by equation (7) below, and the operation performed by autocorrelator 550 'is mathematically described by equation (8) below. In this case, C k (n) is the k-th adaptive codebook vector, each vector is identified by an index k ranging from 1 to K, and H (n) is a perceptually weighted LPC impulse response, N is the number of digitized samples in the analysis frame, and m is a dummy integer exponent, and n is an integer exponent indicating which of the N samples in the speech frame are considered.

【0064】上記サーチ操作は各々の候補ベクトルC
(n)をMSPEサーチ基準を使用して目標音声残差X
(n)と比較する。コードブック155の出力156か
ら受信された各々の候補ベクトルC(n)は自己相関
発生器560′に送られ、該自己相関発生器560′は
候補ベクトルのすべての自己相関係数を発生して自己相
関出力信号561′を生成し、該信号561′はブロッ
ク543′および540′を具備するエネルギ計算機5
35′に供給される。
The above search operation is performed for each candidate vector C k.
(N) target speech residual X using MSPE search criteria
Compare with (n). Each candidate vector C k (n) received from the output 156 of the codebook 155 is sent to an autocorrelation generator 560 'which generates all the autocorrelation coefficients of the candidate vector. To produce an autocorrelation output signal 561 ', which signal 561' comprises blocks 543 'and 540'.
35 '.

【0065】自己相関発生器550′はH(n)関数の
すべての自己相関係数を発生して自己相関出力信号55
2′を生成し、該信号552′はテーブル555′およ
び出力556′を介してエネルギ計算機535′に供給
される。
The autocorrelation generator 550 'generates all the autocorrelation coefficients of the H (n) function and outputs the autocorrelation output signal 55.
2 ', which signal 552' is provided to energy calculator 535 'via table 555' and output 556 '.

【0066】エネルギ計算機535′は入力信号55
6′および561′を候補ベクトルC(n)のすべて
の自己相関係数およびカスケード重み付けフィルタ15
0により発生される知覚的に重み付けされたインパルス
関数H(n)のすべての積の項を加算することにより組
合わせる。エルネギ計算機535′はC(n)の自己
相関係数をH(n)の自己相関係数の同じ遅延項(信号
561′および552′)と乗算するための乗算器54
3′、および乗算器543′の出力を加算して除算器5
30に送られる候補ベクトルのエネルギに関する情報を
含む出力541′を生成するアキュムレータ540′を
具備する。除算器530′はゲインをセットするために
使用されるエネルギ正規化を行う。候補ベクトルC
(n)のエルネギは候補ベクトルC(n)のすべて
の自己相関係数および知覚的に重み付けされたショート
タームフィルタ150の知覚的に重み付けされたインパ
ルス関数H(n)のすべての積の項を加算することによ
り非常に効率的に計算される。ループゲインGを決定
するための上に述べた演算は数学的に以下の式(9)に
よって記述される。 この場合、C(n)、X(m)、H(n)、Φ
(n)、U(n)およびNは前に規定されており、
かつGはk番目のコードベクトルのループゲインであ
る。
Energy calculator 535 'receives input signal 55
6 ′ and 561 ′ are all autocorrelation coefficients of the candidate vector C k (n) and cascade weighting filter 15
Combine by summing all product terms of the perceptually weighted impulse function H (n) generated by 0. Ernegi Calculator 535 'is a multiplier 54 for multiplying the autocorrelation coefficient of C k (n) with the same delay terms (signals 561' and 552 ') of the autocorrelation coefficient of H (n).
3 ', and the output of the multiplier 543' is added and the divider 5
It comprises an accumulator 540 'that produces an output 541' containing information about the energy of the candidate vector sent to 30. Divider 530 'performs the energy normalization used to set the gain. Candidate vector C
k Erunegi the all products of candidate vector C k (n) of all the autocorrelation coefficients and the perceptually weighted short-term filter 150 perceptually weighted impulse function H (n) of (n) It is calculated very efficiently by adding the terms. The above-described operation for determining the loop gain G k is mathematically described by equation (9) below. In this case, C k (n), X (m), H (n), Φ
k (n), U k (n) and N have been previously defined,
And G k is the loop gain of the kth code vector.

【0067】テーブル555′は計算機的な負担をさら
に低減できるようにする。これはインパルス関数H
(n)の自己相関係数552′が入力音声のフレーム1
17ごとに1度だけ計算されればよいからである。これ
はコードブックサーチの前に1行うことができかつその
結果はテーブル555′に記憶することができる。コー
ドブックサーチの前にテーブル555′に記憶された自
己相関係数552′は次に後に適応コードブック155
から各候補ベクトルに対するエネルギを計算するために
使用される。これは計算をさらに大幅に節約できるよう
にする。
The table 555 'enables the computational load to be further reduced. This is the impulse function H
The autocorrelation coefficient 552 'of (n) is the frame 1 of the input speech.
This is because it only has to be calculated once for every 17. This can be done one before the codebook search and the results can be stored in table 555 '. The autocorrelation coefficient 552 'stored in the table 555' prior to the codebook search is then followed by the adaptive codebook 155 '.
Is used to calculate the energy for each candidate vector. This allows to save even more computation.

【0068】コードブック155における各ベクトルの
正規化された相関の結果はピークセレクタ570′にお
いて比較されかつ最大の相互相関値を有するベクトルC
(m)はピークセレクタ570′により最適のピッチ
周期ベクトルとして識別される。最大の相互相関は数学
的に以下の式(10)によって表すことができる。 この場合、Gは式(9)において規定されており、か
つmはダミー整数指数である。
The normalized correlation results of each vector in codebook 155 are compared in peak selector 570 'and vector C having the largest cross-correlation value.
k (m) is identified by peak selector 570 'as the optimal pitch period vector. The maximum cross-correlation can be mathematically represented by equation (10) below. In this case G k is defined in equation (9) and m is a dummy integer exponent.

【0069】ピッチ周期のロケーション、すなわち、コ
ードベクトルC(m)の指数はチャネルコーダ210
への送信のために出力221′に提供される。
The location of the pitch period, that is, the index of the code vector C k (m) is the channel coder 210.
Is provided at output 221 'for transmission to.

【0070】ピッチゲインはゲイン計算機580′によ
り選択されたピッチ周期の候補ベクトルC(m)を使
用して計算されゲイン指数222′を発生する。ここに
述べた手段および方法は、実質的に音声品質の喪失を生
ずることなく計算機的な複雑さを低減する。計算機的な
複雑さが低減されるから、この構成を用いたボコーダは
単一のデジタル信号プロセッサ(DSP)によってより
都合よく実施することができる。本発明の手段および方
法はまた、最小2乗予測エラー(MPSE)サーチ基準
を使用する、音声認識および音声識別のような他の領域
に適用することができる。
The pitch gain is calculated using the pitch period candidate vector C k (m) selected by the gain calculator 580 'to generate a gain index 222'. The means and methods described herein reduce the computational complexity with virtually no loss of voice quality. Vocoders using this configuration can be more conveniently implemented by a single digital signal processor (DSP) because of reduced computational complexity. The means and methods of the present invention can also be applied to other areas, such as speech recognition and speech identification, which use least squares prediction error (MPSE) search criteria.

【0071】本発明が、ここに述べた方法および装置に
よって生成される、時には目標音声残差(target
speech residual)と称される、知覚
的に重み付けされた目標音声信号X(n)に関して述べ
られたが、本発明の方法は知覚的に重み付けされた目標
音声X(n)を得るためにここで使用された特定の手段
および方法に限定されるものではなく、他の手段および
方法によって得られる目標音声と共にかつ知覚的重み付
けまたはフィルタのリンギングの除去を用いあるいは用
いずに使用するこができる。
The present invention is sometimes produced by the methods and apparatus described herein, sometimes with a target speech target.
Although described with reference to a perceptually weighted target speech signal X (n), referred to as speech residual), the method of the present invention is now described to obtain a perceptually weighted target speech signal X (n). It is not limited to the particular means and method used and can be used with target speech obtained by other means and methods and with or without perceptual weighting or removal of filter ringing.

【0072】「音声(speech)」または「目標音
声(target speech)」に適用される「残
差(residual)」なる用語はフィルタのリンギ
ング信号が音声または目標音声から減算されている状況
を含むことを考えている。ここで用いられているよう
に、用語「音声残差」または「目標音声」または「目標
音声残差」および省略表現“X(n)”はそのような変
形を含むものである。同じことはまた、有限または無限
インパルス応答関数とすることができ、かつ知覚的重み
付けを用いあるいは用いない、インパルス応答関数H
(n)についても当てはまる。ここで用いられているよ
うに、用語「知覚的に重み付けされたインパルス応答関
数(perceptually weighted i
mpulseresponse function)」
または「フィルタインパルス応答(filter im
pulse response)」および“H(n)”
なる表記は、そのような変形を含むことを意図してい
る。同様に、ワード「ゲイン指数(gain inde
x)」または「ゲインスケーリングファクタ(gain
scaling factor)」およびその表記G
は、そのような「ゲイン」または「エネルギ」正規化信
号が音声のCELP符号化に関連して取り入れる多くの
形式を含むものである。
The term "residual" as applied to "speech" or "target speech" includes the situation where the ringing signal of the filter is subtracted from the speech or target speech. Thinking. As used herein, the terms "voice residual" or "target voice" or "target voice residual" and the abbreviation "X (n)" are meant to include such variations. The same also applies to the impulse response function H, which can be a finite or infinite impulse response function and with or without perceptual weighting.
The same applies to (n). As used herein, the term “perceptually weighted impulse response function (perceptually weighted i.
mpulse response function ”
Or "filter impulse response (filter im
"pulse response)" and "H (n)"
Is intended to include such variations. Similarly, the word "gain inde
x) ”or“ gain scaling factor (gain)
scaling factor) ”and its notation G k
Includes many forms that such "gain" or "energy" normalized signals will incorporate in connection with CELP coding of speech.

【0073】図4に示された実施例によって提供される
有利性をもってしても、かなりの計算機的な負担が依然
として残っている。たとえば、図4のブロック560′
における自己相関係数の評価(前記式(7)を参照)
は、コードブック155におけるKのベクトルに対する
エネルギ正規化(ゲイン)係数を計算するために(K)
・(N!)の乗算を必要とする。Kは典型的には512
または1024のオーダでありかつNは典型的には60
または120または240のオーダであるから、(K)
・(N!)=(K)・(N)・(N−1)・(N−2)
…(2)は通常非常に大きな数となる。これらの計算
は、ブロック510′,520′,550′の動作に必
要とされるものおよび特定の適応コードブックベクトル
k=j(n)およびGk=jの対応する値と共に、最
も適合する確率的コードブックベクトルおよび、入力音
声に対し目標音声X(n)の最善の適合(最小のエラ
ー)を与える、対応するゲインファクタを再帰的に決定
するのに必要な他のものの他に必要である。これは必要
な計算を合理的な時間内に行うためにかなりの量の計算
機的な能力を必要とする。
Even with the advantages offered by the embodiment shown in FIG. 4, a significant computational burden remains. For example, block 560 'of FIG.
Evaluation of autocorrelation coefficient in (see above equation (7))
To compute the energy normalization (gain) coefficients for the K vectors in codebook 155 (K)
• Requires (N!) Multiplication. K is typically 512
Or on the order of 1024 and N is typically 60
Or because it is on the order of 120 or 240, (K)
・ (N!) = (K) ・ (N) ・ (N-1) ・ (N-2)
(2) is usually a very large number. These calculations are best fit with what is required for the operation of blocks 510 ', 520', 550 'and the corresponding values of the particular adaptive codebook vectors C k = j (n) and G k = j. Needed in addition to the stochastic codebook vector and others needed to recursively determine the corresponding gain factor that gives the best fit (minimum error) of the target speech X (n) to the input speech. is there. This requires a significant amount of computational power to make the necessary calculations in a reasonable amount of time.

【0074】ベクトル当たりNのエントリのKのベクト
ルを有するコードブックに対して行われることが必要な
自己相関演算の数は音声品質に大きな悪影響を与えるこ
となくかなり低減できることが分かった。これは、Nの
エントリの内の第1のP(P<<N)に対するコードブ
ックベクトルを自己相関してそれに対する第1の自己相
関値を決定する段階、Kのコードブックベクトルおよび
前記第1の自己相関値を使用して合成音声を生成しかつ
その結果を入力音声と比較することによってKのコード
ブックベクトルを評価する段階、Kのコードブックベク
トルの内のどのS(S<<K)が評価されたK−Sの残
りのベクトルよりも入力音声と比較してより少ないエラ
ーを有する合成音声を提供するかを決定する段階、各コ
ードブックベクトルにおけるRのエントリに対するKの
ベクトルの内のこれらのSに対するコードブックベクト
ル(P<R≦N)を自己相関してそれに対する第2の自
己相関値を提供する段階、前記第2の自己相関値を使用
してKのベクトルの内の前記Sを再評価しSのコードブ
ックベクトルの内のどれが入力音声と比較して最少のエ
ラーを提供するかを識別する段階、そして最少のエラー
を提供するコードブックベクトルの識別を使用して音声
フレームに対するCELPコードを形成する段階、を具
備する方法によって達成される。ここに述べられた大き
さのKおよびNに対しては、5≦P≦10かつ1≦S≦
7の範囲のPおよびSが適切である。R=NまたはN−
1であることが望ましい。
It has been found that the number of autocorrelation operations that need to be performed on a codebook with K vectors of N entries per vector can be significantly reduced without a significant negative impact on speech quality. This comprises autocorrelating a codebook vector for a first P (P << N) of N entries to determine a first autocorrelation value for it, K codebook vectors and said first Evaluating the codebook vector of K by generating the synthesized speech using the autocorrelation value of S and comparing the result with the input speech, which S (S << K) of the K codebook vectors of K Determines whether to provide the synthesized speech with less error compared to the input speech than the rest of the evaluated K-S vectors, of the K vectors for the R entries in each codebook vector. Autocorrelating a codebook vector (P <R ≦ N) for these S to provide a second autocorrelation value for it, using said second autocorrelation value Re-evaluating the S of the codebook vectors of S to identify which of the S codebook vectors provide the least error compared to the input speech, and of the codebook vector providing the least error. Forming the CELP code for the speech frame using the identification. For K and N of the magnitudes stated here, 5 ≦ P ≦ 10 and 1 ≦ S ≦
P and S in the range of 7 are suitable. R = N or N-
It is desirable that it is 1.

【0075】上に述べた動作はまたここに与えられた式
および図に関して説明することができる。たとえば、m
=0〜N−1に対する、n=1〜Nに対する、かつk=
1〜k=Kの各々の値に対し、式(7)を再帰的に評価
する代わりに、以下の手順が用いられる。 (1)m=0〜m=P、ここでP<<N、に対し、式
(7)に従ってブロック550′においてコードブック
ベクトルC(n)の自己相関を行い、(2)それによ
って検出されたU(P)のPの値を使用し、すべての
KのベクトルC(n)を再帰的に評価しかつKのベク
トルC(n)の内のSの、S<<K、入力音声に対し
最も近い整合を提供するものを選択し、次に(3)上の
ステップ(2)において選択されたKのベクトルの内の
Sを最初に選択されたPの値より多く、好ましくはすべ
てm=0〜m=N−1の値、を使用して再帰的に再評価
し、式(7)におけるU(m)を決定し入力音声に対
する最善の適合を与えるj番目の値Ck=j(n)およ
び対応するゲイン指数またはファクタGk=jを決定
し、そして(4)前と同様に、Ck=j(n)およびG
k=jをチャネルコーダ210に送る。
The operations described above can also be described with reference to the equations and figures provided herein. For example, m
= 0 to N−1, n = 1 to N, and k =
Instead of recursively evaluating equation (7) for each value of 1-k = K, the following procedure is used. (1) For m = 0 to m = P, where P << N, autocorrelate the codebook vector C k (n) in block 550 ′ according to equation (7), and (2) detect it accordingly. Using the value of P of U k (P) that has been calculated, recursively evaluate all K vectors C k (n) and S of S of K vectors C k (n), S << K , Selecting the one that provides the closest match to the input speech, and then (3) more S of the K vectors selected in step (2) above than the value of P originally selected, Recursively reevaluate using preferably all values of m = 0 to m = N−1 to determine U k (m) in equation (7) and give the j-th best fit to the input speech. Determine the value C k = j (n) and the corresponding gain index or factor G k = j , and ( 4) As before, C k = j (n) and G
Send k = j to the channel coder 210.

【0076】ここで使用されているように、「再帰的
(recursively)」は反復的な合成による分
析(analysis−by−synthesis)コ
ードブックサーチおよび図2の(a)および(b)と図
4に関して説明したエラー最少化手順を言及している。
As used herein, "recursive" is an analysis-by-synthesis codebook search and FIGS. 2 (a) and 2 (b) and FIG. It refers to the error minimization procedure described above.

【0077】出力音声品質はPが約P=10まで増大す
るに応じて改善され、P>10に対してはそれ以上の少
しの改善があることが分かっている。良好な音声品質は
5≦P≦10に対して得られる。音声品質はP<5に対
し急速に劣化する。Nは通常60またはそれ以上のオー
ダであるから、かなりの計算機的な節約が得られる。
It has been found that the output voice quality improves as P increases up to about P = 10, with a slight improvement over P> 10. Good voice quality is obtained for 5 ≦ P ≦ 10. The voice quality deteriorates rapidly for P <5. Since N is typically on the order of 60 or more, considerable computational savings are obtained.

【0078】有用な音声品質はSの値をS=1にまで小
さくし、かつ音声品質はSが増大するにつれて増大する
ことが分かっている。約S=7を超えると、音声品質の
それ以上の改善は検出するのが困難になる。従って、1
≦S≦7が有用な動作範囲であり、これは最適のコード
ブックベクトルおよび対応するゲイン指数またはファク
タに対する再帰的サーチの間に達成されなければならな
い計算の数を大幅に低減する。これは単一のデジタル信
号プロセッサを使用して所望のボコーダ機能を達成する
のをさらに容易にする。
It has been found that useful voice quality reduces the value of S to S = 1, and voice quality increases as S increases. Above about S = 7, further improvement in voice quality becomes difficult to detect. Therefore, 1
≦ S ≦ 7 is a useful operating range, which significantly reduces the number of calculations that must be accomplished during the recursive search for the optimal codebook vector and corresponding gain index or factor. This makes it easier to achieve the desired vocoder function using a single digital signal processor.

【0079】どのようにしてコードブックエントリが構
築されかつ自己相関が行われるかに関しさらに別の問題
が存在する。これはショートピッチ期間の識別に供する
ために従来技術においてしばしば使用されている「コピ
ーアップ(copy−up)」と称される手順の結果と
して生ずる(たとえば、前述のケッチャム他の米国特許
を参照)。これは次のように説明される。
Yet another problem exists as to how codebook entries are constructed and autocorrelated. This occurs as a result of a procedure called "copy-up" that is often used in the prior art to provide for the identification of short pitch periods (see, for example, the aforementioned Ketchum et al. Patent). . This is explained as follows.

【0080】最適のピッチ周期に対する適応コードブッ
クサーチにおけるエラー関数のエネルギ項は2つの関数
の自己相関係数のリニアな組合わせに低減することがで
きる。これら2つの関数は知覚的に重み付けされたショ
ートターム・リニアフィルタのインパルス応答関数H
(n)および適応コードブックのコードブックベクトル
(n)である。適応コードブックについては計算機
的な複雑さが確率的コードブックより大きくなるが、そ
れは適応コードブックベクトルに対する自己相関係数が
予め計算しかつ記憶しておくことができないからであ
る。
The energy term of the error function in the adaptive codebook search for the optimum pitch period can be reduced to a linear combination of the autocorrelation coefficients of the two functions. These two functions are the impulse response function H of the perceptually weighted short-term linear filter.
(N) and the codebook vector C k (n) of the adaptive codebook. The computational complexity of the adaptive codebook is greater than that of the probabilistic codebook, because the autocorrelation coefficient for the adaptive codebook vector cannot be pre-computed and stored.

【0081】各々の適応コードブックベクトルは、サン
プルまたは値とも称される、Nのエントリのリニアアレ
イである。各エントリは1〜Nに至るあるいはN〜1に
至る指数nにより識別される。コードブックにおける隣
接ベクトルは互いに1つのエントリだけ異なる、すなわ
ち、各引き続くベクトルは該ベクトルの終りに加えられ
た1つの新しいエントリを有しかつ該ベクトルの他の端
からドロップされる1つの古いエントリを有し介在する
エントリは同じままである。従って、該ベクトルの端部
を除き、隣接ベクトルは1つの指数だけずれた同じエン
トリを有する。もし隣接するベクトルが並んで配置され
れば、それらは1つのエントリまたはサンプルだけずれ
ておれば釣り合うことになる。これは0から9の間の任
意的なエントリ値および指数n=1−60を有する仮想
的な隣接ベクトルk,k′に対し以下に概略的に説明す
る。この変位(displacement)はコードブ
ック「オーバラップ」と称される。
Each adaptive codebook vector is a linear array of N entries, also called samples or values. Each entry is identified by an index n ranging from 1 to N or N to 1. Adjacent vectors in the codebook differ from each other by one entry, that is, each subsequent vector has one new entry added at the end of the vector and one old entry dropped from the other end of the vector. The intervening entries have remain the same. Therefore, except for the ends of the vector, adjacent vectors have the same entry offset by one index. If adjacent vectors are placed side by side, they would be balanced if they were offset by one entry or sample. This is outlined below for a virtual adjacency vector k, k 'with an arbitrary entry value between 0 and 9 and an index n = 1-60. This displacement is referred to as the codebook "overlap".

【0082】 実例I−ベクトルオーバラップの例示 k(n): 1,2,3,4,5,6,7,……,55,56,57,58,59,60 (指数) 4,6,9,3,5,1,8,……, 0, 4, 6, 8, 2, 3 (値) k ′(n): 1,2,3,4,5,6,7,…… ,55,56,57,58,59,60 (指数) 6,9,3,5,1,8,5,…… , 4, 6, 8, 2, 3, 7 (値) ベクトルk′は1つの指数によって変位した隣接ベクト
ルkと同じエントリを有し、かつ古いエントリはベクト
ルの一端からドロップされ(たとえば、値4は左端をド
ロップされ)かつ新しいエントリがパターンに加えられ
る(たとえば、値7が右端に加えられる)。
Example I-Illustration of Vector Overlap k (n): 1,2,3,4,5,6,7, ..., 55,56,57,58,59,60 (Index) 4,6 , 9,3,5,1,8, ……, 0, 4, 6, 8, 2, 3 (value) k ′ (n): 1,2,3,4,5,6,7, …… , 55,56,57,58,59,60 (index) 6,9,3,5,1,8,5, ……, 4, 6, 8, 2, 3, 7 (value) Vector k ′ is It has the same entries as the neighbor vector k displaced by one exponent, and old entries are dropped from one end of the vector (eg, the value 4 is dropped on the left) and new entries are added to the pattern (eg, the value 7). Is added to the right edge).

【0083】自己相関関数U(m)は方程式(7)で
与えられ、この場合m=0〜N−1は積C(n)*C
(n+m)における「遅れ(lag)」値であり、か
つn=1〜Nはベクトルエントリの指数(index)
である。今までは、ベクトル長N(すなわち、コードブ
ックベクトルごとのエントリの数)およびフレーム長L
(すなわち、分析フレームごとの音声サンプルの数)は
同じであると仮定してきた。しかしこれは常にそうであ
る訳ではない。NおよびLが同じであるかあるいは異な
るかに応じて自己相関係数を決定するために異なる作戦
が使用される。
The autocorrelation function U k (m) is given by equation (7), where m = 0 to N−1 is the product C k (n) * C
“lag” value in k (n + m), and n = 1 to N is the index of the vector entry
Is. So far, the vector length N (ie the number of entries per codebook vector) and frame length L
(Ie the number of audio samples per analysis frame) has been assumed to be the same. But this is not always the case. Different strategies are used to determine the autocorrelation coefficient depending on whether N and L are the same or different.

【0084】ベクトル長Nがフレーム長Lに等しいかま
たは大きい場合には、自己相関係数は加算−削除(ad
d−delete)エンドコレクションと呼ばれるプロ
セスによって計算できる。たとえば、引き続く適応コー
ドブックベクトルC,C′C″などのゼロオーダ
またはゼロ遅延(遅れm=0)自己相関係数は最初のベ
クトルに対し(C(n))の和を計算しかつエンド
コレクションによって他のベクトルを検出することによ
り決定できる。エンドコレクションは新しく加算された
ベクトル値の2乗を加算しかつたった今削除されたベク
トル値の2乗を減算することを必要とする。この同じ手
順が(いくつかの変化を伴って)m=1,2,3などに
対し続けられ、その結果計算機的な負担が各々のベクト
ルに対し別個に式(7)により各自己相関係数を計算す
る場合に比較して低減される。自己相関係数を決定する
ためのこの加算−削除エンドコレクション処理は技術上
よく知られている。
If the vector length N is equal to or larger than the frame length L, the autocorrelation coefficient is added-deleted (ad
d-delete) It can be calculated by a process called end collection. For example, a zero-order or zero-delay (delay m = 0) autocorrelation coefficient, such as a subsequent adaptive codebook vector C k , C k ′ C k ″, calculates the sum of (C k (n)) 2 for the first vector. And can be determined by detecting another vector with end collection, which requires adding the square of the newly added vector value and subtracting the square of the just deleted vector value. This same procedure is followed (with some changes) for m = 1, 2, 3, etc., so that the computational burden is calculated separately for each vector by equation (7) for each autocorrelation coefficient. This is reduced compared to the case of computing .. This add-delete end-correction process for determining the autocorrelation coefficient is well known in the art.

【0085】ベクトルにおけるサンプルの数がフレーム
長Lより小さい場合には、フレームを満たすために該ベ
クトルを「コピーアップ(copy−up)」すること
が普通である(たとえば、前述のケッチャム他の米国特
許を参照)。たとえば、もしフレーム長が60でありか
つ20のエントリのみが分析において使用されておれ
ば、これら20のエントリは3回繰り返されて60のベ
クトル長を得る。これは以下にベクトル値の指数に関し
て説明する。
If the number of samples in the vector is less than the frame length L, it is common to "copy-up" the vector to fill the frame (eg, Ketchum et al., Supra, US). See patent). For example, if the frame length is 60 and only 20 entries are used in the analysis, these 20 entries are repeated 3 times to get 60 vector lengths. This is explained below in terms of vector-valued exponents.

【0086】 実例II−コピーアップ ベクトル 1,2,................................59,60 コピーアップベクトル 1,2,...,19,20,1,2,...,19,20,1,2,...,19,20. Illustrative Example II- Copyup Vectors 1,2, .................. 59,60 Copyup Vectors 1,2, ..., 19,20,1,2, ..., 19,20,1,2, ..., 19,20.

【0087】この複製または「コピーアップ」はもし自
己相関係数を計算するための前に述べた加算−削除エン
ドコレクション方法を用いようとするとエラーを生ず
る。これらのエラーは合成された音声の品質を劣化させ
る。
This duplication or "copy-up" results in an error if one tries to use the previously mentioned add-delete end correction method for calculating the autocorrelation coefficient. These errors degrade the quality of the synthesized speech.

【0088】エンドコレクションのエラーはmのより大
きな値、すなわち、自己相関関数における高い次数の
(より大きな「遅れ」の項)に対し増大する。前に述べ
た単純な加算−削除エンドコレクション手順はコピーア
ップされたベクトルに対してはもはや満足に動作しな
い。従ってより小さな計算機的な負担(例えば、容易な
エンドコレクション)をもつためにより貧弱な音声品質
を受け入れるか、あるいはより高い音声品質および大き
な計算機的な負担(例えば、各ベクトルを別個に計算す
る)をもつかの望まない選択が残されることになる。ベ
クトルにおけるサンプルの数がフレーム長より小さい状
況に対して自己相関係数を得る計算機的な負担は以下に
述べる改良された計算機的手順および装置によって合成
された音声品質の喪失なく低減できることが分った。
The error of the end correction increases for larger values of m, ie higher orders (larger "lag" terms) in the autocorrelation function. The simple add-delete end correction procedure described above no longer works satisfactorily for copied-up vectors. Thus accepting poorer voice quality due to having a smaller computational burden (eg easy end-collection), or higher voice quality and greater computational burden (eg computing each vector separately). There will be some unwanted choices left. It has been found that the computational burden of obtaining the autocorrelation coefficient for situations where the number of samples in the vector is less than the frame length can be reduced without loss of synthesized speech quality by the improved computational procedures and apparatus described below. It was

【0089】分析フレームが長さL(例えば、60)お
よびNのサンプルまたは値(例えば、60)を有するコ
ードブックが目標音声に対し最善の整合を生成する適応
コードブックベクトルを決定するために図2から図4ま
での装置および手順に関して使用されるものと仮定す
る。さらに、短時間ピッチ周期を迅速に検出するために
ベクトル値のより小さなサブセットM<N(例えば、M
〜20)が初めに分析のために使用されるものと仮定す
る。過去において、Mのサンプルまたは値が長さLのフ
レームを満たすためにコピーアップされかつ分析はコピ
ーアップされたフレームに基づいていた。本発明の方法
によれば、Mの値のサブフレームをコピーアップする必
要はない。
A codebook in which the analysis frame has lengths L (eg, 60) and N samples or values (eg, 60) is used to determine the adaptive codebook vector that produces the best match for the target speech. 2 to 4 are assumed to be used for the apparatus and procedure. In addition, a smaller subset of vector values M <N (eg M
~ 20) are initially used for the analysis. In the past, M samples or values were copied up to fill a frame of length L and the analysis was based on the copied up frames. According to the method of the present invention, it is not necessary to copy up a subframe of M values.

【0090】この実施例に関連して与えられる説明は特
に適応コードブックベクトルの自己相関係数を効率的に
決定することに向けられており、かつより小さなエラー
および目標音声に対する最善の整合を有するコードブッ
クベクトルを選択するために使用される分析プロセスの
他の部分の説明については図2から図4までの説明を参
照すべきである。
The description given in connection with this embodiment is specifically directed to the efficient determination of the autocorrelation coefficient of the adaptive codebook vector, and has a smaller error and the best match to the target speech. Reference should be had to FIGS. 2-4 for a description of the other parts of the analysis process used to select the codebook vector.

【0091】また、式(7)を参照すべきであり、この
場合は積[C(n)*C(n+m)]のn=1〜N
かつm=0〜N−1にわたる和U(n)はk番目のベ
クトルの自己相関係数である。指数mは通常0からN−
1におよびかつ自己相関係数を計算するために使用され
る「遅れ」を識別する。1〜Kの範囲の指数kはコード
ブックベクトルを識別しかつ指数nは該ベクトル内の個
々のサンプルまたは値を示す。分析において使用される
サンプルの数は検出されるピッチ周期に依存する。例え
ば、人間の声に関連する最も短いピッチ周期については
約20のサンプルが必要とされかつ最も長いピッチ周期
に対しては約147のサンプルが必要とされる。
Also, reference should be made to the equation (7), and in this case, n = 1 to N of the product [C k (n) * C k (n + m)].
And the sum U k (n) over m = 0 to N−1 is the autocorrelation coefficient of the kth vector. The index m is usually 0 to N-
Identify the "lag" that is to be 1 and that is used to calculate the autocorrelation coefficient. An index k in the range 1 to K identifies a codebook vector and an index n indicates an individual sample or value within the vector. The number of samples used in the analysis depends on the pitch period detected. For example, about 20 samples are required for the shortest pitch period associated with the human voice and about 147 samples are required for the longest pitch period.

【0092】0次の自己相関係数はm=0に対応し、1
次の係数はm=1に対応し、かつ以下同様である。「ピ
ッチ遅れ」M<Nは分析のために使用されるべきベクト
ルにおける値の数として規定される。従って、短時間ピ
ッチ周期の音声成分に対する自己相関係数を決定する上
で、mはゼロからMまで変化する。「フレームサイズ」
Lはフレームにおける音声のサンプル数として定義され
る。通常、L=Nである。Lに対する典型的な値は60
でありかつMに対する典型的な値は20であるが、L<
Mであればこれら双方に対し他の値を使用することもで
きる。説明の便宜のため、以下の説明ではL=60およ
びM=20の値が仮定されている。しかしながら、当業
者はここに記述した説明に基づきこれらの値が制限的な
ものでないことおよびMおよびLの他の値も使用できる
ことを理解するであろう。
The zero-order autocorrelation coefficient corresponds to m = 0, and 1
The next coefficient corresponds to m = 1 and so on. The "pitch lag" M <N is defined as the number of values in the vector to be used for analysis. Therefore, m varies from zero to M in determining the autocorrelation coefficient for the voice component of the short pitch period. "Frame size"
L is defined as the number of audio samples in the frame. Usually L = N. A typical value for L is 60
And a typical value for M is 20, but L <
If M, other values can be used for both of them. For convenience of description, values of L = 60 and M = 20 are assumed in the following description. However, those skilled in the art will understand based on the description provided herein that these values are not limiting and that other values for M and L can be used.

【0093】本発明は自己相関係数を決定する場合の計
算機的な負担を低減しかつコピーアップのエラーを避け
るための手段および方法を提供する。それはコピーアッ
プが前に使用された、すなわち、最も短いピッチ周期を
迅速に識別するために限られた数のコードブックサンプ
ル(例えば、20)が必要であるが、その限られた数の
サンプルはエネルギの正規化問題を避けるために分析フ
レーム長(例えば、60)に拡張されなければならな
い、再起的な合成による分析手順の部分にあてはまる。
いったん第1のM+k−1のベクトルが分析されかつベ
クトルの拡張が完了しそれによりN=Lになれば、自己
相関係数は前に述べた加算−削除エンドコレクション処
理によって計算される。
The present invention provides means and methods for reducing the computational burden of determining autocorrelation coefficients and avoiding copy-up errors. It requires a limited number of codebook samples (eg, 20) for which copy-up was previously used, i.e. to quickly identify the shortest pitch period, but that limited number of samples is It applies to the part of the analysis procedure with recursive synthesis, which has to be extended to the analysis frame length (eg 60) to avoid energy normalization problems.
Once the first M + k-1 vectors have been analyzed and the vector expansion is complete, resulting in N = L, the autocorrelation coefficient is calculated by the add-delete end correction process described above.

【0094】好ましい実施例においては、本発明の方法
は、(1)m=0〜T<Mおよびn=1〜Mに対し式
(7)を評価することにより最初のベクトルkに対し自
己相関係数Uを決定しかつ結果をL/Mによって乗算
する。この場合、L,M,P,nおよびmは上に述べた
意味を有する。L=60およびM=20に対しては、L
/M=3である。パラメータTは自己相関遅れmのどれ
だけ多くの値が使用されるか、すなわち、どれだけ多く
の自己相関係数が計算されるかを決定する。典型的に
は、T=M−1であるが、Tの他のより小さな値も使用
できる。Tのより小さな値を使用することはコードブッ
クベクトルの支配的な値が計算されて支配的な自己相関
係数がmの小さな値に対するものである場合に有利であ
る。(2)ステップ(1)において前に得られたmの各
々の値に対し式(7)における積の和を求めかつ
(C′(n=M+1))をm=0の項に加算し、C
′(n=M+1)*C′(n=M+2)をm=1の
項に加算し、C′(n=M+1)*C′(n=M+
3)をm=2の項に加算し、かつ以下同様にT番目の項
まで行なうことによって第2のベクトルk′に対する自
己相関係数Uを決定し、かつその結果をL/(M+
1)により乗算し、(3)前記ステップ(2)において
前に得られたmの各値に対し前記積の和を行ないかつ
(C′(n=M+2))をm=0の項に加算し、C
″(n=M+2)*C″(n=M+3)をm=1の
項に加算し、C″(n=M+2)*C″(n=M+
4)をm=2の項に加算し、かつ以下同様にT番目の項
まで行なうことによって第3のベクトルk″に対する自
己相関係数Uを決定し、その結果をL/(M+2)に
よって乗算し、そして(4)前記ステップ(1)〜
(3)を残りのベクトルに対し、L/(M+k−1)=
1になるまで各々の付加的なベクトルに対し前記値を1
だけ増分して残りの自己相関係数を決定する。その後、
自己相関係数が前に述べた伝統的な従来技術の加算−削
除手順によって計算される。
In the preferred embodiment, the method of the present invention self-phases for the first vector k by evaluating (7) for (1) m = 0 to T <M and n = 1 to M. Determine the relation number U k and multiply the result by L / M. In this case L, M, P, n and m have the meanings given above. For L = 60 and M = 20, L
/ M = 3. The parameter T determines how many values of the autocorrelation delay m are used, ie how many autocorrelation coefficients are calculated. Typically T = M-1, but other smaller values of T can be used. Using a smaller value of T is advantageous when the dominant values of the codebook vector are calculated and the dominant autocorrelation coefficient is for small values of m. (2) Find the sum of the products in equation (7) for each value of m previously obtained in step (1) and add (C k ′ (n = M + 1)) 2 to the term m = 0. Then C
k '(n = M + 1) * C k ' (n = M + 2) is added to the term of m = 1, and C k '(n = M + 1) * C k ' (n = M +
3) is added to the m = 2 term, and so on until the Tth term is similarly determined, the autocorrelation coefficient U k for the second vector k ′ is determined, and the result is L / (M +
1) and (3) sum the products for each value of m previously obtained in step (2) and add (C k ′ (n = M + 2)) 2 to the term m = 0. To C
k ″ (n = M + 2) * C k ″ (n = M + 3) is added to the term of m = 1, and C k ″ (n = M + 2) * C k ″ (n = M +
4) is added to the term of m = 2, and the same procedure is performed up to the T-th term to determine the autocorrelation coefficient U k for the third vector k ″, and the result is determined by L / (M + 2). Multiply, and (4) steps (1)-
L / (M + k−1) = (3) for the remaining vectors
1 for each additional vector until 1
Increment by only to determine the remaining autocorrelation coefficient. afterwards,
The autocorrelation coefficient is calculated by the traditional prior art add-drop procedure described above.

【0095】別の方法では、コードブックベクトルの自
己相関係数は以下の式(11a)〜(11b)を使用し
てm=0〜T<Mに対し第1のベクトルk=1の係数U
(m)を計算することにより決定される。 (m)=(L/M)U′(m) (11b)
Alternatively, the autocorrelation coefficient of the codebook vector can be calculated using the following equations (11a)-(11b) for the coefficient U of the first vector k = 1 for m = 0-T <M.
It is determined by calculating k (m). U 1 (m) = (L / M) U ′ 1 (m) (11b)

【0096】上記コードブックベクトルの自己相関係数
の決定は、次に以下の式(12a)〜(12b)を使用
してm=0〜T<Mおよび(M+k−1)≦Lに対し残
りのコードブックベクトルの自己相関係数U(m)を
計算することにより決定される。 U′(m)=[U′k−1(m) +C(M+k−1)C(M+k−1+m)] (12a) U(m)={L/(M+k−1)}U′(m) (12b)
The determination of the autocorrelation coefficient of the above codebook vector then remains for m = 0-T <M and (M + k-1) ≤L using the following equations (12a)-(12b). It is determined by calculating the autocorrelation coefficient U k (m) of the codebook vector of U'k (m) = [ U'k-1 (m) + Ck (M + k-1) Ck (M + k-1 + m)] (12a) Uk (m) = {L / (M + k-1)} U ′ K (m) (12b)

【0097】合成による分析が増大する長さのベクトル
(およびそれらの対応する自己相関係数)を使用し、長
さMのベクトルでスタートしかつベクトル長がフレーム
長に等しくなるまで、すなわち、(M+k−1)=Lに
なるまで各々の引続くベクトルの長さを1サンプルだけ
増大しながら、行なわれる。フレーム長に整合するため
のショートピッチのサンプルの拡張が次に完了する。引
続くベクトルはフレーム長と同じ長さを有しかつオーバ
ラップするコードブックの各々の引続くベクトルはベク
トルの一端から古いサンプルを削除しかつ該ベクトルの
他端において新しいサンプルを加えることに対応する。
従来技術の加算−削除エンドコレクション方法が次に使
用されて分析される残りのベクトルの自己相関係数を決
定する。
Analysis by synthesis uses vectors of increasing length (and their corresponding autocorrelation coefficients), starting with a vector of length M and until the vector length equals the frame length, ie ( This is done by increasing the length of each subsequent vector by one sample until M + k-1) = L. The extension of the short pitch samples to match the frame length is then complete. Subsequent vectors have the same length as the frame length and each successive vector in the overlapping codebook corresponds to removing old samples from one end of the vector and adding new samples at the other end of the vector. ..
Prior art add-delete end correction methods are then used to determine the autocorrelation coefficients of the remaining vectors to be analyzed.

【0098】式(11a)における積の和は第1のベク
トルに対し一度だけ評価される必要がありかつ次に(M
+k−1)までの他のベクトルは前記第1のベクトルの
項から含まれる付加的な値またはサンプルに対するC
*Cの積の寄与分を加算することにより計算できる。
何らのコピーアップ手順も必要とされずかつコピーアッ
プによって生成される自己相関係数のエラーは生じな
い。これは実質的に図2から図4に関して説明した合成
による分析手順における計算機的な負担を低減する。
The sum of products in equation (11a) need only be evaluated once for the first vector and then (M
Other vectors up to + k-1) are C k for additional values or samples included from the first vector term.
It can be calculated by adding the product contributions of * C k .
No copy-up procedure is required and the auto-correlation coefficient error produced by copy-up does not occur. This substantially reduces the computational burden in the synthetic analysis procedure described with respect to FIGS.

【0099】従来技術のコピーアップ手順と本発明の手
順との間の差異がベクトル指数に関し以下に概略的に説
明される。自己相関係数の計算は遅れm、すなわち、ベ
クトルの相対変位の種々の量に対しそれ自身とのベクト
ルの積を加算することを含む。以下の例はコピーアップ
手法および本発明の手法に対する遅れ(lag)mの種
々の量に対しどの値が一緒に乗算されるかを示す。この
例における数字はベクトル値またはエントリの指数であ
り、値そのものではなく、かつベクトルに沿った各エン
トリの位置の尺度として考えることができる。
The differences between the prior art copy-up procedure and the procedure of the present invention are outlined below with respect to the vector index. The calculation of the autocorrelation coefficient involves adding the product of the vector with itself to the delay m, i.e. various amounts of relative displacement of the vector. The following example shows which values are multiplied together for various amounts of lag m for the copy-up method and the method of the present invention. The numbers in this example are vector values or exponents of entries, not the values themselves, but can be thought of as a measure of the position of each entry along the vector.

【0100】実例III−コピーアップ自己相関 コピーアップに対しては、項ごとに乗算しかつ、各nお
よびmに対し、加算を行なう。例えば、 (k=1,m=0)に対しては、1,2,3,...,19,20,1,2,
3,...,19,20,1,2,3,...,19,20 を1,2,3,...,19,20,1,2,
3,...,19,20,1,2,3,...,19,20;により乗算し、 (k=2,m=0)に対しては、1,2,...,19,20,21,1,
2,...,19,20,21,1,2,...,17,18 を1,2,...,19,20,21,1,
2,...,19,20,21,1,2,...,17,18;により乗算し、 (k=3,m=0)に対しては、1,2,...,19,20,21,22,
1,2,...,20,21,22,1,2,...,15,16を1,2,...,19,20,21,2
2,1,2,...,20,21,22,1,2,...,15,16; により乗算し、 以下同様にすべてのk,mおよびnに対して行なう。
Illustrative Example III-Copy-Up Autocorrelation For copy-up, we multiply by terms and add for each n and m. For example, for (k = 1, m = 0), 1,2,3, ..., 19,20,1,2,
3, ..., 19,20,1,2,3, ..., 19,20 to 1,2,3, ..., 19,20,1,2,
Multiply by 3, ..., 19,20,1,2,3, ..., 19,20 ;, for (k = 2, m = 0), 1,2, ..., 19,20,21,1,
2, ..., 19,20,21,1,2, ..., 17,18 to 1,2, ..., 19,20,21,1,
Multiply by 2, ..., 19,20,21,1,2, ..., 17,18; and for (k = 3, m = 0) 1,2, ..., 19,20,21,22,
1,2, ..., 20,21,22,1,2, ..., 15,16 to 1,2, ..., 19,20,21,2
2,1,2, ..., 20,21,22,1,2, ..., 15,16 ;, and so on for all k, m and n.

【0101】実例IV−改良された自己相関(m=0) 本発明の構成に対しては、m=0〜M−1に対し第1の
(例えば、20)エントリを乗算しかつ加算し、そして
次にn=M+1,n=M+2,などのエントリの積を加
算する。例えば、 (k=1,m=0)に対しては、1,2,3,...,19,20 ×1,
2,3,...,19,20 を計算し、かつL/Mにより乗算し、 (k=2,m=0)に対しては、1,2,3,...,19,20,21
×1,2,3,...,19,20,21をk=1に対して前に計算したも
のに21・21を加算することにより得、かつL/M+
1により乗算し、 (k=3,m=0)に対しては、1,2,3,...,19,20,21,2
2 ×1,2,3,...,19,20,21,22 をk=2に対して前に計
算したものに22・22を加算することにより得、かつ
L/M+2により乗算し、そしてベクトル長がフレーム
長に等しくなりかつ最後の項60・60が加算されるま
ですべてのmに対し継続し、次に従来技術と同様に処理
する。
Illustrative Example IV-Improved Autocorrelation (m = 0) For the configuration of the present invention, m = 0 to M-1 is multiplied and added by the first (eg, 20) entry, Then, products of entries such as n = M + 1 and n = M + 2 are added next. For example, for (k = 1, m = 0), 1,2,3, ..., 19,20 × 1,
Calculate 2,3, ..., 19,20 and multiply by L / M, and for (k = 2, m = 0), 1,2,3, ..., 19,20 ,twenty one
× 1,2,3, ..., 19,20,21 is obtained by adding 21 · 21 to the previously calculated value for k = 1, and L / M +
Multiply by 1, and for (k = 3, m = 0), 1,2,3, ..., 19,20,21,2
2 × 1,2,3, ..., 19,20,21,22 is obtained by adding 22 · 22 to the previously calculated for k = 2, and multiplied by L / M + 2, Then continue for all m until the vector length equals the frame length and the last term 60.60 has been added, then proceed as in the prior art.

【0102】従来技術の手法および本発明の手法に対す
る自己相関処理の上の例においては0次の項のみが示さ
れたが、当業者は本明細書の記載に基づきm=1,m=
2,その他に対する積の項を表わすためにどのようにし
てベクトルをシフトするかを理解するであろう。その処
理の助けとして、k=1,k=2およびm=1に対し本
発明のために以下の例が示される。 実例V−改良された自己相関(m=1) (k=1,m=1)に対しては、1,2,3,...,..19,20 ×
1,2,3,...,18,19 を計算し、かつL/M+1により乗算
し、 (k=2,m=1)に対しては、1,2,3,...,19,20,21
×1,2,3,....,19,20をk=1に対して前に計算されたも
のに20・21を加算することにより得、そしてL/M
+2により乗算し、 (k=3,m=1)に対しては、1,2,3,...,19,20,21,2
2 ×1,2,3,... ,19,20,21 をk=2に対して前に計算
したものに21・22を加算することにより得、そして
L/M+3により乗算し、そして評価されるすべてのk
およびmに対しL/(M+k−1)=1まで続ける。
In the above example of the autocorrelation process for the prior art technique and the technique of the present invention, only the 0th order term was shown, but one skilled in the art will know based on the description herein that m = 1, m =
2, we will see how to shift the vector to represent the product term for others. As an aid to that process, the following examples are presented for the present invention for k = 1, k = 2 and m = 1. Example V-For improved autocorrelation (m = 1) (k = 1, m = 1), 1,2,3, ...,. 19,20 x
Calculate 1,2,3, ..., 18,19 and multiply by L / M + 1, for (k = 2, m = 1), 1,2,3, ..., 19 , 20,21
X 1,2,3, ..., 19,20 is obtained by adding 20 · 21 to the one previously calculated for k = 1, and L / M
Multiply by +2, and for (k = 3, m = 1), 1,2,3, ..., 19,20,21,2
2 × 1,2,3, ..., 19,20,21 is obtained by adding 21 · 22 to the previously calculated for k = 2 and then multiplied by L / M + 3 and evaluated All k done
And m until L / (M + k-1) = 1.

【0103】本発明の好ましい実施例に係わる上に述べ
たようにして自己相関係数を決定するのに適した装置が
図5に示されている。本発明に対応する自己相関装置6
00はベクトルサンプルC(n)が図4の適応コード
ブック155から受信される信号入力602を具備す
る。ベクトルサンプルまたは値C(n)は2つのパス
604,606に従う。パス606はスイッチ608を
介して初期ベクトル(すなわち、k=1)自己相関器6
10に至る。初期ベクトル自己相関器610は前記式
(11a)により示された機能を達成し、すなわち、そ
れはk=1,m=1,2,3,…,T−1,Tに対応す
る自己相関係数U(m)を計算する。これらの自己相
関係数はスイッチ620を介してエンドコレクション係
数計算機622に伝達される。
An apparatus suitable for determining the autocorrelation coefficient as described above according to a preferred embodiment of the present invention is shown in FIG. Autocorrelation device 6 corresponding to the present invention
00 comprises a signal input 602 whose vector samples C k (n) are received from the adaptive codebook 155 of FIG. The vector sample or value C k (n) follows two paths 604,606. Path 606 passes through switch 608 the initial vector (ie, k = 1) autocorrelator 6
Up to 10. The initial vector autocorrelator 610 achieves the function illustrated by equation (11a) above, ie, it has an autocorrelation coefficient corresponding to k = 1, m = 1, 2, 3, ..., T-1, T. Calculate U 1 (m). These autocorrelation coefficients are transmitted to the end correction coefficient calculator 622 via the switch 620.

【0104】第1のベクトルの自己相関係数計算機61
0はレジスタ612および614を具備し、これらのレ
ジスタにはコードブックにおける最初のM(例えば、2
0)のサンプルがロードされる。レジスタ612,61
4は便宜的にはよく知られた直列入力/並列出力レジス
タであるが、技術上よく知られた他の構成も使用するこ
とができる。
First vector autocorrelation coefficient calculator 61
0 comprises registers 612 and 614, which contain the first M (eg 2
0) sample is loaded. Registers 612, 61
4 is a well known serial input / parallel output register for convenience, but other configurations well known in the art can be used.

【0105】前記サンプル値は自己相関器616に転送
され、該自己相関器616はm=0に対する積U
(m)=SUM[C(n)C(n+m)](すな
わち、U(0))の和を決定しかつこの係数をスイッ
チ620を介してブロック622にクロック入力する。
自己相関器616は次にレジスタ614におけるサンプ
ルをm=1に対応して、ブロック618を介し、1サン
プルだけシフトしかつU1(1)を計算し、これは次に
ブロック622にクロック出力される。この手順が初期
ベクトルC(n)に対するすべての自己相関係数が決
定されかつブロック622にロードされるまで続けられ
る。スイッチ608および620は次に自己相関発生器
610をクロック622から切離す。
The sampled values are transferred to an autocorrelator 616, which in turn multiplies the product U for m = 0.
1 (m) = SUM [C 1 (n) C 1 (n + m)] (ie, U 1 (0)) is determined and this coefficient is clocked into block 622 via switch 620.
The autocorrelator 616 then shifts the sample in register 614 by one sample and computes U1 (1), corresponding to m = 1, through block 618, which is then clocked out to block 622. . This procedure continues until all autocorrelation coefficients for the initial vector C 1 (n) have been determined and loaded into block 622. Switches 608 and 620 then disconnect autocorrelation generator 610 from clock 622.

【0106】ブロック622は前記式(11b)および
(12a)から(12b)までによって記述される機能
を達成する。これは便宜的にはレジスタ624、乗算器
626、加算器628、レジスタ−アキュムレータ63
0、乗算器632および出力バッファ634の組合わせ
によって発生される。レジスタ624,630およびバ
ッファ634は便宜的には(例えば図5に示される)レ
ジスタ612,614と同じ長さを有するが、どれだけ
多くの自己相関係数が評価され引続くベクトルに対し更
新されることが望まれるかに応じてより長くあるいはよ
り短くすることができる。例えば、レジスタ624,6
30およびバッファ634はフレーム長と同じくらいの
大きさとすることができる。
Block 622 performs the functions described by equations (11b) and (12a) through (12b) above. For convenience, this is a register 624, a multiplier 626, an adder 628, a register-accumulator 63.
0, generated by the combination of multiplier 632 and output buffer 634. Registers 624, 630 and buffer 634 are expediently of the same length as registers 612, 614 (shown in FIG. 5, for example), but how many autocorrelation coefficients are evaluated and updated for subsequent vectors. It can be longer or shorter depending on what is desired. For example, registers 624, 6
30 and buffer 634 can be as large as the frame length.

【0107】レジスタの要素630はそれに対し後続の
ベクトルに対する自己相関係数を決定するためにエンド
コレクションが加えられるべき前に計算された自己相関
係数を含む。エンドコレクションは乗算器626と組合
わされたレジスタ624によって与えられる。乗算器6
26からのエンドコレクションは加算器628において
レジスタ630からの前に計算された係数と加算され、
かつループ629を介してレジスタ630を更新するた
めフィードバックされる。レジスタ630から、自己相
関係数が乗算器632に転送され、そこでこれらは適切
なL/(M+k−1)のファクタによってスケーリング
されかつ出力バッファ634に送られ、該出力バッファ
においてそれらは、例えば、図4の出力561′を形成
し、この場合自己相関発生器600がエレメント56
0′を(M+k−1)≦Lに対しより詳細に記述する。
Register element 630 contains the autocorrelation coefficient calculated before which the end correction should be added to determine the autocorrelation coefficient for the subsequent vector. The end correction is provided by register 624 associated with multiplier 626. Multiplier 6
The end correction from 26 is added with the previously calculated coefficient from register 630 in adder 628,
And is fed back via loop 629 to update register 630. From the register 630, the autocorrelation coefficients are transferred to a multiplier 632 where they are scaled by an appropriate factor of L / (M + k−1) and sent to an output buffer 634 where they are, for example, The output 561 'of FIG. 4 is formed, in this case the autocorrelation generator 600 is the element 56
0'is described in more detail for (M + k-1) ≤L.

【0108】ブロック622の動作をさらに詳細に説明
すると、レジスタ624はベクトル値によってレジスタ
612,614と同時にロードされる。レジスタ630
は自己相関器610がブロック622から切離される前
に第1のベクトルの自己相関係数発生器610の出力U
(m)によりロードされる。これらの初期自己相関係
数は乗算器632にコピーされ、そこでこれらはL/M
によって乗算されかつバッファ634に送られ、該バッ
ファ634からそれらは図2から図4に関して説明した
合成による分析手順の間に抽出される。
To describe the operation of block 622 in more detail, register 624 is loaded simultaneously with registers 612 and 614 by vector value. Register 630
Is the output U of the first vector autocorrelation coefficient generator 610 before the autocorrelator 610 is disconnected from the block 622.
Loaded by 1 (m). These initial autocorrelation coefficients are copied to multiplier 632 where they are L / M.
Are sent to a buffer 634, from which they are extracted during the analysis procedure by synthesis described with respect to FIGS.

【0109】レジスタ630が最初のTの自己相関係数
値によってロードされた後、付加的なベクトル値がレジ
スタ624にクロック入力されかつレジスタ624の各
段のベクトル値が矢印625で示されるようにクロック
出力される。初期ベクトルがMの値を有するものと仮定
すると、今レジスタ624に存在する最も最近の値はn
=M+1である。これはベクトルk=2に対応するが、
それは各ベクトルは前のベクトルとn=(M+k−1)
=Lまで1つのエントリの加算分だけ異なるからであ
る。
After register 630 is loaded with the first T autocorrelation coefficient value, additional vector values are clocked into register 624 and the vector value of each stage of register 624 is clocked as indicated by arrow 625. Is output. Assuming the initial vector has a value of M, the most recent value now in register 624 is n.
= M + 1. This corresponds to the vector k = 2,
It means that each vector is the same as the previous vector, n = (M + k-1)
This is because one entry is different up to = L.

【0110】新しい値n=M+1は乗算器6261にお
いてそれ自身により乗算されその結果は加算器6281
に伝達されそこでそれは既にレジスタ要素6301に記
憶されている0次のU(m=0)係数と組合わされ
る。レジスタ要素6301は次に矢印6291で示され
るように更新され、それによりU(0)+C(M+
1)C(M+1)の和がいまやレジスタ要素6301
に存在しかつ乗算器632に転送されそこでL/(M+
1)により乗算されかつ、632において同じファクタ
により乗算されたレジスタ630の他の要素からの他の
更新された係数値とともに、バッファ634にロードさ
れる。カウンタ640が設けられてレジスタ624にロ
ードされたコードブックベクトルのエントリの数を追跡
しかつ乗算器632における乗算ファクタを調整し、そ
れによりそれがk=1に対してはL/(M)に対応し、
k=2に対してはL/(M+1)に対応し、かつ以下同
様に(M+k−1)=Lまで対応するようにする。
The new value n = M + 1 is multiplied by itself in the multiplier 6261 and the result is the adder 6281.
Where it is transmitted to it is already U 1 (m = 0) of the 0th order stored in the register element 6301 combined with coefficient. Register element 6301 is then updated as indicated by arrow 6291, which causes U 1 (0) + C k (M +
1) The sum of C k (M + 1) is now the register element 6301
Is present at L / (M +
1) and loaded in buffer 634 with other updated coefficient values from other elements of register 630 multiplied by 632 by the same factor. A counter 640 is provided to keep track of the number of entries in the codebook vector loaded into register 624 and adjust the multiplication factor in multiplier 632 so that it is L / (M) for k = 1. Correspondingly,
For k = 2, it corresponds to L / (M + 1), and similarly up to (M + k-1) = L.

【0111】レジスタ624からのサンプルC(M)
は乗算器6262においてC(M+1)によって乗算
されかつ加算器6282においてレジスタ要素6302
からのU(1)と加算され、この和は接続6292を
介してレジスタ要素6302を更新する。更新された値
は乗算器632に送られ、そこでL/(M+1)により
乗算されかつバッファ634に送られる。レジスタ62
4における残りのサンプルは同様にして処理されかつ次
に他のサンプル、例えば、n=M+2、がレジスタ62
4にクロック入力されかつその処理が反復される。この
ようにして、自己相関係数が前のベクトルに対しもう1
つのサンプルを加算することにより形成された各々の新
しいベクトルに対しバッファ634において得られこれ
は実例IV−Vにおける単純化された形式で示されたも
のと同様にして行なわれる。
Sample C k (M) from register 624
Is multiplied by C k (M + 1) in multiplier 6262 and register element 6302 in adder 6228.
From U 1 (1) from which the sum updates register element 6302 via connection 6292. The updated value is sent to multiplier 632, where it is multiplied by L / (M + 1) and sent to buffer 634. Register 62
The remaining samples in 4 are processed in a similar manner and then another sample, for example n = M + 2, is registered in register 62.
4 is clocked in and the process is repeated. In this way, the autocorrelation coefficient is
Obtained in buffer 634 for each new vector formed by adding the two samples, this being done in a manner similar to that shown in simplified form in Examples IV-V.

【0112】一時的記憶要素612,614,624,
630および634はレジスタまたはバッファとして記
述されているが、当業者は本明細書の開示に基づきこれ
は単に例示の便宜のためのものでありかつ、例えばこれ
に限定されるものではないが、ランダムアクセス可能な
メモリ、内容アドレス可能なメモリ、その他のような他
の形式のデータ記憶装置も使用できることを理解するで
あろう。さらに、そのようなメモリは広範囲の物理的構
成、例えば、フリップフロップ、レジスタ、コアおよび
半導体メモリ素子とすることができる。ここで使用され
ている用語「レジスタ」および「バッファ」は、単数で
あれ複数であれ、どのような種類のものであれあるいは
構成であれ任意の修正可能な情報記憶を含むことを意図
している。同様に、例えば、自己相関器616、インデ
クス装置(indexer)618、スイッチ608,
620、加算器628、乗算器626および/またはカ
ウンタ640として示される他のブロックは別個の素子
または素子の組合わせであれ、標準のまたはアプリケー
ション特定集積回路であれ、所望の機能を達成可能なプ
ログラムされた汎用プロセッサであれ、あるいはこれら
を別個にまたは組合わせた任意の形式の等価な機能を含
むことを意図している。
Temporary storage elements 612, 614, 624,
Although 630 and 634 are described as registers or buffers, one of ordinary skill in the art, based on the disclosure herein, is for convenience of illustration only and is not limited to, but is not limited to, random. It will be appreciated that other types of data storage such as accessible memory, content addressable memory, etc. may be used. Further, such memory can be in a wide variety of physical configurations, such as flip-flops, registers, cores and semiconductor memory devices. The terms "register" and "buffer" as used herein are intended to include any modifiable information store, whether singular or plural, of any kind or configuration. .. Similarly, for example, an autocorrelator 616, an indexer 618, a switch 608,
620, adder 628, multiplier 626 and / or other blocks shown as counter 640, whether discrete elements or combinations of elements, standard or application specific integrated circuits, are programs capable of achieving the desired functionality. General purpose processor, or any combination thereof, either separately or in combination, is intended to be included.

【0113】本発明は、標準フレーム長に小さな数のコ
ードブックサンプルを拡張する上で生ずる従来のコピー
アップエラーを導入することなく短時間ピッチ周期を検
出するために必要なより短いセットのコードブックベク
トルサンプル(例えば、20)に基づき標準分析フレー
ム長(例えば、60)に対する自己相関係数を決定する
迅速かつ簡単な方法を提供する。音声品質の犠牲なしに
計算機的な負担が低減されるが、それは従来技術のコピ
ーアップ構成に関連するエンド自己相関加算−削除エラ
ーが避けられるからである。コピーアップは完全に避け
られる。
The present invention provides a shorter set of codebooks needed to detect short pitch periods without introducing the traditional copy-up errors that occur in extending a small number of codebook samples to standard frame lengths. It provides a quick and easy way to determine the autocorrelation coefficient for a standard analysis frame length (eg 60) based on vector samples (eg 20). The computational burden is reduced without sacrificing voice quality because the end autocorrelation add-delete errors associated with prior art copy-up configurations are avoided. Copy-up is completely avoided.

【0114】自己相関係数を発生するための本発明の方
法がハードウェアレジスタ、自己相関器、乗算器、加算
器、スイッチなどに関連して上に述べられたが、当業者
はこれらはソフトウェアによって実現でき、それにより
前記装置についてここに説明したのと同じ機能を達成し
かつ本明細書に記載された実施例の詳細な説明に基づき
本発明の方法を実施するためにコンピュータを構成する
ことができ、かつそのような変形は本発明の範囲内であ
ることを理解するであろう。
Although the method of the present invention for generating an autocorrelation coefficient has been described above in connection with hardware registers, autocorrelators, multipliers, adders, switches, etc., those skilled in the art will understand that these are software. And configuring a computer to carry out the method of the invention based on the detailed description of the embodiments described herein, which can be realized by the following, thereby achieving the same functions as described herein for the device. It will be understood that, and such variations are within the scope of the invention.

【0115】上に述べた改良は目標音声を複製するため
の最適のコードブックベクトルを決定することに関連す
る計算機的な負担を大幅に低減するが、さらなる改良が
望まれる。特に、確率的コードブックの最適のベクトル
が識別される様式において改良が望まれる。
Although the improvements described above significantly reduce the computational burden associated with determining the optimal codebook vector for replicating the target speech, further improvements are desired. In particular, improvements are desired in the manner in which the optimal vector of the probabilistic codebook is identified.

【0116】米国特許第4,797,925号、リン
(Lin)はオーバラップする確率的ベクトルの使用に
より確率的コードブックにおけるすべてのベクトルを考
慮する計算機的な負担を低減する手順を述べている。リ
ンの構成によれば、コードブックにおける各々の引続く
ベクトルは古い値が該ベクトルの一端からドロップされ
かつ新しい値が該ベクトルの他端に加えられることによ
り先行するベクトルと異なっている。この構成によれ
ば、各々60の値を有する1024のベクトルからなる
コードブックにおける独自的な値の数は1024×60
=61,440から60+1023=1,083に低減
される。これでもなお、分析を実行するために多数の計
算が依然として必要でありかつそのステップはそれらが
引続く乗算および加算を含むため時間を浪費するもので
ある。
US Pat. No. 4,797,925, Lin, describes a procedure that reduces the computational burden of considering all vectors in a stochastic codebook by using overlapping stochastic vectors. . According to Lin's construction, each subsequent vector in the codebook differs from the preceding vector by the old value being dropped from one end of the vector and the new value being added to the other end of the vector. With this configuration, the number of unique values in the codebook of 1024 vectors, each having 60 values, is 1024 × 60.
= 61,440 to 60 + 1023 = 1,083. Even then, a large number of computations are still required to perform the analysis and the steps are time consuming as they involve subsequent multiplications and additions.

【0117】確率的コードブック180(図2の(b)
を参照)は長さNのKのベクトルS(n)を含み、こ
の場合k=1〜Kかつn=1〜N、そしてKは便宜的に
は512,1024,2048,などであり、典型的に
は1024であり、かつNは便宜的には20,40,6
0,120などであり、典型的には60である。確率的
コードブックベクトルS(n)に対する指数kおよび
nは適応コードブックベクトルC(n)に対するもの
と同じ意味を持ち、すなわち、kはどのベクトルが考慮
されているかを識別しかつnはベクトルk内で考慮され
ている値を識別する。確率的コードブック180のベク
トルに対する指数限界KおよびNは適応コードブック1
55のベクトルに対する指数限界KおよびNと同じ大き
さを有することが都合がよいが、これは必須のものでは
ない。単に説明の便宜のためかつ限定的なものではなし
に、KおよびNは両方のコードブックに対し同じ値を持
つようにすることができ、例えば、K=1024かつN
=60とすることができる。
Probabilistic codebook 180 ((b) of FIG. 2)
Contains a vector S k (n) of K of length N, where k = 1 to K and n = 1 to N, and K is conveniently 512, 1024, 2048, and so on, Typically 1024, and N is conveniently 20,40,6
0, 120, etc., and typically 60. The indices k and n for the stochastic codebook vector S k (n) have the same meaning as for the adaptive codebook vector C k (n), ie k identifies which vector is considered and n is Identify the values considered in the vector k. The exponential bounds K and N for the vectors of the stochastic codebook 180 are adaptive codebook 1
It is convenient to have the same magnitude as the exponential limits K and N for the 55 vectors, but this is not essential. For convenience of explanation only and not by way of limitation, K and N may have the same value for both codebooks, eg K = 1024 and N.
= 60.

【0118】確率的コードブック180におけるベクト
ルは便宜的には擬似ランダムな0および1または0、1
および−1のリニアアレイである。すなわち、各ベクト
ルS(n)はNの値のつながりであり、各々の値は指
数nによって識別される。図6は、コードブック180
に類似しているがK=8かつN=20の例示的な3進の
(例えば、0,1,−1)確率的コードブック180′
を示す。当業者は本明細書の記載に基づき図6のコード
ブックの特徴的機能がどのようにしてKおよびNのより
大きな値に適用されるかを理解するであろう。さらに、
図6は3進の(例えば、0,1,−1)コードブックを
示しているが、2進の(例えば、0,1または0,−
1)あるいは他の形式のコードブックも使用できる。3
進コードブックが好ましい。
Vectors in the probabilistic codebook 180 are conveniently pseudo-random 0 and 1 or 0,1.
And a linear array of -1. That is, each vector S k (n) is a concatenation of N values, each value identified by an index n. FIG. 6 shows a codebook 180.
An exemplary ternary (e.g., 0,1, -1) stochastic codebook 180 'with K = 8 and N = 20, similar to
Indicates. Those of ordinary skill in the art will understand, based on the description herein, how the characteristic features of the codebook of FIG. 6 apply to larger values of K and N. further,
Although FIG. 6 shows a ternary (eg, 0,1, −1) codebook, a binary (eg, 0,1 or 0, −)
1) or other types of codebooks can also be used. Three
A hex codebook is preferred.

【0119】kの各々の引続く値に対する図6のベクト
ルS(n)はN−2だけオーバラップする。例えば、
ベクトルSk=2(n)はベクトルSk=1(n)から
ベクトルS(n)の左端から2つの古い値をドロップ
させかつベクトルS(n)の右端において2つの新し
い値を加えることにより異なっている。従って、ベクト
ルS(n)の値はベクトルS(n)に比較して左に
2つの場所だけシフトしておりかつ右端に2つの新しい
値がある。各々の連続するベクトルは前のベクトルと同
様に異なっている。オーバラップ量、例えば、図6のN
−2、の選択は便宜的なものであるが、必須のものでは
ない。任意の値のオーバラップ、例えば、1〜N−1を
使用することができる。また、前記ベクトルは右側に新
しい値を付加することにより左にシフトされるものとし
て説明されたが、逆の方法も使用することができ、すな
わち、右にシフトしかつ左側に新しい値を加算すること
もできる。
The vector S k (n) of FIG. 6 for each successive value of k overlaps by N-2. For example,
Vector S k = 2 (n) adds two new values at the right end of the vector S k = 1 from (n) to drop two old value from the left end of the vector S 1 (n) and the vector S 1 (n) It depends on things. Therefore, the value of vector S 2 (n) is shifted by two places to the left compared to vector S 1 (n) and there are two new values at the right end. Each successive vector is as different as the previous vector. Overlap amount, for example N in FIG.
The selection of -2 is convenient, but not essential. Any value of overlap can be used, for example 1-N-1. Also, although the vector has been described as being shifted to the left by adding a new value to the right, the reverse method can also be used, i.e. shifting to the right and adding the new value to the left. You can also

【0120】最適の確率的コードブックベクトルを識別
するめたの分析手順は実質的に適応コードブックベクト
ルに対するものと同じであるが、C(n)の代わりに
(n)が使用され、すなわち、コードブック155
の代りにコードブック180が使用され、かつ知覚的に
重み付けされた短時間遅延目標音声信号X(n)(図2
の(a)から(b)までの151を参照)の代りに知覚
的に重み付けされた短時間および長時間遅延目標音声信
号Y(n)(図2の(a)および(b)の176を参
照)が使用されている。以下の式(1′),(2′),
(5′)および(6′)はそれぞれ前に与えられた式
(1),(2),(5),(6)と類似しているが、適
応コードブックに対し前に述べたものの代わりに確率的
コードブックのための適切な変数が使用されている。
The analysis procedure for identifying the optimal stochastic codebook vector is essentially the same as for the adaptive codebook vector, except that S k (n) is used instead of C k (n), That is, the codebook 155
Codebook 180 is used instead of and the perceptually weighted short delay target speech signal X (n) (FIG. 2).
Instead of (a) to (b) 151 of FIG. 2), the perceptually weighted short and long delay target speech signal Y (n) (176 of (a) and (b) of FIG. (See) is used. The following equations (1 '), (2'),
(5 ') and (6') are similar to equations (1), (2), (5), and (6) given above, respectively, but instead of those previously described for the adaptive codebook. Appropriate variables for probabilistic codebooks are used in.

【0121】確率的コードブックと適応コードブックと
の間の重要な差異は確率的コードブック180を構成す
るベクトルはコードブック155において生ずるように
合成による分析のプロセスの結果として変化せず、固定
されている。従って、式(1′)から(6′)までによ
って表わされる計算の多くはフレームごとに一回行なう
ことができかつ結果は記憶されかつ再使用される。例え
ば、確率的コードブックベクトルの自己相関は一度だけ
行なえばよいが、それはその結果が不変であるからであ
る。自己相関係数は便宜的にルックアップテーブルに記
憶されかつ再び計算する必要はない。これは計算機的な
負担を大幅に簡素化する。
The important difference between the probabilistic codebook and the adaptive codebook is that the vectors that make up the probabilistic codebook 180 do not change as a result of the synthetic analysis process as occurs in the codebook 155 and are fixed. ing. Therefore, many of the calculations represented by equations (1 ') through (6') can be done once per frame and the results stored and reused. For example, autocorrelation of a stochastic codebook vector only needs to be done once, because the result is invariant. The autocorrelation coefficient is conveniently stored in a look-up table and does not need to be calculated again. This greatly simplifies the computational burden.

【0122】確率的コードブックベクトルのどれが目標
音声を最もよく表わすかを決定する上で必要なプロセス
は確率的コードブックベクトルS(n)の値の式
(1′),(2′),(5′),(6′)により名目上
必要とされる他の信号による乗算を除去することにより
実質的に単純化できかつより高速にすることができるこ
とが発見された。本発明の手段および方法は確率的コー
ドブックベクトルを含む相互相関操作に最も有用に適用
できるが、それはまた確率的コードブックベクトルを含
むコンボリューション操作にも適用できる。説明の便宜
のため、本発明の構成は相関操作または演算について説
明するが、当業者は本明細書の記述に基づきそれがどの
ようにしてコンボリューション操作に適用できるかを理
解するであろう。
The process required to determine which of the probabilistic codebook vectors best represents the target speech is the equations (1 '), (2') of the values of the probabilistic codebook vector S k (n). , (5 '), (6'), it has been found that it can be substantially simplified and faster by eliminating the multiplication by other signals nominally required. While the means and methods of the present invention are most usefully applicable to cross-correlation operations involving stochastic codebook vectors, they are also applicable to convolution operations involving stochastic codebook vectors. For convenience of explanation, the configuration of the present invention describes a correlation operation or operation, but those skilled in the art will understand how based on the description herein how it can be applied to a convolution operation.

【0123】相互相関は第1の実施例においてマルチプ
レクサ−アキュムレータの組合わせにより達成され、該
マルチプレクサの選択ラインは前記コードブックまたは
1つまたはそれ以上の前記コードブックの複製により駆
動される。これは図7から図10を参照してより詳細に
説明する。
Cross-correlation is achieved in the first embodiment by a multiplexer-accumulator combination, the select lines of the multiplexer being driven by the codebook or one or more replicas of the codebook. This will be explained in more detail with reference to FIGS.

【0124】図7は本発明による確率的コードブック相
互相関器700の単純化されたブロック図である。相関
器700は3進(例えば、0,1,−1)コードブック
の場合について示されている。当業者は本明細書の記載
に基づいて本発明は2進および他の形式のコードブック
にも同様に適用できることを理解するであろう。以下に
説明する手順はまたコードブックベクトルを他の信号に
よりコンボルブするために使用できる。
FIG. 7 is a simplified block diagram of a stochastic codebook cross-correlator 700 according to the present invention. Correlator 700 is shown for the ternary (eg, 0,1, -1) codebook case. Those skilled in the art will understand based on the description herein that the present invention is equally applicable to binary and other forms of codebooks. The procedure described below can also be used to convolve the codebook vector with other signals.

【0125】相関器700は入力701を有し、そこで
コードブックベクトルと相互相関されるべき信号(単数
または複数)702、制限的な意味ではなく例えば、式
(5′)からの信号W′(n)、あるいはコードブック
ベクトルS(n)と相関されるべき他の信号、を受信
する。入力701において受信された信号702は一般
にある指数、例えばnまたはmであって1からNに及ぶ
もの、によって識別されるNの値を有するベクトルであ
る。例えば、式(6′)が評価または概算される場合
は、W′(n)が入力701に現われる。もし式
(1′)が見積られる場合には、H(n−m+1)が入
力701に現われる。本発明の構成は特に音声ボコーダ
(VOCODERS)に関して有用であるが、それはま
た任意の信号または同様の形式の信号ストリングに関し
て使用できる。
Correlator 700 has an input 701, where signal (s) 702 are to be cross-correlated with the codebook vector, 702, but not in a limiting sense, eg, signal W '(from equation (5')). n), or another signal to be correlated with the codebook vector S k (n). The signal 702 received at input 701 is generally a vector having N values identified by some index, for example n or m ranging from 1 to N. For example, if equation (6 ') is evaluated or estimated, W' (n) appears at input 701. If equation (1 ') is estimated, H (n-m + 1) appears at input 701. The arrangement of the invention is particularly useful for voice vocoders, but it can also be used for any signal or similar type of signal string.

【0126】説明の便宜のため、本発明の手段および方
法は式(6′)の評価(evaluation)に関し
て説明されるが、当業者は本明細書の記載に基づきそれ
は一方のベクトルまたはベクトルアレイが、例えば制限
的なものでないが1,0または−1,0または−1,
0,1のような、固定値を有し、他方が可変である2つ
のベクトルまたはベクトルアレイの積の任意の他の和に
適用できることを理解するであろう。式(6′)の評価
は指数kの各々の値に対し単一の相互相関値Q(k)を
生成し、すなわち を発生する。
For convenience of explanation, the means and method of the present invention will be described in terms of evaluation of equation (6 '), but one of ordinary skill in the art will understand that one vector or vector array , For example, but not limiting, 1,0 or -1,0 or -1,
It will be appreciated that it is applicable to any other sum of the products of two vectors or vector arrays that have fixed values, such as 0, 1 and the other is variable. The evaluation of equation (6 ') produces a single cross-correlation value Q (k) for each value of index k, ie To occur.

【0127】入力701に供給されるベクトル信号70
2(例えば、W′(n))はマルチプレクサ704,7
05に転送される。マルチプレクサ704は図8により
詳細に図示されておりかつマルチプレクサ705は実質
的にこれと同じである。マルチプレクサ704にはメモ
リ706、例えば、コードブック180における“1”
に対応する非ゼロエントリを有するROMまたはEPR
OMが接続されている。図9はメモリ706に類似した
メモリ706′の内容を示しているが、K=9かつN=
20であり、かつ図6のコードブック180′の内容に
対応している。指数kおよびnはメモリ706(かつメ
モリ707)に関してコードブック180における場合
と同じ機能を有し、すなわち、kはベクトルまたはベク
トルに対応する他のデータストリングを識別し、かつn
は該ベクトルまたはストリング内の値を識別する。メモ
リ706,706′はコードブック180,180′に
1が表われるところを除きいずれにもゼロを有する(図
6と図9とを比較されたい)。メモリ706の出力はマ
ルチプレクサ704の選択ライン708に接続され、そ
れにより各々の値k,nが入力701に与えられている
ベクトルの値に対して作用する特定の選択ラインnを制
御する。
Vector signal 70 applied to input 701
2 (eg W '(n)) is the multiplexer 704, 7
05. Multiplexer 704 is shown in more detail in FIG. 8 and multiplexer 705 is substantially the same. The multiplexer 704 has a memory 706, for example, “1” in the codebook 180.
ROM or EPR with non-zero entries corresponding to
OM is connected. FIG. 9 shows the contents of memory 706 ', which is similar to memory 706, but with K = 9 and N =
20 and corresponds to the contents of the codebook 180 'of FIG. The indices k and n have the same function with respect to memory 706 (and memory 707) as in codebook 180, that is, k identifies a vector or another data string corresponding to the vector, and n
Identifies the values in the vector or string. Memories 706 and 706 'have zeros except where ones appear in codebooks 180 and 180' (compare FIGS. 6 and 9). The output of memory 706 is connected to select line 708 of multiplexer 704, thereby controlling the particular select line n with which each value k, n acts on the value of the vector provided at input 701.

【0128】マルチプレクサ705にはメモリ706と
類似しているがコードブック180における−1に対応
する非ゼロエントリを有するメモリ707が接続されて
いる。図10はメモリ707に類似しているがK=8か
つN=20であり、かつ図6のコードブック180′に
対応するメモリ707′の内容を示す。メモリ707,
707′はコードブック180,180′に−1が表わ
れるすべてのところに1を有しかつそれ以外はゼロを有
する(図6および図10を比較されたい)。メモリ70
7の出力はマルチプレクサ705の選択ライン709に
接続され、それにより各々の値k,nが入力701に与
えられたベクトルの値に作用する特定の選択ラインnを
制御する。
Connected to the multiplexer 705 is a memory 707 similar to the memory 706 but having a non-zero entry corresponding to -1 in the codebook 180. FIG. 10 shows the contents of memory 707 'which is similar to memory 707, but with K = 8 and N = 20, and which corresponds to codebook 180' of FIG. Memory 707,
707 'has a 1 everywhere a -1 appears in the codebook 180, 180' and a zero elsewhere (compare FIGS. 6 and 10). Memory 70
The output of 7 is connected to select line 709 of multiplexer 705, thereby controlling the particular select line n with which each value k, n acts on the value of the vector provided at input 701.

【0129】メモリ706,707はアドレスシーケン
サ714によって制御される。第1の(すなわち、k=
1)コードブックベクトルと相関されるために信号ベク
トル702が入力701に与えられると、シーケンサ7
14はメモリ706,707のk=1のデータセットを
アクセスし、かつk=1に対する値n=1〜n=Nを選
択ライン708,709上の対応するマルチプレクサ7
04,705に転送する。選択ライン708,709に
表われる値はマルチプレクサ704,705を入力ベク
トル702の適切な値がアキュムレータ712,713
に渡るようにし、該アキュムレータ712,713にお
いてそれらの値が加算されて出力716,717を発生
する。出力716,717はコンバイナ720において
組合わされ第1の相互相関、すなわち、Q(1)を出力
721に提供する。
The memories 706 and 707 are controlled by the address sequencer 714. The first (ie, k =
1) When the signal vector 702 is applied to the input 701 to be correlated with the codebook vector, the sequencer 7
14 accesses the k = 1 data set of the memories 706, 707 and outputs the values n = 1 to n = N for k = 1 to the corresponding multiplexers 7 on the select lines 708, 709.
04,705. The values appearing on select lines 708 and 709 pass through multiplexers 704 and 705 when the appropriate values of input vector 702 are accumulators 712 and 713.
And the values are added in the accumulators 712 and 713 to generate outputs 716 and 717. Outputs 716,717 are combined in combiner 720 to provide a first cross-correlation, Q (1), at output 721.

【0130】シーケンサ714は次にメモリ706,7
07におけるk=2の値を選択し、かつk=2に対する
その中のn=1〜Nの値をマルチプレクサ704,70
5の選択ライン708,709に転送し、以下同様に第
2の相互相関、すなわち、Q(2)を出力721に発生
する。このプロセスはある音声フレームに対する入力ベ
クトル信号702がメモリ706,707におけるエン
トリによって表わされるコードブックベクトルと相関さ
れ相互相関値Q(1),…,Q(K)を得るまで繰返さ
れる。Q(k=j)の大きな値を有する指数k=jの確
率的なベクトルは通常Q(k=i)のより小さな値を有
する他のベクトルk=iよりも良好な音声表現を与え
る。
The sequencer 714 then proceeds to the memory 706, 7
The value of k = 2 at 07 and the values of n = 1 to N therein for k = 2 are multiplexers 704, 70.
5 select lines 708 and 709, and so on, to produce a second cross-correlation, Q (2), at output 721. This process is repeated until the input vector signal 702 for a speech frame is correlated with the codebook vector represented by the entries in memories 706, 707 to obtain the cross-correlation values Q (1), ..., Q (K). Probabilistic vectors of index k = j with large values of Q (k = j) usually give better phonetic representation than other vectors k = i with smaller values of Q (k = i).

【0131】3進のコードブックに対しては2つのメモ
リ706,707を使用することが都合がよいが、コー
ドブック180において使用されるコーディングの形式
に従ってより多くまたはより少ないメモリを使用するこ
とができる。例えば、2進コードブックに対しては1つ
のメモリのみを使用する必要があり、かつコードブック
それ自体はもしそれがn=1〜Nに対応する0,1の値
を各指数kに対してマルチプレクサの選択ラインに伝達
できればメモリとして十分である。従って、2進コード
ブックあるいはその等価物の場合は、別個のメモリは必
要でなくかつコードブックそれ自体がマルチプレクサの
選択ラインに信号を供給するために使用できる。
Although it is convenient to use two memories 706, 707 for a ternary codebook, it may be possible to use more or less memory depending on the type of coding used in codebook 180. it can. For example, for a binary codebook it is necessary to use only one memory, and the codebook itself has a value of 0,1 for each index k, which corresponds to n = 1 to N. If it can be transmitted to the select line of the multiplexer, it is sufficient as a memory. Therefore, in the case of a binary codebook or its equivalent, no separate memory is needed and the codebook itself can be used to feed the select lines of the multiplexer.

【0132】次に図8を参照して、マルチプレクサ70
4の動作を説明する。マルチプレクサ705の構成およ
び動作は同じである。マルチプレクサ704は一般に、
G1,…,GNによって示される、Nのゲート715を
有するN×Nのマルチプレクサである。各ゲート715
の1つの入力は入力信号ベクトル702の特定の値(指
数nによって識別される)を受信するために入力701
に接続され、他の入力703はシステムの論理0の基準
レベル、たとえば、グランドに接続されている。ゲート
715は出力710を、選択ライン708上に存在する
論理信号によって決定されるように、入力701(すな
わち、信号702)または入力703(すなわち、
「0」)に接続する。図示された構成に対しては、たと
えば、選択ライン708のラインn=iの1の値は入力
ベクトル702のn=iの値(入力701のn=iライ
ンに現われる)を出力710のn=iのラインに転送さ
れるようにし、そうでなければ0の値が転送される。類
似の結果を有する任意の等価な論理構成も使用できる。
Next, referring to FIG. 8, the multiplexer 70
The operation of No. 4 will be described. The configuration and operation of the multiplexer 705 are the same. The multiplexer 704 is generally
, GN, N × N multiplexer with N gates 715. Each gate 715
Input 701 to receive a particular value of input signal vector 702 (identified by index n).
And the other input 703 is connected to the system logic zero reference level, eg, ground. Gate 715 outputs 710 as input 701 (ie, signal 702) or input 703 (ie, as determined by the logic signal present on select line 708).
"0"). For the configuration shown, for example, a value of 1 on line n = i of select line 708 produces a value of n = i of input vector 702 (appears on line n = i of input 701), n = of output 710. to be transferred to line i, otherwise a value of 0 is transferred. Any equivalent logic configuration with similar results can be used.

【0133】マルチプレクサ704は入力701におけ
るNの入力信号値702および選択ライン708上のN
の選択値を受信しかつメモリ706によって駆動される
選択ライン708が0または1にセットされているか否
かに従って入力信号702からのNまでの値を出力71
0に転送することが可能である。マルチプレクサ705
の動作は、入力702、メモリ707によって駆動され
る選択ライン709および出力711に関して同様であ
るが、例外としてマルチプレクサ705は入力701に
おける入力ベクトル信号702の値をコードブックベク
トル値が−1である場合に指数k,nに対し出力711
に転送し、一方マルチプレクサ704は入力ベクトル値
702をコードブックベクトル値が+1である場合に指
数k,nに対し出力710に受け渡す。
Multiplexer 704 receives N input signal values 702 at input 701 and N on select line 708.
71 of the input signals 702 to N depending on whether the select line 708 driven by the memory 706 is set to 0 or 1
It is possible to transfer to 0. Multiplexer 705
Is similar for input 702, select line 709 driven by memory 707 and output 711, except that multiplexer 705 changes the value of input vector signal 702 at input 701 to −1 if the codebook vector value is −1. Output 711 for indices k and n
While the multiplexer 704 passes the input vector value 702 to the output 710 for the indices k, n if the codebook vector value is +1.

【0134】出力710および711は、それぞれ、ア
キュムレータ712,713に接続され、マルチプレク
サ704,705を介して転送される入力ベクトル信号
値702は一緒に加算されて、それぞれ、Q(k)お
よびQ(k)相関値に対応する出力716,717を
生成する。出力716,717はコンバイナ720で組
合わされて721に相関出力値Q(k)を生成する。こ
の例のように、コードブック180が3進コードブック
である場合は、コンバイナ720はアキュムレータ71
2,713からの出力716,717の差を取り出力7
21、すなわち、Q(k)=Q(k)−Q(k)を
発生する。これはマルチプレクサ705、メモリ707
およびアキュムレータ713によって行われる演算はコ
ードブック180、たとえば、図10を参照、の−1の
値に対応することを考慮に入れている。コンバイナ72
0はこの特定の実施例においては、減算を行うが、当業
者は本明細書の記載に基づき同じ結果を多くの他の手段
によって得ることが可能なことを理解するであろう。た
とえば、これは限定的な意図ではないが、同じ出力72
1はマルチプレクサ705またはアキュムレータ713
の出力を反転しかつコンバイナ720を加算器とするこ
とによって得ることができる。
Outputs 710 and 711 are connected to accumulators 712 and 713, respectively, and input vector signal values 702 transferred through multiplexers 704 and 705 are added together to produce Q + (k) and Q + , respectively. - (K) Generate outputs 716,717 corresponding to the correlation values. The outputs 716 and 717 are combined in combiner 720 to produce a correlated output value Q (k) at 721. If the codebook 180 is a ternary codebook, as in this example, then the combiner 720 will be the accumulator 71.
The difference between outputs 716 and 717 from 2, 713 is output 7
21, i.e., Q (k) = Q + (k) -Q - generating a (k). This is multiplexer 705, memory 707.
Taking into account that the operations performed by and accumulator 713 correspond to a value of -1 in codebook 180, eg, see FIG. Combiner 72
0 performs subtraction in this particular embodiment, but those skilled in the art will understand that the same result can be obtained by many other means based on the description herein. For example, this is not meant to be limiting, but the same output 72
1 is a multiplexer 705 or an accumulator 713
Can be obtained by inverting the output of and combining combiner 720 as an adder.

【0135】図7の相関発生器700は、たとえば、図
3および図4の相関発生器520または520′に対応
し、かつ相関発生器700の出力721は図3の出力5
21または図4の出力551′に対応するが、どのよう
な特定の入力信号ベクトルが処理されるかに応じて、適
応コードブックベクトルC(n)よりはむしろ確率的
コードブックベクトルS(n)に対するものでありか
つX(n)よりもむしろ目標音声信号Y(n)に対する
ものである。
Correlation generator 700 of FIG. 7 corresponds, for example, to correlation generator 520 or 520 'of FIGS. 3 and 4, and output 721 of correlation generator 700 is output 5 of FIG.
21 or output 551 'of FIG. 4, but depending on what particular input signal vector is processed, the stochastic codebook vector S k (rather than the adaptive codebook vector C k (n). n) and for the target audio signal Y (n) rather than X (n).

【0136】本発明のさらに別の実施例を前記式
(6″)および図6、図9、図10を参照して説明す
る。式(6″)を図6のコードブック180′に適用す
ることにより以下の表Iに示されるように、n=1〜2
0とし、W′(n)の値に対し相関値Q(1)からQ
(8)が得られる。 表I Q(1)=+W ′(04)-W′(05)-W′(09)+W′(14)-W′(18)+W′(19) Q(2)=+W ′(02)-W′(03)-W′(07)+W′(12)-W′(16)+W′(17) Q(3)=-W ′(01)-W′(05)+W′(10)-W′(14)+W′(15)+W′(20) Q(4)=-W ′(03)+W′(08)-W′(12)+W′(13)+W′(18)-W′(19) Q(5)=-W ′(01)+W′(06)-W′(10)+W′(11)+W′(16)-W′(17) Q(6)=+W ′(04)-W′(08)+W′(09)+W′(14)-W′(15)-W′(19) Q(7)=+W ′(02)-W′(06)+W′(07)+W′(12)-W′(13)-W′(17) Q(8)=-W ′(04)+W′(05)+W′(10)-W′(11)-W′(15)+W′(20) 表Iのアレイは再配列して、以下の表IIに示されるよ
うにQ(k)=[Q(k)]−[Q(k)]として
相関値を表すように+1のコードブック値に対応する項
と−1のコードブック値に対応する項をグループ分けす
ることができる。
Another embodiment of the present invention will be described with reference to the above equation (6 ″) and FIGS. 6, 9 and 10. The equation (6 ″) is applied to the codebook 180 ′ of FIG. Thus, as shown in Table I below, n = 1-2
0 and the correlation values Q (1) to Q (w) for the value of W '(n)
(8) is obtained. Table I Q (1) = + W '(04) -W' (05) -W '(09) + W' (14) -W '(18) + W' (19) Q (2) = + W ′ (02) -W ′ (03) -W ′ (07) + W ′ (12) -W ′ (16) + W ′ (17) Q (3) =-W ′ (01) -W ′ (05 ) + W ′ (10) -W ′ (14) + W ′ (15) + W ′ (20) Q (4) =-W ′ (03) + W ′ (08) -W ′ (12) + W ′ (13) + W ′ (18) -W ′ (19) Q (5) =-W ′ (01) + W ′ (06) -W ′ (10) + W ′ (11) + W ′ (16 ) -W ′ (17) Q (6) = + W ′ (04) -W ′ (08) + W ′ (09) + W ′ (14) -W ′ (15) -W ′ (19) Q ( 7) = + W ′ (02) -W ′ (06) + W ′ (07) + W ′ (12) -W ′ (13) -W ′ (17) Q (8) =-W ′ (04) + W '(05) + W' (10) -W '(11) -W' (15) + W '(20) The array of Table I was rearranged to produce the Q array as shown in Table II below. (k) = [Q + ( k)] - is - [(k) Q] grouped term corresponding to the term and codebook values of -1, corresponding to the codebook value of +1 to represent a correlation value as be able to.

【0137】 表II Q(1)=[W ′(04)+W′(14)+W′(19)]-[W′(05)+W′(09)+W′(18)] Q(2)=[W ′(02)+W′(12)+W′(17)]-[W′(03)+W′(07)+W′(16)] Q(3)=[W ′(10)+W′(15)+W′(20)]-[W′(01)+W′(05)+W′(14)] Q(4)=[W ′(08)+W′(13)+W′(18)]-[W′(03)+W′(12)+W′(19)] Q(5)=[W ′(06)+W′(11)+W′(16)]-[W′(01)+W′(10)+W′(17)] Q(6)=[W ′(04)+W′(09)+W′(14)]-[W′(08)+W′(15)+W′(19)] Q(7)=[W ′(02)+W′(07)+W′(12)]-[W′(06)+W′(13)+W′(17)] Q(8)=[W ′(05)+W′(10)+W′(20)]-[W′(04)+W′(11)+W′(15)] 表IIの最も左の括弧内に示された値はアキュムレータ
712への入力に対応し、かつ表IIの最も右側の括弧
内の値はアキュムレータ713への入力に対応する。
Table II Q (1) = [W ′ (04) + W ′ (14) + W ′ (19)]-[W ′ (05) + W ′ (09) + W ′ (18)] Q (2) = [W ′ (02) + W ′ (12) + W ′ (17)]-[W ′ (03) + W ′ (07) + W ′ (16)] Q (3) = [W ′ (10) + W ′ (15) + W ′ (20)]-[W ′ (01) + W ′ (05) + W ′ (14)] Q (4) = [W ′ (08) + W ′ (13) + W ′ (18)]-[W ′ (03) + W ′ (12) + W ′ (19)] Q (5) = [W ′ (06) + W ′ (11) + W ′ (16)]-[W ′ (01) + W ′ (10) + W ′ (17)] Q (6) = [W ′ (04) + W ′ (09) + W ′ (14)]- [W ′ (08) + W ′ (15) + W ′ (19)] Q (7) = [W ′ (02) + W ′ (07) + W ′ (12)]-[W ′ (06) + W ′ (13) + W ′ (17)] Q (8) = [W ′ (05) + W ′ (10) + W ′ (20)]-[W ′ (04) + W ′ (11) + W '(15)] The value shown in the leftmost bracket of Table II corresponds to the input to the accumulator 712, and the value in the rightmost bracket of Table II corresponds to the input to the accumulator 713. .

【0138】図6のコートブック180′を参照する
と、該コードブックがまばらに満たされている、すなわ
ち、大部分のエントリが0であることが明らかである。
さらに、表IおよびIIを参照すると、連続するベクト
ルのオーバラップ特性は相関値Q(k)を得るために加
算されるW′(n)の値の指数において反映されている
ことが明らかである。従って、本コードブックの構造は
表IおよびIIに示された和を発生するより経済的な方
法に適している。これらについては以下に説明する。
With reference to courtbook 180 'of FIG. 6, it is clear that the codebook is sparsely filled, that is, most entries are zero.
Further, referring to Tables I and II, it is clear that the overlap characteristics of successive vectors are reflected in the exponent of the value of W '(n) added to obtain the correlation value Q (k). . Therefore, the structure of this codebook is suitable for a more economical way of generating the sums shown in Tables I and II. These will be described below.

【0139】すべてのコードブック値を記憶するよりも
むしろ、kの各々の値に対する非ゼロエントリの指数
(すなわち、nの値)のみを記憶することができる。こ
れはQ (k)およびQ(k)の値に対し別個に行う
と都合がよいが、しかしこれは必須のことではない。k
の各々の値に対する相関値Q(k)およびQ(k)
は単にkの各値に対しnの記憶された値に対応するW′
(n)を加算することにより、すなわち、表IまたはI
Iに示される和を実行することによって得られる。
Than storing all codebook values
Rather, a non-zero entry exponent for each value of k
Only (ie, the value of n) can be stored. This
This is Q +(K) and QPerform separately for the value of (k)
But this is not mandatory. k
Correlation value Q for each value of+(K) and Q(K)
Is simply W ′ corresponding to the stored value of n for each value of k.
By adding (n), i.e. Table I or I
It is obtained by performing the sum shown in I.

【0140】計算機的なおよび/またはアドレス記憶の
要求はコードブックエントリのオーバラップ特性を考慮
に入れる再帰的計算方法を用いることによってさらに低
減できかつより迅速な動作が得られる。好ましい、この
手法により、k=1に対するコードブックエントリの指
数値nを記憶しかつベクトルk=2,k=3,その他に
対する指数nをコードブックのオーバラップに基づきk
=1の指数値から計算する。各ベクトルの端部に加えら
れるいずれかの新しいコードブックのエントリの指数も
また考慮される。
Computational and / or address storage requirements can be further reduced and faster operation can be obtained by using a recursive calculation method that takes into account the overlapping properties of codebook entries. According to the preferred method, the exponent value n of the codebook entry for k = 1 is stored and the exponent n for the vectors k = 2, k = 3, etc. is k based on the codebook overlap.
Calculate from the index value of = 1. The exponents of any new codebook entries added to the end of each vector are also considered.

【0141】たとえば、図9の+1のエントリおよび表
IIのQ(k)部分(すなわち、最も左の括弧内の
量)の場合には、n=4,14,19およびコードブッ
クのオーバラップを記憶し、この場合N−2であり(す
なわち、Δk=+1,Δn=−2)かつ以下のように対
応するW′(n)の値から生ずるQ(k)への寄与分を
計算する。すなわち、k=1,n=4の指数が最初に評
価されかつ以下の項のQ1(1)およびQ(2)の
値に寄与する。 表III Q(1)=W′(04) Q(2)=W′(02) 指数k=2,n=2に対するQ(2)項W′(02)は
コードブックのオーバラップ(Δk=+1,Δn=−
2)を第1の指数k=1,n=4に適用することにより
決定される。
For example, for the +1 entry of FIG. 9 and the Q + (k) portion of Table II (ie, the leftmost parenthesized quantity), n = 4, 14, 19 and codebook overlap. And compute the contribution to Q (k) resulting from the value of W ′ (n), which in this case is N−2 (ie Δk = + 1, Δn = −2) and is: . That is, the indices of k = 1, n = 4 are evaluated first and contribute to the values of Q + 1 (1) and Q + (2) in the following terms. Table III Q + (1) = W '(04) Q + (2) = W' (02) The Q (2) terms W '(02) for the indices k = 2, n = 2 are codebook overlaps ( Δk = + 1, Δn =-
2) is applied to the first index k = 1, n = 4.

【0142】次にk=1,n=14の指数が評価されか
つ付加的な項W′(14),W′(12),W′(1
0),W′(08),W′(06),W′(04),
W′(04)およびW′(02)を与える。W′(1
4)を除くすべての項はコードブックのオーバラップを
開始指数k=1,n=14に適用することにより決定さ
れる。この結果次のようになる。 表IV Q(1)=W′(04)+W′(14) Q(2)=W′(02)+W′(12) Q(3)=W′(10) Q(4)=W′(08) Q(5)=W′(06) Q(6)=W′(04) Q(7)=W′(02)
The indices k = 1, n = 14 are then evaluated and the additional terms W '(14), W' (12), W '(1
0), W '(08), W' (06), W '(04),
Give W '(04) and W' (02). W '(1
All terms except 4) are determined by applying the codebook overlap to the starting indices k = 1, n = 14. This results in the following: Table IV Q + (1) = W '(04) + W' (14) Q + (2) = W '(02) + W' (12) Q + (3) = W '(10) Q + (4) = W '(08) Q + (5) = W' (06) Q + (6) = W '(04) Q + (7) = W' (02)

【0143】次にk=1,n=19の指数が評価されか
つ付加的な項W′(19),W′(17),W′(1
5),W′(13),W′(11),W′(09),
W′(07),W′(05),W′(03)およびW′
(01)を与える。W′(19)を除くすべての項はコ
ードブックのオーバラップを開始指数k=1,n=19
に適用することにより検出される。この結果は次のよう
になるが、ここで高いベクトル番号に対しどのように寄
与が続くかを示すためにシーケンスがk>8のベクトル
に対し拡張されている。 表V Q(1) =W′(04)+W′(14)+W′(19) Q(2) =W′(02)+W′(12)+W′(17) Q(3) =W′(10)+W′(15) Q(4) =W′(08)+W′(13) Q(5) =W′(06)+W′(11) Q(6) =W′(04)+W′(09) Q(7) =W′(02)+W′(07) Q(8) =W′(05) Q(9) =W′(03) Q(10)=W′(01) これはk=1に対する指数およびコードブックのオーバ
ラップに基づきそこから決定できるすべての値を使い尽
くす。ベクトルk=1,k=2の終りには何らの付加的
な非ゼロ値も現れず、従って相関値Q(1),Q
(2)は今や完全である。
The indices of k = 1, n = 19 are then evaluated and the additional terms W '(19), W' (17), W '(1
5), W '(13), W' (11), W '(09),
W '(07), W' (05), W '(03) and W'
Give (01). All terms except W '(19) start codebook overlap index k = 1, n = 19
Detected by applying to. The result is then where the sequence is expanded for vectors with k> 8 to show how the contribution continues for higher vector numbers. Table V Q + (1) = W '(04) + W' (14) + W '(19) Q + (2) = W' (02) + W '(12) + W' (17) Q + (3) = W '(10) + W' (15) Q + (4) = W '(08) + W' (13) Q + (5) = W '(06) + W' (11) Q + (6) = W ' (04) + W '(09) Q + (7) = W' (02) + W '(07) Q + (8) = W' (05) Q + (9) = W '(03) Q + (10 ) = W '(01) This exhausts all the values that can be determined from it based on the index and codebook overlap for k = 1. No additional non-zero values appear at the end of the vectors k = 1, k = 2, so the correlation values Q + (1), Q
+ (2) is now perfect.

【0144】含めるべき次の指数はk=3,n=20で
ありかつ付加的な項W′(20),W′(18),W′
(16),W′(14),W′(12),W′(1
0),W′(08),W′(06),W′(04)およ
びW′(02)を与える。再び、W′(20)を除く項
はコードブックのオーバラップを開始指数k=3,n=
20に適用することによって識別される。結果は以下の
ようになり、ここでより高いベクトル番号に対しどのよ
うに前記寄与が続くかを示すためにk>10のベクトル
に対しシーケンスが拡張されている。 表VI Q(1) =W′(04)+W′(14)+W′(19) Q(2) =W′(02)+W′(12)+W′(17) Q(3) =W′(10)+W′(15)+W′(20) Q(4) =W′(08)+W′(13)+W′(18) Q(5) =W′(06)+W′(11)+W′(16) Q(6) =W′(04)+W′(09)+W′(14) Q(7) =W′(02)+W′(07)+W′(12) Q(8) =W′(05)+W′(10) Q(9) =W′(03)+W′(08) Q(10)=W′(01)+W′(06) Q(12)=W′(04) Q(13)=W′(02) これはk=0からk=7までに対する指数およびコード
ブックのオーバラップに基づきそこから決定できるすべ
ての値を使い尽くす。ベクトルk=1からk=7の端部
には何らの付加的な非ゼロ値も現れておらず、従って相
関値Q(1)からQ(7)は今や完全である。
The next indices to be included are k = 3, n = 20 and the additional terms W '(20), W' (18), W '.
(16), W '(14), W' (12), W '(1
0), W '(08), W' (06), W '(04) and W' (02). Again, all terms except W '(20) start codebook overlap index k = 3, n =
Identified by applying 20. The result is as follows, where the sequence is expanded for vectors with k> 10 to show how the contribution continues for higher vector numbers. Table VI Q + (1) = W '(04) + W' (14) + W '(19) Q + (2) = W' (02) + W '(12) + W' (17) Q + (3) = W '(10) + W' (15) + W '(20) Q + (4) = W' (08) + W '(13) + W' (18) Q + (5) = W '(06) + W' ( 11) + W '(16) Q + (6) = W' (04) + W '(09) + W' (14) Q + (7) = W '(02) + W' (07) + W '(12) Q + (8) = W '(05) + W' (10) Q + (9) = W '(03) + W' (08) Q + (10) = W '(01) + W' (06) Q + ( 12) = W '(04) Q + (13) = W' (02) This can be determined from the index and codebook overlap for k = 0 to k = 7. Use all values. No additional non-zero values appear at the ends of the vectors k = 1 to k = 7, so the correlation values Q + (1) to Q + (7) are now perfect.

【0145】上に述べたプロセスがコードブックにおけ
る非ゼロのエントリが使い尽くされかつすべてのQ
(k)相関値が決定されるまで継続する。Q(k)
の値のために使用されるプロセスは実質的に同じであ
る。3進コードブックをQ(k)およびQ(k)を
計算するために別個の部分に分けることはコードブック
のオーバラップを活用してQ(k)の相関値を計算する
ための上述のプロセスの間に個々のエントリの符号を考
慮に入れる必要性を避けることができるが、それは妨げ
られない。Q(k)は差分Q(k)=Q(k)−Q
(k)によって検出される。最大の相関値Q(j)を有
する指数k=jのベクトルは技術上よく知られた手段を
用いて、k=1からk=Kに対し(または、少なくとも
そのサブセットのいくつかに対し)Q(k)の値を比較
することにより識別される。上のようにして決定された
計算値は最適の確率的コードブックベクトル、すなわ
ち、音声を合成するために使用された場合、入力目標音
声と比較して最小のエラーを与える確率的コードブック
ベクトル、を識別するために前に述べた合成による分析
プロセスにおいて他の情報と共に使用される。コードブ
ック180からのこの最適の確率的コードブックベクト
ルは次に最終的に受信機において入力音声を再び再生す
るために使用される送信されるボコード(VOCOD
E)を構築するために使用される。
The process described above exhausts all non-zero entries in the codebook and all Q's.
+ (K) Continue until the correlation value is determined. Q - (k)
The process used for the value of is substantially the same. Splitting the ternary codebook into separate parts to compute Q + (k) and Q (k) is described above for computing the correlation value of Q (k) by taking advantage of the codebook overlap. While avoiding the need to take into account the sign of individual entries during the process of, it is not disturbed. Q (k) is the difference Q (k) = Q + ( k) -Q -
Detected by (k). The vector of index k = j with the largest correlation value Q (j) is Q for k = 1 to k = K (or at least for some of its subsets) using means well known in the art. It is identified by comparing the values of (k). The calculated value determined as above is the optimal stochastic codebook vector, i.e., the stochastic codebook vector which, when used to synthesize the speech, gives the least error compared to the input target speech, Used with other information in the synthetic analysis process described above to identify the. This optimal stochastic codebook vector from codebook 180 is then finally transmitted at the receiver using the transmitted vocode (VOCOD) which is used to replay the input speech.
E) is used to build.

【0146】より一般的に説明すると、n=1〜Nにお
よぶ指数nによって識別される値を有する第1のベクト
ルV(n)、および第2のベクトルS(n)のセット
であって該第2のベクトルの各々は指数kによって識別
されかつ該第2のベクトルの各々はゼロまたは非ゼロで
ありかつn=1〜Nに至る指数nによって識別されるN
までの値を有する前記第2のベクトルS(n)のセッ
トとの組合わせを使用する上に述べた音声を符号化する
プロセスは、S(n)が非ゼロであるとし異なるk
に対するS(n)の指数nk,iを識別する段階、指
数nk,iに対応するV(n)の値を加算して和Q
(k)を形成する段階、最大の値Q(k=j)に対応す
る値k=jを識別する段階、そしてSk=j(n)を使
用して音声を合成する段階、を具備する。
More generally described is a set of a first vector V (n) and a second vector S k (n) having values identified by an index n ranging from n = 1 to N. Each of the second vectors is identified by an index k and each of the second vectors is zero or non-zero and identified by an index n ranging from n = 1 to N.
The process of encoding speech described above using a combination with said set of second vectors S k (n) having values up to and including k is different for S k (n i ) is non-zero.
For identifying the index n k, i of S k (n) with respect to, the value of V (n) corresponding to the index n k, i is added and the sum Q
Forming (k), identifying the value k = j corresponding to the maximum value Q (k = j), and synthesizing the speech using S k = j (n). .

【0147】さらに、第2のベクトルの前記セットはオ
ーバラップ量Δk,Δnに従って先行する第2のベクト
ルをオーバラップすることにより決定されることが望ま
しく、この場合前記識別および加算段階は、n1,i
らスタートしかつオーバラップ量Δk,Δnを使用して
(n)が非ゼロであるとし、k=1に対しS
(n)の指数n1,iを識別する段階、S
(ni′)が非ゼロであるとしk>1に対しさらに指
数nk,i′を決定する段階、そしてそのような指数お
よびさらに他の指数に対し前記V(n)の値を加算し和
Q(k)を形成する段階を具備する。さらに、k≧2に
対しS(ni″)が非ゼロであるとし前に識別されて
いない第1の指数nk,i″を識別し、かつ次に、指数
k,i″からスタートしてS(ni″′)が非ゼロ
であるとしオーバラップ量を使用してk≧3に対するさ
らに他の指数nk,i″′を決定し、かつそのようなさ
らに他の指数に対しV(n)の値を加算してさらに和Q
(k)を形成すると好都合である。
Furthermore, said set of second vectors is preferably determined by overlapping the preceding second vectors according to the amount of overlap Δk, Δn, in which case said identifying and summing step is n 1 , I , and using the amount of overlap Δk, Δn, let S i (n i ) be non-zero, and for k = 1, S
identifying the indices n 1, i of k (n), S
determining further exponents n k, i ′ for k> 1 given that k (n i ′ ) is non-zero, and adding the value of V (n) to such exponents and further exponents And forming a sum Q (k). Furthermore, for k ≧ 2, we identify S k (n i ″ ) as non-zero and identify a previously unidentified first index n k, i ″ , and then from index n k, i ″ Starting and assuming that S k (n i ″ ′ ) is non-zero, the amount of overlap is used to determine yet another index n k, i ″ ′ for k ≧ 3, and such an additional index. The value of V (n) is added to
It is convenient to form (k).

【0148】以上述べた方法は汎用目的のコンピュータ
によって実施できるが、その場合は該コンピュータは、
(n)が非ゼロであるとし異なるkに対しS
(n)の指数nk,iを識別するための手段、指数n
k,iに対応するV(n)の値を加算して和Q(k)を
形成するための手段、最大の値Q(k=j)に対応する
値k=jを識別するための手段、そしてSk=j(n)
を使用して音声を合成するための手段、を提供するよう
プログラムされるべきである。当業者はどのようにして
これを行うかを理解するであろう。
The method described above can be implemented by a general purpose computer, in which case the computer
S k (n i ) is non-zero and S for different k
Means for identifying index n k, i of k (n), index n
Means for adding the values of V (n) corresponding to k, i to form the sum Q (k), and means for identifying the value k = j corresponding to the maximum value Q (k = j) , And S k = j (n)
Should be programmed to provide means for synthesizing speech using. Those of ordinary skill in the art will understand how to do this.

【0149】さらに、前記コンピュータはS(n
が非ゼロであるとしS(n)の指数n1,iをk=1
に対し識別するための手段、S(ni′)が非ゼロで
あるとし、n1,iからスタートしかつオーバラップ量
Δk,Δnを使用してk>1に対するさらに他の指数n
k,i′を決定するための手段、そしてそのような指数
およびさらに他の指数に対しV(n)の値を加算して和
Q(k)を形成するための手段、を提供するようプログ
ラムされることが望ましい。さらに、前記識別し、決定
しかつ加算するための手段は、S(ni″)が非ゼロ
であるとし前に識別されなかった第1の指数nk,i″
をk≧2に対し識別するための手段、S(ni″′
が非ゼロであるとし指数nk,i″からスタートしかつ
オーバラップ量を使用してk≧3に対するさらに他の指
数nk,i″′を決定するための手段、そしてそのよう
なさらに他の指数に対しV(n)の値を加算してさらに
和Q(k)を形成するための手段、を具備することが望
ましい。
Further, the computer is S 1 (n i )
Is non-zero, the index n 1, i of S k (n) is k = 1.
Means for identifying, S k (n i ′ ) is non-zero, starting from n 1, i and using the overlap amounts Δk, Δn, yet another index n for k> 1.
A program for providing means for determining k, i ' , and means for adding such values of V (n) to such and other indices to form a sum Q (k). It is desirable to be done. Further, the means for identifying, determining and adding has a first index n k, i ″ not previously identified as S k (n i ″ ) being non-zero.
Means for identifying to k ≧ 2, S k (n i "')
Means for determining yet another exponent n k, i ″ ′ for k ≧ 3, starting from the exponent n k, i ″, where k is non-zero, and using the amount of overlap, and such further It is desirable to include means for adding the value of V (n) to the index of to further form the sum Q (k).

【0150】[0150]

【発明の効果】上述の、n=1〜Nの値を有する第1の
ベクトルとn=1〜Nの値を有するk=1〜Kの第2の
ベクトルのセットとの積の和の等価物をコードブックの
まばらな非ゼロ値および該コードブックベクトルのオー
バラッピング特性を活用することによって提供する手段
および方法は、従来技術に比較して計算機的な負担を実
質的に低減しかつより迅速に達成することができ、さら
に従来技術によって必要とされるものよりかなり少ない
計算機的な資源によって達成できるようにする。上に述
べたプロセスは、本明細書に記載しかつ表I−VIに図
示した手順を実行するようプログラムされた、汎用目的
のコンピュータまたは特別の目的のコンピュータによっ
て達成されている。当業者は本明細書の記載に基づきか
つ技術上よく知られた手段を使用して上述のステップを
達成するためにどのようにコンピュータをプログラムす
るかを理解するであろう。
EFFECT OF THE INVENTION Equivalence of the sum of the above-mentioned products of the first vector having the values of n = 1 to N and the second set of k = 1 to K having the values of n = 1 to N. Means and methods for providing an object by exploiting the sparse non-zero values of a codebook and the overlapping properties of the codebook vector are substantially less computationally intensive and faster than prior art techniques. And can be achieved with significantly less computational resources than required by the prior art. The processes described above are accomplished by a general purpose or special purpose computer programmed to perform the procedures described herein and illustrated in Tables I-VI. Those skilled in the art will understand how to program a computer based on the description herein and using means well known in the art to accomplish the above steps.

【0151】当業者には本明細書の記載に基づき上に述
べた手段および方法が、確率的コードブックベクトルの
どれが目標音声との最善の整合を提供するかを決定する
ことに関連する相互相関プロセスのために通常必要とさ
れる乗算ステップと同じ効果を生ずることは明らかであ
る。乗算操作を消去することにより、相関操作がより高
速になりかつベクトル値の必要な操作の数が低減され
る。これらの利点は極めて好都合なものである。
Those skilled in the art will appreciate that the means and methods described above based on the description herein are related to determining which of the stochastic codebook vectors provides the best match with the target speech. It is clear that it has the same effect as the multiplication step normally required for the correlation process. Eliminating the multiply operations makes the correlation operations faster and reduces the number of vector-valued operations required. These advantages are extremely advantageous.

【0152】最後に、本発明の上に述べた実施例は例示
のためのみのものであると考えている。数多くの別の実
施例も本発明の精神および範囲から離れることなく考案
できる。
Finally, the above-described embodiments of the present invention are considered to be exemplary only. Many alternative embodiments can be devised without departing from the spirit and scope of this invention.

【図面の簡単な説明】[Brief description of drawings]

【図1】CELPボコーダシステムを一般的な形式で示
す単純化されたブロック図である。
FIG. 1 is a simplified block diagram of a CELP vocoder system in general form.

【図2】本発明の好ましい実施例によるCELPコーダ
を示す単純化されたブロック図である。
FIG. 2 is a simplified block diagram showing a CELP coder according to a preferred embodiment of the present invention.

【図3】第1の実施例による、図2の(b)のコーダの
1部を詳細に示すブロック図である。
FIG. 3 is a block diagram showing in detail a part of the coder of FIG. 2 (b) according to the first embodiment.

【図4】本発明の好ましい実施例による、図2の(b)
のコーダの1部を非常に詳細に示すブロック図である。
FIG. 4 (b) of FIG. 2 according to a preferred embodiment of the present invention.
FIG. 3 is a block diagram showing in greater detail a portion of the coder of FIG.

【図5】本発明の好ましい実施例による適応コードブッ
クベクトルの自己相関係数を提供するための装置を示す
ブロック図である。
FIG. 5 is a block diagram illustrating an apparatus for providing an autocorrelation coefficient of an adaptive codebook vector according to a preferred embodiment of the present invention.

【図6】CELPコーディングのために使用される形式
の小さな確率的コードブックの内容を示す説明図であ
る。
FIG. 6 is an illustration showing the contents of a small probabilistic codebook of the type used for CELP coding.

【図7】本発明に係わる相互相関機能を説明する単純化
されたブロック図である。
FIG. 7 is a simplified block diagram illustrating the cross-correlation function of the present invention.

【図8】図7において使用されているマルチプレクサの
さらに詳細を示すブロック回路図である。
8 is a block circuit diagram showing further details of the multiplexer used in FIG. 7. FIG.

【図9】そのエントリが図6のコードブックの非ゼロエ
ントリに対応する第1のメモリ手段の内容を示す説明図
である。
9 is an illustration showing the contents of a first memory means whose entry corresponds to a non-zero entry in the codebook of FIG.

【図10】そのエントリが図6のコードブックの非ゼロ
エントリに対応する第2のメモリ手段の内容を示す説明
図である。
10 is an illustration showing the contents of a second memory means whose entry corresponds to a non-zero entry in the codebook of FIG.

【符号の説明】[Explanation of symbols]

100 CELPコーダ 106 送信経路または送信パス 300 CELPデコーダ 110 バンドパスフィルタ 112 A/D変換器 114 フレーマ 116 フレームメモリ 122 LPCアナライザ 125 コーダ 130 帯域幅拡張重み付け発生器 142,165 スペクトルメモリ減算器 145,170 スペクトルインバースフィルタA
(z) 150,175 カスケード重み付けフィルタ1/A
(z/r) 162 ピッチメモリ減算器 155 適応コードブック 180 確率的コードブック 182 チャネルデコーダ 190 長時間遅延ピッチ予測器 195 短時間遅延ベクトル予測器1/A(z) 197 ゲイン乗算器 200 スペクトルインバースフィルタA(z) 205 キャッシュ重み付けフィルタ1/A(z/r) 210 チャネルコーダ 220 適応コードブックサーチャ 225 確率的コードブックサーチャ
100 CELP coder 106 Transmission path or transmission path 300 CELP decoder 110 Bandpass filter 112 A / D converter 114 Framer 116 Frame memory 122 LPC analyzer 125 Coder 130 Bandwidth extension weight generator 142,165 Spectrum memory subtractor 145,170 Spectrum Inverse filter A
(Z) 150,175 Cascade weighting filter 1 / A
(Z / r) 162 Pitch memory subtractor 155 Adaptive codebook 180 Stochastic codebook 182 Channel decoder 190 Long delay pitch predictor 195 Short delay vector predictor 1 / A (z) 197 Gain multiplier 200 Spectral inverse filter A (z) 205 Cache weighting filter 1 / A (z / r) 210 Channel coder 220 Adaptive codebook searcher 225 Probabilistic codebook searcher

【手続補正書】[Procedure amendment]

【提出日】平成5年10月22日[Submission date] October 22, 1993

【手続補正1】[Procedure Amendment 1]

【補正対象書類名】図面[Document name to be corrected] Drawing

【補正対象項目名】全図[Correction target item name] All drawings

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【図1】 [Figure 1]

【図3】 [Figure 3]

【図2】 [Fig. 2]

【図4】 [Figure 4]

【図6】 [Figure 6]

【図9】 [Figure 9]

【図10】 [Figure 10]

【図5】 [Figure 5]

【図7】 [Figure 7]

【図8】 [Figure 8]

───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 722,572 (32)優先日 1991年6月27日 (33)優先権主張国 米国(US) (72)発明者 デビッド・エル バロン アメリカ合衆国アリゾナ州85251、スコッ ツデイル、イースト・トーマス 8449 ─────────────────────────────────────────────────── ─── Continuation of front page (31) Priority claim number 722, 572 (32) Priority date June 27, 1991 (33) Priority claiming country United States (US) (72) Inventor David El Baron United States Arizona State 85251, Scottsdale, East Thomas 8449

Claims (19)

【特許請求の範囲】[Claims] 【請求項1】 入力アナログ音声のNの連続するサンプ
ルn=1〜n=Nを具備する音声フレームを符号化して
前記音声フレームを最もよく合成する最適のコードブッ
クベクトルCk=j(n)を決定するための装置(22
0,220′)であって、 Kの可能な知覚的に重み付けされた駆動ベクトルC
(n)を含む適応コードブック(155)であって、
この場合kは前記ベクトルを識別するために1からKま
でにおよぶ整数の指数であり、かつn=1〜n=Nは前
記音声フレーム内の連続する音声サンプルを識別する整
数の指数であるもの、 前記コードブックベクトルC(n)によって駆動され
た時前記音声フレームの試行的な複製を合成するための
1つまたはそれ以上のLPCフィルタ(190,19
5,200,205,170,145,175,15
0)であって、該LPCフィルタ(190,195,2
00,205,170,145,175,150)はイ
ンパルス応答H(n)を有するもの、 前記音声フレームを最もよく合成する最適のコードブッ
クベクトルCk=j(n)を決定するためにコードブッ
クベクトルC(n)により1つまたはそれ以上のLP
Cフィルタ(190,195,200,205,17
0,145,175,150)を駆動する結果と比較す
るために知覚的に重み付けされた目標音声の残余X
(n)を発生するための手段(150)、 フレームごとに1度nの各々の値に対しH(n)によっ
てX(n)をコンボルブし相互相関器(520′)への
伝達のためにコンボルブされた出力(512′)を生成
するための手段(510′)、 nおよびkの各々の値に対しC(n)によるコンボル
ブされた出力(512′)を相互相関しその出力(52
1′)が除算手段(530′)に接続された2乗器(5
25′)への伝達のために相互相関された出力(55
1′)を生成するための手段(520′)、 nおよびkの各々の値に対しC(n)を自己相関して
乗算器手段(543′)への伝達のために第1の自己相
関出力(561′)を提供するための手段(56
0′)、 H(n)を自己相関して前記乗算器手段(543′)へ
の伝達のために第2の自己相関された出力(552′,
556′)を生成するための手段(550′)、 前記第1(561′)および第2(552′)の自己相
関出力を乗算して加算器(540′)への伝達のための
出力積(545′)を生成するための手段(54
3′)、 kの各々の値に対し前記積を加算して除算器(53
0′)への伝達のために加算された出力(541′)を
生成するための手段(540′)、 2乗された相互相関出力(521′)および前記加算器
の加算された出力(541′)の比率を検出してセレク
タ手段(570′)に伝達するための除算手段(53
0′)、そしてチャネルコーダ(210)への伝達のた
めに、前記除算手段(530′)から最大の振幅の出力
を生成するC(n)の値Ck=j(n)を選択するた
めの手段(570′)、 を具備することを特徴とする音声フレームを符号化する
ための装置。
1. An optimal codebook vector C k = j (n) for coding a speech frame with N consecutive samples n = 1 to n = N of the input analog speech to best synthesize said speech frame. Device for determining
0,220 ') and K possible perceptually weighted drive vectors C
An adaptive codebook (155) containing k (n),
Where k is an integer exponent ranging from 1 to K for identifying the vector, and n = 1 to n = N is an integer exponent identifying consecutive audio samples in the audio frame. , One or more LPC filters (190, 19) for synthesizing a trial copy of the speech frame when driven by the codebook vector C k (n)
5,200,205,170,145,175,15
0), and the LPC filters (190, 195, 2
00, 205, 170, 145, 175, 150) having an impulse response H (n), a codebook for determining an optimal codebook vector C k = j (n) that best synthesizes the speech frame. One or more LPs according to the vector C k (n)
C filter (190, 195, 200, 205, 17
0, 145, 175, 150), and the residual X of the target speech perceptually weighted for comparison with the result.
Means (150) for generating (n), for convolution of X (n) with H (n) for each value of n once per frame for transmission to the cross-correlator (520 '). Means (510 ') for producing a convolved output (512'), cross-correlate the convolved output (512 ') with C k (n) for each value of n and k, and output (52
1 ') is connected to a dividing means (530') and is a squarer (5)
25 ') and the cross-correlated output (55
1 ') for producing (1') an autocorrelation of C k (n) for each value of n and k for transmission to a multiplier means (543 '). Means (56) for providing a correlation output (561 ')
0 '), H (n) are autocorrelated to a second autocorrelated output (552', 552 ', for transmission to said multiplier means (543').
Means (550 ') for generating an output product for transmission to the adder (540') by multiplying the first (561 ') and second (552') autocorrelation outputs. Means (54 ') for generating (545')
3 '), the product is added to each value of k and a divider (53
0 ') means (540') for producing an added output (541 '), a squared cross-correlation output (521') and an added output of the adder (541). Dividing means (53) for detecting the ratio of ′ ′ and transmitting it to the selector means (570 ′).
0 '), and for transmission to the channel coder (210), selects the value C k = j (n) of C k (n) that produces the output of maximum amplitude from said dividing means (530'). An apparatus for encoding a speech frame, characterized in that it comprises means (570 ') for
【請求項2】 入力アナログ音声のNの連続するサンプ
ルを具備する音声フレームを符号化しかつ、kを1から
Kに至る整数の指数としかつnは前記音声フレーム内の
連続する音声サンプルn=1,…,n=Nを識別する他
の整数指数であるとして、Kの目標の知覚的に重み付け
された駆動ベクトルC(n)を含む適応コードブック
(155)を使用して前記音声フレームを最もよく合成
する最適のコードブックベクトルCk=j(n)を決定
するための方法であって、 前記コードブックC(n)ベクトルによって駆動され
た時前記音声フレームの試行的な複製を合成するための
1つまたはそれ以上のLPCフィルタ(190,19
5,200,205,170,145,175,15
0)を提供する段階であって、前記1つまたはそれ以上
のLPCフィルタ(190,195,200,205,
170,145,175,150)はインパルス応答H
(n)を有するもの、 コードブックベクトルC(n)によって1つまたはそ
れ以上のLPCフィルタ(190,195,200,2
05,170,145,175,150)を駆動した結
果と比較するために知覚的に重み付けされた目標音声残
余X(n)を提供する段階、 フレームごとに1度nの各々の値に対しH(n)によっ
てX(n)をコンボルブし相互相関器(520′)への
伝達のためにコンボルブされた出力W(n)を生成する
段階、 nおよびkの各々の値に対しC(n)によってコンボ
ルブされた出力W(n)を相互相関しその出力が除算器
(530′)に結合された2乗器(525′)への伝達
のために相互相関された出力を生成する段階、 nおよびkの各々の値に対しC(n)を自己相関して
乗算器(543′)への伝達のために第1の自己相関出
力U(m)を提供する段階であって、この場合mはm
=0からm=N−1に至るダミー指数であるもの、 H(n)を自己相関して前記乗算器(543′)への伝
達のために第2の自己相関された出力Φ(m)を生成す
る段階であって、この場合mはm=0からm=N−1に
至るダミー指数であるもの、 前記乗算器(543′)において前記第1および第2の
自己相関出力を乗算して加算器(540′)への伝達の
ために出力積(545′)を生成する段階、 kの各々の値に対し前記積を加算して除算器(53
0′)への伝達のために加算出力(541′)を生成す
る段階、 ピークセレクタ(570′)への伝達のために前記2乗
された相互相関出力(521′)および前記加算器の加
算出力(541′)の比率を得るために除算を行う段
階、そしてチャネルコーダ(210)への伝達のため
に、前記除算器(530′)から最大の大きさの出力を
生成するC(n)の値Ck=j(n)を前記ピークセ
レクタにおいて選択する段階、 を具備することを特徴とする音声フレームを符号化する
方法。
2. Encoding a speech frame comprising N consecutive samples of the input analog speech, k being an integer index from 1 to K, and n being consecutive speech samples n = 1 in said speech frame. , ..., n = N is another integer index that identifies the speech frame using an adaptive codebook (155) containing perceptually weighted drive vectors C k (n) of K targets. A method for determining an optimal codebook vector C k = j (n) to synthesize best, the method comprising synthesizing a trial copy of the speech frame when driven by the codebook C k (n) vector. One or more LPC filters (190, 19)
5,200,205,170,145,175,15
0), said one or more LPC filters (190, 195, 200, 205,
170, 145, 175, 150) are impulse responses H
With (n), one or more LPC filters (190, 195, 200, 2) depending on the codebook vector C k (n)
05,170,145,175,150) to provide a perceptually weighted target speech residual X (n) for comparison with the result, H for each value of n once for each frame. Convolving X (n) with (n) to produce a convolved output W (n) for transmission to the cross-correlator (520 '), for each value of n and k C k (n ), Cross-correlating the output W (n) convolved with the output to produce a cross-correlated output for transmission to a squarer (525 ') coupled to a divider (530'). autocorrelating C k (n) for each value of n and k to provide a first autocorrelation output U k (m) for transmission to a multiplier (543 ′), In this case m is m
A dummy exponent ranging from = 0 to m = N−1, a second autocorrelated output Φ (m) for transmission to the multiplier (543 ′) by autocorrelating H (n). In which m is a dummy exponent from m = 0 to m = N−1, wherein the multiplier (543 ′) multiplies the first and second autocorrelation outputs. Generating an output product (545 ') for transmission to an adder (540'), adding the product to each value of k and adding a divider (53).
0 ') to produce a summed output (541') for transmission to the peak selector (570 ') and the squared cross-correlation output (521') for addition to the adder The step of performing a division to obtain the ratio of the outputs (541 '), and C k (n) producing the maximum magnitude output from the divider (530') for transmission to the channel coder (210). ) Value C k = j (n) is selected in the peak selector.
【請求項3】 各々Nのエントリを有するKのベクトル
を含むコードブック(155)の使用に基づきデジタル
化入力音声フレームのためのCELP符号化を提供する
方法であって、 Nのエントリの内の最初のP(P<<N)に対するコー
ドブックベクトルを自己相関してそれに対する第1の自
己相関値(561′)を決定する段階、 Kのコードブックベクトルおよび前記第1の自己相関値
を使用して合成音声を生成しかつその結果を入力音声と
比較することによりKのコードブックベクトルを評価す
る段階、 Kのコードブックベトクルの内のどのS(S<<K)が
入力音声と比較して評価されたK−Sの残りのベクトル
よりもより小さなエラーを有する合成音声を提供するか
を決定する段階、 各々のコードブックベクトルにおけるRのエントリに対
するKのベクトルの内のS(P<R≦N)に対するコー
ドブックベトクルを自己相関してそれに対する第2の自
己相関値を提供する段階、 前記第2の自己相関値を使用してKのベクトルの内の前
記Sを再評価し前記入力音声と比較してSのコードブッ
クベクトルの内のどれが最小のエラーを提供するかを識
別する段階、そして前記最小のエラーを与えるコードブ
ックベクトルの識別子を使用して前記音声フレームに対
するCELPコードを形成する段階、 を具備することを特徴とするCELP符号化を提供する
方法。
3. A method for providing CELP coding for digitized input speech frames based on the use of a codebook (155) containing K vectors each having N entries, the method comprising: Autocorrelating the codebook vector for the first P (P << N) to determine a first autocorrelation value (561 ') for it, using K codebook vectors and said first autocorrelation value Evaluating the codebook vector of K by generating a synthesized speech and comparing the result with the input speech, which S (S << K) of the K codebook vectors is compared with the input speech. Determining whether to provide synthetic speech with a smaller error than the remaining vector of K-S evaluated by Autocorrelating a codebook vector for S (P <R ≦ N) of K vectors for a bird to provide a second autocorrelation value for it, using the second autocorrelation value Re-evaluating the S of the K vectors and comparing with the input speech to identify which of the S codebook vectors provides the minimum error, and the codebook giving the minimum error Forming a CELP code for the speech frame using a vector identifier.
【請求項4】 前記P,SおよびRは、5≦P≦10、
1≦S≦7、かつR=NまたはN−1である請求項3に
記載の方法。
4. The P, S and R are 5 ≦ P ≦ 10,
The method according to claim 3, wherein 1 ≦ S ≦ 7 and R = N or N−1.
【請求項5】 X(n)で示されるデジタル化入力音声
の前記フレームは入力アナログ音声のn=1〜n=Nの
連続するサンプルを具備し、かつ前記コードブックはK
の目標の知覚的に重み付けされた駆動ベクトルC
(n)を含み、この場合kは1〜Kに至る整数の指数
であり、かつnは音声フレーム内の連続する音声サンプ
ルn=1〜n=Nを識別する他の整数の指数であり、か
つCk=j(n)は前記目標音声フレームX(n)を最
もよく合成する最適のコードブックベクトルを表し、か
つ前記第1の自己相関段階は、 以下の式、 に従ってコードブックベクトルC(n)をP<<Nと
してm=0〜m=Pに対し自己相関する段階、 を具備し、かつ前記評価段階はコードブックサーチャに
おいて、前記式から検出されたU(P)のPの値を使
用してすべてのKのベクトルC(n)を再帰的に評価
し平均2乗エラー確率を決定する段階を具備し、かつ前
記決定段階は、S<<Kとし、目標音声X(n)に対し
最も近い整合を提供するKのベクトルC(n)の内の
Sを選択する段階を具備し、かつ前記第2の自己相関お
よび再評価段階は、コードブックサーチャにおいて前記
式におけるU(m)を決定するためにすべてのm=0
〜m=N−1を使用して上で選ばれたKのベクトルの内
のSを再帰的に再評価し、それによりj番目の値C
k=j(n)および目標音声X(n)に対し最善の適合
を与える対応するゲイン指数Gk=jを選択する段階を
具備し、かつ前記形成段階は、CELP合成器に送信す
るためにCk=j(n)およびGk=jをチャネルコー
ダに送信する段階を具備する、 請求項3に記載の方法。
5. The frame of digitized input speech designated X (n) comprises n = 1 to n = N consecutive samples of the input analog speech, and the codebook is K.
Target perceptually weighted drive vector C
k (n), where k is an integer exponent ranging from 1 to K, and n is another integer exponent identifying consecutive speech samples n = 1 to n = N in the speech frame. , And C k = j (n) represents the optimal codebook vector that best synthesizes the target speech frame X (n), and the first autocorrelation step is Autocorrelating with respect to m = 0 to m = P, where P << N is the codebook vector C k (n), and said evaluating step comprises: U detected from said equation in a codebook searcher. comprising recursively evaluating all K vectors C k (n) using the value of P of k (P) to determine a mean square error probability, and said determining step comprising S << K, and selecting S of the K vectors C k (n) that provide the closest match to the target speech X (n), and the second autocorrelation and reevaluation step comprises: In the codebook searcher all m = 0 to determine U k (m) in the above equation
Recursively re-evaluate S of the K vectors chosen above using ~ m = N-1, thereby yielding the j-th value C
k = j (n) and selecting the corresponding gain index Gk = j that gives the best fit to the target speech X (n), and said forming step for transmitting to the CELP combiner. The method of claim 3, comprising transmitting C k = j (n) and G k = j to a channel coder.
【請求項6】 適応コードブック(155)のベクトル
の自己相関係数を使用した音声のCELP符号化のため
の装置(100,220,220′,600)であっ
て、分析は初めに長さL>Mの音声分析フレームに関連
してサンプルMのサブセットを利用し、前記装置は、 k=1かつmは自己相関遅れ指数でありかつnは前記コ
ードブックベクトルにおける連続するサンプルの指数で
あるとし、長さMの第1のベクトルC(n)の自己相
関係数Uk′(m)を、m=0〜T<Mに対し、第1の
式、 に従って決定するための手段(610)、 k≧2とし、残りのコードブックベクトルの自己相関係
数U(m)を増分的に、m=0〜T<Mに対し(M+
k−1)=Lまで、第2の式、 U′(m)=[U′k−1(m)+C(M+k−
1)C(M+k−1+m)] に従って決定するための手段(624,626,62
8,630)、 前記第1の方程式の結果を次の式、 U(m)=(L/M)U′(m) に従ってスケーリングし、かつ前記第2の方程式の結果
を以下の式、 U(m)={L/(M+k−1)}U′(m) に従ってスケーリングし、これらのスケーリングはm=
0〜T<Mに対して行われ、各々のmおよび各々のkに
対し結果を生成するための手段(632)、そして前記
結果を使用してどのコードブックベクトルが入力音声と
比較して最小のエラーを提供するかを評価するための手
段(220,220′)、 を具備することを特徴とする音声のCELP符号化のた
めの装置。
6. An apparatus (100, 220, 220 ', 600) for CELP coding of speech using vector autocorrelation coefficients of an adaptive codebook (155), the analysis initially comprising a length. Utilizing a subset of samples M in association with L> M speech analysis frames, the apparatus is k = 1 and m is the autocorrelation delay index and n is the index of consecutive samples in the codebook vector. And the autocorrelation coefficient U k ′ (m) of the first vector C k (n) of length M is given by the first equation, for m = 0 to T <M, Means (610) for determining according to k ≧ 2 and incrementally the autocorrelation coefficient U k (m) of the remaining codebook vectors (M +) for m = 0 to T <M.
Up to k-1) = L, the second equation, U'k (m) = [ U'k-1 (m) + Ck (M + k-
1) Means (624, 626, 62) for determining according to C k (M + k-1 + m)]
8, 630), scaling the result of the first equation according to the following equation: U 1 (m) = (L / M) U ′ 1 (m) and the result of the second equation: , U k (m) = {L / (M + k−1)} U ′ k (m), and these scalings are m =
Means (632) for producing a result for each m and each k, for which 0 to T <M, and which codebook vector using said result is the smallest compared to the input speech. An apparatus for CELP coding of speech, characterized in that it comprises means (220, 220 ') for assessing whether to provide an error.
【請求項7】 ベクトル長Nの適応コードブック(15
5)のベクトルの自己相関係数を使用した音声のCEL
P符号化のための方法であって、分析は最初は長さLの
音声分析フレームを有するM<Nのサンプルのサブセッ
トを使用し、前記方法は、 k=1かつmは自己相関遅延指数でありかつnは前記コ
ードブックベクトルにおける連続するサンプルの指数で
あるとし、m=0〜T<Mに対し、以下の式、 (m)=(L/M)U′(m) に従って、長さMの第1のベクトルC(n)の自己相
関係数U(m)を計算する段階、 k≧2とし、m=0〜T<Mに対し、以下の式、 U′(m)=[U′k−1(m)+C(M+k−
1)C(M+k−1+m)] U(m)={L/(M+k−1)}U′(m) に従って残りのコードブックベクトルの自己相関係数U
(m)を計算する段階、 前記第2の計算を(M+k−1)=Lまで反復する段
階、そして上述のようにして決定された自己相関係数を
使用して前記コードブックベクトルC(n)の内のど
れが入力音声と比較した時最小のエラーを生成するかを
決定する段階、 を具備することを特徴とする音声のCELP符号化のた
めの方法。
7. An adaptive codebook of vector length N (15)
CEL of speech using vector autocorrelation coefficient of 5)
A method for P coding, wherein the analysis initially uses a subset of samples of M <N having speech analysis frames of length L, said method being: k = 1 and m is an autocorrelation delay exponent. And n is the index of consecutive samples in the codebook vector, and for m = 0 to T <M, Calculating the autocorrelation coefficient U k (m) of the first vector C k (n) of length M according to U 1 (m) = (L / M) U ′ 1 (m), k ≧ 2 Then, for m = 0 to T <M, the following equation: U ′ k (m) = [U ′ k−1 (m) + C k (M + k−
1) C k (M + k−1 + m)] U k (m) = {L / (M + k−1)} U ′ k (m) according to the autocorrelation coefficient U of the remaining codebook vector
calculating k (m), repeating the second calculation until (M + k−1) = L, and using the autocorrelation coefficient determined as described above, the codebook vector C k Determining which of (n) produces the smallest error when compared to the input speech. A method for CELP coding of speech.
【請求項8】 前記TおよびMはT=M−1の関係を有
する請求項6または請求項7に記載の方法。
8. The method according to claim 6 or 7, wherein T and M have a relationship of T = M-1.
【請求項9】 指数kによって識別される適応コードブ
ック(155)のベクトルの自己相関係数を使用した音
声のCELP符号化のための方法であって、合成による
分析は最初にM<Lのコードブック値を使用し、この場
合Lは音声分析フレームの長さでありかつmは自己相関
遅れを記述する0からM−1に至る指数であり、前記方
法は、 nは前記コードブックベクトル値の指数であるとし、n
=1〜Mの値をその中に有する第1のコードブックベク
トルkのm=0〜M−1の自己相関係数を計算する段
階、 一時記憶装置(630)にm=0〜M−1の計算された
自己相関係数を記憶させる段階、 前記一時記憶装置における前記係数を乗算ファクタL/
Mによりスケーリングしかつその結果を出力(634)
に転送する段階、 j=1としn=M+jに対しコードブック値をn=M+
jからn=1に下がるコードブック値によって乗算しか
つその積を前記一時記憶装置(630)からの、それぞ
れ、m=0〜M−1の自己相関係数に加算して結果を生
成する段階、 前記結果により前記一時記憶装置(630)における自
己相関係数を置き換える段階、 前記一時記憶装置(630)における前記係数を乗算フ
ァクタL/(M+j)によりスケーリングしかつその結
果を出力(634)に転送する段階、 k=(L+1−M)としj=2〜j=k−1に対し前記
乗算、置き換え、スケーリングおよび転送段階を反復す
る段階、そして前記出力に転送された自己相関係数を使
用してどのコードブックベクトルがより良好な音声のC
ELP符号化を提供するかを決定する段階、 を具備することを特徴とする音声のCELP符号化のた
めの方法。
9. A method for CELP coding of speech using the autocorrelation coefficients of a vector of an adaptive codebook (155) identified by an index k, the analysis by synthesis being initially M <L. A codebook value is used, where L is the length of the speech analysis frame and m is an index from 0 to M-1 that describes the autocorrelation delay, the method is as follows: n is the codebook vector value N is the exponent of
Calculating the autocorrelation coefficient of m = 0 to M−1 of the first codebook vector k having values of = 1 to M therein, m = 0 to M−1 in the temporary memory (630). Storing the calculated autocorrelation coefficient of the multiplicative factor L /
Scale by M and output the result (634)
To n = M + j, where the codebook value is n = M +
multiplying by a codebook value falling from j to n = 1 and adding the product to the autocorrelation coefficients from said temporary store (630) for m = 0 to M-1, respectively, to produce a result. Replacing the autocorrelation coefficient in the temporary storage device (630) with the result, scaling the coefficient in the temporary storage device (630) by a multiplication factor L / (M + j) and outputting the result to the output (634). Transferring, repeating k, k = (L + 1−M) and j = 2 to j = k−1 for the multiplication, replacement, scaling and transfer steps, and using the autocorrelation coefficient transferred to the output And which codebook vector has better voice C
A method for CELP encoding of speech, comprising: determining whether to provide ELP encoding.
【請求項10】 第1のベクトルを指数kによって識別
される第2のベクトルのセットと組合わせることによっ
て音声のCELP符号化を行うための装置(100,7
00)であって、前記第1および第2のベクトルはn=
1〜Nに至る指数nによって識別される値を有し、前記
装置は、 n=1〜Nの出力、n=1〜Nの第1の入力、第2の入
力、およびn=1〜Nの選択手段を有する第1のN×N
のマルチプレクサ(704)であって、n番目の選択手
段に提供される第1の論理レベルは前記n番目の出力を
前記n番目の第1の入力に結合し、かつ前記n番目の選
択手段に提供される第2の論理レベルは前記n番目の出
力を前記第2の入力に結合するもの、 前記第1のベクトルのn=1〜Nの値を前記第1のマル
チプレクサ(704)のn=1〜Nの第1の入力(70
1)に供給するための第1の手段、 指数k=1の前記第2のベクトルのn=1〜Nの値を前
記第1のマルチプレクサ(704)のn=1〜Nの選択
手段(708)に提供するための手段(706)であっ
て、前記第2のベクトルは前記n=1〜Nの選択手段に
おいてnの幾つかの値に対し前記第1の論理レベルを提
供しかつnの他の値に対し第2の論理レベルを提供する
もの、 前記第1のマルチプレクサの出力(710)に結合され
前記第1のマルチプレクサ(704)の出力(710)
に転送される前記第1のベクトルの値を一緒に加算して
第1の和(716)を提供するための第1のアキュムレ
ータ手段(712)、 kをk=1〜k=Kまでインデクシングするための手段
(714)、そしてどの和が目標音声に対し最も近い整
合を与える第2のベクトルを識別するかに基づき音声を
合成するための手段(228)、 を具備することを特徴とする音声のCELP符号化のた
めの装置。
10. Apparatus (100,7) for performing CELP coding of speech by combining a first vector with a second set of vectors identified by an index k.
00) and the first and second vectors are n =
Having a value identified by an index n ranging from 1 to N, the device comprising: n = 1 to N outputs, n = 1 to N first inputs, second inputs, and n = 1 to N N × N having selection means of
Multiplexer (704) for providing a first logic level to the nth selecting means for coupling the nth output to the nth first input and to the nth selecting means. A second logic level provided is for coupling the nth output to the second input, n = 1 to N values of the first vector being n = of the first multiplexer (704). 1-N first input (70
1) means for supplying n = 1 to N values of the second vector of index k = 1 to n = 1 to N selection means of the first multiplexer (704) (708) 706), the second vector providing the first logic level for some values of n in the selection means of n = 1 to N and An output (710) of the first multiplexer (704) coupled to an output (710) of the first multiplexer for providing a second logic level for other values.
First accumulator means (712) for adding together the values of said first vector to provide a first sum (716), indexing k from k = 1 to k = K Means (714), and means (228) for synthesizing the speech based on which sum identifies the second vector that gives the closest match to the target speech. For CELP encoding of.
【請求項11】 前記第2のベクトルは値0,+1,−
1を有し、かつ前記第2のベクトルのn=1〜Nの値を
提供するための前記手段は2つの部分、すなわち、前記
第2のベクトルの0,+1の値のロケーションに対応す
るエントリ0,1を有する第1の部分(706)および
前記第2のベクトルの値0,−1のロケーションに対応
する値0,1を有する第2の部分(707)、を備え、
かつ前記提供手段はその第1の部分を前記第1のマルチ
プレクサ(704)の前記選択手段(708)に提供
し、かつ前記装置はさらに、 n=1〜Nの出力、n=1〜Nの第1の入力、第2の入
力、およびn=1〜Nの選択手段を有する第2のN×N
のマルチプレクサ(705)であって、n番目の選択手
段に提供される第1の論理レベルは前記n番目の出力を
前記n番目の第1の入力に結合し、かつ前記n番目の選
択手段に提供される第2の論理レベルは前記n番目の出
力を前記第2の入力に結合し、かつ前記提供手段の第2
の部分は前記第2のマルチプレクサの前記選択手段に結
合されているもの、 前記第1のベクトルのn=1〜Nの値を前記第2のマル
チプレクサのn=1〜Nの第1の入力に供給するための
第2の手段(701)、 前記第2のマルチプレクサの出力に結合され前記第2の
マルチプレクサの出力に転送される第1のベクトルの値
を一緒に加算して第2の和(717)を提供するための
第2のアキュムレータ手段(713)、そして前記第1
(716)および第2(717)の和を組合わせてどの
入力ベクトル(702)が目標音声に最も近い整合を与
えるかを決定するために使用される結果(721)を生
成するための手段(720)、 を具備する請求項10に記載の装置。
11. The second vector has values 0, + 1,-
Said means for providing a value of n = 1 to N of said second vector having two parts, namely an entry corresponding to the location of the value of 0, + 1 of said second vector. A first portion (706) having a value of 0,1 and a second portion (707) having a value of 0,1 corresponding to a location of a value 0, -1 of the second vector,
And said providing means provides its first part to said selecting means (708) of said first multiplexer (704), and said device further comprises: n = 1 to N outputs, n = 1 to N A second N × N having a first input, a second input, and n = 1-N selection means.
Multiplexer (705) for providing a first logic level to the nth selecting means for coupling the nth output to the nth first input and to the nth selecting means. A second logic level provided for coupling the nth output to the second input and a second of the providing means.
Is coupled to the selection means of the second multiplexer, the value n = 1 to N of the first vector to the first input n = 1 to N of the second multiplexer. Second means for supplying (701), together adding together the values of the first vector coupled to the output of the second multiplexer and transferred to the output of the second multiplexer to obtain a second sum ( Second accumulator means (713) for providing 717), and said first
Means for combining the (716) and second (717) sums to produce a result (721) that is used to determine which input vector (702) gives the closest match to the target speech (721). 720), The apparatus according to claim 10, further comprising:
【請求項12】 n=1〜Nに至る指数nによって識別
される値を有する第1のベクトルV(n)、および第2
のベクトルS(n)のセットの組合わせを用いた音声
のCELP符号化のための装置であって、前記第2のベ
クトルの各々は指数kによって識別されかつ前記第2の
ベクトルの各々はゼロまたは非ゼロでありかつn=1〜
Nに至る指数nによって識別されるNまでの値を有し、
前記装置は、 異なるkに対するS(n)の指数nk,iを識別する
ための手段(704,706)であって、前記S(n
)は非ゼロであるもの、 指数nk,iに対応する前記V(n)の値を加算して和
Q(k)を形成するための手段(712,721)、 最大の値Q(k=j)に対応する値k=jを識別するた
めの手段(714)、そしてSk=j(n)を使用して
音声を合成するための手段(228)、 を具備することを特徴とする音声のCELP符号化のた
めの装置。
12. A first vector V (n) having values identified by an index n ranging from n = 1 to N, and a second vector.
For the CELP coding of speech using a combination of a set of vectors S k (n) of each of the second vectors, each of the second vectors being identified by an index k and each of the second vectors being Zero or non-zero and n = 1 to
Having values up to N identified by an index n leading to N,
The apparatus is means (704, 706) for identifying an index n k, i of S k (n) for different k, said S k (n
i ) is non-zero, means (712, 721) for adding the values of said V (n) corresponding to the exponent n k, i to form sum Q (k), maximum value Q ( means (714) for identifying the value k = j corresponding to k = j) and means (228) for synthesizing the speech using S k = j (n). A device for CELP encoding of speech.
【請求項13】 前記第2のベクトルの前記セットの連
続するベクトルはオーバラップ量Δk,Δnに従って先
行する第2のベクトルのオーバラップによって決定さ
れ、前記識別のための手段および加算のための手段は、 k=1に対しS(n)の指数n1,iを識別する手段
(705,707)であって、前記S(n)は非ゼ
ロであるもの、 S(ni′)が非ゼロであるとし、k>1に対し、n
1,iからスタートしかつ前記オーバラップ量Δk,Δ
nを使用して、さらに他の指数nk,i′を決定するた
めの手段(705,707)、そしてそのような指数お
よびさらに他の指数に対するV(n)の値を加算して和
Q(k)を形成するための手段(713,721)、 を具備する請求項12に記載の装置。
13. Continuing vectors of said set of said second vectors are determined by the overlap of the preceding second vectors according to the amount of overlap Δk, Δn, means for said identification and means for addition. Is a means (705, 707) for identifying the index n 1, i of S k (n) for k = 1, said S 1 (n i ) being non-zero, S k (n i ′ ) Is non-zero, and for k> 1, n
1, i and the overlap amount Δk, Δ
Means (705, 707) for determining yet another index n k, i ' using n, and adding the values of V (n) for such index and still other indices to sum Q. 13. Device according to claim 12, comprising means (713, 721) for forming (k).
【請求項14】 前記識別のための手段、決定のための
手段および加算のための手段は、S(ni″)が非ゼ
ロであるとし、k≧2に対し前に識別されなかった第1
の指数nk,i″を識別するための手段、S(n
i″′)が非ゼロとし、k≧3に対しさらに他の指数n
ki″′を指数nk,i″からスタートしかつ前記オー
バラップ量を使用して決定するための手段、そしてその
ようなさらに他の指数に対するV(n)の値を加算して
さらに和Q(k)を形成するための手段を具備する請求
項13に記載の装置。
14. The means for identifying, the means for determining, and the means for adding assume that S k (n i ″ ) is non-zero and were not previously identified for k ≧ 2. First
Means for identifying the index n k, i ″ of S k (n
i ″ ′ ) is non-zero, and for k ≧ 3, another index n
Means for determining ki "' starting from the index n k, i" and using said amount of overlap, and adding the values of V (n) for such yet another index and further summing Q 14. The apparatus of claim 13, comprising means for forming (k).
【請求項15】 第1のベクトル(701)を指数kに
よって識別される第2のベクトルのセットと組合わせる
ことにより音声のCELP符号化を行うための方法であ
って、前記第1および第2のベクトルはn=1〜Nに至
る指数nによって識別される値を有し、前記方法は、 n=1〜Nの出力、n=1〜Nの第1の入力、第2の入
力、およびn=1〜Nの選択手段を有するN×Nの第1
のマルチプレクサ(704)を提供する段階であって、
n番目の選択手段に提供される第1の論理レベルは前記
n番目の出力をn番目の第1の入力に結合し、かつn番
目の選択手段に提供される第2の論理レベルは前記n番
目の出力を前記第2の入力に結合するもの、 前記第1のベクトル(701)のn=1〜Nの値を前記
第1のマルチプレクサのn=1〜Nの第1の入力に供給
する段階、 指数k=1の前記第2のベクトル(702)のn=1〜
Nの値を前記第1のマルチプレクサ(704)のn=1
〜Nの選択手段に提供する段階であって、前記第2のベ
クトルは前記n=1〜Nの選択手段においてnの幾つか
の値に対して前記第1の論理レベルを提供しかつnの他
の値に対し前記第2の論理レベルを提供するもの、 前記第1のマルチプレクサの出力に結合された第1のベ
クトルの値を一緒に加算して和を提供する段階、 kのさらに他の値に対し前記提供段階および加算段階を
反復する段階、そしてどの和が目標音声に対し最も近い
整合を与える第2のベクトルを識別するかに基づき音声
を合成する段階、 を具備することを特徴とする音声のCELP符号化のた
めの方法。
15. A method for CELP encoding speech by combining a first vector (701) with a second set of vectors identified by an index k, said first and second vectors. Has a value identified by the index n leading to n = 1 to N, the method comprising: n = 1 to N outputs, n = 1 to N first inputs, second inputs, and N × N first with n = 1 to N selection means
A multiplexer (704) of
The first logic level provided to the nth selection means couples the nth output to the nth first input, and the second logic level provided to the nth selection means is the nth output. A second output coupled to the second input, providing the n = 1 to N values of the first vector (701) to the n = 1 to N first inputs of the first multiplexer. Step, n = 1 to 2 of the second vector (702) with index k = 1
The value of N is set to n = 1 of the first multiplexer (704).
To N selection means, said second vector providing said first logic level for some values of n in said selection means of n = 1 to N and n. Providing the second logic level for other values, adding together the values of the first vector coupled to the output of the first multiplexer to provide a sum, and yet another of k Repeating the providing and summing steps for the values, and synthesizing the speech based on which sum identifies the second vector that gives the closest match to the target speech. For CELP encoding of speech to be played.
【請求項16】 前記第2のベクトルは値0,+1,−
1を有し、かつ前記第2のベクトルのn=1〜Nの値を
提供する段階は、前記第2のベクトルの0,+1の値の
ロケーションに対応するエントリ0,1を有する第1の
部分を第1のマルチプレクサに提供する段階、および前
記第2のベクトルの値0,−1のロケーションに対応す
る値0,1を有する第2の部分を前記第1のマルチプレ
クサと同様のかつ、前記第1のマルプレクサと同様にし
て、その入力における前記第1の入力ベクトルおよびそ
の選択手段における前記第2のベクトルの前記第2の部
分に応答する第2のマルチプレクサに提供する段階、 前記第1のマルチプレクサの出力に結合された第1のベ
クトルの値を一緒に加算して第1の和を提供し、かつ前
記第2のマルチプレクサの出力に結合された前記第1の
ベクトルの値を一緒に加算して第2の和を提供する段
階、 前記第1および第2の和を組合わせてどの入力ベクトル
が目標音声に対し最も近い整合を与えるかを決定するの
に有用な出力を提供する段階、 を具備する請求項15に記載の方法。
16. The second vector has values 0, + 1, −.
1 and providing a value of n = 1 to N of said second vector comprises a first entry having an entry 0,1 corresponding to a location of a 0, + 1 value of said second vector. Providing a portion to a first multiplexer and a second portion having a value 0,1 corresponding to a location of a value 0, -1 of the second vector, similar to the first multiplexer and Providing a second multiplexer responsive to the first input vector at its input and the second portion of the second vector at its selection means, similar to the first malplexer, said first multiplexer The values of the first vector coupled to the output of the multiplexer are added together to provide a first sum, and the values of the first vector coupled to the output of the second multiplexer are added together. To provide a second sum, the first and second sums are combined to provide an output useful for determining which input vector provides the closest match to the target speech. 16. The method of claim 15, comprising:
【請求項17】 n=1〜Nとし、指数nによって識別
される値を有する第1のベクトルV(n)および第2の
ベクトルS(n)のセットの組合わせを用いた音声の
CELP符号化のための方法であって、前記第2のベク
トルの各々は指数kによって識別されかつ前記第2のベ
クトルの各々はゼロまたは非ゼロでありかつn=1〜N
である指数nによって識別されるNまでの値を有し、前
記方法は、 S(n)が非ゼロであるとし異なるkに対しS
(n)の指数nk,iを識別する段階、 指数nk,iに対応するV(n)の値を加算して和Q
(k)を形成する段階、 最大の値Q(k=j)に対応する値k=jを識別する段
階、そしてSk=j(n)を使用して音声を合成する段
階、 を具備することを特徴とする音声のCELP符号化のた
めの方法。
17. CELP for speech using a combination of a set of a first vector V (n) and a second vector S k (n), where n = 1 to N and having a value identified by an index n. A method for encoding, wherein each of the second vectors is identified by an index k and each of the second vectors is zero or non-zero and n = 1 to N.
With values up to N identified by an exponent n, where S k (n i ) is nonzero and S is different for different k.
k index n k of the (n), identifying a i, the index n k, sums by adding the value of V (n) corresponding to the i Q
Forming (k), identifying the value k = j corresponding to the maximum value Q (k = j), and synthesizing the speech using S k = j (n). A method for CELP encoding of speech, comprising:
【請求項18】 前記第2のベクトルの前記セットの連
続するベクトルはオーバラップ量Δk,Δnに従って先
行する第2のベクトルのオーバラップによって決定さ
れ、前記識別段階および加算段階は、 S(n)が非ゼロであるとし、S(n)の指数n
1,iをk=1に対して識別する段階、 n1,iからスタートしかつオーバラップ量Δk,Δn
を使用して、S(ni′)が非ゼロであるとし、k>
1に対して、さらに他の指数nk,i′を決定する段
階、そしてそのような指数およびさらに他の指数に対し
てV(n)の値を加算して和Q(k)を形成する段階、 を具備する請求項17に記載の方法。
18. The successive vectors of said set of said second vectors are determined by the overlap of the preceding second vectors according to the amount of overlap Δk, Δn, said discriminating and summing steps comprising S 1 (n i ) is non-zero, the index n of S k (n)
Discriminating 1, i with respect to k = 1, starting from n 1, i and overlapping amounts Δk, Δn
Using S k (n i ′ ) is non-zero and k>
The step of determining yet another index n k, i ′ for 1, and adding the values of V (n) to such index and still other indices to form the sum Q (k). 18. The method of claim 17, comprising:
【請求項19】 S(ni″)が非ゼロであるとし、
k≧2に対し、前に識別されなかった第1の指数n
k,i″を識別し、かつ次に、指数nk,i″からスタ
ートし前記オーバラップ量を使用してS(ni″′
が非ゼロであるとしk≧3に対して、さらに他の指数n
k,i″′を決定する段階、そしてそのようなさらに他
の指数に対するV(n)の値を加算してさらに和Q
(k)を形成する段階をさらに具備する請求項18に記
載の方法。
19. S k (n ) is non-zero, and
For k ≧ 2, the previously unidentified first index n
k, i ″ , and then using the amount of overlap, starting from the index n k, i ″ , S k (n i ″ ″ )
Is non-zero, and for k ≧ 3, another index n
the step of determining k, i ″ ′ , and adding the values of V (n) for such further exponents and further summing Q
19. The method of claim 18, further comprising forming (k).
JP4160233A 1991-05-31 1992-05-27 Device and method for encoding speech frame Pending JPH06138896A (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US07/708,947 US5265190A (en) 1991-05-31 1991-05-31 CELP vocoder with efficient adaptive codebook search
US07/708,609 US5173941A (en) 1991-05-31 1991-05-31 Reduced codebook search arrangement for CELP vocoders
US07/714,409 US5179594A (en) 1991-06-12 1991-06-12 Efficient calculation of autocorrelation coefficients for CELP vocoder adaptive codebook
US722,572 1991-06-27
US708,947 1991-06-27
US714,409 1991-06-27
US07/722,572 US5187745A (en) 1991-06-27 1991-06-27 Efficient codebook search for CELP vocoders
US708,609 1991-06-27

Publications (1)

Publication Number Publication Date
JPH06138896A true JPH06138896A (en) 1994-05-20

Family

ID=27505511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4160233A Pending JPH06138896A (en) 1991-05-31 1992-05-27 Device and method for encoding speech frame

Country Status (2)

Country Link
EP (1) EP0516439A3 (en)
JP (1) JPH06138896A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137496A (en) * 1994-11-08 1996-05-31 Nec Corp Voice encoding device
WO2008018464A1 (en) * 2006-08-08 2008-02-14 Panasonic Corporation Audio encoding device and audio encoding method
USRE43099E1 (en) 1996-12-19 2012-01-10 Alcatel Lucent Speech coder methods and systems
WO2012095924A1 (en) * 2011-01-14 2012-07-19 パナソニック株式会社 Coding device, communication processing device, and coding method

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06186998A (en) * 1992-12-15 1994-07-08 Nec Corp Code book search system of speech encoding device
US5434947A (en) * 1993-02-23 1995-07-18 Motorola Method for generating a spectral noise weighting filter for use in a speech coder
US5504834A (en) * 1993-05-28 1996-04-02 Motrola, Inc. Pitch epoch synchronous linear predictive coding vocoder and method
CA2137756C (en) * 1993-12-10 2000-02-01 Kazunori Ozawa Voice coder and a method for searching codebooks
IT1271182B (en) * 1994-06-20 1997-05-27 Alcatel Italia METHOD TO IMPROVE THE PERFORMANCE OF VOICE CODERS
JP3303580B2 (en) * 1995-02-23 2002-07-22 日本電気株式会社 Audio coding device
JPH08263099A (en) * 1995-03-23 1996-10-11 Toshiba Corp Encoder
JP3680380B2 (en) * 1995-10-26 2005-08-10 ソニー株式会社 Speech coding method and apparatus
JP3593839B2 (en) 1997-03-28 2004-11-24 ソニー株式会社 Vector search method
US6173257B1 (en) 1998-08-24 2001-01-09 Conexant Systems, Inc Completed fixed codebook for speech encoder
US6714907B2 (en) 1998-08-24 2004-03-30 Mindspeed Technologies, Inc. Codebook structure and search for speech coding
US6556966B1 (en) 1998-08-24 2003-04-29 Conexant Systems, Inc. Codebook structure for changeable pulse multimode speech coding

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4944013A (en) * 1985-04-03 1990-07-24 British Telecommunications Public Limited Company Multi-pulse speech coder
US4969192A (en) * 1987-04-06 1990-11-06 Voicecraft, Inc. Vector adaptive predictive coder for speech and audio
US4899385A (en) * 1987-06-26 1990-02-06 American Telephone And Telegraph Company Code excited linear predictive vocoder

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137496A (en) * 1994-11-08 1996-05-31 Nec Corp Voice encoding device
USRE43099E1 (en) 1996-12-19 2012-01-10 Alcatel Lucent Speech coder methods and systems
WO2008018464A1 (en) * 2006-08-08 2008-02-14 Panasonic Corporation Audio encoding device and audio encoding method
US8112271B2 (en) 2006-08-08 2012-02-07 Panasonic Corporation Audio encoding device and audio encoding method
WO2012095924A1 (en) * 2011-01-14 2012-07-19 パナソニック株式会社 Coding device, communication processing device, and coding method
JP5722916B2 (en) * 2011-01-14 2015-05-27 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America Encoding apparatus and encoding method
US9324331B2 (en) 2011-01-14 2016-04-26 Panasonic Intellectual Property Corporation Of America Coding device, communication processing device, and coding method

Also Published As

Publication number Publication date
EP0516439A3 (en) 1993-06-16
EP0516439A2 (en) 1992-12-02

Similar Documents

Publication Publication Date Title
US5187745A (en) Efficient codebook search for CELP vocoders
US5179594A (en) Efficient calculation of autocorrelation coefficients for CELP vocoder adaptive codebook
US5265190A (en) CELP vocoder with efficient adaptive codebook search
US5371853A (en) Method and system for CELP speech coding and codebook for use therewith
EP0296763B1 (en) Code excited linear predictive vocoder and method of operation
EP0422232B1 (en) Voice encoder
US4910781A (en) Code excited linear predictive vocoder using virtual searching
Trancoso et al. Efficient procedures for finding the optimum innovation in stochastic coders
EP0515138B1 (en) Digital speech coder
JPH06138896A (en) Device and method for encoding speech frame
JP2820107B2 (en) Digital speech coder with improved vector excitation source
KR100415356B1 (en) Multi-channel signal encoding and decoding
EP0704836B1 (en) Vector quantization apparatus
JP2954588B2 (en) Audio encoding device, decoding device, and encoding / decoding system
US5173941A (en) Reduced codebook search arrangement for CELP vocoders
JPH04270398A (en) Voice encoding system
US5924063A (en) Celp-type speech encoder having an improved long-term predictor
US5105464A (en) Means for improving the speech quality in multi-pulse excited linear predictive coding
JPH10242867A (en) Sound signal encoding method
JP3249144B2 (en) Audio coding device
JPH113098A (en) Method and device of encoding speech
Gouvianakis et al. Advances in analysis by synthesis LPC speech coders
JP3252285B2 (en) Audio band signal encoding method
JPH06186998A (en) Code book search system of speech encoding device
JP2003029798A (en) Methods, devices, programs and recording media for encoding and decoding acoustic signal