JP3675054B2 - ベクトル量子化方法、音声符号化方法及び装置、並びに音声復号化方法 - Google Patents
ベクトル量子化方法、音声符号化方法及び装置、並びに音声復号化方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、入力ベクトルを符号帳に蓄えられたコードベクトルと比較して最適のコードベクトルのインデクスを出力するベクトル量子化方法、入力音声信号をブロックやフレーム等の所定の符号化単位で区分して、区分された符号化単位毎にベクトル量子化を含んだ符号化処理を行うような音声符号化方法及び装置、並びに符号化された音声信号を復号化する音声復号化方法に関する。
【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】
【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】
【0074】
ここで、tはフレーム番号、iはP次元の番号を示す。
【0075】
また、このときの、周波数軸方向及び時間軸方向に重みの制限を考慮しない場合の重みwを(2)式で示す。
【0076】
【数2】
【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】
【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の行列であり、
X2−X2’=[x 3-1,x 3-2]
と表すときの、この第1のベクトル量子化部6401 のベクトル量子化器652、662によるコードブックサーチ時の歪尺度dVQ1、dVQ2を、(4)、(5)式で示す。
【0085】
【数4】
【0086】
この重み付き距離はベクトル量子化器(VQ1) 652、ベクトル量子化器(VQ2) 662にそれぞれ送られて、ベクトル量子化が行われる。このベクトル量子化により出力される各8ビットのインデクスは信号切換器690に送られる。また、ベクトル量子化による量子化値は、加算器651、661で、入力された2フレーム分の量子化誤差ベクトルから減算される。重み付き距離計算器653、663では、加算器651、661からの出力を用いて、重み付き距離が順次算出されて、重み付き距離が最小となる量子化値が選ばれる。また、加算器651、661からの出力は、第2のベクトル量子化部6402 の加算器671、681にそれぞれ送られる。
【0087】
ここで、
x 4-1=x 3-1−x’3-1
x 4-2=x 3-2−x’3-2
と表すときの、この第2のベクトル量子化部6402 のベクトル量子化器672、682によるコードブックサーチ時の歪尺度dVQ3、dVQ4を、(6)、(7)式で示す。
【0088】
【数5】
【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つの領域として、
L1={x(i)|1≦i≦2}
L2={x(i)|3≦i≦6}
L3={x(i)|7≦i≦10}
とグループ化する。そして、各グループL1、L2、L3 の重み付けを1/4、1/2、1/4とすると、各グループL1、L2、L3 の周波数軸方向のみに制限を持つ重みは、(8)、(9)、(10)式となる。
【0097】
【数6】
【0098】
これにより、各LSPパラメータの重み付けは、各グループ内でのみ行われ、その重みは各グループに対する重み付けで制限される。
【0099】
ここで、時間軸方向からみると、各フレームの重み付けの総和は、必ず1となるので、時間軸方向の制限は1フレーム単位である。この時間軸方向のみに制限を持つ重みは、(11)式となる。
【0100】
【数7】
【0101】
この(11)式により、周波数軸方向での制限のない、フレーム番号t=0,1の2つのフレーム間で、重み付けが行われる。この時間軸方向にのみ制限を持つ重み付けは、マトリクス量子化を行う2フレーム間で行う。
【0102】
また、学習時には、学習データとして用いる全ての音声フレーム、即ち全データのフレーム数Tについて、(12)式により、重み付けを行う。
【0103】
【数8】
【0104】
また、周波数軸方向及び時間軸方向に制限を持つ重み付けについて説明する。例えば、次数P=10とするとき、LSPパラメータx(i,t)を、低域、中域、高域の3つの領域として、
L1={x(i,t)|1≦i≦2,0≦t≦1}
L2={x(i,t)|3≦i≦6,0≦t≦1}
L3={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】
【0106】
この(13)、(14)、(15)式により、周波数軸方向では3つの帯域毎に、時間軸方向ではマトリクス量子化を行う2フレーム間に重み付けの制限を加えた重み付けを行う。これは、コードブックサーチ時及び学習時共に有効となる。
【0107】
また、学習時においては、全データのフレーム数について重み付けを行う。LSPパラメータx(i,t)を、低域、中域、高域の3つの領域として、
L1 ={x(i,t)|1≦i≦2,0≦t≦T}
L2 ={x(i,t)|3≦i≦6,0≦t≦T}
L3 ={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】
【0109】
この(16)、(17)、(18)式により、周波数軸方向では3つの帯域毎に重み付けを行い、時間軸方向では全フレーム間で重み付けを行うことができる。
【0110】
さらに、上記マトリクス量子化部620及び上記ベクトル量子化部640では、上記LSPパラメータの変化の大きさに応じて重み付けを行う。音声フレーム全体においては少数フレームとなる、V→UV、UV→Vの遷移(トランジェント)部において、子音と母音との周波数特性の違いから、LSPパラメータは大きく変化する。そこで、(19)式に示す重みを、上述の重みw’(i,t)に乗算することにより、上記遷移部を重視する重み付けを行うことができる。
【0111】
【数11】
【0112】
尚、(19)式の代わりに、(20)式を用いることも考えられる。
【0113】
【数12】
【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の出力ベクトルx、即ち一定個数Mのエンベロープデータが入力される。この出力ベクトルxは、ベクトル量子化器502で重み付きベクトル量子化される。これにより、ベクトル量子化器502から出力されるシェイプインデクスは出力端子503から出力され、また、量子化値x 0'は出力端子504から出力されると共に、加算器505、513に送られる。加算器505では、ソースベクトルxから量子化値x 0'が減算されて、量子化誤差ベクトルyが得られる。
【0120】
この量子化誤差ベクトルyは、第2のベクトル量子化部510内のベクトル量子化部511に送られる。このベクトル量子化部511は、複数個のベクトル量子化器で構成され、図7では、2個のベクトル量子化器5111、5112から成る。量子化誤差ベクトルyは次元分割されて、2個のベクトル量子化器5111、5112で、それぞれ重み付きベクトル量子化される。これらのベクトル量子化器5111、5112から出力されるシェイプインデクスは、出力端子5121、5122からそれぞれ出力され、また、量子化値y 1’、y 2’は次元方向に接続されて、加算器513に送られる。この加算器513では、量子化値y 1’、y 2’と量子化値x 0’とが加算されて、量子化値x 1’が生成される。この量子化値x 1’は出力端子514から出力される。
【0121】
これにより、低ビットレート時には、上記第1のベクトル量子化部500による第1のベクトル量子化工程での出力を取り出し、高ビットレート時には、上記第1のベクトル量子化工程での出力及び上記第2の量子化部510による第2のベクトル量子化工程での出力を取り出す。
【0122】
具体的には、図8に示すように、ベクトル量子化器116内の第1のベクトル量子化部500のベクトル量子化器502は、L次元、例えば44次元の2ステージ構成としている。
【0123】
すなわち、44次元でコードブックサイズが32のベクトル量子化コードブックからの出力ベクトルの和に、ゲインgi を乗じたものを、44次元のスペクトルエンベロープベクトルxの量子化値x 0’として使用する。これは、図8に示すように、2つのシェイプコードブックをCB0、CB1とし、その出力ベクトルをs 0i、s 1j、ただし0≦i,j≦31、とする。また、ゲインコードブックCBgの出力をgl 、ただし0≦l≦31、とする。gl はスカラ値である。この最終出力x 0'は、gi(s 0i+s 1j) となる。
【0124】
LPC残差について上記MBE分析によって得られたスペクトルエンベロープAmを一定次元に変換したものをxとする。このとき、xをいかに効率的に量子化するかが重要である。
【0125】
ここで、量子化誤差エネルギEを、
と定義する。この(21)式において、HはLPCの合成フィルタの周波数軸上での特性であり、Wは聴覚重み付けの周波数軸上での特性を表す重み付けのための行列である。
【0126】
行列Hは、現フレームのLPC分析結果によるαパラメータを、αi (1≦i≦P)として、
【0127】
【数13】
【0128】
の周波数特性からL次元、例えば44次元の各対応する点の値をサンプルしたものである。
【0129】
算出手順としては、一例として、1、α1、α2、・・・、αp に0詰めして、すなわち、1、α1、α2、・・・、αp 、0、0、・・・、0として、例えば256点のデータにする。その後、256点FFTを行い、(re2+im2)1/2 を0〜πに対応する点に対して算出して、その逆数をとる。それをL点、すなわち例えば44点に間引いたものを対角要素とする行列を、
【0130】
【数14】
【0131】
とする。
【0132】
聴覚重み付け行列Wは、以下のように求められる。
【0133】
【数15】
【0134】
この(23)式で、αi は入力のLPC分析結果である。また、λa、λbは定数であり、一例として、λa=0.4、λb=0.9が挙げられる。
【0135】
行列あるいはマトリクスWは、上記(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】
【0137】
として、上記(23)式の周波数特性が求められる。
【0138】
これをL次元、例えば44次元ベクトルの対応する点について、以下の方法で求める。より正確には、直線補間を用いるべきであるが、以下の例では最も近い点の値で代用している。
【0139】
すなわち、
ω[i]=ω0[nint(128i/L)] 1≦i≦L
ただし、nint(X)は、Xに最も近い整数を返す関数
である。
【0140】
また、上記Hに関しても同様の方法で、h(1)、h(2)、・・・、h(L)を求めている。すなわち、
【0141】
【数17】
【0142】
となる。
【0143】
ここで、他の例として、FFTの回数を減らすのに、H(z)W(z)を先に求めてから、周波数特性を求めてもよい。すなわち、
【0144】
【数18】
【0145】
この(25)式の分母を展開した結果を、
【0146】
【数19】
【0147】
とする。ここで、1、β1、β2、・・・、β2p、0、0、・・・、0として、例えば256点のデータにする。その後、256点FFTを行い、振幅の周波数特性を、
【0148】
【数20】
【0149】
とする。これより、
【0150】
【数21】
【0151】
これをL次元ベクトルの対応する点について求める。上記FFTのポイント数が少ない場合は、直線補間で求めるべきであるが、ここでは最寄りの値を使用している。すなわち、
【0152】
【数22】
【0153】
である。これを対角要素とする行列をW’とすると、
【0154】
【数23】
【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】
【0159】
となる。
【0160】
ここで、シェイプコードブックとゲインコードブックの学習法について説明する。
【0161】
先ず、CB0に関しコードベクトルs 0cを選択する全てのフレームkに関して歪の期待値を最小化する。そのようなフレームがM個あるとして、
【0162】
【数25】
【0163】
を最小化すればよい。この(28)式中で、W k'はk番目のフレームに対する重み、x k はk番目のフレームの入力、gk はk番目のフレームのゲイン、s 1kはk番目のフレームについてのコードブックCB1からの出力、をそれぞれ示す。
【0164】
この(28)式を最小化するには、
【0165】
【数26】
【0166】
【数27】
【0167】
次に、ゲインに関しての最適化を考える。
【0168】
ゲインのコードワードgc を選択するk番目のフレームに関しての歪の期待値Jg は、
【0169】
【数28】
【0170】
上記(31)式及び(32)式は、シェイプs 0i、s 1j及びゲインgl 、0≦i≦31、0≦j≦31、0≦l≦31の最適なセントロイドコンディション(Centroid Condition)、すなわち最適なデコーダ出力を与えるものである。なお、s 1jに関してもs 0iと同様に求めることができる。
【0171】
次に、最適エンコード条件(Nearest Neighbour Condition )を考える。
【0172】
歪尺度を求める上記(27)式、すなわち、
E=‖W'(x−gl(s 0i+s 1j))‖2
を最小化するs 0i、s 1jを、入力x、重みマトリクスW' が与えられる毎に、すなわち毎フレームごとに決定する。
【0173】
このようなコードブックサーチは、本来は、総当り的に全てのgl (0≦l≦31)、s 0i(0≦i≦31)、s 1j(0≦j≦31)の組み合せの、32×32×32=32768通りについてEを求めて、最小のEを与えるgl 、s 0i、s 1jの組を求めるべきであるが、膨大な演算量となるので、本実施の形態では、シェイプとゲインのシーケンシャルサーチを行っている。なお、s 0iとs 1jとの組み合せについては、総当りサーチを行うものとする。これは、32×32=1024通りである。以下の説明では、簡単化のため、s 0i+s 1jをs m と記す。
【0174】
上記(27)式は、E=‖W'(x−gl s m)‖2 となる。さらに簡単のため、x w=W'x、s w=W's m とすると、
【0175】
【数29】
【0176】
となる。従って、gl の精度が充分にとれると仮定すると、
【0177】
【数30】
【0178】
という2つのステップに分けてサーチすることができる。元の表記を用いて書き直すと、
【0179】
【数31】
【0180】
となる。この(35)式が最適エンコード条件(Nearest Neighbour Condition) である。
【0181】
次に、このようなベクトル量子化のコードブックサーチ(符号帳検索)を行う場合の演算量についてさらに考察する。
【0182】
先ず、上記(35)式の(1)’の演算量は、s 0i及びs 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)’の演算を全て実行せずに、s 0i及びs 1jに関してP個ずつ予備選択(プリセレクション)を行う。なお、ここでは、負のゲインエントリを考えていない(許していない)ため、上記(35)式の(2)’の分子の値は常に正の数となるように、上記(35)式の(1)’のサーチを行う。すなわち、x t W't W'(s 0i+s 1j) の極性込みで、上記(35)式の(1)’の最大化を行う。
【0184】
このような予備選択方法の具体例について説明すると、先ず、
(手順1)x t W't W's 0iを最大にするs 0iを上位からP0 個選択
(手順2)x t W't W's 1jを最大にするs 1iを上位からP1 個選択
(手順3)これらP0個のs 0iとP1個のs 1jの全ての組み合わせについて、上記(35)式の(1)’の式を評価
という方法が挙げられる。
【0185】
これは、上記(35)式の(1)’の式の平方根である、
【0186】
【数32】
【0187】
の評価において、分母、すなわちs 0i+s 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】
【0195】
であることを考慮して、この(a2)式の左辺を最大化すればよい。そこで、この左辺を
【0196】
【数34】
【0197】
のように展開して、この(a3)式の第1項、第2項をそれぞれ最大化する。
【0198】
上記(a3)式の第1項の分子はs 0iのみの関数なので、s 0iに関しての最大化を考える。また上記(a3)式の第2項の分子はs 1jのみの関数なので、s 1jに関しての最大化を考える。すなわち、
【0199】
【数35】
【0200】
において、
(手順1)上記(a4)式を最大化するものの上位からQ0 個のs 0iを選択
(手順2)上記(a5)式を最大化するものの上位からQ1 個のs 1jを選択
(手順3)選択されたQ0個のs 0iとQ1個のs 1jの全ての組み合わせについて、上記(35)式の(1)’の式を評価
という方法が挙げられる。
【0201】
なお、W’=WH/‖x‖であり、WもHも入力ベクトルxの関数であり、当然W’も入力ベクトルxの関数となる。
【0202】
従って、本来は入力ベクトルx毎にW’を算出し、上記(a4)、(a5)式の分母を計算すべきであるが、ここでは予備選択なのであまり演算処理量を費やしたくない。そこで、これらの分母については、典型的な、すなわち代表的なW’の値を用いて事前に各s 0i、s 1jについて計算した値を、s 0i、s 1jと共にテーブルに格納しておく。なお、実際のサーチ演算で割り算をすることは処理が重いので、
【0203】
【数36】
【0204】
の(a6)、(a7)式の値を格納しておく。ここで、W * は、次の(a8)式に示すものである。
【0205】
【数37】
【0206】
図9は、上記W * を下記の(a10)式で記述したときの各W[0]〜W[43] の具体例を示すものである。
【0207】
【数38】
【0208】
上記(a4)、(a5)式の分子については、W’を入力ベクトルx毎に算出して使用する。これは、いずれにせよs 0i、s 1jとxとの内積を算出せねばならないので、x t W't W'を一度計算しておけば演算量増加はごく僅かであることを考慮したものである。
【0209】
このような予備選択方法に要する演算量の概略を見積もると、上記(手順1)のサーチでは、L0(K+1)の演算量を要し、大小比較に、
Q0・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】
なお、本実施の形態では、W’として、入力xのノルムで割り込んだW’を使用している。すなわち、上記(31)、(32)、(35)式において、事前にW’にW’/‖x‖を代入して使用している。
【0216】
あるいは別法として、ベクトル量子化器116でのベクトル量子化の際の聴覚重み付けに用いられる重みW’については、上記(26)式で定義されているが、過去のW’も加味して現在のW’を求めることにより、テンポラルマスキングも考慮したW’を求めてもよい。
【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】
【0220】
とする。ここで、λは例えばλ=0.2とすればよい。このようにして求められたAn(i)、1≦i≦L について、これを対角要素とするマトリクスを上記重みとして用いればよい。
【0221】
このように重み付きベクトル量子化により得られたシェイプインデクスs 0i、s 1jは、出力端子520、522からそれぞれ出力され、ゲインインデクスgl は、出力端子521から出力される。また、量子化値x 0'は、出力端子504から出力されると共に、加算器505に送られる。
【0222】
この加算器505では、スペクトルエンベロープベクトルxから量子化値x 0'が減算されて、量子化誤差ベクトルyが生成される。この量子化誤差ベクトルyは、具体的には、8個のベクトル量子化器5111〜5118から成るベクトル量子化部511に送られて、次元分割され、各ベクトル量子化器5111〜5118で重み付きのベクトル量子化が施される。
【0223】
第2のベクトル量子化部510では、第1のベクトル量子化部500と比較して、かなり多くのビット数を用いるため、コードブックのメモリ容量及びコードブックサーチのための演算量(Complexity)が非常に大きくなり、第1のベクトル量子化部500と同じ44次元のままでベクトル量子化を行うことは、不可能である。そこで、第2のベクトル量子化部510内のベクトル量子化部511を複数個のベクトル量子化器で構成し、入力される量子化値を次元分割して、複数個の低次元ベクトルとして、重み付きのベクトル量子化を行う。
【0224】
ベクトル量子化器5111〜5118で用いる各量子化値y 0〜y 7と、次元数と、ビット数との関係を、表2に示す。
【0225】
【表2】
【0226】
ベクトル量子化器5111〜5118から出力されるインデクスIdvq0〜Idvq7は、各出力端子5231〜5238からそれぞれ出力される。これらのインデクスの合計は72ビットである。
【0227】
また、ベクトル量子化器5111〜5118から出力される量子化値y 0’〜y 7’を次元方向に接続した値をy’とすると、加算器513では、量子化値y’と量子化値x 0’とが加算されて、量子化値x 1’が得られる。よって、この量子化値x 1’は、
で表される。すなわち、最終的な量子化誤差ベクトルは、y’−yとなる。
【0228】
尚、音声信号復号化装置側では、この第2のベクトル量子化部510からの量子化値x 1’ を復号化するときには、第1のベクトル量子化部500からの量子化値x 0’ は不要であるが、第1のベクトル量子化部500及び第2のベクトル量子化部510からのインデクスは必要とする。
【0229】
次に、上記ベクトル量子化部511における学習法及びコードブックサーチについて説明する。
【0230】
先ず、学習法においては、量子化誤差ベクトルy及び重みw’を用い、表2に示すように、8つの低次元ベクトルy 0〜y 7及びマトリクスに分割する。このとき、重みW’は、例えば44点に間引いたものを対角要素とする行列、
【0231】
【数40】
【0232】
とすると、以下の8つの行列に分割される。
【0233】
【数41】
【0234】
このように、y及びW’の低次元に分割されたものを、それぞれ
y i、W i’ (1≦i≦8)
とする。
【0235】
ここで、歪尺度Eを、
E=‖W i'(y i−s)‖2 ・・・(37)
と定義する。このコードベクトルsはy iの量子化結果であり、歪尺度Eを最小化する、コードブックのコードベクトルsがサーチされる。
【0236】
尚、W i’は、学習時には重み付けがあり、サーチ時には重み付け無し、すなわち単位行列とし、学習時とコードブックサーチ時とでは異なる値を用いるようにしてもよい。
【0237】
また、コードブックの学習では、一般化ロイドアルゴリズム(GLA)を用い、さらに重み付けを行っている。先ず、学習のための最適なセントロイドコンディションについて説明する。コードベクトルsを最適な量子化結果として選択した入力ベクトルyがM個ある場合に、トレーニングデータをy k とすると、歪の期待値Jは、全てのフレームkに関して重み付け時の歪の中心を最小化するような(38)式となる。
【0238】
【数42】
【0239】
上記(39)式で示すsは最適な代表ベクトルであり、最適なセントロイドコンディションである。
【0240】
また、最適エンコード条件は、‖W i'(y i−s)‖2 の値を最小化するsをサーチすればよい。ここでサーチ時のW i'は、必ずしも学習時と同じW i'である必要はなく、重み無しで
【0241】
【数43】
【0242】
のマトリクスとしてもよい。
【0243】
このように、音声信号符号化装置内のベクトル量子化部116を2段のベクトル量子化部から構成することにより、出力するインデクスのビット数を可変にすることができる。
【0244】
ところで、前述したように、スペクトルエンベロープ評価部148において得られるハーモニクススペクトルのデータ数は上記ピッチに応じて変化し、有効帯域が例えば3400kHzのときには8個から63個程度までのいずれかの個数のデータとなる。これらのデータをまとめてブロック化したベクトルvは可変次元ベクトルであり、上述の具体例では、ベクトル量子化の前に一定のデータ数、例えば44次元の固定次元の入力ベクトルxに次元変換している。この可変/固定次元変換は、上述したデータ数変換のことであり、具体的には例えば前述のように、オーバーサンプリング及び直線補間等を用いて実現することができる。
【0245】
このような固定次元に変換したベクトルxに対して誤差計算を行って誤差を最小化するようなコードブックサーチを行うと、必ずしも元の可変次元ベクトルvに対する誤差を最小化するようなコードベクトルが選択されるとは限らない。
【0246】
そこで、本実施の形態では、上記固定次元でのコードベクトルの選択を仮選択として複数のコードベクトルを選択するようにし、これらの仮選択された複数のコードベクトルについて、可変次元で最終的な最適コードベクトルの本選択を行わせるようにしている。なお、固定次元での仮選択を行わずに、可変次元での選択処理のみを行うようにしてもよい。
【0247】
図10は、このような元の可変次元での最適ベクトル選択を行うための構成の一例を示しており、端子541には、上記スペクトルエンベロープ評価部148において得られるスペクトルエンベロープの可変個数のデータ、すなわち可変次元ベクトルvが入力されている。この可変次元の入力ベクトルvは、前述したデータ数変換回路である可変/固定次元変換回路542により、一定の個数、例えば44個のデータから成る固定次元(44次元)のベクトルxに変換され、端子501に送られている。この固定次元の入力ベクトルxと、固定次元の符号帳(コードブック)530から読み出される固定次元のコードベクトルとが固定次元の選択回路535に送られて、これらの間の重み付きの誤差あるいは歪が最小となるようなコードベクトルを符号帳530から選択するような選択処理あるいはコードブックサーチが行われる。
【0248】
さらにこの図10の例においては、固定次元の符号帳530から得られた固定次元のコードベクトルを固定/可変次元変換回路544により元の可変次元の入力ベクトルvと同じ可変次元に変換し、この可変次元に変換されたコードベクトルを可変次元の選択回路545に送って、上記入力ベクトルvとの間の重み付き歪の計算を行い、その歪を最小とするコードベクトルを符号帳530から選択するような選択処理あるいはコードブックサーチを行っている。
【0249】
すなわち、固定次元の選択回路535では、仮選択として、重み付き歪を最小化する候補となるいくつかのコードベクトルを選択しておき、これらの候補について、可変次元の選択回路545で重み付き歪計算を行って、歪を最小とするコードベクトルを本選択するようにしている。
【0250】
この場合の仮選択及び本選択を用いるベクトル量子化についての適用範囲を簡単に説明する。このベクトル量子化は、ハーモニックコーディング、LPC残差のハーモニックコーディング、本件出願人が先に提案した特願平4−91422号明細書及び図面に開示したようなMBE(マルチバンド励起)符号化、LPC残差のMBE符号化等におけるハーモニクススペクトルに対して帯域制限型の次元変換を用いて可変次元のハーモニクスを重み付きベクトル量子化する場合に適用できるのみならず、その他、入力ベクトルの次元が可変であって、固定次元の符号帳を用いてベクトル量子化するようなあらゆる場合に適用できる。
【0251】
上記仮選択としては、多段の量子化器構成の場合の一部を選択したり、シェイプコードブックとゲインコードブックとから成る符号帳の場合にシェイプコードブックのみを仮選択でサーチするようにしゲインについては可変次元での歪計算により決定するようにしたりすることが挙げられる。また、この仮選択について、前述した予備選択、すなわち、固定次元のベクトルxと符号帳に蓄えられた全てのコードベクトルとの類似度を近似計算(重み付き歪の近似計算)により求めて類似度の高い複数のコードベクトルを選択すること、を適用してもよい。この場合、固定次元での仮選択を上記予備選択とし、予備選択された候補のコードベクトルについて可変次元での重み付き歪を最小化するような本選択を行わせてもよく、また、仮選択の工程で上記予備選択のみならず高精度の歪演算による絞り込みをさらに行った後に本選択に回すようにしてもよい。
【0252】
以下、このような仮選択及び本選択を用いたベクトル量子化の具体例について、図面を参照しながら説明する。
【0253】
図10においては、符号帳530は、シェイプコードブック531とゲインコードブック532とから成り、シェイプコードブック531は、さらに2つのコードブックCB0,CB1を有している。これらのシェイプコードブックCB0,CB1からの出力コードベクトルをそれぞれs 0,s 1とし、ゲインコードブック532により決定されるゲイン回路533のゲインをgとする。入力端子541からの可変次元の入力ベクトルvは、可変/固定次元変換回路542により次元変換(これをD1 とする)されて、端子501を介して固定次元のベクトルxとして選択回路535の減算器536に送られ、符号帳530から読み出された固定次元のコードベクトルとの差がとられ、重み付け回路537により重み付けがなされて、誤差最小化回路538に送られる。この重み付け回路537での重みをW’とする。また、符号帳530から読み出された固定次元のコードベク
トルは、固定/可変次元変換回路544により次元変換(これをD2 とする)されて、可変次元の選択回路545の減算器546に送られ、可変次元の入力ベクトルvとの差がとられ、重み付け回路547により重み付けがなされて、誤差最小化回路548に送られる。この重み付け回路547での重みをW v とする。
【0254】
ここで、誤差最小化回路538,548の誤差とは、上記歪あるいは歪尺度のことであり、誤差すなわち歪が小さくなることは、類似度あるいは相関性が高まることに相当する。
【0255】
固定次元での上記仮選択を行う選択回路535では、前記(27)式の説明と同様に、
E1 = ‖W'(x−g(s 0+s 1))‖2 ・・・(b1)
で表される歪尺度E1 を最小化するs 0,s 1,gをサーチする。ここで、重み付け回路537での重みW’は、
W' = WH/‖x‖ ・・・(b2)
であり、HはLPC合成フィルタの周波数応答特性を対角要素に持つマトリクスを、またWは聴覚重み付けフィルタの周波数応答特性を対角要素に持つマトリクスをそれぞれ示している。
【0256】
先ず、上記(b1)式の歪尺度E1 を最小化するs 0,s 1,gをサーチする。ここで、s 0,s 1,gを、上記歪尺度E1 を小さくする順に、上位からL組とっておき(固定次元での仮選択)、そのL組のs 0,s 1,gに関して、
E2 = ‖W v(v−D2g(s 0+s 1))‖2 ・・・(b3)
を最小化するs 0,s 1,gの組を最適コードベクトルとして、最終的な本選択を可変次元で行う。
【0257】
上記(b1)式についてのサーチ、学習については、前述した(27)式以下の説明の通りである。
【0258】
以下、上記(b3)式に基づくコードブック学習のためのセントロイドコンディションについて説明する。
【0259】
符号帳(コードブック)530の内のシェイプコードブック531の1つであるコードブックCB0について、コードベクトルs 0 を選択する全てのフレームkに関して、歪の期待値を最小化する。そのようなフレームがM個あるとして、
【0260】
【数44】
【0261】
を最小化すればよい。この(b4)式を最小化するために、
【0262】
【数45】
【0263】
を解いて、
【0264】
【数46】
【0265】
となる。この(b6)式で、{ }-1は逆行列を、W vk T はW vkの転置行列をそれぞれ示している。この(b6)式が、シェイプベクトルs 0 の最適セントロイド条件である。
【0266】
次に、符号帳(コードブック)530の内のシェイプコードブック531のもう1つのコードブックCB1についてのコードベクトルs 1 を選択する場合も同様であるため、説明を省略する。
【0267】
次に、符号帳(コードブック)530の内のゲインコードブック532からのゲインgについてのセントロイド条件を考察する。
【0268】
ゲインのコードワードgc を選択するk番目のフレームに関して、歪の期待値Jg は、
【0269】
【数47】
【0270】
この(b7)式を最小化するために、
【0271】
【数48】
【0272】
を解いて、
【0273】
【数49】
【0274】
これがゲインのセントロイド条件である。
【0275】
次に、上記(b3)式に基づく最適エンコード条件を考察する。
上記(b3)式でサーチせねばならないs 0,s 1,gの組は、上記固定次元での仮選択によりL組と限定されているので、上記(b3)式をL組のs 0,s 1,gに関して直接計算し、歪E2 を最小とするs 0,s 1,gの組を最適コードベクトルとして選択すればよい。
【0276】
ここで、仮選択のLが非常に大きい場合や、上記仮選択を行わず直接的に可変次元でs 0,s 1,gの選択を行う場合に、有効とされるシェイプとゲインのシーケンシャルなサーチの方法について説明する。
【0277】
上記(b3)式の各s 0,s 1,gに、それぞれi,j,lのインデクスを付加して書き直すと、
E2 = ‖W v(v−D2gl(s 0i+s 1j))‖2 ・・・(b10)
となる。これを最小化するgl,s 0i,s 1j を総当たりでサーチすることも可能であるが、例えば0≦l<32,0≦i<32,0≦j<32とすると、323 =32768通りものパターンについて上記(b10)式を計算することになり、膨大な演算量となる。そこで、シェイプとゲインをシーケンシャルにサーチする方法を説明する。
【0278】
先ず、シェイプコードベクトルs 0i,s 1jを決定してから、ゲインgl を決定する。s 0i+s 1j=s m とおくと、上記(b10)式は、
E2 = ‖W v(v−D2gl s m)‖2 ・・・(b11)
と表せ、さらに、v w=W v v,s w=W vD2 s mとおくと、(b11)式は、
【0279】
【数50】
【0280】
となる。よって、gl の精度が充分にとれるとすると、
【0281】
【数51】
【0282】
元の変数を代入して書き直すと、次の(b15),(b16)式のようになる。
【0283】
【数52】
【0284】
上記(b6),(b9)式のシェイプ、ゲインのセントロイド条件と、上記(b15),(b16)式の最適エンコード条件(Nearest Neighbour Condition )を用いて、一般化ロイドアルゴリズム(Generalized Lloyd Algorithm:GLA)によって、コードブック(CB0、CB1、CBg)を同時に学習させることができる。
【0285】
これらの(b6),(b9),(b15),(b16)式を用いた学習法は、先に述べた(27)式以下の説明、特に前記(31),(32),(35)式を用いる方法に比べて、元の入力ベクトルvの可変次元への変換を行った後の歪を最小化している点で優れている。
【0286】
しかし、上記(b6),(b9)式、特に(b6)式の演算は、煩雑であるので、例えば上記(b15),(b16)式の最適エンコード条件のみを用いて、セントロイド条件は 前記(27)式(すなわち(b1)式)の最適化から導かれるものを用いてもよい。
【0287】
あるいは、コードブックの学習時は、全て前記(27)式以下の説明に述べた方法で行い、サーチ時のみ上記(b15),(b16)式を用いる方法も挙げられる。また、上記固定次元での仮選択を前記(27)式以下の説明に述べた方法で行い、選ばれた複数個(L個)の組についてのみ上記(b3)式を直接評価してサーチを行うようにしてもよい。
【0288】
いずれにしても、上記(b3)式の歪評価によるサーチを、上記仮選択後、あるいは総当たり的に使用することにより、最終的にはより歪の少ないコードベクトルサーチあるいは学習を行うことが可能となる。
【0289】
ここで、元の入力ベクトルvと同じ可変次元で歪計算を行うことが好ましい理由について簡単に述べる。
【0290】
これは、固定次元での歪の最小化と可変次元での歪の最小化とが一致すれば、可変次元での歪の最小化は不要であるが、固定/可変次元変換回路544での次元変換D2 が直交行列ではないため、これらの歪の最小化は一致しない。このため、固定次元で歪を最小化しても、必ずしもこれは可変次元で最適に歪を最小化することにはならず、最終的に得られる可変次元のベクトルを最適化しようとするには、可変次元での最適化が必要とされるからである。
【0291】
次に図11は、符号帳(コードブック)をシェイプコードブックとゲインコードブックとに分けるときのゲインを可変次元でのゲインとし、可変次元で最適化するようにした例を示している。
【0292】
すなわち、シェイプコードブック531から読み出された固定次元のコードベクトルを固定/可変次元変換回路544に送って可変次元のベクトルに変換した後、ゲイン回路533に送っている。可変次元での選択回路545は、ゲイン回路533からの可変次元のコードベクトルと上記入力ベクトルvとに基づいて、固定/可変次元変換されたコードベクトルに対するゲイン回路533での最適ゲインを選択すればよい。あるいは、ゲイン回路533への入力ベクトルと上記入力ベクトルvとの内積に基づいて最適ゲインを選択するようにしてもよい。他の構成及び動作は、上記図10の例と同様である。
【0293】
なお、シェイプコードブック531については、選択回路535における固定次元での選択時に唯一のコードベクトルを選択するようにし、可変次元での選択はゲインのみとしてもよい。
【0294】
このように、固定/可変次元変換回路544で変換したコードベクトルに対してゲインを掛けるような構成とすることにより、上記図10に示すようなゲイン倍したコードベクトルを固定/可変次元変換するものに比べて、固定/可変次元変換による影響を考慮した上で最適なゲインを選択することができる。
【0295】
次に、このような固定次元での仮選択と可変次元での本選択とを組み合わせるベクトル量子化の他の具体例について説明する。
【0296】
以下の具体例では、第1の符号帳から読み出された固定次元の第1のコードベクトルを入力ベクトルの可変次元に次元変換し、第2の符号帳から読み出された固定次元の第2のコードベクトルを上記固定/可変次元変換された可変次元の第1のコードベクトルに加算し、この加算されて得られた加算コードベクトルについて上記入力ベクトルとの誤差を最小化する最適のコードベクトルを上記少なくとも第2の符号帳より選択するようにしている。
【0297】
例えば、図12の例では、第1の符号帳(コードブック)CB0から読み出された固定次元の第1のコードベクトルs 0 を、固定/可変次元変換回路544に送って、端子541の入力ベクトルvに等しい可変次元に次元変換し、第2の符号帳CB1から読み出された固定次元の第2のコードベクトルs 1 を加算機549に送って、固定/可変次元変換回路544からの可変次元のコードベクトルに加算し、この加算器549で加算されて得られた加算コードベクトルを選択回路545に送り、この選択回路545で、加算器549からの加算ベクトルと上記入力ベクトルvとの誤差を最小化する最適のコードベクトルを選択するようにしている。ここで、第2の符号帳(コードブック)CB1からのコードベクトルは、入力スペクトルのハーモニクスの低域側からコードブックCB1の次元にまで適用される。また、ゲインgのゲイン回路533は、第1の符号帳CB0と固定/可変次元変換回路544との間にのみ設けられている。他の構成は上記図10と同様であるため、対応する部分に同じ指示符号を付して説明を省略する。
【0298】
このように、コードブックCB1からの固定次元のままのコードベクトルを、コードブックCB0から読み出されて可変次元に変換されたコードベクトルと加算することにより、固定/可変次元変換を行うことによって発生した歪をコードブックCB1からの固定次元のコードベクトルによって減じることができる。
【0299】
この図12の可変次元の選択回路545で計算される歪E3 は、
E3 =‖W v(v−(D2gs 0+s 1))‖2 ・・・(b17)
となる。
【0300】
次に、図13の例では、ゲイン回路533を加算器549の出力側に配置している。従って、第1の符号帳CB0から読み出され固定/可変次元変換回路544で可変次元に変換されたコードベクトルと、第2の符号帳CB1から読み出されたコードベクトルとの加算結果に対してゲインgが掛けられる。これは、CB0からのコードベクトルに乗ずるべきゲインと、その補正分(量子化誤差の量子化)のためのコードブックCB1からのコードベクトルに乗ずるべきゲインの相関が強いため、共通のゲインを用いている。この図13の選択回路545で計算される歪E4 は、
E4 =‖W v(v−g(D2 s 0+s 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からの各コードベクトルs 0、s 1が加算され、ゲイン回路533でゲインgを掛けられて、固定/可変次元変換回路544に送られている。この固定/可変次元変換回路544からの可変次元のコードベクトルと、第2の符号帳CB2からのコードベクトルs 2 とを加算器549で加算して、選択回路545に送っている。この図15の選択回路545で計算される歪E5 は、
E5 =‖W v(v−(gD2(s 0+s 1)+s2))‖2 ・・・(b19)
となる。この図15の例の他の構成は、上記図12の例と同様であるため説明を省略する。
【0303】
ここで、上記(b18)式におけるサーチ方法について説明する。
先ず、第1のサーチ方法としては、
E4' =‖W'(x−gl s 0i))‖2 ・・・(b20)
を最小化するs 0i,gl をサーチし、次に
E4 =‖W v(v−gl(D2 s 0i+s 1j))‖2 ・・・(b21)
を最小化するs 1jをサーチすることが挙げられる。
【0304】
第2のサーチ方法としては、
【0305】
【数53】
【0306】
が挙げられる。
【0307】
第3のサーチ方法としては、
【0308】
【数54】
【0309】
が挙げられる。
【0310】
次に、上記第1のサーチ方法の上記(b20)式のセントロイド条件について説明する。上記コードベクトルs 0iのセントロイドをs 0cとするとき、
【0311】
【数55】
【0312】
を最小化する。これを最小化するために、
【0313】
【数56】
【0314】
を解いて、
【0315】
【数57】
【0316】
が得られる。同様に、ゲインgのセントロイドgc については、上記(b20)式より、
【0317】
【数58】
【0318】
【数59】
【0319】
を解いて、
【0320】
【数60】
【0321】
また、上記第1のサーチ方法の上記(b21)式のセントロイド条件として、ベクトルs 1jのセントロイドs 1cについては、
【0322】
【数61】
【0323】
【数62】
【0324】
を解いて、
【0325】
【数63】
【0326】
が得られる。上記(b21)式から上記コードベクトルs 0iのセントロイドs 0cを求めると、
【0327】
【数64】
【0328】
【数65】
【0329】
【数66】
【0330】
が得られる。同様に、上記(b21)式から上記ゲインgのセントロイドgc を求めると、
【0331】
【数67】
【0332】
が得られる。
【0333】
以上、上記(b20)式によるコードベクトルs 0iのセントロイドs 0cの算出方法を(b30)式に、ゲインgのセントロイドgc の算出方法を(b33)式にそれぞれ示した。また、上記(b21)式によるセントロイドの算出方法として、コードベクトルs 1jのセントロイドs 1cを(b36)式に、コードベクトルs 0iのセントロイドs 0cを(b39)式に、ゲインgのセントロイドgc を(b40)式にそれぞれ示した。
【0334】
実際の一般化ロイドアルゴリズム(GLA)によるコードブックの学習においては、セントロイド条件として、上記(b30)式、(b36)式、(b40)式を使用してs 0,s 1,gを同時に学習する方法が挙げられる。サーチ方法(Nearest Neighbour Condition) は、例えば上記(b22)式、(b23)式、(b24)式を用いればよい。この他、上記(b30)式、(b33)式、(b36)式、あるいは、上記(b39)式、(b36)式、(b40)式といったセントロイド条件の組み合わせも可能であることは勿論である。
【0335】
次に、上記図12に対応する上記(b17)式の歪尺度の場合のサーチ方法について説明する。この場合には、
E3' =‖W'(x−gl s 0i))‖2 ・・・(b41)
を最小化するs 0i,gl をサーチし、次に
E3 =‖W v(v−gl(D2 s 0i+s 1j))‖2 ・・・(b42)
を最小化するs 1jをサーチすることが挙げられる。
【0336】
上記(b41)式において、全てのgl,s 0iの組を総当たりするのは現実的でないので、次のようにしている。
【0337】
【数68】
【0338】
次に、上記(b41)式、(b42)式よりセントロイド条件を導く。この場合も、上述したのと同様に、どの式を用いるかで変わってくる。
【0339】
先ず、上記(b41)式を用いる場合には、上記コードベクトルs 0iのセントロイドをs 0cとするとき、
【0340】
【数69】
【0341】
を最小化することにより、
【0342】
【数70】
【0343】
が得られる。同様に、ゲインgのセントロイドgc については、上記(b41)式より、上記(b33)式の場合と同様に、次の式が得られる。
【0344】
【数71】
【0345】
また、上記(b42)式を用いてベクトルs 1jのセントロイドs 1cを求める場合には、次の通りである。
【0346】
【数72】
【0347】
【数73】
【0348】
を解いて、
【0349】
【数74】
【0350】
が得られる。同様に、上記(b42)式から上記コードベクトルs 0iのセントロイドs 0c、及び上記ゲインgのセントロイドgc を求めることができる。
【0351】
【数75】
【0352】
【数76】
【0353】
【数77】
【0354】
【数78】
【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から供給された入力音声データxを前述同様に適当なフレームに分割して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)を生成し、さらに入力音声データxに当該フィルタ関数W(z)を適用してx 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からの上記聴覚重み付けした信号x W とを用いた減算が行われ、この差分或いは誤差が参照ベクトルrとして取り出される。図17のステップS4に示すように、1段目の第2の符号化部1201 でのサーチ時には、この参照ベクトルrが、距離計算回路314に送られ、ここで距離計算が行われ、量子化誤差エネルギEを最小にするシェイプベクトルsとゲインgがサーチされる。ただし、ここでの1/A(z)はゼロ状態である。すなわち、コードブック中のシェイプベクトルsをゼロ状態の1/A(z)で合成したものをs synとするとき、式(40)を最小にするシェイプベクトルsとゲインgをサーチする。
【0362】
【数79】
【0363】
ここで、量子化誤差エネルギEを最小とするsとgをフルサーチしてもよいが、計算量を減らすために、以下のような方法をとることができる。なお、r(n)等は、ベクトルr等の要素を表している。
【0364】
第1の方法として、以下の式(41)に定義するEsを最小とするシェイプベクトルsをサーチする。
【0365】
【数80】
【0366】
第2の方法として、第1の方法により得られたsより、理想的なゲインは、式(42)のようになるから、式(43)を最小とするgをサーチする。
【0367】
【数81】
【0368】
Eg=(gref−g)2 (43)
ここで、Eはgの二次関数であるから、Egを最小にするgはEを最小化する。
【0369】
上記第1,第2の方法によって得られたsとgより、量子化誤差ベクトルeは次の式(44)のように計算できる。
【0370】
e=r−gs syn (44)
これを、2段目の第2の符号化部1202 のリファレンス入力として1段目と同様にして量子化する。
【0371】
すなわち、上記1段目の第2の符号化部1201 の聴覚重み付き合成フィルタ312からは、端子305及び端子307に供給された信号がそのまま2段目の第2の符号化部1202の聴覚重み付き合成フィルタ322に送られる。また、当該2段目の第2の符号化部1202減算器323には、1段目の第2の符号化部1201にて求めた上記量子化誤差ベクトルeが供給される。
【0372】
次に、図17のステップS5において、当該2段目の第2の符号化部1202 でも1段目と同様に処理が行われる。すなわち、5ビットシェイプインデクス出力のストキャスティックコードブック320からの代表値出力がゲイン回路321に送られ、このゲイン回路321にて、当該コードブック320からの代表値出力に3ビットゲインインデクス出力のゲインコードブック325からのゲインを乗じ、このゲイン回路321の出力が、聴覚重み付きの合成フィルタ322に送られる。当該重み付きの合成フィルタ322からの出力は減算器323に送られ、当該減算器323にて上記聴覚重み付き合成フィルタ322からの出力と1段目の量子化誤差ベクトルeとの差分が求められ、この差分が距離計算回路324に送られてここで距離計算が行われ、量子化誤差エネルギEを最小にするシェイプベクトルsとゲイン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】
【0395】
により表せる。この式において、|S(j)| は、LPC残差をDFTしたスペクトルであり、|E(j)| は、基底信号のスペクトル、具体的には256ポイントのハミング窓をDFTしたものである。また、am及びbmは、第m番目のハーモニクスに対応する第mバンドに対応する周波数をインデクスjで表現したときの下限値及び上限値である。また、各バンド毎のV/UV判定のために、NSR(ノイズtoシグナル比)を利用する。この第mバンドのNSRは、
【0396】
【数83】
【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 から、コードベクトルs 0,s 1及びゲインgがそれぞれ読み出され、g(s 0+s 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】
【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])の具体例として、
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×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) の具体例として、
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×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 ならば、
f2(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】
【0436】
と表せる。この式の分数部分がホルマント強調フィルタ特性を、(1−kz-1)の部分が高域強調フィルタ特性をそれぞれ表す。また、β、γ、kは定数であり、一例としてβ=0.6、γ=0.8、k=0.3を挙げることができる。
【0437】
また、ゲイン調整回路443のゲインGは、
【0438】
【数85】
【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 本選択用の選択回路
Claims (6)
- 可変次元の入力ベクトルに対して符号帳に蓄えられた固定次元のコードベクトルより最適のコードベクトルを選択してそのインデクスを出力するベクトル量子化方法であって、
可変次元の入力ベクトルを上記第1の符号帳の固定次元に変換する可変/固定次元変換工程と、
この可変/固定次元変換工程により変換された固定次元の入力ベクトルと上記第1の符号帳に蓄えられた第1のコードベクトルとの誤差を最小化する複数のコードベクトルを上記第1の符号帳より選択する仮選択工程と、
上記第1の符号帳から選択された固定次元の第1のコードベクトルを入力ベクトルの可変次元に次元変換する固定/可変次元変換工程と、
第2の符号帳から読み出された固定次元の第2のコードベクトルを上記固定/可変次元変換された可変次元の第1のコードベクトルに加算する加算工程と、
この加算されて得られた加算コードベクトルについて上記入力ベクトルとの誤差を最小化する最適のコードベクトルを上記少なくとも第2の符号帳より選択する選択工程と
を有することを特徴とするベクトル量子化方法。 - 上記選択工程により、上記第1の符号帳の最適のコードベクトルも選択することを特徴とする請求項1記載のベクトル量子化方法。
- 上記第1、第2の符号帳はシェイプ符号帳であり、
上記選択工程では、上記加算されて得られた加算コードベクトルと上記入力ベクトルとに基づいて、上記加算コードベクトルに対する最適ゲインを選択することを特徴とする請求項1記載のベクトル量子化方法。 - 上記符号帳は、複数の符号帳を組み合わせて構成され、最適の組み合わせを構成するコードベクトルが各符号帳毎にそれぞれ選択されることを特徴とする請求項1記載のベクトル量子化方法。
- 入力音声信号を時間軸上で所定の符号化単位で区分して各符号化単位で符号化を行う音声符号化方法において、
入力音声信号に基づく信号をサイン波分析してハーモニクススペクトルを求める工程と、
上記符号化単位毎の上記ハーモニクススペクトルを可変次元の入力ベクトルとしてベクトル量子化することにより符号化する工程とを有し、
上記ベクトル量子化は、
可変次元の入力ベクトルを第1の符号帳の固定次元に変換する可変/固定次元変換工程と、
この可変/固定次元変換工程により変換された固定次元の入力ベクトルと上記第1の符号帳に蓄えられた第1のコードベクトルとの誤差を最小化する複数のコードベクトルを上記第1の符号帳より選択する仮選択工程と、
上記第1の符号帳から選択された固定次元の第1のコードベクトルを入力ベクトルの可変次元に次元変換する固定/可変次元変換工程と、
第2の符号帳から読み出された固定次元の第2のコードベクトルを上記固定/可変次元変換された可変次元の第1のコードベクトルに加算する加算工程と、
この加算されて得られた加算コードベクトルについて上記入力ベクトルとの誤差を最小化する最適のコードベクトルを上記少なくとも第2の符号帳より選択する選択工程とを有する
ことを特徴とする音声符号化方法。 - 入力音声信号を時間軸上で所定の符号化単位で区分して各符号化単位で符号化を行う音声符号化装置において、
入力音声信号の短期予測残差を求める予測符号化手段と、
求められた短期予測残差に対してサイン波分析符号化を施してハーモニクススペクトルを求めるサイン波分析符号化手段とを有し、
上記サイン波分析符号化手段は、上記ハーモニクススペクトルを可変次元の入力ベクトルとしてベクトル量子化するベクトル量子化手段を有し、
上記ベクトル量子化手段は、
可変次元の入力ベクトルを第1の符号帳の固定次元に変換する可変/固定次元変換工程と、
この可変/固定次元変換工程により変換された固定次元の入力ベクトルと上記第1の符号帳に蓄えられた第1のコードベクトルとの誤差を最小化する複数のコードベクトルを上記第1の符号帳より選択する仮選択工程と、
上記第1の符号帳から選択された固定次元の第1のコードベクトルを入力ベクトルの可変次元に次元変換する固定/可変次元変換工程と、
第2の符号帳から読み出された固定次元の第2のコードベクトルを上記固定/可変次元変換された可変次元の第1のコードベクトルに加算する加算工程と、
この加算されて得られた加算コードベクトルについて上記入力ベクトルとの誤差を最小化する最適のコードベクトルを上記少なくとも第2の符号帳より選択する選択工程とを有する
ことを特徴とする音声符号化装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25161596A JP3675054B2 (ja) | 1996-09-24 | 1996-09-24 | ベクトル量子化方法、音声符号化方法及び装置、並びに音声復号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25161596A JP3675054B2 (ja) | 1996-09-24 | 1996-09-24 | ベクトル量子化方法、音声符号化方法及び装置、並びに音声復号化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1097299A JPH1097299A (ja) | 1998-04-14 |
JP3675054B2 true JP3675054B2 (ja) | 2005-07-27 |
Family
ID=17225465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25161596A Expired - Fee Related JP3675054B2 (ja) | 1996-09-24 | 1996-09-24 | ベクトル量子化方法、音声符号化方法及び装置、並びに音声復号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3675054B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5291004B2 (ja) * | 2007-03-02 | 2013-09-18 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 通信ネットワークにおける方法及び装置 |
-
1996
- 1996-09-24 JP JP25161596A patent/JP3675054B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1097299A (ja) | 1998-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3707153B2 (ja) | ベクトル量子化方法、音声符号化方法及び装置 | |
JP3707154B2 (ja) | 音声符号化方法及び装置 | |
JP3707116B2 (ja) | 音声復号化方法及び装置 | |
JP3680380B2 (ja) | 音声符号化方法及び装置 | |
JP4005154B2 (ja) | 音声復号化方法及び装置 | |
KR100487136B1 (ko) | 음성복호화방법및장치 | |
US7392179B2 (en) | LPC vector quantization apparatus | |
US6532443B1 (en) | Reduced length infinite impulse response weighting | |
JP3557662B2 (ja) | 音声符号化方法及び音声復号化方法、並びに音声符号化装置及び音声復号化装置 | |
JPH10214100A (ja) | 音声合成方法 | |
JPH11330977A (ja) | オ―ディオ信号符号化装置、オ―ディオ信号復号化装置、及び、オ―ディオ信号符号化・復号化装置 | |
JP3675054B2 (ja) | ベクトル量子化方法、音声符号化方法及び装置、並びに音声復号化方法 | |
JPH09127997A (ja) | 音声符号化方法及び装置 | |
JPH09127993A (ja) | 音声符号化方法及び音声符号化装置 | |
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 |