JP3675054B2 - Vector quantization method, speech encoding method and apparatus, and speech decoding method - Google Patents

Vector quantization method, speech encoding method and apparatus, and speech decoding method Download PDF

Info

Publication number
JP3675054B2
JP3675054B2 JP25161596A JP25161596A JP3675054B2 JP 3675054 B2 JP3675054 B2 JP 3675054B2 JP 25161596 A JP25161596 A JP 25161596A JP 25161596 A JP25161596 A JP 25161596A JP 3675054 B2 JP3675054 B2 JP 3675054B2
Authority
JP
Japan
Prior art keywords
vector
dimension
code
variable
codebook
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP25161596A
Other languages
Japanese (ja)
Other versions
JPH1097299A (en
Inventor
正之 西口
和幸 飯島
淳 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP25161596A priority Critical patent/JP3675054B2/en
Publication of JPH1097299A publication Critical patent/JPH1097299A/en
Application granted granted Critical
Publication of JP3675054B2 publication Critical patent/JP3675054B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

PROBLEM TO BE SOLVED: To enhance searching precision of code vectors when input vectors of variable dimensions are vectorially quantized. SOLUTION: A variable-dimension vector v (underlined) which, for example, expresses the harmonic spectrum amplitude of voice is inputted through a terminal 541 and converted to fixed-dimension (e.g. 44 dimensions) vector x (underlined) by a variable/fixed dimension conversion circuit 542 to select the code vector which minimizes the weighted error from a first code book CB0 by a selection circuit 535. This fixed-dimension code vector is converted to a vector of the same variable-dimension as that of the input vector v by the fixed/ variable dimension conversion circuit 544 and added with the fixed-dimension code vector obtained from a second code book CB1 by an adder 549 to be sent to a variable-dimension selection circuit 545. The code vector which minimizes the weighted error between the input vector v and the sent code vector is selected from the code books CB0, CB1.

Description

【0001】
【発明の属する技術分野】
本発明は、入力ベクトルを符号帳に蓄えられたコードベクトルと比較して最適のコードベクトルのインデクスを出力するベクトル量子化方法、入力音声信号をブロックやフレーム等の所定の符号化単位で区分して、区分された符号化単位毎にベクトル量子化を含んだ符号化処理を行うような音声符号化方法及び装置、並びに符号化された音声信号を復号化する音声復号化方法に関する。
【0002】
【従来の技術】
オーディオ信号やビデオ信号等をディジタル化し、圧縮符号化を施す場合に、入力データの複数個をまとめてベクトルとし1つの符号(インデクス)で表現するようなベクトル量子化が知られている。
【0003】
このベクトル量子化においては、入力される種々のベクトルの代表的なパターンを予め学習等によって決定して、それぞれに符号(インデクス)を与えて符号帳(コードブック)に蓄えておき、入力ベクトルと符号帳の各パターン(コードベクトル)との比較、すなわちパターンマッチングを行い、最も類似度や相関性の高いパターンの符号を出力する。この類似度や相関性は、入力ベクトルと各コードベクトルとの間の歪尺度や誤差エネルギ等を計算することにより求められ、歪や誤差が小さいほど類似度や相関性が高いことになる。
【0004】
ところで、オーディオ信号(音声信号や音響信号を含む)の時間領域や周波数領域における統計的性質と人間の聴感上の特性を利用して信号圧縮を行うような符号化方法が種々知られている。この符号化方法としては、大別して時間領域での符号化、周波数領域での符号化、分析合成符号化等が挙げられる。
【0005】
音声信号等の高能率符号化の例として、ハーモニック(Harmonic)符号化、MBE(Multiband Excitation: マルチバンド励起)符号化等のサイン波分析符号化や、SBC(Sub-band Coding:帯域分割符号化)、LPC(Linear Predictive Coding: 線形予測符号化)、あるいはDCT(離散コサイン変換)、MDCT(モデファイドDCT)、FFT(高速フーリエ変換)等が知られている。
【0006】
このような音声信号等の高能率符号化において、例えば得られたハーモニクススペクトル等のパラメータに対して、上述したようなベクトル量子化が採用されている。
【0007】
【発明が解決しようとする課題】
ところで、音声信号をハーモニック符号化するような場合には、一定の帯域内でのハーモニクススペクトルの本数がピッチに応じて異なり、例えば有効帯域を3400kHzまでとするとき、女声から男声までのピッチ変化に応じて、ハーモニクススペクトルは8〜63本と変化することになる。従って、このようなハーモニクススペクトル振幅をベクトル化すると可変次元ベクトルとなり、これをそのままベクトル量子化することは困難なので、可変次元ベクトルを一定の固定次元ベクトルに変換した後ベクトル量子化することが、本件出願人によって、例えば特開平6−51800号公報において提案されている。
【0008】
これは、ハーモニクススペクトルの振幅データを一定の個数、例えば44個のデータにデータ数変換した後、この固定次元ベクトルをベクトル量子化するものである。
【0009】
このようなデータ数変換、あるいは可変/固定次元変換を行った後の固定次元ベクトルに対してベクトル量子化を行う場合において、符号帳検索(コードブックサーチ)を行って得られたコードベクトルは必ずしも元の可変次元のベクトル(ハーモニクススペクトル)との間の歪あるいは誤差を最適に最小化するものとはならない。
【0010】
本発明は、このような実情に鑑みてなされたものであり、可変次元で与えられるベクトルをベクトル量子化する際の精度をさらに高め得るようなベクトル量子化方法、音声符号化方法及び装置、並びに音声復号化方法を提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明に係るベクトル量子化方法は、上述した課題を解決するために、可変次元の入力ベクトルに対して符号帳に蓄えられた固定次元のコードベクトルより最適のコードベクトルを選択してそのインデクスを出力するベクトル量子化方法であって、可変次元の入力ベクトルを上記第1の符号帳の固定次元に変換する可変/固定次元変換工程と、この可変/固定次元変換工程により変換された固定次元の入力ベクトルと上記第1の符号帳に蓄えられた第1のコードベクトルとの誤差を最小化する複数のコードベクトルを上記第1の符号帳より選択する仮選択工程と、上記第1の符号帳から選択された固定次元の第1のコードベクトルを入力ベクトルの可変次元に次元変換する固定/可変次元変換工程と、第2の符号帳から読み出された固定次元の第2のコードベクトルを上記固定/可変次元変換された可変次元の第1のコードベクトルに加算する加算工程と、この加算されて得られた加算コードベクトルについて上記入力ベクトルとの誤差を最小化する最適のコードベクトルを上記少なくとも第2の符号帳より選択する選択工程とを有することを特徴とする。
【0012】
最適のコードベクトルを符号帳から選択する符号帳検索(コードブックサーチ)の際には、元の可変次元の入力ベクトルとの間の誤差あるいは歪が計算されるので、精度が高まると共に、可変次元で最適のコードベクトルを選択するために第1の符号帳から読み出された固定次元のコードベクトルを固定/可変次元変換していることによる影響を、このような固定/可変次元変換を通さない第2の符号帳からの固定次元のコードベクトルと加算することで軽減している。
【0013】
すなわち、第2の符号帳からの固定次元ベクトルによって第1の符号帳からの固定次元ベクトルを固定/可変次元変換した際に発生した歪分を抑え込むことができる。
【0014】
ここで、符号帳をシェイプ符号帳とゲイン符号帳とで構成する場合に、少なくともゲイン符号帳からのゲインの最適化を可変次元で行うようにすることが挙げられる。
【0015】
本発明に係る音声符号化方法は、入力音声信号を時間軸上で所定の符号化単位で区分して各符号化単位で符号化を行う音声符号化方法において、入力音声信号に基づく信号をサイン波分析してハーモニクススペクトルを求める工程と、上記符号化単位毎の上記ハーモニクススペクトルを可変次元の入力ベクトルとしてベクトル量子化することにより符号化する工程とを有し、上記ベクトル量子化は、可変次元の入力ベクトルを第1の符号帳の固定次元に変換する可変/固定次元変換工程と、この可変/固定次元変換工程により変換された固定次元の入力ベクトルと上記第1の符号帳に蓄えられた第1のコードベクトルとの誤差を最小化する複数のコードベクトルを上記第1の符号帳より選択する仮選択工程と、上記第1の符号帳から選択された固定次元の第1のコードベクトルを入力ベクトルの可変次元に次元変換する固定/可変次元変換工程と、第2の符号帳から読み出された固定次元の第2のコードベクトルを上記固定/可変次元変換された可変次元の第1のコードベクトルに加算する加算工程と、この加算されて得られた加算コードベクトルについて上記入力ベクトルとの誤差を最小化する最適のコードベクトルを上記少なくとも第2の符号帳より選択する選択工程とを有することを特徴とする。
【0016】
また、このような音声符号化方法が適用された音声符号化装置を構成できる。
【0019】
【発明の実施の形態】
以下、本発明に係る好ましい実施の形態について説明する。
先ず、図1は、本発明に係るベクトル量子化方法の実施の形態が適用された音声符号化装置の基本構成を示している。
【0020】
ここで、図1の音声信号符号化装置の基本的な考え方は、入力音声信号の短期予測残差例えばLPC(線形予測符号化)残差を求めてサイン波分析(sinusoidal analysis )符号化、例えばハーモニックコーディング(harmonic coding )を行う第1の符号化部110と、入力音声信号に対して位相再現性のある波形符号化により符号化する第2の符号化部120とを有し、入力信号の有声音(V:Voiced)の部分の符号化に第1の符号化部110を用い、入力信号の無声音(UV:Unvoiced)の部分の符号化には第2の符号化部120を用いるようにすることである。
【0021】
上記第1の符号化部110には、例えばLPC残差をハーモニック符号化やマルチバンド励起(MBE)符号化のようなサイン波分析符号化を行う構成が用いられる。上記第2の符号化部120には、例えば合成による分析法を用いて最適ベクトルのクローズドループサーチによるベクトル量子化を用いた符号励起線形予測(CELP)符号化の構成が用いられる。
【0022】
図1の例では、入力端子101に供給された音声信号が、第1の符号化部110のLPC逆フィルタ111及びLPC分析・量子化部113に送られている。LPC分析・量子化部113から得られたLPC係数あるいはいわゆるαパラメータは、LPC逆フィルタ111に送られて、このLPC逆フィルタ111により入力音声信号の線形予測残差(LPC残差)が取り出される。また、LPC分析・量子化部113からは、後述するようにLSP(線スペクトル対)の量子化出力が取り出され、これが出力端子102に送られる。LPC逆フィルタ111からのLPC残差は、サイン波分析符号化部114に送られる。サイン波分析符号化部114では、ピッチ検出やスペクトルエンベロープ振幅計算が行われると共に、V(有声音)/UV(無声音)判定部115によりV/UVの判定が行われる。サイン波分析符号化部114からのスペクトルエンベロープ振幅データがベクトル量子化部116に送られる。スペクトルエンベロープのベクトル量子化出力としてのベクトル量子化部116からのコードブックインデクスは、スイッチ117を介して出力端子103に送られ、サイン波分析符号化部114からの出力は、スイッチ118を介して出力端子104に送られる。また、V/UV判定部115からのV/UV判定出力は、出力端子105に送られると共に、スイッチ117、118の制御信号として送られており、上述した有声音(V)のとき上記インデクス及びピッチが選択されて各出力端子103及び104からそれぞれ取り出される。
【0023】
図1の第2の符号化部120は、この例ではCELP(符号励起線形予測)符号化構成を有しており、雑音符号帳121からの出力を、重み付きの合成フィルタ122により合成処理し、得られた重み付き音声を減算器123に送り、入力端子101に供給された音声信号を聴覚重み付けフィルタ125を介して得られた音声との誤差を取り出し、この誤差を距離計算回路124に送って距離計算を行い、誤差が最小となるようなベクトルを雑音符号帳121でサーチするような、合成による分析(Analysis by Synthesis )法を用いたクローズドループサーチを用いた時間軸波形のベクトル量子化を行っている。このCELP符号化は、上述したように無声音部分の符号化に用いられており、雑音符号帳121からのUVデータとしてのコードブックインデクスは、上記V/UV判定部115からのV/UV判定結果が無声音(UV)のときオンとなるスイッチ127を介して、出力端子107より取り出される。
【0024】
次に、図2は、本発明に係る音声復号化方法の一実施の形態が適用された音声信号復号化装置として、上記図1の音声信号符号化装置に対応する音声信号復号化装置の基本構成を示すブロック図である。
【0025】
この図2において、入力端子202には上記図1の出力端子102からの上記LSP(線スペクトル対)の量子化出力としてのコードブックインデクスが入力される。入力端子203、204、及び205には、上記図1の各出力端子103、104、及び105からの各出力、すなわちエンベロープ量子化出力としてのインデクス、ピッチ、及びV/UV判定出力がそれぞれ入力される。また、入力端子207には、上記図1の出力端子107からのUV(無声音)用のデータとしてのインデクスが入力される。
【0026】
入力端子203からのエンベロープ量子化出力としてのインデクスは、逆ベクトル量子化器212に送られて逆ベクトル量子化され、LPC残差のスペクトルエンベロープが求められて有声音合成部211に送られる。有声音合成部211は、サイン波合成により有声音部分のLPC(線形予測符号化)残差を合成するものであり、この有声音合成部211には入力端子204及び205からのピッチ及びV/UV判定出力も供給されている。有声音合成部211からの有声音のLPC残差は、LPC合成フィルタ214に送られる。また、入力端子207からのUVデータのインデクスは、無声音合成部220に送られて、雑音符号帳を参照することにより無声音部分のLPC残差が取り出される。このLPC残差もLPC合成フィルタ214に送られる。LPC合成フィルタ214では、上記有声音部分のLPC残差と無声音部分のLPC残差とがそれぞれ独立に、LPC合成処理が施される。あるいは、有声音部分のLPC残差と無声音部分のLPC残差とが加算されたものに対してLPC合成処理を施すようにしてもよい。ここで入力端子202からのLSPのインデクスは、LPCパラメータ再生部213に送られて、LPCのαパラメータが取り出され、これがLPC合成フィルタ214に送られる。LPC合成フィルタ214によりLPC合成されて得られた音声信号は、出力端子201より取り出される。
【0027】
次に、上記図1に示した音声信号符号化装置のより具体的な構成について、図3を参照しながら説明する。なお、図3において、上記図1の各部と対応する部分には同じ指示符号を付している。
【0028】
この図3に示された音声信号符号化装置において、入力端子101に供給された音声信号は、ハイパスフィルタ(HPF)109にて不要な帯域の信号を除去するフィルタ処理が施された後、LPC(線形予測符号化)分析・量子化部113のLPC分析回路132と、LPC逆フィルタ回路111とに送られる。
【0029】
LPC分析・量子化部113のLPC分析回路132は、入力信号波形の256サンプル程度の長さを符号化単位の1ブロックとしてハミング窓をかけて、自己相関法により線形予測係数、いわゆるαパラメータを求める。データ出力の単位となるフレーミングの間隔は、160サンプル程度とする。サンプリング周波数fsが例えば8kHzのとき、1フレーム間隔は160サンプルで20msec となる。
【0030】
LPC分析回路132からのαパラメータは、α→LSP変換回路133に送られて、線スペクトル対(LSP)パラメータに変換される。これは、直接型のフィルタ係数として求まったαパラメータを、例えば10個、すなわち5対のLSPパラメータに変換する。変換は例えばニュートン−ラプソン法等を用いて行う。このLSPパラメータに変換するのは、αパラメータよりも補間特性に優れているからである。
【0031】
α→LSP変換回路133からのLSPパラメータは、LSP量子化器134によりマトリクスあるいはベクトル量子化される。このとき、フレーム間差分をとってからベクトル量子化してもよく、複数フレーム分をまとめてマトリクス量子化してもよい。ここでは、20msec を1フレームとし、20msec 毎に算出されるLSPパラメータを2フレーム分まとめて、マトリクス量子化及びベクトル量子化している。
【0032】
このLSP量子化器134からの量子化出力、すなわちLSP量子化のインデクスは、端子102を介して取り出され、また量子化済みのLSPベクトルは、LSP補間回路136に送られる。
【0033】
LSP補間回路136は、上記20msec あるいは40msec 毎に量子化されたLSPのベクトルを補間し、8倍のレートにする。すなわち、2.5msec 毎にLSPベクトルが更新されるようにする。これは、残差波形をハーモニック符号化復号化方法により分析合成すると、その合成波形のエンベロープは非常になだらかでスムーズな波形になるため、LPC係数が20msec 毎に急激に変化すると異音を発生することがあるからである。すなわち、2.5msec 毎にLPC係数が徐々に変化してゆくようにすれば、このような異音の発生を防ぐことができる。
【0034】
このような補間が行われた2.5msec 毎のLSPベクトルを用いて入力音声の逆フィルタリングを実行するために、LSP→α変換回路137により、LSPパラメータを例えば10次程度の直接型フィルタの係数であるαパラメータに変換する。このLSP→α変換回路137からの出力は、上記LPC逆フィルタ回路111に送られ、このLPC逆フィルタ111では、2.5msec 毎に更新されるαパラメータにより逆フィルタリング処理を行って、滑らかな出力を得るようにしている。このLPC逆フィルタ111からの出力は、サイン波分析符号化部114、具体的には例えばハーモニック符号化回路、の直交変換回路145、例えばDFT(離散フーリエ変換)回路に送られる。
【0035】
LPC分析・量子化部113のLPC分析回路132からのαパラメータは、聴覚重み付けフィルタ算出回路139に送られて聴覚重み付けのためのデータが求められ、この重み付けデータが後述する聴覚重み付きのベクトル量子化器116と、第2の符号化部120の聴覚重み付けフィルタ125及び聴覚重み付きの合成フィルタ122とに送られる。
【0036】
ハーモニック符号化回路等のサイン波分析符号化部114では、LPC逆フィルタ111からの出力を、ハーモニック符号化の方法で分析する。すなわち、ピッチ検出、各ハーモニクスの振幅Amの算出、有声音(V)/無声音(UV)の判別を行い、ピッチによって変化するハーモニクスのエンベロープあるいは振幅Amの個数を次元変換して一定数にしている。
【0037】
図3に示すサイン波分析符号化部114の具体例においては、一般のハーモニック符号化を想定しているが、特に、MBE(Multiband Excitation: マルチバンド励起)符号化の場合には、同時刻(同じブロックあるいはフレーム内)の周波数軸領域いわゆるバンド毎に有声音(Voiced)部分と無声音(Unvoiced)部分とが存在するという仮定でモデル化することになる。それ以外のハーモニック符号化では、1ブロックあるいはフレーム内の音声が有声音か無声音かの択一的な判定がなされることになる。なお、以下の説明中のフレーム毎のV/UVとは、MBE符号化に適用した場合には全バンドがUVのときを当該フレームのUVとしている。ここで上記MBEの分析合成手法については、本件出願人が先に提案した特願平4−91422号明細書及び図面に詳細な具体例を開示している。
【0038】
図3のサイン波分析符号化部114のオープンループピッチサーチ部141には、上記入力端子101からの入力音声信号が、またゼロクロスカウンタ142には、上記HPF(ハイパスフィルタ)109からの信号がそれぞれ供給されている。サイン波分析符号化部114の直交変換回路145には、LPC逆フィルタ111からのLPC残差あるいは線形予測残差が供給されている。オープンループピッチサーチ部141では、入力信号のLPC残差をとってオープンループによる比較的ラフなピッチのサーチが行われ、抽出された粗ピッチデータは高精度ピッチサーチ146に送られて、後述するようなクローズドループによる高精度のピッチサーチ(ピッチのファインサーチ)が行われる。また、オープンループピッチサーチ部141からは、上記粗ピッチデータと共にLPC残差の自己相関の最大値をパワーで正規化した正規化自己相関最大値r(p) が取り出され、V/UV(有声音/無声音)判定部115に送られている。
【0039】
直交変換回路145では例えばDFT(離散フーリエ変換)等の直交変換処理が施されて、時間軸上のLPC残差が周波数軸上のスペクトル振幅データに変換される。この直交変換回路145からの出力は、高精度ピッチサーチ部146及びスペクトル振幅あるいはエンベロープを評価するためのスペクトル評価部148に送られる。
【0040】
高精度(ファイン)ピッチサーチ部146には、オープンループピッチサーチ部141で抽出された比較的ラフな粗ピッチデータと、直交変換部145により例えばDFTされた周波数軸上のデータとが供給されている。この高精度ピッチサーチ部146では、上記粗ピッチデータ値を中心に、0.2〜0.5きざみで±数サンプルずつ振って、最適な小数点付き(フローティング)のファインピッチデータの値へ追い込む。このときのファインサーチの手法として、いわゆる合成による分析 (Analysis by Synthesis)法を用い、合成されたパワースペクトルが原音のパワースペクトルに最も近くなるようにピッチを選んでいる。このようなクローズドループによる高精度のピッチサーチ部146からのピッチデータについては、スイッチ118を介して出力端子104に送っている。
【0041】
スペクトル評価部148では、LPC残差の直交変換出力としてのスペクトル振幅及びピッチに基づいて各ハーモニクスの大きさ及びその集合であるスペクトルエンベロープが評価され、高精度ピッチサーチ部146、V/UV(有声音/無声音)判定部115及び聴覚重み付きのベクトル量子化器116に送られる。
【0042】
V/UV(有声音/無声音)判定部115は、直交変換回路145からの出力と、高精度ピッチサーチ部146からの最適ピッチと、スペクトル評価部148からのスペクトル振幅データと、オープンループピッチサーチ部141からの正規化自己相関最大値r(p) と、ゼロクロスカウンタ142からのゼロクロスカウント値とに基づいて、当該フレームのV/UV判定が行われる。さらに、MBEの場合の各バンド毎のV/UV判定結果の境界位置も当該フレームのV/UV判定の一条件としてもよい。このV/UV判定部115からの判定出力は、出力端子105を介して取り出される。
【0043】
ところで、スペクトル評価部148の出力部あるいはベクトル量子化器116の入力部には、データ数変換(一種のサンプリングレート変換)部が設けられている。このデータ数変換部は、上記ピッチに応じて周波数軸上での分割帯域数が異なり、データ数が異なることを考慮して、エンベロープの振幅データ|Am| を一定の個数にするためのものである。すなわち、例えば有効帯域を3400kHzまでとすると、この有効帯域が上記ピッチに応じて、8バンド〜63バンドに分割されることになり、これらの各バンド毎に得られる上記振幅データ|Am| の個数mMX+1も8〜63と変化することになる。このためデータ数変換部119では、この可変個数mMX+1の振幅データを一定個数M個、例えば44個、のデータに変換している。
【0044】
このスペクトル評価部148の出力部あるいはベクトル量子化器116の入力部に設けられたデータ数変換部からの上記一定個数M個(例えば44個)の振幅データあるいはエンベロープデータが、ベクトル量子化器116により、所定個数、例えば44個のデータ毎にまとめられてベクトルとされ、重み付きベクトル量子化が施される。この重みは、聴覚重み付けフィルタ算出回路139からの出力により与えられる。ベクトル量子化器116からの上記エンベロープのインデクスは、スイッチ117を介して出力端子103より取り出される。なお、上記重み付きベクトル量子化に先だって、所定個数のデータから成るベクトルについて適当なリーク係数を用いたフレーム間差分をとっておくようにしてもよい。
【0045】
次に、第2の符号化部120について説明する。第2の符号化部120は、いわゆるCELP(符号励起線形予測)符号化構成を有しており、特に、入力音声信号の無声音部分の符号化のために用いられている。この無声音部分用のCELP符号化構成において、雑音符号帳、いわゆるストキャスティック・コードブック(stochastic code book)121からの代表値出力である無声音のLPC残差に相当するノイズ出力を、ゲイン回路126を介して、聴覚重み付きの合成フィルタ122に送っている。重み付きの合成フィルタ122では、入力されたノイズをLPC合成処理し、得られた重み付き無声音の信号を減算器123に送っている。減算器123には、上記入力端子101からHPF(ハイパスフィルタ)109を介して供給された音声信号を聴覚重み付けフィルタ125で聴覚重み付けした信号が入力されており、合成フィルタ122からの信号との差分あるいは誤差を取り出している。なお、聴覚重み付けフィルタ125の出力から聴覚重み付き合成フィルタの零入力応答を事前に差し引いておくものとする。この誤差を距離計算回路124に送って距離計算を行い、誤差が最小となるような代表値ベクトルを雑音符号帳121でサーチする。このような合成による分析(Analysis by Synthesis )法を用いたクローズドループサーチを用いた時間軸波形のベクトル量子化を行っている。
【0046】
このCELP符号化構成を用いた第2の符号化部120からのUV(無声音)部分用のデータとしては、雑音符号帳121からのコードブックのシェイプインデクスと、ゲイン回路126からのコードブックのゲインインデクスとが取り出される。雑音符号帳121からのUVデータであるシェイプインデクスは、スイッチ127sを介して出力端子107sに送られ、ゲイン回路126のUVデータであるゲインインデクスは、スイッチ127gを介して出力端子107gに送られている。
【0047】
ここで、これらのスイッチ127s、127g及び上記スイッチ117、118は、上記V/UV判定部115からのV/UV判定結果によりオン/オフ制御され、スイッチ117、118は、現在伝送しようとするフレームの音声信号のV/UV判定結果が有声音(V)のときオンとなり、スイッチ127s、127gは、現在伝送しようとするフレームの音声信号が無声音(UV)のときオンとなる。
【0048】
次に、図4は、上記図2に示した本発明に係る実施の形態としての音声信号復号化装置のより具体的な構成を示している。この図4において、上記図2の各部と対応する部分には、同じ指示符号を付している。
【0049】
この図4において、入力端子202には、上記図1、3の出力端子102からの出力に相当するLSPのベクトル量子化出力、いわゆるコードブックのインデクスが供給されている。
【0050】
このLSPのインデクスは、LPCパラメータ再生部213のLSPの逆ベクトル量子化器231に送られてLSP(線スペクトル対)データに逆ベクトル量子化され、LSP補間回路232、233に送られてLSPの補間処理が施された後、LSP→α変換回路234、235でLPC(線形予測符号)のαパラメータに変換され、このαパラメータがLPC合成フィルタ214に送られる。ここで、LSP補間回路232及びLSP→α変換回路234は有声音(V)用であり、LSP補間回路233及びLSP→α変換回路235は無声音(UV)用である。またLPC合成フィルタ214は、有声音部分のLPC合成フィルタ236と、無声音部分のLPC合成フィルタ237とを分離している。すなわち、有声音部分と無声音部分とでLPCの係数補間を独立に行うようにして、有声音から無声音への遷移部や、無声音から有声音への遷移部で、全く性質の異なるLSP同士を補間することによる悪影響を防止している。
【0051】
また、図4の入力端子203には、上記図1、図3のエンコーダ側の端子103からの出力に対応するスペクトルエンベロープ(Am)の重み付けベクトル量子化されたコードインデクスデータが供給され、入力端子204には、上記図1、図3の端子104からのピッチのデータが供給され、入力端子205には、上記図1、図3の端子105からのV/UV判定データが供給されている。
【0052】
入力端子203からのスペクトルエンベロープAmのベクトル量子化されたインデクスデータは、逆ベクトル量子化器212に送られて逆ベクトル量子化が施され、上記データ数変換に対応する逆変換が施されて、スペクトルエンベロープのデータとなって、有声音合成部211のサイン波合成回路215に送られている。
【0053】
なお、エンコード時にスペクトルのベクトル量子化に先だってフレーム間差分をとっている場合には、ここでの逆ベクトル量子化後にフレーム間差分の復号を行ってからデータ数変換を行い、スペクトルエンベロープのデータを得る。
【0054】
サイン波合成回路215には、入力端子204からのピッチ及び入力端子205からの上記V/UV判定データが供給されている。サイン波合成回路215からは、上述した図1、図3のLPC逆フィルタ111からの出力に相当するLPC残差データが取り出され、これが加算器218に送られている。このサイン波合成の具体的な手法については、例えば本件出願人が先に提案した、特願平4−91422号の明細書及び図面、あるいは特願平6−198451号の明細書及び図面に開示されている。
【0055】
また、逆ベクトル量子化器212からのエンベロープのデータと、入力端子204、205からのピッチ、V/UV判定データとは、有声音(V)部分のノイズ加算のためのノイズ合成回路216に送られている。このノイズ合成回路216からの出力は、重み付き重畳加算回路217を介して加算器218に送っている。これは、サイン波合成によって有声音のLPC合成フィルタへの入力となるエクサイテイション(Excitation:励起、励振)を作ると、男声等の低いピッチの音で鼻づまり感がある点、及びV(有声音)とUV(無声音)とで音質が急激に変化し不自然に感じる場合がある点を考慮し、有声音部分のLPC合成フィルタ入力すなわちエクサイテイションについて、音声符号化データに基づくパラメータ、例えばピッチ、スペクトルエンベロープ振幅、フレーム内の最大振幅、残差信号のレベル等を考慮したノイズをLPC残差信号の有声音部分に加えているものである。
【0056】
加算器218からの加算出力は、LPC合成フィルタ214の有声音用の合成フィルタ236に送られてLPCの合成処理が施されることにより時間波形データとなり、さらに有声音用ポストフィルタ238vでフィルタ処理された後、加算器239に送られる。
【0057】
次に、図4の入力端子207s及び207gには、上記図3の出力端子107s及び107gからのUVデータとしてのシェイプインデクス及びゲインインデクスがそれぞれ供給され、無声音合成部220に送られている。端子207sからのシェイプインデクスは、無声音合成部220の雑音符号帳221に、端子207gからのゲインインデクスはゲイン回路222にそれぞれ送られている。雑音符号帳221から読み出された代表値出力は、無声音のLPC残差に相当するノイズ信号成分であり、これがゲイン回路222で所定のゲインの振幅となり、窓かけ回路223に送られて、上記有声音部分とのつなぎを円滑化するための窓かけ処理が施される。
【0058】
窓かけ回路223からの出力は、無声音合成部220からの出力として、LPC合成フィルタ214のUV(無声音)用の合成フィルタ237に送られる。合成フィルタ237では、LPC合成処理が施されることにより無声音部分の時間波形データとなり、この無声音部分の時間波形データは無声音用ポストフィルタ238uでフィルタ処理された後、加算器239に送られる。
【0059】
加算器239では、有声音用ポストフィルタ238vからの有声音部分の時間波形信号と、無声音用ポストフィルタ238uからの無声音部分の時間波形データとが加算され、出力端子201より取り出される。
【0060】
ところで、上記音声信号符号化装置では、要求される品質に合わせ異なるビットレートの出力データを出力することができ、出力データのビットレートが可変されて出力される。
【0061】
具体的には、出力データのビットレートを、低ビットレートと高ビットレートとに切り換えることができる。例えば、低ビットレートを2kbpsとし、高ビットレートを6kbpsとする場合には、以下の表1に示す各ビットレートのデータが出力される。
【0062】
【表1】

Figure 0003675054
【0063】
出力端子104からのピッチデータについては、有声音時に、常に8bits/20msecで出力され、出力端子105から出力されるV/UV判定出力は、常に1bit/20msecである。出力端子102から出力されるLSP量子化のインデクスは、32bits/40msecと48bits/40msecとの間で切り換えが行われる。また、出力端子103から出力される有声音時(V)のインデクスは、15bits/20msecと87bits/20msecとの間で切り換えが行われ、出力端子107s、107gから出力される無声音時(UV)のインデクスは、11bits/10msecと23bits/5msecとの間で切り換えが行われる。これにより、有声音時(V)の出力データは、2kbpsでは40bits/20msecとなり、6kbpsでは120bits/20msecとなる。また、無声音時(UV)の出力データは、2kbpsでは39bits/20msecとなり、6kbpsでは117bits/20msecとなる。
【0064】
尚、上記LSP量子化のインデクス、有声音時(V)のインデクス、及び無声音時(UV)のインデクスについては、後述する各部の構成と共に説明する。
【0065】
次に、図5及び図6を用いて、LSP量子化器134におけるマトリクス量子化及びベクトル量子化について詳細に説明する。
【0066】
上述のように、LPC分析回路132からのαパラメータは、α→LSP変換回路133に送られて、LSPパラメータに変換される。例えば、LPC分析回路132でP次のLPC分析を行う場合には、αパラメータはP個算出される。このP個のαパラメータは、LSPパラメータに変換され、バッファ610に保持される。
【0067】
このバッファ610からは、2フレーム分のLSPパラメータが出力される。2フレーム分のLSPパラメータはマトリクス量子化部620でマトリクス量子化される。マトリクス量子化部620は、第1のマトリクス量子化部6201 と第2のマトリクス量子化部6202 とから成る。2フレーム分のLSPパラメータは、第1のマトリクス量子化部6201 でマトリクス量子化され、これにより得られる量子化誤差が、第2のマトリクス量子化部6202 でさらにマトリクス量子化される。これらのマトリクス量子化により、時間軸方向及び周波数軸方向の相関を取り除く。
【0068】
マトリクス量子化部6202 からの2フレーム分の量子化誤差は、ベクトル量子化部640に入力される。ベクトル量子化部640は、第1のベクトル量子化部6401 と第2のベクトル量子化部6402 とから成る。さらに、第1のベクトル量子化部6401 は、2つのベクトル量子化部650、660から成り、第2のベクトル量子化部6402 は、2つのベクトル量子化部670、680から成る。第1のベクトル量子化部6401 のベクトル量子化部650、660で、マトリクス量子化部620からの量子化誤差が、それぞれ1フレーム毎にベクトル量子化される。これにより得られる量子化誤差ベクトルは、第2のベクトル量子化部6402 のベクトル量子化部670、680で、さらにベクトル量子化される。これらのベクトル量子化により、周波数軸方向の相関を処理する。
【0069】
このように、マトリクス量子化を施す工程を行うマトリクス量子化部620は、第1のマトリクス量子化工程を行う第1のマトリクス量子化部6201 と、この第1のマトリクス量子化による量子化誤差をマトリクス量子化する第2のマトリクス量子化工程を行う第2のマトリクス量子化部6202 とを少なくとも有し、上記ベクトル量子化を施す工程を行うベクトル量子化部640は、第1のベクトル量子化工程を行う第1のベクトル量子化部6401 と、この第1のベクトル量子化の際の量子化誤差ベクトルをベクトル量子化する第2のベクトル量子化工程を行う第2のベクトル量子化部6402 とを少なくとも有する。
【0070】
次に、マトリクス量子化及びベクトル量子化について具体的に説明する。
【0071】
バッファ610に保持された、2フレーム分のLSPパラメータ、すなわち10×2の行列は、マトリクス量子化器6201 に送られる。上記第1のマトリクス量子化部6201 では、2フレーム分のLSPパラメータが加算器621を介して重み付き距離計算器623に送られ、最小となる重み付き距離が算出される。
【0072】
この第1のマトリクス量子化部6201 によるコードブックサーチ時の歪尺度dMQ1は、LSPパラメータX1 、量子化値X1'を用い、(1)式で示す。
【0073】
【数1】
Figure 0003675054
【0074】
ここで、tはフレーム番号、iはP次元の番号を示す。
【0075】
また、このときの、周波数軸方向及び時間軸方向に重みの制限を考慮しない場合の重みwを(2)式で示す。
【0076】
【数2】
Figure 0003675054
【0077】
この(2)式の重みwは、後段のマトリクス量子化及びベクトル量子化でも用いられる。
【0078】
算出された重み付き距離はマトリクス量子化器(MQ1) 622に送られて、マトリクス量子化が行われる。このマトリクス量子化により出力される8ビットのインデクスは信号切換器690に送られる。また、マトリクス量子化による量子化値は、加算器621で、バッファ610からの2フレーム分のLSPパラメータから減算される。重み付き距離計算器623では、加算器621からの出力を用いて、重み付き距離が算出される。このように、2フレーム毎に、順次、重み付き距離計算器623では重み付き距離が算出されて、マトリクス量子化器622でマトリクス量子化が行われる。重み付き距離が最小となる量子化値が選ばれる。また、加算器621からの出力は、第2のマトリクス量子化部6202 の加算器631に送られる。
【0079】
第2のマトリクス量子化部6202 でも第1のマトリクス量子化部6201 と同様にして、マトリクス量子化を行う。上記加算器621からの出力は、加算器631を介して重み付き距離計算器633に送られ、最小となる重み付き距離が算出される。
【0080】
この第2のマトリクス量子化部6202 によるコードブックサーチ時の歪尺度dMQ2 を、第1のマトリクス量子化部6201 からの量子化誤差X2 、量子化値X2'により、(3)式で示す。
【0081】
【数3】
Figure 0003675054
【0082】
この重み付き距離はマトリクス量子化器(MQ2) 632に送られて、マトリクス量子化が行われる。このマトリクス量子化により出力される8ビットのインデクスは信号切換器690に送られる。また、マトリクス量子化による量子化値は、加算器631で、2フレーム分の量子化誤差から減算される。重み付き距離計算器633では、加算器631からの出力を用いて、重み付き距離が順次算出されて、重み付き距離が最小となる量子化値が選ばれる。また、加算器631からの出力は、第1のベクトル量子化部6401 の加算器651、661に1フレームずつ送られる。
【0083】
この第1のベクトル量子化部6401 では、1フレーム毎にベクトル量子化が行われる。加算器631からの出力は、1フレーム毎に、加算器651、661を介して重み付き距離計算器653、663にそれぞれ送られ、最小となる重み付き距離が算出される。
【0084】
量子化誤差X2と量子化値X2'との差分は、10×2の行列であり、
2−X2’=[ 3-1 3-2
と表すときの、この第1のベクトル量子化部6401 のベクトル量子化器652、662によるコードブックサーチ時の歪尺度dVQ1、dVQ2を、(4)、(5)式で示す。
【0085】
【数4】
Figure 0003675054
【0086】
この重み付き距離はベクトル量子化器(VQ1) 652、ベクトル量子化器(VQ2) 662にそれぞれ送られて、ベクトル量子化が行われる。このベクトル量子化により出力される各8ビットのインデクスは信号切換器690に送られる。また、ベクトル量子化による量子化値は、加算器651、661で、入力された2フレーム分の量子化誤差ベクトルから減算される。重み付き距離計算器653、663では、加算器651、661からの出力を用いて、重み付き距離が順次算出されて、重み付き距離が最小となる量子化値が選ばれる。また、加算器651、661からの出力は、第2のベクトル量子化部6402 の加算器671、681にそれぞれ送られる。
【0087】
ここで、
4-1 3-13-1
4-2 3-23-2
と表すときの、この第2のベクトル量子化部6402 のベクトル量子化器672、682によるコードブックサーチ時の歪尺度dVQ3、dVQ4を、(6)、(7)式で示す。
【0088】
【数5】
Figure 0003675054
【0089】
この重み付き距離はベクトル量子化器(VQ3) 672、ベクトル量子化器(VQ4) 682にそれぞれ送られて、ベクトル量子化が行われる。このベクトル量子化により出力される各8ビットのインデクスは信号切換器690に送られる。また、ベクトル量子化による量子化値は、加算器671、681で、入力された2フレーム分の量子化誤差ベクトルから減算される。重み付き距離計算器673、683では、加算器671、681からの出力を用いて、重み付き距離が順次算出されて、重み付き距離が最小となる量子化値が選ばれる。
【0090】
また、コードブックの学習時には、上記各歪尺度をもとにして、一般化ロイドアルゴリズム(GLA)により学習を行う。
【0091】
尚、コードブックサーチ時と学習時の歪尺度は、異なる値であっても良い。
【0092】
上記マトリクス量子化器622、632、ベクトル量子化器652、662、672、682からの各8ビットのインデクスは、信号切換器690で切り換えられて、出力端子691から出力される。
【0093】
具体的には、低ビットレート時には、上記第1のマトリクス量子化工程を行う第1のマトリクス量子化部6201 、上記第2のマトリクス量子化工程を行う第2のマトリクス量子化部6202 、及び上記第1のベクトル量子化工程を行う第1のベクトル量子化部6401 での出力を取り出し、高ビットレート時には、上記低ビットレート時の出力に上記第2のベクトル量子化工程を行う第2のベクトル量子化部6402 での出力を合わせて取り出す。
【0094】
これにより、2kbps 時には、32bits/40msec のインデクスが出力され、6kbps 時には、48bits/40msec のインデクスが出力される。
【0095】
また、上記マトリクス量子化部620及び上記ベクトル量子化部640では、上記LPC係数を表現するパラメータの持つ特性に合わせた、周波数軸方向又は時間軸方向、あるいは周波数軸及び時間軸方向に制限を持つ重み付けを行う。
【0096】
先ず、LSPパラメータの持つ特性に合わせた、周波数軸方向に制限を持つ重み付けについて説明する。例えば、次数P=10とするとき、LSPパラメータx(i)を、低域、中域、高域の3つの領域として、
1={x(i)|1≦i≦2}
2={x(i)|3≦i≦6}
3={x(i)|7≦i≦10}
とグループ化する。そして、各グループL1、L2、L3 の重み付けを1/4、1/2、1/4とすると、各グループL1、L2、L3 の周波数軸方向のみに制限を持つ重みは、(8)、(9)、(10)式となる。
【0097】
【数6】
Figure 0003675054
【0098】
これにより、各LSPパラメータの重み付けは、各グループ内でのみ行われ、その重みは各グループに対する重み付けで制限される。
【0099】
ここで、時間軸方向からみると、各フレームの重み付けの総和は、必ず1となるので、時間軸方向の制限は1フレーム単位である。この時間軸方向のみに制限を持つ重みは、(11)式となる。
【0100】
【数7】
Figure 0003675054
【0101】
この(11)式により、周波数軸方向での制限のない、フレーム番号t=0,1の2つのフレーム間で、重み付けが行われる。この時間軸方向にのみ制限を持つ重み付けは、マトリクス量子化を行う2フレーム間で行う。
【0102】
また、学習時には、学習データとして用いる全ての音声フレーム、即ち全データのフレーム数Tについて、(12)式により、重み付けを行う。
【0103】
【数8】
Figure 0003675054
【0104】
また、周波数軸方向及び時間軸方向に制限を持つ重み付けについて説明する。例えば、次数P=10とするとき、LSPパラメータx(i,t)を、低域、中域、高域の3つの領域として、
1={x(i,t)|1≦i≦2,0≦t≦1}
2={x(i,t)|3≦i≦6,0≦t≦1}
3={x(i,t)|7≦i≦10,0≦t≦1}
とグループ化する。各グループL1、L2、L3 の重み付けを1/4、1/2、1/4とすると、各グループL1、L2、L3 の周波数軸方向及び時間軸方向に制限を持つ重み付けは、(13)、(14)、(15)式となる。
【0105】
【数9】
Figure 0003675054
【0106】
この(13)、(14)、(15)式により、周波数軸方向では3つの帯域毎に、時間軸方向ではマトリクス量子化を行う2フレーム間に重み付けの制限を加えた重み付けを行う。これは、コードブックサーチ時及び学習時共に有効となる。
【0107】
また、学習時においては、全データのフレーム数について重み付けを行う。LSPパラメータx(i,t)を、低域、中域、高域の3つの領域として、
1 ={x(i,t)|1≦i≦2,0≦t≦T}
2 ={x(i,t)|3≦i≦6,0≦t≦T}
3 ={x(i,t)|7≦i≦10,0≦t≦T}
とグループ化し、各グループL1、L2、L3 の重み付けを1/4、1/2、1/4とすると、各グループL1、L2、L3 の周波数軸方向及び時間軸方向に制限を持つ重み付けは、(16)、(17)、(18)式となる。
【0108】
【数10】
Figure 0003675054
【0109】
この(16)、(17)、(18)式により、周波数軸方向では3つの帯域毎に重み付けを行い、時間軸方向では全フレーム間で重み付けを行うことができる。
【0110】
さらに、上記マトリクス量子化部620及び上記ベクトル量子化部640では、上記LSPパラメータの変化の大きさに応じて重み付けを行う。音声フレーム全体においては少数フレームとなる、V→UV、UV→Vの遷移(トランジェント)部において、子音と母音との周波数特性の違いから、LSPパラメータは大きく変化する。そこで、(19)式に示す重みを、上述の重みw’(i,t)に乗算することにより、上記遷移部を重視する重み付けを行うことができる。
【0111】
【数11】
Figure 0003675054
【0112】
尚、(19)式の代わりに、(20)式を用いることも考えられる。
【0113】
【数12】
Figure 0003675054
【0114】
このように、LSP量子化器134では、2段のマトリクス量子化及び2段のベクトル量子化を行うことにより、出力するインデクスのビット数を可変にすることができる。
【0115】
次に、上記図1、図3のベクトル量子化部116の基本構成を図7に、図7のベクトル量子化部のより具体的な構成を図8にそれぞれ示し、ベクトル量子化部116におけるスペクトルエンベロープ(Am)の重み付きベクトル量子化の具体例について説明する。
【0116】
先ず、図3の音声信号符号化装置において、スペクトル評価部148の出力側あるいはベクトル量子化器116の入力側に設けられたスペクトルエンベロープの振幅のデータ数を一定個数にするデータ数変換の具体例について説明する。
【0117】
このデータ数変換には種々の方法が考えられるが、本実施の形態においては、例えば、周波数軸上の有効帯域1ブロック分の振幅データに対して、ブロック内の最後のデータからブロック内の最初のデータまでの値を補間するようなダミーデータ、あるいはブロックの最後のデータ、最初のデータを繰り返すような所定のデータを付加してデータ個数をNF 個に拡大した後、帯域制限型のOS 倍(例えば8倍)のオーバーサンプリングを施すことによりOS 倍の個数の振幅データを求め、このOS 倍の個数((mMX+1)×OS 個)の振幅データを直線補間してさらに多くのNM 個(例えば2048個)に拡張し、このNM 個のデータを間引いて上記一定個数M(例えば44個)のデータに変換している。実際には、最終的に必要なM個のデータを作成するのに必要なデータのみをオーバーサンプリング及び直線補間で算出しており、NM 個のデータを全て求めてはいない。
【0118】
図3の重み付きベクトル量子化を行うベクトル量子化器116は、図7に示すように、第1のベクトル量子化工程を行う第1のベクトル量子化部500と、この第1のベクトル量子化部500における第1のベクトル量子化の際の量子化誤差ベクトルを量子化する第2のベクトル量子化工程を行う第2のベクトル量子化部510とを少なくとも有する。この第1のベクトル量子化部500は、いわゆる1段目のベクトル量子化部であり、第2のベクトル量子化部510は、いわゆる2段目のベクトル量子化部である。
【0119】
第1のベクトル量子化部500の入力端子501には、スペクトル評価部148の出力ベクトル、即ち一定個数Mのエンベロープデータが入力される。この出力ベクトルは、ベクトル量子化器502で重み付きベクトル量子化される。これにより、ベクトル量子化器502から出力されるシェイプインデクスは出力端子503から出力され、また、量子化値 0'は出力端子504から出力されると共に、加算器505、513に送られる。加算器505では、ソースベクトルから量子化値 0'が減算されて、量子化誤差ベクトルが得られる。
【0120】
この量子化誤差ベクトルは、第2のベクトル量子化部510内のベクトル量子化部511に送られる。このベクトル量子化部511は、複数個のベクトル量子化器で構成され、図7では、2個のベクトル量子化器5111、5112から成る。量子化誤差ベクトルは次元分割されて、2個のベクトル量子化器5111、5112で、それぞれ重み付きベクトル量子化される。これらのベクトル量子化器5111、5112から出力されるシェイプインデクスは、出力端子5121、5122からそれぞれ出力され、また、量子化値 1’、 2’は次元方向に接続されて、加算器513に送られる。この加算器513では、量子化値 1’、 2’と量子化値 0’とが加算されて、量子化値 1’が生成される。この量子化値 1’は出力端子514から出力される。
【0121】
これにより、低ビットレート時には、上記第1のベクトル量子化部500による第1のベクトル量子化工程での出力を取り出し、高ビットレート時には、上記第1のベクトル量子化工程での出力及び上記第2の量子化部510による第2のベクトル量子化工程での出力を取り出す。
【0122】
具体的には、図8に示すように、ベクトル量子化器116内の第1のベクトル量子化部500のベクトル量子化器502は、L次元、例えば44次元の2ステージ構成としている。
【0123】
すなわち、44次元でコードブックサイズが32のベクトル量子化コードブックからの出力ベクトルの和に、ゲインgi を乗じたものを、44次元のスペクトルエンベロープベクトルの量子化値 0’として使用する。これは、図8に示すように、2つのシェイプコードブックをCB0、CB1とし、その出力ベクトルを 0i 1j、ただし0≦i,j≦31、とする。また、ゲインコードブックCBgの出力をgl 、ただし0≦l≦31、とする。gl はスカラ値である。この最終出力 0'は、gi 0i 1j) となる。
【0124】
LPC残差について上記MBE分析によって得られたスペクトルエンベロープAmを一定次元に変換したものをとする。このとき、をいかに効率的に量子化するかが重要である。
【0125】
ここで、量子化誤差エネルギEを、
Figure 0003675054
と定義する。この(21)式において、はLPCの合成フィルタの周波数軸上での特性であり、は聴覚重み付けの周波数軸上での特性を表す重み付けのための行列である。
【0126】
行列は、現フレームのLPC分析結果によるαパラメータを、αi (1≦i≦P)として、
【0127】
【数13】
Figure 0003675054
【0128】
の周波数特性からL次元、例えば44次元の各対応する点の値をサンプルしたものである。
【0129】
算出手順としては、一例として、1、α1、α2、・・・、αp に0詰めして、すなわち、1、α1、α2、・・・、αp 、0、0、・・・、0として、例えば256点のデータにする。その後、256点FFTを行い、(re2+im21/2 を0〜πに対応する点に対して算出して、その逆数をとる。それをL点、すなわち例えば44点に間引いたものを対角要素とする行列を、
【0130】
【数14】
Figure 0003675054
【0131】
とする。
【0132】
聴覚重み付け行列は、以下のように求められる。
【0133】
【数15】
Figure 0003675054
【0134】
この(23)式で、αi は入力のLPC分析結果である。また、λa、λbは定数であり、一例として、λa=0.4、λb=0.9が挙げられる。
【0135】
行列あるいはマトリクスは、上記(23)式の周波数特性から算出できる
。一例として、1、α1λb、α2λb2、・・・、αpλbp、0、0、・・・、0として256点のデータとしてFFTを行い、0以上π以下の区間に対して(re2[i]+im2[i])1/2 、0≦i≦128、を求める。次に、1、α1λa、α2λa2 、・・・、αpλap 、0、0、・・・、0として分母の周波数特性を256点FFTで0〜πの区間を128点で算出する。これを(re'2[i]+im'2[i])1/2 、0≦i≦128、とする。
【0136】
【数16】
Figure 0003675054
【0137】
として、上記(23)式の周波数特性が求められる。
【0138】
これをL次元、例えば44次元ベクトルの対応する点について、以下の方法で求める。より正確には、直線補間を用いるべきであるが、以下の例では最も近い点の値で代用している。
【0139】
すなわち、
ω[i]=ω0[nint(128i/L)] 1≦i≦L
ただし、nint(X)は、Xに最も近い整数を返す関数
である。
【0140】
また、上記に関しても同様の方法で、h(1)、h(2)、・・・、h(L)を求めている。すなわち、
【0141】
【数17】
Figure 0003675054
【0142】
となる。
【0143】
ここで、他の例として、FFTの回数を減らすのに、H(z)W(z)を先に求めてから、周波数特性を求めてもよい。すなわち、
【0144】
【数18】
Figure 0003675054
【0145】
この(25)式の分母を展開した結果を、
【0146】
【数19】
Figure 0003675054
【0147】
とする。ここで、1、β1、β2、・・・、β2p、0、0、・・・、0として、例えば256点のデータにする。その後、256点FFTを行い、振幅の周波数特性を、
【0148】
【数20】
Figure 0003675054
【0149】
とする。これより、
【0150】
【数21】
Figure 0003675054
【0151】
これをL次元ベクトルの対応する点について求める。上記FFTのポイント数が少ない場合は、直線補間で求めるべきであるが、ここでは最寄りの値を使用している。すなわち、
【0152】
【数22】
Figure 0003675054
【0153】
である。これを対角要素とする行列を’とすると、
【0154】
【数23】
Figure 0003675054
【0155】
となる。(26)式は上記(24)式と同一のマトリクスとなる。
【0156】
あるいは、(25)式より直接|H(exp(jω))W(exp(jω))|をω=iπ/L(ただし、1≦i≦L)に関して算出したものをwh[i] に使用してもよい。又は、(25)式のインパルス応答を適当な長さ(例えば40点)求めて、それを用いてFFTして振幅周波数特性を求めて使用してもよい。
【0157】
このマトリクス、すなわち重み付き合成フィルタの周波数特性を用いて、上記(21)式を書き直すと、
【0158】
【数24】
Figure 0003675054
【0159】
となる。
【0160】
ここで、シェイプコードブックとゲインコードブックの学習法について説明する。
【0161】
先ず、CB0に関しコードベクトル 0cを選択する全てのフレームkに関して歪の期待値を最小化する。そのようなフレームがM個あるとして、
【0162】
【数25】
Figure 0003675054
【0163】
を最小化すればよい。この(28)式中で、 k'はk番目のフレームに対する重み、 k はk番目のフレームの入力、gk はk番目のフレームのゲイン、 1kはk番目のフレームについてのコードブックCB1からの出力、をそれぞれ示す。
【0164】
この(28)式を最小化するには、
【0165】
【数26】
Figure 0003675054
【0166】
【数27】
Figure 0003675054
【0167】
次に、ゲインに関しての最適化を考える。
【0168】
ゲインのコードワードgc を選択するk番目のフレームに関しての歪の期待値Jg は、
【0169】
【数28】
Figure 0003675054
【0170】
上記(31)式及び(32)式は、シェイプ 0i 1j及びゲインgl 、0≦i≦31、0≦j≦31、0≦l≦31の最適なセントロイドコンディション(Centroid Condition)、すなわち最適なデコーダ出力を与えるものである。なお、 1jに関しても 0iと同様に求めることができる。
【0171】
次に、最適エンコード条件(Nearest Neighbour Condition )を考える。
【0172】
歪尺度を求める上記(27)式、すなわち、
E=‖'(−gl 0i 1j))‖2
を最小化する 0i 1jを、入力、重みマトリクス' が与えられる毎に、すなわち毎フレームごとに決定する。
【0173】
このようなコードブックサーチは、本来は、総当り的に全てのgl (0≦l≦31)、 0i(0≦i≦31)、 1j(0≦j≦31)の組み合せの、32×32×32=32768通りについてEを求めて、最小のEを与えるgl 0i 1jの組を求めるべきであるが、膨大な演算量となるので、本実施の形態では、シェイプとゲインのシーケンシャルサーチを行っている。なお、 0i 1jとの組み合せについては、総当りサーチを行うものとする。これは、32×32=1024通りである。以下の説明では、簡単化のため、 0i 1j m と記す。
【0174】
上記(27)式は、E=‖'(−gl m)‖2 となる。さらに簡単のため、 w' w' m とすると、
【0175】
【数29】
Figure 0003675054
【0176】
となる。従って、gl の精度が充分にとれると仮定すると、
【0177】
【数30】
Figure 0003675054
【0178】
という2つのステップに分けてサーチすることができる。元の表記を用いて書き直すと、
【0179】
【数31】
Figure 0003675054
【0180】
となる。この(35)式が最適エンコード条件(Nearest Neighbour Condition) である。
【0181】
次に、このようなベクトル量子化のコードブックサーチ(符号帳検索)を行う場合の演算量についてさらに考察する。
【0182】
先ず、上記(35)式の(1)’の演算量は、 0i及び 1jの次元をK、コードブックCB0、CB1のサイズをそれぞれL0、L1、すなわち
0≦i<L0、0≦j<L1
とし、分子の加算、積和、2乗の各演算量をそれぞれ1、分母の積、積和の各演算量をそれぞれ1として、概略、
分子 : L0・L1・{K・(1+1)+1}
分母 : L0・L1・K・(1+1)
大小比較 : L0・L1
となり、計L0・L1(4K+2)となる。ここで、L0=L1=32、K=44とすると、演算量は、182272程度のオーダーとなる。
【0183】
そこで、上記(35)式の(1)’の演算を全て実行せずに、 0i及び 1jに関してP個ずつ予備選択(プリセレクション)を行う。なお、ここでは、負のゲインエントリを考えていない(許していない)ため、上記(35)式の(2)’の分子の値は常に正の数となるように、上記(35)式の(1)’のサーチを行う。すなわち、 t 't '( 0i 1j) の極性込みで、上記(35)式の(1)’の最大化を行う。
【0184】
このような予備選択方法の具体例について説明すると、先ず、
(手順1) t 't ' 0iを最大にする 0iを上位からP0 個選択
(手順2) t 't ' 1jを最大にする 1iを上位からP1 個選択
(手順3)これらP0個の 0iとP1個の 1jの全ての組み合わせについて、上記(35)式の(1)’の式を評価
という方法が挙げられる。
【0185】
これは、上記(35)式の(1)’の式の平方根である、
【0186】
【数32】
Figure 0003675054
【0187】
の評価において、分母、すなわち 0i 1jの重み付きノルムが、i、jによらずほぼ一定という仮定が成立するときに有効である。実際には上記(a1)式の分母の大きさは一定ではないが、これを考慮した予備選択方法については、後述する。
【0188】
ここでは、上記(a1)式の分母が一定と仮定した場合の演算量の削減効果を説明する。上記(手順1)のサーチにL0・Kの演算量を要し、大小比較に、
(L0−1)+(L0−2)+・・・+(L0−P0
=P0・L0 − P0(1+P0)/2
を要するから、演算量の計は、L0(K+P0)−P0(1+P0)/2となる。また、上記(手順2)にも同様の処理量が必要であり、これらを合計して、予備選択のための演算処理量は、
L0(K+P0)+L1(K+P1)−P0(1+P0)/2−P1(1+P1)/2
となる。
【0189】
また、上記(手順3)の本選択の処理については、上記(35)式の(1)’の演算に関して、
分子 : P0・P1・(1+K+1)
分母 : P0・P1・K・(1+1)
大小比較 : P0・P1
となり、計P0・P1(3K+3)となる。
【0190】
例えば、P0=P1=6、L0=L1=32、K=44とすると、演算量は、本選択で4860、予備選択で3158となり、計8018程度のオーダーとなる。また、予備選択の個数をそれぞれ10個にまで増やしてP0=P1=10としても、本選択で13500、予備選択で3346となり、16846程度のオーダーとなる。
【0191】
このように、予備選択するベクトルの個数を各コードブックそれぞれ10個ずつとした場合でも、前述した全てを演算する場合の182272と比較して、
16846/182272
となり、元の約1/10以下の演算量に抑えることができる。
【0192】
ところで、上記(35)式の(1)’の式の分母の大きさは一定ではなく、選択されたコードベクトルに依存して大小変化する。そこで、ある程度このノルムの概略の大きさを考慮した予備選択(プリセレクション)方法について、以下に説明する。
【0193】
上記(35)式の(1)’の式の平方根である上記(a1)式の最大値を求める場合に、
【0194】
【数33】
Figure 0003675054
【0195】
であることを考慮して、この(a2)式の左辺を最大化すればよい。そこで、この左辺を
【0196】
【数34】
Figure 0003675054
【0197】
のように展開して、この(a3)式の第1項、第2項をそれぞれ最大化する。
【0198】
上記(a3)式の第1項の分子は 0iのみの関数なので、 0iに関しての最大化を考える。また上記(a3)式の第2項の分子は 1jのみの関数なので、 1jに関しての最大化を考える。すなわち、
【0199】
【数35】
Figure 0003675054
【0200】
において、
(手順1)上記(a4)式を最大化するものの上位からQ0 個の 0iを選択
(手順2)上記(a5)式を最大化するものの上位からQ1 個の 1jを選択
(手順3)選択されたQ0個の 0iとQ1個の 1jの全ての組み合わせについて、上記(35)式の(1)’の式を評価
という方法が挙げられる。
【0201】
なお、’=WH/‖‖であり、も入力ベクトルの関数であり、当然’も入力ベクトルの関数となる。
【0202】
従って、本来は入力ベクトル毎に’を算出し、上記(a4)、(a5)式の分母を計算すべきであるが、ここでは予備選択なのであまり演算処理量を費やしたくない。そこで、これらの分母については、典型的な、すなわち代表的な’の値を用いて事前に各 0i 1jについて計算した値を、 0i 1jと共にテーブルに格納しておく。なお、実際のサーチ演算で割り算をすることは処理が重いので、
【0203】
【数36】
Figure 0003675054
【0204】
の(a6)、(a7)式の値を格納しておく。ここで、 * は、次の(a8)式に示すものである。
【0205】
【数37】
Figure 0003675054
【0206】
図9は、上記 * を下記の(a10)式で記述したときの各W[0]〜W[43] の具体例を示すものである。
【0207】
【数38】
Figure 0003675054
【0208】
上記(a4)、(a5)式の分子については、’を入力ベクトル毎に算出して使用する。これは、いずれにせよ 0i 1jとの内積を算出せねばならないので、 t 't 'を一度計算しておけば演算量増加はごく僅かであることを考慮したものである。
【0209】
このような予備選択方法に要する演算量の概略を見積もると、上記(手順1)のサーチでは、L0(K+1)の演算量を要し、大小比較に、
0・L0 − Q0(1+Q0)/2
を要する。また、上記(手順2)にも同様の処理量が必要であり、これらを合計して、予備選択のための演算処理量は、
L0(K+Q0+1)+L1(K+Q1+1)−Q0(1+Q0)/2−Q1(1+Q1)/2
となる。
【0210】
また、上記(手順3)の本選択の処理については、上記(35)式の(1)’の演算に関して、
分子 : Q0・Q1・(1+K+1)
分母 : Q0・Q1・K・(1+1)
大小比較 : Q0・Q1
となり、計Q0・Q1(3K+3)となる。
【0211】
例えば、Q0=Q1=6、L0=L1=32、K=44とすると、演算量は、本選択で4860、予備選択で3222となり、計8082程度のオーダーとなる。また、予備選択の個数をそれぞれ10個にまで増やしてQ0=Q1=10としても、本選択で13500、予備選択で3410となり、16910程度のオーダーとなる。
【0212】
これらの計算結果は、上述した重み付きノルムで割り込まない(ノーマライズ無し)場合のP0=P1=6としたときの演算量の、計8018程度のオーダーや、P0=P1=10としたときの16846程度のオーダーとほぼ同程度の値であり、予備選択するベクトルの個数を各コードブックそれぞれ10個ずつとした場合でも、前述した全てを演算する場合の182272と比較して、
16910/182272
となり、元の約1/10以下の演算量に抑えることができる。
【0213】
以上説明したような予備選択を行わないで分析・合成した音声を基準として、予備選択を行った場合のSNR(SN比)と、20msecセグメントのときのセグメンタルSNRとについて具体例を示すと、ノーマライズ無しP0=P1=6のときのSNR:14.8(dB)、セグメンタルSNR:17.5(dB)に比べて、同じ予備選択個数でノーマライズ有り、重み無しのとき、SNR:16.8(dB)、セグメンタルSNR:18.7(dB)となり、重み付きノーマライズ有りのとき、SNR:17.8(dB)、セグメンタルSNR:19.6(dB)となる。このように、ノーマライズ無しから、重み付きノーマライズ有りとすることで、2〜3dBだけSNR、セグメンタルSNRが向上している。
【0214】
ここで上記(31)、(32)式の条件(Centroid Condition)と、(35)式の条件を用いて、LBG(Linde-Buzo-Gray) アルゴリズム、いわゆる一般化ロイドアルゴリズム(Generalized Lloyd Algorithm:GLA)によりコードブック(CB0、CB1、CBg)を同時にトレーニングできる。
【0215】
なお、本実施の形態では、’として、入力のノルムで割り込んだ’を使用している。すなわち、上記(31)、(32)、(35)式において、事前に’に’/‖‖を代入して使用している。
【0216】
あるいは別法として、ベクトル量子化器116でのベクトル量子化の際の聴覚重み付けに用いられる重み’については、上記(26)式で定義されているが、過去の’も加味して現在の’を求めることにより、テンポラルマスキングも考慮した’を求めてもよい。
【0217】
上記(26)式中のwh(1),wh(2),・・・,wh(L)に関して、時刻n、すなわち第nフレームで算出されたものをそれぞれwhn(1),whn(2),・・・,whn(L) とする。
【0218】
時刻nで過去の値を考慮した重みをAn(i)、1≦i≦L と定義すると、
【0219】
【数39】
Figure 0003675054
【0220】
とする。ここで、λは例えばλ=0.2とすればよい。このようにして求められたAn(i)、1≦i≦L について、これを対角要素とするマトリクスを上記重みとして用いればよい。
【0221】
このように重み付きベクトル量子化により得られたシェイプインデクス 0i 1jは、出力端子520、522からそれぞれ出力され、ゲインインデクスgl は、出力端子521から出力される。また、量子化値 0'は、出力端子504から出力されると共に、加算器505に送られる。
【0222】
この加算器505では、スペクトルエンベロープベクトルから量子化値 0'が減算されて、量子化誤差ベクトルが生成される。この量子化誤差ベクトルは、具体的には、8個のベクトル量子化器5111〜5118から成るベクトル量子化部511に送られて、次元分割され、各ベクトル量子化器5111〜5118で重み付きのベクトル量子化が施される。
【0223】
第2のベクトル量子化部510では、第1のベクトル量子化部500と比較して、かなり多くのビット数を用いるため、コードブックのメモリ容量及びコードブックサーチのための演算量(Complexity)が非常に大きくなり、第1のベクトル量子化部500と同じ44次元のままでベクトル量子化を行うことは、不可能である。そこで、第2のベクトル量子化部510内のベクトル量子化部511を複数個のベクトル量子化器で構成し、入力される量子化値を次元分割して、複数個の低次元ベクトルとして、重み付きのベクトル量子化を行う。
【0224】
ベクトル量子化器5111〜5118で用いる各量子化値 0 7と、次元数と、ビット数との関係を、表2に示す。
【0225】
【表2】
Figure 0003675054
【0226】
ベクトル量子化器5111〜5118から出力されるインデクスIdvq0〜Idvq7は、各出力端子5231〜5238からそれぞれ出力される。これらのインデクスの合計は72ビットである。
【0227】
また、ベクトル量子化器5111〜5118から出力される量子化値 0’〜 7’を次元方向に接続した値を’とすると、加算器513では、量子化値’と量子化値 0’とが加算されて、量子化値 1’が得られる。よって、この量子化値 1’は、
Figure 0003675054
で表される。すなわち、最終的な量子化誤差ベクトルは、’−となる。
【0228】
尚、音声信号復号化装置側では、この第2のベクトル量子化部510からの量子化値 1’ を復号化するときには、第1のベクトル量子化部500からの量子化値 0’ は不要であるが、第1のベクトル量子化部500及び第2のベクトル量子化部510からのインデクスは必要とする。
【0229】
次に、上記ベクトル量子化部511における学習法及びコードブックサーチについて説明する。
【0230】
先ず、学習法においては、量子化誤差ベクトル及び重みw’を用い、表2に示すように、8つの低次元ベクトル 0 7及びマトリクスに分割する。このとき、重み’は、例えば44点に間引いたものを対角要素とする行列、
【0231】
【数40】
Figure 0003675054
【0232】
とすると、以下の8つの行列に分割される。
【0233】
【数41】
Figure 0003675054
【0234】
このように、及び’の低次元に分割されたものを、それぞれ
i i’ (1≦i≦8)
とする。
【0235】
ここで、歪尺度Eを、
E=‖ i'( i)‖2 ・・・(37)
と定義する。このコードベクトル iの量子化結果であり、歪尺度Eを最小化する、コードブックのコードベクトルがサーチされる。
【0236】
尚、 i’は、学習時には重み付けがあり、サーチ時には重み付け無し、すなわち単位行列とし、学習時とコードブックサーチ時とでは異なる値を用いるようにしてもよい。
【0237】
また、コードブックの学習では、一般化ロイドアルゴリズム(GLA)を用い、さらに重み付けを行っている。先ず、学習のための最適なセントロイドコンディションについて説明する。コードベクトルを最適な量子化結果として選択した入力ベクトルがM個ある場合に、トレーニングデータを k とすると、歪の期待値Jは、全てのフレームkに関して重み付け時の歪の中心を最小化するような(38)式となる。
【0238】
【数42】
Figure 0003675054
【0239】
上記(39)式で示すは最適な代表ベクトルであり、最適なセントロイドコンディションである。
【0240】
また、最適エンコード条件は、‖ i'( i)‖2 の値を最小化するをサーチすればよい。ここでサーチ時の i'は、必ずしも学習時と同じ i'である必要はなく、重み無しで
【0241】
【数43】
Figure 0003675054
【0242】
のマトリクスとしてもよい。
【0243】
このように、音声信号符号化装置内のベクトル量子化部116を2段のベクトル量子化部から構成することにより、出力するインデクスのビット数を可変にすることができる。
【0244】
ところで、前述したように、スペクトルエンベロープ評価部148において得られるハーモニクススペクトルのデータ数は上記ピッチに応じて変化し、有効帯域が例えば3400kHzのときには8個から63個程度までのいずれかの個数のデータとなる。これらのデータをまとめてブロック化したベクトルは可変次元ベクトルであり、上述の具体例では、ベクトル量子化の前に一定のデータ数、例えば44次元の固定次元の入力ベクトルに次元変換している。この可変/固定次元変換は、上述したデータ数変換のことであり、具体的には例えば前述のように、オーバーサンプリング及び直線補間等を用いて実現することができる。
【0245】
このような固定次元に変換したベクトルに対して誤差計算を行って誤差を最小化するようなコードブックサーチを行うと、必ずしも元の可変次元ベクトルに対する誤差を最小化するようなコードベクトルが選択されるとは限らない。
【0246】
そこで、本実施の形態では、上記固定次元でのコードベクトルの選択を仮選択として複数のコードベクトルを選択するようにし、これらの仮選択された複数のコードベクトルについて、可変次元で最終的な最適コードベクトルの本選択を行わせるようにしている。なお、固定次元での仮選択を行わずに、可変次元での選択処理のみを行うようにしてもよい。
【0247】
図10は、このような元の可変次元での最適ベクトル選択を行うための構成の一例を示しており、端子541には、上記スペクトルエンベロープ評価部148において得られるスペクトルエンベロープの可変個数のデータ、すなわち可変次元ベクトルが入力されている。この可変次元の入力ベクトルは、前述したデータ数変換回路である可変/固定次元変換回路542により、一定の個数、例えば44個のデータから成る固定次元(44次元)のベクトルに変換され、端子501に送られている。この固定次元の入力ベクトルと、固定次元の符号帳(コードブック)530から読み出される固定次元のコードベクトルとが固定次元の選択回路535に送られて、これらの間の重み付きの誤差あるいは歪が最小となるようなコードベクトルを符号帳530から選択するような選択処理あるいはコードブックサーチが行われる。
【0248】
さらにこの図10の例においては、固定次元の符号帳530から得られた固定次元のコードベクトルを固定/可変次元変換回路544により元の可変次元の入力ベクトルと同じ可変次元に変換し、この可変次元に変換されたコードベクトルを可変次元の選択回路545に送って、上記入力ベクトルとの間の重み付き歪の計算を行い、その歪を最小とするコードベクトルを符号帳530から選択するような選択処理あるいはコードブックサーチを行っている。
【0249】
すなわち、固定次元の選択回路535では、仮選択として、重み付き歪を最小化する候補となるいくつかのコードベクトルを選択しておき、これらの候補について、可変次元の選択回路545で重み付き歪計算を行って、歪を最小とするコードベクトルを本選択するようにしている。
【0250】
この場合の仮選択及び本選択を用いるベクトル量子化についての適用範囲を簡単に説明する。このベクトル量子化は、ハーモニックコーディング、LPC残差のハーモニックコーディング、本件出願人が先に提案した特願平4−91422号明細書及び図面に開示したようなMBE(マルチバンド励起)符号化、LPC残差のMBE符号化等におけるハーモニクススペクトルに対して帯域制限型の次元変換を用いて可変次元のハーモニクスを重み付きベクトル量子化する場合に適用できるのみならず、その他、入力ベクトルの次元が可変であって、固定次元の符号帳を用いてベクトル量子化するようなあらゆる場合に適用できる。
【0251】
上記仮選択としては、多段の量子化器構成の場合の一部を選択したり、シェイプコードブックとゲインコードブックとから成る符号帳の場合にシェイプコードブックのみを仮選択でサーチするようにしゲインについては可変次元での歪計算により決定するようにしたりすることが挙げられる。また、この仮選択について、前述した予備選択、すなわち、固定次元のベクトルと符号帳に蓄えられた全てのコードベクトルとの類似度を近似計算(重み付き歪の近似計算)により求めて類似度の高い複数のコードベクトルを選択すること、を適用してもよい。この場合、固定次元での仮選択を上記予備選択とし、予備選択された候補のコードベクトルについて可変次元での重み付き歪を最小化するような本選択を行わせてもよく、また、仮選択の工程で上記予備選択のみならず高精度の歪演算による絞り込みをさらに行った後に本選択に回すようにしてもよい。
【0252】
以下、このような仮選択及び本選択を用いたベクトル量子化の具体例について、図面を参照しながら説明する。
【0253】
図10においては、符号帳530は、シェイプコードブック531とゲインコードブック532とから成り、シェイプコードブック531は、さらに2つのコードブックCB0,CB1を有している。これらのシェイプコードブックCB0,CB1からの出力コードベクトルをそれぞれ 0 1とし、ゲインコードブック532により決定されるゲイン回路533のゲインをgとする。入力端子541からの可変次元の入力ベクトルは、可変/固定次元変換回路542により次元変換(これをD1 とする)されて、端子501を介して固定次元のベクトルとして選択回路535の減算器536に送られ、符号帳530から読み出された固定次元のコードベクトルとの差がとられ、重み付け回路537により重み付けがなされて、誤差最小化回路538に送られる。この重み付け回路537での重みを’とする。また、符号帳530から読み出された固定次元のコードベク
トルは、固定/可変次元変換回路544により次元変換(これをD2 とする)されて、可変次元の選択回路545の減算器546に送られ、可変次元の入力ベクトルとの差がとられ、重み付け回路547により重み付けがなされて、誤差最小化回路548に送られる。この重み付け回路547での重みを v とする。
【0254】
ここで、誤差最小化回路538,548の誤差とは、上記歪あるいは歪尺度のことであり、誤差すなわち歪が小さくなることは、類似度あるいは相関性が高まることに相当する。
【0255】
固定次元での上記仮選択を行う選択回路535では、前記(27)式の説明と同様に、
1 = ‖'(−g( 0 1))‖2 ・・・(b1)
で表される歪尺度E1 を最小化する 0 1,gをサーチする。ここで、重み付け回路537での重み’は、
' = WH/‖‖ ・・・(b2)
であり、はLPC合成フィルタの周波数応答特性を対角要素に持つマトリクスを、または聴覚重み付けフィルタの周波数応答特性を対角要素に持つマトリクスをそれぞれ示している。
【0256】
先ず、上記(b1)式の歪尺度E1 を最小化する 0 1,gをサーチする。ここで、 0 1,gを、上記歪尺度E1 を小さくする順に、上位からL組とっておき(固定次元での仮選択)、そのL組の 0 1,gに関して、
2 = ‖ v−D2g( 0 1))‖2 ・・・(b3)
を最小化する 0 1,gの組を最適コードベクトルとして、最終的な本選択を可変次元で行う。
【0257】
上記(b1)式についてのサーチ、学習については、前述した(27)式以下の説明の通りである。
【0258】
以下、上記(b3)式に基づくコードブック学習のためのセントロイドコンディションについて説明する。
【0259】
符号帳(コードブック)530の内のシェイプコードブック531の1つであるコードブックCB0について、コードベクトル 0 を選択する全てのフレームkに関して、歪の期待値を最小化する。そのようなフレームがM個あるとして、
【0260】
【数44】
Figure 0003675054
【0261】
を最小化すればよい。この(b4)式を最小化するために、
【0262】
【数45】
Figure 0003675054
【0263】
を解いて、
【0264】
【数46】
Figure 0003675054
【0265】
となる。この(b6)式で、{ }-1は逆行列を、 vk T vkの転置行列をそれぞれ示している。この(b6)式が、シェイプベクトル 0 の最適セントロイド条件である。
【0266】
次に、符号帳(コードブック)530の内のシェイプコードブック531のもう1つのコードブックCB1についてのコードベクトル 1 を選択する場合も同様であるため、説明を省略する。
【0267】
次に、符号帳(コードブック)530の内のゲインコードブック532からのゲインgについてのセントロイド条件を考察する。
【0268】
ゲインのコードワードgc を選択するk番目のフレームに関して、歪の期待値Jg は、
【0269】
【数47】
Figure 0003675054
【0270】
この(b7)式を最小化するために、
【0271】
【数48】
Figure 0003675054
【0272】
を解いて、
【0273】
【数49】
Figure 0003675054
【0274】
これがゲインのセントロイド条件である。
【0275】
次に、上記(b3)式に基づく最適エンコード条件を考察する。
上記(b3)式でサーチせねばならない 0 1,gの組は、上記固定次元での仮選択によりL組と限定されているので、上記(b3)式をL組の 0 1,gに関して直接計算し、歪E2 を最小とする 0 1,gの組を最適コードベクトルとして選択すればよい。
【0276】
ここで、仮選択のLが非常に大きい場合や、上記仮選択を行わず直接的に可変次元で 0 1,gの選択を行う場合に、有効とされるシェイプとゲインのシーケンシャルなサーチの方法について説明する。
【0277】
上記(b3)式の各 0 1,gに、それぞれi,j,lのインデクスを付加して書き直すと、
2 = ‖ v−D2l( 0i 1j))‖2 ・・・(b10)
となる。これを最小化するgl 0i 1j を総当たりでサーチすることも可能であるが、例えば0≦l<32,0≦i<32,0≦j<32とすると、323 =32768通りものパターンについて上記(b10)式を計算することになり、膨大な演算量となる。そこで、シェイプとゲインをシーケンシャルにサーチする方法を説明する。
【0278】
先ず、シェイプコードベクトル 0i 1jを決定してから、ゲインgl を決定する。 0i 1j m とおくと、上記(b10)式は、
2 = ‖ v−D2l m)‖2 ・・・(b11)
と表せ、さらに、 w v w v2 mとおくと、(b11)式は、
【0279】
【数50】
Figure 0003675054
【0280】
となる。よって、gl の精度が充分にとれるとすると、
【0281】
【数51】
Figure 0003675054
【0282】
元の変数を代入して書き直すと、次の(b15),(b16)式のようになる。
【0283】
【数52】
Figure 0003675054
【0284】
上記(b6),(b9)式のシェイプ、ゲインのセントロイド条件と、上記(b15),(b16)式の最適エンコード条件(Nearest Neighbour Condition )を用いて、一般化ロイドアルゴリズム(Generalized Lloyd Algorithm:GLA)によって、コードブック(CB0、CB1、CBg)を同時に学習させることができる。
【0285】
これらの(b6),(b9),(b15),(b16)式を用いた学習法は、先に述べた(27)式以下の説明、特に前記(31),(32),(35)式を用いる方法に比べて、元の入力ベクトルの可変次元への変換を行った後の歪を最小化している点で優れている。
【0286】
しかし、上記(b6),(b9)式、特に(b6)式の演算は、煩雑であるので、例えば上記(b15),(b16)式の最適エンコード条件のみを用いて、セントロイド条件は 前記(27)式(すなわち(b1)式)の最適化から導かれるものを用いてもよい。
【0287】
あるいは、コードブックの学習時は、全て前記(27)式以下の説明に述べた方法で行い、サーチ時のみ上記(b15),(b16)式を用いる方法も挙げられる。また、上記固定次元での仮選択を前記(27)式以下の説明に述べた方法で行い、選ばれた複数個(L個)の組についてのみ上記(b3)式を直接評価してサーチを行うようにしてもよい。
【0288】
いずれにしても、上記(b3)式の歪評価によるサーチを、上記仮選択後、あるいは総当たり的に使用することにより、最終的にはより歪の少ないコードベクトルサーチあるいは学習を行うことが可能となる。
【0289】
ここで、元の入力ベクトルと同じ可変次元で歪計算を行うことが好ましい理由について簡単に述べる。
【0290】
これは、固定次元での歪の最小化と可変次元での歪の最小化とが一致すれば、可変次元での歪の最小化は不要であるが、固定/可変次元変換回路544での次元変換D2 が直交行列ではないため、これらの歪の最小化は一致しない。このため、固定次元で歪を最小化しても、必ずしもこれは可変次元で最適に歪を最小化することにはならず、最終的に得られる可変次元のベクトルを最適化しようとするには、可変次元での最適化が必要とされるからである。
【0291】
次に図11は、符号帳(コードブック)をシェイプコードブックとゲインコードブックとに分けるときのゲインを可変次元でのゲインとし、可変次元で最適化するようにした例を示している。
【0292】
すなわち、シェイプコードブック531から読み出された固定次元のコードベクトルを固定/可変次元変換回路544に送って可変次元のベクトルに変換した後、ゲイン回路533に送っている。可変次元での選択回路545は、ゲイン回路533からの可変次元のコードベクトルと上記入力ベクトルとに基づいて、固定/可変次元変換されたコードベクトルに対するゲイン回路533での最適ゲインを選択すればよい。あるいは、ゲイン回路533への入力ベクトルと上記入力ベクトルとの内積に基づいて最適ゲインを選択するようにしてもよい。他の構成及び動作は、上記図10の例と同様である。
【0293】
なお、シェイプコードブック531については、選択回路535における固定次元での選択時に唯一のコードベクトルを選択するようにし、可変次元での選択はゲインのみとしてもよい。
【0294】
このように、固定/可変次元変換回路544で変換したコードベクトルに対してゲインを掛けるような構成とすることにより、上記図10に示すようなゲイン倍したコードベクトルを固定/可変次元変換するものに比べて、固定/可変次元変換による影響を考慮した上で最適なゲインを選択することができる。
【0295】
次に、このような固定次元での仮選択と可変次元での本選択とを組み合わせるベクトル量子化の他の具体例について説明する。
【0296】
以下の具体例では、第1の符号帳から読み出された固定次元の第1のコードベクトルを入力ベクトルの可変次元に次元変換し、第2の符号帳から読み出された固定次元の第2のコードベクトルを上記固定/可変次元変換された可変次元の第1のコードベクトルに加算し、この加算されて得られた加算コードベクトルについて上記入力ベクトルとの誤差を最小化する最適のコードベクトルを上記少なくとも第2の符号帳より選択するようにしている。
【0297】
例えば、図12の例では、第1の符号帳(コードブック)CB0から読み出された固定次元の第1のコードベクトル 0 を、固定/可変次元変換回路544に送って、端子541の入力ベクトルに等しい可変次元に次元変換し、第2の符号帳CB1から読み出された固定次元の第2のコードベクトル 1 を加算機549に送って、固定/可変次元変換回路544からの可変次元のコードベクトルに加算し、この加算器549で加算されて得られた加算コードベクトルを選択回路545に送り、この選択回路545で、加算器549からの加算ベクトルと上記入力ベクトルとの誤差を最小化する最適のコードベクトルを選択するようにしている。ここで、第2の符号帳(コードブック)CB1からのコードベクトルは、入力スペクトルのハーモニクスの低域側からコードブックCB1の次元にまで適用される。また、ゲインgのゲイン回路533は、第1の符号帳CB0と固定/可変次元変換回路544との間にのみ設けられている。他の構成は上記図10と同様であるため、対応する部分に同じ指示符号を付して説明を省略する。
【0298】
このように、コードブックCB1からの固定次元のままのコードベクトルを、コードブックCB0から読み出されて可変次元に変換されたコードベクトルと加算することにより、固定/可変次元変換を行うことによって発生した歪をコードブックCB1からの固定次元のコードベクトルによって減じることができる。
【0299】
この図12の可変次元の選択回路545で計算される歪E3 は、
3 =‖ v−(D2 0 1))‖2 ・・・(b17)
となる。
【0300】
次に、図13の例では、ゲイン回路533を加算器549の出力側に配置している。従って、第1の符号帳CB0から読み出され固定/可変次元変換回路544で可変次元に変換されたコードベクトルと、第2の符号帳CB1から読み出されたコードベクトルとの加算結果に対してゲインgが掛けられる。これは、CB0からのコードベクトルに乗ずるべきゲインと、その補正分(量子化誤差の量子化)のためのコードブックCB1からのコードベクトルに乗ずるべきゲインの相関が強いため、共通のゲインを用いている。この図13の選択回路545で計算される歪E4 は、
4 =‖ v−g(D2 0 1))‖2 ・・・(b18)
となる。この図13の例の他の構成は、上記図12の例と同様であるため説明を省略する。
【0301】
次に、図14の例では、上記図12の例における第1の符号帳CB0の出力側にゲインgのゲイン回路5330 を設けるのみならず、第2の符号帳CB1の出力側にもゲインgのゲイン回路5331 を設けている。この図14の選択回路545で計算される歪は、上記図13の例と同様に、(b18)式に示す歪E4 となる。この図14の例の他の構成は、上記図12の例と同様であるため説明を省略する。
【0302】
次に、図15は、上記図12の第1の符号帳を2つのシェイプコードブックCB0、CB1で構成した例を示し、これらのシェイプコードブックCB0、CB1からの各コードベクトル 0 1が加算され、ゲイン回路533でゲインgを掛けられて、固定/可変次元変換回路544に送られている。この固定/可変次元変換回路544からの可変次元のコードベクトルと、第2の符号帳CB2からのコードベクトル 2 とを加算器549で加算して、選択回路545に送っている。この図15の選択回路545で計算される歪E5 は、
5 =‖ v−(gD2 0 1)+s2))‖2 ・・・(b19)
となる。この図15の例の他の構成は、上記図12の例と同様であるため説明を省略する。
【0303】
ここで、上記(b18)式におけるサーチ方法について説明する。
先ず、第1のサーチ方法としては、
4' =‖'(−gl 0i))‖2 ・・・(b20)
を最小化する 0i,gl をサーチし、次に
4 =‖ v−gl(D2 0i 1j))‖2 ・・・(b21)
を最小化する 1jをサーチすることが挙げられる。
【0304】
第2のサーチ方法としては、
【0305】
【数53】
Figure 0003675054
【0306】
が挙げられる。
【0307】
第3のサーチ方法としては、
【0308】
【数54】
Figure 0003675054
【0309】
が挙げられる。
【0310】
次に、上記第1のサーチ方法の上記(b20)式のセントロイド条件について説明する。上記コードベクトル 0iのセントロイドを 0cとするとき、
【0311】
【数55】
Figure 0003675054
【0312】
を最小化する。これを最小化するために、
【0313】
【数56】
Figure 0003675054
【0314】
を解いて、
【0315】
【数57】
Figure 0003675054
【0316】
が得られる。同様に、ゲインgのセントロイドgc については、上記(b20)式より、
【0317】
【数58】
Figure 0003675054
【0318】
【数59】
Figure 0003675054
【0319】
を解いて、
【0320】
【数60】
Figure 0003675054
【0321】
また、上記第1のサーチ方法の上記(b21)式のセントロイド条件として、ベクトル 1jのセントロイド 1cについては、
【0322】
【数61】
Figure 0003675054
【0323】
【数62】
Figure 0003675054
【0324】
を解いて、
【0325】
【数63】
Figure 0003675054
【0326】
が得られる。上記(b21)式から上記コードベクトル 0iのセントロイド 0cを求めると、
【0327】
【数64】
Figure 0003675054
【0328】
【数65】
Figure 0003675054
【0329】
【数66】
Figure 0003675054
【0330】
が得られる。同様に、上記(b21)式から上記ゲインgのセントロイドgc を求めると、
【0331】
【数67】
Figure 0003675054
【0332】
が得られる。
【0333】
以上、上記(b20)式によるコードベクトル 0iのセントロイド 0cの算出方法を(b30)式に、ゲインgのセントロイドgc の算出方法を(b33)式にそれぞれ示した。また、上記(b21)式によるセントロイドの算出方法として、コードベクトル 1jのセントロイド 1cを(b36)式に、コードベクトル 0iのセントロイド 0cを(b39)式に、ゲインgのセントロイドgc を(b40)式にそれぞれ示した。
【0334】
実際の一般化ロイドアルゴリズム(GLA)によるコードブックの学習においては、セントロイド条件として、上記(b30)式、(b36)式、(b40)式を使用して 0 1,gを同時に学習する方法が挙げられる。サーチ方法(Nearest Neighbour Condition) は、例えば上記(b22)式、(b23)式、(b24)式を用いればよい。この他、上記(b30)式、(b33)式、(b36)式、あるいは、上記(b39)式、(b36)式、(b40)式といったセントロイド条件の組み合わせも可能であることは勿論である。
【0335】
次に、上記図12に対応する上記(b17)式の歪尺度の場合のサーチ方法について説明する。この場合には、
3' =‖'(−gl 0i))‖2 ・・・(b41)
を最小化する 0i,gl をサーチし、次に
3 =‖ v−gl(D2 0i 1j))‖2 ・・・(b42)
を最小化する 1jをサーチすることが挙げられる。
【0336】
上記(b41)式において、全てのgl 0iの組を総当たりするのは現実的でないので、次のようにしている。
【0337】
【数68】
Figure 0003675054
【0338】
次に、上記(b41)式、(b42)式よりセントロイド条件を導く。この場合も、上述したのと同様に、どの式を用いるかで変わってくる。
【0339】
先ず、上記(b41)式を用いる場合には、上記コードベクトル 0iのセントロイドを 0cとするとき、
【0340】
【数69】
Figure 0003675054
【0341】
を最小化することにより、
【0342】
【数70】
Figure 0003675054
【0343】
が得られる。同様に、ゲインgのセントロイドgc については、上記(b41)式より、上記(b33)式の場合と同様に、次の式が得られる。
【0344】
【数71】
Figure 0003675054
【0345】
また、上記(b42)式を用いてベクトル 1jのセントロイド 1cを求める場合には、次の通りである。
【0346】
【数72】
Figure 0003675054
【0347】
【数73】
Figure 0003675054
【0348】
を解いて、
【0349】
【数74】
Figure 0003675054
【0350】
が得られる。同様に、上記(b42)式から上記コードベクトル 0iのセントロイド 0c、及び上記ゲインgのセントロイドgc を求めることができる。
【0351】
【数75】
Figure 0003675054
【0352】
【数76】
Figure 0003675054
【0353】
【数77】
Figure 0003675054
【0354】
【数78】
Figure 0003675054
【0355】
なお、一般化ロイドアルゴリズム(GLA)によるコードブックの学習は、上記(b47)式、(b48)式、(b51)式を用いて、あるいは、上記(b51)式、(b52)式、(b55)式を用いて行うようにすればよい。
【0356】
次に、本発明の前記CELP符号化構成を用いた第2の符号化部120は、より具体的には図16に示すような、多段のベクトル量子化処理部(図16の例では2段の符号化部1201と1202)の構成を有するものとなされている。なお、当該図16の構成は、伝送ビットレートを例えば前記2kbpsと6kbpsとで切り換え可能な場合において、6kbpsの伝送ビットレートに対応した構成を示しており、さらにシェイプ及びゲインインデクス出力を23ビット/5msecと15ビット/5msecとで切り換えられるようにしているものである。また、この図16の構成における処理の流れは図17に示すようになっている。
【0357】
この図16において、例えば、図16の第1の符号化部300は前記図3の第1の符号化部113と略々対応し、図16のLPC分析回路302は前記図3に示したLPC分析回路132と対応し、図16のLSPパラメータ量子化回路303は図3の前記α→LSP変換回路133からLSP→α変換回路137までの構成と対応し、図16の聴覚重み付けフィルタ304は図3の前記聴覚重み付けフィルタ算出回路139及び聴覚重み付けフィルタ125と対応している。したがって、この図16において、端子305には前記図3の第1の符号化部113のLSP→α変換回路137からの出力と同じものが供給され、また、端子307には前記図3の聴覚重み付けフィルタ算出回路139からの出力と同じものが、端子306には前記図3の聴覚重み付けフィルタ125からの出力と同じものが供給される。ただし、この図16の聴覚重み付けフィルタ304では、前記図3の聴覚重み付けフィルタ125とは異なり、前記LSP→α変換回路137の出力を用いずに、入力音声データと量子化前のαパラメータとから、前記聴覚重み付けした信号(すなわち前記図3の聴覚重み付けフィルタ125からの出力と同じ信号)を生成している。
【0358】
また、この図16に示す2段構成の第2の符号化部1201及び1202において、減算器313及び323は図3の減算器123と対応し、距離計算回路314及び324は図3の距離計算回路124と、ゲイン回路311及び321は図3のゲイン回路126と、ストキャスティックコードブック310,320及びゲインコードブック315,325は図3の雑音符号帳121とそれぞれ対応している。
【0359】
このような図16の構成において、先ず、図17のステップS1に示すように、LPC分析回路302では、端子301から供給された入力音声データを前述同様に適当なフレームに分割してLPC分析を行い、αパラメータを求める。LSPパラメータ量子化回路303では、上記LPC分析回路302からのαパラメータをLSPパラメータに変換して量子化し、さらにこの量子化したLSPパラメータを補間した後、αパラメータに変換する。次に、当該LSPパラメータ量子化回路303では、当該量子化したLSPパラメータを変換したαパラメータ、すなわち量子化されたαパラメータから、LPC合成フィルタ関数1/H(z)を生成し、これを端子305を介して1段目の第2の符号化部1201の聴覚重み付き合成フィルタ312に送る。
【0360】
一方、聴覚重み付けフィルタ304では、LPC分析回路302からのαパラメータ(すなわち量子化前のαパラメータ)から、前記図3の聴覚重み付けフィルタ算出回路139によるものと同じ聴覚重み付けのためのデータを求め、この重み付けのためのデータが端子307を介して、1段目の第2の符号化部1201の聴覚重み付き合成フィルタ312に送られる。また、当該聴覚重み付けフィルタ304では、図17のステップS2に示すように、入力音声データと量子化前のαパラメータとから、前記聴覚重み付けした信号(前記図3の聴覚重み付けフィルタ125からの出力と同じ信号)を生成する。すなわち、先ず、量子化前のαパラメータから聴覚重み付けフィルタ関数W(z)を生成し、さらに入力音声データに当該フィルタ関数W(z)を適用して W を生成し、これを上記聴覚重み付けした信号として、端子306を介して1段目の第2の符号化部1201 の減算器313に送る。
【0361】
1段目の第2の符号化部1201 では、9ビットシェイプインデクス出力のストキャスティックコードブック(stochastic code book)310からの代表値出力(無声音のLPC残差に相当するノイズ出力)がゲイン回路311に送られ、このゲイン回路311にて、ストキャスティックコードブック310からの代表値出力に6ビットゲインインデクス出力のゲインコードブック315からのゲイン(スカラ値)を乗じ、このゲイン回路311にてゲインが乗じられた代表値出力が、1/A(z)=(1/H(z))・W(z)の聴覚重み付きの合成フィルタ312に送られる。この重み付きの合成フィルタ312からは、図17のステップS3のように、1/A(z)のゼロ入力応答出力が減算器313に送られる。当該減算器313では、上記聴覚重み付き合成フィルタ312からのゼロ入力応答出力と、上記聴覚重み付けフィルタ304からの上記聴覚重み付けした信号 W とを用いた減算が行われ、この差分或いは誤差が参照ベクトルとして取り出される。図17のステップS4に示すように、1段目の第2の符号化部1201 でのサーチ時には、この参照ベクトルが、距離計算回路314に送られ、ここで距離計算が行われ、量子化誤差エネルギEを最小にするシェイプベクトルとゲインgがサーチされる。ただし、ここでの1/A(z)はゼロ状態である。すなわち、コードブック中のシェイプベクトルをゼロ状態の1/A(z)で合成したものを synとするとき、式(40)を最小にするシェイプベクトルとゲインgをサーチする。
【0362】
【数79】
Figure 0003675054
【0363】
ここで、量子化誤差エネルギEを最小とするとgをフルサーチしてもよいが、計算量を減らすために、以下のような方法をとることができる。なお、r(n)等は、ベクトル等の要素を表している。
【0364】
第1の方法として、以下の式(41)に定義するEsを最小とするシェイプベクトルをサーチする。
【0365】
【数80】
Figure 0003675054
【0366】
第2の方法として、第1の方法により得られたより、理想的なゲインは、式(42)のようになるから、式(43)を最小とするgをサーチする。
【0367】
【数81】
Figure 0003675054
【0368】
g=(gref−g)2 (43)
ここで、Eはgの二次関数であるから、Egを最小にするgはEを最小化する。
【0369】
上記第1,第2の方法によって得られたとgより、量子化誤差ベクトルは次の式(44)のように計算できる。
【0370】
−g syn (44)
これを、2段目の第2の符号化部1202 のリファレンス入力として1段目と同様にして量子化する。
【0371】
すなわち、上記1段目の第2の符号化部1201 の聴覚重み付き合成フィルタ312からは、端子305及び端子307に供給された信号がそのまま2段目の第2の符号化部1202の聴覚重み付き合成フィルタ322に送られる。また、当該2段目の第2の符号化部1202減算器323には、1段目の第2の符号化部1201にて求めた上記量子化誤差ベクトルが供給される。
【0372】
次に、図17のステップS5において、当該2段目の第2の符号化部1202 でも1段目と同様に処理が行われる。すなわち、5ビットシェイプインデクス出力のストキャスティックコードブック320からの代表値出力がゲイン回路321に送られ、このゲイン回路321にて、当該コードブック320からの代表値出力に3ビットゲインインデクス出力のゲインコードブック325からのゲインを乗じ、このゲイン回路321の出力が、聴覚重み付きの合成フィルタ322に送られる。当該重み付きの合成フィルタ322からの出力は減算器323に送られ、当該減算器323にて上記聴覚重み付き合成フィルタ322からの出力と1段目の量子化誤差ベクトルとの差分が求められ、この差分が距離計算回路324に送られてここで距離計算が行われ、量子化誤差エネルギEを最小にするシェイプベクトルとゲインgがサーチされる。
【0373】
上述したような1段目の第2の符号化部1201 のストキャストコードブック310からのシェイプインデクス出力及びゲインコードブック315からのゲインインデクス出力と、2段目の第2の符号化部1202 のストキャストコードブック320からのインデクス出力及びゲインコードブック325からのインデクス出力は、インデクス出力切り換え回路330に送られるようになっている。ここで、当該第2の符号化部120から23ビット出力を行うときには、上記1段目と2段目の第2の符号化部1201及び1202のストキャストコードブック310,320及びゲインコードブック315,325からの各インデクスを合わせて出力し、一方、15ビット出力を行うときには、上記1段目の第2の符号化部1201 のストキャストコードブック310とゲインコードブック315からの各インデクスを出力する。
【0374】
その後は、ステップS6のようにフィルタ状態がアップデートされる。
【0375】
ところで、本実施の形態では、2段目の第2の符号化部1202 のインデクスビット数が、シェイプベクトルについては5ビットで、ゲインについては3ビットと非常に少ない。このような場合、適切なシェイプ、ゲインがコードブックに存在しないと、量子化誤差を減らすどころか逆に増やしてしまう可能性がある。
【0376】
この問題を防ぐためには、ゲインに0を用意しておけばよいが、ゲインは3ビットしかなく、そのうちの一つを0にしてしまうのは量子化器の性能を大きく低下させてしまう。そこで、比較的多いビット数を割り当てたシェイプベクトルに、要素が全て0のベクトルを用意する。そして、このゼロベクトルを除いて、前述のサーチを行い、量子化誤差が最終的に増えてしまった場合に、ゼロベクトルを選択するようにする。なお、このときのゲインは任意である。これにより、2段目の第2の符号化部1202が量子化誤差を増すことを防ぐことができる。
【0377】
なお、図16の例では、2段構成の場合を例に挙げているが、2段に限らず複数段構成とすることができる。この場合、1段目のクローズドループサーチによるベクトル量子化が終了したら、N段目(2≦N)ではN−1段目の量子化誤差をリファレンス入力として量子化を行い、さらにその量子化誤差をN+1段目のリファレンス入力とする。
【0378】
上述したように、図16及び図17から、第2の符号化部に多段のベクトル量子化器を用いることにより、従来のような同じビット数のストレートベクトル量子化や共役コードブックなどを用いたものと比較して、計算量が少なくなる。特に、CELP符号化では、合成による分析(Analysis by Synthesis )法を用いたクローズドループサーチを用いた時間軸波形のベクトル量子化を行っているため、サーチの回数が少ないことが重要である。また、2段の第2の符号化部1201と1202の両インデクス出力を用いる場合と、1段目の第2の符号化部1201のインデクス出力のみを用いる(2段目の第2の符号化部1202の出力インデクスを用いない)場合とを切り換えることにより、簡単にビット数を切り換えることが可能となっている。さらに上述したように、1段目と2段目の第2の符号化部1201と1202の両インデクス出力を合わせて出力するようなことを行えば、後のデコーダ側において例えば何れかを選ぶようにすることで、デコーダ側でも容易に対応できることになる。すなわち例えば6kbpsでエンコードしたパラメータを、2kbpsのデコーダでデコードするときに、デコーダ側で容易に対応できることになる。またさらに、例えば2段目の第2の符号化部1202のシェイプコードブックにゼロベクトルを含ませることにより、割り当てられたビット数が少ない場合でも、ゲインに0を加えるよりは少ない性能劣化で量子化誤差が増加することを防ぐことが可能となっている。
【0379】
次に、上記ストキャスティックコードブックのコードベクトル(シェイプベクトル)は例えば以下のようにして生成することができる。
【0380】
例えば、ストキャスティックコードブックのコードベクトルは、いわゆるガウシアンノイズのクリッピングにより生成することができる。具体的には、ガウシアンノイズを発生させ、これを適当なスレシホールド値でクリッピングし、それを正規化することで、コードブックを構成することができる。
【0381】
ところが、音声には様々な形態があり、例えば「さ,し,す,せ,そ」のようなノイズに近い子音の音声には、ガウシアンノイズが適しているが、例えば「ぱ,ぴ,ぷ,ぺ,ぽ」のような立ち上がりの激しい子音(急峻な子音)の音声については、対応しきれない。
【0382】
そこで、本発明では、全コードベクトルのうち、適当な数はガウシアンノイズとし、残りを学習により求めて上記立ち上がりの激しい子音とノイズに近い子音の何れにも対応できるようにする。例えば、スレシホールド値を大きくとると、大きなピークを幾つか持つようなベクトルが得られ、一方、スレシホールド値を小さくとると、ガウシアンノイズそのものに近くなる。したがって、このようにクリッピングスレシホールド値のバリエーションを増やすことにより、例えば「ぱ,ぴ,ぷ,ぺ,ぽ」のような立ち上がりの激しい子音や、例えば「さ,し,す,せ,そ」のようなノイズに近い子音などに対応でき、明瞭度を向上させることができるようになる。なお、図18には、図中実線で示すガウシアンノイズと図中点線で示すクリッピング後のノイズの様子を示している。また、図18の(A)はクリッピングスレシホールド値が1.0の場合(すなわちスレシホールド値が大きい場合)を、図18の(B)にはクリッピングスレシホールド値が0.4の場合(すなわちスレシホールド値が小さい場合)を示している。この図18の(A)及び(B)から、スレシホールド値を大きくとると、大きなピークを幾つか持つようなベクトルが得られ、一方、スレシホールド値を小さくとると、ガウシアンノイズそのものに近くなることが判る。
【0383】
このようなことを実現するため、先ず、ガウシアンノイズのクリッピングにより初期コードブックを構成し、さらに予め適当な数だけ学習を行わないコードベクトルを決めておく。この学習しないコードベクトルは、その分散値が小さいものから順に選ぶようにする。これは、例えば「さ,し,す,せ,そ」のようなノイズに近い子音に対応させるためである。一方、学習を行って求めるコードベクトルは、当該学習のアルゴリズムとしてLBGアルゴリズムを用いるようにする。ここで最適エンコード条件(Nearest Neighbour Condition) でのエンコードは固定したコードベクトルと、学習対象のコードベクトル両方を使用して行う。セントロイドコンディション(Centroid Condition)においては、学習対象のコードベクトルのみをアップデートする。これにより、学習対象となったコードベクトルは「ぱ,ぴ,ぷ,ぺ,ぽ」などの立ち上がりの激しい子音に対応するようになる。
【0384】
なお、ゲインは通常通りの学習を行うことで、これらのコードベクトルに対して最適なものが学習できる。
【0385】
上述したガウシアンノイズのクリッピングによるコードブックの構成のための処理の流れを図19に示す。
【0386】
この図19において、ステップS10では、初期化として、学習回数n=0とし、誤差D0=∞とし、最大学習回数nmaxを決定し、学習終了条件を決めるスレシホールド値εを決定する。
【0387】
次のステップS11では、ガウシアンノイズのクリッピングによる初期コードブックを生成し、ステップS12では学習を行わないコードベクトルとして一部のコードベクトルを固定する。
【0388】
次にステップS13では上記コードブックを用いてエンコードを行い、ステップS14では誤差を算出し、ステップS15では(Dn-1−Dn)/Dn<ε、若しくはn=nmaxか否かを判断し、Yesと判断した場合には処理を終了し、Noと判断した場合にはステップS16に進む。
【0389】
ステップS16ではエンコードに使用されなかったコードベクトルの処理を行い、次のステップS17ではコードブックのアップデートを行う。次にステップS18では学習回数nを1インクリメントし、その後ステップS13に戻る。
【0390】
次に、図3の音声信号符号化装置において、V/UV(有声音/無声音)判定部115の具体例について説明する。
【0391】
このV/UV判定部115においては、直交変換回路145からの出力と、高精度ピッチサーチ部146からの最適ピッチと、スペクトル評価部148からのスペクトル振幅データと、オープンループピッチサーチ部141からの正規化自己相関最大値r(p) と、ゼロクロスカウンタ412からのゼロクロスカウント値とに基づいて、当該フレームのV/UV判定が行われる。さらに、MBEの場合と同様な各バンド毎のV/UV判定結果の境界位置も当該フレームのV/UV判定の一条件としている。
【0392】
このMBEの場合の各バンド毎のV/UV判定結果を用いたV/UV判定条件について以下に説明する。
【0393】
MBEの場合の第m番目のハーモニクスの大きさを表すパラメータあるいは振幅|Am| は、
【0394】
【数82】
Figure 0003675054
【0395】
により表せる。この式において、|S(j)| は、LPC残差をDFTしたスペクトルであり、|E(j)| は、基底信号のスペクトル、具体的には256ポイントのハミング窓をDFTしたものである。また、am及びbmは、第m番目のハーモニクスに対応する第mバンドに対応する周波数をインデクスjで表現したときの下限値及び上限値である。また、各バンド毎のV/UV判定のために、NSR(ノイズtoシグナル比)を利用する。この第mバンドのNSRは、
【0396】
【数83】
Figure 0003675054
【0397】
と表せ、このNSR値が所定の閾値(例えば0.3 )より大のとき(エラーが大きい)ときには、そのバンドでの|Am ||E(j) |による|S(j) |の近似が良くない(上記励起信号|E(j) |が基底として不適当である)と判断でき、当該バンドをUV(Unvoiced、無声音)と判別する。これ以外のときは、近似がある程度良好に行われていると判断でき、そのバンドをV(Voiced、有声音)と判別する。
【0398】
ここで、上記各バンド(ハーモニクス)のNSRは、各ハーモニクス毎のスペクトル類似度をあらわしている。NSRのハーモニクスのゲインによる重み付け和をとったものをNSRall として次のように定義する。
【0399】
NSRall =(Σm |Am |NSRm )/(Σm |Am |)
このスペクトル類似度NSRall がある閾値より大きいか小さいかにより、V/UV判定に用いるルールベースを決定する。ここでは、この閾値をThNSR =0.3 としておく。このルールベースは、フレームパワー、ゼロクロス、LPC残差の自己相関の最大値に関するものであり、NSRall <ThNSR のときに用いられるルールベースでは、ルールが適用されるとVとなり適用されるルールがなかった場合はUVとなる。
【0400】
また、NSRall ≧ThNSR のときに用いられるルールベースでは、ルールが適用されるとUV、適用されないとVとなる。
【0401】
ここで、具体的なルールは、次のようなものである。
NSRall <ThNSR のとき、
if numZeroXP<24、& frmPow>340、& r0>0.32 then V
NSRall ≧ThNSR のとき、
if numZeroXP>30、& frmPow<900、& r0<0.23 then UV
ただし、各変数は次のように定義される。
numZeroXP:1フレーム当たりのゼロクロス回数
frmPow :フレームパワー
r0 :自己相関最大値
上記のようなルールの集合であるルールに照合することで、V/UVを判定する。
【0402】
次に、図4の音声復号化装置(デコーダ)の要部のより具体的な構成及び動作について説明する。
【0403】
スペクトルエンベロープの逆ベクトル量子化器212においては、上述したような音声符号化装置(エンコーダ)側でのベクトル量子化器の構成に対応した逆ベクトル量子化構成が用いられる。
【0404】
例えば、エンコーダ側で上記図10に示した構成によりベクトル量子化が施されている場合に、デコーダ側では、与えられたインデクスに応じて符号帳530のシェイプコードブックCB0,CB1及びゲインコードブックDBg から、コードベクトル 0 1及びゲインgがそれぞれ読み出され、g( 0 1)の固定次元(例えば44次元)のベクトルとして取り出され、元のハーモニクススペクトルのベクトルの次元数に対応する可変次元のベクトルに変換(固定/可変次元変換)される。
【0405】
また、エンコーダ側で、図12〜図15のように、可変次元ベクトルに固定次元コードベクトルを加算するようなベクトル量子化器の構成を有する場合には、デコーダ側では、可変次元用のコードブック(例えば図12のコードブックCB0)から読み出されたコードベクトルについては固定/可変次元変換し、これに固定次元用のコードブック(図12ではコードブックCB1)から読み出された固定次元のコードベクトルをハーモニクスの低域側から次元数分だけ加算して、取り出すようにしている。
【0406】
次に、図4のLPC合成フィルタ214は、上述したように、V(有声音)用の合成フィルタ236と、UV(無声音)用の合成フィルタ237とに分離されている。すなわち、合成フィルタを分離せずにV/UVの区別なしに連続的にLSPの補間を20サンプルすなわち2.5msec 毎に行う場合には、V→UV、UV→Vの遷移(トランジェント)部において、全く性質の異なるLSP同士を補間することになり、Vの残差にUVのLPCが、UVの残差にVのLPCが用いられることにより異音が発生するが、このような悪影響を防止するために、LPC合成フィルタをV用とUV用とで分離し、LPCの係数補間をVとUVとで独立に行わせたものである。
【0407】
この場合の、LPC合成フィルタ236、237の係数補間方法について説明する。これは、次の表3に示すように、V/UVの状態に応じてLSPの補間を切り換えている。
【0408】
【表3】
Figure 0003675054
【0409】
この表3において、均等間隔LSPとは、例えば10次のLPC分析の例で述べると、フィルタの特性がフラットでゲインが1のときのαパラメータ、すなわち α0=1,α1=α2=・・・=α10=0に対応するLSPであり、
LSPi =(π/11)×i 0≦i≦10
である。
【0410】
このような10次のLPC分析、すなわち10次のLSPの場合は、図20に示す通り、0〜πの間を11等分した位置に均等間隔で配置されたLSPで、完全にフラットなスペクトルに対応している。合成フィルタの全帯域ゲインはこのときが最小のスルー特性となる。
【0411】
図21は、ゲイン変化の様子を概略的に示す図であり、UV(無声音)部分からV(有声音)部分への遷移時における1/HUV(z) のゲイン及び1/HV(z)のゲインの変化の様子を示している。
【0412】
ここで、補間を行う単位は、フレーム間隔が160サンプル(20msec )のとき、1/HV(z)の係数は2.5msec (20サンプル)毎、また1/HUV(z) の係数は、ビットレートが2kbps で10msec (80サンプル)、6kbps で5msec (40サンプル)毎である。なお、UV時はエンコード側の第2の符号化部120で合成による分析法を用いた波形マッチングを行っているので、必ずしも均等間隔LSPと補間せずとも、隣接するV部分のLSPとの補間を行ってもよい。ここで、第2の符号化部120におけるUV部の符号化処理においては、V→UVへの遷移部で1/A(z) の重み付き合成フィルタ122の内部状態をクリアすることによりゼロインプットレスポンスを0にする。
【0413】
これらのLPC合成フィルタ236、237からの出力は、それぞれ独立に設けられたポストフィルタ238v、238uに送られており、ポストフィルタもVとUVとで独立にかけることにより、ポストフィルタの強度、周波数特性をVとUVとで異なる値に設定している。
【0414】
次に、LPC残差信号、すなわちLPC合成フィルタ入力であるエクサイテイションの、V部とUV部のつなぎ部分の窓かけについて説明する。これは、図4の有声音合成部211のサイン波合成回路215と、無声音合成部220の窓かけ回路223とによりそれぞれ行われるものである。なお、エクサイテイションのV部の合成方法については、本件出願人が先に提案した特願平4−91422号の明細書及び図面に具体的な説明が、また、V部の高速合成方法については、本件出願人が先に提案した特願平6−198451号の明細書及び図面に具体的な説明が、それぞれ開示されている。今回の具体例では、この高速合成方法を用いてV部のエクサイテイションを生成している。
【0415】
V(有声音)部分では、隣接するフレームのスペクトルを用いてスペクトルを補間してサイン波合成するため、図22に示すように、第nフレームと第n+1フレームとの間にかかる全ての波形を作ることができる。しかし、図22の第n+1フレームと第n+2フレームとのように、VとUV(無声音)に跨る部分、あるいはその逆の部分では、UV部分は、フレーム中に±80サンプル(全160サンプル=1フレーム間隔)のデータのみをエンコード及びデコードしている。このため、図23に示すように、V側ではフレームとフレームとの間の中心点CNを越えて窓かけを行い、UV側では中心点CN移行の窓かけを行って、接続部分をオーバーラップさせている。UV→Vの遷移(トランジェント)部分では、その逆を行っている。なお、V側の窓かけは破線のようにしてもよい。
【0416】
次に、V(有声音)部分でのノイズ合成及びノイズ加算について説明する。これは、図4のノイズ合成回路216、重み付き重畳回路217、及び加算器218を用いて、有声音部分のLPC合成フィルタ入力となるエクサイテイションについて、次のパラメータを考慮したノイズをLPC残差信号の有声音部分に加えることにより行われる。
【0417】
すなわち、上記パラメータとしては、ピッチラグPch、有声音のスペクトル振幅Am[i]、フレーム内の最大スペクトル振幅Amax 、及び残差信号のレベルLevを挙げることができる。ここで、ピッチラグPchは、所定のサンプリング周波数fs (例えばfs=8kHz)でのピッチ周期内のサンプル数であり、スペクトル振幅Am[i]のiは、fs/2 の帯域内でのハーモニックスの本数をI=Pch/2とするとき、0<i<Iの範囲内の整数である。
【0418】
このノイズ合成回路216による処理は、例えばMBE(マルチバンド励起)符号化の無声音の合成と同様な方法で行われる。図24は、ノイズ合成回路216の具体例を示している。
【0419】
すなわち図24において、ホワイトノイズ発生部401からは、時間軸上のホワイトノイズ信号波形に所定の長さ(例えば256サンプル)で適当な窓関数(例えばハミング窓)により窓かけされたガウシャンノイズが出力され、これがSTFT処理部402によりSTFT(ショートタームフーリエ変換)処理を施すことにより、ノイズの周波数軸上のパワースペクトルを得る。このSTFT処理部402からのパワースペクトルを振幅処理のための乗算器403に送り、ノイズ振幅制御回路410からの出力を乗算している。乗算器403からの出力は、ISTFT処理部404に送られ、位相は元のホワイトノイズの位相を用いて逆STFT処理を施すことにより時間軸上の信号に変換する。ISTFT処理部404からの出力は、重み付き重畳加算回路217に送られる。
【0420】
なお、上記図24の例においては、ホワイトノイズ発生部401から時間領域のノイズを発生してそれをSTFT等の直交変換を行うことで周波数領域のノイズを得ていたが、ノイズ発生部から直接的に周波数領域のノイズを発生するようにしてもよい。すなわち、周波数領域のパラメータを直接発生することにより、STFTやFFT等の直交変換処理が節約できる。
【0421】
具体的には、±xの範囲の乱数を発生しそれをFFTスペクトルの実部と虚部として扱うようにする方法や、0から最大値(max)までの範囲の正の乱数を発生しそれをFFTスペクトルの振幅として扱い、−πからπまでの乱数を発生しそれをFFTスペクトルの位相として扱う方法などが挙げられる。
【0422】
こうすることにより、図24のSTFT処理部402が不要となり、構成の簡略化あるいは演算量の低減が図れる。
【0423】
ノイズ振幅制御回路410は、例えば図25のような基本構成を有し、上記図4のスペクトルエンベロープの逆量子化器212から端子411を介して与えられるV(有声音)についての上記スペクトル振幅Am[i]と、上記図4の入力端子204から端子412を介して与えられる上記ピッチラグPchに基づいて、乗算器403での乗算係数を制御することにより、合成されるノイズ振幅Am_noise[i]を求めている。すなわち図25において、スペクトル振幅Am[i]とピッチラグPchとが入力される最適なnoise_mix 値の算出回路416からの出力をノイズの重み付け回路417で重み付けし、得られた出力を乗算器418に送ってスペクトル振幅Am[i]と乗算することにより、ノイズ振幅Am_noise[i]を得ている。
【0424】
ここで、ノイズ合成加算の第1の具体例として、ノイズ振幅Am_noise[i]が、上記4つのパラメータの内の2つ、すなわちピッチラグPch及びスペクトル振幅Am[i]の関数f1(Pch,Am[i])となる場合について説明する。
【0425】
このような関数f1(Pch,Am[i])の具体例として、
1(Pch,Am[i])=0 (0<i<Noise_b×I)
1(Pch,Am[i])=Am[i]×noise_mix (Noise_b×I≦i<I)
noise_mix = K×Pch/2.0
とすることが挙げられる。
【0426】
ただし、noise_mix の最大値は、noise_mix_max とし、その値でクリップする。一例として、K=0.02、noise_mix_max=0.3、Noise_b=0.7とすることが挙げられる。ここで、Noise_b は、全帯域の何割からこのノイズの付加を行うかを決める定数である。本例では、7割より高域側、すなわちfs=8kHzのとき、4000×0.7=2800Hzから4000Hzの間でノイズを付加するようにしている。
【0427】
次に、ノイズ合成加算の第2の具体例として、上記ノイズ振幅Am_noise[i]を、上記4つのパラメータの内の3つ、すなわちピッチラグPch、スペクトル振幅Am[i]及び最大スペクトル振幅Amax の関数f2(Pch,Am[i],Amax) とする場合について説明する。
【0428】
このような関数f2(Pch,Am[i],Amax) の具体例として、
2(Pch,Am[i],Amax)=0 (0<i<Noise_b×I)
2(Pch,Am[i],Amax)=Am[i]×noise_mix (Noise_b×I≦i<I)
noise_mix = K×Pch/2.0
を挙げることができる。ただし、noise_mix の最大値は、noise_mix_max とし、一例として、K=0.02、noise_mix_max=0.3、Noise_b=0.7とすることが挙げられる。
【0429】
さらに、
もしAm[i]×noise_mix>Amax×C×noise_mix ならば、
2(Pch,Am[i],Amax)=Amax×C×noise_mix
とする。ここで、定数Cは、C=0.3 としている。この条件式によりノイズレベルが大きくなり過ぎることを防止できるため、上記K、noise_mix_max をさらに大きくしてもよく、高域のレベルも比較的大きいときにノイズレベルを高めることができる。
【0430】
次に、ノイズ合成加算の第3の具体例として、上記ノイズ振幅Am_noise[i]を、上記4つのパラメータの内の4つ全ての関数f3(Pch,Am[i],Amax,Lev) とすることもできる。
【0431】
このような関数f3(Pch,Am[i],Amax,Lev) の具体例は、基本的には上記第2の具体例の関数f2(Pch,Am[i],Amax) と同様である。ただし、残差信号レベルLev は、スペクトル振幅Am[i]のrms(root mean square)、あるいは時間軸上で測定した信号レベルである。上記第2の具体例との違いは、Kの値とnoise_mix_max の値とをLev の関数とする点である。すなわち、Lev が小さくなったときには、K、noise_mix_max の各値を大きめに設定し、Lev が大きいときは小さめに設定する。あるいは、連続的にLev の値を逆比例させてもよい。
【0432】
次に、ポストフィルタ238v、238uについて説明する。
【0433】
図26は、図4の例のポストフィルタ238v、238uとして用いられるポストフィルタを示しており、ポストフィルタの要部となるスペクトル整形フィルタ440は、ホルマント強調フィルタ441と高域強調フィルタ442とから成っている。このスペクトル整形フィルタ440からの出力は、スペクトル整形によるゲイン変化を補正するためのゲイン調整回路443に送られており、このゲイン調整回路443のゲインGは、ゲイン制御回路445により、スペクトル整形フィルタ440の入力xと出力yと比較してゲイン変化を計算し、補正値を算出することで決定される。
【0434】
スペクトル整形フィルタの440特性PF(z) は、LPC合成フィルタの分母Hv(z)、Huv(z) の係数、いわゆるαパラメータをαi とすると、
【0435】
【数84】
Figure 0003675054
【0436】
と表せる。この式の分数部分がホルマント強調フィルタ特性を、(1−kz-1)の部分が高域強調フィルタ特性をそれぞれ表す。また、β、γ、kは定数であり、一例としてβ=0.6、γ=0.8、k=0.3を挙げることができる。
【0437】
また、ゲイン調整回路443のゲインGは、
【0438】
【数85】
Figure 0003675054
【0439】
としている。この式中のx(i) はスペクトル整形フィルタ440の入力、y(i) はスペクトル整形フィルタ440の出力である。
【0440】
ここで、上記スペクトル整形フィルタ440の係数の更新周期は、図27に示すように、LPC合成フィルタの係数であるαパラメータの更新周期と同じく20サンプル、2.5msec であるのに対して、ゲイン調整回路443のゲインGの更新周期は、160サンプル、20msec である。
【0441】
このように、ポストフィルタのスペクトル整形フィルタ440の係数の更新周期に比較して、ゲイン調整回路443のゲインGの更新周期を長くとることにより、ゲイン調整の変動による悪影響を防止している。
【0442】
すなわち、一般のポストフィルタにおいては、スペクトル整形フィルタの係数の更新周期とゲインの更新周期とを同じにしており、このとき、ゲインの更新周期を20サンプル、2.5msec とすると、図27からも明らかなように、1ピッチ周期の中で変動することになり、クリックノイズを生じる原因となる。そこで本例においては、ゲインの切換周期をより長く、例えば1フレーム分の160サンプル、20msec とすることにより、急激なゲインの変動を防止することができる。また逆に、スペクトル整形フィルタの係数の更新周期を160サンプル、20msec とするときには、円滑なフィルタ特性の変化が得られず、合成波形に悪影響が生じるが、このフィルタ係数の更新周期を20サンプル、2.5msec と短くすることにより、効果的なポストフィルタ処理が可能となる。
【0443】
なお、隣接するフレーム間でのゲインのつなぎ処理は、図28に示すように、前フレームのフィルタ係数及びゲインと、現フレームのフィルタ係数及びゲインとを用いて算出した結果に、次のような三角窓
W(i) = i/20 (0≦i≦20)

