JP3731575B2 - 符号化装置及び復号装置 - Google Patents
符号化装置及び復号装置 Download PDFInfo
- Publication number
- JP3731575B2 JP3731575B2 JP2002306411A JP2002306411A JP3731575B2 JP 3731575 B2 JP3731575 B2 JP 3731575B2 JP 2002306411 A JP2002306411 A JP 2002306411A JP 2002306411 A JP2002306411 A JP 2002306411A JP 3731575 B2 JP3731575 B2 JP 3731575B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- pitch
- variable number
- amplitude
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【産業上の利用分野】
本発明は、符号化装置及び復号装置に関し、特に、音声合成分析装置(ボコーダ)等において算出されたスペクトルの振幅データのような可変個数のデータを一定個数のデータに変換するようなデータ数変換を伴う符号化装置及び復号装置に関する。
【0002】
【従来の技術】
オーディオ信号(音声信号や音響信号を含む)の時間領域や周波数領域における統計的性質と人間の聴感上の特性を利用して信号圧縮を行うような符号化方法が種々知られている。この符号化方法としては、大別して時間領域での符号化、周波数領域での符号化、分析合成符号化等が挙げられる。
【0003】
音声信号等の高能率符号化の例として、MBE(Multiband Excitation: マルチバンド励起)符号化、SBE(Singleband Excitation:シングルバンド励起)符号化、ハーモニック(Harmonic)符号化、SBC(Sub-band Coding:帯域分割符号化)、LPC(Linear Predictive Coding: 線形予測符号化)、あるいはDCT(離散コサイン変換)、MDCT(モデファイドDCT)、FFT(高速フーリエ変換)等において、スペクトル振幅やそのパラメータ(LSPパラメータ、αパラメータ、kパラメータ等)のような各種情報データを量子化する場合に、従来においてはスカラ量子化を行うことが多い。
【0004】
【発明が解決しようとする課題】
ところで、ビットレートを例えば3〜4kbps 程度にまで低減し、量子化効率を更に向上させようとすると、スカラ量子化では量子化雑音(歪み)が大きくなってしまい、実用化が困難であった。そこで、これらの符号化の際に得られる時間軸データや周波数軸データやフィルタ係数データ等を個々に量子化せず、複数個のデータを組(ベクトル)にまとめて一つの符号で表現して量子化するベクトル量子化が注目されている。
【0005】
しかしながら、上記MBE、SBE、LPC等のスペクトル振幅データ等は、ピッチに依存して個数が変化するため、そのままベクトル量子化しようとすると可変次元のベクトル量子化が必要となり、構成が複雑化するのみならず、良好な特性を得ることが困難である。
【0006】
また、量子化の前にデータのブロック(フレーム)間差分をとるような場合にも、前後のブロック(フレーム)内のデータの個数が一致していないと、差分をとることができない。このように、可変個数のデータを一定個数に変換することがデータ処理の過程で必要とされることがあるが、特性の良好なデータ数変換が望まれる。
【0007】
そこで、本出願人は、特願平4−92263号特許出願の明細書及び図面において、可変個数のデータを一定個数に変換することができ、端点でリンキング等の発生しない特性の良好なデータ数変換が行えるようなデータ数変換方法を提案した。この方法は、ブロック毎に可変個数のデータを非線形圧縮部で非線形圧縮し、ダミーデータ付加部でブロック内の最後のデータ値から最初のデータ値までの補間をするようなダミーデータを付加してデータ個数を拡大した後、高速フーリエ変換(FFT)処理部、逆高速フーリエ変換(IFFT)処理部等を有した帯域制限型のオーバーサンプリング部でオーバーサンプルし、直線補間部で直線補間し、間引き処理部で間引くことにより一定個数のサンプルデータに変換するものである。
【0008】
この出願によるデータ数変換方法では、FFTをする際に、1ブロックを例えば256サンプルに延長して計算している。次に、例えば8倍のオーバーサンプリングを実現するために、FFT変換により得られた256サンプルのスペクトルデータに対し、各サンプルの中間に7(=8−1)個の0を詰めるような中間0詰め処理を行って2048サンプルとし、この2048サンプルに対してIFFTの計算を行っている。
【0009】
ところで、通常のFFT、IFFTでは、1ブロックのサンプル数をNとするとき、(N/2×log2N)の複素乗算と、(Nlog2N)の複素加算が行われている。ここで、(N/2log2N)の複素乗算は、(N/2×log2N×4)の実数乗算となり、(Nlog2N)の複素加算は、(Nlog2N×2)の実数加算となる。したがって、Nを256としたときのFFTの演算量は、4096回(=256/2×8×4)となり、N=2048としたときのIFFTの演算量は、45056回(=2048/2×11×4)となり、その合計は49152回となる。
【0010】
また、全実数入力に対して、N/2点のFFTで、N点FFTが実現できる、いわゆる高速化の手法を用いたとしても、N/4(log2N−1)×4+N×4の実数乗算と、N/2(log2N−1)×2+N×2の実数加算が必要となる。すなわち、N=256としたときのFFTでは、乗算が2816回、加算が2304回行われる。また、N=2048としたときのIFFTでは、乗算が28672回、加算が24576回行われる。したがって、乗算だけでも31488回の演算が必要となる。
【0011】
なお、以上はエンコードの際において、ブロック(フレーム)内で可変個数(8〜63個)のサンプルデータを一定個数(44個)のサンプルデータに変換するデータ数(サンプルレート)変換を想定しているが、デコードの場合も同様な方法でブロック(フレーム)内の一定個数(44個)のサンプルデータを可変個数(8〜63個)のサンプルデータ変換しているものである。
【0012】
ところで、実際に求めたい点の数は、エンコードの際には2048点でIFFTした内の約44点程であり、また、デコードの際を考慮しても、最終的に得たいサンプル数は最大でも63個程度であり、このような間引かれた演算を行うという性質が生かされていなかった。
【0013】
本発明は、このような実情に鑑みてなされたものであり、演算量を低減しながらも、エンコードの際には可変個数のデータを一定個数に変換することができ、またデコードの際には一定個数のデータを可変個数のデータに変換することができるようなデータ数変換を用いた符号化装置及び復号装置の提供を目的とする。
【0015】
【課題を解決するための手段】
本発明に係る符号化装置は、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換して符号化する符号化装置であって、複数の係数セットを記憶する記憶手段と、上記可変個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置に対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる一定個数の系列データを求める手段とを有することにより、上述の課題を解決する。
【0017】
また、本発明に係る復号装置は、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数の系列データを復号化し、上記復号化された一定個数の系列データから可変個数の系列データに逆変換する復号装置であって、複数の係数セットを記憶する記憶手段と、上記復号化された一定個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置に対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる可変個数の系列データを求める手段とを有することにより、上述の課題を解決する。
【0018】
【実施例】
以下、本発明に係る符号化装置及び復号装置の実施例について、図面を参照しながら説明する。
【0019】
図1は本発明の第1の実施例となる符号化装置に用いられるデータ数変換の概略構成を示している。この第1の実施例は後述するMBEボコーダに適用される。すなわち、MBEボコーダにより算出されたスペクトルエンベロープの個数が可変とされた振幅データを一定個数に変換する方法である。
【0020】
図1において、入力端子11には、後述するMBEボコーダにより算出されたスペクトルエンベロープの振幅データ等が供給されている。この振幅データは、例えば図2のAに示すようなスペクトルを有する音声信号を分析して、ピッチ周波数(角周波数)ωを求め、このピッチ周波数ωに応じたスペクトルの周期性を考慮して、各高調波(ハーモニクス)位置での振幅から、図2のBに示すようなスペクトル包絡(エンベロープ)を表す振幅データとして求められる。この振幅データの個数は一定の有効帯域(例えば200〜3400Hz)内でピッチ周波数ωに依存して変化する。そこで、図2のCに示すように一定の固定周波数(角周波数)ωc の各高調波位置での上記スペクトル包絡の振幅データを求めることで、データ個数を一定にできる。
【0021】
図1の例では、入力端子11からの可変数M個(例えばM=8〜63である)の入力データを、非線形圧縮部12にて例えばdB領域に圧縮(対数圧縮)した後、データ個数変換本体部13にて一定個数のデータに変換している。データ個数変換本体部13は、スペクトルエンベロープ拡張部14、帯域制限型FIRフィルタ15及び直線補間部16から成っている。
【0022】
入力されたブロック毎の可変数M個の入力データは、非線形圧縮部12で非線形圧縮され、スペクトルエンベロープ拡張部14でスペクトルエンベロープの両端の値を繰り返して前後に延長される。この両端が前後に延長されたスペクトルエンベロープは、FIRフィルタ15に供給される。このFIRフィルタ15は入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める。この中間的な出力データは、直線補間部16に供給され、直線補間されて最終出力に必要とされる一定個数のデータとなり、出力端子17から出力される。
【0023】
ここで、後述するMBEボコーダにおいて算出されるM個(mMX+1個)の振幅データ列をa〔m〕とする。mは上記高調波(ハーモニックス)の次数あるいはバンド番号であり、mMXが最大値であるが、m=0のバンドの振幅データも含めて、全バンドの振幅データの個数はmMX+1個となる。この振幅データa〔m〕を、非線形圧縮部12にて例えばdB領域に変換する。すなわち得られたデータをadB〔m〕とするとき、
adB〔m〕=20 log10a〔m〕 ・・・(1)
である。この対数変換された振幅データadB〔m〕の個数mMX+1は、上述したようにピッチに依存して変化するため、一定個数の振幅データb〔m〕に変換する。これは一種のサンプリングレート(サンプルレート)変換である。なお、非線形圧縮部12での圧縮処理は、dB領域への対数圧縮の他に、例えばいわゆるμ-lawやα-lawのような疑似対数圧縮処理を施してもよい。このように、振幅を圧縮することにより、能率的な符号化が実現される。
【0024】
MBEボコーダに入力される時間軸上の音声信号に対するサンプリング周波数fs は、通常8kHzで、全帯域幅は3.4kHz(ただし有効帯域は200〜3400Hz)であり、女声の高い方から男声の低い方までのピッチラグ(ピッチ周期に相当するサンプル数)は、20〜147程度である。従って、ピッチ(角)周波数ωは、8000/147≒54(Hz)から 8000/20=400(Hz)程度までの間で変動することになる。従って、周波数軸上で上記3.4kHzまでの間に約8〜63本のピッチパルス(ハーモニックス)が立つことになる。すなわち、周波数軸上のdB領域の波形として、8サンプル乃至63サンプルから成るmMX+1個のデータを、一定のサンプル数、例えば44サンプルに、サンプル数変換を行うわけである。これが、図2のCに示すように、一定のピッチ周波数(角周波数)ωC 毎のハーモニックスの位置のサンプルを求めることに相当する。
【0025】
次にスペクトルエンベロープ拡張部14は、上述したように非線形圧縮部12で非線形圧縮され、adB〔m〕の配列で表せるmMX+1個のスペクトルエンベロープの両端の値を前後に延長する。これはスペクトルエンベロープの端点におけるリンギングの発生を防ぐために行われる。このようにしてできた数列をaJdB 〔m〕とすると、このaJdB 〔m〕は−(f0 −1)/2≦m<M+(f0 −1)/2の範囲で、
【0026】
【数1】
【0027】
となる。ここでf0 は例えば9で、次に使用するFIRフィルタの(オーバーサンプリング後のサンプリングレートでみた)次数F0 例えば65と、F0 =OS ×(f0 −1)+1という関係にある定数である。また、f0 −1は、このスペクトルエンベロープ拡張を一種のオーバーサンプリングと考えたとき、オーバーサンプリングする前のサンプリングレートでみたときのフィルタ次数であり、F0 は、オーバーサンプリング後のサンプリングレートでみたときのフィルタの次数である。また、OS は、オーバーサンプリングの比率(レシオ) である。図3はこのaJdB 〔m〕を示す図である。すなわち、このaJ dB 〔m〕は、0≦m<Mの区間に示される元の波形adB〔m〕の左端F0をadB〔0〕のまま−(f0 −1)まで延長し、右端部を最後のデータであるadB〔M−1〕のままM+(f0 −1)/2まで延長している。
【0028】
本来、帯域制限型のオーバーサンプリングは、例えば(OS −1)個のデータを0詰めしたものにF0 次のフィルタを通したものとしてもよいが、0データに対する積和は無視してよい。そのため、帯域制限型のオーバーサンプリングは、8つの位相の係数セット(P=0・・・7)の各セット毎に(f0 −1)個の係数からなり、もとのF0 個の係数をオーバーサンプリングするフィルタ処理とみることができる。
【0029】
図4はF0 を65、f0 を9、OS を8とした場合のFIRフィルタ15の位相の係数を示す図である。図4のAは、−4πから4πまでの位相の変化範囲でF0 個(65個)の係数の大きさを振幅値として示している。位相変化が0πのとき係数値は1であるが、位相変化が±4π、±3π、±2π、±πのときは0である。また、この図4のAは0πの振幅を軸に左右対称となっている。図4のBは、P=0・・・7の各位相の係数セットの持つ係数値が図4のAのどこにあたるかを示している。なお、この係数値は、周知の方法によって導出できる。
【0030】
ここで、本発明においては、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置に対応する係数セットを用いることにより、出力として必要なデータそのもの、あるいは必要とされるデータの近傍のデータを求めることにより、演算自体を間引いて演算量を減らすものである。
【0031】
図5は、図4に示された係数セット(P=0・・・7)を用いてaJdB 〔m〕をフィルタリングし、出力として必要とされる一定個数のデータb〔m〕の内の任意の1個を得るための演算を説明するための図である。
【0032】
図5のAは、adB〔m〕を示す。このadB〔m〕からb〔m〕を得るには、上記スペクトルエンベロープ拡張部14でadB〔m〕の両端を延長して図3に示したようなaJdB 〔m〕を先ず得る。iは可変数M個のデータのインデックスである。
【0033】
例えば、図5のAに示されたb点におけるb〔m〕を求めようとする場合を以下に述べる。
【0034】
このb点に最も近傍の位置にある係数値のセットはP=2の係数セットである。このP=2の係数セットは図5のBに示すような各係数値を持っている。この各係数値をp20、p21、p22、p23、p24、p25、p27とする。すると、b点のb〔m〕は、インデックスi=0のデータと係数値p20の乗算値と、インデックスi=1のデータと係数値p21の乗算値と、インデックスi=2のデータと係数値p22の乗算値と、インデックスi=3のデータと係数値p23の乗算値と、インデックスi=4のデータと係数値p24の乗算値と、インデックスi=5のデータと係数値p25の乗算値と、インデックスi=6のデータと係数値p26の乗算値と、インデックスi=7のデータと係数値p27の乗算値との合計8個の乗算値の和として表せる。
【0035】
今、F0 個の係数を0≦k<F0 の範囲でcoef〔k〕とすると0≦m<M・OS の範囲でのb〔m〕は、次の(3)式で示される。
【0036】
【数2】
【0037】
この(3)式より、例えば、上記b点のb〔m〕は、OS =8であれば、b〔3×8+2〕であり、b〔26〕となり、b〔26〕のサンプルデータの振幅値を求めることになる。
【0038】
ここで、OS =8、f0 =9とすると上記(3)式は、
【0039】
【数3】
【0040】
となる。
【0041】
ここで、P=0のとき上記(4)式は、
【0042】
【数4】
【0043】
となり、i=0、1・・・7のデータの振幅をそのまま求めることになる。
【0044】
また、P=1・・・7のとき上記(4)式は、
【0045】
【数5】
【0046】
となり、aJdB 〔i−3〕、aJdB 〔i−2〕、aJdB 〔i−1〕、aJdB 〔i−0〕、aJdB 〔i+1〕、aJdB 〔i+2〕、aJdB 〔i+3〕、aJdB 〔i+4〕の8個のデータに対し、coef〔8−P〕、coef〔16−P〕、coef〔24−P〕、coef〔32−P〕、coef〔40−P〕、coef〔48−P〕、coef〔56−P〕、coef〔64−P〕の8個の係数が各々乗算され、その8個の乗算値が全て加算されてb〔m〕が得られることが分かる。
【0047】
例えば、上記図5のAに示されたb点のb〔m〕の例では、i=3、P=2であるので、aJdB 〔0〕、aJdB 〔1〕、・・・aJdB 〔7〕の8個のデータに対し、coef〔6〕、coef〔14〕、・・・coef〔62〕の8個の係数が各々乗算され、その8個の乗算値が全て加算されてb〔26〕が得られる。
【0048】
また、例えば、i=0、P=3のb〔m〕を求める場合は、上記スペクトルエンベロープ拡張部14で得たデータaJdB 〔−3〕、aJdB 〔−2〕、aJdB 〔−1〕の計3個のデータにそれぞれcoef〔5〕、coef〔11〕、coef〔22〕の計3個の係数を乗算した3個の乗算値と、aJdB 〔0〕、aJdB〔1〕、aJdB 〔2〕、aJdB 〔3〕、aJdB 〔4〕の計5個のデータにそれぞれcoef〔29〕、coef〔37〕、coef〔45〕、coef〔53〕、coef〔61〕の5個の係数を乗算した5個の乗算値とからなる計8個の乗算値が加算されてb〔3〕が得られる。
【0049】
ここで、aJdB 〔i+j−(f0 −1)/2〕の〔 〕内がimin −(f0 −1)/2=1−(f0 −1)/2、imax +(f0 −1)/2=mMX+(f0 −1)/2に関しては、スペクトルエンベロープ拡張部14により、データが拡張されているので問題はない。ここで、b〔m〕の一点を求めるのに必要な積は(f0 −1)回である。
【0050】
ところで、以上の説明においては、(例えば8倍の)オーバーサンプル点のいずれかの位置に上記最終的に必要とされる一定個数(例えば44個)のデータの位置が一致するものとして説明したが、現実には、このような一致を得るためにはオーバーサンプルの比率(倍数)を極めて高くとることが必要とされ、フィルタ係数の個数が膨大なものとなることより、最終的には必要とされるデータの位置の近傍(例えば前後の2点)のオーバーサンプル点のデータを中間的な出力として上記フィルタリング演算により求め、この中間的な出力を補間処理することで、上記最終的に必要とされるデータを求めることが好ましい。
【0051】
すなわち、上記FIRフィルタ15からのFIR出力は、直線補間部16に供給される。この直線補間部16は、上記FIRフィルタ15からの少なくとも2つのFIR出力を直線補間し、必要な出力点を得る。例えば、図6において点A0 を直線補間で求めるには、その点A0 を挟む2点A−1、A1 がFIRフィルタで算出されていればよい。したがって、データ個数変換本体部13で求められる最終的なエンコーダでの出力点の個数を44点とすれば、44×2(=88)点が上記FIRフィルタ15で算出されればよい。
【0052】
この必要な出力点を得るための2点A−1、A1 のb〔m〕を求める処理について図7のフローチャートを用いて説明する。
【0053】
ステップS1では、入力側の角周波数をOS (サンプリングレシオ)で割ったω0fと、出力側の角周波数ω0 を求める。第1の実施例では、OS (例えば8)倍のサンプリングを行っているので、スペクトルは、入力の角周波数の1/OS のインターバルで立っている。そのため、OS で割った値ω0fを出す。0〜πまでを例えば1024のグリッドで表現すると、このω0fは、1024/M×1/OS となる。 また、欲しい点(出力側)の角周波数はω0 であり、このω0 が1024/M' となる。ここで、M' は、出力側のハーモニクスの数である。
ステップS2では、入力側ハーモニクスのインデックスi及び出力側ハーモニクスのインデックスiiを初期化する。
【0054】
ステップS3では、上記係数セットPを初期化する。
【0055】
ステップS4では、入力側ハーモニクスのインデックスiと係数セットPとにより求めたいデータの位置A0 を検索(スキャン)する。すなわち、求めたいデータの位置A0 (=ω0 ×ii)を、iとPによるスキャンの位置A1 (=i×OS +P+1)が越えたか否かを判定する。例えば、始めは上記ステップS2、S3でiとPが初期化されているのでi=0、P=0として検索する。ここで、YESを判定するとステップS5に進み、NOを判定するとステップS7に進む。
【0056】
ステップS5では、求めたいデータの位置A0 (=ω0 ×ii)を越えたiとPによるスキャンの位置A1 (=i×OS +P+1)でのb〔m〕、すなわち、b〔i×OS +P+1〕とその一つ前(A−1)のb〔i×OS +P〕とを求める。このb〔i×OS +P+1〕とb〔i×OS +P〕とは上記求めたいデータの位置A0 (=ω0 ×ii)を挟み込むような位置(A1 とA−1の間)でのb〔m〕となる。
【0057】
ステップS6では、次に求めたいデータの位置を移動するため、出力側ハーモニクスのインデックスiiをインクリメントする。
【0058】
ステップS7では、スキャンの位置を移動するために係数セットPをインクリメントする。このときiは0のままである。すなわち、i=0のまま、Pを0から1に変える。
【0059】
ステップS8では、係数セットPがOS の値と一致したか否かを判定する。Pは0・・・7までの8個であり、OS も8としている。ここで、YESを判定するとステップS9に進み、NOを判定するとステップS4に進む。
【0060】
ステップS9では、入力側ハーモニクスのインデックスiをインクリメントする。そして、ステップS10に進む。
【0061】
ステップS10では、上記iが可変個数のデータと数(M個)と等しくなったか否かを判定する。ここでYESを判定するとこのフローは終了となり、NOを判定するとステップS3に戻る。
【0062】
以上のフローチャートより、本実施例はOS (ここではOS =8)倍でオーバーサンプリングピッチ(角周波数)ω0fのインターバルで周波数をインクリメントしてゆき出力として欲しい点を越えたところでのb〔m〕とその一つ手前のb〔m〕とを求めている。このようにすれば、出力点を直線補間で求めるのに必要な左右の点が全て算出されることになる。
【0063】
次に、上記図7に示したフローチャートの処理によって求められた、出力として欲しい点を越えたところでのb〔m〕とその一つ手前のb〔m〕を直線補間部16により直線する処理を図8のフローチャートを用いて説明する。
【0064】
ステップS21では、出力角周波数ω0 と、入力角周波数ω0fとを求める。これは、上記図7に示したステップS1と同様である。
【0065】
ステップS22では、以後のフローが入力側のハーモニクスの8倍のインデックスiでインクリメントされるのでこのiを初期化する。
【0066】
ステップS23では、i=0になっているか否かを判別する。ここでYESを判別するとステップS24に進み、NOを判別するとステップS25に進む。
【0067】
ステップS24、ステップS25では、図6に示すようにある一つの区間に着目して、その幅をbw とし、上限をub 、下限をlb としている。この上限ub は、inint (i+1)×ω0fとなり、下限lb は、inint i×ω0fとなる。ここで、inint はinint (x)とするとき、xに最も近い数を返す関数である。また、上記下限lb は、一回前の上限ub となる。したがって、bw は、上限ub と下限lb との差になる。
【0068】
上記ステップS24では、下限lb を0とし、ステップS26に進む。
【0069】
上記ステップS25では、下限lb と上限ub とを一致させる。
【0070】
ステップS26では、上述したように上限ub をinint (i+1)×ω0fと設定する。
【0071】
ステップS27では、上限ub と下限lb との差であるbw を求める。そして、このbw の間をスキャンして、直線補間値c〔ii〕を求める。
【0072】
ステップS28では、図6に示す求めようとするc〔ii〕と下限lb との差idxを0に設定する。すなわち、idx=0の位置(下限lb と一致)からスキャンを開始するスキャン開始位置を設定する。
【0073】
ステップS29では、上述したように下限lb からスキャンjを開始する。
【0074】
ステップS30では、スキャンjが求めようとするc〔ii〕の位置と一致したか否かを判別する。ここで、YESを判別するとステップS31に進み、NOを判別するとステップS32に進む。
【0075】
ステップS31では、位置関係に関連する重み付けを考慮したc〔ii〕を求める。ここで、例えば、idxが0のときは、c〔ii〕=b〔i〕となり、idxがbw のときは、c〔ii〕=b〔i+1〕となる。
ステップS32では、idxをインクリメントする。そして、ステップS33では、出力ハーモニクスのインデックスiiが出力ハーモニクスの数M' より大きくなったか否かを判別する。ここで、YESを判別すると、このフローは終了となり、NOを判別するとステップS34に進む。
【0076】
ステップS34では、スキャンjの繰り返しを始める。
【0077】
ステップS35では、スキャンjが上限ub まで到達したか否かを判別する。ここで、YESを判別するとステップS36に進み、NOを判別するとステップS30に戻る。
【0078】
ステップS36では、入力側のハーモニクスiをインクリメントする。
【0079】
ステップS37では、iが入力ハーモニクスMとOS との積よりも大きくなったか否かを判別する。ここで、YESを判別するとこのフローは終了となるが、NOを判別するとステップS23に戻る。
【0080】
以上のフローチャートより、本実施例は、上記図7のフローチャートの処理で求めたb〔m〕を直線補間部16により直線補間するだけで、必要な点だけを求められる。
【0081】
このように第1の実施例は、必要な点のみを求めることによって、個数が可変とされたデータを一定個数にすることができる。そのため、演算量が減少する。
【0082】
このようにして、一定サンプル数のデータに変換した数列に必要に応じてブロック間、あるいはフレーム間で差分をとり、ベクトル量子化を施して、そのインデックスを伝送するようにすればよい。
【0083】
上述した第1の実施例は、MBEボコーダにより算出されたスペクトルエンベロープの個数が可変とされた振幅データを一定個数に変換する方法であったが、以下、第2の実施例として、一定個数にされたデータをデータ内容に応じた個数のデータに変換するデータ個数変換方法を説明する。この第2の実施例は例えば音声信号を合成するデコーダ側に適用される。すなわち、デコーダ側では、上記インデックスより、ベクトル量子化及び逆量子化された数列の一定個数とされた波形データを得て、そのデータ列を、同様の方法で、すなわち帯域制限オーバーサンプリング、直線補間等を施すことにより、データの内容に応じた個数のM個の数列に変換する。
【0084】
図9は第2の実施例の概略構成を示している。
【0085】
上記第1の実施例において、一定個数とされた入力データは入力端子21を介してデータ個数変換本体部22に供給され、このデータ個数変換本体部22で可変個数のデータとされて出力端子26から出力される。このデータ個数変換本体部22は、スペクトルエンベロープ拡張部23、帯域制限型FIRフィルタ24及び直線補間部25から成っている。
【0086】
入力されたブロック毎に一定個数の入力データは、スペクトルエンベロープ拡張部23でスペクトルエンベロープの両端の値を延長される。この両端が前後に延長されたスペクトルエンベロープは、FIRフィルタ24に供給される。このFIRフィルタ24はスペクトルエンベロープが延長されることによりデータ個数が拡大されたデータのサンプル点に対しそれぞれ異なる複数の位相と対応した複数の係数セットの内の一定個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める。そして、この中間的な出力データは直線補間部25に供給される。この直線補間部25は上記中間的な出力データを直線補間し、出力端子26から間引きされ、データ内容に応じた可変個数のデータを出力する。
【0087】
この第2の実施例は、必要な点のみを求めることによって、個数が一定とされたデータをデータ内容に応じた個数に変換することができる。そのため、演算量が減少される。
【0088】
ここで、第1の実施例による乗算の回数は、求めるデータの個数を44個とすれば、その2倍の88個のデータに対し、8回の乗算が施されることになり、1024回の乗算となる。これは、上述した高速化手法を用いたFFT、IFFTの乗算の回数の合計31488回の1/45となる。また、第2の実施例による乗算の回数は、求めるデータの個数を60個とすれば、その2倍の120個のデータに対し、8回の乗算がほどこされることになる。これは、上述した高速化手法を用いたFFT、IFFTの乗算の回数の合計31488回の1/30となる。
【0089】
次に、上述したようなデータ数変換方法が適用可能な、音声信号の合成分析符号化装置(いわゆるボコーダ)の一種のMBE(Multiband Excitation: マルチバンド励起)ボコーダの具体例について、図面を参照しながら説明する。
【0090】
以下に説明するMBEボコーダは、D.W. Griffin and J.S. Lim, “Multiband Excitation Vocoder," IEEE Trans.Acoustics,Speech,and Signal Processing, vol.36, No.8, pp.1223-1235, Aug. 1988 に開示されているものであり、従来のPARCOR(PARtial auto-CORrelation: 偏自己相関)ボコーダ等では、音声のモデル化の際に有声音区間と無声音区間とをブロックあるいはフレーム毎に切り換えていたのに対し、MBEボコーダでは、同時刻(同じブロックあるいはフレーム内)の周波数軸領域に有声音(Voiced)区間と無声音(Unvoiced)区間とが存在するという仮定でモデル化している。
【0091】
図10は、上記MBEボコーダに本発明を適用した実施例の全体の概略構成を示すブロック図である。
【0092】
この図10において、入力端子101には音声信号が供給されるようになっており、この入力音声信号は、HPF(ハイパスフィルタ)等のフィルタ102に送られて、いわゆるDC(直流)オフセット分の除去や帯域制限(例えば200〜3400Hzに制限)のための少なくとも低域成分(200Hz以下)の除去が行われる。このフィルタ102を介して得られた信号は、ピッチ抽出部103及び窓かけ処理部104にそれぞれ送られる。ピッチ抽出部103では、入力音声信号データが所定サンプル数N(例えばN=256)単位でブロック分割され(あるいは方形窓による切り出しが行われ)、このブロック内の音声信号についてのピッチ抽出が行われる。このような切り出しブロック(256サンプル)を、例えば図11のAに示すようにLサンプル(例えばL=160)のフレーム間隔で時間軸方向に移動させており、各ブロック間のオーバラップはN−Lサンプル(例えば96サンプル)となっている。また、窓かけ処理部104では、1ブロックNサンプルに対して所定の窓関数、例えばハミング窓をかけ、この窓かけブロックを1フレームLサンプルの間隔で時間軸方向に順次移動させている。
【0093】
このような窓かけ処理を数式で表すと、
xw (k,q) =x(q) w(kL-q) ・・・(7)
となる。この(7)式において、kはブロック番号を、qはデータの時間インデックス(サンプル番号)を表し、処理前の入力信号のq番目のデータx(q) に対して第kブロックの窓(ウィンドウ)関数w(kL-q)により窓かけ処理されることによりデータxw (k,q) が得られることを示している。ピッチ抽出部103内での図11のAに示すような方形窓の場合の窓関数wr (r) は、
また、窓かけ処理部104での図11のBに示すようなハミング窓の場合の窓関数wh (r) は、
である。このような窓関数wr (r) あるいはwh (r) を用いるときの上記(7)式の窓関数w(r) (=w(kL-q))の否零区間は、
0≦kL−q<N
これを変形して、
kL−N<q≦kL
従って例えば上記方形窓の場合に窓関数wr (kL-q)=1となるのは、図12に示すように、kL−N<q≦kLのときとなる。また、上記(7)〜(9)式は、長さN(=256)サンプルの窓が、L(=160)サンプルずつ前進してゆくことを示している。以下、上記(8)式、(9)式の各窓関数で切り出された各N点(0≦r<N)の否零サンプル列を、それぞれxwr(k,r) 、xwh(k,r) と表すことにする。
【0094】
窓かけ処理部104では、図13に示すように、上記(9)式のハミング窓がかけられた1ブロック256サンプルのサンプル列xwh(k,r) に対して1792サンプル分の0データが付加されて(いわゆる0詰めされて)2048サンプルとされ、この2048サンプルの時間軸データ列に対して、直交変換部105により例えばFFT(高速フーリエ変換)等の直交変換処理が施される。あるいは、256点のままで(0詰めなしで)FFTを施してもよい。
【0095】
ピッチ抽出部103では、上記xwr(k,r) のサンプル列(1ブロックNサンプル)に基づいてピッチ抽出が行われる。このピッチ抽出法には、時間波形の周期性や、スペクトルの周期的周波数構造や、自己相関関数を用いるもの等が知られているが、本実施例では、センタクリップ波形の自己相関法を採用している。このときのブロック内でのセンタクリップレベルについては、1ブロックにつき1つのクリップレベルを設定してもよいが、ブロックを細分割した各部(各サブブロック)の信号のピークレベル等を検出し、これらの各サブブロックのピークレベル等の差が大きいときに、ブロック内でクリップレベルを段階的にあるいは連続的に変化させるようにしている。このセンタクリップ波形の自己相関データのピーク位置に基づいてピッチ周期を決めている。このとき、現在フレームに属する自己相関データ(自己相関は1ブロックNサンプルのデータを対象として求められる)から複数のピークを求めておき、これらの複数のピークの内の最大ピークが所定の閾値以上のときには該最大ピーク位置をピッチ周期とし、それ以外のときには、現在フレーム以外のフレーム、例えば前後のフレームで求められたピッチに対して所定の関係を満たすピッチ範囲内、例えば前フレームのピッチを中心として±20%の範囲内にあるピークを求め、このピーク位置に基づいて現在フレームのピッチを決定するようにしている。このピッチ抽出部103ではオープンループによる比較的ラフなピッチのサーチが行われ、抽出されたピッチデータは高精度(ファイン)ピッチサーチ部106に送られて、クローズドループによる高精度のピッチサーチ(ピッチのファインサーチ)が行われる。
【0096】
高精度(ファイン)ピッチサーチ部106には、ピッチ抽出部103で抽出された整数(インテジャー)値の粗(ラフ)ピッチデータと、直交変換部105により例えばFFTされた周波数軸上のデータとが供給されている。この高精度ピッチサーチ部106では、上記粗ピッチデータ値を中心に、0.2〜0.5きざみで±数サンプルずつ振って、最適な小数点付き(フローティング)のファインピッチデータの値へ追い込む。このときのファインサーチの手法として、いわゆる合成による分析 (Analysis by Synthesis)法を用い、合成されたパワースペクトルが原音のパワースペクトルに最も近くなるようにピッチを選んでいる。
【0097】
このピッチのファインサーチについて説明する。先ず、上記MBEボコーダにおいては、上記FFT等により直交変換された周波数軸上のスペクトルデータとしてのS(j) を
S(j) =H(j) |E(j)| 0<j<J ・・・(10)
と表現するようなモデルを想定している。ここで、Jはωs/4π=fs/2に対応し、サンプリング周波数fs=ωs/2πが例えば8kHzのときには4kHzに対応する。上記(10)式中において、周波数軸上のスペクトルデータS(j) が図14のAに示すような波形のとき、H(j) は、図14のBに示すような元のスペクトルデータS(j) のスペクトル包絡線(エンベロープ)を示し、E(j) は、図14のCに示すような等レベルで周期的な励起信号(エキサイテイション)のスペクトルを示している。すなわち、FFTスペクトルS(j) は、スペクトルエンベロープH(j) と励起信号のパワースペクトル|E(j)| との積としてモデル化される。
【0098】
上記励起信号のパワースペクトル|E(j)| は、上記ピッチに応じて決定される周波数軸上の波形の周期性(ピッチ構造)を考慮して、1つの帯域(バンド)の波形に相当するスペクトル波形を周波数軸上の各バンド毎に繰り返すように配列することにより形成される。この1バンド分の波形は、例えば上記図13に示すような256サンプルのハミング窓関数に1792サンプル分の0データを付加(0詰め)した波形を時間軸信号と見なしてFFTし、得られた周波数軸上のある帯域幅を持つインパルス波形を上記ピッチに応じて切り出すことにより形成することができる。
【0099】
次に、上記ピッチに応じて分割された各バンド毎に、上記H(j) を代表させるような(各バンド毎のエラーを最小化するような)値(一種の振幅)|Am |を求める。ここで、例えば第mバンド(第m高調波の帯域)の下限、上限の点をそれぞれam 、bm とするとき、この第mバンドのエラーεm は、
【0100】
【数6】
【0101】
で表せる。このエラーεm を最小化するような|Am |は、
【0102】
【数7】
【0103】
となり、この(12)式の|Am |のとき、エラーεm を最小化する。このような振幅|Am |を各バンド毎に求め、得られた各振幅|Am |を用いて上記(11)式で定義された各バンド毎のエラーεm を求める。次に、このような各バンド毎のエラーεm の全バンドの総和値Σεm を求める。さらに、このような全バンドのエラー総和値Σεm を、いくつかの微小に異なるピッチについて求め、エラー総和値Σεm が最小となるようなピッチを求める。
【0104】
すなわち、上記ピッチ抽出部103で求められたラフピッチを中心として、例えば 0.25 きざみで上下に数種類ずつ用意する。これらの複数種類の微小に異なるピッチの各ピッチに対してそれぞれ上記エラー総和値Σεm を求める。この場合、ピッチが定まるとバンド幅が決まり、上記(13)式より、周波数軸上データのパワースペクトル|S(j) |と励起信号スペクトル|E(j) |とを用いて上記(11)式のエラーεm を求め、その全バンドの総和値Σεm を求めることができる。このエラー総和値Σεm を各ピッチ毎に求め、最小となるエラー総和値に対応するピッチを最適のピッチとして決定するわけである。以上のようにして高精度ピッチサーチ部106で最適のファイン(例えば 0.25 きざみ)ピッチが求められ、この最適ピッチに対応する振幅|Am |が決定される。
【0105】
以上ピッチのファインサーチの説明においては、説明を簡略化するために、全バンドが有声音(Voiced)の場合を想定しているが、上述したようにMBEボコーダにおいては、同時刻の周波数軸上に無声音(Unvoiced)領域が存在するというモデルを採用していることから、上記各バンド毎に有声音/無声音の判別を行うことが必要とされる。
【0106】
上記高精度ピッチサーチ部106からの最適ピッチ及び振幅|Am |のデータは、有声音/無声音判別部107に送られ、上記各バンド毎に有声音/無声音の判別が行われる。この判別のために、NSR(ノイズtoシグナル比)を利用する。すなわち、第mバンドのNSRは、
【0107】
【数8】
【0108】
と表せ、このNSR値が所定の閾値(例えば0.3)より大のとき(エラーが大きい)ときには、そのバンドでの|Am ||E(j) |による|S(j) |の近似が良くない(上記励起信号|E(j) |が基底として不適当である)と判断でき、当該バンドをUV(Unvoiced、無声音)と判別する。これ以外のときは、近似がある程度良好に行われていると判断でき、そのバンドをV(Voiced、有声音)と判別する。
【0109】
次に、振幅再評価部108には、直交変換部105からの周波数軸上データ、高精度ピッチサーチ部106からのファインピッチと評価された振幅|Am |との各データ、及び上記有声音/無声音判別部107からのV/UV(有声音/無声音)判別データが供給されている。この振幅再評価部108では、有声音/無声音判別部107において無声音(UV)と判別されたバンドに関して、再度振幅を求めている。このUVのバンドについての振幅|Am |UVは、
【0110】
【数9】
【0111】
にて求められる。
【0112】
この振幅再評価部108からのデータは、データ数変換(一種のサンプリングレート変換)部109に送られる。このデータ数変換部109は、上記ピッチに応じて周波数軸上での分割帯域数が異なり、データ数(特に振幅データの数)が異なることを考慮して、一定の個数にするためのものである。すなわち、例えば有効帯域を3400kHzまでとすると、この有効帯域が上記ピッチに応じて、8バンド〜63バンドに分割されることになり、これらの各バンド毎に得られる上記振幅|Am |(UVバンドの振幅|Am |UVも含む)データの個数mM X+1も8〜63と変化することになる。このためデータ数変換部109では、この可変個数mMX+1の振幅データを一定個数(例えば44個)のデータに変換している。
【0113】
ここで本第1の実施例においては、上記図1〜図8と共に説明したように、周波数軸上の有効帯域1ブロック分の振幅データに対して、ブロック内の両端のデータを延長してデータ個数を拡大し、帯域制限型FIRフィルタによるフィルタ処理を施し、さらに直線補間を施すことにより一定個数(例えば44個)のデータを得ている。
【0114】
このデータ数変換部109からのデータ(上記一定個数の振幅データ)がベクトル量子化部110に送られて、所定個数のデータ毎にまとめられてベクトルとされ、ベクトル量子化が施される。ベクトル量子化部110からの量子化出力データは、CRC&レート1/2畳込み符号付加部111に供給されと共にフレームインターリーブ部112に供給される。また、上記高精度のピッチサーチ部106からの高精度(ファイン)ピッチデータ及び上記有声音/無声音判別部107からの有声音/無声音(V/UV)判別データも上記CRC&レート1/2畳込み符号付加部111に供給される。
【0115】
ここで、上記CRC&レート1/2畳込み符号付加部111は、上記ファインピッチデータ、V/UV判別データ及び量子化出力データを用いて、スペクトルエンベロープの量子化を階層的な構造とし、その出力インデックスの重要度を分けることで効果的に畳込み符号による誤り訂正を行う。
【0116】
これは、本件出願人が特願平4−91422号において、提案した高能率符号化方法、すなわち、M次元ベクトルを、S次元(S<M)ベクトルに次元低下させてベクトル量子化するような、階層構造化されたコードブックを有する量子化を行わせる方法と同様に誤り訂正符号の効果的な適用が可能となる方法である。
【0117】
具体的に、このデコーダ側のビタビ符号&CRC検出は、以下のような原理である。図15は、ビタビ復号&CRC検出の原理を説明するための機能ブロック図である。例えば、音声符号器121から出力された音声パラメータのうち、聴覚上特に重要な部分(クラス1)80ビットとそれ以外の部分(クラス2)40ビットとに分ける。クラス1のうちさらに重要な50ビットについてCRC計算ブロック122によりCRCを計算し、7ビットの結果を得る。クラス1の80ビットとCRCの7ビットと畳込み符号化器の初期値を0に戻すためのテールビット5ビットの合計92ビットを畳込み符号化部123に入力し、184ビットの出力を得る。畳込み符号化された184ビットとクラス2ビットの40ビットの計224ビットにつき、2スロットインターリーブ器124により、インターリーブを行い、その出力として224ビットを伝送する。
【0118】
この2スロットインターリーブ器124に相当するのが図10のフレームインターリーブ部112であり、その出力が出力端子113から伝送される。
【0119】
なお、これらの各データは、上記Nサンプル(例えば256サンプル)のブロック内のデータに対して処理を施すことにより得られるものであるが、ブロックは時間軸上を上記Lサンプルのフレームを単位として前進することから、伝送するデータは上記フレーム単位で得られる。すなわち、上記フレーム周期でピッチデータ、V/UV判別データ、振幅データが更新されることになる。
【0120】
次に、本発明に係る復号装置の実施例として、伝送されて得られた上記出力データに基づき音声信号を合成するための合成側(デコード側)の概略構成について、図16を参照しながら説明する。
【0121】
この図15において、入力端子131には、伝送されたきたCRC&レート1/2畳込み符号が付加された出力データが供給される。入力端子131からの出力データは、フレームデインタリーブ132に供給され、デインターリーブされる。デインターリーブされたデータは、ビタビ復号&CRC検出部133に供給され、復号化される。
【0122】
そして、マスク処理部134が、フレームデインターリーブ132からのデータをマスク処理し、量子化振幅データを逆ベクトル量子化部135に供給する。
【0123】
この逆量子化部135も階層構造化されており、各階層のインデックスデータに基づいて逆ベクトル化されたデータを合成して出力する。この逆量子化部135からの出力データは、データ数逆変換部136に送られて逆変換される。このデータ数逆変換部136では、上述した図9の説明と同様な(逆)変換が行われ、得られた振幅データが有声音合成部137及び無声音合成部138に送られる。また、上記マスク処理部134は、符号化ピッチデータをピッチ復号化部139に供給する。このピッチ復号化器139で復号されたピッチデータは、データ数逆変換部136、有声音合成部137及び無声音合成部138に送られる。また、上記マスク処理部134は、V/UV判別データを有声音合成部137及び無声音合成部138に供給する。
【0124】
有声音合成部137では例えば余弦(cosine)波合成により時間軸上の有声音波形を合成し、無声音合成部138では例えばホワイトノイズをバンドパスフィルタでフィルタリングして時間軸上の無声音波形を合成し、これらの各有声音合成波形と無声音合成波形とを加算部140で加算合成して、出力端子141より取り出すようにしている。この場合、上記振幅データ、ピッチデータ及びV/UV判別データは、上記分析時の1フレーム(Lサンプル、例えば160サンプル)毎に更新されて与えられるが、フレーム間の連続性を高める(円滑化する)ために、上記振幅データやピッチデータの各値を1フレーム中の例えば中心位置における各データ値とし、次のフレームの中心位置までの間(合成時の1フレーム)の各データ値を補間により求める。すなわち、合成時の1フレーム(例えば上記分析フレームの中心から次の分析フレームの中心まで)において、先端サンプル点での各データ値と終端(次の合成フレームの先端)サンプル点での各データ値とが与えられ、これらのサンプル点間の各データ値を補間により求めるようにしている。
【0125】
以下、有声音合成部137における合成処理を詳細に説明する。
【0126】
上記V(有声音)と判別された第mバンド(第m高調波の帯域)における時間軸上の上記1合成フレーム(Lサンプル、例えば160サンプル)分の有声音をVm (n) とするとき、この合成フレーム内の時間インデックス(サンプル番号)nを用いて、
Vm (n) =Am (n) cos(θm (n)) 0≦n<L・・・(15)
と表すことができる。全バンドの内のV(有声音)と判別された全てのバンドの有声音を加算(ΣVm (n) )して最終的な有声音V(n) を合成する。
【0127】
この(15)式中のAm (n) は、上記合成フレームの先端から終端までの間で補間された第m高調波の振幅である。最も簡単には、フレーム単位で更新される振幅データの第m高調波の値を直線補間すればよい。すなわち、上記合成フレームの先端(n=0)での第m高調波の振幅値をA0m、該合成フレームの終端(n=L:次の合成フレームの先端)での第m高調波の振幅値をALmとするとき、
Am (n) = (L-n)A0m/L+nALm/L ・・・(16)
の式によりAm (n) を計算すればよい。
【0128】
次に、上記(15)式中の位相θm (n) は、
により求めることができる。この(17)式中で、φ0mは上記合成フレームの先端(n=0)での第m高調波の位相(フレーム初期位相)を示し、ω01は合成フレーム先端(n=0)での基本角周波数、ωL1は該合成フレームの終端(n=L:次の合成フレーム先端)での基本角周波数をそれぞれ示している。上記(17)式中のΔωは、n=Lにおける位相φLmがθm (L) に等しくなるような最小のΔωを設定する。
【0129】
以下、任意の第mバンドにおいて、それぞれn=0、n=LのときのV/UV判別結果に応じた上記振幅Am (n) 、位相θm (n) の求め方を説明する。
【0130】
第mバンドが、n=0、n=LのいずれもV(有声音)とされる場合に、振幅Am (n) は、上述した(16)式により、伝送された振幅値A0m、ALmを直線補間して振幅Am (n) を算出すればよい。位相θm (n) は、n=0でθm (0) =φ0mからn=Lでθm (L) がφLmとなるようにΔωを設定する。
【0131】
次に、n=0のときV(有声音)で、n=LのときUV(無声音)とされる場合に、振幅Am (n) は、Am (0) の伝送振幅値A0mからAm (L) で0となるように直線補間する。n=Lでの伝送振幅値ALmは無声音の振幅値であり、後述する無声音合成の際に用いられる。位相θm (n) は、θm (0) =φ0mとし、かつΔω=0とする。
【0132】
さらに、n=0のときUV(無声音)で、n=LのときV(有声音)とされる場合には、振幅Am (n) は、n=0での振幅Am (0) を0とし、n=Lで伝送された振幅値ALmとなるように直線補間する。位相θm (n) については、n=0での位相θm (0) として、フレーム終端での位相値φLmを用いて、
θm (0) =φLm−m(ωO1+ωL1)L/2 ・・・(18)
とし、かつΔω=0とする。
【0133】
上記n=0、n=LのいずれもV(有声音)とされる場合に、θm (L) がφLmとなるようにΔωを設定する手法について説明する。上記(17)式で、n=Lと置くことにより、
となり、これを整理すると、Δωは、
Δω=(mod2π((φLm−φ0m) − mL(ωO1+ωL1)/2)/L・・・(19)
となる。この(19)式でmod2π(x) とは、xの主値を−π〜+πの間の値で返す関数である。例えば、x=1.3πのときmod2π(x) =−0.7π、x=2.3πのときmod2π(x) =0.3π、x=−1.3πのときmod2π(x) =0.7π、等である。
【0134】
ここで、図17のAは、音声信号のスペクトルの一例を示しており、バンド番号(ハーモニクスナンバ)mが8、9、10の各バンドがUV(無声音)とされ、他のバンドはV(有声音)とされている。このV(有声音)のバンドの時間軸信号が上記有声音合成部137により合成され、UV(無声音)のバンドの時間軸信号が無声音合成部138で合成されるわけである。
【0135】
以下、無声音合成部138における無声音合成処理を説明する。
【0136】
ホワイトノイズ発生部142からの時間軸上のホワイトノイズ信号波形を、所定の長さ(例えば256サンプル)で適当な窓関数(例えばハミング窓)により窓かけをし、STFT処理部143によりSTFT(ショートタームフーリエ変換)処理を施すことにより、図17のBに示すようなホワイトノイズの周波数軸上のパワースペクトルを得る。このSTFT処理部143からのパワースペクトルをバンド振幅処理部144に送り、図17のCに示すように、上記UV(無声音)とされたバンド(例えばm=8、9、10)について上記振幅|Am |UVを乗算し、他のV(有声音)とされたバンドの振幅を0にする。このバンド振幅処理部144には上記振幅データ、ピッチデータ、V/UV判別データが供給されている。バンド振幅処理部144からの出力は、ISTFT処理部145に送られ、位相は元のホワイトノイズの位相を用いて逆STFT処理を施すことにより時間軸上の信号に変換する。ISTFT処理部145からの出力は、オーバーラップ加算部146に送られ、時間軸上で適当な(元の連続的なノイズ波形を復元できるように)重み付けをしながらオーバーラップ及び加算を繰り返し、連続的な時間軸波形を合成する。オーバーラップ加算部146からの出力信号が上記加算部140に送られる。
【0137】
このように、各合成部137、138において合成されて時間軸上に戻された有声音部及び無声音部の各信号は、加算部140により適当な固定の混合比で加算して、出力端子141より再生された音声信号を取り出す。
【0138】
ここで、上述したデコーダ側のビタビ復号&CRC検出は、以下のような原理である。図18は、ビタビ復号&CRC検出の原理を説明するための機能ブロック図である。例えば、図18に示すような原理である。先ず、伝送されてきた224ビットを2スロットデインターリーブ器151が受信し、デインタリーブする。この2スロットデインターリーブ器151の出力をクラス2とエンコードされているクラス1ビットに分け、後者を畳込み復号化器152に入力し、復号して、80ビットのクラス1復号結果を受信7ビットを得る。次に、80ビットのクラス1復号結果からエンコーダで計算したのと同じパラメータビットに相当するものから再びCRCをCRC計算部153により計算し、受信CRCと比較し、その結果を音声復号器154に出力する。
【0139】
なお、上記図10の音声分析側(エンコード側)の構成や図16の音声合成側(デコード側)の構成については、各部をハードウェア的に記載しているが、いわゆるDSP(ディジタル信号プロセッサ)等を用いてソフトウェアプログラムにより実現することも可能である。
なお、本発明は上記実施例のみに限定されるものではなく、例えば、音声信号のみならず、音響信号を入力信号として用いることもできる。
【0140】
【発明の効果】
以上の説明から明らかなように、本発明に係る符号化装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数に変換して符号化する符号化装置であって、上記可変個数のデータが入力される帯域制限型オーバーサンプリングのためのFIRフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置に対応する係数セットを用いることにより、出力として必要な上記一定個数のデータを求める手段を有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【0141】
また、他の発明に係る符号化装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数のデータに変換して符号化する符号化装置であって、上記可変個数のデータが入力される帯域制限型オーバーサンプリングのためのFIRフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる一定個数のデータを求める手段とを有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【0142】
また、本発明に係る復号装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数のデータに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数のデータを復号化し、上記復号化された一定個数のデータから可変個数のデータに逆変換する復号装置であって、上記一定個数のデータが入力される帯域制限型オーバーサンプリングのためのFIRフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記可変個数のデータの各位置に対応する係数セットを用いることにより、出力として必要な上記可変個数のデータを求める手段を有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【0143】
また、他の発明に係る復号装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数のデータに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数のデータを復号化し、上記復号化された一定個数のデータから可変個数のデータに逆変換する復号装置であって、上記一定個数のデータが入力される帯域制限型オーバーサンプリングのためのFIRフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記可変個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる可変個数のデータを求める手段とを有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【図面の簡単な説明】
【図1】本発明に係る符号化装置の第1の実施例に用いられるデータ数変換方法を説明するための概略構成を示すブロック図である。
【図2】データ数変化の一例を説明するための波形図である。
【図3】スペクトルエンベロープの拡張を説明するための波形図である。
【図4】FIRフィルタのフィルタ係数を説明するための図である。
【図5】図4に示されたフィルタ係数を用い実際に出力点を求める例を説明するための図である。
【図6】直線補間で使う値の求め方及び直線補間を説明するための図である。
【図7】直線補間で使う値の求め方を説明するためのフローチャートである。
【図8】直線補間を説明するためのフローチャートである。
【図9】第2の実施例を説明するための図である。
【図10】本発明に係る符号化装置の実施例の具体例としての音声信号の合成分析符号化装置の分析側(エンコード側)の概略構成を示す機能ブロック図である。
【図11】窓かけ処理を説明するための図である。
【図12】窓かけ処理と窓関数との関係を説明するための図である。
【図13】直交変換(FFT)処理対象としての時間軸データを示す図である。
【図14】周波数軸上のスペクトルデータ、スペクトル包絡線(エンベロープ)及び励起信号のパワースペクトルを示す図である。
【図15】CRC&畳込み符号を説明するための図である。
【図16】本発明に係る復号装置の実施例として、データ数変換方法が適用される装置の具体例としての音声信号の合成分析符号化装置の合成側(デコード側)の概略構成を示す機能ブロック図である。
【図17】音声信号を合成する際の無声音合成を説明するための図である。
【図18】CRC&畳込み復号を説明するための図である。
【符号の説明】
12 非線形圧縮部、 13 データ個数変換本体部、 14 スペクトルエンベロープ拡張部、 15 帯域制限型FIRフィルタ、 16 直線補間部、103 ピッチ抽出部、 104 窓かけ処理部、 105 直交変換(FFT)部、 106 高精度(ファイン)ピッチサーチ部、 107 有声音/無声音(V/UV)判別部、 108 振幅再評価部、 109 データ数変換(データレートコンバート)部、 110 ベクトル量子化部、 111 CRC&畳込み符号化部、 112 フレームインターリーブ部
Claims (2)
- 入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換して符号化する符号化装置であって、
複数の係数セットを記憶する記憶手段と、
上記可変個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置に対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、
上記中間的な出力データを補間して必要とされる一定個数の系列データを求める手段と
を有することを特徴とする符号化装置。 - 入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数の系列データを復号化し、上記復号化された一定個数の系列データから可変個数の系列データに逆変換する復号装置であって、
複数の係数セットを記憶する記憶手段と、
上記復号化された一定個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置に対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、
上記中間的な出力データを補間して必要とされる可変個数の系列データを求める手段と
を有することを特徴とする復号装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002306411A JP3731575B2 (ja) | 2002-10-21 | 2002-10-21 | 符号化装置及び復号装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002306411A JP3731575B2 (ja) | 2002-10-21 | 2002-10-21 | 符号化装置及び復号装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4223227A Division JPH0651800A (ja) | 1992-07-30 | 1992-07-30 | データ数変換方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003216189A JP2003216189A (ja) | 2003-07-30 |
JP3731575B2 true JP3731575B2 (ja) | 2006-01-05 |
Family
ID=27655745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002306411A Expired - Lifetime JP3731575B2 (ja) | 2002-10-21 | 2002-10-21 | 符号化装置及び復号装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3731575B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100587309B1 (ko) | 2004-08-13 | 2006-06-08 | 엘지전자 주식회사 | 디지털 보간 필터 |
KR101762204B1 (ko) * | 2012-05-23 | 2017-07-27 | 니폰 덴신 덴와 가부시끼가이샤 | 부호화 방법, 복호 방법, 부호화 장치, 복호 장치, 프로그램 및 기록 매체 |
WO2016018185A1 (en) | 2014-07-28 | 2016-02-04 | Telefonaktiebolaget L M Ericsson (Publ) | Pyramid vector quantizer shape search |
CN107393291A (zh) * | 2017-07-07 | 2017-11-24 | 青岛酷控网络科技有限公司 | 一种红外码数据的压缩及解压缩方法 |
-
2002
- 2002-10-21 JP JP2002306411A patent/JP3731575B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003216189A (ja) | 2003-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3343965B2 (ja) | 音声符号化方法及び復号化方法 | |
JP3475446B2 (ja) | 符号化方法 | |
KR100427753B1 (ko) | 음성신호재생방법및장치,음성복호화방법및장치,음성합성방법및장치와휴대용무선단말장치 | |
JP3483958B2 (ja) | 広帯域音声復元装置及び広帯域音声復元方法及び音声伝送システム及び音声伝送方法 | |
US6081776A (en) | Speech coding system and method including adaptive finite impulse response filter | |
US6138092A (en) | CELP speech synthesizer with epoch-adaptive harmonic generator for pitch harmonics below voicing cutoff frequency | |
JP4958780B2 (ja) | 符号化装置、復号化装置及びこれらの方法 | |
JP2003512654A (ja) | 音声の可変レートコーディングのための方法およびその装置 | |
JPH0990968A (ja) | 音声合成方法 | |
JPH10214100A (ja) | 音声合成方法 | |
JP2000155597A (ja) | デジタル音声符号器において使用するための音声符号化方法 | |
JP3237178B2 (ja) | 符号化方法及び復号化方法 | |
JP3297749B2 (ja) | 符号化方法 | |
JP3297751B2 (ja) | データ数変換方法、符号化装置及び復号化装置 | |
JP3731575B2 (ja) | 符号化装置及び復号装置 | |
JP3472279B2 (ja) | 音声符号化パラメータ符号化方法及び装置 | |
JP3218679B2 (ja) | 高能率符号化方法 | |
JPH0651800A (ja) | データ数変換方法 | |
JP4578145B2 (ja) | 音声符号化装置、音声復号化装置及びこれらの方法 | |
JP3362471B2 (ja) | 音声信号の符号化方法及び復号化方法 | |
JP3916934B2 (ja) | 音響パラメータ符号化、復号化方法、装置及びプログラム、音響信号符号化、復号化方法、装置及びプログラム、音響信号送信装置、音響信号受信装置 | |
JP3321933B2 (ja) | ピッチ検出方法 | |
JP3297750B2 (ja) | 符号化方法 | |
JP3218680B2 (ja) | 有声音合成方法 | |
JPH0573098A (ja) | 音声処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050315 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050516 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050621 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050819 |
|
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: 20050920 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051003 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081021 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091021 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091021 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101021 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111021 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121021 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |