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