1−W(i) (0≦i≦20)
をかけてフェードイン、フェードアウトを行って加算する。図28では、前フレームのゲインG1 が現フレームのゲインG2 に変化する様子を示している。すなわち、オーバーラップ部分では、前フレームのゲイン、フィルタ係数を使用する割合が徐々に減衰し、現フレームのゲイン、フィルタ係数の使用が徐々に増大する。なお、図28の時刻Tにおけるフィルタの内部状態は、現フレームのフィルタ、前フレームのフィルタ共に同じもの、すなわち前フレームの最終状態からスタートする。
【0444】
以上説明したような信号符号化装置及び信号復号化装置は、例えば図29及び図30に示すような携帯通信端末あるいは携帯電話機等に使用される音声コーデックとして用いることができる。
【0445】
すなわち、図29は、上記図1、図3に示したような構成を有する音声符号化部160を用いて成る携帯端末の送信側構成を示している。この図29のマイクロホン161で集音された音声信号は、アンプ162で増幅され、A/D(アナログ/ディジタル)変換器163でディジタル信号に変換されて、音声符号化部160に送られる。この音声符号化部160は、上述した図1、図3に示すような構成を有しており、この入力端子101に上記A/D変換器163からのディジタル信号が入力される。音声符号化部160では、上記図1、図3と共に説明したような符号化処理が行われ、図1、図2の各出力端子からの出力信号は、音声符号化部160の出力信号として、伝送路符号化部164に送られる。伝送路符号化部164では、いわゆるチャネルコーディング処理が施され、その出力信号が変調回路165に送られて変調され、D/A(ディジタル/アナログ)変換器166、RFアンプ167を介して、アンテナ168に送られる。
【0446】
また、図30は、上記図2、図4に示したような構成を有する音声復号化部260を用いて成る携帯端末の受信側構成を示している。この図30のアンテナ261で受信された音声信号は、RFアンプ262で増幅され、A/D(アナログ/ディジタル)変換器263を介して、復調回路264に送られ、復調信号が伝送路復号化部265に送られる。264からの出力信号は、上記図2、図4に示すような構成を有する音声復号化部260に送られる。音声復号化部260では、上記図2、図4と共に説明したような復号化処理が施され、図2、図4の出力端子201からの出力信号が、音声復号化部260からの信号としてD/A(ディジタル/アナログ)変換器266に送られる。このD/A変換器266からのアナログ音声信号がスピーカ268に送られる。
【0447】
なお、本発明は上記実施の形態のみに限定されるものではなく、例えば上記図1、図3の音声分析側(エンコード側)の構成や、図2、図4の音声合成側(デコード側)の構成については、各部をハードウェア的に記載しているが、いわゆるDSP(ディジタル信号プロセッサ)等を用いてソフトウェアプログラムにより実現することも可能である。また、ベクトル量子化は、音声符号化のみならず、他の種々の信号のベクトル量子化に適用できる。さらに、本発明の音声符号化方法や装置の適用範囲は、伝送や記録再生に限定されず、ピッチ変換やスピード変換、規則音声合成、あるいは雑音抑圧のような種々の用途に応用できることは勿論である。
【0448】
【発明の効果】
以上の説明から明らかなように、本発明によれば、可変次元の入力ベクトルをベクトル量子化する際に、符号帳(コードブック)から読み出された固定次元のコードベクトルを元の入力ベクトルの次元と同じ可変次元に変換し、この固定/可変次元変換された可変次元のコードベクトルと、第2の符号帳から読み出された固定次元の第2のコードベクトルとを加算し、この加算されて得られた加算コードベクトルについて可変次元の上記入力ベクトルとの誤差を最小化する最適のコードベクトルを各符号帳より選択しているため、元の可変次元の入力ベクトルとの間の誤差あるいは歪が計算され、量子化ベクトル精度を高めることができると共に、可変次元で最適のコードベクトルを選択するために第1の符号帳から読み出された固定次元のコードベクトルを固定/可変次元変換していることによる影響を、このような固定/可変次元変換を通さない第2の符号帳からの固定次元のコードベクトルと加算することで軽減することができる。
【0449】
ここで、符号帳をシェイプ符号帳とゲイン符号帳とで構成する場合に、少なくともゲイン符号帳からのゲインの最適化を可変次元で行うようにすることが挙げられる。
【0450】
このように、ゲインを固定/可変次元変換された可変次元のコードベクトルに対して適用することにより、固定コードベクトルをゲイン倍したものを固定/可変次元変換する場合に比べて、固定/可変次元変換による影響を含めた上で最適なゲインが選ばれるため、その影響を少なく抑えることができる。
【0451】
このようなベクトル量子化を音声符号化に適用することができ、例えば、入力音声信号又は入力音声信号の短期予測残差をサイン波分析してハーモニクススペクトルを求め、符号化単位毎の上記ハーモニクススペクトルに基づくパラメータを入力ベクトルとしてベクトル量子化する際に適用することができ、精度の高いコードブックサーチによる音質の向上を図ることができる。
【0452】
さらに、音声復号化の際には、第1の符号帳から読み出されたコードベクトルを固定/可変次元変換した可変次元のコードベクトルと、第2の符号帳から読み出された固定次元のコードベクトルとを加算して得られたハーモニクススペクトルを用いてサイン波合成復号を行うことにより、品質の高い音声が得られる。
【図面の簡単な説明】
【図1】本発明に係るベクトル量子化方法が適用された音声符号化方法の実施の形態となる音声符号化装置の基本構成を示すブロック図である。
【図2】図1の音声符号化装置により符号化された信号を復号化するための音声復号化装置の基本構成を示すブロック図である。
【図3】本発明の実施の形態となる音声符号化装置のより具体的な構成を示すブロック図である。
【図4】図2の音声復号化装置のより具体的な構成を示すブロック図である。
【図5】LSP量子化部の基本構成を示すブロック図である。
【図6】LSP量子化部のより具体的な構成を示すブロック図である。
【図7】ベクトル量子化部の基本構成を示すブロック図である。
【図8】ベクトル量子化部のより具体的な構成を示すブロック図である。
【図9】重み付けの重みの具体例を示すグラフである。
【図10】符号帳検索を可変次元で行うベクトル量子化器の構成例を示すブロック回路図である。
【図11】符号帳検索を可変次元で行うベクトル量子化器の他の構成例を示すブロック回路図である。
【図12】可変次元用の符号帳と固定次元用の符号帳とを用いるベクトル量子化器の第1の構成例を示すブロック回路図である。
【図13】可変次元用の符号帳と固定次元用の符号帳とを用いるベクトル量子化器の第2の構成例を示すブロック回路図である。
【図14】可変次元用の符号帳と固定次元用の符号帳とを用いるベクトル量子化器の第3の構成例を示すブロック回路図である。
【図15】可変次元用の符号帳と固定次元用の符号帳とを用いるベクトル量子化器の第5の構成例を示すブロック回路図である。
【図16】本発明の音声信号符号化装置のCELP符号化部分(第2の符号化部)の具体的構成を示すブロック回路図である。
【図17】図16の構成における処理の流れを示すフローチャートである。
【図18】ガウシアンノイズと、異なるスレシホールド値でのクリッピング後のノイズの様子を示す図である。
【図19】学習によってシェイプコードブックを生成する際の処理の流れを示すフローチャートである。
【図20】10次のLPC分析により得られたαパラメータに基づく10次のLSP(線スペクトル対)を示す図である。
【図21】UV(無声音)フレームからV(有声音)フレームへのゲイン変化の様子を説明するための図である。
【図22】フレーム毎に合成されるスペクトルや波形の補間処理を説明するための図である。
【図23】V(有声音)フレームとUV(無声音)フレームとの接続部でのオーバーラップを説明するための図である。
【図24】有声音合成の際のノイズ加算処理を説明するための図である。
【図25】有声音合成の際に加算されるノイズの振幅計算の例を示す図である。
【図26】ポストフィルタの構成例を示す図である。
【図27】ポストフィルタのフィルタ係数更新周期とゲイン更新周期とを説明するための図である。
【図28】ポストフィルタのゲイン、フィルタ係数のフレーム境界部分でのつなぎ処理を説明するための図である。
【図29】本発明の実施の形態となる音声信号符号化装置が用いられる携帯端末の送信側構成を示すブロック図である。
【図30】本発明の実施の形態となる音声信号復号化装置が用いられる携帯端末の受信側構成を示すブロック図である。
【符号の説明】
110 第1の符号化部、 111 LPC逆フィルタ、 113 LPC分析・量子化部、 114 サイン波分析符号化部、 115 V/UV判定部、116 ベクトル量子化器、 120 第2の符号化部、 121 雑音符号帳、 122 重み付き合成フィルタ、 123 減算器、 124 距離計算回路、 125 聴覚重み付けフィルタ、 530 符号帳(コードブック)、531 シェイプコードブック、 532 ゲインコードブック、 533 ゲイン回路、 535 仮選択用の選択回路、 542 可変/固定次元変換回路、 544 固定/可変次元変換回路、 545 本選択用の選択回路[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a vector quantization method for outputting an optimal code vector index by comparing an input vector with a code vector stored in a codebook, and dividing an input speech signal by a predetermined coding unit such as a block or a frame. In particular, the present invention relates to a speech coding method and apparatus for performing a coding process including vector quantization for each divided coding unit, and a speech decoding method for decoding a coded speech signal.
[0002]
[Prior art]
In the case of digitizing an audio signal, a video signal, and the like and performing compression encoding, vector quantization is known in which a plurality of input data are collectively expressed as a vector and expressed by one code (index).
[0003]
In this vector quantization, representative patterns of various input vectors are determined in advance by learning or the like, and each is given a code (index) and stored in a codebook (codebook). Comparison with each pattern (code vector) of the code book, that is, pattern matching is performed, and a code of a pattern having the highest similarity and correlation is output. The similarity and correlation are obtained by calculating a distortion scale and error energy between the input vector and each code vector. The smaller the distortion and error, the higher the similarity and correlation.
[0004]
By the way, various encoding methods are known in which signal compression is performed using the statistical properties of audio signals (including audio signals and acoustic signals) in the time domain and frequency domain, and human auditory characteristics. This coding method is roughly classified into time domain coding, frequency domain coding, analysis / synthesis coding, and the like.
[0005]
Examples of high-efficiency coding for speech signals, etc., include sine wave analysis coding such as Harmonic coding, MBE (Multiband Excitation) coding, and SBC (Sub-band Coding). ), LPC (Linear Predictive Coding), DCT (Discrete Cosine Transform), MDCT (Modified DCT), FFT (Fast Fourier Transform), and the like are known.
[0006]
In such high-efficiency encoding of speech signals and the like, vector quantization as described above is employed for parameters such as the obtained harmonic spectrum.
[0007]
[Problems to be solved by the invention]
By the way, when the audio signal is subjected to harmonic coding, the number of harmonic spectrums within a certain band varies depending on the pitch. For example, when the effective band is 3400 kHz, the pitch changes from female to male. Accordingly, the harmonic spectrum changes from 8 to 63 lines. Therefore, if such a harmonic spectrum amplitude is vectorized, it becomes a variable-dimensional vector, and it is difficult to vector-quantize this as it is. Therefore, it is necessary to convert the variable-dimensional vector into a fixed fixed-dimensional vector and then perform vector quantization. For example, Japanese Patent Laid-Open No. 6-51800 proposes it by the applicant.
[0008]
In this method, the amplitude data of the harmonic spectrum is converted into a fixed number of data, for example, 44 data, and then this fixed dimension vector is vector quantized.
[0009]
In the case of performing vector quantization on a fixed dimension vector after such data number conversion or variable / fixed dimension conversion, a code vector obtained by performing a codebook search (codebook search) is not necessarily used. It does not optimally minimize distortion or error between the original variable-dimensional vector (harmonics spectrum).
[0010]
The present invention has been made in view of such circumstances, and a vector quantization method, a speech encoding method and an apparatus, which can further improve the accuracy of vector quantization of a vector given in variable dimensions, and An object of the present invention is to provide a speech decoding method.
[0011]
[Means for Solving the Problems]
  In order to solve the above-described problem, the vector quantization method according to the present invention selects an optimal code vector from a fixed-dimensional code vector stored in a codebook for a variable-dimensional input vector, and calculates its index. A vector quantization method for outputting a variable / fixed dimension conversion step for converting a variable dimension input vector into the fixed dimension of the first codebook, and a fixed dimension converted by the variable / fixed dimension conversion step. A provisional selection step of selecting, from the first codebook, a plurality of code vectors that minimize an error between an input vector and the first code vector stored in the first codebook; and the first codebook A fixed / variable dimension converting step of converting the first code vector of the fixed dimension selected from the above into the variable dimension of the input vector, and the fixed dimension read from the second codebook An addition step of adding the second code vector to the fixed / variable dimension-converted variable-dimensional first code vector, and minimizing an error between the addition code vector obtained by the addition and the input vector. And a selection step of selecting an optimal code vector from the at least second codebook.
[0012]
In the codebook search (codebook search) for selecting the optimal code vector from the codebook, the error or distortion from the original variable-dimensional input vector is calculated, so that the accuracy increases and the variable dimension In such a case, the fixed / variable dimension conversion of the fixed dimension code vector read from the first codebook in order to select the optimum code vector is not passed through such fixed / variable dimension conversion. Mitigation is achieved by adding a fixed-dimensional code vector from the second codebook.
[0013]
That is, it is possible to suppress the distortion generated when the fixed dimension vector from the first codebook is fixed / variable dimension converted by the fixed dimension vector from the second codebook.
[0014]
Here, when the codebook is composed of a shape codebook and a gain codebook, at least optimization of gain from the gain codebook is performed in a variable dimension.
[0015]
  The speech coding method according to the present invention is a speech coding method in which an input speech signal is divided into predetermined coding units on a time axis and coded in each coding unit, and a signal based on the input speech signal is signed. A step of obtaining a harmonic spectrum by wave analysis, and a step of encoding the harmonic spectrum for each encoding unit by vector quantization as a variable-dimensional input vector, wherein the vector quantization has a variable dimension Variable / fixed dimension conversion step for converting the input vector into the fixed dimension of the first codebook, the fixed dimension input vector converted by the variable / fixed dimension conversion step, and the first codebook stored A provisional selection step of selecting, from the first codebook, a plurality of code vectors that minimize an error from the first code vector, and a selection from the first codebook. A fixed / variable dimension conversion step for converting the first code vector of the fixed dimension into the variable dimension of the input vector, and the second code vector of the fixed dimension read from the second codebook as the fixed / variable dimension. An addition step of adding to the transformed variable-dimensional first code vector, and an optimum code vector that minimizes an error from the input vector with respect to the addition code vector obtained by the addition, the at least second code And a selection step of selecting from a book.
