(57)【特許請求の範囲】
【請求項１】
入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換して符号化する符号化装置であって、
複数の係数セットを記憶する記憶手段と、
上記可変個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置に対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、
上記中間的な出力データを補間して必要とされる一定個数の系列データを求める手段と
を有することを特徴とする符号化装置。
【請求項２】
入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数の系列データを復号化し、上記復号化された一定個数の系列データから可変個数の系列データに逆変換する復号装置であって、
複数の係数セットを記憶する記憶手段と、
上記復号化された一定個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置に対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、
上記中間的な出力データを補間して必要とされる可変個数の系列データを求める手段と
を有することを特徴とする復号装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、符号化装置及び復号装置に関し、特に、音声合成分析装置（ボコーダ）等において算出されたスペクトルの振幅データのような可変個数のデータを一定個数のデータに変換するようなデータ数変換を伴う符号化装置及び復号装置に関する。
【０００２】
【従来の技術】
オーディオ信号（音声信号や音響信号を含む）の時間領域や周波数領域における統計的性質と人間の聴感上の特性を利用して信号圧縮を行うような符号化方法が種々知られている。この符号化方法としては、大別して時間領域での符号化、周波数領域での符号化、分析合成符号化等が挙げられる。
【０００３】
音声信号等の高能率符号化の例として、ＭＢＥ（Multiband Excitation: マルチバンド励起）符号化、ＳＢＥ（Singleband Excitation:シングルバンド励起）符号化、ハーモニック（Harmonic）符号化、ＳＢＣ（Sub-band Coding:帯域分割符号化）、ＬＰＣ（Linear Predictive Coding: 線形予測符号化）、あるいはＤＣＴ（離散コサイン変換）、ＭＤＣＴ（モデファイドＤＣＴ）、ＦＦＴ（高速フーリエ変換）等において、スペクトル振幅やそのパラメータ（ＬＳＰパラメータ、αパラメータ、ｋパラメータ等）のような各種情報データを量子化する場合に、従来においてはスカラ量子化を行うことが多い。
【０００４】
【発明が解決しようとする課題】
ところで、ビットレートを例えば３〜４ｋbps 程度にまで低減し、量子化効率を更に向上させようとすると、スカラ量子化では量子化雑音（歪み）が大きくなってしまい、実用化が困難であった。そこで、これらの符号化の際に得られる時間軸データや周波数軸データやフィルタ係数データ等を個々に量子化せず、複数個のデータを組（ベクトル）にまとめて一つの符号で表現して量子化するベクトル量子化が注目されている。
【０００５】
しかしながら、上記ＭＢＥ、ＳＢＥ、ＬＰＣ等のスペクトル振幅データ等は、ピッチに依存して個数が変化するため、そのままベクトル量子化しようとすると可変次元のベクトル量子化が必要となり、構成が複雑化するのみならず、良好な特性を得ることが困難である。
【０００６】
また、量子化の前にデータのブロック（フレーム）間差分をとるような場合にも、前後のブロック（フレーム）内のデータの個数が一致していないと、差分をとることができない。このように、可変個数のデータを一定個数に変換することがデータ処理の過程で必要とされることがあるが、特性の良好なデータ数変換が望まれる。
【０００７】
そこで、本出願人は、特願平４−９２２６３号特許出願の明細書及び図面において、可変個数のデータを一定個数に変換することができ、端点でリンキング等の発生しない特性の良好なデータ数変換が行えるようなデータ数変換方法を提案した。この方法は、ブロック毎に可変個数のデータを非線形圧縮部で非線形圧縮し、ダミーデータ付加部でブロック内の最後のデータ値から最初のデータ値までの補間をするようなダミーデータを付加してデータ個数を拡大した後、高速フーリエ変換（ＦＦＴ）処理部、逆高速フーリエ変換（ＩＦＦＴ）処理部等を有した帯域制限型のオーバーサンプリング部でオーバーサンプルし、直線補間部で直線補間し、間引き処理部で間引くことにより一定個数のサンプルデータに変換するものである。
【０００８】
この出願によるデータ数変換方法では、ＦＦＴをする際に、１ブロックを例えば２５６サンプルに延長して計算している。次に、例えば８倍のオーバーサンプリングを実現するために、ＦＦＴ変換により得られた２５６サンプルのスペクトルデータに対し、各サンプルの中間に７（＝８−１）個の０を詰めるような中間０詰め処理を行って２０４８サンプルとし、この２０４８サンプルに対してＩＦＦＴの計算を行っている。
【０００９】
ところで、通常のＦＦＴ、ＩＦＦＴでは、１ブロックのサンプル数をＮとするとき、（Ｎ／２×log２Ｎ）の複素乗算と、（Ｎlog２Ｎ）の複素加算が行われている。ここで、（Ｎ／２log２Ｎ）の複素乗算は、（Ｎ／２×log２Ｎ×４）の実数乗算となり、（Ｎlog２Ｎ）の複素加算は、（Ｎlog２Ｎ×２）の実数加算となる。したがって、Ｎを２５６としたときのＦＦＴの演算量は、４０９６回（＝２５６／２×８×４）となり、Ｎ＝２０４８としたときのＩＦＦＴの演算量は、４５０５６回（＝２０４８／２×１１×４）となり、その合計は４９１５２回となる。
【００１０】
また、全実数入力に対して、Ｎ／２点のＦＦＴで、Ｎ点ＦＦＴが実現できる、いわゆる高速化の手法を用いたとしても、Ｎ／４（log２Ｎ−１）×４＋Ｎ×４の実数乗算と、Ｎ／２（log２Ｎ−１）×２＋Ｎ×２の実数加算が必要となる。すなわち、Ｎ＝２５６としたときのＦＦＴでは、乗算が２８１６回、加算が２３０４回行われる。また、Ｎ＝２０４８としたときのＩＦＦＴでは、乗算が２８６７２回、加算が２４５７６回行われる。したがって、乗算だけでも３１４８８回の演算が必要となる。
【００１１】
なお、以上はエンコードの際において、ブロック（フレーム）内で可変個数（８〜６３個）のサンプルデータを一定個数（４４個）のサンプルデータに変換するデータ数（サンプルレート）変換を想定しているが、デコードの場合も同様な方法でブロック（フレーム）内の一定個数（４４個）のサンプルデータを可変個数（８〜６３個）のサンプルデータ変換しているものである。
【００１２】
ところで、実際に求めたい点の数は、エンコードの際には２０４８点でＩＦＦＴした内の約４４点程であり、また、デコードの際を考慮しても、最終的に得たいサンプル数は最大でも６３個程度であり、このような間引かれた演算を行うという性質が生かされていなかった。
【００１３】
本発明は、このような実情に鑑みてなされたものであり、演算量を低減しながらも、エンコードの際には可変個数のデータを一定個数に変換することができ、またデコードの際には一定個数のデータを可変個数のデータに変換することができるようなデータ数変換を用いた符号化装置及び復号装置の提供を目的とする。
【００１５】
【課題を解決するための手段】
本発明に係る符号化装置は、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換して符号化する符号化装置であって、複数の係数セットを記憶する記憶手段と、上記可変個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置に対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる一定個数の系列データを求める手段とを有することにより、上述の課題を解決する。
【００１７】
また、本発明に係る復号装置は、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数の系列データをブロック毎に一定の個数の基準データと比較するために上記可変個数の系列データを上記一定個数の系列データに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数の系列データを復号化し、上記復号化された一定個数の系列データから可変個数の系列データに逆変換する復号装置であって、複数の係数セットを記憶する記憶手段と、上記復号化された一定個数の系列データに対し当該系列の両端にデータを付加して所定の一定個数のデータからなる新たな系列データを生成し、上記一定個数のデータの各位置に対応する係数セットを上記記憶手段から選択し、選択された係数セットに含まれる複数の係数それぞれに対し、当該係数毎に対応付けられる上記新たな系列データとを掛け合わせ、掛け合わせることによって算出された複数の値を加算することにより中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる可変個数の系列データを求める手段とを有することにより、上述の課題を解決する。
【００１８】
【実施例】
以下、本発明に係る符号化装置及び復号装置の実施例について、図面を参照しながら説明する。
【００１９】
図１は本発明の第１の実施例となる符号化装置に用いられるデータ数変換の概略構成を示している。この第１の実施例は後述するＭＢＥボコーダに適用される。すなわち、ＭＢＥボコーダにより算出されたスペクトルエンベロープの個数が可変とされた振幅データを一定個数に変換する方法である。
【００２０】
図１において、入力端子１１には、後述するＭＢＥボコーダにより算出されたスペクトルエンベロープの振幅データ等が供給されている。この振幅データは、例えば図２のＡに示すようなスペクトルを有する音声信号を分析して、ピッチ周波数（角周波数）ωを求め、このピッチ周波数ωに応じたスペクトルの周期性を考慮して、各高調波（ハーモニクス）位置での振幅から、図２のＢに示すようなスペクトル包絡（エンベロープ）を表す振幅データとして求められる。この振幅データの個数は一定の有効帯域（例えば２００〜３４００Ｈｚ）内でピッチ周波数ωに依存して変化する。そこで、図２のＣに示すように一定の固定周波数（角周波数）ωｃ  の各高調波位置での上記スペクトル包絡の振幅データを求めることで、データ個数を一定にできる。
【００２１】
図１の例では、入力端子１１からの可変数Ｍ個（例えばＭ＝８〜６３である）の入力データを、非線形圧縮部１２にて例えばｄＢ領域に圧縮（対数圧縮）した後、データ個数変換本体部１３にて一定個数のデータに変換している。データ個数変換本体部１３は、スペクトルエンベロープ拡張部１４、帯域制限型ＦＩＲフィルタ１５及び直線補間部１６から成っている。
【００２２】
入力されたブロック毎の可変数Ｍ個の入力データは、非線形圧縮部１２で非線形圧縮され、スペクトルエンベロープ拡張部１４でスペクトルエンベロープの両端の値を繰り返して前後に延長される。この両端が前後に延長されたスペクトルエンベロープは、ＦＩＲフィルタ１５に供給される。このＦＩＲフィルタ１５は入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める。この中間的な出力データは、直線補間部１６に供給され、直線補間されて最終出力に必要とされる一定個数のデータとなり、出力端子１７から出力される。
【００２３】
ここで、後述するＭＢＥボコーダにおいて算出されるＭ個（ｍＭＸ＋１個）の振幅データ列をａ〔ｍ〕とする。ｍは上記高調波（ハーモニックス）の次数あるいはバンド番号であり、ｍＭＸが最大値であるが、ｍ＝０のバンドの振幅データも含めて、全バンドの振幅データの個数はｍＭＸ＋１個となる。この振幅データａ〔ｍ〕を、非線形圧縮部１２にて例えばｄＢ領域に変換する。すなわち得られたデータをａｄＢ〔ｍ〕とするとき、
ａｄＢ〔ｍ〕＝２０ log１０ａ〔ｍ〕                  ・・・（１）
である。この対数変換された振幅データａｄＢ〔ｍ〕の個数ｍＭＸ＋１は、上述したようにピッチに依存して変化するため、一定個数の振幅データｂ〔ｍ〕に変換する。これは一種のサンプリングレート（サンプルレート）変換である。なお、非線形圧縮部１２での圧縮処理は、ｄＢ領域への対数圧縮の他に、例えばいわゆるμ-lawやα-lawのような疑似対数圧縮処理を施してもよい。このように、振幅を圧縮することにより、能率的な符号化が実現される。
【００２４】
ＭＢＥボコーダに入力される時間軸上の音声信号に対するサンプリング周波数ｆs は、通常８ｋHzで、全帯域幅は３．４ｋHz（ただし有効帯域は２００〜３４００Hz）であり、女声の高い方から男声の低い方までのピッチラグ（ピッチ周期に相当するサンプル数）は、２０〜１４７程度である。従って、ピッチ（角）周波数ωは、8000/147≒５４（Hz）から 8000/20＝４００（Hz）程度までの間で変動することになる。従って、周波数軸上で上記３．４ｋHzまでの間に約８〜６３本のピッチパルス（ハーモニックス）が立つことになる。すなわち、周波数軸上のｄＢ領域の波形として、８サンプル乃至６３サンプルから成るｍＭＸ＋１個のデータを、一定のサンプル数、例えば４４サンプルに、サンプル数変換を行うわけである。これが、図２のＣに示すように、一定のピッチ周波数（角周波数）ωＣ  毎のハーモニックスの位置のサンプルを求めることに相当する。
【００２５】
次にスペクトルエンベロープ拡張部１４は、上述したように非線形圧縮部１２で非線形圧縮され、ａｄＢ〔ｍ〕の配列で表せるｍＭＸ＋１個のスペクトルエンベロープの両端の値を前後に延長する。これはスペクトルエンベロープの端点におけるリンギングの発生を防ぐために行われる。このようにしてできた数列をａＪｄＢ  〔ｍ〕とすると、このａＪｄＢ  〔ｍ〕は−（ｆ０  −１）／２≦ｍ＜Ｍ＋（ｆ０  −１）／２の範囲で、
【００２６】
【数１】
0003731575.tif 000002
【００２７】
となる。ここでｆ０  は例えば９で、次に使用するＦＩＲフィルタの（オーバーサンプリング後のサンプリングレートでみた）次数Ｆ０  例えば６５と、Ｆ０  ＝ＯＳ  ×（ｆ０  −１）＋１という関係にある定数である。また、ｆ０  −１は、このスペクトルエンベロープ拡張を一種のオーバーサンプリングと考えたとき、オーバーサンプリングする前のサンプリングレートでみたときのフィルタ次数であり、Ｆ０  は、オーバーサンプリング後のサンプリングレートでみたときのフィルタの次数である。また、ＯＳ  は、オーバーサンプリングの比率（レシオ) である。図３はこのａＪｄＢ  〔ｍ〕を示す図である。すなわち、このａＪｄＢ  〔ｍ〕は、０≦ｍ＜Ｍの区間に示される元の波形ａｄＢ〔ｍ〕の左端Ｆ０をａｄＢ〔０〕のまま−（ｆ０  −１）まで延長し、右端部を最後のデータであるａｄＢ〔Ｍ−１〕のままＭ＋（ｆ０  −１）／２まで延長している。
【００２８】
本来、帯域制限型のオーバーサンプリングは、例えば（ＯＳ  −１）個のデータを０詰めしたものにＦ０  次のフィルタを通したものとしてもよいが、０データに対する積和は無視してよい。そのため、帯域制限型のオーバーサンプリングは、８つの位相の係数セット（Ｐ＝０・・・７）の各セット毎に（ｆ０  −１）個の係数からなり、もとのＦ０  個の係数をオーバーサンプリングするフィルタ処理とみることができる。
【００２９】
図４はＦ０  を６５、ｆ０  を９、ＯＳ  を８とした場合のＦＩＲフィルタ１５の位相の係数を示す図である。図４のＡは、−４πから４πまでの位相の変化範囲でＦ０  個（６５個）の係数の大きさを振幅値として示している。位相変化が０πのとき係数値は１であるが、位相変化が±４π、±３π、±２π、±πのときは０である。また、この図４のＡは０πの振幅を軸に左右対称となっている。図４のＢは、Ｐ＝０・・・７の各位相の係数セットの持つ係数値が図４のＡのどこにあたるかを示している。なお、この係数値は、周知の方法によって導出できる。
【００３０】
ここで、本発明においては、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置に対応する係数セットを用いることにより、出力として必要なデータそのもの、あるいは必要とされるデータの近傍のデータを求めることにより、演算自体を間引いて演算量を減らすものである。
【００３１】
図５は、図４に示された係数セット（Ｐ＝０・・・７）を用いてａＪｄＢ  〔ｍ〕をフィルタリングし、出力として必要とされる一定個数のデータｂ〔ｍ〕の内の任意の１個を得るための演算を説明するための図である。
【００３２】
図５のＡは、ａｄＢ〔ｍ〕を示す。このａｄＢ〔ｍ〕からｂ〔ｍ〕を得るには、上記スペクトルエンベロープ拡張部１４でａｄＢ〔ｍ〕の両端を延長して図３に示したようなａＪｄＢ  〔ｍ〕を先ず得る。ｉは可変数Ｍ個のデータのインデックスである。
【００３３】
例えば、図５のＡに示されたｂ点におけるｂ〔ｍ〕を求めようとする場合を以下に述べる。
【００３４】
このｂ点に最も近傍の位置にある係数値のセットはＰ＝２の係数セットである。このＰ＝２の係数セットは図５のＢに示すような各係数値を持っている。この各係数値をｐ２０、ｐ２１、ｐ２２、ｐ２３、ｐ２４、ｐ２５、ｐ２７とする。すると、ｂ点のｂ〔ｍ〕は、インデックスｉ＝０のデータと係数値ｐ２０の乗算値と、インデックスｉ＝１のデータと係数値ｐ２１の乗算値と、インデックスｉ＝２のデータと係数値ｐ２２の乗算値と、インデックスｉ＝３のデータと係数値ｐ２３の乗算値と、インデックスｉ＝４のデータと係数値ｐ２４の乗算値と、インデックスｉ＝５のデータと係数値ｐ２５の乗算値と、インデックスｉ＝６のデータと係数値ｐ２６の乗算値と、インデックスｉ＝７のデータと係数値ｐ２７の乗算値との合計８個の乗算値の和として表せる。
【００３５】
今、Ｆ０  個の係数を０≦ｋ＜Ｆ０  の範囲でcoef〔ｋ〕とすると０≦ｍ＜Ｍ・ＯＳ  の範囲でのｂ〔ｍ〕は、次の（３）式で示される。
【００３６】
【数２】
0003731575.tif 000003
【００３７】
この（３）式より、例えば、上記ｂ点のｂ〔ｍ〕は、ＯＳ  ＝８であれば、ｂ〔３×８＋２〕であり、ｂ〔２６〕となり、ｂ〔２６〕のサンプルデータの振幅値を求めることになる。
【００３８】
ここで、ＯＳ  ＝８、ｆ０  ＝９とすると上記（３）式は、
【００３９】
【数３】
0003731575.tif 000004
【００４０】
となる。
【００４１】
ここで、Ｐ＝０のとき上記（４）式は、
【００４２】
【数４】
0003731575.tif 000005
【００４３】
となり、ｉ＝０、１・・・７のデータの振幅をそのまま求めることになる。
【００４４】
また、Ｐ＝１・・・７のとき上記（４）式は、
【００４５】
【数５】
0003731575.tif 000006
【００４６】
となり、ａＪｄＢ  〔ｉ−３〕、ａＪｄＢ  〔ｉ−２〕、ａＪｄＢ  〔ｉ−１〕、ａＪｄＢ  〔ｉ−０〕、ａＪｄＢ  〔ｉ＋１〕、ａＪｄＢ  〔ｉ＋２〕、ａＪｄＢ  〔ｉ＋３〕、ａＪｄＢ  〔ｉ＋４〕の８個のデータに対し、coef〔８−Ｐ〕、coef〔16−Ｐ〕、coef〔24−Ｐ〕、coef〔32−Ｐ〕、coef〔40−Ｐ〕、coef〔48−Ｐ〕、coef〔56−Ｐ〕、coef〔64−Ｐ〕の８個の係数が各々乗算され、その８個の乗算値が全て加算されてｂ〔ｍ〕が得られることが分かる。
【００４７】
例えば、上記図５のＡに示されたｂ点のｂ〔ｍ〕の例では、ｉ＝３、Ｐ＝２であるので、ａＪｄＢ  〔０〕、ａＪｄＢ  〔１〕、・・・ａＪｄＢ  〔７〕の８個のデータに対し、coef〔６〕、coef〔14〕、・・・coef〔62〕の８個の係数が各々乗算され、その８個の乗算値が全て加算されてｂ〔26〕が得られる。
【００４８】
また、例えば、ｉ＝０、Ｐ＝３のｂ〔ｍ〕を求める場合は、上記スペクトルエンベロープ拡張部１４で得たデータａＪｄＢ  〔−３〕、ａＪｄＢ  〔−２〕、ａＪｄＢ  〔−１〕の計３個のデータにそれぞれcoef〔５〕、coef〔11〕、coef〔22〕の計３個の係数を乗算した３個の乗算値と、ａＪｄＢ  〔０〕、ａＪｄＢ〔１〕、ａＪｄＢ  〔２〕、ａＪｄＢ  〔３〕、ａＪｄＢ  〔４〕の計５個のデータにそれぞれcoef〔29〕、coef〔37〕、coef〔45〕、coef〔53〕、coef〔61〕の５個の係数を乗算した５個の乗算値とからなる計８個の乗算値が加算されてｂ〔３〕が得られる。
【００４９】
ここで、ａＪｄＢ  〔ｉ＋ｊ−（ｆ０  −１）／２〕の〔  〕内がｉｍｉｎ  −（ｆ０  −１）／２＝１−（ｆ０  −１）／２、ｉｍａｘ  ＋（ｆ０  −１）／２＝ｍＭＸ＋（ｆ０  −１）／２に関しては、スペクトルエンベロープ拡張部１４により、データが拡張されているので問題はない。ここで、ｂ〔ｍ〕の一点を求めるのに必要な積は（ｆ０  −１）回である。
【００５０】
ところで、以上の説明においては、（例えば８倍の）オーバーサンプル点のいずれかの位置に上記最終的に必要とされる一定個数（例えば４４個）のデータの位置が一致するものとして説明したが、現実には、このような一致を得るためにはオーバーサンプルの比率（倍数）を極めて高くとることが必要とされ、フィルタ係数の個数が膨大なものとなることより、最終的には必要とされるデータの位置の近傍（例えば前後の２点）のオーバーサンプル点のデータを中間的な出力として上記フィルタリング演算により求め、この中間的な出力を補間処理することで、上記最終的に必要とされるデータを求めることが好ましい。
【００５１】
すなわち、上記ＦＩＲフィルタ１５からのＦＩＲ出力は、直線補間部１６に供給される。この直線補間部１６は、上記ＦＩＲフィルタ１５からの少なくとも２つのＦＩＲ出力を直線補間し、必要な出力点を得る。例えば、図６において点Ａ０  を直線補間で求めるには、その点Ａ０  を挟む２点Ａ−１、Ａ１  がＦＩＲフィルタで算出されていればよい。したがって、データ個数変換本体部１３で求められる最終的なエンコーダでの出力点の個数を４４点とすれば、４４×２（＝８８）点が上記ＦＩＲフィルタ１５で算出されればよい。
【００５２】
この必要な出力点を得るための２点Ａ−１、Ａ１  のｂ〔ｍ〕を求める処理について図７のフローチャートを用いて説明する。
【００５３】
ステップＳ１では、入力側の角周波数をＯＳ  （サンプリングレシオ）で割ったω０ｆと、出力側の角周波数ω０  を求める。第１の実施例では、ＯＳ  （例えば８）倍のサンプリングを行っているので、スペクトルは、入力の角周波数の１／ＯＳ  のインターバルで立っている。そのため、ＯＳ  で割った値ω０ｆを出す。０〜πまでを例えば１０２４のグリッドで表現すると、このω０ｆは、1024／Ｍ×１／ＯＳ  となる。  また、欲しい点（出力側）の角周波数はω０  であり、このω０  が1024／Ｍ' となる。ここで、Ｍ' は、出力側のハーモニクスの数である。
ステップＳ２では、入力側ハーモニクスのインデックスｉ及び出力側ハーモニクスのインデックスiiを初期化する。
【００５４】
ステップＳ３では、上記係数セットＰを初期化する。
【００５５】
ステップＳ４では、入力側ハーモニクスのインデックスｉと係数セットＰとにより求めたいデータの位置Ａ０  を検索（スキャン）する。すなわち、求めたいデータの位置Ａ０  （＝ω０  ×ii）を、ｉとＰによるスキャンの位置Ａ１  （＝ｉ×ＯＳ  ＋Ｐ＋１）が越えたか否かを判定する。例えば、始めは上記ステップＳ２、Ｓ３でｉとＰが初期化されているのでｉ＝０、Ｐ＝０として検索する。ここで、ＹＥＳを判定するとステップＳ５に進み、ＮＯを判定するとステップＳ７に進む。
【００５６】
ステップＳ５では、求めたいデータの位置Ａ０  （＝ω０  ×ii）を越えたｉとＰによるスキャンの位置Ａ１  （＝ｉ×ＯＳ  ＋Ｐ＋１）でのｂ〔ｍ〕、すなわち、ｂ〔ｉ×ＯＳ  ＋Ｐ＋１〕とその一つ前（Ａ−１）のｂ〔ｉ×ＯＳ  ＋Ｐ〕とを求める。このｂ〔ｉ×ＯＳ  ＋Ｐ＋１〕とｂ〔ｉ×ＯＳ  ＋Ｐ〕とは上記求めたいデータの位置Ａ０  （＝ω０  ×ii）を挟み込むような位置（Ａ１  とＡ−１の間）でのｂ〔ｍ〕となる。
【００５７】
ステップＳ６では、次に求めたいデータの位置を移動するため、出力側ハーモニクスのインデックスiiをインクリメントする。
【００５８】
ステップＳ７では、スキャンの位置を移動するために係数セットＰをインクリメントする。このときｉは０のままである。すなわち、ｉ＝０のまま、Ｐを０から１に変える。
【００５９】
ステップＳ８では、係数セットＰがＯＳ  の値と一致したか否かを判定する。Ｐは０・・・７までの８個であり、ＯＳ  も８としている。ここで、ＹＥＳを判定するとステップＳ９に進み、ＮＯを判定するとステップＳ４に進む。
【００６０】
ステップＳ９では、入力側ハーモニクスのインデックスｉをインクリメントする。そして、ステップＳ１０に進む。
【００６１】
ステップＳ１０では、上記ｉが可変個数のデータと数（Ｍ個）と等しくなったか否かを判定する。ここでＹＥＳを判定するとこのフローは終了となり、ＮＯを判定するとステップＳ３に戻る。
【００６２】
以上のフローチャートより、本実施例はＯＳ  （ここではＯＳ  ＝８）倍でオーバーサンプリングピッチ（角周波数）ω０ｆのインターバルで周波数をインクリメントしてゆき出力として欲しい点を越えたところでのｂ〔ｍ〕とその一つ手前のｂ〔ｍ〕とを求めている。このようにすれば、出力点を直線補間で求めるのに必要な左右の点が全て算出されることになる。
【００６３】
次に、上記図７に示したフローチャートの処理によって求められた、出力として欲しい点を越えたところでのｂ〔ｍ〕とその一つ手前のｂ〔ｍ〕を直線補間部１６により直線する処理を図８のフローチャートを用いて説明する。
【００６４】
ステップＳ２１では、出力角周波数ω０  と、入力角周波数ω０ｆとを求める。これは、上記図７に示したステップＳ１と同様である。
【００６５】
ステップＳ２２では、以後のフローが入力側のハーモニクスの８倍のインデックスｉでインクリメントされるのでこのｉを初期化する。
【００６６】
ステップＳ２３では、ｉ＝０になっているか否かを判別する。ここでＹＥＳを判別するとステップＳ２４に進み、ＮＯを判別するとステップＳ２５に進む。
【００６７】
ステップＳ２４、ステップＳ２５では、図６に示すようにある一つの区間に着目して、その幅をｂｗ  とし、上限をｕｂ  、下限をｌｂ  としている。この上限ｕｂ  は、inint （ｉ＋１）×ω０ｆとなり、下限ｌｂ  は、inint ｉ×ω０ｆとなる。ここで、inint はinint （ｘ）とするとき、ｘに最も近い数を返す関数である。また、上記下限ｌｂ  は、一回前の上限ｕｂ  となる。したがって、ｂｗ  は、上限ｕｂ  と下限ｌｂ  との差になる。
【００６８】
上記ステップＳ２４では、下限ｌｂ  を０とし、ステップＳ２６に進む。
【００６９】
上記ステップＳ２５では、下限ｌｂ  と上限ｕｂ  とを一致させる。
【００７０】
ステップＳ２６では、上述したように上限ｕｂ  をinint （ｉ＋１）×ω０ｆと設定する。
【００７１】
ステップＳ２７では、上限ｕｂ  と下限ｌｂ  との差であるｂｗ  を求める。そして、このｂｗ  の間をスキャンして、直線補間値ｃ〔ii〕を求める。
【００７２】
ステップＳ２８では、図６に示す求めようとするｃ〔ii〕と下限ｌｂ  との差ｉｄｘを０に設定する。すなわち、ｉｄｘ＝０の位置（下限ｌｂ  と一致）からスキャンを開始するスキャン開始位置を設定する。
【００７３】
ステップＳ２９では、上述したように下限ｌｂ  からスキャンｊを開始する。
【００７４】
ステップＳ３０では、スキャンｊが求めようとするｃ〔ii〕の位置と一致したか否かを判別する。ここで、ＹＥＳを判別するとステップＳ３１に進み、ＮＯを判別するとステップＳ３２に進む。
【００７５】
ステップＳ３１では、位置関係に関連する重み付けを考慮したｃ〔ii〕を求める。ここで、例えば、ｉｄｘが０のときは、ｃ〔ii〕＝ｂ〔ｉ〕となり、ｉｄｘがｂｗ  のときは、ｃ〔ii〕＝ｂ〔ｉ＋１〕となる。
ステップＳ３２では、ｉｄｘをインクリメントする。そして、ステップＳ３３では、出力ハーモニクスのインデックスiiが出力ハーモニクスの数Ｍ' より大きくなったか否かを判別する。ここで、ＹＥＳを判別すると、このフローは終了となり、ＮＯを判別するとステップＳ３４に進む。
【００７６】
ステップＳ３４では、スキャンｊの繰り返しを始める。
【００７７】
ステップＳ３５では、スキャンｊが上限ｕｂ  まで到達したか否かを判別する。ここで、ＹＥＳを判別するとステップＳ３６に進み、ＮＯを判別するとステップＳ３０に戻る。
【００７８】
ステップＳ３６では、入力側のハーモニクスｉをインクリメントする。
【００７９】
ステップＳ３７では、ｉが入力ハーモニクスＭとＯＳ  との積よりも大きくなったか否かを判別する。ここで、ＹＥＳを判別するとこのフローは終了となるが、ＮＯを判別するとステップＳ２３に戻る。
【００８０】
以上のフローチャートより、本実施例は、上記図７のフローチャートの処理で求めたｂ〔ｍ〕を直線補間部１６により直線補間するだけで、必要な点だけを求められる。
【００８１】
このように第１の実施例は、必要な点のみを求めることによって、個数が可変とされたデータを一定個数にすることができる。そのため、演算量が減少する。
【００８２】
このようにして、一定サンプル数のデータに変換した数列に必要に応じてブロック間、あるいはフレーム間で差分をとり、ベクトル量子化を施して、そのインデックスを伝送するようにすればよい。
【００８３】
上述した第１の実施例は、ＭＢＥボコーダにより算出されたスペクトルエンベロープの個数が可変とされた振幅データを一定個数に変換する方法であったが、以下、第２の実施例として、一定個数にされたデータをデータ内容に応じた個数のデータに変換するデータ個数変換方法を説明する。この第２の実施例は例えば音声信号を合成するデコーダ側に適用される。すなわち、デコーダ側では、上記インデックスより、ベクトル量子化及び逆量子化された数列の一定個数とされた波形データを得て、そのデータ列を、同様の方法で、すなわち帯域制限オーバーサンプリング、直線補間等を施すことにより、データの内容に応じた個数のＭ個の数列に変換する。
【００８４】
図９は第２の実施例の概略構成を示している。
【００８５】
上記第１の実施例において、一定個数とされた入力データは入力端子２１を介してデータ個数変換本体部２２に供給され、このデータ個数変換本体部２２で可変個数のデータとされて出力端子２６から出力される。このデータ個数変換本体部２２は、スペクトルエンベロープ拡張部２３、帯域制限型ＦＩＲフィルタ２４及び直線補間部２５から成っている。
【００８６】
入力されたブロック毎に一定個数の入力データは、スペクトルエンベロープ拡張部２３でスペクトルエンベロープの両端の値を延長される。この両端が前後に延長されたスペクトルエンベロープは、ＦＩＲフィルタ２４に供給される。このＦＩＲフィルタ２４はスペクトルエンベロープが延長されることによりデータ個数が拡大されたデータのサンプル点に対しそれぞれ異なる複数の位相と対応した複数の係数セットの内の一定個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める。そして、この中間的な出力データは直線補間部２５に供給される。この直線補間部２５は上記中間的な出力データを直線補間し、出力端子２６から間引きされ、データ内容に応じた可変個数のデータを出力する。
【００８７】
この第２の実施例は、必要な点のみを求めることによって、個数が一定とされたデータをデータ内容に応じた個数に変換することができる。そのため、演算量が減少される。
【００８８】
ここで、第１の実施例による乗算の回数は、求めるデータの個数を４４個とすれば、その２倍の８８個のデータに対し、８回の乗算が施されることになり、１０２４回の乗算となる。これは、上述した高速化手法を用いたＦＦＴ、ＩＦＦＴの乗算の回数の合計３１４８８回の１／４５となる。また、第２の実施例による乗算の回数は、求めるデータの個数を６０個とすれば、その２倍の１２０個のデータに対し、８回の乗算がほどこされることになる。これは、上述した高速化手法を用いたＦＦＴ、ＩＦＦＴの乗算の回数の合計３１４８８回の１／３０となる。
【００８９】
次に、上述したようなデータ数変換方法が適用可能な、音声信号の合成分析符号化装置（いわゆるボコーダ）の一種のＭＢＥ（Multiband Excitation: マルチバンド励起）ボコーダの具体例について、図面を参照しながら説明する。
【００９０】
以下に説明するＭＢＥボコーダは、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 に開示されているものであり、従来のＰＡＲＣＯＲ（PARtial auto-CORrelation: 偏自己相関）ボコーダ等では、音声のモデル化の際に有声音区間と無声音区間とをブロックあるいはフレーム毎に切り換えていたのに対し、ＭＢＥボコーダでは、同時刻（同じブロックあるいはフレーム内）の周波数軸領域に有声音（Voiced）区間と無声音（Unvoiced）区間とが存在するという仮定でモデル化している。
【００９１】
図１０は、上記ＭＢＥボコーダに本発明を適用した実施例の全体の概略構成を示すブロック図である。
【００９２】
この図１０において、入力端子１０１には音声信号が供給されるようになっており、この入力音声信号は、ＨＰＦ（ハイパスフィルタ）等のフィルタ１０２に送られて、いわゆるＤＣ（直流）オフセット分の除去や帯域制限（例えば２００〜３４００Hzに制限）のための少なくとも低域成分（２００Hz以下）の除去が行われる。このフィルタ１０２を介して得られた信号は、ピッチ抽出部１０３及び窓かけ処理部１０４にそれぞれ送られる。ピッチ抽出部１０３では、入力音声信号データが所定サンプル数Ｎ（例えばＮ＝２５６）単位でブロック分割され（あるいは方形窓による切り出しが行われ）、このブロック内の音声信号についてのピッチ抽出が行われる。このような切り出しブロック（２５６サンプル）を、例えば図１１のＡに示すようにＬサンプル（例えばＬ＝１６０）のフレーム間隔で時間軸方向に移動させており、各ブロック間のオーバラップはＮ−Ｌサンプル（例えば９６サンプル）となっている。また、窓かけ処理部１０４では、１ブロックＮサンプルに対して所定の窓関数、例えばハミング窓をかけ、この窓かけブロックを１フレームＬサンプルの間隔で時間軸方向に順次移動させている。
【００９３】
このような窓かけ処理を数式で表すと、
ｘｗ  (k,q) ＝ｘ(q) ｗ(kL-q)                        ・・・（７）
となる。この（７）式において、ｋはブロック番号を、ｑはデータの時間インデックス（サンプル番号）を表し、処理前の入力信号のｑ番目のデータｘ(q) に対して第ｋブロックの窓（ウィンドウ）関数ｗ(kL-q)により窓かけ処理されることによりデータｘｗ  (k,q) が得られることを示している。ピッチ抽出部１０３内での図１１のＡに示すような方形窓の場合の窓関数ｗｒ  (r) は、
0003731575.tif 000007
また、窓かけ処理部１０４での図１１のＢに示すようなハミング窓の場合の窓関数ｗｈ  (r) は、
0003731575.tif 000008
である。このような窓関数ｗｒ  (r) あるいはｗｈ  (r) を用いるときの上記（７）式の窓関数ｗ(r) （＝ｗ(kL-q)）の否零区間は、
０≦ｋＬ−ｑ＜Ｎ
これを変形して、
ｋＬ−Ｎ＜ｑ≦ｋＬ
従って例えば上記方形窓の場合に窓関数ｗｒ  (kL-q)＝１となるのは、図１２に示すように、ｋＬ−Ｎ＜ｑ≦ｋＬのときとなる。また、上記（７）〜（９）式は、長さＮ（＝２５６）サンプルの窓が、Ｌ（＝１６０）サンプルずつ前進してゆくことを示している。以下、上記（８）式、（９）式の各窓関数で切り出された各Ｎ点（０≦ｒ＜Ｎ）の否零サンプル列を、それぞれｘｗｒ(k,r) 、ｘｗｈ(k,r) と表すことにする。
【００９４】
窓かけ処理部１０４では、図１３に示すように、上記（９）式のハミング窓がかけられた１ブロック２５６サンプルのサンプル列ｘｗｈ(k,r) に対して１７９２サンプル分の０データが付加されて（いわゆる０詰めされて）２０４８サンプルとされ、この２０４８サンプルの時間軸データ列に対して、直交変換部１０５により例えばＦＦＴ（高速フーリエ変換）等の直交変換処理が施される。あるいは、２５６点のままで（０詰めなしで）ＦＦＴを施してもよい。
【００９５】
ピッチ抽出部１０３では、上記ｘｗｒ(k,r) のサンプル列（１ブロックＮサンプル）に基づいてピッチ抽出が行われる。このピッチ抽出法には、時間波形の周期性や、スペクトルの周期的周波数構造や、自己相関関数を用いるもの等が知られているが、本実施例では、センタクリップ波形の自己相関法を採用している。このときのブロック内でのセンタクリップレベルについては、１ブロックにつき１つのクリップレベルを設定してもよいが、ブロックを細分割した各部（各サブブロック）の信号のピークレベル等を検出し、これらの各サブブロックのピークレベル等の差が大きいときに、ブロック内でクリップレベルを段階的にあるいは連続的に変化させるようにしている。このセンタクリップ波形の自己相関データのピーク位置に基づいてピッチ周期を決めている。このとき、現在フレームに属する自己相関データ（自己相関は１ブロックＮサンプルのデータを対象として求められる）から複数のピークを求めておき、これらの複数のピークの内の最大ピークが所定の閾値以上のときには該最大ピーク位置をピッチ周期とし、それ以外のときには、現在フレーム以外のフレーム、例えば前後のフレームで求められたピッチに対して所定の関係を満たすピッチ範囲内、例えば前フレームのピッチを中心として±２０％の範囲内にあるピークを求め、このピーク位置に基づいて現在フレームのピッチを決定するようにしている。このピッチ抽出部１０３ではオープンループによる比較的ラフなピッチのサーチが行われ、抽出されたピッチデータは高精度（ファイン）ピッチサーチ部１０６に送られて、クローズドループによる高精度のピッチサーチ（ピッチのファインサーチ）が行われる。
【００９６】
高精度（ファイン）ピッチサーチ部１０６には、ピッチ抽出部１０３で抽出された整数（インテジャー）値の粗（ラフ）ピッチデータと、直交変換部１０５により例えばＦＦＴされた周波数軸上のデータとが供給されている。この高精度ピッチサーチ部１０６では、上記粗ピッチデータ値を中心に、0.２〜0.５きざみで±数サンプルずつ振って、最適な小数点付き（フローティング）のファインピッチデータの値へ追い込む。このときのファインサーチの手法として、いわゆる合成による分析 (Analysis by Synthesis)法を用い、合成されたパワースペクトルが原音のパワースペクトルに最も近くなるようにピッチを選んでいる。
【００９７】
このピッチのファインサーチについて説明する。先ず、上記ＭＢＥボコーダにおいては、上記ＦＦＴ等により直交変換された周波数軸上のスペクトルデータとしてのＳ(j) を
Ｓ(j) ＝Ｈ(j) ｜Ｅ(j)｜      ０＜ｊ＜Ｊ          ・・・（10）
と表現するようなモデルを想定している。ここで、Ｊはωｓ／４π＝ｆｓ／２に対応し、サンプリング周波数ｆｓ＝ωｓ／２πが例えば８ｋHzのときには４ｋHzに対応する。上記（10）式中において、周波数軸上のスペクトルデータＳ(j) が図１４のＡに示すような波形のとき、Ｈ(j) は、図１４のＢに示すような元のスペクトルデータＳ(j) のスペクトル包絡線（エンベロープ）を示し、Ｅ(j) は、図１４のＣに示すような等レベルで周期的な励起信号（エキサイテイション）のスペクトルを示している。すなわち、ＦＦＴスペクトルＳ(j) は、スペクトルエンベロープＨ(j) と励起信号のパワースペクトル｜Ｅ(j)｜ との積としてモデル化される。
【００９８】
上記励起信号のパワースペクトル｜Ｅ(j)｜ は、上記ピッチに応じて決定される周波数軸上の波形の周期性（ピッチ構造）を考慮して、１つの帯域（バンド）の波形に相当するスペクトル波形を周波数軸上の各バンド毎に繰り返すように配列することにより形成される。この１バンド分の波形は、例えば上記図１３に示すような２５６サンプルのハミング窓関数に１７９２サンプル分の０データを付加（０詰め）した波形を時間軸信号と見なしてＦＦＴし、得られた周波数軸上のある帯域幅を持つインパルス波形を上記ピッチに応じて切り出すことにより形成することができる。
【００９９】
次に、上記ピッチに応じて分割された各バンド毎に、上記Ｈ(j) を代表させるような（各バンド毎のエラーを最小化するような）値（一種の振幅）｜Ａｍ  ｜を求める。ここで、例えば第ｍバンド（第ｍ高調波の帯域）の下限、上限の点をそれぞれａｍ  、ｂｍ  とするとき、この第ｍバンドのエラーεｍ  は、
【０１００】
【数６】
0003731575.tif 000009
【０１０１】
で表せる。このエラーεｍ  を最小化するような｜Ａｍ  ｜は、
【０１０２】
【数７】
0003731575.tif 000010
【０１０３】
となり、この（12）式の｜Ａｍ  ｜のとき、エラーεｍ  を最小化する。このような振幅｜Ａｍ  ｜を各バンド毎に求め、得られた各振幅｜Ａｍ  ｜を用いて上記（11）式で定義された各バンド毎のエラーεｍ  を求める。次に、このような各バンド毎のエラーεｍ  の全バンドの総和値Σεｍ  を求める。さらに、このような全バンドのエラー総和値Σεｍ  を、いくつかの微小に異なるピッチについて求め、エラー総和値Σεｍ  が最小となるようなピッチを求める。
【０１０４】
すなわち、上記ピッチ抽出部１０３で求められたラフピッチを中心として、例えば 0.25 きざみで上下に数種類ずつ用意する。これらの複数種類の微小に異なるピッチの各ピッチに対してそれぞれ上記エラー総和値Σεｍ  を求める。この場合、ピッチが定まるとバンド幅が決まり、上記（13）式より、周波数軸上データのパワースペクトル｜Ｓ(j) ｜と励起信号スペクトル｜Ｅ(j) ｜とを用いて上記（11）式のエラーεｍ  を求め、その全バンドの総和値Σεｍ  を求めることができる。このエラー総和値Σεｍ  を各ピッチ毎に求め、最小となるエラー総和値に対応するピッチを最適のピッチとして決定するわけである。以上のようにして高精度ピッチサーチ部１０６で最適のファイン（例えば 0.25 きざみ）ピッチが求められ、この最適ピッチに対応する振幅｜Ａｍ  ｜が決定される。
【０１０５】
以上ピッチのファインサーチの説明においては、説明を簡略化するために、全バンドが有声音（Voiced）の場合を想定しているが、上述したようにＭＢＥボコーダにおいては、同時刻の周波数軸上に無声音（Unvoiced）領域が存在するというモデルを採用していることから、上記各バンド毎に有声音／無声音の判別を行うことが必要とされる。
【０１０６】
上記高精度ピッチサーチ部１０６からの最適ピッチ及び振幅｜Ａｍ  ｜のデータは、有声音／無声音判別部１０７に送られ、上記各バンド毎に有声音／無声音の判別が行われる。この判別のために、ＮＳＲ（ノイズｔｏシグナル比）を利用する。すなわち、第ｍバンドのＮＳＲは、
【０１０７】
【数８】
0003731575.tif 000011
【０１０８】
と表せ、このＮＳＲ値が所定の閾値（例えば0.３）より大のとき（エラーが大きい）ときには、そのバンドでの｜Ａｍ  ｜｜Ｅ(j) ｜による｜Ｓ(j) ｜の近似が良くない（上記励起信号｜Ｅ(j) ｜が基底として不適当である）と判断でき、当該バンドをＵＶ（Unvoiced、無声音）と判別する。これ以外のときは、近似がある程度良好に行われていると判断でき、そのバンドをＶ（Voiced、有声音）と判別する。
【０１０９】
次に、振幅再評価部１０８には、直交変換部１０５からの周波数軸上データ、高精度ピッチサーチ部１０６からのファインピッチと評価された振幅｜Ａｍ  ｜との各データ、及び上記有声音／無声音判別部１０７からのＶ／ＵＶ（有声音／無声音）判別データが供給されている。この振幅再評価部１０８では、有声音／無声音判別部１０７において無声音（ＵＶ）と判別されたバンドに関して、再度振幅を求めている。このＵＶのバンドについての振幅｜Ａｍ  ｜ＵＶは、
【０１１０】
【数９】
0003731575.tif 000012
【０１１１】
にて求められる。
【０１１２】
この振幅再評価部１０８からのデータは、データ数変換（一種のサンプリングレート変換）部１０９に送られる。このデータ数変換部１０９は、上記ピッチに応じて周波数軸上での分割帯域数が異なり、データ数（特に振幅データの数）が異なることを考慮して、一定の個数にするためのものである。すなわち、例えば有効帯域を３４００ｋHzまでとすると、この有効帯域が上記ピッチに応じて、８バンド〜６３バンドに分割されることになり、これらの各バンド毎に得られる上記振幅｜Ａｍ  ｜（ＵＶバンドの振幅｜Ａｍ  ｜ＵＶも含む）データの個数ｍＭＸ＋１も８〜６３と変化することになる。このためデータ数変換部１０９では、この可変個数ｍＭＸ＋１の振幅データを一定個数（例えば４４個）のデータに変換している。
【０１１３】
ここで本第１の実施例においては、上記図１〜図８と共に説明したように、周波数軸上の有効帯域１ブロック分の振幅データに対して、ブロック内の両端のデータを延長してデータ個数を拡大し、帯域制限型ＦＩＲフィルタによるフィルタ処理を施し、さらに直線補間を施すことにより一定個数（例えば４４個）のデータを得ている。
【０１１４】
このデータ数変換部１０９からのデータ（上記一定個数の振幅データ）がベクトル量子化部１１０に送られて、所定個数のデータ毎にまとめられてベクトルとされ、ベクトル量子化が施される。ベクトル量子化部１１０からの量子化出力データは、ＣＲＣ＆レート１／２畳込み符号付加部１１１に供給されと共にフレームインターリーブ部１１２に供給される。また、上記高精度のピッチサーチ部１０６からの高精度（ファイン）ピッチデータ及び上記有声音／無声音判別部１０７からの有声音／無声音（Ｖ／ＵＶ）判別データも上記ＣＲＣ＆レート１／２畳込み符号付加部１１１に供給される。
【０１１５】
ここで、上記ＣＲＣ＆レート１／２畳込み符号付加部１１１は、上記ファインピッチデータ、Ｖ／ＵＶ判別データ及び量子化出力データを用いて、スペクトルエンベロープの量子化を階層的な構造とし、その出力インデックスの重要度を分けることで効果的に畳込み符号による誤り訂正を行う。
【０１１６】
これは、本件出願人が特願平４−９１４２２号において、提案した高能率符号化方法、すなわち、Ｍ次元ベクトルを、Ｓ次元（Ｓ＜Ｍ）ベクトルに次元低下させてベクトル量子化するような、階層構造化されたコードブックを有する量子化を行わせる方法と同様に誤り訂正符号の効果的な適用が可能となる方法である。
【０１１７】
具体的に、このデコーダ側のビタビ符号＆ＣＲＣ検出は、以下のような原理である。図１５は、ビタビ復号＆ＣＲＣ検出の原理を説明するための機能ブロック図である。例えば、音声符号器１２１から出力された音声パラメータのうち、聴覚上特に重要な部分（クラス１）８０ビットとそれ以外の部分（クラス２）４０ビットとに分ける。クラス１のうちさらに重要な５０ビットについてＣＲＣ計算ブロック１２２によりＣＲＣを計算し、７ビットの結果を得る。クラス１の８０ビットとＣＲＣの７ビットと畳込み符号化器の初期値を０に戻すためのテールビット５ビットの合計９２ビットを畳込み符号化部１２３に入力し、１８４ビットの出力を得る。畳込み符号化された１８４ビットとクラス２ビットの４０ビットの計２２４ビットにつき、２スロットインターリーブ器１２４により、インターリーブを行い、その出力として２２４ビットを伝送する。
【０１１８】
この２スロットインターリーブ器１２４に相当するのが図１０のフレームインターリーブ部１１２であり、その出力が出力端子１１３から伝送される。
【０１１９】
なお、これらの各データは、上記Ｎサンプル（例えば２５６サンプル）のブロック内のデータに対して処理を施すことにより得られるものであるが、ブロックは時間軸上を上記Ｌサンプルのフレームを単位として前進することから、伝送するデータは上記フレーム単位で得られる。すなわち、上記フレーム周期でピッチデータ、Ｖ／ＵＶ判別データ、振幅データが更新されることになる。
【０１２０】
次に、本発明に係る復号装置の実施例として、伝送されて得られた上記出力データに基づき音声信号を合成するための合成側（デコード側）の概略構成について、図１６を参照しながら説明する。
【０１２１】
この図１５において、入力端子１３１には、伝送されたきたＣＲＣ＆レート１／２畳込み符号が付加された出力データが供給される。入力端子１３１からの出力データは、フレームデインタリーブ１３２に供給され、デインターリーブされる。デインターリーブされたデータは、ビタビ復号＆ＣＲＣ検出部１３３に供給され、復号化される。
【０１２２】
そして、マスク処理部１３４が、フレームデインターリーブ１３２からのデータをマスク処理し、量子化振幅データを逆ベクトル量子化部１３５に供給する。
【０１２３】
この逆量子化部１３５も階層構造化されており、各階層のインデックスデータに基づいて逆ベクトル化されたデータを合成して出力する。この逆量子化部１３５からの出力データは、データ数逆変換部１３６に送られて逆変換される。このデータ数逆変換部１３６では、上述した図９の説明と同様な（逆）変換が行われ、得られた振幅データが有声音合成部１３７及び無声音合成部１３８に送られる。また、上記マスク処理部１３４は、符号化ピッチデータをピッチ復号化部１３９に供給する。このピッチ復号化器１３９で復号されたピッチデータは、データ数逆変換部１３６、有声音合成部１３７及び無声音合成部１３８に送られる。また、上記マスク処理部１３４は、Ｖ／ＵＶ判別データを有声音合成部１３７及び無声音合成部１３８に供給する。
【０１２４】
有声音合成部１３７では例えば余弦(cosine)波合成により時間軸上の有声音波形を合成し、無声音合成部１３８では例えばホワイトノイズをバンドパスフィルタでフィルタリングして時間軸上の無声音波形を合成し、これらの各有声音合成波形と無声音合成波形とを加算部１４０で加算合成して、出力端子１４１より取り出すようにしている。この場合、上記振幅データ、ピッチデータ及びＶ／ＵＶ判別データは、上記分析時の１フレーム（Ｌサンプル、例えば１６０サンプル）毎に更新されて与えられるが、フレーム間の連続性を高める（円滑化する）ために、上記振幅データやピッチデータの各値を１フレーム中の例えば中心位置における各データ値とし、次のフレームの中心位置までの間（合成時の１フレーム）の各データ値を補間により求める。すなわち、合成時の１フレーム（例えば上記分析フレームの中心から次の分析フレームの中心まで）において、先端サンプル点での各データ値と終端（次の合成フレームの先端）サンプル点での各データ値とが与えられ、これらのサンプル点間の各データ値を補間により求めるようにしている。
【０１２５】
以下、有声音合成部１３７における合成処理を詳細に説明する。
【０１２６】
上記Ｖ（有声音）と判別された第ｍバンド（第ｍ高調波の帯域）における時間軸上の上記１合成フレーム（Ｌサンプル、例えば１６０サンプル）分の有声音をＶｍ  (n) とするとき、この合成フレーム内の時間インデックス（サンプル番号）ｎを用いて、
Ｖｍ  (n) ＝Ａｍ  (n) cos(θｍ  (n))      ０≦ｎ＜Ｌ・・・（15）
と表すことができる。全バンドの内のＶ（有声音）と判別された全てのバンドの有声音を加算（ΣＶｍ  (n) ）して最終的な有声音Ｖ(n) を合成する。
【０１２７】
この（15）式中のＡｍ  (n) は、上記合成フレームの先端から終端までの間で補間された第ｍ高調波の振幅である。最も簡単には、フレーム単位で更新される振幅データの第ｍ高調波の値を直線補間すればよい。すなわち、上記合成フレームの先端（ｎ＝０）での第ｍ高調波の振幅値をＡ０ｍ、該合成フレームの終端（ｎ＝Ｌ：次の合成フレームの先端）での第ｍ高調波の振幅値をＡＬｍとするとき、
Ａｍ  (n) ＝ (L-n)Ａ０ｍ／Ｌ＋ｎＡＬｍ／Ｌ          ・・・（16）
の式によりＡｍ  (n) を計算すればよい。
【０１２８】
次に、上記（15）式中の位相θｍ  (n) は、
0003731575.tif 000013
により求めることができる。この（17）式中で、φ０ｍは上記合成フレームの先端（ｎ＝０）での第ｍ高調波の位相（フレーム初期位相）を示し、ω０１は合成フレーム先端（ｎ＝０）での基本角周波数、ωＬ１は該合成フレームの終端（ｎ＝Ｌ：次の合成フレーム先端）での基本角周波数をそれぞれ示している。上記（17）式中のΔωは、ｎ＝Ｌにおける位相φＬｍがθｍ  (L) に等しくなるような最小のΔωを設定する。
【０１２９】
以下、任意の第ｍバンドにおいて、それぞれｎ＝０、ｎ＝ＬのときのＶ／ＵＶ判別結果に応じた上記振幅Ａｍ  (n) 、位相θｍ  (n) の求め方を説明する。
【０１３０】
第ｍバンドが、ｎ＝０、ｎ＝ＬのいずれもＶ（有声音）とされる場合に、振幅Ａｍ  (n) は、上述した（16）式により、伝送された振幅値Ａ０ｍ、ＡＬｍを直線補間して振幅Ａｍ  (n) を算出すればよい。位相θｍ  (n) は、ｎ＝０でθｍ  (0) ＝φ０ｍからｎ＝Ｌでθｍ  (L) がφＬｍとなるようにΔωを設定する。
【０１３１】
次に、ｎ＝０のときＶ（有声音）で、ｎ＝ＬのときＵＶ（無声音）とされる場合に、振幅Ａｍ  (n) は、Ａｍ  (0) の伝送振幅値Ａ０ｍからＡｍ  (L) で０となるように直線補間する。ｎ＝Ｌでの伝送振幅値ＡＬｍは無声音の振幅値であり、後述する無声音合成の際に用いられる。位相θｍ  (n) は、θｍ  (0) ＝φ０ｍとし、かつΔω＝０とする。
【０１３２】
さらに、ｎ＝０のときＵＶ（無声音）で、ｎ＝ＬのときＶ（有声音）とされる場合には、振幅Ａｍ  (n) は、ｎ＝０での振幅Ａｍ  (0) を０とし、ｎ＝Ｌで伝送された振幅値ＡＬｍとなるように直線補間する。位相θｍ  (n) については、ｎ＝０での位相θｍ  (0) として、フレーム終端での位相値φＬｍを用いて、
θｍ  (0) ＝φＬｍ−ｍ（ωＯ１＋ωＬ１）Ｌ／２      ・・・（18）
とし、かつΔω＝０とする。
【０１３３】
上記ｎ＝０、ｎ＝ＬのいずれもＶ（有声音）とされる場合に、θｍ  (L) がφＬｍとなるようにΔωを設定する手法について説明する。上記（17）式で、ｎ＝Ｌと置くことにより、
0003731575.tif 000014
となり、これを整理すると、Δωは、
Δω＝（mod2π((φＬｍ−φ０ｍ) − mL(ωＯ１＋ωＬ１)/2)／Ｌ・・・（19）
となる。この（19）式でmod2π(x) とは、ｘの主値を−π〜＋πの間の値で返す関数である。例えば、ｘ＝１.3πのときmod2π(x) ＝−０.7π、ｘ＝２.3πのときmod2π(x) ＝０.3π、ｘ＝−１.3πのときmod2π(x) ＝０.7π、等である。
【０１３４】
ここで、図１７のＡは、音声信号のスペクトルの一例を示しており、バンド番号（ハーモニクスナンバ）ｍが８、９、１０の各バンドがＵＶ（無声音）とされ、他のバンドはＶ（有声音）とされている。このＶ（有声音）のバンドの時間軸信号が上記有声音合成部１３７により合成され、ＵＶ（無声音）のバンドの時間軸信号が無声音合成部１３８で合成されるわけである。
【０１３５】
以下、無声音合成部１３８における無声音合成処理を説明する。
【０１３６】
ホワイトノイズ発生部１４２からの時間軸上のホワイトノイズ信号波形を、所定の長さ（例えば２５６サンプル）で適当な窓関数（例えばハミング窓）により窓かけをし、ＳＴＦＴ処理部１４３によりＳＴＦＴ（ショートタームフーリエ変換）処理を施すことにより、図１７のＢに示すようなホワイトノイズの周波数軸上のパワースペクトルを得る。このＳＴＦＴ処理部１４３からのパワースペクトルをバンド振幅処理部１４４に送り、図１７のＣに示すように、上記ＵＶ（無声音）とされたバンド（例えばｍ＝８、９、１０）について上記振幅｜Ａｍ  ｜ＵＶを乗算し、他のＶ（有声音）とされたバンドの振幅を０にする。このバンド振幅処理部１４４には上記振幅データ、ピッチデータ、Ｖ／ＵＶ判別データが供給されている。バンド振幅処理部１４４からの出力は、ＩＳＴＦＴ処理部１４５に送られ、位相は元のホワイトノイズの位相を用いて逆ＳＴＦＴ処理を施すことにより時間軸上の信号に変換する。ＩＳＴＦＴ処理部１４５からの出力は、オーバーラップ加算部１４６に送られ、時間軸上で適当な（元の連続的なノイズ波形を復元できるように）重み付けをしながらオーバーラップ及び加算を繰り返し、連続的な時間軸波形を合成する。オーバーラップ加算部１４６からの出力信号が上記加算部１４０に送られる。
【０１３７】
このように、各合成部１３７、１３８において合成されて時間軸上に戻された有声音部及び無声音部の各信号は、加算部１４０により適当な固定の混合比で加算して、出力端子１４１より再生された音声信号を取り出す。
【０１３８】
ここで、上述したデコーダ側のビタビ復号＆ＣＲＣ検出は、以下のような原理である。図１８は、ビタビ復号＆ＣＲＣ検出の原理を説明するための機能ブロック図である。例えば、図１８に示すような原理である。先ず、伝送されてきた２２４ビットを２スロットデインターリーブ器１５１が受信し、デインタリーブする。この２スロットデインターリーブ器１５１の出力をクラス２とエンコードされているクラス１ビットに分け、後者を畳込み復号化器１５２に入力し、復号して、８０ビットのクラス１復号結果を受信７ビットを得る。次に、８０ビットのクラス１復号結果からエンコーダで計算したのと同じパラメータビットに相当するものから再びＣＲＣをＣＲＣ計算部１５３により計算し、受信ＣＲＣと比較し、その結果を音声復号器１５４に出力する。
【０１３９】
なお、上記図１０の音声分析側（エンコード側）の構成や図１６の音声合成側（デコード側）の構成については、各部をハードウェア的に記載しているが、いわゆるＤＳＰ（ディジタル信号プロセッサ）等を用いてソフトウェアプログラムにより実現することも可能である。
なお、本発明は上記実施例のみに限定されるものではなく、例えば、音声信号のみならず、音響信号を入力信号として用いることもできる。
【０１４０】
【発明の効果】
以上の説明から明らかなように、本発明に係る符号化装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数に変換して符号化する符号化装置であって、上記可変個数のデータが入力される帯域制限型オーバーサンプリングのためのＦＩＲフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置に対応する係数セットを用いることにより、出力として必要な上記一定個数のデータを求める手段を有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【０１４１】
また、他の発明に係る符号化装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数のデータに変換して符号化する符号化装置であって、上記可変個数のデータが入力される帯域制限型オーバーサンプリングのためのＦＩＲフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記一定個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる一定個数のデータを求める手段とを有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【０１４２】
また、本発明に係る復号装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数のデータに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数のデータを復号化し、上記復号化された一定個数のデータから可変個数のデータに逆変換する復号装置であって、上記一定個数のデータが入力される帯域制限型オーバーサンプリングのためのＦＩＲフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記可変個数のデータの各位置に対応する係数セットを用いることにより、出力として必要な上記可変個数のデータを求める手段を有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【０１４３】
また、他の発明に係る復号装置によれば、入力オーディオ信号をブロックに分割して、ブロック内の可変個数の波形データ又は波形を表すパラメータデータを抽出し、上記抽出された可変個数のデータをブロック毎に一定の個数の基準データと比較するために上記可変個数のデータを上記一定個数のデータに変換することにより符号化された符号列を受け取り、上記符号列から上記一定個数のデータを復号化し、上記復号化された一定個数のデータから可変個数のデータに逆変換する復号装置であって、上記一定個数のデータが入力される帯域制限型オーバーサンプリングのためのＦＩＲフィルタで、上記入力データのサンプル点に対してそれぞれ異なる複数の位相と対応した複数の係数セットの内の上記可変個数のデータの各位置の近傍の位置に対応する係数セットを用いることにより、中間的な出力データを求める手段と、上記中間的な出力データを補間して必要とされる可変個数のデータを求める手段とを有しているため、必要な点のみを計算する間引かれた演算が可能となり、積和の演算回数を大幅に減らせる。
【図面の簡単な説明】
【図１】本発明に係る符号化装置の第１の実施例に用いられるデータ数変換方法を説明するための概略構成を示すブロック図である。
【図２】データ数変化の一例を説明するための波形図である。
【図３】スペクトルエンベロープの拡張を説明するための波形図である。
【図４】ＦＩＲフィルタのフィルタ係数を説明するための図である。
【図５】図４に示されたフィルタ係数を用い実際に出力点を求める例を説明するための図である。
【図６】直線補間で使う値の求め方及び直線補間を説明するための図である。
【図７】直線補間で使う値の求め方を説明するためのフローチャートである。
【図８】直線補間を説明するためのフローチャートである。
【図９】第２の実施例を説明するための図である。
【図１０】本発明に係る符号化装置の実施例の具体例としての音声信号の合成分析符号化装置の分析側（エンコード側）の概略構成を示す機能ブロック図である。
【図１１】窓かけ処理を説明するための図である。
【図１２】窓かけ処理と窓関数との関係を説明するための図である。
【図１３】直交変換（ＦＦＴ）処理対象としての時間軸データを示す図である。
【図１４】周波数軸上のスペクトルデータ、スペクトル包絡線（エンベロープ）及び励起信号のパワースペクトルを示す図である。
【図１５】ＣＲＣ＆畳込み符号を説明するための図である。
【図１６】本発明に係る復号装置の実施例として、データ数変換方法が適用される装置の具体例としての音声信号の合成分析符号化装置の合成側（デコード側）の概略構成を示す機能ブロック図である。
【図１７】音声信号を合成する際の無声音合成を説明するための図である。
【図１８】ＣＲＣ＆畳込み復号を説明するための図である。
【符号の説明】
１２  非線形圧縮部、  １３  データ個数変換本体部、  １４  スペクトルエンベロープ拡張部、  １５  帯域制限型ＦＩＲフィルタ、  １６  直線補間部、１０３  ピッチ抽出部、  １０４  窓かけ処理部、  １０５  直交変換（ＦＦＴ）部、  １０６  高精度（ファイン）ピッチサーチ部、  １０７  有声音／無声音（Ｖ／ＵＶ）判別部、  １０８  振幅再評価部、  １０９  データ数変換（データレートコンバート）部、  １１０  ベクトル量子化部、  １１１  ＣＲＣ＆畳込み符号化部、  １１２  フレームインターリーブ部
【図１】
0003731575.tif 000015
【図２】
0003731575.tif 000016
【図３】
0003731575.tif 000017
【図４】
0003731575.tif 000018
【図５】
0003731575.tif 000019
【図６】
0003731575.tif 000020
【図７】
0003731575.tif 000021
【図８】
0003731575.tif 000022
【図９】
0003731575.tif 000023
【図１０】
0003731575.tif 000024
【図１１】
0003731575.tif 000025
【図１２】
0003731575.tif 000026
【図１３】
0003731575.tif 000027
【図１４】
0003731575.tif 000028
【図１５】
0003731575.tif 000029
【図１６】
0003731575.tif 000030
【図１７】
0003731575.tif 000031
【図１８】
0003731575.tif 000032