(57)【要約】【課題】分析合成型の音声符号化及び復号において、送受信される情報量を減少させる。【解決手段】予測分析部９１１７により生成された残差信号から、残差信号特徴量抽出部９１２１が該残差信号を特徴付ける量のみを抽出して、符号化部９１３３による符号化の対象とする。残差信号を特徴付ける量とは、例えば、残差信号の周波数変換係数のうちの、所定の個数だけ選択されたものや、残差信号が雑音であった場合の、帯域毎の強度である。【選択図】図１
2008083363.tif 000002
【特許請求の範囲】
【請求項１】
音声信号を予測分析により予測係数と残差信号とに分解する予測分析部と、
前記残差信号から該残差信号を特徴付ける量である特徴量を抽出する特徴量抽出部と、
前記予測係数と前記特徴量とを符号化する符号化部と、
を備える音声符号化装置。
【請求項２】
前記特徴量抽出部は、
前記残差信号をスペクトル係数群に変換し、該係数群のうち所定の個数以下のスペクトル係数を選択して前記特徴量とする、
ことを特徴とする請求項１に記載の音声符号化装置。
【請求項３】
前記特徴量抽出部は、
前記残差信号をスペクトル係数群に変換し、該係数群のうち所定の大きさ以上のスペクトル係数を選択して前記特徴量とする、
ことを特徴とする請求項１又は２に記載の音声符号化装置。
【請求項４】
前記特徴量抽出部は、
前記残差信号をスペクトル係数群に変換し、該係数群のうち一部の係数を維持し残りの係数を定数に置換した新係数群を複数生成し、その中から、前記新係数群から音声信号を復元した場合に該音声信号が元の音声信号にできるだけ近くなるような新係数群を選択して前記特徴量とする、
ことを特徴とする請求項１に記載の音声符号化装置。
【請求項５】
残差信号縮小部をさらに備え、
前記特徴量抽出部は、
前記残差信号縮小部が生成した縮小された残差信号から前記特徴量を抽出する、
ことを特徴とする請求項１乃至４の何れか１項に記載の音声符号化装置。
【請求項６】
前記残差信号縮小部は、
前記残差信号を区分波形に分割し、
連続する２個の前記区分波形の両方と似ておりかつ該両方の長さの和より短い長さを有する新規区分波形を生成し、
前記連続する２個の前記区分波形の境界に前記新規区分波形を関連付け、
前記連続する２個の前記区分波形がどの程度似ているかを示す類似度を計算し前記境界に関連付け、
前記類似度の大きい前記境界から優先的に、前記新規区分波形をそれが関連づけられた前記境界に挿入するとともに、該境界をなしていた２個の前記区分波形を削除する、
ことを特徴とする請求項５に記載の音声符号化装置。
【請求項７】
前記特徴量抽出部は、
前記残差信号が雑音であるか否かを判別し、
前記残差信号が雑音であると判別された場合には、その旨と、帯域毎の残差信号の強度と、を前記特徴量とする、
ことを特徴とする請求項１乃至６の何れか１項に記載の音声符号化装置。
【請求項８】
前記特徴量抽出部は、
離散フーリエ変換を行う、
ことを特徴とする請求項１乃至７の何れか１項に記載の音声符号化装置。
【請求項９】
前記特徴量抽出部は、
離散コサイン変換を行う、
ことを特徴とする請求項１乃至７の何れか１項に記載の音声符号化装置。
【請求項１０】
前記予測分析部は、
線型予測分析を行う、
ことを特徴とする請求項１乃至９の何れか１項に記載の音声符号化装置。
【請求項１１】
前記予測分析部は、
ＭＬＳＡ（Mel Log Spectrum Approximation）分析を行う、
ことを特徴とする請求項１乃至９の何れか１項に記載の音声符号化装置。
【請求項１２】
音声信号が予測分析され符号化された結果である、残差信号を特徴付ける量と予測係数とがまとめて符号化されたものを受信する受信部と、
前記符号化されたものを復号して前記残差信号を特徴付ける量と前記予測係数とを生成する復号部と、
前記復号部により生成された前記残差信号を特徴付ける量から前記残差信号を復元しそれを励起信号として出力する残差信号復元部と、
前記復号部により生成された前記予測係数により定義され前記励起信号が入力されることにより復元された音声信号が出力される合成用逆フィルタ部と、
を備える音声復号装置。
【請求項１３】
音声信号を予測分析により予測係数と残差信号とに分解する予測分析ステップと、
前記残差信号から該残差信号を特徴付ける量である特徴量を抽出する特徴量抽出ステップと、
前記予測係数と前記特徴量とを符号化する符号化ステップと、
から構成される音声符号化方法。
【請求項１４】
音声信号が予測分析され符号化された結果である、残差信号を特徴付ける量と予測係数とがまとめて符号化されたものを受信する受信ステップと、
前記符号化されたものを復号して前記残差信号を特徴付ける量と前記予測係数とを生成する復号ステップと、
前記復号ステップにより生成された前記残差信号を特徴付ける量から前記残差信号を復元しそれを励起信号として出力する残差信号復元ステップと、
前記復号ステップにより生成された前記予測係数により定義された合成用逆フィルタに前記励起信号が入力されることにより復元された音声信号が出力される音声合成ステップと、
から構成される音声復号方法。
【請求項１５】
コンピュータに、
音声信号を予測分析により予測係数と残差信号とに分解する予測分析ステップと、
前記残差信号から該残差信号を特徴付ける量である特徴量を抽出する特徴量抽出ステップと、
前記予測係数と前記特徴量とを符号化する符号化ステップと、
を実行させるコンピュータプログラム。
【請求項１６】
コンピュータに、
音声信号が予測分析され符号化された結果である、残差信号を特徴付ける量と予測係数とがまとめて符号化されたものを受信する受信ステップと、
前記符号化されたものを復号して前記残差信号を特徴付ける量と前記予測係数とを生成する復号ステップと、
前記復号ステップにより生成された前記残差信号を特徴付ける量から前記残差信号を復元しそれを励起信号として出力する残差信号復元ステップと、
前記復号ステップにより生成された前記予測係数により定義された合成用逆フィルタに前記励起信号が入力されることにより復元された音声信号が出力される音声合成ステップと、
を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析合成型の音声圧縮復元を実行する際に必要となる、音声符号化装置、音声復号装置、音声符号化方法、音声復号方法、及び、プログラムに関する。
【背景技術】
【０００２】
デジタル携帯電話等の移動体通信の分野においては、加入者の増加に対処するため、低ビットレート（8ｋｂｐｓ程度）の音声の圧縮符号化方法が求められている。例えば、8ｋｂｐｓの音声符号化方法として、ＩＴＵ−Ｔ勧告Ｇ．７２９に示される音声符号化方法がある。
【０００３】
上述の勧告に係る音声符号化方法は、基本的には、音声信号を予測分析により予測係数と残差信号とに分解してから符号化する方法である。予測分析として、例えば、線型予測分析や、ＭＬＳＡ（Mel Log Spectrum Approximation）分析（例えば、非特許文献１参照。）が知られている。
【０００４】
分析合成型の符号化及び復号において上述の低ビットレート通信を可能にするためには、符号化装置側から復号装置側へ、いかに残差信号を圧縮して送信するか、に、工夫が必要となる。残差信号は情報量が多いため、そのまま送信すると、オーバーフローしてしまうからである。
【０００５】
かかる工夫のひとつとして、典型的な残差信号であろうことが経験上期待されるいくつかの残差信号を集めそれぞれに番号付けしたテーブル（符号帳。例えば、残差信号が雑音である場合に用いるものは、雑音符号帳という。）を符号化側の装置（送信機）と復号側の装置（受信機）とで共有し、前者の装置から後者の装置に前記番号を伝えることが行われている。すなわち、送信機が、前記テーブルに掲載されている残差信号のうち、該送信機に入力された音声信号とのマッチングが最適となるような残差信号を検索・選択し、該残差信号の番号を受信機に伝えるのである。
【非特許文献１】今井聖、住田一男、古市千枝子著「音声合成のためのメル対数スペクトル近似（ＭＬＳＡ）フィルタ」、電子通信学会論文誌、第Ｊ６６−Ａ巻、第２号、ｐ．１２２−１２９、１９８３年
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、かかる工夫においては、励起信号を掲載したテーブルをあらかじめ用意しておく必要があり、面倒である。
【０００７】
また、テーブルの内容は原則としては固定されているので、有限個の候補についてのみ上述のマッチングを行わざるを得ないため、結果的に、受信機による再生音声が、送信機への入力音声とかけ離れたものとなってしまう場合もあり得る。
【０００８】
例えば送信機や受信機をユーザが使い込むにつれてある種の学習機能が働きテーブルの内容が追加されていくような工夫もなされたが、かかる追加を頻繁に行うと送信機と受信機との間でテーブルの内容の食い違いが生じやすく、誤作動の原因になり得る。
【０００９】
本発明は、上記実情に鑑みてなされたもので、残差信号からそれを特徴付ける量のみを取り出して符号化及び送信を行うことにより、伝達すべき情報量を減らしつつも、受信及び復号がなされた音声信号の品質を十分に確保するような、音声符号化装置、音声符号化方法、音声復号装置、音声復号方法、及び、プログラムを提供することを目的とする。
【００１０】
なお、送信機で生成された残差信号は、受信機においては音声再生のための励起信号として使われる。つまり、残差信号という用語と励起信号という用語とは、局面によって使い分けがなされるに過ぎず、実体としては同じものを指す。よって、以下では、両用語の使い方には拘泥しない。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の第１の観点に係る音声符号化装置は、
音声信号を予測分析により予測係数と残差信号とに分解する予測分析部と、
前記残差信号から該残差信号を特徴付ける量である特徴量を抽出する特徴量抽出部と、
前記予測係数と前記特徴量とを符号化する符号化部と、
を備える。
【００１２】
残差信号を直接的に符号化するのではなく、特徴量を抽出してから符号化するので、符号長が短くなり、低ビットレート通信が可能になる。
【００１３】
前記特徴量抽出部は、前記残差信号をスペクトル係数群に変換し、該係数群のうち所定の個数以下のスペクトル係数を選択して前記特徴量としてもよい。
【００１４】
前記特徴量抽出部は、前記残差信号をスペクトル係数群に変換し、該係数群のうち所定の大きさ以上のスペクトル係数を選択して前記特徴量としてもよい。
【００１５】
前記特徴量抽出部は、前記残差信号をスペクトル係数群に変換し、該係数群のうち一部の係数を維持し残りの係数を定数に置換した新係数群を複数生成し、その中から、前記新係数群から音声信号を復元した場合に該音声信号が元の音声信号にできるだけ近くなるような新係数群を選択して前記特徴量としてもよい。
【００１６】
残差信号縮小部をさらに備え、前記特徴量抽出部は、前記残差信号縮小部が生成した縮小された残差信号から前記特徴量を抽出してもよい。
【００１７】
前記残差信号縮小部は、前記残差信号を区分波形に分割し、連続する２個の前記区分波形の両方と似ておりかつ該両方の長さの和より短い長さを有する新規区分波形を生成し、前記連続する２個の前記区分波形の境界に前記新規区分波形を関連付け、前記連続する２個の前記区分波形がどの程度似ているかを示す類似度を計算し前記境界に関連付け、前記類似度の大きい前記境界から優先的に、前記新規区分波形をそれが関連づけられた前記境界に挿入するとともに、該境界をなしていた２個の前記区分波形を削除する、ようにしてもよい。
【００１８】
前記特徴量抽出部は、前記残差信号が雑音であるか否かを判別し、前記残差信号が雑音であると判別された場合には、その旨と、帯域毎の残差信号の強度と、を前記特徴量としてもよい。
【００１９】
前記特徴量抽出部は、例えば、離散フーリエ変換を行う。
【００２０】
前記特徴量抽出部は、あるいは例えば、離散コサイン変換を行う。
【００２１】
前記予測分析部は、例えば、線型予測分析を行う。
【００２２】
前記予測分析部は、あるいは例えば、ＭＬＳＡ（Mel Log Spectrum Approximation）分析を行う。
【００２３】
上記目的を達成するために、本発明の第２の観点に係る音声復号装置は、
音声信号が予測分析され符号化された結果である、残差信号を特徴付ける量と予測係数とがまとめて符号化されたものを受信する受信部と、
前記符号化されたものを復号して前記残差信号を特徴付ける量と前記予測係数とを生成する復号部と、
前記復号部により生成された前記残差信号を特徴付ける量から前記残差信号を復元しそれを励起信号として出力する残差信号復元部と、
前記復号部により生成された前記予測係数により定義され前記励起信号が入力されることにより復元された音声信号が出力される合成用逆フィルタ部と、
を備える。
【００２４】
残差信号をテーブル内の限られた候補から選ぶのではなく、特徴量から復元するので、再生音声の品質が良好である。
【００２５】
上記目的を達成するために、本発明の第３の観点に係る音声符号化方法は、
音声信号を予測分析により予測係数と残差信号とに分解する予測分析ステップと、
前記残差信号から該残差信号を特徴付ける量である特徴量を抽出する特徴量抽出ステップと、
前記予測係数と前記特徴量とを符号化する符号化ステップと、
から構成される。
【００２６】
上記目的を達成するために、本発明の第４の観点に係る音声復号方法は、
音声信号が予測分析され符号化された結果である、残差信号を特徴付ける量と予測係数とがまとめて符号化されたものを受信する受信ステップと、
前記符号化されたものを復号して前記残差信号を特徴付ける量と前記予測係数とを生成する復号ステップと、
前記復号ステップにより生成された前記残差信号を特徴付ける量から前記残差信号を復元しそれを励起信号として出力する残差信号復元ステップと、
前記復号ステップにより生成された前記予測係数により定義された合成用逆フィルタに前記励起信号が入力されることにより復元された音声信号が出力される音声合成ステップと、
から構成される。
【００２７】
上記目標を達成するために、本発明の第５の観点に係るプログラムは、
コンピュータに、
音声信号を予測分析により予測係数と残差信号とに分解する予測分析ステップと、
前記残差信号から該残差信号を特徴付ける量である特徴量を抽出する特徴量抽出ステップと、
前記予測係数と前記特徴量とを符号化する符号化ステップと、
を実行させる。
【００２８】
上記目標を達成するために、本発明の第６の観点に係るプログラムは、
コンピュータに、
音声信号が予測分析され符号化された結果である、残差信号を特徴付ける量と予測係数とがまとめて符号化されたものを受信する受信ステップと、
前記符号化されたものを復号して前記残差信号を特徴付ける量と前記予測係数とを生成する復号ステップと、
前記復号ステップにより生成された前記残差信号を特徴付ける量から前記残差信号を復元しそれを励起信号として出力する残差信号復元ステップと、
前記復号ステップにより生成された前記予測係数により定義された合成用逆フィルタに前記励起信号が入力されることにより復元された音声信号が出力される音声合成ステップと、
を実行させる。
【発明の効果】
【００２９】
本発明によれば、分析合成型の音声信号通信において、情報伝達量を抑えつつ、再生音声の音質を向上させることができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の実施の形態に係る音声符号化兼復号装置について説明する。特に、残差信号を特徴付ける量を抽出する過程については、３種類の実施形態を挙げる。
【００３１】
図１は、図２に示される、本実施形態に係る音声符号化兼復号装置９２１１の、音声符号化装置９１１１としての機能構成と、音声復号装置９１４１としての機能構成を示す。
【００３２】
音声符号化装置９１１１としての音声符号化兼復号装置９２１１は、図１に示すように、マイクロフォン９１１３と、Ａ／Ｄ変換部９１１５と、予測分析部９１１７と、残差信号特徴量抽出部９１２１と、符号化部９１３３と、送信部９１３５と、を備える。予測分析部９１１７は、予測分析用逆フィルタ算出器９１１９を内蔵している。残差信号特徴量抽出部９１２１が行う処理の内容は、実施形態（実施形態１、実施形態２、及び、実施形態３）毎にフローチャートにして示してある。いずれの実施形態を採用する場合も、周波数領域への変換等の変換処理（ステップＳ９１２３）と、その結果得られた周波数係数等を選択する処理（ステップＳ９１２５）と、が含まれる。特に、実施形態２においては、時間軸の縮小処理（ステップＳ９１２７）が、実施形態３においては、有声・無声判別処理（ステップＳ９１２９）と無声の場合の帯域毎の処理（ステップＳ９１３１）が、それぞれさらに含まれる。原則としては、かかる実施形態の何れかひとつが、図２に示される音声符号化兼復号装置９２１１において採用される。もっとも、該装置９２１１を上述の全ての実施形態に対応できるように設計しておき、ユーザの選択等により何れかの実施形態を採用するものとしてもよい。各実施形態における処理（ステップＳ９１２３〜ステップＳ９１３１）の詳細については後述する。
【００３３】
マイクロフォン９１１３に入力されたアナログ音声信号は、Ａ／Ｄ変換部９１１５によりデジタル音声信号に変換されてから、予測分析部９１１７に引き渡される。予測分析部９１１７は、引き渡されたデジタル音声信号に、線型予測分析やＭＬＳＡ（Mel Log Spectrum Approximation）分析等の予測分析を施す。予測分析部９１１７は、該デジタル音声信号を、所定の時間区間（例えば5ｍｓ）に区切って、Si＝｛si、0、・・・、si、l-1｝（0≦i≦M−1）という形にした後、各時間区間について予測係数を算出する。続いて、該予測係数から、予測分析用逆フィルタ算出器９１１９により、予測分析用逆フィルタを求める。次に、デジタル音声信号Siが該予測分析用逆フィルタに入力された結果として、残差信号Di＝｛di、0、・・・、di、l-1｝（0≦i≦M−1）が求まる。このように、予測分析部９１１７は、デジタル音声信号を、予測係数と残差信号とに分解する。
【００３４】
予測分析部９１１７により生成された予測係数は、そのまま符号化部９１３３に引き渡される。一方、同じく生成された残差信号は、残差信号特徴量抽出部９１２１により、該残差信号を特徴付ける量である残差信号特徴量に変換されてから、符号化部９１３３に引き渡される。符号化部は前記予測係数と前記残差信号とをまとめて、任意の既知の手法により、符号化し、生成した符号を送信部９１３５に引き渡す。送信部９１３５は、前記符号を、音声復号装置９１４１として動作する、別の音声符号化兼復号装置９２１１（図２）に向けて、送信する。
【００３５】
音声復号装置９１４１としての音声符号化兼復号装置９２１１は、図１に示すように、受信部９１４３、復号部９１４５、合成用逆フィルタ算出部９１４７、合成用逆フィルタ部９１４９、残差信号復元部９１５１、Ｄ／Ａ変換部９１５３と、スピーカ９１５５と、を備える。別の音声符号化兼復号装置９２１１（図２）から送信された符号は、図１の受信部９１４３によって受信された後、復号部９１４５によって復号される。かかる復号の結果、予測係数と、残差信号特徴量と、が生成される。
【００３６】
生成された予測係数は、合成用逆フィルタ算出部９１４７に引き渡される。合成用逆フィルタ算出部は、引き渡された予測係数に基づいて、任意の既知の手法により、合成用逆フィルタの仕様を決定し、かかる決定の結果を合成用逆フィルタ部９１４９に通知する。合成用逆フィルタ部９１４９は、かかる通知に従って、自らの仕様を定める。
【００３７】
一方、復号部９１４５により生成された残差信号特徴量は、残差信号復元部９１５１に引き渡される。残差信号復元部９１５１は、音声符号化装置９１１１の内部の残差信号特徴量抽出部９１２１とほぼ逆の処理を行うことにより、受け取った残差信号特徴量から疑似残差信号を生成する。ここで「疑似」と称する理由は、残差信号特徴量を抽出する際（残差信号特徴量抽出部９１２１において行われるステップＳ９１２３〜ステップＳ９１３１）、残差信号特徴量以外の情報を捨象しているために、残差信号の復元側たる残差信号復元部９１５１は、元の残差信号を完全には復元できないからである。
【００３８】
残差信号復元部９１５１により生成された疑似残差信号は、合成用逆フィルタ部９１４９に励起信号として入力される（なお、既に述べたように、残差信号と励起信号とは、同じ信号を別の視点からみたものにすぎない。）。その結果、合成用逆フィルタ部９１４９からは復元されたデジタル音声信号が生成される。該信号はＤ／Ａ変換部９１５３によりアナログ音声信号に変換された後、スピーカ９１５５に送られる。こうして、スピーカ９１５５からは、復元された音声信号が、人間の耳に聞こえる形で発せられる。
【００３９】
図１に示した機能ブロックや処理の流れは、物理的には、図２に示す音声符号化兼復号装置９２１１により実現される。より具体的な装置としては、例えば、携帯電話機が想定される。該装置は、図１で既に示してあるマイクロフォン９１１３及びスピーカ９１５５と、を備える。該装置は、アンテナ９２５３と、操作キー９２６３と、をさらに備える。該装置は、システムバス９２７１により相互に接続された、ＣＰＵ９２２１と、ＲＯＭ（Read Only Memory）９２２３と、記憶部９２２５と、音声処理部９２４１と、無線通信部９２５１と、操作キー入力処理部９２６１と、をさらに備える。記憶部９２２５は、例えば、ＲＡＭ（Random Access  Memory）９２３１と、ハードディスク９２３３と、を備える。
【００４０】
ＲＯＭ９２２３には、音声符号化及び復号のための動作プログラムが格納されている。ＣＰＵ９２２１は、該動作プログラムに従って動作する。そして、ＣＰＵ９２２１は、内蔵のバッファ（図示せず。）と記憶部９２２５との間で適宜データのやりとりを行いながら、数値演算により、音声符号化兼復号装置９２１１に、図１に示す音声符号化装置９１１１又は音声復号装置９１４１としての機能を発揮させる。ＣＰＵ９２２１は、その際、必要に応じて音声処理部９２４１、無線通信部９２５１、操作キー入力処理部９２６１とデータのやりとりを行う。
【００４１】
図２の音声処理部９２４１は、図１のＡ／Ｄ変換部９１１５及びＤ／Ａ変換部９１５３として動作することができる。無線通信部９２５１は、図１の送信部９１３５及び受信部９１４３として動作することができる。符号の送受信は、基本的には、図２のアンテナ９２５３を用いた無線通信により行われるが、別の方法、例えば有線通信により行われてもよい。操作キー入力処理部９２６１は、操作キー９２６３からの操作信号を受け付けて、操作信号に対応するキーコード信号をＣＰＵ９２２１に伝達する。操作キー９２６３は、通信の相手方となる音声符号化兼復号装置９２１１を特定する、すなわちいわゆる電話番号を入力するのに使われる他、基本的には設定済みの既に与えられている各種パラメータ（例えば、後述の周波数変換係数をいくつ符号化するか、など。）をユーザの好みに応じて変化させるために用いられてもよい。
【００４２】
（予測分析の手順）
以下では、図１の予測分析部９１１７が行う予測分析について、図３に示すフローチャートを参照しつつ説明する。予測分析としては、例えば、線型予測分析やＭＬＳＡ（Mel Log Spectrum Approximation）分析が知られている。図３では、後者を括弧書きにして、両分析が併記されている。
【００４３】
記憶部９２２５（図２）には、既に、デジタル音声信号（入力波形）Si＝｛si、0、・・・、si、l−1｝（0≦i≦M−1）が格納されているとする。ＣＰＵ９２２１（図２）は、内蔵のカウンタレジスタ（図示せず）を入力信号サンプルカウンタiの格納に用いることとし、初期値として、i＝0とする（図３のステップＳ９３１１）。
【００４４】
ＣＰＵ９２２１は、内蔵の汎用レジスタ（図示せず）に、記憶部９２２５から、入力信号サンプルSi＝｛si、0、・・・、si、l−1｝をロードする（図３のステップＳ９３１３）。
【００４５】
ＣＰＵ９２２１は、線型予測分析の場合は、入力信号サンプルSiから、線型予測係数Ai＝{ai、1、・・・、ai、n}を計算する（ステップＳ９３１５）。ただし、nは線型予測分析の次数である。計算方法としては、残差信号が所定の尺度に基づき十分に小さいと評価されることになるような計算方法であれば、任意の既知の手法を採用してよい。例えば、よく知られている、自己相関関数の計算とレビンソン・ダービンアルゴリズムを組み合わせた計算方法を採用するのが好適である。
【００４６】
ＣＰＵ９２２１は、ＭＬＳＡ分析の場合は、入力信号サンプルSiから、まず、ケプストラムCi＝{ci、0、・・・、ci、(l/2)−1}を計算する。かかる計算には、任意の既知の手法を採用してよい。どの手法においても、概ね、離散フーリエ変換をする、絶対値をとる、対数をとる、逆離散フーリエ変換をする、といった手続が行われる。次に、求めたケプストラムCiから、任意の既知の手法により、ＭＬＳＡフィルタ係数Mi＝｛mi、0、・・・、mi、p−1｝を計算する（ステップＳ９３１５）。
【００４７】
線型予測分析の場合は線型予測係数Ai＝｛ai、1、・・・、ai、n｝が、ＭＬＳＡ分析の場合はＭＬＳＡフィルタ係数Mi＝｛mi、0、・・・、mi、p−1｝が、記憶部９２２５に予測係数として記憶される（ステップＳ９３１７）。
【００４８】
続いて、線型予測分析の場合、線型予測係数Aiから、任意の既知の手法により、予測分析用逆線型予測フィルタAIAiが計算され、ＭＬＳＡ分析の場合、ＭＬＳＡフィルタ係数Miから、任意の既知の手法により、予測分析用逆ＭＬＳＡフィルタAIMiが計算される。（ステップＳ９３１９）これらの計算は、図１の予測分析用逆フィルタ算出器９１１９が行う計算に相当する。
【００４９】
求めた予測分析用逆線型予測フィルタAIAi又は予測分析用逆ＭＬＳＡフィルタAIMiに入力信号サンプルSi＝｛si、0、・・・、si、l−1｝が通されることにより、残差信号Di＝｛di、0、・・・、di、l−1｝が求まる（図３のステップＳ９３２１）。残差信号Diは記憶部９２２５に記憶される（ステップＳ９３２３）。
【００５０】
ここで、入力信号サンプルカウンタiがM−1に達しているか否かが判別される（ステップＳ９３２５）。達していれば（ステップＳ９３２５；Ｙｅｓ）、終了する。一方、達していなければ（ステップＳ９３２５；Ｎｏ）、次の時間区間の入力信号サンプルについての処理を行うために、iを1だけインクリメントし（ステップＳ９３２７）、ステップＳ９３１３以降の処理を繰り返す。
【００５１】
（実施形態１における残差信号特徴量の抽出の手順）
以下では、図１のステップＳ９１２３及びステップＳ９１２５に示した、実施形態１における残差信号特徴量の抽出の手順を、より詳しく説明する。かかる手順にはいくつかのバリエーションがある。
【００５２】
まず、周波数変換係数毎に分配されたエネルギーに基づいて指定個数の周波数係数を符号化対象として選択する場合について、図４のフローチャートを参照しつつ説明する。符号化の対象となる周波数変換係数の個数ｕは、符号化の際の情報圧縮率や伝達可能情報量が勘案された上で、図２のＲＯＭ９２２３に格納された動作プログラムに記述済みであるか、または、ユーザにより操作キー９２６３を介して指定済みであるものとする（図４のステップＳ９４１１）。はじめ、図２のＣＰＵ９２２１において、入力信号サンプルカウンタがi＝0に設定され（図４のステップＳ９４１３）、残差信号Di＝｛di、0、・・・、di、l−1｝が記憶部からレジスタにロードされる（ステップＳ９４１５）。次に、残差信号Diは、離散フーリエ変換により、残差信号スペクトルFD、i＝｛fD、i、0、・・・、fD、i、(l/2)−1｝に変換される。つまり、時系列データである残差信号Diは、周波数領域に変換される。さらに、残差信号スペクトルの係数毎に、該係数に分配されたエネルギーが計算される（ステップＳ９４１７）。該エネルギーは、例えば、(fD、i、j)2（0≦j≦(l/2)−1）、と定義するのが好適である。次に、係数fD、i、0、・・・、fD、i、(l/2)−1は、計算されたエネルギーの降順にソートされる（ステップＳ９４１９）。
【００５３】
次に、係数カウンタjが初期値j＝0に設定され（ステップＳ９４２１）、ステップＳ９４１９におけるソートの結果に基づいて、係数fD、i、jのエネルギーの高さが、ステップＳ９４１１で指定された個数uに対応した順位であるu番目以内か否かが判別される（ステップＳ９４２３）。u番目以内であれば（ステップＳ９４２３；Ｙｅｓ）、符号化対象周波数変換係数f 'D、i、jをf 'D、i、j＝fD、i、jと定義（ステップＳ９４２５）する一方、u番目以内ではないのであれば（ステップＳ９４２３；Ｎｏ）、符号化対象周波数変換係数をf 'D、i、j＝０と定義する（ステップＳ９４２７）。続いて、jが(l/2)−1に達したか否かが判別され（ステップＳ９４２９）、まだ達していないのであれば（ステップＳ９４２９；Ｎｏ）、jを1増加して（ステップＳ９４３１）、ステップＳ９４２３に戻る。jがl−1に達していれば（ステップＳ９４２９；Ｙｅｓ）、符号化対象残差信号スペクトルF 'D、i＝｛f 'D、i、0、・・・、f 'D、i、(l/2)−1｝は記憶部９２２５（図２）に格納される（ステップＳ９４３３）。かかる符号化対象残差信号スペクトルF 'D、iは、元の残差信号スペクトルFD、iのうち、高いエネルギーを有する係数から順にu個を維持し、他の係数を0としたものである。事実上、かかるu個の係数だけが、残差信号特徴量として、符号化部９１３３（図１）における符号化の対象になるので、符号長が短くて済み、低ビットレート通信に適する。続いて、ステップＳ９４３５において、iがM−1に達したか否かが判別され、達していない場合には（ステップＳ９４３５；Ｎｏ）、iを1だけ増加して（ステップＳ９４３７）、ステップＳ９４１５に戻り、達している場合には（ステップＳ９４３５；Ｙｅｓ）、終了する。
【００５４】
なお、残差信号が有声音、すなわちピッチとしての性質を有する場合、ピッチ周波数が重要であるので、ピッチ周波数に関する情報は確実に符号化の対象となるのが望ましい。この点、上述のようにエネルギーの高い順に係数を選択すれば、ほぼ確実に、ピッチ周波数に相当する周波数変換係数が符号化の対象となり、好都合である。有声音の残差信号を周波数領域に変換した場合、ピッチ周波数に相当する周波数変換係数は、一般に、他の係数に比べて大きなエネルギーを有するからである。
【００５５】
以下では、実施形態１における残差信号特徴量の抽出の手順の、別のバリエーションについて、図５のフローチャートを参照しつつ説明する。このバリエーションは、符号化対象とする周波数変換係数の選択を、エネルギーと、エネルギーの所定の閾値に基づいて行うことを特徴とする。周波数変換係数のエネルギーの閾値は、符号化の際の情報圧縮率や伝達可能情報量が勘案された上で、図２のＲＯＭ９２２３に格納された動作プログラムに記述済みであるか、または、ユーザにより操作キー９２６３を介して指定済みであるものとする（図５のステップＳ９５１１）。はじめ、入力信号サンプルカウンタがi＝0に設定され（図５のステップＳ９５１３）、残差信号Di＝｛di、0、・・・、di、l−1｝が記憶部からレジスタにロードされる（ステップＳ９５１５）。次に、図４のステップＳ９４１７と同様に、残差信号Diは、離散フーリエ変換により、残差信号スペクトルFD、iに変換され、該残差信号スペクトルの係数毎に、該係数に分配されたエネルギーが計算される（ステップＳ９５１７）。
【００５６】
次に、係数カウンタjが初期値j＝0に設定され（ステップＳ９５１９）た後、係数fD、i、jのエネルギーの高さが、ステップＳ９５１１で指定された閾値よりも高いか否かが判別される（ステップＳ９５２１）。高い場合には（ステップＳ９５２１；Ｙｅｓ）、符号化対象周波数変換係数f 'D、i、jをf 'D、i、j＝fD、i、jと定義（ステップＳ９５２３）する一方、高くなければ（ステップＳ９５２１；Ｎｏ）、符号化対象周波数変換係数をf 'D、i、j＝０と定義する（ステップＳ９５２５）。続いて、jが(l/2)−1に達したか否かが判別され（ステップＳ９５２７）、まだ達していないのであれば（ステップＳ９５２７；Ｎｏ）、jを1増加して（ステップＳ９５２９）、ステップＳ９５２１に戻る。jが(l/2)−1に達していれば（ステップＳ９５２７；Ｙｅｓ）、符号化対象残差信号スペクトルF 'D、i＝｛f 'D、i、0、・・・、f 'D、i、(l/2)−1｝は記憶部９２２５（図２）に格納される（ステップＳ９５３１）。かかる符号化対象残差信号スペクトルF 'D、iは、元の残差信号スペクトルFD、iのうち、所定の閾値より高いエネルギーを有する係数だけを維持し、他の係数を0としたものである。続いて、ステップＳ９５３３において、iがM−1に達したか否かが判別され、達していない場合には（ステップＳ９５３３；Ｎｏ）、iを1だけ増加して（ステップＳ９５３５）、ステップＳ９５１５に戻り、達している場合には（ステップＳ９５３３；Ｙｅｓ）、終了する。
【００５７】
実施形態１における残差信号特徴量の抽出の手順として、図４により説明したものと、図５により説明したものとを、折衷した手順も考えられる。例えば、図４のステップＳ９４１９におけるソートの結果から、最も高いエネルギー値を求め、該エネルギー値に所定の値、例えば0.9を乗じた値を、図５のステップＳ９５１１におけるエネルギーの所定値とすることが考えられる。
【００５８】
以下では、実施形態１における残差信号特徴量の抽出の手順の、さらにまた別のバリエーションについて、図６のフローチャートを参照しつつ説明する。このバリエーションは、符号化対象とする周波数変換係数の選択に際し、選択される係数の個数をあらかじめ指定した上で、実時間領域に逆変換した後に得られる元の信号との誤差が最小となるような組み合わせを見つけることを特徴とする。符号化対象となる周波数変換係数の個数は、符号化の際の情報圧縮率や伝達可能情報量が勘案された上で、図２のＲＯＭ９２２３に格納された動作プログラムに記述済みであるか、または、ユーザにより操作キー９２６３を介して指定済みであるものとする（図６のステップＳ９６１１）。また、残差信号Diは既に求まっており、図２の記憶部９２２５に格納されていることを前提とする。かかる前提によれば、残差信号Diが求まっているということは、図１の予測分析部９１１７により、予測係数も求まっているということである。そして、ここでは図２の音声符号化兼復号装置９２１１が図１の音声符号化装置９１１１として機能する場合について述べているのであるが、本バリエーションの場合は、特別に、音声復号装置９１４１として機能する場合の合成用逆フィルタ算出部９１４７及び合成用逆フィルタ部９１４９も必要となる。
【００５９】
はじめ、入力信号サンプルカウンタがi＝0に設定され（図６のステップＳ９６１３）、残差信号Di＝｛di、0、・・・、di、l−1｝が記憶部からレジスタにロードされる（ステップＳ９６１５）。次に、残差信号Diは、離散フーリエ変換により、残差信号スペクトルFD、i＝｛fD、i、0、・・・、fD、i、(l/2)−1｝に変換される（ステップＳ９６１７）。次に、得られたl個の係数fD、i、0、・・・、fD、i、(l/2)-1のうち、ステップＳ９６１１にて指定されたu個の係数の値はそのまま保持する一方、他の係数の値は0としたスペクトルを全て生成する。l個の係数からu個の係数を選択するのであるから、かかるスペクトルは全部でlCu個存在する（Cはコンビネーションであり、組み合わせの数を表す。）。かかる多数のスペクトルを、変数i 'で相互に識別することにし、仮残差信号スペクトル候補F ''D、i、i 'と表記することにする（ステップＳ９６１９）。1≦i '≦lCuである。
【００６０】
次に、候補カウンタがi '＝1に、暫定乖離指標δ’i、i 'が十分大きな値に、それぞれ設定され（ステップＳ９６２１）、i 'がlCu以下であるか否かが判別される（ステップＳ９６２３）。i 'がlCu以下ではない場合（ステップＳ９６２３；Ｎｏ）、ステップＳ９６３７に進む。i 'がlCu以下である場合（ステップＳ９６２３；Ｙｅｓ）、仮残差信号スペクトル候補F ''D、i、i 'は、逆離散フーリエ変換により、仮残差信号D ''i、i '＝｛d ''i、i '、0、・・・、d ''i、i '、l−1｝に変換される（ステップＳ９６２５）。先にことわった通り、既に求まっている予測係数から、本来は復号側の機能ブロックである、図１の合成用逆フィルタ算出部９１４７により、合成用逆フィルタ部９１４９の仕様が定められる。そして仮残差信号D ''i、i 'が該合成用逆フィルタ部９１４９に入力された結果として、仮復元信号S ''i、i '＝｛s ''i、i '、0、・・・、s ''i、i '、l−1｝が求まる（ステップＳ９６２７）。続いて元の信号（入力信号サンプル）Si＝｛si、0、・・・、si、l−1｝がロードされ、仮復元信号S ''i、i 'の元の信号Siに対する乖離指標δi、i 'が計算される（ステップＳ９６２９）。乖離指標δi、i 'は、仮復元信号S ''i、i 'と元の信号Siとの誤差を表す指標であればいかなるものであってもよい。換言すれば、乖離指標δi、i 'が小さいほど、仮復元信号S ''i、i 'は元の信号Siのよい近似となるようにすればよい。よって、例えば、
δi、i '
＝(s ''i、i '、0−si、0)2＋・・・＋(s ''i、i '、l−1−si、l−1)2
と定義してもよい。あるいは、後に図８を参照して説明するように、両信号をいったん周波数領域に変換してから比較し乖離指標δi、i 'を求めることとしてもよい。いずれにしろ、この後、乖離指標δi、i 'が暫定乖離指標δ’i、i 'よりも小さいか否かが判別され（ステップＳ９６３１）、小さい場合（ステップＳ９６３１；Ｙｅｓ）、δ’i、i '＝δi、i 'としかつ符号化対象残差信号スペクトルF 'D、iがF 'D、i＝F ''D、i、i 'として記憶部９２２５に記憶（ステップＳ９６３５）される一方、乖離指標δi、i 'が暫定乖離指標δ’i、i '以上の場合（ステップＳ９６３１；Ｎｏ）、暫定乖離指標δ’i、i '及び符号化対象残差信号スペクトルF 'D、iは維持されたまま、いずれの場合も、ステップＳ９６３３にてi 'が1だけ増加されてから、ステップＳ９６２３に戻る。
【００６１】
ステップＳ９６２３においてi 'がlCuよりも大きいと判別された場合（ステップＳ９６２３；Ｎｏ）、iがM−1に達しているか否かが判別される（ステップＳ９６３７）。達していないのであれば（ステップＳ９６３７；Ｎｏ）、iを1だけ増加して（ステップＳ９６３９）、ステップＳ９６１５に戻り、達しているのであれば（ステップＳ９６３７；Ｙｅｓ）、終了する。終了した時点で記憶部９２２５に保存されている符号化対象残差信号スペクトルF 'D、iが、符号化対象となる。
【００６２】
以下では、実施形態１における残差信号特徴量の抽出の手順の、さらにまた別のバリエーションについて、図７のフローチャートを参照しつつ説明する。このバリエーションは、符号化対象とする周波数変換係数の選択に際し、実時間領域に逆変換した後に得られる元の信号との誤差として許容される誤差（許容誤差）をあらかじめ指定した上で、なるべく少ない個数の係数の選択により該許容誤差に係る条件を満たすようにすることを特徴とする。許容誤差δは、指定済みであるものとする（ステップＳ９７１１）。また、本バリエーションにおいても、先のバリエーションの場合と同様に、図１に示す合成用逆フィルタ算出部９１４７及び合成用逆フィルタ部９１４９が必要となる。
【００６３】
はじめ、入力信号サンプルカウンタがi＝0に設定され（図７のステップＳ９７１３）、周波数変換係数個数カウンタがu＝1に設定され（ステップＳ９７１５）、残差信号Di＝｛di、0、・・・、di、l-1｝が記憶部からレジスタにロードされる（ステップＳ９７１７）。次に、残差信号Diは、離散フーリエ変換により、残差信号スペクトルFD、i＝｛fD、i、0、・・・、fD、i、(l/2)−1｝に変換される（ステップＳ９７１９）。次に、得られた(l/2)個の係数fD、i、0、・・・、fD、i、(l/2)-1のうち、u個の係数の値はそのまま保持する一方、他の係数の値は0としたスペクトルを全て生成する。かかるスペクトルは全部でlCu個存在する。かかる多数のスペクトルを、変数i 'で相互に識別することにし、仮残差信号スペクトル候補F ''D、i、i 'と表記することにする（ステップＳ９７２１）。1≦i '≦lCuである。
【００６４】
次に、候補カウンタがi '＝1に設定され（ステップＳ９７２３）、i 'がlCu以下であるか否かが判別される（ステップＳ９７２５）。i 'がlCu以下ではない場合（ステップＳ９７２５；Ｎｏ）、周波数変換係数個数カウンタuが1だけ増加されてから（ステップＳ９７２７）、ステップＳ９７１７に戻る。i 'がlCu以下である場合（ステップＳ９７２５；Ｙｅｓ）、仮残差信号スペクトル候補F ''D、i、i 'は、逆離散フーリエ変換により、仮残差信号D ''i、i '＝｛d ''i、i '、0、・・・、d ''i、i '、l−1｝に変換される（ステップＳ９７２９）。かかる仮残差信号D ''i、i 'が合成用逆フィルタ部９１４９に入力された結果として、仮復元信号S ''i、i '＝｛s ''i、i '、0、・・・、s ''i、i '、l−1｝が求まる（ステップＳ９７３１）。続いて元の信号（入力信号サンプル）Si＝｛si、0、・・・、si、l−1｝がロードされ、仮復元信号S ''i、i 'の元の信号Siに対する乖離指標δi、i 'が先のバリエーションの場合と同様に計算される（ステップＳ９７３３）。この後、乖離指標δi、i 'がステップＳ９７１１にて指定された許容誤差δよりも小さいか否かが判別され（ステップＳ９７３５）、小さい場合（ステップＳ９７３５；Ｙｅｓ）、符号化対象残差信号スペクトルF 'D、iがF 'D、i＝F ''D、i、i 'として記憶部９２２５に記憶（ステップＳ９７３９）されステップＳ９７４１に進む一方、乖離指標δi、i 'が許容誤差δ以上の場合（ステップＳ９７３５；Ｎｏ）、ステップＳ９７３７にてi 'が1だけ増加されてから、ステップＳ９７２５に戻る。
【００６５】
ステップＳ９７４１では、iがM−1に達しているか否かが判別される。達していないのであれば（ステップＳ９７４１；Ｎｏ）、iを1だけ増加して（ステップＳ９７４３）、ステップＳ９７１５に戻り、達しているのであれば（ステップＳ９７４１；Ｙｅｓ）、終了する。終了した時点で記憶部９２２５に保存されている符号化対象残差信号スペクトルF 'D、iが、符号化対象となる。
【００６６】
なお、上述の各バリエーションの説明においては、周波数領域への変換方法として、離散フーリエ変換を挙げたが、他の変換方法、例えば、ＤＣＴ（Discrete Cosine Transform、離散コサイン変換）、を用いてもよい。
【００６７】
（乖離指標の計算手順の一例）
以下では、図６のステップＳ９６２９及び図７のステップＳ９７３３における、仮復元信号S ''i、i 'の元の信号Siに対する乖離指標δi、i 'の計算手順の一例を図８のフローチャートを用いて説明する。既に図６のステップＳ９６２９についての説明の際に、実時間領域における両信号の比較に基づいて乖離指標を計算する手順について触れたが、以下で説明する計算手順は、周波数領域における両信号の比較に基づいて乖離指標を計算する。
【００６８】
仮復元信号S ''i、i '＝｛s ''i、i '、0、・・・、s ''i、i '、l−1｝は、離散フーリエ変換やＤＣＴ等により、仮復元信号スペクトルF ''S、i、i '＝｛f ''S、i、i '、0、・・・、f ''S、i、i '、(l/2)−1｝に変換される（ステップＳ９８１１）。続いて元の信号（入力信号サンプル）Si＝｛si、0、・・・、si、l−1｝がロードされ（ステップＳ９８１３）、周波数領域への先と同じ変換方法により、元の信号のスペクトルFS、i＝｛fS、i、0、・・・、fS、i、(l/2)−1｝に変換される（ステップＳ９８１５）。次に、係数カウンタがj＝0に、乖離指標がδi、i '＝0に初期化設定される（ステップＳ９８１７）。
【００６９】
乖離指標δi、i 'の意味を考慮すると、この後は、基本的には、例えば、
δi、i '＝｜f ''S、i、i '、0−fS、i、0｜＋・・・
＋｜f ''S、i、i '、(l/2)−1−fS、i、(l/2)−1｜
のように、係数毎に差をとって加算すればよい。ただし、ここでは、聴覚特性を考慮し、係数の差に、低域の係数ほど大きな値を乗じて（つまり重み付けをして）乖離指標δi、i 'を求めることとする。j番目の成分についての、かかる重み付けのための数をW(j)として、ステップＳ９８１９にて、δi、i 'を、δi、i '＋W(j)×｜f ''S、i、i '、j−fS、i、j｜に更新する。その後、係数カウンタが(l/2)−1に達したか否かが判別され（ステップＳ９８２１）、達していないのであれば（ステップＳ９８２１；Ｎｏ）、jを1だけ増加（ステップＳ９８２３）してからステップＳ９８１９に戻り、達しているのであれば（ステップＳ９８２１；Ｙｅｓ）、終了する。
【００７０】
（実施形態２における残差信号特徴量の抽出の手順）
以下では、図１のステップＳ９１２７、ステップＳ９１２３、及び、ステップＳ９１２５、に示した、実施形態２における残差信号特徴量の抽出の手順を、より詳しく説明する。本実施形態の上述の各ステップのうち、ステップＳ９１２３及びステップＳ９１２５は、実施形態１と同じものである。したがって、本実施形態は、実施形態１の上述の全てのバリエーションを含む。本実施形態が実施形態１と異なるのは、残差信号に対して、はじめに時間軸縮小処理（ステップＳ９１２７）が施されることである。かかる時間軸縮小処理により、残差信号は短縮される。換言すれば、残差信号を表すサンプル値が減少する。これにより、ステップＳ９１２３及びステップＳ９１２５における処理が高速化され得る。
【００７１】
または、時間軸縮小処理を施した残差信号をそのまま符号化部９１３３に残差信号特徴量として引き渡し、符号化及び送信の対象としてもよい。時間軸縮小処理により残差信号のデータ量が減少しているため、伝達可能な情報容量が限られている場合に有利である。
【００７２】
いずれにしろ、本実施形態においては、時間軸縮小処理に特徴がある。また、音声符号化兼復号装置９２１１（図２）が音声復号装置９１４１（図１）として機能する場合には、送信側で行われた時間軸縮小処理に対応した時間軸伸張処理が必要となる。
【００７３】
そこで、以下では、時間軸伸縮処理について、その一例を、図９〜図１５を参照しつつ説明する。
【００７４】
残差信号は、繰り返し単位をピッチとして分割される。この結果、残差信号は、図９に示すように、Ｎ個のピッチ波形S WF、0、S WF、1、・・・、S WF、N-1が連続したものとして扱われる。また、サンプリングの時間間隔をqとする。
【００７５】
ピッチ波形S WF、j（0≦j≦N−1）は、pl(j)個の離散データで表現され、時間長pl(j)×qを有する。以後このことを、単に、ピッチ波形の長さがpl(j)である、と述べることがある。また、以下では、S WF、j＝｛s WF、j、0、・・・、s WF、j、pl(j)−1｝と表す。
【００７６】
例えば、残差信号の時間変化を表した図２においては、j番目のピッチ波形S WF、ｊのi番目のサンプリング点（図９の白四角印）は、ピッチ波形ＳWF、ｊの始点から時間長(i−1)×qの位置にあり、波高はs WF、j、i−1である。より具体的には例えば、残差信号の始点を時間の原点にとった場合、最初のピッチ波形が継続中の時刻7qにおける波高はs WF、0、7である（図９の左から8番目の白丸印）。
【００７７】
まず、残差信号縮小処理について説明する。
【００７８】
連続する２つのピッチ波形に基づいて、新たなピッチ波形が生成され、元の連続する２つのピッチ波形が、該新たなピッチ波形により置き換えられることにより、ピッチ波形の長さ１個ぶんずつ、音声波形データを縮小していく。かかる置換動作の繰り返しにより、最終的には、所定の長さとなるような音声波形データが生成される。
【００７９】
図１０に示すように、新規ピッチ波形の配置予定先に存在している元の２つのピッチ波形（図１０（ａ））をそれぞれ適当に波形変形処理し（図１０（ｂ））、かかる処理済みの波形を重ね合わせることにより、元の２つのピッチ波形の中間的な形状を有する新規ピッチ波形を生成し、該新規ピッチ波形を元の２つのピッチ波形の代わりに配置して音声信号を縮小する（図１０（ｃ））。
【００８０】
元のN個のピッチ波形の全ての境界に新たなピッチ波形をひとつずつ配置したとしても、縮小度は0.5倍にしかならない。そこで、0.5倍より短く縮小したい場合には、0.5倍までの縮小を終えた直後の縮小済残差信号を、残差信号の新たな初期値であると考え、同じ手順を繰り返せば足りる。ゆえに、以下では、元の音声信号を0.5倍まで縮小可能な手順だけを説明する。
【００８１】
要求される縮小度が0.5倍より大きい場合には、元のピッチ波形のうちには、新規波形に置換されるものと、そのまま残るものとが、生じることになる。そこで、残差信号を所定の縮小長に達せしめるために、元のピッチ波形のうち、新規ピッチ波形に置換すべきものと、そのまま残すべきものとを判別する必要が生じる。
【００８２】
そこで、元のピッチ波形の境界毎に乖離度ej（0≦j≦N−1）を計算することにする。乖離度ejは、図９に示すように、２つのピッチ波形がどの程度似ているかを定量的に示す指標である。ピッチ波形S WF、jとS WF、j＋1との乖離度ejは、
ej＝{(s WF、j、0−s WF、j＋1、０)2＋
・・・
＋(s WF、j、pl(j)−1−ｓWF、j＋1、pl(j)−1)2}／pl(j)
のように定義する。
この値が小さい境界を挟む２個のピッチ波形から優先して、新たなピッチ波形に置き換えることにする。そして、優先順位の高い所から順番に置換して残差信号を縮小していき、指定された縮小度まで縮小した時点で置換を止める、という方針を採る。
【００８３】
残差信号の縮小処理の具体的な手順を、図１１を参照しつつ説明する。すでに図２の記憶部９２２５には、処理対象となる残差信号がＮ個のピッチ波形S WF、0、・・・、S WF、N-1に分割された状態で格納されているとする。各ピッチ波形ＳWF、j（0≦j≦N−1）は、サンプリング時間間隔ｑで採取された波高の列｛s WF、j、0、・・・、s WF、j、pl(j)−1｝である。
【００８４】
まず、ＣＰＵ９２２１は、記憶部９２２５に、縮小後のピッチ波形を構成要素とする構造体S WF、reducedを格納する領域を確保する。そして、S WF、reducedの初期値ＳWF、initとしては、記憶部９２２５に格納されている元の残差信号のピッチ波形の列｛S WF、0、・・・、S WF、N−1｝をそのままコピーしたものを採用する。すなわち、S WF、reduced＝S WF、init＝｛S WF、0、・・・、S WF、N−1｝とする（ステップＳ１１０１）。
【００８５】
新規波形の配置先の決定には、上述のように、隣接ピッチ波形乖離度e0、・・・、eN-1を利用する。乖離度はあらかじめ計算されて記憶部９２２５に格納されているものとする。乖離度の小さいピッチ波形境界ほど優先して新規ピッチ波形を挿入することになるため、ＣＰＵ９２２１は、乖離度を昇順にならべたときの順番を表す変数kをレジスタにカウンタとして格納することとし、初期値は1とする（ステップＳ１１０３）。乖離度e0、・・・、eN-1を昇順に並べ替えたとき、ejがk番目になるとすれば、それは、ピッチ波形S WF、jとピッチ波形S WF、j＋1との境界が、置換操作の対象としてはk番目の候補となることを意味する。
【００８６】
次に、ＣＰＵ９２２１は、記憶部９２２５に格納されている乖離度e0、・・・、eN-1のうち、k番目に小さいものを検索し、その添字を取り出し、kが格納されているレジスタとは別のカウンタ用レジスタにロードする（ステップ１１０５）。例えば、k番目に小さい乖離度がejであれば、jをロードする。
【００８７】
上述の例のとおり、ステップ１１０５においてjがロードされたとすれば、ピッチ波形S WF、jとピッチ波形S WF、j＋1とを新規ピッチ波形に置き換えることになる。新規ピッチ波形は、図１０に示したとおり、元の２つのピッチ波形から生成される。よって、ＣＰＵ９２２１は、まず、元となるピッチ波形S WF、jとS WF、j＋1とがどのようなものであるかを調べる必要がある。そこで、ＣＰＵ９２２１は、汎用レジスタに、記憶部９２２５からピッチ波形S WF、jとS WF、j＋1とをロードする（ステップＳ１１０７）。
【００８８】
次に、ＣＰＵ９２２１は、ピッチ波形S WF、jの波高列データs WF、j、0、・・・、s WF、j、pl(j)−1と、ピッチ波形S WF、j＋1の波高列データs WF、j＋1、0、・・・、s WF、j＋1、pl(j＋1)−1と、から、新しいピッチ波形C WF、j＝｛c WF、j、0、・・・、c WF、j、pl(j)−1｝を生成する（ステップＳ１１０９）。具体的には、元の２つのピッチ波形に図１０（ａ）の鎖線で示すような重み付けを行ってから、重ね合わせる。ＳWF、jには、1から始まり0で終わる、直線的に変化する重み付け係数を乗じることにより、図１０（ｂ）の左側に示すような波形
｛s WF、j、0×(pl(j)−1)／(pl(j)−1)、ｓWF、j、1×(pl(j)−2)／(pl(j)−1)、・・・、s WF、j、pl(j)−1×０／(pl(j)−1)｝
を生成する。一方、S WF、j＋1には、0から始まり1で終わる、直線的に変化する重み付け係数を乗じることにより、図１０（ｂ）の右側に示すような波形
｛s WF、j＋1、0×0／(pl(j)−1)、s WF、j＋1、1×1／(pl(j)−1)、・・・、s WF、j＋1、pl(j)−1×(pl(j)−1)／(pl(j)−1)｝
を生成する。その後、重み付けの完了した２つの波形を重ね合わせて新しいピッチ波形
C WF、j＝｛c WF、j、i（0≦i≦pl(j)−1）｜c WF、j、i＝{s WF、j、i×(pl(j)−1−i）＋sWF、j＋1、i×i）／(pl(j)−1)｝
を生成する。
【００８９】
新しいピッチ波形C WF、jの生成が完了したら、図１０（ｃ）に示すように、それを元のピッチ波形S WF、jとS WF、j＋1の代わりに配置することにより、残差信号の長さをpl(j+1)だけ縮める。そのために、ＣＰＵ９２２１は、記憶部９２２５からピッチ波形列S WF、reduced＝｛S WF、r、0、・・・、S WF、r、N-k｝を取り出す。なお、S WF、reducedは、(k-1)回の置換を経ているためにピッチ波形の数が(k-1)個減って、結局、合計(N-k+1)個のピッチ波形で構成されている。ＣＰＵ９２２１は、S WF、reducedからS WF、r、j+1を削除することにより第１暫定ピッチ波形列S WF、tmp＝｛S WF、r、0、・・・、S WF、r、j、S WF、r、j+2、・・・、S WF、r、N-k｝を生成した後、C WF、jをS WF、r、jに代入する操作を行う。続いて、S WF、r、j＋2の値をS WF、r、j＋1に代入する操作、S WF、r、j＋3の値をS WF、r、j＋2に代入する操作、等を、S WF、r、N−kの値をS WF、r、N−k−1に代入するまで継続する。こうして第２暫定ピッチ波形列S’ WF、tmp＝｛S WF、r、0、・・・、S WF、r、N−k−1｝を生成し、S WF、reducedをS WF、reduced＝S’ WF、tmpに更新する。さらに、ＣＰＵ９２２１は、縮小の目標値との比較のために、この更新されたS WF、reducedの長さを測った後、更新されたS WF、reducedを記憶部９２２５に保存する（ステップＳ１１１１）。
【００９０】
ステップＳ１１１１で測られたS WF、reducedの長さが、縮小の目標値に到達しているかどうかは、ステップＳ１１１３において判別される。目標値に到達しているならば（ステップＳ１１１３；Ｙｅｓ）、これ以上の縮小は不要なので、ＣＰＵ９２２１は伸張処理を終了し、この時点におけるS WF、reducedを縮小の最終結果として記憶部９２２５に格納する。それに対して、ステップＳ１１１１で更新されたS WF、reducedが目標長に到達していないと判別された場合（ステップＳ１１１３；Ｎｏ）、新規ピッチ波形配置先となる境界を検索するステップＳ１１０５に戻る。このとき、まだ新規ピッチ波形の配置に関わっていない境界のうちから挿入の優先度が最も高い境界を選び出すために、優先順位を表すカウンタkを１だけ増加する（ステップＳ１１１５）。
【００９１】
次に、残差信号伸張処理について説明する。
【００９２】
波形伸張は、ピッチ単位で行う。基本的には、隣接する２つのピッチ波形の間に、なんらかのピッチ波形を割り込ませることを繰り返すことにより、伸張を行う。かかる繰り返しによれば、原理的には、残差信号を任意の長さに伸張することが可能である。
【００９３】
図１２に示すように、新規ピッチ波形の挿入予定先を境界としていた元の２つのピッチ波形（図１２（ａ））をそれぞれ適当に波形変形処理し（図１２（ｂ））、かかる処理済みの波形を重ね合わせることにより、元の２つのピッチ波形の中間的な形状を有する新規ピッチ波形を生成し（図１２（ｃ））、該新規ピッチ波形を挿入して残差信号を伸張する（図１２（ｄ））。
【００９４】
元のN個のピッチ波形の全ての境界に新たなピッチ波形をひとつずつ挿入したとしても、伸張度は２倍にしかならない。２倍より長く伸張したい場合には、元のピッチ波形の境界の少なくとも１カ所以上で、新規ピッチ波形を複数挿入する必要が生じる。
【００９５】
ここで、全く同一の波形が連続するのは避けるべきである。音声が不自然になってしまうからである。元のピッチ波形の境界のひとつに新規ピッチ波形を複数挿入する場合、かかる複数の新規ピッチ波形は、元のピッチ波形のいずれとも同一でないことはもちろんのこと、新規ピッチ波形同士であっても、少なくとも伸張処理後に隣接関係になるものについては、同一であってはならない。このことは、元の２つのピッチ波形から図１２に示す手順により新規波形を生成する場合に、新規波形の生成の仕方が複数要求されることを意味する。生成の仕方がひとつで済まないため、処理は、縮小処理の場合に比べて複雑である。
【００９６】
そこで、以下では、まず、より簡単な処理である、伸張が2倍より小さい場合の処理について説明する。その後、2倍より大きい場合の処理について説明する。
【００９７】
伸張が2倍より小さい場合には、元のピッチ波形の境界のうち、いくつかには新規波形を挿入し、残りのいくつかには何も挿入しないことになる。そこで、残差信号を所定の伸張度に達せしめるために、元のピッチ波形の境界のうち、新規ピッチ波形を挿入すべき境界と、そうでない境界とを判別する必要が生じる。
【００９８】
かかる判別の際には、縮小処理の説明で述べた乖離度ejを用いるのが好適である。元のピッチ波形の各境界に該乖離度により優先順位を割り当て、優先順位の高い所から順番に新規ピッチ波形を挿入して残差信号を伸張していき、指定された伸張度まで伸びた時点で挿入を止める、という方針を採る。
【００９９】
乖離度を用いた残差信号伸張処理の具体的な手順を、図１３を参照しつつ説明する。すでに図２の記憶部９２２５には、処理対象となる残差信号がＮ個のピッチ波形S WF、0、・・・、S WF、N−1に分割された状態で格納されているとする。各ピッチ波形S WF、j（0≦j≦N−1）は、サンプリング時間間隔qで採取された波高の列｛s WF、j、0、・・・、s WF、j、pl(j)−1｝である。
【０１００】
まず、ＣＰＵ９２２１は、記憶部９２２５に、伸張後ピッチ波形を構成要素とする構造体Smagnifiedを格納する領域を確保する。そして、Smagnifiedの初期値Sinitとしては、記憶部９２２５に格納されている元の残差信号のピッチ波形の列｛S WF、0、・・・、S WF、N-1｝をそのままコピーしたものを採用する。すなわち、S WF、magnified＝S WF、init＝｛S WF、0、・・・、S WF、N-1｝とする（ステップＳ１３０１）。
【０１０１】
上述のように、伸張の倍率が2倍より小さいか大きいかにより、処理の手順は異なる。そこで、倍率が2倍より小さいかどうかを判別し（ステップＳ１３０３）、2倍より大きい場合には（ステップＳ１３０３；Ｎｏ）、後に詳しく説明する2倍以上の伸張処理を行う（ステップＳ１３１９）。一方、倍率が2倍より小さいと判別された場合には（ステップＳ１３０３；Ｙｅｓ）、新規波形の割り込み先を決定するステップＳ１３０５に進む。
【０１０２】
新規波形の割り込み先の決定には、上述のように、隣接ピッチ波形乖離度e0、・・・、eN-1を利用する。乖離度はあらかじめ計算され記憶部９２２５に格納されているものとする。乖離度の小さいピッチ波形境界ほど優先して新規ピッチ波形を挿入することになるため、ＣＰＵ９２２５は、乖離度を昇順にならべたときの順番を表す変数ｋをレジスタにカウンタとして格納することとし、初期値は１とする（ステップＳ１３０５）。乖離度e0、・・・、eN-1を昇順に並べ替えたとき、例えばejがk番目になるとすれば、それは、ピッチ波形S WF、jとピッチ波形S WF、j＋1との境界が、新規ピッチ波形の挿入先としてはk番目の候補となることを意味する。
【０１０３】
次に、ＣＰＵ９２２１は、記憶部９２２５に格納されている乖離度e0、・・・、eN-1のうち、k番目に小さいものを検索し、その添字を取り出し、kが格納されているレジスタとは別のカウンタ用レジスタにロードする（ステップ１３０７）。例えば、k番目に小さい乖離度がeｊであれば、jをロードする。ステップ１３０７においてjがロードされたとすれば、ピッチ波形SWF、jとピッチ波形S WF、j＋1との境界に新規ピッチ波形を挿入することになる。新規ピッチ波形は、図１２に示したとおり、元の２つのピッチ波形から生成される。よって、ＣＰＵ９２２１は、元の２つのピッチ波形に基づいた新規ピッチ波形を生成するに際して、まず、元となるピッチ波形S WF、jとS WF、j＋1とがどのようなものであるかを調べる必要がある。そこで、ＣＰＵ９２２１は、汎用レジスタに、記憶部９２２５からピッチ波形S WF、jとS WF、j＋1とをロードする（ステップＳ１３０９）。
【０１０４】
次に、ＣＰＵ９２２１は、ピッチ波形S WF、jの波高列データs WF、j、0、・・・、s WF、j、pl(j)−1と、ピッチ波形S WF、j＋1の波高列データs WF、j＋1、0、・・・、s WF、j＋1、pl(j＋1)−1と、から、新しいピッチ波形D WF、j＝｛d WF、j、0、・・・、d WF、j、pl(j)−1｝を生成する（ステップＳ１３１１）。具体的には、元の２つのピッチ波形に図１２（ａ）の鎖線で示すような重み付けを行ってから、重ね合わせる。伸張後に新規ピッチ波形からみて時間的に過去のピッチ波形となるS WF、ｊには、0から始まり1で終わる、直線的に変化する重み付け係数を乗じることにより、図１２（ｂ）の左側に示すような波形
｛s WF、j、0×0／(pl(j)−1)、s WF、j、1×1／(pl(j)−1)、・・・、s WF、j、pl(j)−1×(pl(j)−1)／(pl(j)−1)｝
を生成する。一方、伸張後に新規ピッチ波形からみて時間的に未来のピッチ波形となるS WF、j＋1には、1から始まり0で終わる、直線的に変化する重み付け係数を乗じることにより、図１２（ｂ）の右側に示すような波形
｛s WF、j＋1、0×(pl(j)−1)／(pl(j)−1)、s WF、j＋1、1×(pl(j)−2)／(pｌ(j)−1)、・・・、s WF、j＋1、pl(j)−1×0／(pl(j)−1)｝
を生成する。その後、重み付けの完了した２つの波形を重ね合わせて新しいピッチ波形
D WF、j＝｛d WF、j、i（0≦i≦pl(j)−1)｜d WF、j、i＝(ｓWF、j、i×ｉ＋s WF、j＋1、i×(pl(j)−1−i))／(pl(j)−１)｝
を生成する。
【０１０５】
新しいピッチ波形D WF、jの生成が完了したら、図１２（ｄ）に示すように、それを元のピッチ波形S WF、jとS WF、j＋1の間に挿入することにより、残差信号の長さをpl(j)だけ伸張する。そのために、ＣＰＵ９２２１は、記憶部９２２５からピッチ波形列S WF、magnifiedを取り出し、D WF、jをS WF、jとS WF、j＋1の間に挿入してS WF、magnifiedをS WF、magnified＝｛S WF、0、・・・、S WF、j、D WF、j、S WF、j＋1、・・・、S WF、N−1｝のように更新する。さらに、ＣＰＵ９２２１は、伸張の目標値との比較のために、この更新されたS WF、magnifiedの長さを測った後、更新されたS WF、magnifiedを記憶部９２２５に保存する（ステップＳ１３１３）。
【０１０６】
ステップＳ１３１３で測られたS WF、magnifiedの長さが、伸張の目標値に到達しているかどうかは、ステップＳ１３１５において判別される。目標値に到達しているならば（ステップＳ１３１５；Ｙｅｓ）、これ以上の伸張は不要なので、ＣＰＵ９２２１は伸張処理を終了し、この時点におけるS WF、magnifiedを伸張の最終結果として記憶部９２２５に格納する。
【０１０７】
それに対して、ステップＳ１３１３で更新されたS WF、magnifiedが目標長に到達していないと判別された場合（ステップＳ１３１５；Ｎｏ）、ＣＰＵ９２２５はさらに新たなピッチ波形を生成してS WF、magnifiedに追加しS WF、magnifiedを伸張すべきであるから、新規ピッチ波形挿入先となる境界を検索するステップＳ１３０７に戻る。このとき、まだ新規ピッチ波形が挿入されていない境界のうちから挿入の優先度が最も高い境界を選び出すために、優先順位を表すカウンタkを１だけ増加する（ステップＳ１３１７）。
【０１０８】
次に、指定された伸張が、2倍より大きい場合（ステップＳ１３０３；Ｎｏ）の処理（ステップＳ１３１９）について、図を改めて説明する。
【０１０９】
図１４が、2倍より大きい場合の伸張処理の具体的な手順を示したフローチャートである。2倍より小さく伸張する場合に比べると、元の連続する２つのピッチ波形の境界の一つ以上について、新規ピッチ波形を複数挿入しなければならないぶんだけ、処理が煩雑になる。基本的には、2倍より小さく伸張する場合と同じく、優先度の高い境界から順に新規ピッチ波形を挿入していく。しかし、全ての境界にひとつずつ新規ピッチ波形を挿入し終えても、信号を目標長にまで伸張させることができない。よって、さらにもう一回り、再び優先度の高い境界から順に、今度は２つずつ、新規ピッチ波形を挿入していく必要がある。その手順を終えてもなお目標長に到達しない場合には、さらにもう一回り、今度は３つずつ新規ピッチ波形を挿入する。このため、2倍より大きい場合の伸張処理（図１４）は、おおまかにいって、2倍より小さい場合の伸張処理（図１３）に対して、全境界を何回巡回しているかをカウントするループがひとつ増えた処理となる。
【０１１０】
上述の、全境界を何回巡回しているかをカウントするカウンタを、全ピッチ波形間巡回回数カウンタmと呼ぶことにする。初期値は、１巡目を表すために、m＝1とする（ステップＳ１４０１）。
【０１１１】
次に、元のピッチ波形のなす境界に、新規ピッチ波形の挿入先としての優先順位を割り当てるために、優先順位を表すカウンタkをk＝1に初期化し（ステップＳ１４０３）、k番目の候補である境界を表す添字jを求め（ステップＳ１４０５）、jに対応した元のピッチ波形であるSj及びSj＋1を取り出す（ステップＳ１４０７）。これらは、2倍以下の伸張の際に行った手続（図１３のステップＳ１３０５、Ｓ１３０７、Ｓ１３０９）と同一である。
【０１１２】
この後、ステップＳ１４０９においては、S WF、jとS WF、j＋1とから、新しいピッチ波形を生成する。全ピッチ波形間の巡回が1回目のとき、すなわち、m＝1のときには、新しいピッチ波形をひとつだけ生成すればよいので、２倍以下の伸張手続における新規波形生成方法（図１３のステップＳ１３１１）と変わるところがない。前述のとおり、適切な重み付けを行った上で、加算して新規ピッチ波形をひとつ生成すればよい。
【０１１３】
ところが、全ピッチ波形間の巡回を1回だけ行って伸張することができるのは、たかだか2倍までである。2倍以上の伸張処理の場合には、全ピッチ波形間の巡回は、１回では済まない。すなわち、全ピッチ波形間巡回回数カウンタmの最大値は、必ず、２以上となる。m回目の全ピッチ波形間巡回に際しては、すでに(m−1)個の新規ピッチ波形が挿入済みである境界の中から、乖離度の小ささにより定まる優先度の高い境界を順に選び取り、該境界に挿入済みの(m−1)個の新規ピッチ波形をいったん破棄し、その代わりに、新たにm個の新規ピッチ波形を生成して該境界に挿入する。これにより、ピッチ波形１個分だけ、残差信号を伸張することができる。
【０１１４】
ここで問題となるのは、新規ピッチ波形は、元となる２つのピッチ波形のいずれとも異なっていなければならないばかりでなく、新規ピッチ波形同士も、複数生成された場合には、少なくとも挿入後に隣り合うことになるもの同士は異なっていなければならないということである。これは、全く同じ波形の繰り返しにより人の音声として不自然なものとなってしまう事態を、避けるための要請である。
【０１１５】
かかる問題のうち、元となる２つのピッチ波形のいずれとも異なっていなければならないという要請については、伸張度が２倍より小さい場合と同じ要請である。よって、伸張度が2倍より小さい場合と同じく、重み付き加算により新たなピッチ波形の生成を行えばよい。
【０１１６】
それに対して、新たに生成する複数の新規ピッチ波形を、相互に異なるものとしなければならないという要請は、伸張度が2倍以上の場合になって初めて生じたものである。かかる要請に応えるために、ここでは、簡便な方法を採用する。元のピッチ波形１個１個の長さは、オーダーとしては同程度ではあるものの、一般には、異なることが期待される。特に隣接ピッチ波形同士で、長さが同一になる可能性はほぼゼロである。そこで、このような、元の隣接ピッチ波形同士の長さが異なる性質を利用する。すなわち、新規ピッチ波形の生成方法としては、元の２つのピッチ波形の重み付け加算を行うという、上述の方法１種類だけにする。これにより、処理が簡潔になる。そして、新規ピッチ波形相互に差をつけなければならないという要請を満たすためには、生成された新規ピッチ波形を時間軸方向に何通りも伸縮することにより、同じ新規ピッチ波形が生じないようにする。
【０１１７】
新規ピッチ波形を時間軸方向に伸縮するということは、波形の長さを変化させるということである。長さの変化の範囲としては、元の２つのピッチ波形の長さの間に収まる範囲が適切であると考えられる。すなわち、m個の新規ピッチ波形を生成する場合（ステップＳ１４０９）、まず、2倍以下伸張時と同じく重み付け加算により新たなピッチ波形D WF、jを生成する。このD WF、jを時間軸上で伸縮することにより、m個のバリエーションのピッチ波形
D WF、1、j＝｛d WF、1、j、0、・・・、d WF、1、j、pl(j)−1｝、・・・、D WF、m、j＝｛d WF、m、j、0、・・・、d WF、m、j、pl(j＋1)−1｝
を生成する。すなわち、D WF、1、j、・・・、D WF、m、jの長さは、pl(j)からpl(j+1)までのm段階の長さに調節されている。pl(j)からpl(j＋1)の間をどのようにｍ段階に分割するかについては、例えば最も簡潔には、比例的に分割するものとする。すなわち、i番目（1≦i≦m）の新規ピッチ波形D WF、i、jの長さを、
pl(j)＋[{pl(j＋1)−pl(j)}×(i−1)／(m−1)]
とする。
【０１１８】
なお、ピッチ波形の長さを変化させるに方法は、様々なものが考えられるが、サンプリング位置の変更を行うのが簡便である。この方法については、後に詳しく説明する。
【０１１９】
結局、元の２つのピッチ波形SWF、jとSWF、j＋1とから、m個の新しいピッチ波形D WF、i、j（1≦i≦m）が生成される（ステップＳ１４０９）。D WF、1、jの長さはS WF、ｊと同じくpl(j)であり、D WF、m、jの長さはS WF、j+1と同じくpl(j＋1)であり、D WF、2、j〜D WF、m−1、jの長さはpl(j)とpl(j+1)との間である。こうしてm個の新規ピッチ波形が生成されたら、これらを、この時点での残差信号伸張結果であるS WF、magnifiedに付加してS WF、magnifiedを更新する。S WF、magnifiedは、伸張処理の際に用意されている（図１３のステップＳ１３０１）、伸張信号の候補である。より具体的には、ＣＰＵ９２２１は、記憶部９２２５からピッチ波形列S WF、magnifiedを取り出し、D WF、1、j、・・・、D WF、m、jをS WF、jとS WF、j＋1との間に挿入することにより、S WF、magnified＝｛S WF、0、・・・、S WF、j、D WF、1、j、・・・、D WF、m、j、S WF、j＋1、・・・、S WF、N−1｝のように更新し、記憶部９２２５に保存する。また、同時に、目標長との比較に役立てるために、S WF、magnifiedの長さを測っておく（ステップＳ１４１１）。
【０１２０】
上述のように、m回目の全ピッチ波形間巡回においてm個の新規ピッチ波形を生成し適切な位置に挿入する際には、前回のピッチ波形巡回において該位置に挿入された(m−1)個の新規波形は、破棄される。一方、この時点での挿入対象になっていない境界にすでに挿入されている(m−1)個またはm個の新規ピッチ波形は、そのままにしておく。
【０１２１】
すると、挿入されたピッチ波形が1個増えたことになるため、残差信号S WF、magnifiedは、ピッチ波形の長さ1個ぶんだけ伸張したことになる。そこで、ステップＳ１４１１にて測っておいたS WF、magnifiedの長さが、この時点で伸張度の目標値に達しているか否かを判別し（ステップＳ１４１３）、達している場合には（ステップＳ１４１３；Ｙｅｓ）、伸張処理を完了し、S WF、magnifiedを最終的な伸張結果とする。目標値に達していない場合（ステップＳ１４１３；Ｎｏ）、次に、優先順位のカウンタであるｋが、元のピッチ波形の個数Nより小さいかどうかを判別する。小さい場合には（ステップＳ１４１５；Ｙｅｓ）、まだm個の新規波形を挿入していない境界が存在するので、kを1だけ増やして（ステップＳ１４１９）、次の優先順位の挿入箇所を検索する処理に戻る（ステップＳ１４０５）。一方、kがNになった場合には（ステップＳ１４１５；Ｎｏ）、全ての境界にm個の新規波形を挿入し終えたので、mを1だけ増加させて（ステップＳ１４１７）、全ピッチ波形間を乖離度により定まる優先順に巡回する操作を繰り返す（ステップＳ１４０３）。
【０１２２】
２倍以上の伸張時には、上述のとおり、ピッチ波形の長さを様々に変更する処理が必要とされる。かかるピッチ波形長の変更方法としては、既に述べたように、サンプリング位置の変更を行うのが簡便である。以下ではこの方法について、図１５を参照して具体的に説明する。
【０１２３】
図１５（ａ）は、ピッチ波形S WF、jの時間依存性を模式的に示したものである。横軸が時間を表す。サンプリング周期をqとすると、ピッチ波形S WF、jは、時間間隔qごとの波高の配列として表現され（図１５（ａ）の白丸印）、ピッチ波形長はpl(j)×qである。
【０１２４】
サンプリング位置の変更によるピッチ波形長変更方法の原理は、ピッチ波形長を伸張する場合も、縮小する場合も、同じである。ここでは、縮小する場合を例に、説明する。
【０１２５】
サンプリング周期をr（ただし、r＞qである。）として、再サンプリングを行うと仮定する。この新たなサンプリングが行われる時刻は、図１５（ａ）の黒三角印で示され、新たなサンプリングにより採取される波形は、図１５（ａ）の白四角印で示される。理解を容易にするため、さらに、rのqに対する関係は、図１５に示すようなものであるとする。すなわち、ピッチ波形S WF、jの開始時刻から順に時系列を追ったときに、新たなサンプリング時刻が、元のサンプリング時刻からしだいに遅れていき、ピッチ波形S WF、jが終了する時刻には、新旧のサンプリング時刻が一致するとする。
【０１２６】
新たなサンプリング周期rは、元来は、元のサンプリング周期qよりも長いのであるが、計算上は、新たなサンプリング周期rで採取された波高を、元のサンプリング周期qで採取されたものであるとして扱う。つまり、ピッチ波形長pl(j)×qの長さのピッチ波形が新たなサンプリング周期rの波高配列で離散的に表現されている状態（図１５（ｂ））から、波高配列はそのままにして、サンプリング周期がqになったものとみなす処理を行う。この処理は、図１５（ｂ）において、白四角印で表されたサンプリング点を白矢印のように移動させることを意味する。
【０１２７】
該移動の結果、図１５（ｃ）に示す新たなピッチ波形が生成された。この図から明らかなように、新たなピッチ波形は、元のピッチ波形SWF、jを、時間軸上で縮めたものである。そして、新たなピッチ波形の波形長pl’は、元のピッチ波形SWF、jの波形長p(j)×qより、時間qだけ短縮されたものである。すなわち、
pl’＝{pl(j)−1}×q
である。あるいは、倍率にして
〔{pl(j)−1}／{pl(j)}〕
倍の縮小が完了したということもできる。
【０１２８】
以上では、元のピッチ波形に忠実に、再サンプリングを行うことを前提として説明してきた。しかし、装置の仕様によっては、ピッチ波形SWF、jをひとたび周期qでサンプリングし終えた後、アナログデータとしてのピッチ波形S WF、jを破棄してしまう場合も考えられる。あるいは、破棄しないまでも、再サンプリングに要する手続を省略したい場合も考えられる。かかる場合には、元々サンプルのない位置での再サンプリングが必要となる。そのためには様々な方法が考えられるが、最も簡単な方法は、以下に説明する１次補間を用いる方法である。
【０１２９】
図１５（ｄ）には、アナログデータとしてのピッチ波形が鎖線で描かれ、最初のサンプリングが行われた箇所を白丸印で表している。波形縮小処理のために、図１５（ｄ）の黒三角印の時刻で再サンプリングをしようとしたときに、アナログデータとしてのピッチ波形が既に失われているか、または、もうアナログデータの処理を繰り返したくないとする。このとき、厳密な再サンプリングは、たまたま最初のサンプリング時刻と重なっている時刻を除き、もはや不可能である。よって、次善の策として、図１５（ｄ）に示すように、例えば元の波高aとbとに挟まれ元のサンプリング間隔をt：uに内分する時刻における再サンプリング値が必要になったときには、１次補間
a＋[{(b−a)×t｝／(t＋u)]
により計算される値で近似する。
【０１３０】
（実施形態３における残差信号特徴量の抽出の手順）
以下では、図１のステップＳ９１２９、ステップＳ９１３１、ステップＳ９１２３、及び、ステップＳ９１２５、に示した、実施形態３における残差信号特徴量の抽出の手順を、より詳しく説明する。本実施形態は、ステップＳ９１２９にて有声・無声判別処理を行うことと、該判別の結果無声であると判別された場合には（ステップＳ９１２９；無声）、帯域別処理（ステップＳ９１３１）を行うことと、に特徴がある。その他は、実施形態１と同様である。
【０１３１】
図１６は、本実施形態における、雑音に関係する処理の流れを示す。本実施形態においては、図１の符号化部９１３３及び送信部９１３５における符号化及び送信の対象として、有声音に相当するピッチを選択するか、無声音に相当する雑音を選択するか、の択一となる。
【０１３２】
まず、入力信号サンプルカウンタがi＝0に初期化設定される（ステップＳ１６０１）。続いて、残差信号Di＝｛di、0、・・・、di、l-1｝が記憶部９２２５からＣＰＵ９２２１の内蔵レジスタにロードされる（ステップＳ１６０３）。該残差信号Diは、離散フーリエ変換やＤＣＴ等、周波数領域への変換手法により、周波数変換係数Fi＝｛fi、0、・・・、fi、(l/2)-1｝に変換される（ステップＳ１６０５）。
【０１３３】
得られた周波数変換係数Fiに基づいて、残差信号Diが雑音か否かが判別される（ステップＳ１６０７）。判別法としては、例えば、高域と低域とで周波数変換係数の大きさを比較することにより判別する方法を用いる。かかる方法は、次の前提に基づいている。すなわち、有声音を特徴付けるピッチ周波数は比較的低い周波数であるため、かかるピッチ周波数が存在するとすれば、低域に大きな周波数変換係数が存在するはずである。よって、低域に大きな周波数変換係数が存在しないということは、残差信号Diは雑音（無声音に対応する。）であるはずである。例えば入力音声信号Siが16ｋＨｚサンプリングであって、256点の離散フーリエ変換が採用された場合には、係数fi、j（0≦j≦(l/2)−1）のうち、3ｋＨｚ以下に相当する係数の絶対値の和
｜fi、0｜＋・・・＋｜fi、47｜
と、3〜6ｋＨｚに相当する係数の絶対値の和
｜fi、48｜＋・・・＋｜fi、95｜
とを比較して、前者が後者よりも小さいならば残差信号Diは雑音であり、前者が後者以上であれば残差信号Diは有声音である、と判別する。その結果、雑音であると判別された場合には（ステップＳ１６０７；Ｙｅｓ）、ステップＳ１６０９に進む。一方、雑音ではないと判別された場合には（ステップＳ１６０７；Ｎｏ）、実施形態１及び実施形態２と同様の、周波数変換係数の選択（例えば、図４〜図７を参照して既に説明した処理）を行った（ステップＳ１６１１）後、ステップＳ１６１３に進む。
【０１３４】
残差信号Diが雑音か否かを判別する他の方法として、次のような方法がある。すなわち、好ましくは500Ｈｚ〜1ｋＨｚのローパスフィルタを通した後の残差信号Diについて、規格化された自己相関関数
CREG(t)＝C(t)／REG(t)
（ただし、
C(t)＝di、0×di、t＋・・・＋di、l-1-t×di、l-1
であり、
REG(t)＝{(di、02＋・・・＋di、l-1-t2)
×(di、t2＋・・・＋di、l-12)}0.5
である。）
を計算し、CREG(t)が例えば0.5よりも大きい極大値を有する場合は有声音であると判別し、そうでない場合は雑音である、と判別する方法である。なお、有声音であると判別された場合には、CREG(t)に極大値をもたらしたtの値を符号化及び送信して、音声の再生に役立てることも考えられる。その場合、音声復号装置９１４１の残差信号復元部９１５１は、かかるtに対応した周期を有するパルス信号を、励起信号として出力するようにする。
【０１３５】
ステップＳ１６０９においては、残差信号Diをいくつかの帯域に分割し、帯域毎の残差信号の強度（信号の大きさ）を求める。例えば、0Ｈｚ〜125Ｈｚ、125Ｈｚ〜250Ｈｚ、250Ｈｚ〜500Ｈｚ、500Ｈｚ〜1ｋＨｚ、1ｋＨｚ〜2ｋＨｚ、2ｋＨｚ〜3ｋＨｚ、3ｋＨｚ〜5ｋＨｚ、5ｋＨｚ〜6.5ｋＨｚ、6.5ｋＨｚ〜8ｋＨｚという9個の帯域に分割するのが望ましい。仮に、0Ｈｚ〜125Ｈｚに対応する周波数変換係数がfi、０〜fi、4の計5個であり、125Ｈｚ〜250Ｈｚに対応する周波数変換係数がfi、5〜fi、9の計5個であるならば、0Ｈｚ〜125Ｈｚの信号の大きさg(1)iは、
g(1)i＝(｜fi、０｜＋・・・＋｜fi、4｜)／5
であり、125Ｈｚ〜250Ｈｚの信号の大きさg2は、
g(2)i＝(｜fi、5｜＋・・・＋｜fi、9｜)／5
であり、以下、g(3)i〜g(9)iが同様に求められる。信号の大きさg(1)i〜g(9)iは残差信号特徴量として後に符号化及び送信の対象となるのに備えて、記憶部９２２５に格納される。その後、ステップＳ１６１３に進む。なお、符号化及び送信の対象に、残差信号特徴量が周波数係数ではなく雑音であることを受信・復号側に伝達するための所定のフラグ等を含めるのが望ましい。
【０１３６】
ステップＳ１６１３では、iがM−1に達しているか否かが判別される。達していない場合（ステップＳ１６１３；Ｎｏ）は、iを1だけ増加してから（ステップＳ１６１５）、ステップＳ１６０３に戻る。達している場合（ステップＳ１６１３；Ｙｅｓ）は、処理を終了する。
【０１３７】
（音声信号復元の手順）
以下では、図１７を参照しつつ、図１の音声復号装置９１４１の内部で行われる、音声信号復元の手順について説明する。ここでは、予測分析としてＭＬＳＡ分析が用いられた場合の手順を例に説明するが、線型予測分析など他の予測分析が用いられた場合の手順も、同様である。受信部９１４３は、元の音声の予測係数と残差信号特徴量とがまとめられて符号化された結果である符号を、受信して、復号部９１４５に引き渡す。復号部９１４５は、引き渡された符号を復号して、予測係数と、残差信号特徴量とを生成する。これらは図２の記憶部９２２５に格納される。予測係数は、ＭＬＳＡ分析の場合は、ＭＬＳＡフィルタ係数｛mi、0、・・・、mi、p−1｝（0≦i≦M−1）である。残差信号特徴量は、主に、符号化対象残差信号スペクトルF 'D、i＝｛f 'D、i、0、・・・、f 'D、i、(l/2)−1｝（0≦i≦M−1）である。ただし、上述の実施形態３の場合は、残差信号が雑音であったときには、帯域毎の残差信号の強度である。残差信号が雑音であった場合については、後に図１８を用いて雑音信号の発生手順を説明する。また、上述の実施形態２の場合には、図１の受信部９１４３は、時間軸の縮小処理（図１のステップＳ９１２７）が施された残差信号が直接的に符号化されたものを受信するときがあるが、そのときには、音声復号装置９１４１は、既に述べた時間軸の伸張処理により、音声を再生するものとする。
【０１３８】
入力信号サンプルカウンタがi＝1に設定（図１７のステップＳ１７１１）された後、予測係数Miが記憶部９２２５からＣＰＵ９２２１の内部のレジスタにロードされる（ステップＳ１７１３）。次に、予測係数Miから合成用逆フィルタCIMiが計算される（ステップＳ１７１５）。これは、図１において、予測係数を引き渡された合成用逆フィルタ算出部９１４７により、合成用逆フィルタ部９１４９の仕様が定められることに相当する。続いて、符号化対象残差信号スペクトルF 'D、iがロードされ（ステップＳ１７１７）、逆離散フーリエ変換や逆ＤＣＴなどの逆変換により、実時間の信号である励起用疑似残差信号D 'i＝｛d 'i、0、・・・、d 'i、l−1｝（0≦i≦M−1）が求まる（ステップＳ１７１９）。続いて、励起用疑似残差信号D 'iが、ステップＳ１７１５にて求められた合成用逆フィルタCIMiに通される。その結果、復元信号（復元された音声信号）S 'i＝｛s 'i、0、・・・、s 'i、l−1｝（0≦i≦M−1）が生成される（ステップＳ１７２１）。復元信号S 'iは記憶部９２２５（図２）に格納される（図１７のステップＳ１７２３）。続いて、iがM−1に達しているか否かが判別され（ステップＳ１７２５）、達していないのであれば（ステップＳ１７２５；Ｎｏ）、iを1だけ増加してから（ステップＳ１７２７）、ステップＳ１７１３に戻る。iがM−1に達しているのであれば（ステップＳ１７２５；Ｙｅｓ）、処理を終了する。
【０１３９】
図１の音声復号装置９１４１が、残差信号特徴量として帯域毎の残差信号の強度を受信した場合には、残差信号復元部９１５１は、その旨を判別するとともに、図１７のフローチャートに示した処理とは異なる処理を行う。すなわち、残差信号復元部９１５１は、受信した帯域毎の残差信号の強度に基づいて、自ら雑音信号を生成し、合成用逆フィルタ部９１４９へ入力する励起信号とする。雑音信号は帯域毎に生成された後に、重ね合わせられる。そこで、以下では、帯域毎に雑音列（雑音信号）D '(ωRANGE)i＝｛d '(ωRANGE)i、0、・・・、d '(ωRANGE)i、l-1｝（0≦i≦M−1）を生成しそれらを重ね合わせる手順を、図１８に示すフローチャートを参照しつつ、説明する。ただし、ωRANGEは、帯域を識別するための変数である。例えば上述のように周波数領域が9個の帯域に分割されている場合には、ωRANGEには、1から9までの整数が代入される。
【０１４０】
まず、大きさが±1で時間間隔がランダムである基本雑音列Ri＝｛r i、0、・・・、r i、l−1｝が生成される（ステップＳ１８１１）。後述の初期化（ステップＳ１８１２）の後、Riが帯域識別用変数ωRANGEに対応した帯域の帯域フィルタを通されることによって、該帯域の基本雑音列R(ωRANGE)i＝｛r(ωRANGE)i、0、・・・、r(ωRANGE)i、l−1｝が生成される（ステップＳ１８１３）。次に、図１の復号部９１４５から残差信号復元部９１５１に引き渡された、ωRANGEで示される帯域の残差信号の大きさg(ωRANGE)iを、該帯域の基本雑音列R(ωRANGE)iに乗じることにより、雑音列D '(ωRANGE)iが生成される（ステップＳ１８１５）。
【０１４１】
ステップＳ１８１２、ステップＳ１８１７、ステップＳ１８１９、及び、ステップＳ１８２１、は、各帯域の雑音列D '(ωRANGE)iを合算して励起用疑似残差信号D 'iを生成するためのループ処理である。ステップＳ１８１２においては、帯域識別用変数ωRANGEを、最低帯域を指す値、すなわち上述の例の場合であれば1、に初期化する。それとともに、前記合算の準備のために、雑音列D'iの要素d'i、0、・・・、d'i、l-1を全て0に初期化する。ステップＳ１８１７においては、前記合算を順次進めていくために、雑音列D'iを、各要素の重ね合わせにより、D'i＋D '(ωRANGE)iに更新する。ステップＳ１８１９においては、ωRANGEが最高帯域を指す値、すなわち上述の例の場合であれば9、に達しているか否かが判別される。達している場合（ステップＳ１８１９；Ｙｅｓ）には処理を終了し、達していない場合（ステップＳ１８１９；Ｎｏ）には、ステップＳ１８２１においてωRANGEをひとつ高帯域側に更新してから、すなわち、上述の例の場合であれば1だけ増加してから、ステップＳ１８１３に戻る。処理が終了した時点におけるD'iが、前記合算の最終結果である。このようにして、励起用疑似残差信号が生成される。
【０１４２】
（ケプストラムからＭＬＳＡ係数を求める手順の一例）
図１９は、ケプストラムCi＝｛ci、0、・・・、ci、(l/2)-1｝からＭＬＳＡフィルタ係数Mi＝｛mi、0、・・・、mi、p-1｝を求める具体的な手順の一例をフローチャートにしたものである。ステップＳ１９１１〜Ｓ１９３５に示した計算を行うことにより、ＭＬＳＡフィルタ係数が求まる。αは近似用の数値であり、音声信号が10ｋＨｚでサンプリングされている場合にはα＝0.35とするのが好適である。また、β＝1−α2である。mi（0≦i≦p−1）は0に初期化しておく。
【０１４３】
このようにして求まったＭＬＳＡフィルタ係数を用いたＭＬＳＡフィルタの構成の一例を、図２０に示す。P1〜P4は近似用係数であり、例えば、P1＝0.4999、P2＝0.1067、P3＝0.0117、P4＝0.0005656とするのが好適である。
【０１４４】
なお、この発明は、上記実施形態に限定されず、種々の変形及び応用が可能である。上述のハードウェア構成やブロック構成、フローチャートは例示にすぎない。上記実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【０１４５】
例えば、図２に示される音声符号化兼復号装置９２１１として携帯電話機を想定して説明したが、ＰＨＳ（Personal Handyphone System）、ＰＤＡ（Personal Digital Assistance）、ノート型及びデスクトップ型パーソナルコンピュータ等による音声処理においても、同様に本発明を適用することができる。例えば本発明をパーソナルコンピュータに適用する場合には、パーソナルコンピュータに音声入出力装置や通信装置等を付加すれば、ハードウェアとしては携帯電話機の機能を有するようにすることができる。そして、上述の処理をコンピュータに実行させるためのコンピュータプログラムが記録媒体や通信により配布されれば、これをコンピュータにインストールして実行させることにより、該コンピュータをこの発明に係る音声符号化装置又は音声復号装置として機能させることも可能である。
【図面の簡単な説明】
【０１４６】
【図１】本発明を実施するための形態に係る音声符号化装置及び音声復号装置の、機能構成と、残差信号特徴量抽出の流れと、を示す図である。
【図２】本発明を実施するための形態に係る、音声符号化兼復号装置の、物理的な構成を示す図である。
【図３】線型予測分析又はＭＬＳＡ分析の流れを示す図である。
【図４】エネルギーと個数に基づき周波数変換係数を選択する流れを示す図である。
【図５】エネルギーと閾値に基づき周波数変換係数を選択する流れを示す図である。
【図６】逆変換後の誤差の最小化に基づき周波数変換係数を選択する流れを示す図である。
【図７】逆変換後に許容誤差内に収めることに基づき周波数変換係数を選択する流れを示す図である。
【図８】乖離指標を周波数領域において計算する流れを示す図である。
【図９】処理対象である音声波形がピッチ波形に時分割されている状態を示す図である。
【図１０】連続する２つのピッチ波形に基づいて新規ピッチ波形を生成し、それにより元の２つのピッチ波形を置換する様子を示す図である。
【図１１】残差信号の縮小処理の流れを示す図である。
【図１２】連続する２つのピッチ波形に基づいて新規ピッチ波形を生成し、それを挿入する様子を示す図である。
【図１３】残差信号の伸張処理のうち、２倍より小さい伸張が要求されている場合の処理の流れを示す図である。
【図１４】残差信号の伸張処理のうち、２倍より大きい伸張が要求されている場合の処理の流れを示す図である。
【図１５】サンプリング点の変更と１次補間とによりピッチ波形の長さを変更する様子を示す図である。
【図１６】送信用パラメータを選択する流れを示す図である。
【図１７】音声信号を復元する流れを示す図である。
【図１８】帯域毎の雑音列を生成する流れを示す図である。
【図１９】ＭＬＳＡフィルタ係数の計算の流れの一例を示す図である。
【図２０】ＭＬＳＡフィルタの一例を示す図である。
【符号の説明】
【０１４７】
９１１１・・・音声符号化装置、９１１３・・・マイクロフォン、９１１５・・・Ａ／Ｄ変換部、９１１７・・・予測分析部、９１１９・・・予測分析用逆フィルタ算出器、９１２１・・・残差信号特徴量抽出部、９１３３・・・符号化部、９１３５・・・送信部、９１４１・・・音声復号装置、９１４３・・・受信部、９１４５・・・復号部、９１４７・・・合成用逆フィルタ算出部、９１４９・・・合成用逆フィルタ部、９１５１・・・残差信号復元部、９１５３・・・Ｄ／Ａ変換部、９１５５・・・スピーカ、９２１１・・・音声符号化兼復号装置、９２２１・・・ＣＰＵ、９２２３・・・ＲＯＭ、９２２５・・・記憶部、９２３１・・・ＲＡＭ、９２３３・・・ハードディスク、９２４１・・・音声処理部、９２５１・・・無線通信部、９２５３・・・アンテナ、９２６１・・・操作キー入力処理部、９２６３・・・操作キー、９２７１・・・システムバス
【図１】
2008083363.tif 000003
【図２】
2008083363.tif 000004
【図３】
2008083363.tif 000005
【図４】
2008083363.tif 000006
【図５】
2008083363.tif 000007
【図６】
2008083363.tif 000008
【図７】
2008083363.tif 000009
【図８】
2008083363.tif 000010
【図９】
2008083363.tif 000011
【図１０】
2008083363.tif 000012
【図１１】
2008083363.tif 000013
【図１２】
2008083363.tif 000014
【図１３】
2008083363.tif 000015
【図１４】
2008083363.tif 000016
【図１５】
2008083363.tif 000017
【図１６】
2008083363.tif 000018
【図１７】
2008083363.tif 000019
【図１８】
2008083363.tif 000020
【図１９】
2008083363.tif 000021
【図２０】
2008083363.tif 000022