[0016]
Moreover, a speech encoding apparatus to which such a speech encoding method is applied can be configured.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, preferred embodiments according to the present invention will be described.
First, FIG. 1 shows a basic configuration of a speech encoding apparatus to which an embodiment of a vector quantization method according to the present invention is applied.
[0020]
Here, the basic idea of the speech signal encoding apparatus of FIG. 1 is to obtain a short-term prediction residual of an input speech signal, for example, LPC (linear predictive coding) residual, and to perform sinusoidal analysis encoding, for example, A first encoding unit 110 that performs harmonic coding; and a second encoding unit 120 that encodes the input speech signal by waveform encoding with phase reproducibility. The first encoding unit 110 is used for encoding the voiced sound (V: Voiced) portion, and the second encoding unit 120 is used for encoding the unvoiced sound (UV) portion of the input signal. It is to be.
[0021]
For the first encoding unit 110, for example, a configuration that performs sine wave analysis encoding such as harmonic encoding or multiband excitation (MBE) encoding on the LPC residual is used. The second encoding unit 120 uses, for example, a configuration of code-excited linear prediction (CELP) encoding using vector quantization based on a closed-loop search of an optimal vector using an analysis method by synthesis.
[0022]
In the example of FIG. 1, the audio signal supplied to the input terminal 101 is sent to the LPC inverse filter 111 and the LPC analysis / quantization unit 113 of the first encoding unit 110. The LPC coefficient or so-called α parameter obtained from the LPC analysis / quantization unit 113 is sent to the LPC inverse filter 111, and the LPC inverse filter 111 extracts the linear prediction residual (LPC residual) of the input speech signal. . Further, from the LPC analysis / quantization unit 113, an LSP (line spectrum pair) quantization output is taken out and sent to the output terminal 102 as described later. The LPC residual from the LPC inverse filter 111 is sent to the sine wave analysis encoding unit 114. The sine wave analysis encoding unit 114 performs pitch detection and spectrum envelope amplitude calculation, and the V (voiced sound) / UV (unvoiced sound) determination unit 115 performs V / UV determination. Spectral envelope amplitude data from the sine wave analysis encoding unit 114 is sent to the vector quantization unit 116. The codebook index from the vector quantization unit 116 as the vector quantization output of the spectrum envelope is sent to the output terminal 103 via the switch 117, and the output from the sine wave analysis encoding unit 114 is sent via the switch 118. It is sent to the output terminal 104. The V / UV determination output from the V / UV determination unit 115 is sent to the output terminal 105 and is also sent as a control signal for the switches 117 and 118. When the voiced sound (V) described above, the index and The pitch is selected and taken out from the output terminals 103 and 104, respectively.
[0023]
The second encoding unit 120 in FIG. 1 has a CELP (Code Excited Linear Prediction) encoding configuration in this example, and the output from the noise codebook 121 is combined by a weighted combining filter 122. The obtained weighted sound is sent to the subtractor 123, an error between the sound signal supplied to the input terminal 101 and the sound obtained through the auditory weighting filter 125 is extracted, and this error is sent to the distance calculation circuit 124. Vector quantization of a time-axis waveform using a closed-loop search using an analysis by synthesis method, such as performing a distance calculation and searching the noise codebook 121 for a vector having the smallest error. It is carried out. This CELP encoding is used for encoding the unvoiced sound part as described above, and the codebook index as the UV data from the noise codebook 121 is the V / UV determination result from the V / UV determination unit 115. Is taken out from the output terminal 107 via the switch 127 which is turned on when the sound is unvoiced sound (UV).
[0024]
Next, FIG. 2 shows the basics of a speech signal decoding apparatus corresponding to the speech signal encoding apparatus of FIG. 1 as a speech signal decoding apparatus to which an embodiment of the speech decoding method according to the present invention is applied. It is a block diagram which shows a structure.
[0025]
In FIG. 2, a codebook index as a quantized output of the LSP (line spectrum pair) from the output terminal 102 of FIG. The outputs from the output terminals 103, 104, and 105 in FIG. 1, that is, the index, pitch, and V / UV determination outputs as envelope quantization outputs are input to the input terminals 203, 204, and 205, respectively. The The input terminal 207 receives an index as UV (unvoiced sound) data from the output terminal 107 in FIG.
[0026]
The index as the envelope quantization output from the input terminal 203 is sent to the inverse vector quantizer 212 and inverse vector quantized, and the spectrum envelope of the LPC residual is obtained and sent to the voiced sound synthesis unit 211. The voiced sound synthesizer 211 synthesizes the LPC (Linear Predictive Coding) residual of the voiced sound part by sine wave synthesis, and the voiced sound synthesizer 211 includes the pitch from the input terminals 204 and 205 and V / A UV judgment output is also supplied. The LPC residual of voiced sound from the voiced sound synthesis unit 211 is sent to the LPC synthesis filter 214. Further, the index of the UV data from the input terminal 207 is sent to the unvoiced sound synthesis unit 220, and the LPC residual of the unvoiced sound part is extracted by referring to the noise codebook. This LPC residual is also sent to the LPC synthesis filter 214. The LPC synthesis filter 214 performs LPC synthesis processing on the LPC residual of the voiced sound part and the LPC residual of the unvoiced sound part independently. Alternatively, the LPC synthesis process may be performed on the sum of the LPC residual of the voiced sound part and the LPC residual of the unvoiced sound part. Here, the LSP index from the input terminal 202 is sent to the LPC parameter reproducing unit 213, the α parameter of the LPC is extracted, and this is sent to the LPC synthesis filter 214. An audio signal obtained by LPC synthesis by the LPC synthesis filter 214 is taken out from the output terminal 201.
[0027]
Next, a more specific configuration of the speech signal encoding apparatus shown in FIG. 1 will be described with reference to FIG. In FIG. 3, parts corresponding to those in FIG.
[0028]
In the audio signal encoding apparatus shown in FIG. 3, the audio signal supplied to the input terminal 101 is subjected to a filtering process for removing a signal in an unnecessary band by a high pass filter (HPF) 109, and then subjected to LPC. (Linear predictive coding) sent to the LPC analysis circuit 132 and the LPC inverse filter circuit 111 of the analysis / quantization unit 113.
[0029]
The LPC analysis circuit 132 of the LPC analysis / quantization unit 113 uses a Hamming window with a length of about 256 samples of the input signal waveform as one block of the encoding unit, and calculates a linear prediction coefficient, so-called α parameter by the autocorrelation method. Ask. The framing interval as a unit of data output is about 160 samples. When the sampling frequency fs is 8 kHz, for example, one frame interval is 20 samples with 160 samples.
[0030]
The α parameter from the LPC analysis circuit 132 is sent to the α → LSP conversion circuit 133 and converted into a line spectrum pair (LSP) parameter. This converts the α parameter obtained as a direct filter coefficient into, for example, 10 LSP parameters. The conversion is performed using, for example, the Newton-Raphson method. The reason for converting to the LSP parameter is that the interpolation characteristic is superior to the α parameter.
[0031]
The LSP parameters from the α → LSP conversion circuit 133 are subjected to matrix or vector quantization by the LSP quantizer 134. At this time, vector quantization may be performed after taking the interframe difference, or matrix quantization may be performed for a plurality of frames. Here, 20 msec is one frame, and LSP parameters calculated every 20 msec are combined for two frames to perform matrix quantization and vector quantization.
[0032]
The quantization output from the LSP quantizer 134, that is, the LSP quantization index is taken out via the terminal 102, and the quantized LSP vector is sent to the LSP interpolation circuit 136.
[0033]
The LSP interpolation circuit 136 interpolates the LSP vector quantized every 20 msec or 40 msec to obtain a rate of 8 times. That is, the LSP vector is updated every 2.5 msec. This is because, if the residual waveform is analyzed and synthesized by the harmonic coding / decoding method, the envelope of the synthesized waveform becomes a very smooth and smooth waveform, and therefore an abnormal sound is generated when the LPC coefficient changes rapidly every 20 msec. Because there are things. That is, if the LPC coefficient is gradually changed every 2.5 msec, such abnormal noise can be prevented.
[0034]
In order to perform the inverse filtering of the input speech using the LSP vector for every 2.5 msec subjected to such interpolation, the LSP → α conversion circuit 137 converts the LSP parameter into a coefficient of a direct filter of about 10th order, for example. Is converted to an α parameter. The output from the LSP → α conversion circuit 137 is sent to the LPC inverse filter circuit 111. The LPC inverse filter 111 performs an inverse filtering process with an α parameter updated every 2.5 msec to obtain a smooth output. Like to get. The output from the LPC inverse filter 111 is sent to a sine wave analysis encoding unit 114, specifically, an orthogonal transformation circuit 145 of, for example, a harmonic coding circuit, for example, a DFT (Discrete Fourier Transform) circuit.
[0035]
The α parameter from the LPC analysis circuit 132 of the LPC analysis / quantization unit 113 is sent to the perceptual weighting filter calculation circuit 139 to obtain data for perceptual weighting. And the perceptual weighting filter 125 and the perceptual weighted synthesis filter 122 of the second encoding unit 120.
[0036]
A sine wave analysis encoding unit 114 such as a harmonic encoding circuit analyzes the output from the LPC inverse filter 111 by a harmonic encoding method. That is, pitch detection, calculation of the amplitude Am of each harmonic, discrimination of voiced sound (V) / unvoiced sound (UV), and the number of harmonic envelopes or amplitude Am that change according to the pitch are converted to a constant number. .
[0037]
In the specific example of the sine wave analysis encoding unit 114 shown in FIG. 3, general harmonic encoding is assumed. In particular, in the case of MBE (Multiband Excitation) encoding, Modeling is based on the assumption that a voiced (Voiced) portion and an unvoiced (Unvoiced) portion exist for each band, that is, a frequency axis region (in the same block or frame). In other harmonic encoding, an alternative determination is made as to whether the voice in one block or frame is voiced or unvoiced. The V / UV for each frame in the following description is the UV of the frame when all bands are UV when applied to MBE coding. Here, the MBE analysis and synthesis method is disclosed in detail in Japanese Patent Application No. 4-91422 specification and drawings previously proposed by the present applicant.
[0038]
In the open loop pitch search unit 141 of the sine wave analysis encoding unit 114 in FIG. 3, the input audio signal from the input terminal 101 is received, and in the zero cross counter 142, the signal from the HPF (high pass filter) 109 is received. Have been supplied. The LPC residual or linear prediction residual from the LPC inverse filter 111 is supplied to the orthogonal transform circuit 145 of the sine wave analysis encoding unit 114. In the open loop pitch search unit 141, an LPC residual of the input signal is taken to perform a search for a relatively rough pitch by an open loop, and the extracted coarse pitch data is sent to a high precision pitch search 146, which will be described later. A highly accurate pitch search (fine pitch search) is performed by such a closed loop. Also, from the open loop pitch search unit 141, the normalized autocorrelation maximum value r (p) obtained by normalizing the maximum value of the autocorrelation of the LPC residual together with the rough pitch data by the power is extracted, and V / UV (existence) is obtained. Voiced / unvoiced sound) determination unit 115.
[0039]
The orthogonal transform circuit 145 performs orthogonal transform processing such as DFT (Discrete Fourier Transform), for example, and converts the LPC residual on the time axis into spectral amplitude data on the frequency axis. The output from the orthogonal transform circuit 145 is sent to the high-precision pitch search unit 146 and the spectrum evaluation unit 148 for evaluating the spectrum amplitude or envelope.
[0040]
The high-precision (fine) pitch search unit 146 is supplied with the relatively rough coarse pitch data extracted by the open loop pitch search unit 141 and the data on the frequency axis that has been subjected to DFT, for example, by the orthogonal transform unit 145. Yes. This high-accuracy pitch search unit 146 swings ± several samples at intervals of 0.2 to 0.5 centering on the coarse pitch data value, and drives the value to the optimum fine pitch data value with a decimal point (floating). As a fine search method at this time, a so-called analysis by synthesis method is used, and the pitch is selected so that the synthesized power spectrum is closest to the power spectrum of the original sound. Pitch data from the highly accurate pitch search unit 146 by such a closed loop is sent to the output terminal 104 via the switch 118.
[0041]
The spectrum evaluation unit 148 evaluates the magnitude of each harmonic and the spectrum envelope that is a set of the harmonics based on the spectrum amplitude and pitch as the orthogonal transformation output of the LPC residual, and the high-precision pitch search unit 146, V / UV (existence). (Voice sound / unvoiced sound) determination unit 115 and auditory weighted vector quantizer 116.
[0042]
The V / UV (voiced / unvoiced sound) determination unit 115 outputs the output from the orthogonal transformation circuit 145, the optimum pitch from the high-precision pitch search unit 146, the spectrum amplitude data from the spectrum evaluation unit 148, and the open loop pitch search. Based on the normalized autocorrelation maximum value r (p) from the unit 141 and the zero cross count value from the zero cross counter 142, the V / UV determination of the frame is performed. Furthermore, the boundary position of the V / UV determination result for each band in the case of MBE may also be a condition for V / UV determination of the frame. The determination output from the V / UV determination unit 115 is taken out via the output terminal 105.
[0043]
Incidentally, a data number conversion (a kind of sampling rate conversion) unit is provided at the output unit of the spectrum evaluation unit 148 or the input unit of the vector quantizer 116. In consideration of the fact that the number of divided bands on the frequency axis differs according to the pitch and the number of data differs, the number-of-data converter converts the amplitude data of the envelope | Am| Is to make a certain number. That is, for example, when the effective band is up to 3400 kHz, this effective band is divided into 8 to 63 bands according to the pitch, and the amplitude data | A obtained for each of these bands | AmThe number m ofMX+1 also changes from 8 to 63. Therefore, in the data number conversion unit 119, the variable number mMXThe +1 amplitude data is converted into a predetermined number M, for example, 44 pieces of data.
[0044]
The fixed number M (for example, 44) of amplitude data or envelope data from the data number conversion unit provided at the output unit of the spectrum evaluation unit 148 or the input unit of the vector quantizer 116 is converted into the vector quantizer 116. Thus, a predetermined number, for example, 44 pieces of data are collected into vectors, and weighted vector quantization is performed. This weight is given by the output from the auditory weighting filter calculation circuit 139. The envelope index from the vector quantizer 116 is taken out from the output terminal 103 via the switch 117. Prior to the weighted vector quantization, an inter-frame difference using an appropriate leak coefficient may be taken for a vector composed of a predetermined number of data.
[0045]
Next, the second encoding unit 120 will be described. The second encoding unit 120 has a so-called CELP (Code Excited Linear Prediction) encoding configuration, and is particularly used for encoding an unvoiced sound portion of an input speech signal. In the CELP coding configuration for the unvoiced sound part, the gain circuit 126 outputs a noise output corresponding to the LPC residual of the unvoiced sound, which is a representative value output from the noise codebook, so-called stochastic code book 121. To the synthesis filter 122 with auditory weights. The weighted synthesis filter 122 performs LPC synthesis processing on the input noise and sends the obtained weighted unvoiced sound signal to the subtractor 123. The subtracter 123 receives a signal obtained by auditory weighting the audio signal supplied from the input terminal 101 via the HPF (high pass filter) 109 by the auditory weighting filter 125, and the difference from the signal from the synthesis filter 122. Or the error is taken out. It is assumed that the zero input response of the auditory weighted synthesis filter is subtracted from the output of the auditory weighting filter 125 in advance. This error is sent to the distance calculation circuit 124 to perform distance calculation, and a representative value vector that minimizes the error is searched in the noise codebook 121. Vector quantization of the time-axis waveform using a closed loop search using such an analysis by synthesis method is performed.
[0046]
The data for the UV (unvoiced sound) portion from the second encoding unit 120 using this CELP encoding configuration includes the codebook shape index from the noise codebook 121 and the codebook gain from the gain circuit 126. Index is taken out. The shape index that is UV data from the noise codebook 121 is sent to the output terminal 107s via the switch 127s, and the gain index that is UV data of the gain circuit 126 is sent to the output terminal 107g via the switch 127g. Yes.
[0047]
Here, these switches 127 s and 127 g and the switches 117 and 118 are on / off controlled based on the V / UV determination result from the V / UV determination unit 115, and the switches 117 and 118 are frames to be currently transmitted. The switch 127s and 127g are turned on when the voice signal of the frame to be transmitted is unvoiced sound (UV).
[0048]
Next, FIG. 4 shows a more specific configuration of the speech signal decoding apparatus as the embodiment according to the present invention shown in FIG. In FIG. 4, parts corresponding to those in FIG. 2 are given the same reference numerals.
[0049]
In FIG. 4, an LSP vector quantization output corresponding to the output from the output terminal 102 in FIGS. 1 and 3, a so-called codebook index, is supplied to the input terminal 202.
[0050]
This LSP index is sent to the LSP inverse vector quantizer 231 of the LPC parameter reproducing unit 213, and inverse vector quantized to LSP (line spectrum pair) data, and sent to the LSP interpolation circuits 232 and 233 to send the LSP index. After the interpolation processing is performed, the LSP → α conversion circuits 234 and 235 convert it to an α parameter of LPC (linear prediction code), and the α parameter is sent to the LPC synthesis filter 214. Here, the LSP interpolation circuit 232 and the LSP → α conversion circuit 234 are for voiced sound (V), and the LSP interpolation circuit 233 and the LSP → α conversion circuit 235 are for unvoiced sound (UV). The LPC synthesis filter 214 separates the LPC synthesis filter 236 for the voiced sound part and the LPC synthesis filter 237 for the unvoiced sound part. In other words, LPC coefficient interpolation is performed independently between the voiced sound part and the unvoiced sound part, and LSPs having completely different properties are interpolated between the transition part from voiced sound to unvoiced sound and the transition part from unvoiced sound to voiced sound. To prevent adverse effects.
[0051]
Also, the input terminal 203 in FIG. 4 is supplied with code index data obtained by quantizing the weighted vector of the spectral envelope (Am) corresponding to the output from the terminal 103 on the encoder side in FIGS. 204 is supplied with the pitch data from the terminal 104 in FIGS. 1 and 3, and the input terminal 205 is supplied with the V / UV determination data from the terminal 105 in FIGS.
[0052]
The index-quantized index data of the spectral envelope Am from the input terminal 203 is sent to the inverse vector quantizer 212, subjected to inverse vector quantization, and subjected to inverse transformation corresponding to the data number transformation, It becomes spectral envelope data and is sent to the sine wave synthesis circuit 215 of the voiced sound synthesis unit 211.
[0053]
In addition, when the interframe difference is taken prior to the vector quantization of the spectrum during encoding, the number of data is converted after decoding the interframe difference after the inverse vector quantization here, and the spectrum envelope data is converted. obtain.
[0054]
The sine wave synthesis circuit 215 is supplied with the pitch from the input terminal 204 and the V / UV determination data from the input terminal 205. From the sine wave synthesis circuit 215, LPC residual data corresponding to the output from the LPC inverse filter 111 in FIGS. 1 and 3 described above is extracted and sent to the adder 218. The specific method for synthesizing the sine wave is disclosed in, for example, the specification and drawings of Japanese Patent Application No. 4-91422 or the specification and drawings of Japanese Patent Application No. 6-198451 previously proposed by the present applicant. Has been.
[0055]
The envelope data from the inverse vector quantizer 212 and the pitch and V / UV determination data from the input terminals 204 and 205 are sent to the noise synthesis circuit 216 for adding noise of the voiced sound (V) portion. It has been. The output from the noise synthesis circuit 216 is sent to the adder 218 via the weighted superposition addition circuit 217. This is because when excitement (excitation: excitation, excitation) is input to the LPC synthesis filter of voiced sound by sine wave synthesis, there is a sense of stuffy nose with low pitch sounds such as male voices, and V ( In consideration of the fact that the sound quality may suddenly change between UV (unvoiced sound) and UV (unvoiced sound) and may feel unnatural, parameters for the LPC synthesis filter input of the voiced sound part, ie, the excitation, based on the speech coding data, For example, noise considering the pitch, spectrum envelope amplitude, maximum amplitude in the frame, residual signal level, and the like is added to the voiced portion of the LPC residual signal.
[0056]
The addition output from the adder 218 is sent to the voiced sound synthesis filter 236 of the LPC synthesis filter 214 to be subjected to LPC synthesis processing, thereby becoming time waveform data, and further filtered by the voiced sound postfilter 238v. Is sent to the adder 239.
[0057]
Next, the shape index and the gain index as UV data from the output terminals 107 s and 107 g in FIG. 3 are respectively supplied to the input terminals 207 s and 207 g in FIG. 4 and sent to the unvoiced sound synthesis unit 220. The shape index from the terminal 207 s is sent to the noise codebook 221 of the unvoiced sound synthesizer 220, and the gain index from the terminal 207 g is sent to the gain circuit 222. The representative value output read from the noise codebook 221 is a noise signal component corresponding to the LPC residual of the unvoiced sound, which becomes a predetermined gain amplitude in the gain circuit 222, and is sent to the windowing circuit 223, which A windowing process for smoothing the connection with the voiced sound part is performed.
[0058]
The output from the windowing circuit 223 is sent to the UV (unvoiced sound) synthesis filter 237 of the LPC synthesis filter 214 as the output from the unvoiced sound synthesis unit 220. In the synthesis filter 237, the LPC synthesis processing is performed, so that the time waveform data of the unvoiced sound part is obtained. The time waveform data of the unvoiced sound part is filtered by the unvoiced sound post filter 238u and then sent to the adder 239.
[0059]
In the adder 239, the time waveform signal of the voiced sound part from the voiced sound post filter 238v and the time waveform data of the unvoiced sound part from the unvoiced sound post filter 238u are added and taken out from the output terminal 201.
[0060]
By the way, the audio signal encoding apparatus can output output data having different bit rates in accordance with required quality, and the output data bit rate is varied and output.
[0061]
Specifically, the bit rate of the output data can be switched between a low bit rate and a high bit rate. For example, when the low bit rate is 2 kbps and the high bit rate is 6 kbps, data of each bit rate shown in Table 1 below is output.
[0062]
[Table 1]
Figure 0003675054
[0063]
The pitch data from the output terminal 104 is always output at 8 bits / 20 msec during voiced sound, and the V / UV determination output from the output terminal 105 is always 1 bit / 20 msec. The LSP quantization index output from the output terminal 102 is switched between 32 bits / 40 msec and 48 bits / 40 msec. In addition, the voiced sound (V) index output from the output terminal 103 is switched between 15 bits / 20 msec and 87 bits / 20 msec, and the unvoiced sound (UV) output from the output terminals 107 s and 107 g. The index is switched between 11 bits / 10 msec and 23 bits / 5 msec. Thereby, the output data at the time of voiced sound (V) is 40 bits / 20 msec at 2 kbps and 120 bits / 20 msec at 6 kbps. The output data during unvoiced sound (UV) is 39 bits / 20 msec at 2 kbps and 117 bits / 20 msec at 6 kbps.
[0064]
The LSP quantization index, the voiced sound (V) index, and the unvoiced sound (UV) index will be described together with the configuration of each unit described later.
[0065]
Next, matrix quantization and vector quantization in the LSP quantizer 134 will be described in detail with reference to FIGS. 5 and 6.
[0066]
As described above, the α parameter from the LPC analysis circuit 132 is sent to the α → LSP conversion circuit 133 and converted into an LSP parameter. For example, when the P-order LPC analysis is performed by the LPC analysis circuit 132, P parameters are calculated. The P α parameters are converted into LSP parameters and held in the buffer 610.
[0067]
From this buffer 610, LSP parameters for two frames are output. The LSP parameters for two frames are subjected to matrix quantization by the matrix quantization unit 620. The matrix quantization unit 620 includes a first matrix quantization unit 620.1 And the second matrix quantization unit 6202 It consists of. The LSP parameters for two frames are the first matrix quantization unit 6201 And the quantization error obtained thereby is converted into the second matrix quantization unit 620.2 Further, matrix quantization is performed. By these matrix quantizations, the correlation in the time axis direction and the frequency axis direction is removed.
[0068]
Matrix quantization unit 6202 Quantization errors for two frames from are input to the vector quantization unit 640. The vector quantization unit 640 includes a first vector quantization unit 640.1 And the second vector quantization unit 6402 It consists of. Further, the first vector quantization unit 6401 Consists of two vector quantizers 650 and 660, and a second vector quantizer 6402 Consists of two vector quantizers 670 and 680. First vector quantization unit 6401 In the vector quantization units 650 and 660, the quantization error from the matrix quantization unit 620 is vector-quantized for each frame. The quantization error vector thus obtained is the second vector quantization unit 640.2 The vector quantization units 670 and 680 perform further vector quantization. By these vector quantizations, the correlation in the frequency axis direction is processed.
[0069]
In this way, the matrix quantization unit 620 that performs the process of performing matrix quantization performs the first matrix quantization unit 620 that performs the first matrix quantization process.1 And a second matrix quantization unit 620 that performs a second matrix quantization step of performing matrix quantization on the quantization error due to the first matrix quantization.2 The vector quantization unit 640 that performs the step of performing the vector quantization includes the first vector quantization unit 640 that performs the first vector quantization step.1 And a second vector quantization unit 640 for performing a second vector quantization step of vector quantization of the quantization error vector at the time of the first vector quantization2 And at least.
[0070]
Next, matrix quantization and vector quantization will be specifically described.
[0071]
The LSP parameters for two frames, that is, the 10 × 2 matrix held in the buffer 610 is converted into a matrix quantizer 620.1 Sent to. The first matrix quantization unit 6201 Then, the LSP parameters for two frames are sent to the weighted distance calculator 623 via the adder 621, and the minimum weighted distance is calculated.
[0072]
The first matrix quantization unit 6201 Distortion scale d during codebook search byMQ1Is the LSP parameter X1 , Quantization value X1It is shown by the equation (1) using '.
[0073]
[Expression 1]
Figure 0003675054
[0074]
Here, t represents a frame number, and i represents a P-dimensional number.
[0075]
Further, the weight w in the case where the restriction of the weight is not taken into consideration in the frequency axis direction and the time axis direction at this time is represented by Expression (2).
[0076]
[Expression 2]
Figure 0003675054
[0077]
The weight w in equation (2) is also used in matrix quantization and vector quantization in the subsequent stage.
[0078]
The calculated weighted distance is a matrix quantizer (MQ1) Sent to 622 for matrix quantization. The 8-bit index output by the matrix quantization is sent to the signal switcher 690. Also, the quantization value obtained by matrix quantization is subtracted from the LSP parameters for two frames from the buffer 610 by the adder 621. The weighted distance calculator 623 calculates the weighted distance using the output from the adder 621. As described above, the weighted distance calculator 623 sequentially calculates the weighted distance every two frames, and the matrix quantizer 622 performs matrix quantization. The quantized value that minimizes the weighted distance is selected. The output from the adder 621 is the second matrix quantization unit 620.2 To the adder 631.
[0079]
Second matrix quantization unit 6202 However, the first matrix quantization unit 6201 In the same manner as described above, matrix quantization is performed. The output from the adder 621 is sent to the weighted distance calculator 633 via the adder 631, and the minimum weighted distance is calculated.
[0080]
This second matrix quantization unit 6202 Distortion scale d during codebook search byMQ2 The first matrix quantization unit 6201 Quantization error X from2 , Quantization value X2(3).
[0081]
[Equation 3]
Figure 0003675054
[0082]
This weighted distance is a matrix quantizer (MQ2) Is sent to 632 for matrix quantization. The 8-bit index output by the matrix quantization is sent to the signal switcher 690. Also, the quantization value obtained by matrix quantization is subtracted from the quantization error for two frames by the adder 631. In the weighted distance calculator 633, weighted distances are sequentially calculated using the output from the adder 631, and a quantized value that minimizes the weighted distance is selected. The output from the adder 631 is the first vector quantization unit 640.1 Are sent frame by frame to the adders 651 and 661.
[0083]
The first vector quantization unit 6401 Then, vector quantization is performed for each frame. The output from the adder 631 is sent to the weighted distance calculators 653 and 663 via the adders 651 and 661 for each frame, and the minimum weighted distance is calculated.
[0084]
Quantization error X2And quantized value X2The difference from 'is a 10x2 matrix,
X2-X2’= [x 3-1,x 3-2]
This first vector quantization unit 640 is expressed as1 Distortion Scale d at Code Book Search by Vector Quantizers 652 and 662VQ1, DVQ2Is expressed by equations (4) and (5).
[0085]
[Expression 4]
Figure 0003675054
[0086]
This weighted distance is a vector quantizer (VQ1652, vector quantizer (VQ)2) Are respectively sent to 662 for vector quantization. Each 8-bit index output by this vector quantization is sent to the signal switcher 690. Also, the quantized values obtained by vector quantization are subtracted from the input two frames worth of quantization error vectors by adders 651 and 661. In the weighted distance calculators 653 and 663, the weighted distance is sequentially calculated using the outputs from the adders 651 and 661, and the quantized value that minimizes the weighted distance is selected. The outputs from the adders 651 and 661 are output from the second vector quantization unit 640.2 To the adders 671 and 681 respectively.
[0087]
here,
x 4-1=x 3-1x3-1
x 4-2=x 3-2x3-2
This second vector quantization unit 640 is expressed as2 Distortion Scale d at Code Book Search by Vector Quantizers 672 and 682VQ3, DVQ4Is expressed by equations (6) and (7).
[0088]
[Equation 5]
Figure 0003675054
[0089]
This weighted distance is a vector quantizer (VQThree672, vector quantizer (VQ)Four) Are respectively sent to 682 for vector quantization. Each 8-bit index output by this vector quantization is sent to the signal switcher 690. Also, the quantized values obtained by vector quantization are subtracted from the input two frames worth of quantization error vectors by adders 671 and 681. The weighted distance calculators 673 and 683 use the outputs from the adders 671 and 681 to sequentially calculate the weighted distance and select a quantized value that minimizes the weighted distance.
[0090]
Further, when learning a code book, learning is performed by a generalized Lloyd algorithm (GLA) based on each of the above distortion measures.
[0091]
Note that the distortion scale at the time of codebook search and at the time of learning may be different values.
[0092]
The 8-bit indexes from the matrix quantizers 622 and 632 and the vector quantizers 652, 662, 672, and 682 are switched by a signal switcher 690 and output from an output terminal 691.
[0093]
Specifically, at the low bit rate, the first matrix quantization unit 620 that performs the first matrix quantization step.1 Second matrix quantization unit 620 that performs the second matrix quantization step2 , And a first vector quantization unit 640 that performs the first vector quantization step1 The second vector quantization unit 640 performs the second vector quantization step on the output at the low bit rate at the time of high bit rate.2 Take out the output at the same time.
[0094]
As a result, an index of 32 bits / 40 msec is output at 2 kbps, and an index of 48 bits / 40 msec is output at 6 kbps.
[0095]
Further, the matrix quantization unit 620 and the vector quantization unit 640 have restrictions in the frequency axis direction or the time axis direction, or in the frequency axis and time axis direction, in accordance with the characteristics of the parameter expressing the LPC coefficient. Perform weighting.
[0096]
First, weighting that is limited in the frequency axis direction according to the characteristics of the LSP parameter will be described. For example, when the order P = 10, the LSP parameter x (i) is defined as three regions, a low region, a middle region, and a high region,
L1= {X (i) | 1 ≦ i ≦ 2}
L2= {X (i) | 3 ≦ i ≦ 6}
LThree= {X (i) | 7 ≦ i ≦ 10}
And group. And each group L1, L2, LThree If the weights of the groups are 1/4, 1/2, 1/4, each group L1, L2, LThree (8), (9), and (10) are weights that are limited only in the frequency axis direction.
[0097]
[Formula 6]
Figure 0003675054
[0098]
Thereby, weighting of each LSP parameter is performed only within each group, and the weight is limited by the weighting for each group.
[0099]
Here, when viewed from the time axis direction, the sum of the weights of each frame is always 1, so the limit in the time axis direction is one frame unit. The weight having a restriction only in the time axis direction is expressed by equation (11).
[0100]
[Expression 7]
Figure 0003675054
[0101]
According to the equation (11), weighting is performed between two frames having frame numbers t = 0 and 1 that are not limited in the frequency axis direction. The weighting that is limited only in the time axis direction is performed between two frames in which matrix quantization is performed.
[0102]
At the time of learning, all voice frames used as learning data, that is, the number of frames T of all data are weighted according to the equation (12).
[0103]
[Equation 8]
Figure 0003675054
[0104]
Further, weighting having restrictions in the frequency axis direction and the time axis direction will be described. For example, when the order P = 10, the LSP parameter x (i, t) is defined as three regions of low, middle, and high regions,
L1= {X (i, t) | 1 ≦ i ≦ 2, 0 ≦ t ≦ 1}
L2= {X (i, t) | 3 ≦ i ≦ 6, 0 ≦ t ≦ 1}
LThree= {X (i, t) | 7 ≦ i ≦ 10, 0 ≦ t ≦ 1}
And group. Each group L1, L2, LThree If the weights of the groups are 1/4, 1/2, 1/4, each group L1, L2, LThree The weights having restrictions in the frequency axis direction and the time axis direction are expressed by equations (13), (14), and (15).
[0105]
[Equation 9]
Figure 0003675054
[0106]
According to the equations (13), (14), and (15), weighting is performed by adding a restriction on weighting between two frames in which the matrix quantization is performed in the time axis direction for every three bands in the frequency axis direction. This is effective both during codebook search and during learning.
[0107]
In learning, the number of frames of all data is weighted. The LSP parameter x (i, t) is defined as three regions: a low region, a mid region, and a high region.
L1 = {X (i, t) | 1 ≦ i ≦ 2, 0 ≦ t ≦ T}
L2 = {X (i, t) | 3 ≦ i ≦ 6, 0 ≦ t ≦ T}
LThree = {X (i, t) | 7 ≦ i ≦ 10, 0 ≦ t ≦ T}
And group L1, L2, LThree If the weights of the groups are 1/4, 1/2, 1/4, each group L1, L2, LThree The weights having restrictions in the frequency axis direction and the time axis direction are expressed by equations (16), (17), and (18).
[0108]
[Expression 10]
Figure 0003675054
[0109]
According to the equations (16), (17), and (18), weighting can be performed for every three bands in the frequency axis direction, and weighting can be performed for all frames in the time axis direction.
[0110]
Further, the matrix quantization unit 620 and the vector quantization unit 640 perform weighting according to the magnitude of the change in the LSP parameter. In the transition part (transient) of V → UV and UV → V, which is a small number of frames in the entire speech frame, the LSP parameter changes greatly due to the difference in frequency characteristics between consonants and vowels. Therefore, by multiplying the above-mentioned weight w ′ (i, t) by the weight shown in the equation (19), weighting that places importance on the transition portion can be performed.
[0111]
## EQU11 ##
Figure 0003675054
[0112]
It is also conceivable to use equation (20) instead of equation (19).
[0113]
[Expression 12]
Figure 0003675054
[0114]
As described above, the LSP quantizer 134 can change the number of bits of the output index by performing two-stage matrix quantization and two-stage vector quantization.
[0115]
Next, FIG. 7 shows the basic configuration of the vector quantization unit 116 in FIGS. 1 and 3, and FIG. 8 shows the more specific configuration of the vector quantization unit in FIG. A specific example of weighted vector quantization of the envelope (Am) will be described.
[0116]
First, in the speech signal encoding device of FIG. 3, a specific example of data number conversion in which the number of data of the amplitude of the spectrum envelope provided on the output side of the spectrum evaluation unit 148 or the input side of the vector quantizer 116 is constant. Will be described.
[0117]
Various methods can be considered for this data number conversion. In the present embodiment, for example, with respect to amplitude data for one effective band on the frequency axis, from the last data in the block to the first in the block. Dummy data that interpolates the values up to the data of the data, or the last data of the block, or predetermined data that repeats the first data is added, and the number of data is NFBand-limited OSBy oversampling twice (for example, 8 times) OSDouble the number of amplitude data, and this OSDouble the number ((mMX+1) × OSNumber of amplitude data) is linearly interpolated and more NMExpanded to 2048 (for example, 2048)MThe data is thinned out and converted into the predetermined number M (for example, 44) of data. Actually, only the data necessary for creating the finally required M data is calculated by oversampling and linear interpolation, and NMNot all data are requested.
[0118]
As shown in FIG. 7, the vector quantizer 116 that performs weighted vector quantization in FIG. 3 includes a first vector quantization unit 500 that performs a first vector quantization step, and the first vector quantization. And a second vector quantization unit 510 that performs a second vector quantization step of quantizing a quantization error vector at the time of the first vector quantization in unit 500. The first vector quantization unit 500 is a so-called first-stage vector quantization unit, and the second vector quantization unit 510 is a so-called second-stage vector quantization unit.
[0119]
The output vector of the spectrum evaluation unit 148 is connected to the input terminal 501 of the first vector quantization unit 500.xThat is, a predetermined number M of envelope data is input. This output vectorxIs weighted vector quantized by the vector quantizer 502. As a result, the shape index output from the vector quantizer 502 is output from the output terminal 503, and the quantized value is also output.x 0'Is output from the output terminal 504 and sent to the adders 505 and 513. In adder 505, the source vectorxQuantized value fromx 0'Is subtracted and the quantization error vectoryIs obtained.
[0120]
This quantization error vectoryIs sent to the vector quantization unit 511 in the second vector quantization unit 510. The vector quantizer 511 is composed of a plurality of vector quantizers. In FIG. 7, two vector quantizers 511 are used.15112Consists of. Quantization error vectoryIs dimensionally divided into two vector quantizers 511.15112Thus, weighted vector quantization is performed. These vector quantizers 51115112The shape index output from the output terminal 51215122Respectively, and the quantized valuey 1’,y 2'Is connected in the dimension direction and sent to the adder 513. In this adder 513, the quantized valuey 1’,y 2'And quantized valuex 0′ And the quantized valuex 1'Is generated. This quantized valuex 1'Is output from the output terminal 514.
[0121]
Thus, when the bit rate is low, the output of the first vector quantization step by the first vector quantization unit 500 is taken out. When the bit rate is high, the output of the first vector quantization step and the output of the first vector quantization step are extracted. The output in the second vector quantization step by the second quantization unit 510 is taken out.
[0122]
Specifically, as shown in FIG. 8, the vector quantizer 502 of the first vector quantizer 500 in the vector quantizer 116 has a two-stage configuration of L dimensions, for example, 44 dimensions.
[0123]
That is, the gain g is added to the sum of output vectors from a vector quantization codebook having a 44-dimensional codebook size of 32.iMultiplied by the 44-dimensional spectral envelope vectorxQuantized value ofx 0Use as'. As shown in FIG. 8, the two shape codebooks are CB0 and CB1, and their output vectors ares 0i,s 1jHowever, 0 ≦ i and j ≦ 31. In addition, the output of the gain codebook CBglHowever, 0 ≦ l ≦ 31. glIs a scalar value. This final outputx 0'Is gi(s 0i+s 1j)
[0124]
For the LPC residual, the spectral envelope Am obtained by the MBE analysis is converted into a fixed dimension.xAnd At this time,xIt is important how to efficiently quantize.
[0125]
Here, the quantization error energy E is
Figure 0003675054
It is defined as In this equation (21),HIs a characteristic on the frequency axis of the LPC synthesis filter,WIs a weighting matrix that represents the characteristics of the auditory weighting on the frequency axis.
[0126]
matrixHIs the α parameter according to the LPC analysis result of the current frame, αi(1 ≦ i ≦ P)
[0127]
[Formula 13]
Figure 0003675054
[0128]
The value of each corresponding point in the L dimension, for example, 44 dimensions, is sampled from the frequency characteristics of.
[0129]
As a calculation procedure, for example, 1, α1, Α2, ..., αpPadded with zeros, ie 1, α1, Α2, ..., αp, 0, 0,..., 0, for example, data of 256 points. Then, 256-point FFT is performed and (re2+ Im2)1/2Is calculated for points corresponding to 0 to π, and the reciprocal thereof is taken. A matrix having diagonal elements that are thinned to L points, for example, 44 points,
[0130]
[Expression 14]
Figure 0003675054
[0131]
And
[0132]
Auditory weighting matrixWIs obtained as follows.
[0133]
[Expression 15]
Figure 0003675054
[0134]
In this equation (23), αiIs an input LPC analysis result. Also, λa and λb are constants, and examples include λa = 0.4 and λb = 0.9.
[0135]
Matrix or matrixWCan be calculated from the frequency characteristic of the above equation (23).
. As an example, 1, α1λb, α2λb2, ..., αpλbp, 0, 0,..., 0 as 256 points of data, and (re2[i] + im2[i])1/2, 0 ≦ i ≦ 128. Next, 1, α1λa, α2λa2 , ..., αpλap , 0, 0,..., 0, the frequency characteristic of the denominator is calculated by 256-point FFT, and the interval from 0 to π is calculated by 128 points. This (re '2[i] + im '2[i])1/2, 0 ≦ i ≦ 128.
[0136]
[Expression 16]
Figure 0003675054
[0137]
As described above, the frequency characteristic of the above equation (23) is obtained.
[0138]
This is obtained by the following method for points corresponding to L-dimensional, for example, 44-dimensional vectors. More precisely, linear interpolation should be used, but in the following example, the value of the nearest point is substituted.
[0139]
That is,
ω [i] = ω0[Nint (128i / L)] 1 ≦ i ≦ L
However, nint (X) is a function that returns the integer closest to X
It is.
[0140]
Also, aboveHIn the same way, h (1), h (2),..., H (L) are obtained by the same method. That is,
[0141]
[Expression 17]
Figure 0003675054
[0142]
It becomes.
[0143]
Here, as another example, in order to reduce the number of FFTs, the frequency characteristics may be obtained after obtaining H (z) W (z) first. That is,
[0144]
[Expression 18]
Figure 0003675054
[0145]
The result of expanding the denominator of equation (25) is
[0146]
[Equation 19]
Figure 0003675054
[0147]
And Where 1, β1, Β2, ..., β2p, 0, 0,..., 0, for example, data of 256 points. After that, 256-point FFT is performed, and the frequency characteristics of the amplitude are
[0148]
[Expression 20]
Figure 0003675054
[0149]
And Than this,
[0150]
[Expression 21]
Figure 0003675054
[0151]
This is obtained for the corresponding point of the L-dimensional vector. If the number of FFT points is small, it should be obtained by linear interpolation, but the nearest value is used here. That is,
[0152]
[Expression 22]
Figure 0003675054
[0153]
It is. A matrix with this diagonal elementW
[0154]
[Expression 23]
Figure 0003675054
[0155]
It becomes. Equation (26) is the same matrix as equation (24) above.
[0156]
Alternatively, a value obtained by calculating | H (exp (jω)) W (exp (jω)) | with respect to ω = iπ / L (where 1 ≦ i ≦ L) is directly used for wh [i] from equation (25). May be. Alternatively, the impulse response of the formula (25) may be obtained by obtaining an appropriate length (for example, 40 points) and performing FFT using the impulse response to obtain the amplitude frequency characteristic.
[0157]
Using this matrix, that is, the frequency characteristic of the weighted synthesis filter, rewriting the above equation (21),
[0158]
[Expression 24]
Figure 0003675054
[0159]
It becomes.
[0160]
Here, a learning method of the shape code book and the gain code book will be described.
[0161]
First, the code vector for CB0s 0cMinimize the expected distortion value for all frames k. Given that there are M such frames,
[0162]
[Expression 25]
Figure 0003675054
[0163]
Should be minimized. In this equation (28),W k'Is the weight for the kth frame,x kIs the input of the kth frame, gkIs the gain of the kth frame,s 1kIndicates the output from the code book CB1 for the kth frame, respectively.
[0164]
To minimize this equation (28):
[0165]
[Equation 26]
Figure 0003675054
[0166]
[Expression 27]
Figure 0003675054
[0167]
Next, optimization regarding gain is considered.
[0168]
Gain codeword gcThe expected value J of the distortion for the kth frame selectinggIs
[0169]
[Expression 28]
Figure 0003675054
[0170]
Equations (31) and (32) above are shapess 0i,s 1jAnd gain gl, 0≤i≤31, 0≤j≤31, 0≤l≤31, that is, an optimum centroid condition (Centroid Condition), that is, an optimum decoder output. In addition,s 1jAlso abouts 0iIt can be obtained in the same way.
[0171]
Next, the optimum encoding condition (Nearest Neighbor Condition) is considered.
[0172]
The above equation (27) for obtaining a distortion measure, that is,
E = ‖W'(x-Gl(s 0i+s 1j)) ‖2
Minimizes 0i,s 1jEnterx, Weight matrixWIt is determined every time 'is given, that is, every frame.
[0173]
Such a codebook search is essentially omnibus all gl (0 ≦ l ≦ 31),s 0i(0 ≦ i ≦ 31),s 1jE is obtained for 32 × 32 × 32 = 32768 combinations of (0 ≦ j ≦ 31), and the minimum E is obtained gl ,s 0i,s 1jIn this embodiment, the shape and gain sequential search is performed. In addition,s 0iWhens 1jA brute force search is performed for the combination. This is 32 × 32 = 1024. In the following description, for simplicity,s 0i+s 1jThes m.
[0174]
The above equation (27) is given by E = ‖W'(x-Gl s m) ‖2  It becomes. For even easier,x w=W'x,s w=W's mThen,
[0175]
[Expression 29]
Figure 0003675054
[0176]
It becomes. Therefore, gl Assuming that the accuracy of
[0177]
[30]
Figure 0003675054
[0178]
The search can be divided into two steps. When rewritten using the original notation,
[0179]
[31]
Figure 0003675054
[0180]
It becomes. This equation (35) is the optimum encoding condition (Nearest Neighbor Condition).
[0181]
Next, the amount of calculation when performing such a vector quantization codebook search (codebook search) will be further considered.
[0182]
First, the calculation amount of (1) 'in the above equation (35) iss 0ias well ass 1jDimension is K and codebooks CB0 and CB1 are L0, L1I.e.
0 ≦ i <L0, 0 ≦ j <L1
Assuming that the numerator addition, product sum, and square operation amounts are 1, respectively, the denominator product and product sum operation amounts are 1, respectively,
Molecule: L0・ L1・ {K ・ (1 + 1) +1}
Denominator: L0・ L1・ K ・ (1 + 1)
Size comparison: L0・ L1
And total L0・ L1(4K + 2). Where L0= L1Assuming = 32 and K = 44, the amount of computation is on the order of about 18272.
[0183]
Therefore, without executing all the operations of (1) 'in the above equation (35),s 0ias well ass 1jPreliminary selection (pre-selection) is performed for each P. Here, since negative gain entry is not considered (not allowed), the value of the numerator of (2) ′ in the above equation (35) is always a positive number, so that the above equation (35) (1) Search for '. That is,x t W't W'(s 0i+s 1j) (1) 'in the above equation (35) is maximized with the polarity included.
[0184]
A specific example of such a preliminary selection method will be described.
(Procedure 1)x t W't W's 0iMaximizes 0iP from the top0 Select
(Procedure 2)x t W't W's 1jMaximizes 1iP from the top1 Select
(Procedure 3) These P0Piecess 0iAnd P1Piecess 1j(1) 'in the above formula (35) is evaluated for all combinations of
The method is mentioned.
[0185]
This is the square root of the expression (1) 'in the expression (35).
[0186]
[Expression 32]
Figure 0003675054
[0187]
In the evaluation ofs 0i+s 1jThis is effective when the assumption that the weighted norm is substantially constant regardless of i and j is valid. Actually, the size of the denominator of the above equation (a1) is not constant, but a preliminary selection method considering this will be described later.
[0188]
Here, the effect of reducing the amount of calculation when the denominator of the equation (a1) is assumed to be constant will be described. L for the above search (procedure 1)0・ Computation amount of K is required.
(L0−1) + (L0-2) + ... + (L0-P0)
= P0・ L0 -P0(1 + P0) / 2
Therefore, the calculation amount is calculated as L0(K + P0-P0(1 + P0) / 2. In addition, the same amount of processing is also required in the above (procedure 2), and by adding these, the amount of arithmetic processing for preliminary selection is
L0(K + P0) + L1(K + P1) −P0(1 + P0) / 2−P1(1 + P1) / 2
It becomes.
[0189]
Further, regarding the main selection process in the above (procedure 3), regarding the calculation of (1) 'in the above expression (35),
Molecule: P0・ P1・ (1 + K + 1)
Denominator: P0・ P1・ K ・ (1 + 1)
Size comparison: P0・ P1
And total P0・ P1(3K + 3).
[0190]
For example, P0= P1= 6, L0= L1Assuming = 32 and K = 44, the amount of calculation is 4860 for the main selection and 3158 for the preliminary selection, which is about 8018 in total. Also, increase the number of preliminary selections to 10 each and increase P0= P1Even if = 10, 13500 is selected for the main selection and 3346 is set for the preliminary selection.
[0191]
In this way, even when the number of vectors to be preliminarily selected is 10 for each codebook, as compared with 182272 in the case of calculating all the above,
16846/182272
Therefore, the amount of calculation can be suppressed to about 1/10 or less of the original.
[0192]
By the way, the size of the denominator of the equation (1) ′ in the equation (35) is not constant and varies depending on the selected code vector. Therefore, a preliminary selection (pre-selection) method in consideration of the approximate size of the norm to some extent will be described below.
[0193]
When obtaining the maximum value of the equation (a1), which is the square root of the equation (1) ′ of the equation (35),
[0194]
[Expression 33]
Figure 0003675054
[0195]
In view of this, the left side of the equation (a2) may be maximized. So this left side
[0196]
[Expression 34]
Figure 0003675054
[0197]
The first term and the second term of the equation (a3) are maximized.
[0198]
The numerator of the first term of the above formula (a3) iss 0iOnly functions,s 0iThink about maximizing. The numerator of the second term of the above formula (a3) iss 1jOnly functions,s 1jThink about maximizing. That is,
[0199]
[Expression 35]
Figure 0003675054
[0200]
In
(Procedure 1) Q from the top of the one that maximizes the above expression (a4)0 Piecess 0ichoose
(Procedure 2) Q from the top of the one that maximizes the above expression (a5)1 Piecess 1jchoose
(Procedure 3) Selected Q0Piecess 0iAnd Q1Piecess 1j(1) 'in the above formula (35) is evaluated for all combinations of
The method is mentioned.
[0201]
In addition,W’=WH/ ‖xWAlsoHAlso input vectorxOf course, of courseW’Is also an input vectorxIs a function of
[0202]
Therefore, originally the input vectorxEveryW′ Should be calculated and the denominators of the above formulas (a4) and (a5) should be calculated. So, these denominators are typical, ie typicalWEach value in advance using the value of 's 0i,s 1jThe value calculated fors 0i,s 1jAnd store it in a table. Note that dividing by actual search operation is a heavy process,
[0203]
[Expression 36]
Figure 0003675054
[0204]
(A6) and (a7) are stored. here,W * Is shown in the following equation (a8).
[0205]
[Expression 37]
Figure 0003675054
[0206]
FIG. 9 shows the aboveW * Is a specific example of each of W [0] to W [43] when described by the following equation (a10).
[0207]
[Formula 38]
Figure 0003675054
[0208]
For the molecules of the above formulas (a4) and (a5),W'Is the input vectorxCalculate and use every time. This is anyways 0i,s 1jWhenxBecause we have to calculate the inner product withx t W't WConsidering the fact that once the 'is calculated, the increase in the amount of computation is negligible.
[0209]
When an outline of the calculation amount required for such a preliminary selection method is estimated, in the search of (procedure 1), L0(K + 1) requires a large amount of computation.
Q0・ L0 -Q0(1 + Q0) / 2
Cost. In addition, the same amount of processing is also required in the above (procedure 2), and by adding these, the amount of arithmetic processing for preliminary selection is
L0(K + Q0+1) + L1(K + Q1+1) -Q0(1 + Q0) / 2−Q1(1 + Q1) / 2
It becomes.
[0210]
Further, regarding the main selection process in the above (procedure 3), regarding the calculation of (1) 'in the above expression (35),
Molecule: Q0・ Q1・ (1 + K + 1)
Denominator: Q0・ Q1・ K ・ (1 + 1)
Size comparison: Q0・ Q1
And total Q0・ Q1(3K + 3).
[0211]
For example, Q0= Q1= 6, L0= L1Assuming that = 32 and K = 44, the amount of calculation is 4860 for the main selection and 3222 for the preliminary selection, which is about 8082 orders. Also, increase the number of preliminary selections to 10 each,0= Q1= 10 is 13500 for the main selection and 3410 for the preliminary selection, which is on the order of 16910.
[0212]
These calculation results are obtained when the above-mentioned weighted norm does not interrupt (no normalization).0= P1The order of 8018 in total when P = 6 and P0= P1The value is almost the same as the order of 16846 when = 10, and even if the number of vectors to be preselected is 10 for each codebook, it is compared with 18272 for the case of calculating all of the above. And
16910/182272
Therefore, the amount of calculation can be suppressed to about 1/10 or less of the original.
[0213]
Specific examples of the SNR (SN ratio) when the preliminary selection is performed and the segmental SNR at the time of the 20 msec segment are based on the voice analyzed and synthesized without performing the preliminary selection as described above. P without normalization0= P1SNR when 1 = 6: 14.8 (dB), compared with segmental SNR: 17.5 (dB), with the same number of preliminary selections, with normalization, without weight, SNR: 16.8 (dB), Segmental SNR: 18.7 (dB). When weighted normalization is present, SNR: 17.8 (dB) and segmental SNR: 19.6 (dB). As described above, the SNR and the segmental SNR are improved by 2 to 3 dB by changing from normalization to weighted normalization.
[0214]
Here, the LBG (Linde-Buzo-Gray) algorithm, the so-called Generalized Lloyd Algorithm (GLA), is used by using the conditions (Centroid Condition) and the conditions (35). ) Can simultaneously train the codebooks (CB0, CB1, CBg).
[0215]
In this embodiment,WInput asxInterrupted by the norm ofW'Is used. That is, in the above equations (31), (32), (35)WToW’/ ‖xSubstitutes 使用 for use.
[0216]
Alternatively, a weight used for auditory weighting in vector quantization by the vector quantizer 116W′ Is defined by the above equation (26).W'WConsidering temporal masking by finding 'W'May be obtained.
[0217]
With respect to wh (1), wh (2),..., Wh (L) in the above equation (26), the values calculated at time n, that is, the nth frame, aren(1), whn(2), ..., whn(L).
[0218]
A weight that takes into account past values at time nn(i) When defined as 1 ≦ i ≦ L,
[0219]
[39]
Figure 0003675054
[0220]
And Here, λ may be, for example, λ = 0.2. A obtained in this wayn(i) For 1 ≦ i ≦ L, a matrix having this as a diagonal element may be used as the weight.
[0221]
The shape index obtained by weighted vector quantization in this ways 0i,s 1jAre output from the output terminals 520 and 522, respectively, and the gain index gl Is output from the output terminal 521. Also, the quantized valuex 0'Is output from the output terminal 504 and sent to the adder 505.
[0222]
In this adder 505, the spectral envelope vectorxQuantized value fromx 0'Is subtracted and the quantization error vectoryIs generated. This quantization error vectorySpecifically, eight vector quantizers 5111~ 5118Are sent to the vector quantizer 511 and divided into dimensions, and each vector quantizer 5111~ 5118The weighted vector quantization is applied.
[0223]
Since the second vector quantization unit 510 uses a considerably larger number of bits than the first vector quantization unit 500, the memory capacity of the code book and the complexity for code book search are reduced. It becomes very large and it is impossible to perform vector quantization while maintaining the same 44 dimensions as the first vector quantization unit 500. Therefore, the vector quantization unit 511 in the second vector quantization unit 510 is composed of a plurality of vector quantizers, and the input quantized values are dimensionally divided to obtain a plurality of low-dimensional vectors as weights. Perform vector quantization with
[0224]
Vector quantizer 5111~ 5118Quantization values used iny 0~y 7Table 2 shows the relationship between the number of dimensions and the number of bits.
[0225]
[Table 2]
Figure 0003675054
[0226]
Vector quantizer 5111~ 5118Index Idvq output from0~ Idvq7Are each output terminal 523.1~ 5238Are output respectively. The sum of these indexes is 72 bits.
[0227]
Also, the vector quantizer 5111~ 5118Quantized value output fromy 0’~y 7The value obtained by connecting 'in the dimension directiony′, The adder 513 uses the quantized value.y'And quantized valuex 0′ And the quantized valuex 1'Is obtained. Therefore, this quantized valuex 1'
Figure 0003675054
It is represented by That is, the final quantization error vector isy'-yIt becomes.
[0228]
On the speech signal decoding device side, the quantized value from the second vector quantizing unit 510 isx 1′ Is decoded, the quantized value from the first vector quantization unit 500 isx 0′ Is unnecessary, but the indexes from the first vector quantization unit 500 and the second vector quantization unit 510 are necessary.
[0229]
Next, the learning method and code book search in the vector quantization unit 511 will be described.
[0230]
First, in the learning method, the quantization error vectoryAnd the weight w ', as shown in Table 2, eight low-dimensional vectorsy 0~y 7And divided into matrices. At this time, weightW'Is a matrix whose diagonal elements are thinned to 44 points, for example,
[0231]
[Formula 40]
Figure 0003675054
[0232]
Then, it is divided into the following eight matrices.
[0233]
[Expression 41]
Figure 0003675054
[0234]
in this way,yas well asWEach of the subdivisions of ‘
y i,W i′ (1 ≦ i ≦ 8)
And
[0235]
Here, the distortion scale E is
E = ‖W i'(y is) ‖2  ... (37)
It is defined as This code vectorsIsy iCodebook code vector that minimizes the distortion measure EsIs searched.
[0236]
still,W i'May be weighted at the time of learning, not weighted at the time of search, that is, a unit matrix, and different values may be used at the time of learning and at the time of codebook search.
[0237]
In the learning of the code book, a generalized Lloyd algorithm (GLA) is used for further weighting. First, the optimal centroid condition for learning will be described. Code vectorsThe input vector chosen as the optimal quantization resultyTraining data when there are My k Then, the expected value J of the distortion is an equation (38) that minimizes the center of distortion at the time of weighting for all frames k.
[0238]
[Expression 42]
Figure 0003675054
[0239]
Shown by equation (39) abovesIs the optimal representative vector and the optimal centroid condition.
[0240]
The optimal encoding condition isW i'(y is) ‖2  Minimize the value ofsCan be searched. Here at the time of searchW i'Is not necessarily the same as when learningW iNeed not be 'no weight'
[0241]
[Equation 43]
Figure 0003675054
[0242]
It is good also as a matrix of.
[0243]
In this way, by configuring the vector quantization unit 116 in the speech signal encoding apparatus from a two-stage vector quantization unit, the number of bits of the output index can be made variable.
[0244]
By the way, as described above, the number of harmonic spectrum data obtained in the spectrum envelope evaluation unit 148 changes according to the pitch, and when the effective band is 3400 kHz, for example, any number of data from 8 to about 63 is available. It becomes. A vector that blocks these data togethervIs a variable-dimensional vector, and in the above example, a fixed number of data, for example, a 44-dimensional fixed-dimensional input vector, before vector quantizationxDimension conversion is done. This variable / fixed dimension conversion is the above-described number-of-data conversion, and specifically can be realized by using, for example, oversampling and linear interpolation as described above.
[0245]
Vector converted to such a fixed dimensionxIf you perform a codebook search that minimizes the error by calculating the error for, the original variable dimension vectorvA code vector that minimizes an error with respect to is not necessarily selected.
[0246]
Therefore, in the present embodiment, a plurality of code vectors are selected using the code vector selection in the fixed dimension as a provisional selection, and the final optimum in the variable dimension is selected for the plurality of provisionally selected code vectors. The code vector is selected. Note that only the selection process in the variable dimension may be performed without performing the temporary selection in the fixed dimension.
[0247]
FIG. 10 shows an example of a configuration for performing such an optimal vector selection in the original variable dimension. A terminal 541 has a variable number of data of the spectrum envelope obtained by the spectrum envelope evaluation unit 148, Ie variable dimensional vectorvIs entered. This variable-dimensional input vectorvIs a fixed-dimension (44-dimension) vector composed of a fixed number of, for example, 44 pieces of data by the variable / fixed-dimension conversion circuit 542 which is the data number conversion circuit described above.xAnd sent to the terminal 501. This fixed-dimensional input vectorxAnd a fixed-dimensional code vector read from the fixed-dimensional codebook (codebook) 530 is sent to the fixed-dimensional selection circuit 535, and a code that minimizes a weighted error or distortion between them is sent. A selection process for selecting a vector from the codebook 530 or a codebook search is performed.
[0248]
Further, in the example of FIG. 10, the fixed dimension code vector obtained from the fixed dimension codebook 530 is converted into the original variable dimension input vector by the fixed / variable dimension conversion circuit 544.vTo the same variable dimension, and the code vector converted to the variable dimension is sent to the variable dimension selection circuit 545, and the input vectorvA selection process or a code book search is performed such that a weighted distortion between the codebook 530 and the code vector that minimizes the distortion is selected from the codebook 530.
[0249]
That is, the fixed-dimension selection circuit 535 selects several code vectors as candidates for minimizing the weighted distortion as provisional selection, and the variable-dimension selection circuit 545 selects the weighted distortion for these candidates. A code vector that minimizes distortion is selected by calculation.
[0250]
The application range for vector quantization using temporary selection and main selection in this case will be briefly described. This vector quantization includes harmonic coding, harmonic coding of LPC residual, MBE (multiband excitation) coding as disclosed in Japanese Patent Application No. 4-91422 previously proposed by the applicant and the drawings, LPC Not only can this be applied to weighted vector quantization of variable-dimension harmonics using band-limited dimension transformation for the harmonic spectrum in residual MBE coding, etc., but the input vector dimensions are variable. Thus, the present invention can be applied to all cases where vector quantization is performed using a fixed-dimensional codebook.
[0251]
As the above temporary selection, a part of the multi-stage quantizer configuration is selected, or in the case of a codebook composed of a shape codebook and a gain codebook, only the shape codebook is searched by temporary selection. For example, it may be determined by strain calculation in a variable dimension. In addition, for this temporary selection, the preliminary selection described above, that is, a fixed-dimensional vector.xAnd calculating a similarity between all code vectors stored in the codebook by approximation calculation (approximation calculation of weighted distortion) and selecting a plurality of code vectors having high similarity. In this case, the temporary selection in the fixed dimension may be used as the preliminary selection, and the main selection may be performed so as to minimize the weighted distortion in the variable dimension for the preselected candidate code vector. In this step, not only the preliminary selection but also narrowing down by high-precision distortion calculation may be further performed, and then the main selection may be made.
[0252]
Hereinafter, a specific example of vector quantization using such provisional selection and main selection will be described with reference to the drawings.
[0253]
In FIG. 10, the code book 530 includes a shape code book 531 and a gain code book 532, and the shape code book 531 further includes two code books CB0 and CB1. Output code vectors from these shape codebooks CB0 and CB1 respectivelys 0,s 1And the gain of the gain circuit 533 determined by the gain code book 532 is g. Variable dimensional input vector from input terminal 541vIs converted by a variable / fixed dimension conversion circuit 542 (this is converted to D1 And a fixed-dimensional vector via the terminal 501xIs sent to the subtracter 536 of the selection circuit 535, the difference from the fixed-dimensional code vector read from the codebook 530 is taken, weighted by the weighting circuit 537, and sent to the error minimizing circuit 538. The weight in the weighting circuit 537 isW'. In addition, a fixed dimension code vector read from the codebook 530 is used.
Toll is converted by a fixed / variable dimension conversion circuit 544 (this is converted to D2 And is sent to the subtracter 546 of the variable dimension selection circuit 545 to input the variable dimension input vector.vIs weighted by the weighting circuit 547 and sent to the error minimizing circuit 548. The weight in the weighting circuit 547 isW v And
[0254]
Here, the error of the error minimizing circuits 538 and 548 is the distortion or the distortion scale, and the reduction of the error, that is, the distortion corresponds to the increase of the similarity or the correlation.
[0255]
In the selection circuit 535 that performs the provisional selection in a fixed dimension, as in the description of the equation (27),
E1 = ‖W'(x-G (s 0+s 1)) ‖2         ... (b1)
The distortion scale E1 Minimizes 0,s 1, G. Here, the weight in the weighting circuit 537W'
W'=WH/ ‖x・ ・ ・ (B2)
AndHIs a matrix with the frequency response characteristics of the LPC synthesis filter as diagonal elements, andWIndicates a matrix having the frequency response characteristics of the auditory weighting filter as diagonal elements.
[0256]
First, the distortion scale E of the above formula (b1)1 Minimizes 0,s 1, G. here,s 0,s 1, G is the distortion scale E1 In order of decreasing the size, take L sets from the top (temporary selection in a fixed dimension),s 0,s 1, G
E2 = ‖W v(v-D2g (s 0+s 1)) ‖2      ... (b3)
Minimizes 0,s 1, G is the optimum code vector, and final selection is performed in a variable dimension.
[0257]
The search and learning for the above equation (b1) are as described below for the equation (27).
[0258]
Hereinafter, a centroid condition for codebook learning based on the above equation (b3) will be described.
[0259]
A code vector for a code book CB0 that is one of the shape code books 531 in the code book 530s 0 For all frames k selecting, the expected distortion value is minimized. Given that there are M such frames,
[0260]
(44)
Figure 0003675054
[0261]
Should be minimized. In order to minimize the equation (b4),
[0262]
[Equation 45]
Figure 0003675054
[0263]
Solve
[0264]
[Equation 46]
Figure 0003675054
[0265]
It becomes. In this equation (b6), {}-1Is the inverse matrix,W vk T IsW vkEach transpose matrix is shown. This equation (b6) is the shape vectors 0 Is the optimal centroid condition.
[0266]
Next, the code vector for another code book CB1 of the shape code book 531 in the code book 530s 1 Since the same applies to the case of selecting, the description is omitted.
[0267]
Next, consider the centroid condition for the gain g from the gain codebook 532 in the codebook 530.
[0268]
Gain codeword gcThe expected distortion value J for the kth frame for selectinggIs
[0269]
[Equation 47]
Figure 0003675054
[0270]
In order to minimize the equation (b7),
[0271]
[Formula 48]
Figure 0003675054
[0272]
Solve
[0273]
[Formula 49]
Figure 0003675054
[0274]
This is the gain centroid condition.
[0275]
Next, the optimum encoding condition based on the above equation (b3) will be considered.
You must search with the above formula (b3)s 0,s 1, G are limited to L sets by provisional selection in the fixed dimension, so the above equation (b3)s 0,s 1, G directly and strain E2 Minimizes 0,s 1, G may be selected as the optimum code vector.
[0276]
Here, if the temporary selection L is very large, or if the temporary selection is not performed,s 0,s 1, G, a method for sequential search of shapes and gains that are valid will be described.
[0277]
Each of the above formulas (b3)s 0,s 1, G to which i, j, and l are added respectively,
E2 = ‖W v(v-D2gl(s 0i+s 1j)) ‖2   ... (b10)
It becomes. G to minimize thisl,s 0i,s 1j Can be searched in a brute force manner. For example, if 0 ≦ l <32, 0 ≦ i <32, and 0 ≦ j <32, then 32Three Therefore, the above equation (b10) is calculated for 32768 patterns, resulting in a huge amount of calculation. Therefore, a method for sequentially searching for shapes and gains will be described.
[0278]
First, shape code vectors 0i,s 1jAnd then gain gl To decide.s 0i+s 1j=s m The above equation (b10) is
E2 = ‖W v(v-D2gl s m) ‖2            ... (b11)
In addition,v w=W v v,s w=W vD2 s mThen, the equation (b11) is
[0279]
[Equation 50]
Figure 0003675054
[0280]
It becomes. Therefore, gl If the accuracy of
[0281]
[Formula 51]
Figure 0003675054
[0282]
When the original variables are substituted and rewritten, the following equations (b15) and (b16) are obtained.
[0283]
[Formula 52]
Figure 0003675054
[0284]
Using the shape and gain centroid conditions of the above expressions (b6) and (b9) and the optimum encoding condition (Nearest Neighbor Condition) of the above expressions (b15) and (b16), a generalized Lloyd algorithm: The code book (CB0, CB1, CBg) can be learned simultaneously by GLA).
[0285]
The learning method using these equations (b6), (b9), (b15), and (b16) is the description of the equation (27) and below, particularly the above (31), (32), (35). Compared to the method using an expression, the original input vectorvIt is excellent in that the distortion after the conversion to the variable dimension is minimized.
[0286]
However, since the operations of the above equations (b6) and (b9), particularly the equation (b6) are complicated, for example, only the optimum encoding conditions of the above equations (b15) and (b16) are used, and the centroid condition is You may use what is derived from optimization of a formula (27) (namely, (b1) formula).
[0287]
Alternatively, there is a method in which the codebook learning is all performed by the method described in the following description of the equation (27) and the above equations (b15) and (b16) are used only during the search. Further, the provisional selection in the fixed dimension is performed by the method described in the following description of the equation (27), and the search is performed by directly evaluating the equation (b3) only for a plurality (L) of selected groups. You may make it perform.
[0288]
In any case, the code vector search or learning with less distortion can be finally performed by using the search based on the distortion evaluation of the above formula (b3) after the tentative selection or brute force. It becomes.
[0289]
Where the original input vectorvThe reason why it is preferable to perform the strain calculation with the same variable dimension will be briefly described.
[0290]
If the distortion minimization in the fixed dimension and the distortion minimization in the variable dimension coincide with each other, it is not necessary to minimize the distortion in the variable dimension, but the dimension in the fixed / variable dimension conversion circuit 544 Conversion D2 Since these are not orthogonal matrices, these distortion minimizations do not match. For this reason, minimizing distortion in the fixed dimension does not necessarily minimize distortion optimally in the variable dimension, and in order to optimize the finally obtained variable dimension vector, This is because optimization in a variable dimension is required.
[0291]
Next, FIG. 11 shows an example in which the gain when dividing the codebook (code book) into a shape code book and a gain code book is a variable dimension gain and is optimized in a variable dimension.
[0292]
That is, the fixed-dimensional code vector read from the shape codebook 531 is sent to the fixed / variable dimension conversion circuit 544 to convert it into a variable-dimensional vector, and then sent to the gain circuit 533. The variable dimension selection circuit 545 includes a variable dimension code vector from the gain circuit 533 and the input vector.vBased on the above, the optimum gain in the gain circuit 533 for the code vector subjected to fixed / variable dimension conversion may be selected. Alternatively, the input vector to the gain circuit 533 and the above input vectorvThe optimal gain may be selected based on the inner product of. Other configurations and operations are the same as those in the example of FIG.
[0293]
As for the shape code book 531, a single code vector may be selected at the time of selection in the fixed dimension in the selection circuit 535, and only the gain may be selected in the variable dimension.
[0294]
In this way, the code vector converted by the fixed / variable dimension conversion circuit 544 is configured to multiply the code vector by gain so that the code vector multiplied by the gain as shown in FIG. 10 is fixed / variable dimension converted. Compared to the above, the optimum gain can be selected in consideration of the influence of fixed / variable dimension conversion.
[0295]
Next, another specific example of vector quantization that combines the temporary selection in the fixed dimension and the main selection in the variable dimension will be described.
[0296]
In the following specific example, the fixed-dimension first code vector read from the first codebook is converted into the variable dimension of the input vector, and the fixed-dimension second code read from the second codebook is converted. Is added to the fixed / variable-dimensional-converted variable-dimensional first code vector, and an optimum code vector that minimizes an error from the input vector is obtained for the added code vector obtained by the addition. The selection is made from at least the second codebook.
[0297]
For example, in the example of FIG. 12, the first code vector of the fixed dimension read from the first codebook (codebook) CB0.s 0 Is sent to the fixed / variable dimension conversion circuit 544 and the input vector at the terminal 541vThe second code vector of a fixed dimension that is converted into a variable dimension equal to, and read from the second codebook CB1s 1 Is sent to the adder 549, added to the variable dimension code vector from the fixed / variable dimension conversion circuit 544, and the addition code vector obtained by the addition by the adder 549 is sent to the selection circuit 545. 545, the addition vector from the adder 549 and the input vectorvThe optimal code vector that minimizes the error is selected. Here, the code vector from the second codebook (codebook) CB1 is applied from the lower harmonic side of the input spectrum to the dimension of the codebook CB1. The gain circuit 533 for gain g is provided only between the first codebook CB0 and the fixed / variable dimension conversion circuit 544. Since other configurations are the same as those in FIG. 10, the same reference numerals are assigned to the corresponding portions, and descriptions thereof are omitted.
[0298]
As described above, the fixed / variable dimension conversion is performed by adding the code vector in the fixed dimension from the code book CB1 to the code vector read from the code book CB0 and converted to the variable dimension. Can be reduced by a fixed-dimensional code vector from the code book CB1.
[0299]
The distortion E calculated by the variable dimension selection circuit 545 of FIG.Three Is
EThree = ‖W v(v-(D2gs 0+s 1)) ‖2   ... (b17)
It becomes.
[0300]
Next, in the example of FIG. 13, the gain circuit 533 is arranged on the output side of the adder 549. Therefore, with respect to the addition result of the code vector read from the first codebook CB0 and converted to the variable dimension by the fixed / variable dimension conversion circuit 544, and the code vector read from the second codebook CB1. Gain g is multiplied. This is because there is a strong correlation between the gain to be multiplied by the code vector from CB0 and the gain to be multiplied by the code vector from the code book CB1 for the correction (quantization error quantization). ing. The distortion E calculated by the selection circuit 545 shown in FIG.Four Is
EFour = ‖W v(v-G (D2 s 0+s 1)) ‖2   ... (b18)
It becomes. The other configuration of the example of FIG. 13 is the same as that of the example of FIG.
[0301]
Next, in the example of FIG. 14, the gain circuit 533 for gain g is provided on the output side of the first codebook CB0 in the example of FIG.0 And a gain circuit 533 having a gain g on the output side of the second codebook CB1.1 Is provided. The distortion calculated by the selection circuit 545 shown in FIG. 14 is the same as that shown in FIG.Four It becomes. The other configuration of the example of FIG. 14 is the same as that of the example of FIG.
[0302]
Next, FIG. 15 shows an example in which the first codebook of FIG. 12 is composed of two shape codebooks CB0 and CB1, and each code vector from these shape codebooks CB0 and CB1.s 0,s 1Are added, multiplied by the gain g by the gain circuit 533, and sent to the fixed / variable dimension conversion circuit 544. The variable dimension code vector from the fixed / variable dimension conversion circuit 544 and the code vector from the second codebook CB2s 2 Are added by the adder 549 and sent to the selection circuit 545. The distortion E calculated by the selection circuit 545 in FIG.Five Is
EFive = ‖W v(v-(GD2(s 0+s 1) + S2)) ‖2  ... (b19)
It becomes. The other configuration of the example of FIG. 15 is the same as that of the example of FIG.
[0303]
Here, the search method in the equation (b18) will be described.
First, as a first search method,
EFour'= ‖W'(x-Gl s 0i)) ‖2              ... (b20)
Minimizes 0i, Gl Search for
EFour = ‖W v(v-Gl(D2 s 0i+s 1j)) ‖2    ... (b21)
Minimizes 1jSearch.
[0304]
As a second search method,
[0305]
[53]
Figure 0003675054
[0306]
Is mentioned.
[0307]
As a third search method,
[0308]
[Formula 54]
Figure 0003675054
[0309]
Is mentioned.
[0310]
Next, the centroid condition of the equation (b20) of the first search method will be described. Above code vectors 0iThe centroids 0cAnd when
[0311]
[Expression 55]
Figure 0003675054
[0312]
Minimize. To minimize this,
[0313]
[Expression 56]
Figure 0003675054
[0314]
Solve
[0315]
[Equation 57]
Figure 0003675054
[0316]
Is obtained. Similarly, centroid g of gain gc For the above equation (b20),
[0317]
[Formula 58]
Figure 0003675054
[0318]
[Formula 59]
Figure 0003675054
[0319]
Solve
[0320]
[Expression 60]
Figure 0003675054
[0321]
In addition, as a centroid condition of the equation (b21) of the first search method, a vectors 1jCentroid ofs 1cabout,
[0322]
[Equation 61]
Figure 0003675054
[0323]
[62]
Figure 0003675054
[0324]
Solve
[0325]
[Equation 63]
Figure 0003675054
[0326]
Is obtained. From the above equation (b21), the code vectors 0iCentroid ofs 0cAsk for
[0327]
[Expression 64]
Figure 0003675054
[0328]
[Equation 65]
Figure 0003675054
[0329]
[66]
Figure 0003675054
[0330]
Is obtained. Similarly, from the above equation (b21), the centroid g of the gain gc Ask for
[0331]
[Expression 67]
Figure 0003675054
[0332]
Is obtained.
[0333]
The code vector according to the above equation (b20)s 0iCentroid ofs 0cThe calculation method for the centroid g of the gain g is expressed by the equation (b30).c The calculation method is shown in equation (b33). In addition, as a centroid calculation method based on the above equation (b21), a code vectors 1jCentroid ofs 1cTo the expression (b36)s 0iCentroid ofs 0cTo the formula (b39) and the centroid g of gain gc Is shown in the formula (b40).
[0334]
In the learning of the code book by the actual generalized Lloyd algorithm (GLA), the above equations (b30), (b36), and (b40) are used as centroid conditions.s 0,s 1, G at the same time. As a search method (Nearest Neighbor Condition), for example, the above formulas (b22), (b23), and (b24) may be used. In addition, of course, combinations of centroid conditions such as the above formulas (b30), (b33), (b36), or the above formulas (b39), (b36), and (b40) are possible. is there.
[0335]
Next, a search method in the case of the distortion scale of the equation (b17) corresponding to FIG. 12 will be described. In this case,
EThree'= ‖W'(x-Gl s 0i)) ‖2             ... (b41)
Minimizes 0i, Gl Search for
EThree = ‖W v(v-Gl(D2 s 0i+s 1j)) ‖2   ... (b42)
Minimizes 1jSearch.
[0336]
In the above formula (b41), all gl,s 0iSince brute force is not realistic, we do the following.
[0337]
[Equation 68]
Figure 0003675054
[0338]
Next, the centroid condition is derived from the above equations (b41) and (b42). Also in this case, as described above, it depends on which formula is used.
[0339]
First, when the above equation (b41) is used, the code vectors 0iThe centroids 0cAnd when
[0340]
[Equation 69]
Figure 0003675054
[0341]
By minimizing
[0342]
[Equation 70]
Figure 0003675054
[0343]
Is obtained. Similarly, centroid g of gain gc For the above, the following equation is obtained from the above equation (b41) as in the case of the above equation (b33).
[0344]
[Equation 71]
Figure 0003675054
[0345]
Also, the vector using the above equation (b42)s 1jCentroid ofs 1cIs as follows.
[0346]
[Equation 72]
Figure 0003675054
[0347]
[Equation 73]
Figure 0003675054
[0348]
Solve
[0349]
[Equation 74]
Figure 0003675054
[0350]
Is obtained. Similarly, from the above equation (b42), the code vectors 0iCentroid ofs 0c, And centroid g of the gain gc Can be requested.
[0351]
[Expression 75]
Figure 0003675054
[0352]
[76]
Figure 0003675054
[0353]
[77]
Figure 0003675054
[0354]
[Formula 78]
Figure 0003675054
[0355]
The codebook learning by the generalized Lloyd algorithm (GLA) can be performed using the above formulas (b47), (b48), (b51), or the above formulas (b51), (b52), (b55). ) Expression may be used.
[0356]
Next, the second encoding unit 120 using the CELP encoding configuration of the present invention more specifically includes a multi-stage vector quantization processing unit (in the example of FIG. Encoding unit 120 of1And 1202). The configuration of FIG. 16 shows a configuration corresponding to a transmission bit rate of 6 kbps when the transmission bit rate can be switched between 2 kbps and 6 kbps, for example, and a shape and gain index output is 23 bits / It can be switched between 5 msec and 15 bits / 5 msec. Further, the flow of processing in the configuration of FIG. 16 is as shown in FIG.
[0357]
In FIG. 16, for example, the first encoding unit 300 in FIG. 16 substantially corresponds to the first encoding unit 113 in FIG. 3, and the LPC analysis circuit 302 in FIG. 16 includes the LPC shown in FIG. 16, the LSP parameter quantization circuit 303 in FIG. 16 corresponds to the configuration from the α → LSP conversion circuit 133 to the LSP → α conversion circuit 137 in FIG. 3, and the perceptual weighting filter 304 in FIG. 3 corresponds to the auditory weighting filter calculation circuit 139 and the auditory weighting filter 125. Therefore, in FIG. 16, the same output as the output from the LSP → α conversion circuit 137 of the first encoding unit 113 in FIG. 3 is supplied to the terminal 305, and the auditory signal in FIG. 3 is supplied to the terminal 307. The same output from the weighting filter calculation circuit 139 is supplied to the terminal 306 as the same output from the auditory weighting filter 125 of FIG. However, in the perceptual weighting filter 304 of FIG. 16, unlike the perceptual weighting filter 125 of FIG. 3, the output of the LSP → α conversion circuit 137 is not used, and the input speech data and the α parameter before quantization are used. The auditory weighted signal (that is, the same signal as the output from the auditory weighting filter 125 of FIG. 3) is generated.
[0358]
Also, the second encoding unit 120 having a two-stage configuration shown in FIG.1And 12023, the subtracters 313 and 323 correspond to the subtractor 123 of FIG. 3, the distance calculation circuits 314 and 324 are the distance calculation circuit 124 of FIG. 3, the gain circuits 311 and 321 are the stochastic, and the gain circuit 126 of FIG. The code books 310 and 320 and the gain code books 315 and 325 correspond to the noise code book 121 of FIG.
[0359]
In the configuration of FIG. 16, first, as shown in step S <b> 1 of FIG. 17, in the LPC analysis circuit 302, input voice data supplied from the terminal 301.xIs divided into appropriate frames as described above, and LPC analysis is performed to obtain the α parameter. In the LSP parameter quantization circuit 303, the α parameter from the LPC analysis circuit 302 is converted into an LSP parameter and quantized, and the quantized LSP parameter is interpolated and then converted into an α parameter. Next, the LSP parameter quantization circuit 303 generates an LPC synthesis filter function 1 / H (z) from the α parameter obtained by converting the quantized LSP parameter, that is, the quantized α parameter, and outputs this to the terminal. The second encoding unit 120 at the first stage via 3051To the auditory weighted synthesis filter 312.
[0360]
On the other hand, the perceptual weighting filter 304 obtains the same perceptual weighting data as the perceptual weighting filter calculation circuit 139 of FIG. 3 from the alpha parameter from the LPC analysis circuit 302 (that is, the alpha parameter before quantization), The data for weighting is sent to the second encoding unit 120 at the first stage via the terminal 307.1To the auditory weighted synthesis filter 312. Further, in the perceptual weighting filter 304, as shown in step S2 of FIG. 17, the perceptually weighted signal (the output from the perceptual weighting filter 125 of FIG. 3) is calculated from the input speech data and the α parameter before quantization. The same signal). That is, first, the perceptual weighting filter function W (z) is generated from the α parameter before quantization, and the input speech dataxApplying the filter function W (z) tox W And the second encoding unit 120 at the first stage via the terminal 306 as a signal weighted perceptually.1 To the subtracter 313.
[0361]
Second encoding unit 120 at the first stage1 Then, the representative value output (noise output corresponding to the LPC residual of unvoiced sound) from the stochastic code book 310 of the 9-bit shape index output is sent to the gain circuit 311, and in the gain circuit 311, The representative value output from the stochastic code book 310 is multiplied by the gain (scalar value) from the gain code book 315 of 6-bit gain index output, and the representative value output multiplied by the gain in the gain circuit 311 is 1 / A (Z) = (1 / H (z)) · W (z) is sent to the synthesis filter 312 with auditory weights. From the weighted synthesis filter 312, a zero input response output of 1 / A (z) is sent to the subtractor 313 as shown in step S 3 of FIG. In the subtracter 313, the zero-input response output from the auditory weighted synthesis filter 312 and the auditory weighted signal from the auditory weighting filter 304.x W Are subtracted, and this difference or error is the reference vector.rAs taken out. As shown in step S4 of FIG. 17, the second encoding unit 120 at the first stage.1 This reference vector when searching inrIs sent to the distance calculation circuit 314 where the distance calculation is performed and the shape vector that minimizes the quantization error energy EsAnd the gain g are searched. However, 1 / A (z) here is a zero state. That is, the shape vector in the codebooksIs synthesized with 1 / A (z) of zero states synThe shape vector that minimizes equation (40)sAnd gain g is searched.
[0362]
[79]
Figure 0003675054
[0363]
Here, the quantization error energy E is minimized.sHowever, in order to reduce the amount of calculation, the following method can be taken. R (n) etc. are vectorsrRepresents the elements.
[0364]
As a first method, E defined in the following equation (41)sShape vector that minimizessSearch for.
[0365]
[80]
Figure 0003675054
[0366]
Obtained by the first method as the second methodsThus, since the ideal gain is as shown in Expression (42), a search is made for g that minimizes Expression (43).
[0367]
[Formula 81]
Figure 0003675054
[0368]
Eg= (Gref-G)2                    (43)
Here, since E is a quadratic function of g, EgMinimizing E minimizes E.
[0369]
Obtained by the first and second methods.sAnd g, the quantization error vectoreCan be calculated by the following equation (44).
[0370]
e=r-Gs syn                        (44)
This is the second encoding unit 120 in the second stage.2 As a reference input, the quantization is performed in the same manner as in the first stage.
[0371]
That is, the second encoding unit 120 in the first stage.1 From the auditory weighted synthesis filter 312, the signals supplied to the terminal 305 and the terminal 307 are directly used as the second encoding unit 120 in the second stage.2To the auditory weighted synthesis filter 322. Also, the second encoding unit 120 in the second stage.2The subtracter 323 includes the second encoding unit 120 at the first stage.1The quantization error vector obtained in stepeIs supplied.
[0372]
Next, in step S5 of FIG. 17, the second encoding unit 120 in the second stage.2 However, processing is performed in the same manner as in the first stage. In other words, the representative value output from the stochastic code book 320 of the 5-bit shape index output is sent to the gain circuit 321, and the gain circuit 321 uses the gain of the 3-bit gain index output as the representative value output from the code book 320. The gain from the code book 325 is multiplied, and the output of the gain circuit 321 is sent to the synthesis filter 322 with auditory weights. The output from the weighted synthesis filter 322 is sent to the subtracter 323, which outputs the output from the auditory weighted synthesis filter 322 and the first stage quantization error vector.eAnd the difference is sent to the distance calculation circuit 324, where the distance calculation is performed, and the shape vector that minimizes the quantization error energy E is obtained.sAnd the gain g are searched.
[0373]
Second encoding unit 120 at the first stage as described above.1 The shape index output from the cast codebook 310 and the gain index output from the gain codebook 315, and the second encoding unit 120 at the second stage.2 The index output from the strike code book 320 and the index output from the gain code book 325 are sent to the index output switching circuit 330. Here, when 23-bit output is performed from the second encoding unit 120, the second encoding unit 120 in the first and second stages is used.1And 1202When the indexes from the codebooks 310 and 320 and the gain codebooks 315 and 325 are output together, and the 15-bit output is performed, the second encoding unit 120 in the first stage is output.1 Each index from the strike codebook 310 and the gain codebook 315 is output.
[0374]
Thereafter, the filter state is updated as in step S6.
[0375]
By the way, in the present embodiment, second encoding section 120 at the second stage.2 The number of index bits is 5 bits for the shape vector and 3 bits for the gain. In such a case, if an appropriate shape and gain do not exist in the codebook, the quantization error may be increased rather than reduced.
[0376]
In order to prevent this problem, it is only necessary to prepare 0 for the gain. However, the gain is only 3 bits, and setting one of them to 0 greatly reduces the performance of the quantizer. Therefore, a vector having all elements of 0 is prepared as a shape vector to which a relatively large number of bits are assigned. Then, the above-described search is performed excluding this zero vector, and when the quantization error finally increases, the zero vector is selected. The gain at this time is arbitrary. Thereby, the second encoding unit 120 in the second stage.2Can be prevented from increasing the quantization error.
[0377]
In the example of FIG. 16, the case of a two-stage configuration is described as an example, but the configuration is not limited to two stages, and a multi-stage configuration can be used. In this case, when the vector quantization by the first-stage closed-loop search is completed, the N-th stage (2 ≦ N) is quantized using the (N−1) -th stage quantization error as a reference input, and the quantization error is further increased. Is the reference input of the (N + 1) th stage.
[0378]
As described above, from FIG. 16 and FIG. 17, by using a multistage vector quantizer for the second encoding unit, straight vector quantization or conjugate codebook having the same number of bits as in the past is used. Compared with things, the amount of calculation is reduced. In particular, in CELP coding, since vector quantization of a time-axis waveform using a closed loop search using an analysis by synthesis method is performed, it is important that the number of searches is small. Also, the second stage second encoding unit 120.1And 1202And the second encoding unit 120 in the first stage.1(Second encoding unit 120 at the second stage).2The number of bits can be easily switched by switching to the case where the output index is not used. Further, as described above, the second encoding unit 120 in the first and second stages.1And 1202If both index outputs are output together, the decoder side can easily cope with the problem by selecting one of them at the later decoder side. That is, for example, when a parameter encoded at 6 kbps is decoded by a 2 kbps decoder, the decoder can easily cope with it. Furthermore, for example, the second encoding unit 120 at the second stage.2By including a zero vector in the shape codebook, it is possible to prevent an increase in quantization error with less performance degradation than adding 0 to the gain even when the number of allocated bits is small. .
[0379]
Next, the code vector (shape vector) of the stochastic code book can be generated as follows, for example.
[0380]
For example, a code vector of a stochastic codebook can be generated by clipping of so-called Gaussian noise. Specifically, a codebook can be constructed by generating Gaussian noise, clipping it with an appropriate threshold value, and normalizing it.
[0381]
However, there are various forms of speech. For example, Gaussian noise is suitable for consonant speech that is close to noise such as “sa, shi, su, se, so”. Voices with sharp rises (steep consonants) such as “, pe, po” cannot be handled.
[0382]
Therefore, in the present invention, an appropriate number of all the code vectors is Gaussian noise, and the remainder is obtained by learning so as to be able to cope with both the conspicuous consonant and the consonant close to noise. For example, if the threshold value is increased, a vector having several large peaks can be obtained. On the other hand, if the threshold value is decreased, the vector becomes close to Gaussian noise itself. Therefore, by increasing the variation of the clipping threshold value in this way, a consonant with a sharp rise such as “Pa, Pi, Pu, Bae, Po” or “Sa, Shi, Su, Se, So” This makes it possible to deal with consonants that are close to noise and improve clarity. FIG. 18 shows the state of Gaussian noise indicated by a solid line and noise after clipping indicated by a dotted line in the figure. 18A shows a case where the clipping threshold value is 1.0 (that is, when the threshold value is large), and FIG. 18B shows a case where the clipping threshold value is 0.4. The case (that is, the threshold value is small) is shown. 18A and 18B, when the threshold value is increased, a vector having several large peaks is obtained. On the other hand, when the threshold value is decreased, Gaussian noise itself is obtained. You can see that they are close.
[0383]
In order to realize this, first, an initial codebook is formed by clipping Gaussian noise, and a code vector that is not subjected to learning by an appropriate number is determined in advance. The code vectors that are not learned are selected in descending order of their variance values. This is in order to deal with consonants that are close to noise such as “sa, shi, shi, se, so”. On the other hand, the code vector obtained by learning uses the LBG algorithm as the learning algorithm. Here, encoding under the optimal encoding condition (Nearest Neighbor Condition) is performed using both a fixed code vector and a code vector to be learned. In the centroid condition, only the code vector to be learned is updated. As a result, the chord vector to be learned corresponds to a consonant with a sharp rise, such as “Pa, Pi, Pu, Bae, Po”.
[0384]
The gain can be learned optimally for these code vectors by performing learning as usual.
[0385]
FIG. 19 shows the flow of processing for constructing a code book by Gaussian noise clipping described above.
[0386]
In FIG. 19, in step S10, the number of learnings n = 0 is set as initialization, and the error D0= ∞, the maximum number of learnings nmaxAnd a threshold value ε for determining the learning end condition is determined.
[0387]
In the next step S11, an initial codebook by Gaussian noise clipping is generated, and in step S12, a part of code vectors is fixed as a code vector for which learning is not performed.
[0388]
Next, in step S13, encoding is performed using the code book, an error is calculated in step S14, and (Dn-1-Dn) / Dn<Ε or n = nmaxIf it is determined as Yes, the process ends. If it is determined as No, the process proceeds to Step S16.
[0389]
In step S16, a code vector not used for encoding is processed, and in the next step S17, the code book is updated. Next, in step S18, the learning number n is incremented by 1, and then the process returns to step S13.
[0390]
Next, a specific example of the V / UV (voiced / unvoiced sound) determination unit 115 in the audio signal encoding device of FIG. 3 will be described.
[0390]
In the V / UV determination unit 115, the output from the orthogonal transformation circuit 145, the optimum pitch from the high-precision pitch search unit 146, the spectrum amplitude data from the spectrum evaluation unit 148, and the open loop pitch search unit 141 Based on the normalized autocorrelation maximum value r (p) and the zero cross count value from the zero cross counter 412, the V / UV determination of the frame is performed. Further, the boundary position of the V / UV determination result for each band as in the case of MBE is also a condition for V / UV determination of the frame.
[0392]
The V / UV determination condition using the V / UV determination result for each band in the case of MBE will be described below.
[0393]
Parameter or amplitude representing the magnitude of the mth harmonic in the case of MBE | Am|
[0394]
[Formula 82]
Figure 0003675054
[0395]
It can be expressed by In this equation, | S (j) | is a spectrum obtained by DFT of the LPC residual, and | E (j) | is a spectrum obtained by DFT of the spectrum of the base signal, specifically, a 256-point Hamming window. . AmAnd bmAre the lower limit value and the upper limit value when the frequency corresponding to the mth band corresponding to the mth harmonic is represented by an index j. Also, NSR (noise to signal ratio) is used for V / UV determination for each band. The NSR of this mth band is
[0396]
[Formula 83]
Figure 0003675054
[0397]
When this NSR value is larger than a predetermined threshold (for example, 0.3) (error is large), | A in that bandm || E (j) | can be determined to be inferior to the approximation of | S (j) | (the excitation signal | E (j) | is inappropriate as a basis), and the band is UV (Unvoiced). Is determined. In other cases, it can be determined that the approximation has been performed to some extent satisfactory, and the band is determined as V (Voiced, voiced sound).
[0398]
Here, the NSR of each band (harmonic) indicates the spectral similarity for each harmonic. NSR with weighted sum by NSR harmonic gainall Is defined as follows.
[0399]
NSRall = (Σm | Am | NSRm ) / (Σm | Am |)
This spectral similarity NSRall The rule base used for the V / UV determination is determined depending on whether the value is larger or smaller than a certain threshold. Here, this threshold is set to ThNSR = 0.3. This rule base relates to the maximum value of autocorrelation of frame power, zero crossing, and LPC residual, and NSRall <ThNSR In the rule base used in this case, V is applied when the rule is applied, and UV is applied when there is no applied rule.
[0400]
NSRall ≧ ThNSR In the rule base used in this case, UV is applied when the rule is applied, and V is applied when the rule is not applied.
[0401]
Here, the specific rule is as follows.
NSRall <ThNSR When,
if numZeroXP <24, & frmPow> 340, & r0> 0.32 then V
NSRall ≧ ThNSR When,
if numZeroXP> 30, & frmPow <900, & r0 <0.23 then UV
However, each variable is defined as follows.
numZeroXP: Zero cross count per frame
frmPow: Frame power
r0: Autocorrelation maximum
V / UV is determined by collating with a rule that is a set of rules as described above.
[0402]
Next, a more specific configuration and operation of the main part of the speech decoding apparatus (decoder) in FIG. 4 will be described.
[0403]
In the inverse vector quantizer 212 of the spectrum envelope, an inverse vector quantization configuration corresponding to the configuration of the vector quantizer on the speech encoding device (encoder) side as described above is used.
[0404]
For example, when vector quantization is performed by the configuration shown in FIG. 10 on the encoder side, the shape codebooks CB0 and CB1 of the codebook 530 and the gain codebook DB are set on the decoder side according to the given index.g From the code vectors 0,s 1And gain g are read out respectively, g (s 0+s 1) Of a fixed dimension (for example, 44 dimensions) and converted into a variable dimension vector corresponding to the number of dimensions of the original harmonic spectrum vector (fixed / variable dimension conversion).
[0405]
When the encoder side has a configuration of a vector quantizer that adds a fixed-dimensional code vector to a variable-dimensional vector as shown in FIGS. 12 to 15, the decoder side has a variable-dimension codebook. A code vector read from (for example, the code book CB0 in FIG. 12) is subjected to fixed / variable dimension conversion, and a fixed-dimensional code read from the code book for fixed dimensions (code book CB1 in FIG. 12). Vectors are added by the number of dimensions from the low-frequency side of the harmonics and extracted.
[0406]
Next, as described above, the LPC synthesis filter 214 in FIG. 4 is separated into the synthesis filter 236 for V (voiced sound) and the synthesis filter 237 for UV (unvoiced sound). That is, when LSP interpolation is performed every 20 samples, that is, every 2.5 msec without separating the synthesis filter without distinguishing V / UV, in the transition part of V → UV and UV → V Interpolating between LSPs with completely different properties, UV LPC is used for the V residual and V LPC is used for the UV residual. Therefore, the LPC synthesis filter is separated for V and UV, and LPC coefficient interpolation is performed independently for V and UV.
[0407]
A coefficient interpolation method of the LPC synthesis filters 236 and 237 in this case will be described. As shown in Table 3, the LSP interpolation is switched according to the V / UV state.
[0408]
[Table 3]
Figure 0003675054
[0409]
In Table 3, the uniform interval LSP is, for example, an α parameter when the filter characteristic is flat and the gain is 1, that is, α0= 1, α1= Α2= ... = αTen= LSP corresponding to 0,
LSPi = (Π / 11) × i 0 ≦ i ≦ 10
It is.
[0410]
In the case of such a 10th-order LPC analysis, that is, a 10th-order LSP, as shown in FIG. 20, a completely flat spectrum is obtained with LSPs arranged at equal intervals between 0 and .pi. It corresponds to. The total band gain of the synthesis filter is the minimum through characteristic at this time.
[0411]
FIG. 21 is a diagram schematically showing how the gain changes, and the 1 / H at the time of transition from the UV (unvoiced sound) portion to the V (voiced sound) portion.UV(z) gain and 1 / HVThe state of the gain change of (z) is shown.
[0412]
Here, the unit of interpolation is 1 / H when the frame interval is 160 samples (20 msec).VThe coefficient of (z) is every 2.5 msec (20 samples) and 1 / HUVThe coefficient of (z) is every 10 msec (80 samples) at a bit rate of 2 kbps and every 5 msec (40 samples) at 6 kbps. In addition, since waveform matching using the analysis method by synthesis is performed in the second encoding unit 120 on the encoding side at the time of UV, it is not always necessary to interpolate with the LSP of the adjacent V portion without interpolating with the equal interval LSP. May be performed. Here, in the encoding process of the UV unit in the second encoding unit 120, zero input is performed by clearing the internal state of the 1 / A (z) weighted synthesis filter 122 at the transition from V to UV. Set response to 0.
[0413]
Outputs from these LPC synthesis filters 236 and 237 are sent to post filters 238v and 238u that are provided independently. By applying the post filters independently by V and UV, the strength and frequency of the post filters are also obtained. The characteristics are set to different values for V and UV.
[0414]
Next, a description will be given of the windowing of the connecting portion between the V portion and the UV portion of the LPC residual signal, that is, the excitation that is the LPC synthesis filter input. This is performed by the sine wave synthesis circuit 215 of the voiced sound synthesis unit 211 and the windowing circuit 223 of the unvoiced sound synthesis unit 220 shown in FIG. As for the method of synthesizing the V part of the excitement, the specific description is given in the specification and drawings of the Japanese Patent Application No. 4-91422 previously proposed by the applicant, and the high speed synthesizing method of the V part. Are specifically described in the specification and drawings of Japanese Patent Application No. 6-198451 previously proposed by the present applicant. In this specific example, the excitement of the V section is generated using this high-speed synthesis method.
[0415]
In the V (voiced sound) portion, since the spectrum is interpolated using the spectrum of the adjacent frame to sine wave synthesize, as shown in FIG. 22, all waveforms applied between the nth frame and the (n + 1) th frame are displayed. Can be made. However, as in the (n + 1) th frame and the (n + 2) th frame in FIG. 22, in the portion straddling V and UV (unvoiced sound) or vice versa, the UV portion includes ± 80 samples (total 160 samples = 1) in the frame. Only the frame interval data is encoded and decoded. Therefore, as shown in FIG. 23, on the V side, windowing is performed beyond the center point CN between the frames, and on the UV side, windowing of the center point CN is performed to overlap the connection portion. I am letting. In the UV → V transition (transient) part, the reverse is performed. The window on the V side may be broken.
[0416]
Next, noise synthesis and noise addition in the V (voiced sound) portion will be described. The noise synthesis circuit 216, weighted superposition circuit 217, and adder 218 shown in FIG. 4 are used for the excitation that becomes the LPC synthesis filter input of the voiced sound part, and the noise taking the following parameters into consideration as the LPC residual. This is done by adding to the voiced portion of the difference signal.
[0417]
That is, the parameters include the pitch lag Pch, the spectrum amplitude Am [i] of the voiced sound, the maximum spectrum amplitude Amax in the frame, and the level Lev of the residual signal. Here, the pitch lag Pch is the number of samples in the pitch period at a predetermined sampling frequency fs (for example, fs = 8 kHz), and i of the spectrum amplitude Am [i] is the harmonics in the band of fs / 2. When the number is I = Pch / 2, it is an integer in the range of 0 <i <I.
[0418]
The processing by the noise synthesis circuit 216 is performed by a method similar to the synthesis of unvoiced sound by, for example, MBE (multiband excitation) coding. FIG. 24 shows a specific example of the noise synthesis circuit 216.
[0419]
That is, in FIG. 24, the white noise generation unit 401 generates Gaussian noise that has been windowed by a suitable window function (for example, a Hamming window) with a predetermined length (for example, 256 samples) on a white noise signal waveform on the time axis. This is output, and this is subjected to STFT (short term Fourier transform) processing by the STFT processing unit 402 to obtain a power spectrum on the frequency axis of noise. The power spectrum from the STFT processing unit 402 is sent to the multiplier 403 for amplitude processing, and the output from the noise amplitude control circuit 410 is multiplied. The output from the multiplier 403 is sent to the ISTFT processing unit 404, and the phase is converted into a signal on the time axis by performing inverse STFT processing using the phase of the original white noise. The output from the ISTFT processing unit 404 is sent to the weighted superposition addition circuit 217.
[0420]
In the example of FIG. 24, time domain noise is generated from the white noise generation unit 401 and is subjected to orthogonal transform such as STFT to obtain frequency domain noise, but directly from the noise generation unit. Alternatively, noise in the frequency domain may be generated. That is, by directly generating the frequency domain parameters, orthogonal transform processing such as STFT and FFT can be saved.
[0421]
Specifically, it generates a random number in the range of ± x and treats it as the real part and imaginary part of the FFT spectrum, or generates a positive random number in the range from 0 to the maximum value (max). Is treated as the amplitude of the FFT spectrum, a random number from −π to π is generated, and this is treated as the phase of the FFT spectrum.
[0422]
By doing so, the STFT processing unit 402 of FIG. 24 becomes unnecessary, and the configuration can be simplified or the amount of calculation can be reduced.
[0423]
The noise amplitude control circuit 410 has a basic configuration as shown in FIG. 25, for example, and the spectral amplitude Am for V (voiced sound) given from the spectral envelope inverse quantizer 212 of FIG. 4 via the terminal 411. Based on [i] and the pitch lag Pch given from the input terminal 204 to the terminal 412 in FIG. 4, the multiplication coefficient in the multiplier 403 is controlled to thereby determine the synthesized noise amplitude Am_noise [i]. Looking for. That is, in FIG. 25, the output from the optimum noise_mix value calculation circuit 416 to which the spectrum amplitude Am [i] and the pitch lag Pch are input is weighted by the noise weighting circuit 417, and the obtained output is sent to the multiplier 418. Thus, the noise amplitude Am_noise [i] is obtained by multiplying the spectrum amplitude Am [i].
[0424]
Here, as a first specific example of the noise synthesis addition, the noise amplitude Am_noise [i] is a function f of two of the above four parameters, that is, the pitch lag Pch and the spectrum amplitude Am [i].1The case of (Pch, Am [i]) will be described.
[0425]
Such a function f1As a specific example of (Pch, Am [i])
f1(Pch, Am [i]) = 0 (0 <i <Noise_b × I)
f1(Pch, Am [i]) = Am [i] × noise_mix (Noise_b × I ≦ i <I)
noise_mix = K x Pch / 2.0
And so on.
[0426]
However, the maximum value of noise_mix is noise_mix_max, and clipping is performed with that value. As an example, K = 0.02, noise_mix_max = 0.3, Noise_b = 0.7. Here, Noise_b is a constant that determines from what percentage of the total band this noise is added. In this example, when the frequency is higher than 70%, that is, when fs = 8 kHz, noise is added between 4000 × 0.7 = 2800 Hz and 4000 Hz.
[0427]
Next, as a second specific example of noise synthesis addition, the noise amplitude Am_noise [i] is a function of three of the above four parameters, that is, pitch lag Pch, spectral amplitude Am [i], and maximum spectral amplitude Amax. f2The case where (Pch, Am [i], Amax) is described.
[0428]
Such a function f2As a specific example of (Pch, Am [i], Amax)
f2(Pch, Am [i], Amax) = 0 (0 <i <Noise_b × I)
f2(Pch, Am [i], Amax) = Am [i] × noise_mix (Noise_b × I ≦ i <I)
noise_mix = K x Pch / 2.0
Can be mentioned. However, the maximum value of noise_mix is noise_mix_max, and as an example, K = 0.02, noise_mix_max = 0.3, Noise_b = 0.7.
[0429]
further,
If Am [i] x noise_mix> Amax x C x noise_mix,
f2(Pch, Am [i], Amax) = Amax x C x noise_mix
And Here, the constant C is C = 0.3. Since it is possible to prevent the noise level from becoming too large by this conditional expression, the above K and noise_mix_max may be further increased, and the noise level can be increased when the high frequency level is relatively large.
[0430]
Next, as a third specific example of the noise synthesis addition, the noise amplitude Am_noise [i] is changed to all four functions f among the four parameters.Three(Pch, Am [i], Amax, Lev).
[0431]
Such a function fThreeThe specific example of (Pch, Am [i], Amax, Lev) is basically the function f of the second specific example.2The same as (Pch, Am [i], Amax). However, the residual signal level Lev is a signal level measured on the rms (root mean square) or time axis of the spectrum amplitude Am [i]. The difference from the second specific example is that the value of K and the value of noise_mix_max are functions of Lev. That is, when Lev becomes small, each value of K and noise_mix_max is set to be large, and when Lev is large, it is set to be small. Alternatively, the value of Lev may be continuously inversely proportional.
[0432]
Next, the post filters 238v and 238u will be described.
[0433]
FIG. 26 shows post filters used as the post filters 238v and 238u in the example of FIG. 4. The spectrum shaping filter 440, which is the main part of the post filter, includes a formant emphasis filter 441 and a high frequency emphasis filter 442. ing. The output from the spectrum shaping filter 440 is sent to a gain adjustment circuit 443 for correcting a gain change caused by spectrum shaping. The gain G of the gain adjustment circuit 443 is obtained by the gain control circuit 445 by the spectrum shaping filter 440. The gain change is calculated by comparing the input x and the output y, and the correction value is calculated.
[0434]
The 440 characteristic PF (z) of the spectrum shaping filter is a coefficient of the denominator Hv (z) and Huv (z) of the LPC synthesis filter.iThen,
[0435]
[Expression 84]
Figure 0003675054
[0436]
It can be expressed. The fractional part of this equation represents the formant emphasis filter characteristic, (1-kz-1) Represents the high frequency emphasis filter characteristics. Β, γ, and k are constants, and examples include β = 0.6, γ = 0.8, and k = 0.3.
[0437]
The gain G of the gain adjustment circuit 443 is
[0438]
[Expression 85]
Figure 0003675054
[0439]
It is said. In this equation, x (i) is an input of the spectrum shaping filter 440, and y (i) is an output of the spectrum shaping filter 440.
[0440]
Here, as shown in FIG. 27, the coefficient update period of the spectrum shaping filter 440 is 20 samples and 2.5 msec, which is the same as the update period of the α parameter that is the coefficient of the LPC synthesis filter. The update period of the gain G of the adjustment circuit 443 is 160 samples and 20 msec.
[0441]
In this way, the gain adjustment circuit 443 has a longer gain G update period than the coefficient update period of the post-filter spectrum shaping filter 440, thereby preventing adverse effects due to gain adjustment fluctuations.
[0442]
That is, in the general post filter, the coefficient update period and the gain update period of the spectrum shaping filter are the same. At this time, assuming that the gain update period is 20 samples and 2.5 msec, FIG. As will be apparent, it fluctuates within one pitch period, causing click noise. Therefore, in this example, by making the gain switching period longer, for example, 160 samples for one frame and 20 msec, a rapid gain fluctuation can be prevented. Conversely, when the update period of the spectrum shaping filter coefficient is 160 samples and 20 msec, a smooth change in filter characteristics cannot be obtained, and the combined waveform is adversely affected. However, the update period of this filter coefficient is 20 samples, By shortening to 2.5 msec, an effective post filter process can be performed.
[0443]
In addition, as shown in FIG. 28, gain linking processing between adjacent frames is performed using the filter coefficient and gain of the previous frame and the filter coefficient and gain of the current frame. Triangular window
W (i) = i / 20 (0 ≦ i ≦ 20)
When
1-W (i) (0 ≦ i ≦ 20)
Add and fade in and out. In FIG. 28, the gain G of the previous frame1Is the gain G of the current frame2It shows how it changes. That is, in the overlap portion, the ratio of using the gain and filter coefficient of the previous frame gradually attenuates, and the use of the gain and filter coefficient of the current frame gradually increases. The internal state of the filter at time T in FIG. 28 starts from the same state for both the current frame filter and the previous frame filter, that is, the final state of the previous frame.
[0444]
The signal encoding device and the signal decoding device as described above can be used as a speech codec used in, for example, a mobile communication terminal or a mobile phone as shown in FIGS.
[0445]
That is, FIG. 29 shows a transmission side configuration of a portable terminal using the speech encoding unit 160 having the configuration as shown in FIGS. The voice signal collected by the microphone 161 in FIG. 29 is amplified by the amplifier 162, converted to a digital signal by the A / D (analog / digital) converter 163, and sent to the voice encoding unit 160. The speech encoding unit 160 has the configuration shown in FIGS. 1 and 3 described above, and the digital signal from the A / D converter 163 is input to the input terminal 101. The speech encoding unit 160 performs the encoding process as described above with reference to FIGS. 1 and 3, and the output signals from the output terminals in FIGS. 1 and 2 are output as the output signals of the speech encoding unit 160. It is sent to the transmission path encoding unit 164. In the transmission path encoding unit 164, so-called channel coding processing is performed, the output signal is sent to the modulation circuit 165 and modulated, and the antenna is passed through the D / A (digital / analog) converter 166 and the RF amplifier 167. 168.
[0446]
FIG. 30 shows the receiving side configuration of a portable terminal using the speech decoding unit 260 having the configuration as shown in FIGS. The audio signal received by the antenna 261 in FIG. 30 is amplified by the RF amplifier 262 and sent to the demodulation circuit 264 via the A / D (analog / digital) converter 263, and the demodulated signal is decoded in the transmission path. To the unit 265. The output signal from H.264 is sent to speech decoding section 260 having the configuration shown in FIGS. The speech decoding unit 260 performs the decoding process as described above with reference to FIGS. 2 and 4, and the output signal from the output terminal 201 in FIGS. 2 and 4 is D as the signal from the speech decoding unit 260. / A (digital / analog) converter 266. The analog audio signal from the D / A converter 266 is sent to the speaker 268.
[0447]
The present invention is not limited to the above-described embodiment. For example, the configuration on the speech analysis side (encoding side) in FIGS. 1 and 3 and the speech synthesis side (decoding side) in FIGS. Each component is described as hardware, but it can also be realized by a software program using a so-called DSP (digital signal processor) or the like. Vector quantization can be applied not only to speech coding but also to vector quantization of other various signals. Furthermore, the application range of the speech coding method and apparatus of the present invention is not limited to transmission and recording / reproduction, and can be applied to various uses such as pitch conversion, speed conversion, regular speech synthesis, or noise suppression. is there.
[0448]
【The invention's effect】
As is apparent from the above description, according to the present invention, when the variable-dimensional input vector is vector-quantized, the fixed-dimensional code vector read from the codebook (codebook) is converted into the original input vector. The variable dimension code vector is converted to the same variable dimension as the dimension, and the fixed / variable dimension converted variable dimension code vector is added to the fixed dimension second code vector read from the second codebook. Since the optimal code vector that minimizes the error with the variable-dimensional input vector is selected from each codebook for the added code vector obtained in this way, the error or distortion between the original variable-dimensional input vector and the original code Can be calculated to improve the quantization vector accuracy and the fixed dimension read from the first codebook to select the optimal code vector in the variable dimension. The impact of securing / variable dimension conversion of Dobekutoru, can be reduced by adding a fixed dimension of the code vector from the second code book impervious to such fixed / variable dimension conversion.
[0449]
Here, when the codebook is composed of a shape codebook and a gain codebook, at least optimization of gain from the gain codebook is performed in a variable dimension.
[0450]
In this way, by applying a gain to a variable-dimensional code vector that has been subjected to fixed / variable dimension conversion, a fixed / variable dimension is obtained as compared to a case where a fixed code vector multiplied by a gain is converted to a fixed / variable dimension. Since the optimum gain is selected after including the influence of the conversion, the influence can be suppressed to a minimum.
[0451]
Such vector quantization can be applied to speech coding. For example, an input speech signal or a short-term prediction residual of the input speech signal is subjected to sine wave analysis to obtain a harmonic spectrum, and the above harmonic spectrum for each coding unit is obtained. Can be applied to the vector quantization as an input vector, and the sound quality can be improved by a highly accurate codebook search.
[0452]
Further, in speech decoding, a variable-dimensional code vector obtained by fixed / variable-dimensional conversion of the code vector read from the first codebook, and a fixed-dimensional code read from the second codebook High-quality speech can be obtained by performing sine wave synthesis decoding using the harmonic spectrum obtained by adding the vectors.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a basic configuration of a speech coding apparatus as an embodiment of a speech coding method to which a vector quantization method according to the present invention is applied.
2 is a block diagram showing a basic configuration of a speech decoding apparatus for decoding a signal encoded by the speech encoding apparatus of FIG. 1. FIG.
FIG. 3 is a block diagram showing a more specific configuration of a speech encoding apparatus according to an embodiment of the present invention.
4 is a block diagram showing a more specific configuration of the speech decoding apparatus in FIG. 2. FIG.
FIG. 5 is a block diagram illustrating a basic configuration of an LSP quantization unit.
FIG. 6 is a block diagram showing a more specific configuration of an LSP quantization unit.
FIG. 7 is a block diagram showing a basic configuration of a vector quantization unit.
FIG. 8 is a block diagram showing a more specific configuration of a vector quantization unit.
FIG. 9 is a graph showing a specific example of weights for weighting.
FIG. 10 is a block circuit diagram showing a configuration example of a vector quantizer that performs codebook search in a variable dimension.
FIG. 11 is a block circuit diagram showing another configuration example of a vector quantizer that performs codebook search in a variable dimension.
FIG. 12 is a block circuit diagram showing a first configuration example of a vector quantizer using a variable-dimension codebook and a fixed-dimension codebook.
FIG. 13 is a block circuit diagram showing a second configuration example of a vector quantizer that uses a variable-dimension codebook and a fixed-dimension codebook.
FIG. 14 is a block circuit diagram showing a third configuration example of a vector quantizer using a variable-dimension codebook and a fixed-dimension codebook.
FIG. 15 is a block circuit diagram showing a fifth configuration example of a vector quantizer that uses a variable-dimension codebook and a fixed-dimension codebook;
FIG. 16 is a block circuit diagram showing a specific configuration of a CELP encoding portion (second encoding unit) of the speech signal encoding device of the present invention.
17 is a flowchart showing the flow of processing in the configuration of FIG.
FIG. 18 is a diagram illustrating Gaussian noise and noise after clipping with a different threshold value;
FIG. 19 is a flowchart showing a flow of processing when a shape code book is generated by learning.
FIG. 20 is a diagram showing a 10th-order LSP (line spectrum pair) based on an α parameter obtained by a 10th-order LPC analysis.
FIG. 21 is a diagram for explaining a state of gain change from a UV (unvoiced sound) frame to a V (voiced sound) frame;
FIG. 22 is a diagram for explaining an interpolation process of a spectrum or a waveform synthesized for each frame.
FIG. 23 is a diagram for explaining overlap at a connection portion between a V (voiced sound) frame and a UV (unvoiced sound) frame;
FIG. 24 is a diagram for explaining noise addition processing at the time of voiced sound synthesis;
FIG. 25 is a diagram illustrating an example of amplitude calculation of noise added at the time of voiced sound synthesis;
FIG. 26 is a diagram illustrating a configuration example of a post filter.
FIG. 27 is a diagram for explaining a filter coefficient update cycle and a gain update cycle of a post filter.
FIG. 28 is a diagram for explaining a linkage process at a frame boundary portion of a post filter gain and a filter coefficient;
FIG. 29 is a block diagram showing a transmission-side configuration of a mobile terminal in which a speech signal encoding device according to an embodiment of the present invention is used.
FIG. 30 is a block diagram showing a receiving side configuration of a mobile terminal in which an audio signal decoding device according to an embodiment of the present invention is used.
[Explanation of symbols]
110 first encoding unit, 111 LPC inverse filter, 113 LPC analysis / quantization unit, 114 sine wave analysis encoding unit, 115 V / UV determination unit, 116 vector quantizer, 120 second encoding unit, 121 noise codebook, 122 weighted synthesis filter, 123 subtractor, 124 distance calculation circuit, 125 auditory weighting filter, 530 codebook (codebook), 531 shape codebook, 532 gain codebook, 533 gain circuit, 535 tentative selection Selection circuit, 542 variable / fixed dimension conversion circuit, 544 fixed / variable dimension conversion circuit, 545 selection circuit for selection

