(57)【特許請求の範囲】
【請求項１】
時系列の強度信号として与えられる音響信号を符号化するための符号化方法であって、
符号化対象となる音響信号の時間軸上に複数の単位区間を設定する区間設定段階と、
個々の単位区間ごとに、当該単位区間内の音響信号に含まれる周波数成分を第１の軸に、各周波数成分ごとの強度を第２の軸にとったスペクトルを作成するスペクトル作成段階と、
前記スペクトルの第１の軸に対応させて離散的に複数Ｑ段階の音階を示す複数Ｑ個の符号コードを定義し、この複数Ｑ個の符号コードを第１の軸に、各符号コードごとの強度を第２の軸にとった強度グラフを、個々の単位区間ごとのスペクトルに基いてそれぞれ作成する強度グラフ作成段階と、
前記強度グラフにおける各符号コードごとの強度に基いて、個々の単位区間ごとに、Ｑ個の全符号コードの中から当該単位区間を代表するＰ個の代表符号コードを抽出し、これら抽出した代表符号コードおよびその強度によって、個々の単位区間の音響信号を表現する符号化段階と、
隣接する複数の単位区間について、音階の差が所定範囲内の一連の代表符号コードがある場合、これら一連の代表符号コードを、複数の単位区間に跨がった統合符号コードに置換する統合処理段階と、
を有することを特徴とする音響信号の符号化方法。
【請求項２】
請求項１に記載の符号化方法において、
区間設定段階で、隣接する単位区間が時間軸上で部分的に重複するような設定を行い、各単位区間についてそれぞれ時間軸上の基準位置を定義し、特定の単位区間について得られた代表符号コードを、当該特定の単位区間についての基準位置に関する音響信号を符号化したコードとして出力することを特徴とする音響信号の符号化方法。
【請求項３】
請求項２に記載の符号化方法において、
区間長Ｌおよびオフセット長ΔＬを定義し（ただし、ΔＬ＜Ｌ）、各単位区間の時間軸上での長さを区間長Ｌに設定し、任意のｉに対して第ｉ番目の単位区間の始点と第（ｉ＋１）番目の単位区間の始点との時間軸上での隔たりをオフセット長ΔＬに設定し、各単位区間について得られた代表符号コードを、オフセット長ΔＬの時間周期で現れる基準位置に関する音響信号を符号化したコードとして出力することを特徴とする音響信号の符号化方法。
【請求項４】
請求項１〜３のいずれかに記載の符号化方法において、
スペクトル作成段階で、符号化対象となる音響信号を所定のサンプリング周期でサンプリングしてデジタル音響データとして取り込み、この取り込んだ音響データに対して各単位区間ごとにフーリエ変換を行うことによりスペクトルを作成することを特徴とする音響信号の符号化方法。
【請求項５】
請求項３に記載の符号化方法において、
スペクトル作成段階で、オフセット長△Ｌに基づいて決定される重み関数を窓関数として設定し、符号化対象となる音響信号の各単位区間に対して、前記窓関数を重畳した上でフーリエ変換を行うことによりスペクトルを作成することを特徴とする音響信号の符号化方法。
【請求項６】
請求項４に記載の符号化方法において、
スペクトル作成段階で、所定のサンプリング周期で取り込まれたデジタル音響データに対して、間引きを行わずにフーリエ変換を行うとともに、所定割合で間引きを行ってフーリエ変換を行うことにより、複数通りのスペクトルを用意し、これらのスペクトルを合成することを特徴とする音響信号の符号化方法。
【請求項７】
請求項１〜６のいずれかに記載の符号化方法において、
強度グラフ作成段階で、複数Ｑ個の符号コードとしてＭＩＤＩデータで利用されるノートナンバーを用い、
符号化段階で、個々の単位区間の音響信号を、代表符号コードとして抽出されたノートナンバーと、その強度に基いて決定されたベロシティーと、当該単位区間の長さに基いて決定されたデルタタイムと、を示すデータからなるＭＩＤＩ形式の符号データによって表現することを特徴とする音響信号の符号化方法。
【請求項８】
請求項１〜７のいずれかに記載の符号化方法において、
符号化段階で代表符号コードを抽出する際に、符号化対象となる強度グラフにおける候補の中から強度の大きい順にＰ個の符号コードを抽出して代表符号コードとすることを特徴とする音響信号の符号化方法。
【請求項９】
請求項１〜７のいずれかに記載の符号化方法において、
符号化段階で代表符号コードを抽出する際に、符号化対象となる強度グラフにおけるその時点での候補の中から最も強度の大きい符号コードを第ｉ番目の代表符号コードとして抽出した後、この第ｉ番目の代表符号コードおよびその倍音成分に相当する符号コードを候補から削除する処理を、ｉ＝１〜（Ｐ−１）について繰り返し実行し、更に、残った候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出することにより、合計Ｐ個の代表符号コードの抽出を行うことを特徴とする音響信号の符号化方法。
【請求項１０】
請求項１〜７のいずれかに記載の符号化方法において、
各符号コードに基いて音を再生するために用いる音源を予め特定しておき、この音源を用いた各符号コードの再生音の周波数特性に基いて、特定の音階の符号コードを、当該特定の音階が倍音となるような、より低い音階の符号コードで代用するための補正テーブルを定義しておき、
符号化段階で代表符号コードを抽出する際に、符号化対象となる強度グラフにおけるその時点での候補の中から最も強度の大きい符号コードを第ｉ番目の参照コードとし、この第ｉ番目の参照コードに前記補正テーブルを適用することにより得られる符号コードを第ｉ番目の代表符号コードとして抽出し、前記第ｉ番目の参照コードおよび前記第ｉ番目の代表符号コードを候補から除外する処理を、ｉ＝１〜Ｐについて繰り返し実行し、合計Ｐ個の代表符号コードの抽出を行うことを特徴とする音響信号の符号化方法。
【請求項１１】
請求項１〜７のいずれかに記載の符号化方法において、
各符号コードに基いて音を再生するために用いる音源を予め特定しておき、この音源を用いて各符号コードを実際に再生することにより得られる音響信号に対して、スペクトル作成段階および強度グラフ作成段階を実行し、各符号コードについての固有強度グラフを予め求めておき、
符号化段階で代表符号コードを抽出する際に、符号化対象となる強度グラフにおけるその時点での候補の中から最も強度の大きい符号コードを第ｉ番目の代表符号コードとして抽出した後、符号化対象となる強度グラフの各強度値から前記第ｉ番目の代表符号コードについての固有強度グラフの各強度値を減算する処理を、ｉ＝１〜（Ｐ−１）について繰り返し実行し、更に、残った候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出することにより、合計Ｐ個の代表符号コードの抽出を行うことを特徴とする音響信号の符号化方法。
【請求項１２】
請求項１〜７のいずれかに記載の符号化方法において、
各符号コードに基いて音を再生するために用いる音源を予め特定しておき、この音源を用いて各符号コードを実際に再生することにより得られる音響信号の固有波形を予め求めておき、
第ｉ番目の代表符号コードを決定するために、第ｉ番目の音響信号の波形情報を入力し、入力した波形情報に対してスペクトル作成段階および強度グラフ作成段階を行い、続く符号化段階で、作成された強度グラフにおける候補の中から最も強度の大きい符号コードを第ｉ番目の代表符号コードとして抽出し、更に、第ｉ番目の音響信号の強度値から前記第ｉ番目の代表符号コードについての固有波形の各強度値を減算し、その結果得られる音響信号を第（ｉ＋１）番目の音響信号とする符号抽出処理を定義し、
符号化対象となる原音響信号に対して区間設定段階を行い、各単位区間ごとの原音響信号をそれぞれ第１番目の音響信号として、ｉ＝１〜（Ｐ−１）について前記符号抽出処理を繰り返し実行し、最後に、第Ｐ番目の音響信号の波形情報を入力し、入力した波形情報に対してスペクトル作成段階および強度グラフ作成段階を行い、続く符号化段階で、作成された強度グラフにおける候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出する処理を実行することにより、各単位区間ごとにそれぞれ合計Ｐ個の代表符号コードの抽出を行うことを特徴とする音響信号の符号化方法。
【請求項１３】
請求項１〜１２のいずれかに記載の符号化方法を実行する音響信号の符号化のためのプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は音響信号の符号化方法に関し、時系列の強度信号として与えられる音響信号を符号化し、これを復号化して再生する技術に関する。特に、本発明はヴォーカル音響信号（人の話声，歌声の信号）を、ＭＩＤＩ形式の符号データに効率良く変換する処理に適しており、音声を記録する種々の産業分野への応用が期待される。
【０００２】
【従来の技術】
音響信号を符号化する技術として、ＰＣＭ（Pulse Code Modulation ）の手法は最も普及している手法であり、現在、オーディオＣＤやＤＡＴなどの記録方式として広く利用されている。このＰＣＭの手法の基本原理は、アナログ音響信号を所定のサンプリング周波数でサンプリングし、各サンプリング時の信号強度を量子化してデジタルデータとして表現する点にあり、サンプリング周波数や量子化ビット数を高くすればするほど、原音を忠実に再生することが可能になる。ただ、サンプリング周波数や量子化ビット数を高くすればするほど、必要な情報量も増えることになる。そこで、できるだけ情報量を低減するための手法として、信号の変化差分のみを符号化するＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation ）の手法も用いられている。
【０００３】
一方、電子楽器による楽器音を符号化しようという発想から生まれたＭＩＤＩ（Musical Instrument Digital Interface）規格も、パーソナルコンピュータの普及とともに盛んに利用されるようになってきている。このＭＩＤＩ規格による符号データ（以下、ＭＩＤＩデータという）は、基本的には、楽器のどの鍵盤キーを、どの程度の強さで弾いたか、という楽器演奏の操作を記述したデータであり、このＭＩＤＩデータ自身には、実際の音の波形は含まれていない。そのため、実際の音を再生する場合には、楽器音の波形を記憶したＭＩＤＩ音源が別途必要になる。しかしながら、上述したＰＣＭの手法で音を記録する場合に比べて、情報量が極めて少なくてすむという特徴を有し、その符号化効率の高さが注目を集めている。このＭＩＤＩ規格による符号化および復号化の技術は、現在、パーソナルコンピュータを用いて楽器演奏、楽器練習、作曲などを行うソフトウエアに広く採り入れられており、カラオケ、ゲームの効果音といった分野でも広く利用されている。
【０００４】
【発明が解決しようとする課題】
上述したように、ＰＣＭの手法により音響信号を符号化する場合、十分な音質を確保しようとすれば情報量が膨大になり、データ処理の負担が重くならざるを得ない。したがって、通常は、ある程度の情報量に抑えるため、ある程度の音質に妥協せざるを得ない。もちろん、ＭＩＤＩ規格による符号化の手法を採れば、非常に少ない情報量で十分な音質をもった音の再生が可能であるが、上述したように、ＭＩＤＩ規格そのものが、もともと楽器演奏の操作を符号化するためのものであるため、広く一般音響への適用を行うことはできない。別言すれば、ＭＩＤＩデータを作成するためには、実際に楽器を演奏するか、あるいは、楽譜の情報を用意する必要がある。
【０００５】
このように、従来用いられているＰＣＭの手法にしても、ＭＩＤＩの手法にしても、それぞれ音響信号の符号化方法としては一長一短があり、一般の音響について、少ない情報量で十分な音質を確保することはできない。ところが、一般の音響についても効率的な符号化を行いたいという要望は、益々強くなってきている。いわゆるヴォーカル音響と呼ばれる人間の話声や歌声を取り扱う分野では、かねてからこのような要望が強く出されている。たとえば、語学教育、声楽教育、犯罪捜査などの分野では、ヴォーカル音響信号を効率的に符号化する技術が切望されている。
【０００６】
そこで本発明は、人の声音や歌声を含む音響信号に対しても効率的な符号化を行うことができる音響信号の符号化方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
(1)   本発明の第１の態様は、時系列の強度信号として与えられる音響信号を符号化するための音響信号の符号化方法において、
符号化対象となる音響信号の時間軸上に複数の単位区間を設定する区間設定段階と、
個々の単位区間ごとに、当該単位区間内の音響信号に含まれる周波数成分を第１の軸に、各周波数成分ごとの強度を第２の軸にとったスペクトルを作成するスペクトル作成段階と、
スペクトルの第１の軸に対応させて離散的に複数Ｑ段階の音階を示す複数Ｑ個の符号コードを定義し、この複数Ｑ個の符号コードを第１の軸に、各符号コードごとの強度を第２の軸にとった強度グラフを、個々の単位区間ごとのスペクトルに基いてそれぞれ作成する強度グラフ作成段階と、
強度グラフにおける各符号コードごとの強度に基いて、個々の単位区間ごとに、Ｑ個の全符号コードの中から当該単位区間を代表するＰ個の代表符号コードを抽出し、これら抽出した代表符号コードおよびその強度によって、個々の単位区間の音響信号を表現する符号化段階と、
隣接する複数の単位区間について、音階の差が所定範囲内の一連の代表符号コードがある場合、これら一連の代表符号コードを、複数の単位区間に跨がった統合符号コードに置換する統合処理段階と、
を行うようにしたものである。
【０００８】
(2)   本発明の第２の態様は、上述の第１の態様に係る音響信号の符号化方法において、
区間設定段階で、隣接する単位区間が時間軸上で部分的に重複するような設定を行い、各単位区間についてそれぞれ時間軸上の基準位置を定義し、特定の単位区間について得られた代表符号コードを、当該特定の単位区間についての基準位置に関する音響信号を符号化したコードとして出力するようにしたものである。
【０００９】
(3)   本発明の第３の態様は、上述の第２の態様に係る音響信号の符号化方法において、
区間長Ｌおよびオフセット長ΔＬを定義し（ただし、ΔＬ＜Ｌ）、各単位区間の時間軸上での長さを区間長Ｌに設定し、任意のｉに対して第ｉ番目の単位区間の始点と第（ｉ＋１）番目の単位区間の始点との時間軸上での隔たりをオフセット長ΔＬに設定し、各単位区間について得られた代表符号コードを、オフセット長ΔＬの時間周期で現れる基準位置に関する音響信号を符号化したコードとして出力するようにしたものである。
【００１０】
(4)   本発明の第４の態様は、上述の第１〜第３の態様に係る音響信号の符号化方法において、
スペクトル作成段階で、符号化対象となる音響信号を所定のサンプリング周期でサンプリングしてデジタル音響データとして取り込み、この取り込んだ音響データに対して各単位区間ごとにフーリエ変換を行うことによりスペクトルを作成するようにしたものである。
【００１１】
(5)   本発明の第５の態様は、上述の第３の態様に係る音響信号の符号化方法において、
スペクトル作成段階で、オフセット長△Ｌに基づいて決定される重み関数を窓関数として設定し、符号化対象となる音響信号の各単位区間に対して、前記窓関数を重畳した上でフーリエ変換を行うことによりスペクトルを作成するようにしたものである。
【００１２】
(6)   本発明の第６の態様は、上述の第４の態様に係る音響信号の符号化方法において、
スペクトル作成段階で、所定のサンプリング周期で取り込まれたデジタル音響データに対して、間引きを行わずにフーリエ変換を行うとともに、所定割合で間引きを行ってフーリエ変換を行うことにより、複数通りのスペクトルを用意し、これらのスペクトルを合成するようにしたものである。
【００１３】
(7)   本発明の第７の態様は、上述の第１〜第６の態様に係る音響信号の符号化方法において、
強度グラフ作成段階で、複数Ｑ個の符号コードとしてＭＩＤＩデータで利用されるノートナンバーを用い、
符号化段階で、個々の単位区間の音響信号を、代表符号コードとして抽出されたノートナンバーと、その強度に基いて決定されたベロシティーと、当該単位区間の長さに基いて決定されたデルタタイムと、を示すデータからなるＭＩＤＩ形式の符号データによって表現するようにしたものである。
【００１４】
(8)   本発明の第８の態様は、上述の第１〜第７の態様に係る音響信号の符号化方法において、
符号化段階で代表符号コードを抽出する際に、符号化対象となる強度グラフにおける候補の中から強度の大きい順にＰ個の符号コードを抽出して代表符号コードとするようにしたものである。
【００１５】
(9)   本発明の第９の態様は、上述の第１〜第７の態様に係る音響信号の符号化方法において、
符号化段階で代表符号コードを抽出する際に、符号化対象となる強度グラフにおけるその時点での候補の中から最も強度の大きい符号コードを第ｉ番目の代表符号コードとして抽出した後、この第ｉ番目の代表符号コードおよびその倍音成分に相当する符号コードを候補から削除する処理を、ｉ＝１〜（Ｐ−１）について繰り返し実行し、更に、残った候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出することにより、合計Ｐ個の代表符号コードの抽出を行うようにしたものである。
【００１６】
(10)  本発明の第１０の態様は、上述の第１〜第７の態様に係る音響信号の符号化方法において、
各符号コードに基いて音を再生するために用いる音源を予め特定しておき、この音源を用いた各符号コードの再生音の周波数特性に基いて、特定の音階の符号コードを、当該特定の音階が倍音となるような、より低い音階の符号コードで代用するための補正テーブルを定義しておき、
符号化段階で代表符号コードを抽出する際に、符号化対象となる強度グラフにおけるその時点での候補の中から最も強度の大きい符号コードを第ｉ番目の参照コードとし、この第ｉ番目の参照コードに補正テーブルを適用することにより得られる符号コードを第ｉ番目の代表符号コードとして抽出し、第ｉ番目の参照コードおよび第ｉ番目の代表符号コードを候補から除外する処理を、ｉ＝１〜Ｐについて繰り返し実行し、合計Ｐ個の代表符号コードの抽出を行うようにしたものである。
【００１７】
(11)  本発明の第１１の態様は、上述の第１〜第７の態様に係る音響信号の符号化方法において、
各符号コードに基いて音を再生するために用いる音源を予め特定しておき、この音源を用いて各符号コードを実際に再生することにより得られる音響信号に対して、スペクトル作成段階および強度グラフ作成段階を実行し、各符号コードについての固有強度グラフを予め求めておき、
符号化段階で代表符号コードを抽出する際に、符号化対象となる強度グラフにおけるその時点での候補の中から最も強度の大きい符号コードを第ｉ番目の代表符号コードとして抽出した後、符号化対象となる強度グラフの各強度値から第ｉ番目の代表符号コードについての固有強度グラフの各強度値を減算する処理を、ｉ＝１〜（Ｐ−１）について繰り返し実行し、更に、残った候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出することにより、合計Ｐ個の代表符号コードの抽出を行うようにしたものである。
【００１８】
(12)  本発明の第１２の態様は、上述の第１〜第７の態様に係る音響信号の符号化方法において、
各符号コードに基いて音を再生するために用いる音源を予め特定しておき、この音源を用いて各符号コードを実際に再生することにより得られる音響信号の固有波形を予め求めておき、
第ｉ番目の代表符号コードを決定するために、第ｉ番目の音響信号の波形情報を入力し、入力した波形情報に対してスペクトル作成段階および強度グラフ作成段階を行い、続く符号化段階で、作成された強度グラフにおける候補の中から最も強度の大きい符号コードを第ｉ番目の代表符号コードとして抽出し、更に、第ｉ番目の音響信号の強度値から第ｉ番目の代表符号コードについての固有波形の各強度値を減算し、その結果得られる音響信号を第（ｉ＋１）番目の音響信号とする符号抽出処理を定義し、
符号化対象となる原音響信号に対して区間設定段階を行い、各単位区間ごとの原音響信号をそれぞれ第１番目の音響信号として、ｉ＝１〜（Ｐ−１）について符号抽出処理を繰り返し実行し、最後に、第Ｐ番目の音響信号の波形情報を入力し、入力した波形情報に対してスペクトル作成段階および強度グラフ作成段階を行い、続く符号化段階で、作成された強度グラフにおける候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出する処理を実行することにより、各単位区間ごとにそれぞれ合計Ｐ個の代表符号コードの抽出を行うようにしたものである。
【００１９】
(13)  本発明の第１３の態様は、上述の第１〜第１２の態様に係る音響信号の符号化方法を実行する音響信号の符号化のためのプログラムをコンピュータ読み取り可能な記録媒体に記録するようにしたものである。
【００２３】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。
【００２４】
§１．  本発明に係る音響信号の符号化方法の基本原理
はじめに、本発明に係る音響信号の符号化方法の基本原理を図１を参照しながら説明する。いま、図１(a) に示すように、時系列の強度信号としてアナログ音響信号が与えられたものとしよう。図示の例では、横軸に時間ｔ、縦軸に振幅（強度）をとってこの音響信号を示している。ここでは、まずこのアナログ音響信号を、デジタルの音響データとして取り込む処理を行う。これは、従来の一般的なＰＣＭの手法を用い、所定のサンプリング周期でこのアナログ音響信号をサンプリングし、振幅を所定の量子化ビット数を用いてデジタルデータに変換する処理を行えばよい。ここでは、説明の便宜上、ＰＣＭの手法でデジタル化した音響データの波形も、図１(a) のアナログ音響信号と同一の波形で示すことにする。
【００２５】
続いて、この符号化対象となる音響信号の時間軸上に、複数の単位区間を設定する。図１(a) に示す例では、時間軸ｔ上に等間隔に６つの時刻ｔ１〜ｔ６が定義され、これら各時刻を始点および終点とする５つの単位区間ｄ１〜ｄ５が設定されている（より実用的な区間設定方法については後述する）。
【００２６】
こうして単位区間が設定されたら、各単位区間ごとの音響信号に対してそれぞれフーリエ変換を行い、スペクトルを作成する。このとき、ハニング窓（Hanning Window )など周知の窓関数で切り出した音響信号にフィルタをかけてフーリエ変換を施すことが望ましい。一般にフーリエ変換は、切り出した区間前後に同様な信号が無限に存在することが想定されているため、矩形窓（窓なし）の場合、作成したスペクトルに高周波ノイズがのることが多い。このような場合、ハニング窓など区間の両端の重みが０になるような関数を用いるのが望ましい。ハニング窓関数Ｈ（ｋ）は、単位区間長をＬとすると、ｋ＝１…Ｌに対して、
Ｈ（ｋ）＝０．５−０．５＊ｃｏｓ（２πｋ／Ｌ）
で与えられる関数である。
【００２７】
図１(b) には、単位区間ｄ１について作成されたスペクトルの一例が示されている。このスペクトルでは、横軸上に定義された周波数ｆによって、単位区間ｄ１内の音響信号に含まれる周波数成分（０〜Ｆｓ：ここでＦｓはサンプリング周波数）が示されており、縦軸上に定義された複素強度Ａによって、各周波数成分ごとの複素強度が示されている。なお、このようなスペクトルを得る手法としては、フーリエ変換の他にも種々の手法が知られており、どのような手法を利用してもかまわない。また、アナログ音響信号から直接的にスペクトルを作成する手法を用いれば、音響信号をＰＣＭの手法でデジタル化する必要はない。
【００２８】
次に、このスペクトルの周波数軸ｆに対応させて、離散的に複数Ｑ個の符号コードを定義する。この例では、符号コードとしてＭＩＤＩデータで利用されるノートナンバーＮを用いており、Ｎ＝０〜１２７までの１２８個の符号コードを定義している。ノートナンバーＮは、音符の音階を示すパラメータであり、たとえば、ノートナンバーＮ＝６９は、ピアノの鍵盤中央の「ラ音（Ａ３音）」を示しており、４４０Ｈｚの音に相当する。このように、１２８個のノートナンバーには、いずれも所定の周波数が対応づけられるので、スペクトルの周波数軸ｆ上の所定位置に、それぞれ１２８個のノートナンバーＮが離散的に定義されることになる。
【００２９】
ここで、ノートナンバーＮは、１オクターブ上がると、周波数が２倍になる対数尺度の音階を示すため、周波数軸ｆに対して線形には対応しない。そこで、周波数軸ｆを対数尺度で表し、この対数尺度軸上にノートナンバーＮを定義した強度グラフを作成する。図１(c) は、このようにして作成された単位区間ｄ１についての強度グラフを示す。この強度グラフの横軸は、図１(b) に示すスペクトログラムの横軸を対数尺度に変換したものであり、ノートナンバーＮ＝０〜１２７が等間隔にプロットされている。一方、この強度グラフの縦軸は、図１(b) に示すスペクトルの複素強度Ａを実効強度Ｅに変換したものであり、各ノートナンバーＮの位置における強度を示している。一般に、フーリエ変換によって得られる複素強度Ａは、実数部Ｒと虚数部Ｉとによって表されるが、実効強度Ｅは、Ｅ＝（Ｒ２＋Ｉ２）１／２なる演算によって求めることができる。
【００３０】
こうして求められた単位区間ｄ１の強度グラフは、単位区間ｄ１の音響信号に含まれる振動成分について、ノートナンバーＮ＝０〜１２７に相当する各振動成分の割合を実効強度として示すグラフということができる。そこで、この強度グラフに示されている各実効強度に基いて、全Ｑ個（この例ではＱ＝１２８）のノートナンバーの中からＰ個のノートナンバーを選択し、このＰ個のノートナンバーＮを、単位区間ｄ１を代表する代表符号コードとして抽出する。ここでは、説明の便宜上、Ｐ＝３として、全１２８個の候補の中から３個のノートナンバーを代表符号コードとして抽出する場合を示すことにする。たとえば、「候補の中から強度の大きい順にＰ個の符号コードを抽出する」という基準に基いて抽出を行えば、図１(c) に示す例では、第１番目の代表符号コードとしてノートナンバーＮｐ（ｄ１，１）が、第２番目の代表符号コードとしてノートナンバーＮｐ（ｄ１，２）が、第３番目の代表符号コードとしてノートナンバーＮｐ（ｄ１，３）が、それぞれ抽出されることになる。
【００３１】
このようにして、Ｐ個の代表符号コードが抽出されたら、これらの代表符号コードとその実効強度によって、単位区間ｄ１の音響信号を表現することができる。たとえば、上述の例の場合、図１(c) に示す強度グラフにおいて、ノートナンバーＮｐ（ｄ１，１）、Ｎｐ（ｄ１，２）、Ｎｐ（ｄ１，３）の実効強度がそれぞれＥｐ（ｄ１，１）、Ｅｐ（ｄ１，２）、Ｅｐ（ｄ１，３）であったとすれば、以下に示す３組のデータ対によって、単位区間ｄ１の音響信号を表現することができる。
【００３２】
Ｎｐ（ｄ１，１），Ｅｐ（ｄ１，１）
Ｎｐ（ｄ１，２），Ｅｐ（ｄ１，２）
Ｎｐ（ｄ１，３），Ｅｐ（ｄ１，３）
以上、単位区間ｄ１についての処理について説明したが、単位区間ｄ２〜ｄ５についても、それぞれ別個に同様の処理が行われ、代表符号コードおよびその強度を示すデータが得られることになる。たとえば、単位区間ｄ２については、
Ｎｐ（ｄ２，１），Ｅｐ（ｄ２，１）
Ｎｐ（ｄ２，２），Ｅｐ（ｄ２，２）
Ｎｐ（ｄ２，３），Ｅｐ（ｄ２，３）
なる３組のデータ対が得られる。このようにして各単位区間ごとに得られたデータによって、原音響信号を符号化することができる。
【００３３】
図２は、上述の方法による符号化の概念図である。図２(a) には、図１(a) と同様に、原音響信号について５つの単位区間ｄ１〜ｄ５を設定した状態が示されており、図２(b) には、各単位区間ごとに得られた符号データが音符の形式で示されている。この例では、個々の単位区間ごとに３個の代表符号コードを抽出しており（Ｐ＝３）、これら代表符号コードに関するデータを３つのトラックＴ１〜Ｔ３に分けて収容するようにしている。たとえば、単位区間ｄ１について抽出された代表符号コードＮｐ（ｄ１，１），Ｎｐ（ｄ１，２），Ｎｐ（ｄ１，３）は、それぞれトラックＴ１，Ｔ２，Ｔ３に収容されている。もっとも、図２(b) は、本発明によって得られる符号データを音符の形式で示した概念図であり、実際には、各音符にはそれぞれ強度に関するデータが付加されている。たとえば、トラックＴ１には、ノートナンバーＮｐ（ｄ１，１），Ｎｐ（ｄ２，１），Ｎｐ（ｄ３，１）…なる音階を示すデータとともに、Ｅｐ（ｄ１，１），Ｅｐ（ｄ２，１），Ｅｐ（ｄ３，１）…なる強度を示すデータが収容されることになる。
【００３４】
本発明における符号化の形式としては、必ずしもＭＩＤＩ形式を採用する必要はないが、この種の符号化形式としてはＭＩＤＩ形式が最も普及しているため、実用上はＭＩＤＩ形式の符号データを用いるのが最も好ましい。ＭＩＤＩ形式では、「ノートオン」データもしくは「ノートオフ」データが、「デルタタイム」データを介在させながら存在する。「ノートオン」データは、特定のノートナンバーＮとベロシティーＶとを指定して特定の音の演奏開始を指示するデータであり、「ノートオフ」データは、特定のノートナンバーＮとベロシティーＶとを指定して特定の音の演奏終了を指示するデータである。また、「デルタタイム」データは、所定の時間間隔を示すデータである。ベロシティーＶは、たとえば、ピアノの鍵盤などを押し下げる速度（ノートオン時のベロシティー）および鍵盤から指を離す速度（ノートオフ時のベロシティー）を示すパラメータであり、特定の音の演奏開始操作もしくは演奏終了操作の強さを示すことになる。
【００３５】
本実施形態では、上述したように、第ｉ番目の単位区間ｄｉについて、代表符号コードとしてＰ個のノートナンバーＮｐ（ｄｉ，１），Ｎｐ（ｄｉ，２），…，Ｎｐ（ｄｉ，Ｐ）が得られ、このそれぞれについて実効強度Ｅｐ（ｄｉ，１），Ｅｐ（ｄｉ，２），…，Ｅｐ（ｄｉ，Ｐ）が得られる。そこで本実施形態では、次のような手法により、ＭＩＤＩ形式の符号データを作成している。まず、「ノートオン」データもしくは「ノートオフ」データの中で記述するノートナンバーＮとしては、得られたノートナンバーＮｐ（ｄｉ，１），Ｎｐ（ｄｉ，２），…，Ｎｐ（ｄｉ，Ｐ）をそのまま用いている。一方、「ノートオン」データもしくは「ノートオフ」データの中で記述するベロシティーＶとしては、得られた実効強度Ｅｐ（ｄｉ，１），Ｅｐ（ｄｉ，２），…，Ｅｐ（ｄｉ，Ｐ）を、値が０〜１の範囲となるように規格化し、この規格化後の実効強度Ｅの平方根に１２７を乗じた値を用いている。すなわち、実効強度Ｅについての最大値をＥmax とした場合、
Ｖ＝（Ｅ／Ｅmax ）１／２・１２７
なる演算で求まる値Ｖをベロシティーとして用いている。あるいは対数をとって、
Ｖ＝ｌｏｇ（Ｅ／Ｅmax ）・１２７＋１２７
（ただし、Ｖ＜０の場合はＶ＝０とする）
なる演算で求まる値Ｖをベロシティーとして用いてもよい。また、「デルタタイム」データは、各単位区間の長さに応じて設定すればよい。
【００３６】
結局、上述した実施形態では、３トラックからなるＭＩＤＩ符号データが得られることになる。このＭＩＤＩ符号データを所定のＭＩＤＩ音源を用いて再生すれば、３チャンネルのステレオ再生音として原音響信号が再生される。なお、ＭＩＤＩ符号データの再生機能をもった一般的な装置は、８チャンネルあるいは１６チャンネルのステレオ再生を行うことが可能であり、実用上は、Ｐ＝８あるいはＰ＝１６に設定し、８トラックあるいは１６トラックからなるＭＩＤＩ符号データを作成するのが好ましい。
【００３７】
上述した手順による符号化処理は、実際にはコンピュータを用いて実行される。本発明による符号化処理を実現するためのプログラムは、磁気ディスクや光ディスクなどのコンピュータ読み取り可能な記録媒体に記録して供給することができ、また、本発明による符号化処理によって符号化された符号データは、同様に、磁気ディスクや光ディスクなどのコンピュータ読み取り可能な記録媒体に記録して供給することができる。
【００３８】
§２．  より実用的な区間設定方法
これまで、本発明に係る音響信号の符号化方法の基本原理を述べたが、以下、より実用的な符号化方法を述べる。ここでは、区間設定を行う上でのより実用的な手法を説明する。図２(a) に示された例では、時間軸ｔ上に等間隔に定義された６つの時刻ｔ１〜ｔ６を境界として、５つの単位区間ｄ１〜ｄ５が設定されている。このような区間設定に基いて符号化を行った場合、再生時に、境界となる時刻において音の不連続が発生しやすい。したがって、実用上は、隣接する単位区間が時間軸上で部分的に重複するような区間設定を行うのが好ましい。
【００３９】
図３(a) は、このように部分的に重複する区間設定を行った例である。図示されている単位区間ｄ１〜ｄ４は、いずれも部分的に重なっており、このような区間設定に基いて前述の処理を行うと、図３(b) の概念図に示されているような符号化が行われることになる。この例では、それぞれの単位区間の中心を基準位置として、各音符をそれぞれの基準位置に配置しているが、単位区間に対する相対的な基準位置は、必ずしも中心に設定する必要はない。図３(b) に示す概念図を図２(b) に示す概念図と比較すると、音符の密度が高まっていることがわかる。このように重複した区間設定を行うと、作成される符号データの数は増加することになるが、再生時に音の不連続が生じない自然な符号化が可能になる。
【００４０】
図４は、時間軸上で部分的に重複する区間設定を行う具体的な手法を示す図である。この具体例では、音響信号を２２ｋＨｚのサンプリング周波数でサンプリングすることによりデジタル音響データとして取り込み、個々の単位区間の区間長Ｌを１０２４サンプル分（約４７ｍｓｅｃ）に設定し、各単位区間ごとのずれ量を示すオフセット長ΔＬを２０サンプル分（約０．９ｍｓｅｃ）に設定したものである。すなわち、任意のｉに対して、第ｉ番目の単位区間の始点と第（ｉ＋１）番目の単位区間の始点との時間軸上での隔たりがオフセット長ΔＬに設定されることになる。たとえば、第１番目の単位区間ｄ１は、１〜１０２４番目のサンプルを含んでおり、第２番目の単位区間ｄ２は、２０サンプル分ずれた２１〜１０４４番目のサンプルを含んでいることになる。
【００４１】
このように、時間軸上で部分的に重複する区間設定を行った場合、隣接する単位区間においてかなりのサンプルが共通して用いられることになり、各単位区間ごとに求めたスペクトルに有効な差が生じないことが予想される。たとえば、上述の例の場合、第１番目の単位区間ｄ１と第２番目の単位区間ｄ２とを比較すると、２１〜１０２４番目のサンプルは両単位区間で全く共通して利用されており、両者の相違は、わずか２０サンプル分に依存していることになる。このように、隣接する単位区間のスペクトルに十分な差が得られないと、変化の激しい音響信号に追従できず、結果的に時間分解能が低下するという問題が生じることになる。このような問題に対処するためには、わずか２０サンプル分の相違により、フーリエ変換の入力側に大きな変化が生じるような対策を講じればよい。
【００４２】
そこで、本願発明者は、§１で言及した窓関数に対して、変化する２０サンプル分を強調するような細工を施すことを考案した。前述した周知のハニング窓は、むしろ隣接区間の変動を抑える方向に働くため、上述の問題に対処する観点からは逆効果である。そこで、区間両端の重みが減少するというハニング窓の特徴を継承しつつ、２０サンプル分を強調するような関数を考案し、実際に適用してみた。具体的には、単位区間の区間長をＬ、オフセット長をΔＬとして、
α＝Ｌ／２−ΔＬ／２
β＝Ｌ／２＋ΔＬ／２
なるα，βを定め、区間［α，β］で表される中央近傍区間（単位区間の中央位置に定義された幅ΔＬの区間）を定義し、
ｋ＝１…αのとき
Ｈ（ｋ）＝０．５−０．５＊ｃｏｓ（πｋ／２α）
ｋ＝α…βのとき
Ｈ（ｋ）＝０．５−０．５
＊ｃｏｓ（π（ｋ−α）／ΔＬ＋π／２）
ｋ＝β…Ｌのとき
Ｈ（ｋ）＝０．５−０．５
＊ｃｏｓ（π（ｋ−β）／２α＋３π／２）
なる改良型窓関数Ｈ（ｋ）を用いるようにすればよい。この改良型窓関数Ｈ（ｋ）は、半値幅がちょうどΔＬになるように狭幅に変形した分布関数であり、この関数を用いて実験を行ったところ、十分な効果が確認できた。
【００４３】
なお、上述した具体例のように、２２ｋＨｚのサンプリング周波数でサンプリングを行い、単位区間の区間長Ｌを１０２４サンプル分に設定した場合には、対数スケール変換により１２８種類のノートナンバーのうち上半分に相当するデータしか連続的に得ることができず、低音部のデータがいわゆる歯抜け状態になり、全体的に高音に偏ったスペクトルになることが確認できた。結局、１２８種類のノートナンバーすべてをカバーすることを考えると、区間長Ｌを８倍の８１９２サンプル以上に設定する必要がある。しかしながら、区間長Ｌを８倍にすると、各区間ごとの演算時間が６４倍になり、しかも前述した時間分解能の低下という問題を助長することになり現実的ではない。
【００４４】
そこで本願発明者は、同じ区間長で低音部に焦点を当てたスペクトルを別途求め、この別途求めたスペクトルを通常のスペクトルに合成する手法を考案した。低音部に焦点を当てたスペクトルは、次のような方法で、通常のスペクトルと同一演算負荷で容易に求めることができる。たとえば、図１(b) において、区間長Ｌは同一にしたまま、サンプリング周波数を通常の１／８であるＦｓ／８に設定すれば、Ｆｓ／８以下の周波数成分が拡大されたスペクトルを求めることができる。この処理は、音響信号のサンプル数を１／８に間引きして、同一区間長のサンプルを取り出してフーリエ変換を行う処理と等価である（区間長の時間軸のスケールは８倍になっている）。幸いなことに、既に離散データになっている音響信号のサンプリング周波数を上げるのは困難であるが、逆に下げるのは容易である。こうして得られた１／８間引きスペクトルを通常のスペクトルに合成することにより、ノートナンバー２４以上をすべてカバーできることが確認できた（ノートナンバー２４は、ピアノの最低音であり、これ以下の音は、通常の楽器で再生することができないため、実用上は不要である。）。しかも、この手法による演算負荷は、１０２４サンプル分のフーリエ変換をたかだか２回行う程度ですむ。
【００４５】
なお、強度グラフの横軸に定義された１２８種類のノートナンバーのそれぞれについての実効強度Ｅを求めるには、たとえば、各ノートナンバーＮに所定の周波数レンジを割り当て、割り当てられたレンジ内の各周波数の実効強度の平均値を、当該ノートナンバーＮの実効強度とすればよい。図５は、このような手法で実効強度を求める概念を示すグラフである。まず、フーリエ変換によって得られたスペクトルの横軸を対数尺度に変換し、縦軸を実効強度に変換すれば、図５に示すようなグラフが得られる。横軸上に示された周波数値２５９，２８０，２９１，…は、それぞれノートナンバーＮ＝６０，６１，６２，…に対応する周波数である。ここで、たとえば、ノートナンバーＮ＝６１についての実効強度を求めるには、周波数値２８０の近傍の所定の周波数レンジ（図にハッチングを施した領域）を、ノートナンバーＮ＝６１に割り当て、このレンジ内の各周波数の実効強度の最大値を、ノートナンバーＮ＝６１についての実効強度とすればよい。
【００４６】
§３．  符号コードの統合処理
上述の§２で述べたように、部分的に重複する区間設定を行った場合、作成される符号コードの数はかなり増えることになる。ここでは、最終的に作成される符号コードの数をできるだけ削減するために効果的な統合処理を説明する。
【００４７】
たとえば、図６(a) に示すような音符で示される符号コードが作成された場合を考える。図示の例では、すべての符号コードが八分音符から構成されている。これは、区間長Ｌが一定であるため、作成される個々の符号コードも同一の長さになるためである。しかしながら、この図６(a) に示す音符群は、図６(b) に示すように書き直すことができる。すなわち、同じ音階を示す音符が複数連続して配置されていた場合には、この複数の音符を１つの音符に統合することができる。別言すれば、複数の単位区間に跨がった音符によって、個々の単位区間ごとの音符を置換することができる。
【００４８】
この図６に示す例では、同じ音階の音符のみを統合したが、統合対象となる音符は、必ずしも同じ音階の音符に限定されるものではなく、ある程度の類似性をもった音符を統合対象としてかまわない。たとえば、互いに１音階の差しかない一連の音符を統合対象として、１つの音符に置換することもできる。この場合は、たとえば、一連の音符の中で音階の低い方の音符によって置換すればよい。一般的に拡張すれば、隣接する複数の単位区間について、所定の条件下で互いに類似する代表符号コードがある場合、これら類似する代表符号コードを、複数の単位区間に跨がった統合符号コードに置換することにより、音符数を削減することが可能になる。
【００４９】
なお、図６では、音符を統合する例について、符号コードの統合処理の概念を説明したが、本発明に係る符号化処理によって作成される符号コードには、それぞれ強度を示すデータ（ＭＩＤＩデータの場合はベロシティー）が付加されている。したがって、符号コードを統合した場合、強度を示すデータも統合する必要がある。ここで、統合対象となる符号コードに、それぞれ異なる強度データが定義されていた場合には、たとえば、最も大きな強度データを統合後の符号コードについての強度データと定めるようにすればよい。ただ、ＭＩＤＩデータの場合、２つの符号コードを統合する際に、先行する符号コードの強度に比べて、後続する符号コードの強度がかなり大きい場合、これら２つの符号コードを統合すると不自然になる。これは、通常のＭＩＤＩ音源の再生音は、楽器の演奏音から構成されており、音の強度が時間とともに減衰してゆくのが一般的だからである。したがって、先行する符号コードの強度に比べて、後続する符号コードの強度が小さい場合には、１つの統合符号コードに置換しても不自然さは生じないが、逆の場合には、不自然さが生じることになる。そこで、２つの符号コードの強度差が所定の基準以上であり、かつ、先行する符号コードの強度に比べて、後続する符号コードの強度が大きい場合には、統合を行わない、というような条件を設定しておくのが好ましい。
【００５０】
上述のように、符号コードの統合処理が行われると、符号コードの数を低減させるメリットが得られるので、できる限り統合処理が促進されるような配慮を行うのが望ましい。このような配慮を行うための最も効果的な手法は、符号コードを周波数に基いてソートしてから各トラックに収容する手法である。図６(a) に示した音符群は、同一のトラック上に収容された符号コードである。統合処理の対象となる音符は、通常、同一のトラック上に収容されている必要がある。ところが、実際には、図２(b) に示すように、複数Ｐ個のトラック（図２(b) の例では、Ｐ＝３）が定義され、各単位区間ごとに抽出されたＰ個の符号コードは、このＰ個のトラックにそれぞれ分けて収容されることになり、統合対象となる音符が出現する確率は、各トラックへの分離処理の方法に大きく依存する。たとえば、図２(b) に示すように、３つの符号データを３個のトラックＴ１，Ｔ２，Ｔ３に分離する場合、３つのうち最も周波数の低いものをトラックＴ１へ、次に周波数の低いものをトラックＴ２へ、最も周波数の高いものをトラックＴ３へ、それぞれ収容するように分離方法を決めておけば、周波数に全く無関係に分離した場合に比べて、統合対象となる音符が出現する確率は向上すると考えられる。
【００５１】
結局、各単位区間ごとに抽出されるＰ個の符号コードを、それぞれＰ個のトラックに分離して収容する際に、抽出されたＰ個の符号コードを周波数に基いてソートしてから各トラックに収容するようにすれば、統合対象となる符号コードを増加させることができる。図７は、Ｐ＝８の場合についての周波数ソート例を示す概念図である。Ｐ＝８の場合、ある単位区間ｄ１についての代表符号コードとして、８個のノートナンバーＮｐ（ｄ１，１）〜Ｎｐ（ｄ１，８）が抽出されることになる。この抽出処理では、８個のノートナンバーは、たとえば、実効強度の大きさの順に順次抽出されることになり、実効強度の大きさの順にソートされた状態になっている（図７の左列）。これを、周波数でソートすれば、たとえば、図７の中列のように順序が入れ替わる。こうしてソートされたノートナンバーを、図７の右列に示すように、８個のトラックＴ１〜Ｔ８に収容するようにすれば、たとえば、８個のノートナンバーの中で最も周波数の低い（ナンバーの小さい）ノートナンバーは常にトラックＴ１に収容され、最も周波数の高い（ナンバーの大きい）ノートナンバーは常にトラックＴ８に収容されるようになる。その結果、いずれのトラックにおいても、統合対象となるノートナンバーの出現頻度が向上することになる。
【００５２】
§４．  代表符号コードの抽出方法
図１(c) に示す例では、単位区間ｄ１の強度グラフにおいて、横軸上に定義された１２８個のノートナンバーの中から、３つのノートナンバーＮｐ（ｄ１，１），Ｎｐ（ｄ１，２），Ｎｐ（ｄ１，３）が代表符号コードとして抽出され、抽出された各代表符号コードは、３つのトラックＴ１，Ｔ２，Ｔ３にそれぞれ分離して収容されることになる。一般的に、Ｐ個のトラックＴ１〜ＴＰを用意した場合、Ｐ個のノートナンバーＮｐ（ｄ１，１），Ｎｐ（ｄ１，２），…，Ｎｐ（ｄ１，Ｐ）を代表符号コードとして抽出する必要がある。ここでは、この代表符号コードを抽出する方法として、具体的な５つの方法を述べることにする。
【００５３】
＜＜＜  ４．１  第１の抽出方法＞＞＞
第１の方法は、符号化対象となる強度グラフにおける候補の中から強度の大きい順にＰ個の符号コードを抽出して、これを代表符号コードとする方法である。図１(c) に示された３つのノートナンバーＮｐ（ｄ１，１），Ｎｐ（ｄ１，２），Ｎｐ（ｄ１，３）は、この第１の方法に基いて抽出されている。すなわち、図１(c) に示す強度グラフにおいて、実効強度Ｅの最も大きなノートナンバーＮｐ（ｄ１，１）が第１代表符号コードとして抽出され、実効強度Ｅが２番目に大きなノートナンバーＮｐ（ｄ１，２）が第２代表符号コードとして抽出され、実効強度Ｅが３番目に大きなノートナンバーＮｐ（ｄ１，３）が第３代表符号コードとして抽出されることになる。
【００５４】
図８は、この第１の方法の原理を説明する図である。ここでは、説明の便宜上、５つのノートナンバーＮａ，Ｎｂ，Ｎｃ，Ｎｄ，Ｎｅについて、それぞれ図８(a) に示すような実効強度が定義され、他のノートナンバーについては、いずれも実効強度が零である単純な場合を考える（実際には、１２８個のノートナンバーすべてが、いくらかの実効強度値をもつのが一般的である）。第１の方法によれば、この５つの候補の中で、実効強度が最も大きなノートナンバーＮｂが第１代表符号コードとして抽出される。こうして抽出されたノートナンバーは、候補から削除される。図８に示す例では、第１代表符号コードとして抽出されたノートナンバーＮｂが候補から削除されることになる。図８(b) には、候補から削除されたノートナンバーＮｂのグラフが破線で示されている。続いて、図８(b) に実線グラフで示されている残りの４候補の中で最も実効強度が大きなノートナンバーＮｃが第２代表符号コードとして抽出され、候補から削除されることになる。このような処理を第Ｐ代表符号コードが抽出されるまで繰り返し実行すればよい。
【００５５】
もともと、各単位区間ごとに抽出された代表符号コードは、当該単位区間内の原音響信号に含まれている代表的な周波数成分を示すためのものであるから、原理的には、実効強度の大きい順にＰ個の代表符号コードを抽出するという第１の方法は、最も適当な方法のように見える。しかしながら、この第１の抽出方法を用いて実際に符号化を行った結果、再生時に全体的に音程が高音側にシフトするという現象が確認できた。たとえば、男性の話声を原音響信号として、この第１の抽出方法を用いた符号化を行い、得られた符号データを、一般のＭＩＤＩ音源を用いて再生した場合、もとの男性の話声にくらべてやや甲高い女性の話声に近い再生音が得られた。
【００５６】
本願発明者は、このような現象が生じる理由は、ＭＩＤＩ音源に利用される楽器音などが、倍音成分（基本成分の整数倍の周波数をもった成分）を含んでいるためであると考えている。たとえば、ピアノの鍵盤中央の「ラ音（Ａ３音）」の基本周波数成分は４４０Ｈｚであるが、実際にこの「ラ音（Ａ３音）」の鍵盤を弾いてみると、基本周波数成分である４４０Ｈｚの音とともに、その２倍の周波数成分８８０Ｈｚの音（１オクターブ上のラ音（Ａ４音））や、３倍、４倍、…の周波数成分の音（倍音成分）が混在していることがわかる。したがって、たとえば、代表符号コードとして、ノートナンバーＮ＝６９（Ａ３音）を抽出した場合、再生時には、このノートナンバーＮ＝６９の基本周波数成分である４４０Ｈｚの音の他に、８８０Ｈｚ，１３２０Ｈｚ，…などの倍音成分の音が混在することになる。したがって、この第１の抽出方法によって、実効強度の大きい順にＰ個の代表符号コードを抽出すると、ＭＩＤＩ音源を用いた再生時には、各代表符号コードの基本周波数成分の音に、これらの倍音成分の音が加わることになり、全体的に高音側の強度が高められた状態で再生が行われることになる。再生時に音程が全体的に高音側にシフトするという現象は、このような理由により発生すると思われる。
【００５７】
本願発明者は、このような理由に着目し、再生時に音程が全体的に高音側にシフトするという現象を抑えるための代表符号コードの抽出方法を想到するに至った。以下に述べる各抽出方法は、いずれもこのような着想に基く方法である。
【００５８】
＜＜＜  ４．２  第２の抽出方法＞＞＞
第２の方法は、符号化対象となる強度グラフにおけるその時点での候補の中から最も強度の大きい符号コードを第ｉ番目の代表符号コードとして抽出した後、この第ｉ番目の代表符号コードおよびその倍音成分に相当する符号コードを候補から削除する処理を、ｉ＝１〜（Ｐ−１）について繰り返し実行し、最後に、残った候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出することにより、合計Ｐ個の代表符号コードの抽出を行う方法である。
【００５９】
たとえば、図９(a) に示すように、５つのノートナンバーＮａ，Ｎｂ，Ｎｃ，Ｎｄ，Ｎｅについて、それぞれ図のような実効強度が定義されている場合を考える。まず、ｉ＝１として、候補の中からこの時点で最も強度の大きい符号コードであるノートナンバーＮｂが、第１代表符号コードとして抽出される。続いて、この抽出されたノートナンバーＮｂおよびその倍音成分に相当する符号コードが候補から削除される。たとえば、ノートナンバーＮｃがノートナンバーＮｂの倍音成分であったとすると、図９(b) に破線で示すように、既に抽出されたノートナンバーＮｂとともに、その倍音成分であるノートナンバーＮｃが候補から削除される。図９(b) では、候補から削除されたノートナンバーＮｂ，Ｎｃのグラフが破線で示されている。続いて、ｉ＝２への更新が行われ、残った候補の中から最も強度の大きい符号コードであるノートナンバーＮａが、第２代表符号コードとして抽出される。そして、この抽出されたノートナンバーＮａおよびその倍音成分に相当する符号コードが候補から削除される。
【００６０】
このような処理を、ｉ＝３，ｉ＝４，…と更新しながら、ｉ＝Ｐ−１まで実行すれば、（Ｐ−１）番目の代表符号コードまでの抽出が完了する。最後に、残った候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出すれば、合計Ｐ個の代表符号コードを抽出することができる。
【００６１】
この第２の抽出方法では、１つの代表符号コードが抽出されると、その倍音成分に相当する符号コードが候補から削除されるため、最終的に抽出されたＰ個の代表符号コードの中には、互いに倍音関係にある符号コードが含まれないことになる。したがって、再生時に倍音成分が強調されて甲高い音になる現象を緩和することができる。ただ、この第２の抽出方法では、再生音が甲高い音になる現象を完全に抑制することはできない。その理由は、一般的なＭＩＤＩ音源には、本来の基本周波数成分の強度よりも、倍音成分の強度の方が大きい音が含まれているためと考えられる。
【００６２】
図１０は、一般的なピアノのＭＩＤＩ音源について、ノートナンバーＮ＝２４〜８４に含まれるピーク周波数を測定した結果を示す図表である。たとえば、ノートナンバーＮ＝２４は、本来は「Ｃ０音」の音階に相当する音であるが、この音をＭＩＤＩ音源で再生した際の再生音に含まれる周波数成分を調べると、ピーク周波数が１２９Ｈｚという本来の音階の基本周波数よりも高い結果が得られている。この図表の「対応する音階」欄に示された音階は、このピーク周波数に対応する音階を示しており、ノートナンバーＮ＝２４の場合、対応する音階は「Ｃ２」音になっている。別言すれば、「Ｃ０音」を本来の音階とするノートナンバーＮ＝２４の音を再生すると、実際には、「Ｃ０音」に対応する基本周波数の強度よりも、その４倍音成分である「Ｃ２音」に対応する周波数（１２９Ｈｚ）の強度の方が大きいことがわかる。このような傾向は、主に、ノートナンバーＮ＝５７以下の音についてみられる。すなわち、ノートナンバーＮ＝５７以下の音のうち、Ｎ＝４１，４５，４６，４８，４９，５２，５４，５６については、それぞれ基本周波数の強度が最も大きく、本来の音階とピーク周波数に対応する音階とが一致しているが、それ以外の音ではいずれも基本周波数の強度よりも倍音成分の強度の方が大きくなっており、ピーク周波数に対応する音階が本来の音階に一致していない。なお、ノートナンバーＮ＝５８以上の音については、いずれも基本周波数の強度が最も大きく、本来の音階とピーク周波数に対応する音階とが一致している。
【００６３】
このような特性があると、この第２の抽出方法では、再生時に音程が全体的に高音側にシフトするという現象を完全に抑制することはできない。すなわち、ノートナンバーＮ＝５７以下の音が代表符号コードとして抽出された場合、これらの本来の音階の強度よりも倍音成分の強度の方が大きくなるため、依然として、再生時には高音側が強調されることになる。
【００６４】
＜＜＜  ４．３  第３の抽出方法＞＞＞
第３の抽出方法は、図１０に示すような特性を考慮した方法である。すなわち、予め、各符号コードに基いて音を再生するために用いる音源を特定しておき、この特定の音源を用いた各符号コードの再生音の周波数特性（たとえば、図１０に示すような特性）を求めておく。そして、求めた周波数特性に基いて、所定の補正テーブルを定義する。具体的には、特定のノートナンバーの音を、それより低いノートナンバーの音で代用するような補正テーブルを定義すればよい。たとえば、図１０に示す周波数特性をもった音源を用いて再生を行う場合であれば、ノートナンバーＮ＝４８（Ｃ２音）の音は、それより低いノートナンバーＮ＝２４（Ｃ０音）で代用することができる。なぜなら、ノートナンバーＮ＝２４の音を再生した場合、本来の音階である「Ｃ０音」の強度よりも、倍音成分である「Ｃ２音」の強度の方が大きいからである。
【００６５】
このように低い音で代用することが可能なノートナンバーについては、それぞれ代用対象となるノートナンバーを予め定めておき、代用対象に置換する旨の補正指示を補正テーブルの形で用意しておけばよい。代表符号コードの抽出時には、この補正テーブルを参照しながら、実際に抽出する符号コードを補正するようにする。たとえば、本来であれば、その時点で強度の最も大きいノートナンバーＮ＝４８（Ｃ２音）の音を抽出すべき場合でも、ノートナンバーＮ＝４８（Ｃ２音）をノートナンバーＮ＝２４（Ｃ０音）に補正する旨の指示が補正テーブルにあれば、ノートナンバーＮ＝２４（Ｃ０音）を代表符号コードとして抽出すればよい。
【００６６】
結局、符号化対象となる強度グラフにおけるその時点での候補の中から最も強度の大きい符号コードを第ｉ番目の参照コードとし、この第ｉ番目の参照コードに、用意した補正テーブルを適用することにより得られる符号コードを第ｉ番目の代表符号コードとして抽出し、第ｉ番目の参照コードおよび第ｉ番目の代表符号コードの双方を候補から除外する処理を、ｉ＝１〜Ｐについて繰り返し実行し、合計Ｐ個の代表符号コードの抽出を行うようにすればよい。
【００６７】
たとえば、図１１(a) に示すように、５つのノートナンバーＮａ，Ｎｂ，Ｎｃ，Ｎｄ，Ｎｅについて、それぞれ図のような実効強度が定義されている場合を考える。まず、ｉ＝１として、候補の中からこの時点で最も強度の大きい符号コードであるノートナンバーＮｂが、第１参照コードとして抽出される。続いて、この第１参照コードに、用意した補正テーブルを適用する。たとえば、補正テーブルに、ノートナンバーＮｂをノートナンバーＮｂ＊に補正する旨の指示があったとすれば、図１１(b) に示すように、補正後のノートナンバーＮｂ＊が第１代表符号コードとして抽出されることになる。このとき、第１参照コードであるノートナンバーＮｂと補正後のノートナンバーＮｂ＊は候補から除外される。図１１(c) では、候補から除外されたノートナンバーＮｂのグラフが破線で示されている（Ｎｂ＊はもともと強度成分が０に近いため図示されていない）。
【００６８】
続いて、ｉ＝２への更新が行われ、図１１(c) に示すように、残った候補の中から最も強度の大きい符号コードであるノートナンバーＮｃが、第２参照コードとして抽出される。そして、この第２参照コードに、用意した補正テーブルを適用する。たとえば、補正テーブルに、ノートナンバーＮｃをノートナンバーＮｃ＊に補正する旨の指示があったとすれば、図１１(d) に示すように、補正後のノートナンバーＮｃ＊が第２代表符号コードとして抽出されることになる。このとき、第２参照コードであるノートナンバーＮｃは候補から除外される。このような処理を、ｉ＝３，ｉ＝４，…と更新しながら、ｉ＝Ｐまで実行すれば、Ｐ番目の代表符号コードまでの抽出が完了する。
【００６９】
この第３の抽出方法を行う際には、補正テーブルの作成方法が重要である。用いる補正テーブルが不適当であると、補正により音程が大きく外れてしまう結果を招くことになる。なお、用意すべき補正テーブルは、厳密に言えば、再生時に用いる音源に依存することになるが、一般的なＭＩＤＩ音源はいずれも類似した周波数特性を有することが多いため、特定の音源について用意した補正テーブルは、別な音源を用いる場合にも、ある程度の汎用性をもって利用することができる。
【００７０】
本願発明者が行った実験によれば、この第３の抽出方法を行うことにより、再生時の音程が全体的に高音側にシフトするという現象をある程度低減させることができるが、この現象をより効果的に抑制するためには、前述した第２の抽出方法とこの第３の抽出方法を組み合わせて用いるのが好ましい。すなわち、図１１(b) に示すように、第１代表符号コードとしてノートナンバーＮｂ＊を抽出した後、第１参照コードであるノートナンバーＮｂとともに、その倍音成分を候補から削除するようにする。たとえば、ノートナンバーＮｃがノートナンバーＮｂの倍音成分であったとすると、図１１(e) に破線で示すように、ノートナンバーＮｂ，Ｎｃがともに候補から削除されることになり、第２参照コードとしては、ノートナンバーＮａが抽出されることになる。そして、この第２参照コードに、用意した補正テーブルを適用した結果、補正テーブルに、ノートナンバーＮａをノートナンバーＮａ＊に補正する旨の指示があったとすれば、図１１(f) に示すように、補正後のノートナンバーＮａ＊が第２代表符号コードとして抽出されることになる。このとき、第２参照コードであるノートナンバーＮａとその倍音成分が候補から削除される。このような処理を、ｉ＝３，ｉ＝４，…と更新しながら、ｉ＝Ｐまで実行すれば、Ｐ番目の代表符号コードまでの抽出が完了する。
【００７１】
＜＜＜  ４．４  第４の抽出方法＞＞＞
第４の抽出方法では、音を再生するために用いる音源を予め特定しておき、この音源を用いて各符号コードを実際に再生することにより得られる音響信号の波形を実測しておく。そして、この音響信号の波形に対して、§１で述べたスペクトル作成段階および強度グラフ作成段階を実行し、各符号コードについての強度グラフを予め求めておく。すなわち、ノートナンバーＮ＝０〜１２７の１２８通りの音を、実際のＭＩＤＩ音源を用いて再生し、この再生波形に対して、図１(b) に示すようなスペクトルを求め（たとえば、§１で述べた単位区間と同一長さの区間を代表区間として設定し、この代表区間についてのスペクトルを求める。このとき、代表区間の設定は、できるだけ信号の立ち上がりまたは立ち下がり部分を避けて設定する。あるいは適当な複数区間についての平均スペクトルを求めてもよい。）、更に、図１(c) に示すような強度グラフ（ここでは、各符号コード（ノートナンバー）についての固有強度グラフと呼ぶ）を求めておく。結局、ノートナンバーＮ＝０〜１２７について、１２８通りの固有強度グラフが得られることになる。以上が、この第４の抽出方法の準備段階となる。
【００７２】
実際に符号化対象となる音響信号を符号化する段階では、次のような方法で、代表符号コードの抽出が行われる。すなわち、符号化対象となる強度グラフにおけるその時点での候補の中から最も強度の大きい符号コードを第ｉ番目の代表符号コードとして抽出した後、符号化対象となる強度グラフの各強度値からこの第ｉ番目の代表符号コードについての固有強度グラフの各強度値を減算する処理を、ｉ＝１〜（Ｐ−１）について繰り返し実行し、更に、残った候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出することにより、合計Ｐ個の代表符号コードの抽出を行う。
【００７３】
たとえば、図１２(a) に示すように、５つのノートナンバーＮａ，Ｎｂ，Ｎｃ，Ｎｄ，Ｎｅについて、それぞれ図のような実効強度が定義されている場合を考える。まず、ｉ＝１として、候補の中からこの時点で最も強度の大きい符号コードであるノートナンバーＮｂが、第１代表符号コードとして抽出される。このノートナンバーＮｂについては、上述した準備段階において、固有強度グラフが求められている。たとえば、特定のＭＩＤＩ音源を用いて、このノートナンバーＮｂを再生した場合に、図１２(b) に示すような再生信号波形が得られる場合、この再生信号波形に対して、§１で述べたスペクトル作成段階および強度グラフ作成段階を実行することにより、図１２(c) に示すようなノートナンバーＮｂの固有強度グラフが用意されていることになる。そこで、図１２(a) に示す符号化対象となる強度グラフの各強度値からこのノートナンバーＮｂについての固有強度グラフの各強度値を減算する処理を行う。図１２(d) は減算の結果を示すグラフである。図に破線で示した部分が、減算によって削除された部分である。結局、減算の結果、この時点における「符号化対象となる強度グラフ」は、図１２(e) のようなグラフになる。
【００７４】
続いて、ｉ＝２への更新が行われ、図１２(e) に示すように、残った候補の中から最も強度の大きい符号コードであるノートナンバーＮａが、第２代表符号コードとして抽出される。そして、この時点における「符号化対象となる強度グラフ」である図１２(e) のグラフの各強度値から、ノートナンバーＮａについての固有強度グラフ（図示されていない）の各強度値を減算する処理を行い、この減算の結果得られたグラフが、新たな「符号化対象となる強度グラフ」となる。
【００７５】
このような処理を、ｉ＝３，ｉ＝４，…と更新しながら、ｉ＝Ｐ−１まで実行すれば、（Ｐ−１）番目の代表符号コードまでの抽出が完了する。最後に、残った候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出すれば、合計Ｐ個の代表符号コードを抽出することができる。
【００７６】
この第４の抽出方法は、再生時に利用する音源の特性に大きく依存するため、予め再生に利用する予定の音源が特定できている場合の利用に適している。１つの代表符号コードを抽出するたびに、その代表符号コードについての実際の再生音に含まれる周波数成分を減じてゆく手法を採っているため、極めて忠実な再生が可能になる。
【００７７】
なお、上述の例では、得られた固有強度グラフの強度値をそのまま減じているが、固有強度グラフの強度値について規格化を行った上で、減算を行うようにしてもよい。たとえば、図１２(a) に示す「符号化対象となる強度グラフ」における代表符号コードとして抽出されたノートナンバーＮｂの強度値をＸとし、図１２(c) の固有強度グラフにおける同じノートナンバーＮｂの強度値をＹとした場合、後者の固有強度グラフの各強度値をＸ／Ｙ倍してから減算を行うようにすると、減算結果として得られる新たな「符号化対象となる強度グラフ」におけるノートナンバーＮｂの強度値を零にすることができ、同じノートナンバーＮｂが繰り返し代表符号コードとして抽出されることを防ぐことができる。
【００７８】
＜＜＜  ４．５  第５の抽出方法＞＞＞
第５の抽出方法では、上述した第４の抽出方法と同様に、準備段階として、音を再生するために用いる音源を予め特定しておき、この音源を用いて各符号コードを実際に再生することにより得られる音響信号の波形を実測しておく。ただし、この第５の抽出方法では、この実測した波形自体を保存しておき、後の処理の減算に用いるようにする。具体的には、ノートナンバーＮ＝０〜１２７の１２８通りの音を、実際のＭＩＤＩ音源を用いて再生し、この１２８通りの再生波形をそのまま保存しておくことになる。ここでは、これら各ノートナンバーについての再生波形を、各符号コードについての固有波形と呼ぶことにする。
【００７９】
実際に符号化対象となる音響信号を符号化する場合、次のような「符号抽出処理」を定義し、この「符号抽出処理」を繰り返し実行することになる。すなわち、ここで定義される「符号抽出処理」とは、「第ｉ番目の代表符号コードを決定するために、第ｉ番目の音響信号の波形情報を入力し、入力した波形情報に対して、§１で述べたスペクトル作成段階および強度グラフ作成段階を行い、続く符号化段階で、作成された強度グラフにおける候補の中から最も強度の大きい符号コードを第ｉ番目の代表符号コードとして抽出し、更に、第ｉ番目の音響信号の強度値から前記第ｉ番目の代表符号コードについての固有波形の各強度値を減算し、その結果得られる音響信号を第（ｉ＋１）番目の音響信号とする処理」である。
【００８０】
この第５の抽出方法では、まず、符号化対象となる原音響信号に対して区間設定処理を施し、時間軸上に複数の単位区間を設定する。そして、各単位区間ごとの音響信号をそれぞれ第１番目の音響信号として、上述した「符号抽出処理」を、各単位区間のそれぞれごとに、ｉ＝１〜（Ｐ−１）について繰り返し実行し、最後に、第Ｐ番目の音響信号の波形情報を入力し、入力した波形情報に対して、§１で述べたスペクトル作成段階および強度グラフ作成段階を行い、続く符号化段階で、作成された強度グラフにおける候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出すれば、各単位区間ごとにそれぞれ合計Ｐ個の代表符号コードの抽出を行うことができる。以上が、第５の抽出方法の基本手順である。以下、この基本手順を図１３に示す具体例に即して説明する。
【００８１】
まず、符号化対象となる原音響信号に対して、区間設定段階が行われ、各単位区間ごとの原音響信号が、それぞれ第１番目の音響信号となる。以下の処理は、それぞれ各単位ごとに行われることになる。まず、ｉ＝１に設定され、第１回目の「符号抽出処理」が実行される。ここでは、ある単位区間ｄについての第１番目の音響信号として、図１３(a) に示すような波形をもった信号が入力されたものとしよう。この信号は、単位区間ｄについての原信号というべき信号である。続いて、この図１３(a) に示す信号に対して、フーリエ変換を行いスペクトルを求め、このスペクトルに基いて強度グラフを求める。ここでは、図１３(b) に示すような強度グラフが得られたものとする。
【００８２】
次に、この強度グラフにおいて、最も強度の大きい符号コードであるノートナンバーＮｂが、第１代表符号コードとして抽出される。その後、図１３(a) に示す第１番目の音響信号の強度値から、図１３(c) に示す第１代表符号コードについての固有波形（準備段階で予め求めて保存してある）の各強度値を減算する。その結果、たとえば、図１３(d) に示すような音響信号が得られたとする。この図１３(d) に示す減算結果は、第２番目の音響信号となる。
【００８３】
続いて、ｉ＝２への更新が行われ、今度は、図１３(d) に示す第２番目の音響信号に対してフーリエ変換を行いスペクトルを求め、このスペクトルに基いて強度グラフを求める。ここでは、図１３(e) に示すような強度グラフが得られたものとする。次に、この強度グラフにおいて、最も強度の大きい符号コードであるノートナンバーＮｃが、第２代表符号コードとして抽出される。その後、図１３(d) に示す第２番目の音響信号の強度値から、第２代表符号コードについての固有波形（図示されていない）の各強度値を減算し、第３番目の音響信号を求める。
【００８４】
このような処理を、ｉ＝３，ｉ＝４，…と更新しながら、ｉ＝Ｐ−１まで実行すれば、（Ｐ−１）番目の代表符号コードまでの抽出が完了する。最後に、残った候補の中から最も強度の大きい符号コードを第Ｐ番目の代表符号コードとして抽出すれば、合計Ｐ個の代表符号コードを抽出することができる。
【００８５】
以上の処理を、各単位区間ごとに実行すれば、各単位区間ごとに、それぞれＰ個の代表符号コードを得ることができる。
【００８６】
【発明の効果】
以上のとおり本発明に係る符号化方法によれば、音響信号に対して効率的な符号化を行うことができるようになる。
【図面の簡単な説明】
【図１】本発明に係る音響信号の符号化方法の基本原理を示す図である。
【図２】図１(c) に示す強度グラフに基いて作成された符号コードを示す図である。
【図３】時間軸上に部分的に重複するように単位区間設定を行うことにより作成された符号コードを示す図である。
【図４】時間軸上に部分的に重複するような単位区間設定の具体例を示す図である。
【図５】周波数軸とノートナンバーとの対応関係を示すグラフである。
【図６】単位区間の統合処理により符号データの量を削減した例を示す図である。
【図７】複数のノートナンバーを周波数でソートしてからトラックに収容する概念を示す図である。
【図８】強度グラフに基いて代表符号コードを抽出する第１の方法を示す図である。
【図９】強度グラフに基いて代表符号コードを抽出する第２の方法を示す図である。
【図１０】ＭＩＤＩ音源で各ノートナンバーを再生した場合の周波数特性を示す図表である。
【図１１】強度グラフに基いて代表符号コードを抽出する第３の方法を示す図である。
【図１２】強度グラフに基いて代表符号コードを抽出する第４の方法を示す図である。
【図１３】強度グラフに基いて代表符号コードを抽出する第５の方法を示す図である。
【符号の説明】
Ａ…複素強度
ｄ１〜ｄ５…単位区間
Ｅ…実効強度
Ｆｓ…サンプリング周波数
ｆ…周波数
Ｌ…単位区間の区間長
ΔＬ…オフセット長
Ｎ…ノートナンバー
Ｎａ〜Ｎｅ…ノートナンバー
Ｎａ＊，Ｎｂ＊，Ｎｃ＊…補正により得られたノートナンバー
Ｎｐ（ｄｊ，ｉ）…単位区間ｄｊについて抽出された第ｉ番目の代表符号コード（ノートナンバー）
Ｅｐ（ｄｊ，ｉ）…代表符号コードＮｐ（ｄｊ，ｉ）の実効強度
Ｔ１〜Ｔ８…トラック
ｔ１〜ｔ６…時刻
【図１】
0003795201.tif 000002
【図２】
0003795201.tif 000003
【図３】
0003795201.tif 000004
【図４】
0003795201.tif 000005
【図５】
0003795201.tif 000006
【図６】
0003795201.tif 000007
【図７】
0003795201.tif 000008
【図８】
0003795201.tif 000009
【図９】
0003795201.tif 000010
【図１０】
0003795201.tif 000011
【図１１】
0003795201.tif 000012
【図１２】
0003795201.tif 000013
【図１３】
0003795201.tif 000014