Claims (6)

可変次元の入力ベクトルに対して符号帳に蓄えられた固定次元のコードベクトルより最適のコードベクトルを選択してそのインデクスを出力するベクトル量子化方法であって、
可変次元の入力ベクトルを上記第1の符号帳の固定次元に変換する可変/固定次元変換工程と、
この可変/固定次元変換工程により変換された固定次元の入力ベクトルと上記第1の符号帳に蓄えられた第1のコードベクトルとの誤差を最小化する複数のコードベクトルを上記第1の符号帳より選択する仮選択工程と、
上記第1の符号帳から選択された固定次元の第1のコードベクトルを入力ベクトルの可変次元に次元変換する固定/可変次元変換工程と、
第2の符号帳から読み出された固定次元の第2のコードベクトルを上記固定/可変次元変換された可変次元の第1のコードベクトルに加算する加算工程と、
この加算されて得られた加算コードベクトルについて上記入力ベクトルとの誤差を最小化する最適のコードベクトルを上記少なくとも第2の符号帳より選択する選択工程と
を有することを特徴とするベクトル量子化方法。
A vector quantization method for selecting an optimal code vector from a fixed-dimensional code vector stored in a codebook for a variable-dimensional input vector and outputting the index,
A variable / fixed dimension conversion step of converting a variable dimension input vector into the fixed dimension of the first codebook;
A plurality of code vectors for minimizing an error between the fixed dimension input vector converted by the variable / fixed dimension conversion step and the first code vector stored in the first code book are the first code book. A temporary selection step to select more,
A fixed / variable dimension conversion step of dimensional transform to the variable dimension input vector a first code vector of the fixed dimension selected from the first codebook,
An addition step of adding the fixed-dimension second code vector read from the second codebook to the fixed-variable dimension-converted variable-dimension first code vector;
A vector quantization method comprising: a selection step of selecting, from the at least second codebook, an optimal code vector that minimizes an error between the addition code vector obtained by the addition and the input vector. .
上記選択工程により、上記第1の符号帳の最適のコードベクトルも選択することを特徴とする請求項1記載のベクトル量子化方法。  2. The vector quantization method according to claim 1, wherein an optimal code vector of the first codebook is also selected by the selection step. 上記第1、第2の符号帳はシェイプ符号帳であり、
上記選択工程では、上記加算されて得られた加算コードベクトルと上記入力ベクトルとに基づいて、上記加算コードベクトルに対する最適ゲインを選択することを特徴とする請求項1記載のベクトル量子化方法。
The first and second codebooks are shape codebooks,
2. The vector quantization method according to claim 1, wherein, in the selection step, an optimum gain for the addition code vector is selected based on the addition code vector obtained by the addition and the input vector.
上記符号帳は、複数の符号帳を組み合わせて構成され、最適の組み合わせを構成するコードベクトルが各符号帳毎にそれぞれ選択されることを特徴とする請求項1記載のベクトル量子化方法。  2. The vector quantization method according to claim 1, wherein the codebook is configured by combining a plurality of codebooks, and code vectors constituting the optimum combination are selected for each codebook. 入力音声信号を時間軸上で所定の符号化単位で区分して各符号化単位で符号化を行う音声符号化方法において、
入力音声信号に基づく信号をサイン波分析してハーモニクススペクトルを求める工程と、
上記符号化単位毎の上記ハーモニクススペクトルを可変次元の入力ベクトルとしてベクトル量子化することにより符号化する工程とを有し、
上記ベクトル量子化は、
可変次元の入力ベクトルを第1の符号帳の固定次元に変換する可変/固定次元変換工程と、
この可変/固定次元変換工程により変換された固定次元の入力ベクトルと上記第1の符号帳に蓄えられた第1のコードベクトルとの誤差を最小化する複数のコードベクトルを上記第1の符号帳より選択する仮選択工程と、
上記第1の符号帳から選択された固定次元の第1のコードベクトルを入力ベクトルの可変次元に次元変換する固定/可変次元変換工程と、
第2の符号帳から読み出された固定次元の第2のコードベクトルを上記固定/可変次元変換された可変次元の第1のコードベクトルに加算する加算工程と、
この加算されて得られた加算コードベクトルについて上記入力ベクトルとの誤差を最小化する最適のコードベクトルを上記少なくとも第2の符号帳より選択する選択工程とを有する
ことを特徴とする音声符号化方法。
In a speech encoding method in which an input speech signal is divided into predetermined encoding units on a time axis and encoded in each encoding unit,
Obtaining a harmonic spectrum by performing sine wave analysis on the signal based on the input audio signal;
Encoding the harmonic spectrum for each encoding unit by vector quantization as a variable-dimensional input vector,
The above vector quantization is
A variable / fixed dimension conversion step of converting a variable dimension input vector to a fixed dimension of the first codebook;
A plurality of code vectors for minimizing an error between the fixed dimension input vector converted by the variable / fixed dimension conversion step and the first code vector stored in the first code book are the first code book. A temporary selection step to select more,
A fixed / variable dimension conversion step of dimensional transform to the variable dimension input vector a first code vector of the fixed dimension selected from the first codebook,
An addition step of adding the fixed-dimension second code vector read from the second codebook to the fixed-variable dimension-converted variable-dimension first code vector;
A speech encoding method comprising: a selection step of selecting an optimal code vector that minimizes an error from the input vector with respect to the addition code vector obtained by the addition, from the at least second codebook. .
入力音声信号を時間軸上で所定の符号化単位で区分して各符号化単位で符号化を行う音声符号化装置において、
入力音声信号の短期予測残差を求める予測符号化手段と、
求められた短期予測残差に対してサイン波分析符号化を施してハーモニクススペクトルを求めるサイン波分析符号化手段とを有し、
上記サイン波分析符号化手段は、上記ハーモニクススペクトルを可変次元の入力ベクトルとしてベクトル量子化するベクトル量子化手段を有し、
上記ベクトル量子化手段は、
可変次元の入力ベクトルを第1の符号帳の固定次元に変換する可変/固定次元変換工程と、
この可変/固定次元変換工程により変換された固定次元の入力ベクトルと上記第1の符号帳に蓄えられた第1のコードベクトルとの誤差を最小化する複数のコードベクトルを上記第1の符号帳より選択する仮選択工程と、
上記第1の符号帳から選択された固定次元の第1のコードベクトルを入力ベクトルの可変次元に次元変換する固定/可変次元変換工程と、
第2の符号帳から読み出された固定次元の第2のコードベクトルを上記固定/可変次元変換された可変次元の第1のコードベクトルに加算する加算工程と、
この加算されて得られた加算コードベクトルについて上記入力ベクトルとの誤差を最小化する最適のコードベクトルを上記少なくとも第2の符号帳より選択する選択工程とを有する
ことを特徴とする音声符号化装置。
In a speech coding apparatus that divides an input speech signal into predetermined coding units on a time axis and performs coding in each coding unit,
Predictive encoding means for obtaining a short-term prediction residual of the input speech signal;
Sine wave analysis encoding means for performing a sine wave analysis encoding on the obtained short-term prediction residual to obtain a harmonic spectrum;
The sine wave analysis encoding means includes vector quantization means for vector quantization of the harmonic spectrum as a variable-dimensional input vector,
The vector quantization means is
A variable / fixed dimension conversion step of converting a variable dimension input vector to a fixed dimension of the first codebook;
A plurality of code vectors for minimizing an error between the fixed dimension input vector converted by the variable / fixed dimension conversion step and the first code vector stored in the first code book are the first code book. A temporary selection step to select more,
A fixed / variable dimension conversion step of dimensional transform to the variable dimension input vector a first code vector of the fixed dimension selected from the first codebook,
An addition step of adding the fixed-dimension second code vector read from the second codebook to the fixed-variable dimension-converted variable-dimension first code vector;
A speech encoding apparatus comprising: a selection step of selecting, from the at least second codebook, an optimal code vector that minimizes an error from the input vector with respect to the addition code vector obtained by the addition. .
JP25161596A 1996-09-24 1996-09-24 Vector quantization method, speech encoding method and apparatus, and speech decoding method Expired - Fee Related JP3675054B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25161596A JP3675054B2 (en) 1996-09-24 1996-09-24 Vector quantization method, speech encoding method and apparatus, and speech decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25161596A JP3675054B2 (en) 1996-09-24 1996-09-24 Vector quantization method, speech encoding method and apparatus, and speech decoding method

Publications (2)

Publication Number Publication Date
JPH1097299A JPH1097299A (en) 1998-04-14
JP3675054B2 true JP3675054B2 (en) 2005-07-27

Family

ID=17225465

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25161596A Expired - Fee Related JP3675054B2 (en) 1996-09-24 1996-09-24 Vector quantization method, speech encoding method and apparatus, and speech decoding method

Country Status (1)

Country Link
JP (1) JP3675054B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2009008055A (en) * 2007-03-02 2009-08-18 Ericsson Telefon Ab L M Methods and arrangements in a telecommunications network.

Also Published As

Publication number Publication date
JPH1097299A (en) 1998-04-14

Similar Documents

Publication Publication Date Title
JP3707153B2 (en) Vector quantization method, speech coding method and apparatus
JP3707154B2 (en) Speech coding method and apparatus
JP3707116B2 (en) Speech decoding method and apparatus
JP3680380B2 (en) Speech coding method and apparatus
JP4005154B2 (en) Speech decoding method and apparatus
KR100487136B1 (en) Voice decoding method and apparatus
US7392179B2 (en) LPC vector quantization apparatus
US6532443B1 (en) Reduced length infinite impulse response weighting
JP3557662B2 (en) Speech encoding method and speech decoding method, and speech encoding device and speech decoding device
JPH10214100A (en) Voice synthesizing method
JPH11330977A (en) Audio signal encoding device audio signal decoding device, and audio signal encoding/decoding device
JP3675054B2 (en) Vector quantization method, speech encoding method and apparatus, and speech decoding method
JPH09127997A (en) Voice coding method and device
JPH09127993A (en) Voice coding method and voice encoder
AU7201300A (en) Speech encoding method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050425

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090513

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100513

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100513

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110513

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120513

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130513

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees