(57)【特許請求の範囲】
【請求項１】
音響信号から複数の周波数に対する強度情報を出力するための周波数解析方法であって、
解析すべき周波数を標準周波数として設定すると共に、各標準周波数に対応する周期関数を標準周期関数として準備する標準周期関数準備段階と、
前記各標準周波数に対応する相関値を格納するための相関配列、および前記各標準周波数に対応する強度値を格納するための強度配列を準備するための配列準備段階と、
与えられた音響信号の時間軸上に複数の単位区間を設定し、各単位区間ごとの音響信号を区間信号として抽出する区間信号抽出段階と、
前記区間信号に対して、前記複数の標準周期関数との相関を求めることにより、各標準周波数に対応する相関値を算出し、前記相関配列に前記各相関値を格納する相関演算段階と、
前記強度配列の全ての値を０に設定する強度初期化段階と、
前記相関配列中で最大の相関値を選出し、前記強度配列中の対応する標準周波数の強度値に加算する強度更新段階と、
前記選出された最大相関値と対応する標準周期関数の積で生成される含有信号を前記区間信号から減じることにより差分信号を算出し、当該差分信号を新たな区間信号とすることにより前記区間信号を更新する区間信号更新段階と、
前記区間信号と前記含有信号の構成要素となった標準周期関数との相関値を算出し、算出された相関値を対応する標準周波数の相関値として更新した後、当該更新された相関配列中で最大の相関値に対応する標準周期関数を選出し、前記区間信号と当該標準周期関数との相関値を対応する標準周波数の相関値として更新する相関更新段階と、
前記強度更新段階、前記区間信号更新段階、前記相関更新段階を繰り返し実行することにより得られる強度配列を、当該単位区間における全標準周波数各々に対応する強度値として決定する強度配列決定段階と、
前記強度配列の決定を、全単位区間に対して行なうことにより、前記音響信号の全単位区間に対する強度配列を得るものであり、
前記相関演算段階が、前記区間信号に対して、各標準周波数に対応する相関値を算出した後、前記相関値が前記相関配列に格納された各標準周波数について、前記標準周波数に隣接する隣接標準周波数と対応する隣接相関値との積により得られる隣接含有信号を前記区間信号から減じた差分信号を算出し、当該差分信号と前記標準周波数との相関値を算出し、当該相関値と前記標準周波数に対する元の相関値との差が所定の値より大きい場合、相関配列中の前記標準周波数に対応する相関値を０とすることを特徴とする周波数解析方法。
【請求項２】
音響信号から複数の周波数に対する強度情報を出力するための周波数解析方法であって、
解析すべき周波数を標準周波数として設定すると共に、各標準周波数に対応する周期関数を標準周期関数として準備する標準周期関数準備段階と、
前記各標準周波数に対応する相関値を格納するための相関配列、および前記各標準周波数に対応する強度値を格納するための強度配列を準備するための配列準備段階と、
与えられた音響信号の時間軸上に複数の単位区間を設定し、各単位区間ごとの音響信号を区間信号として抽出する区間信号抽出段階と、
前記区間信号に対して、前記複数の標準周期関数との相関を求めることにより、各標準周波数に対応する相関値を算出し、前記相関配列に前記各相関値を格納する相関演算段階と、
前記強度配列の全ての値を０に設定する強度初期化段階と、
前記相関配列中で最大の相関値を選出し、前記強度配列中の対応する標準周波数の強度値に加算する強度更新段階と、
前記選出された最大相関値と対応する標準周期関数の積で生成される含有信号を前記区間信号から減じることにより差分信号を算出し、当該差分信号を新たな区間信号とすることにより前記区間信号を更新する区間信号更新段階と、
前記区間信号と前記含有信号の構成要素となった標準周期関数との相関値を算出し、算出された相関値を対応する標準周波数の相関値として更新した後、当該更新された相関配列中で最大の相関値に対応する標準周期関数を選出し、前記区間信号と当該標準周期関数との相関値を対応する標準周波数の相関値として更新する相関更新段階と、
前記強度更新段階、前記区間信号更新段階、前記相関更新段階を繰り返し実行することにより得られる強度配列を、当該単位区間における全標準周波数各々に対応する強度値として決定する強度配列決定段階と、
前記強度配列の決定を、全単位区間に対して行なうことにより、前記音響信号の全単位区間に対する強度配列を得るものであり、
前記相関演算段階が、前記区間信号に対して、各標準周波数に対応する相関値を算出した後、前記相関値が前記相関配列に格納された各標準周波数について、前記標準周波数と対応する相関値との積により得られる含有信号を前記区間信号から減じた差分信号を算出し、当該差分信号と前記標準周波数に隣接する隣接標準周波数を有する隣接周期関数との相関値を算出し、当該相関値と隣接標準周波数に対する元の相関値との差が所定の値より小さい場合、相関配列中の前記標準周波数に対応する相関値を０とすることを特徴とする周波数解析方法。
【請求項３】
音響信号から複数の周波数に対する強度情報を出力するための周波数解析方法であって、
解析すべき周波数を標準周波数として設定すると共に、各標準周波数に対応する周期関数を標準周期関数として準備する標準周期関数準備段階と、
前記各標準周波数に対応する相関値を格納するための相関配列、および前記各標準周波数に対応する強度値を格納するための強度配列を準備するための配列準備段階と、
与えられた音響信号の時間軸上に複数の単位区間を設定し、各単位区間ごとの音響信号を区間信号として抽出する区間信号抽出段階と、
前記区間信号に対して、前記複数の標準周期関数との相関を求めることにより、各標準周波数に対応する相関値を算出し、前記相関配列に前記各相関値を格納する相関演算段階と、
前記強度配列の全ての値を０に設定する強度初期化段階と、
前記相関配列中で最大の相関値を選出し、前記強度配列中の対応する標準周波数の強度値に加算する強度更新段階と、
前記選出された最大相関値と対応する標準周期関数の積で生成される含有信号を前記区間信号から減じることにより差分信号を算出し、当該差分信号を新たな区間信号とすることにより前記区間信号を更新する区間信号更新段階と、
前記区間信号と前記含有信号の構成要素となった標準周期関数との相関値を算出し、算出された相関値を対応する標準周波数の相関値として更新した後、当該更新された相関配列中で最大の相関値に対応する標準周期関数を選出し、前記区間信号と当該標準周期関数との相関値を対応する標準周波数の相関値として更新する相関更新段階と、
前記強度更新段階、前記区間信号更新段階、前記相関更新段階を繰り返し実行することにより得られる強度配列を、当該単位区間における全標準周波数各々に対応する強度値として決定する強度配列決定段階と、
前記強度配列の決定を、全単位区間に対して行なうことにより、前記音響信号の全単位区間に対する強度配列を得るものであり、
前記相関演算段階が、各標準周波数間に、狭い間隔で所定数定義された微細周波数を設定し、前記相関値が前記相関配列に格納された各標準周波数について、各微細周波数と前記区間信号との微細相関値を算出し、前記標準周波数に隣接する隣接標準周波数よりも前記標準周波数に近い標準周波数範囲に位置する前記複数の微細周波数の内、前記相関値が最大のものを前記標準周波数の相関値とし、前記相関値に対応する微細周波数が前記標準周波数範囲の両端に近い場合に、相関配列中の前記標準周波数の相関値を０とすることを特徴とする周波数解析方法。
【請求項４】
前記強度配列決定段階で決定された強度配列の中から強度値が高い標準周波数を所定数選出し、前記選出された標準周波数に対応する音の高さ情報と、強度値に対応する音の強さ情報と、各単位区間の開始点に対応する音の発音開始時刻と、各単位区間の終了点に対応する音の発音終了時刻の４つの情報からなる符号データを作成する符号化段階をさらに有することを特徴とする請求項１〜請求項３のいずれかに記載の周波数解析方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、放送メディア（ラジオ、テレビ）、通信メディア（ＣＳ映像・音声配信、インターネット音楽配信、通信カラオケ）、パッケージメディア（ＣＤ、ＭＤ、カセット、ビデオ、ＬＤ、ＣＤ−ＲＯＭ、ゲームカセット、携帯音楽プレーヤ向け固体メモリ媒体）などで提供する各種オーディオコンテンツの制作、並びに、専用携帯音楽プレーヤ、携帯電話・ＰＨＳ・ポケベルなどに向けたボーカルを含む音楽コンテンツ、歌舞伎・能・読経・詩歌など文芸作品の音声素材または語学教育音声教材のＭＩＤＩ伝送に利用するのに好適な音響信号の符号化技術に関する。
【０００２】
【従来の技術】
音響信号に代表される時系列信号には、その構成要素として複数の周期信号が含まれている。このため、与えられた時系列信号にどのような周期信号が含まれているかを解析する手法は、古くから知られている。例えば、フーリエ解析は、与えられた時系列信号に含まれる周波数成分を解析するための方法として広く利用されている。
【０００３】
このような時系列信号の解析方法を利用すれば、音響信号を符号化することも可能である。コンピュータの普及により、原音となるアナログ音響信号を所定のサンプリング周波数でサンプリングし、各サンプリング時の信号強度を量子化してデジタルデータとして取り込むことが容易にできるようになってきており、こうして取り込んだデジタルデータに対してフーリエ解析などの手法を適用し、原音信号に含まれていた周波数成分を抽出すれば、各周波数成分を示す符号によって原音信号の符号化が可能になる。
【０００４】
一方、電子楽器による楽器音を符号化しようという発想から生まれたＭＩＤＩ（Musical Instrument Digital Interface）規格も、パーソナルコンピュータの普及とともに盛んに利用されるようになってきている。このＭＩＤＩ規格による符号データ（以下、ＭＩＤＩデータという）は、基本的には、楽器のどの鍵盤キーを、どの程度の強さで弾いたか、という楽器演奏の操作を記述したデータであり、このＭＩＤＩデータ自身には、実際の音の波形は含まれていない。そのため、実際の音を再生する場合には、楽器音の波形を記憶したＭＩＤＩ音源が別途必要になるが、その符号化効率の高さが注目を集めており、ＭＩＤＩ規格による符号化および復号化の技術は、現在、パーソナルコンピュータを用いて楽器演奏、楽器練習、作曲などを行うソフトウェアに広く採り入れられている。
【０００５】
そこで、音響信号に代表される時系列信号に対して、所定の手法で解析を行うことにより、その構成要素となる周期信号を抽出し、抽出した周期信号をＭＩＤＩデータを用いて符号化しようとする提案がなされている。例えば、特開平１０−２４７０９９号公報、特開平１１−７３１９９号公報、特開平１１−７３２００号公報、特開平１１−９５７５３号公報、特開２０００−９９００９号公報、特開２０００−９９０９２号公報、特開２０００−９９０９３号公報、特開２０００−２６１３２２号公報、特願平１１−１７７８７５号明細書、特願平１１−３２９２９７号明細書、特願２０００−６８５２１号明細書には、任意の時系列信号について、構成要素となる周波数を解析し、その解析結果からＭＩＤＩデータを作成することができる種々の方法が提案されている。
【０００６】
【発明が解決しようとする課題】
上記各公報または明細書において提案してきたＭＩＤＩ符号化方式により、演奏録音等から得られる音響信号の効率的な符号化が可能になった。特に、特開２０００−２６１３２２号公報に記載の符号化方法では、一般化調和解析を用いることにより、それまでの短時間フーリエ変換を用いた手法に比較して、周波数分解能を著しく向上させることに成功した。この一般化調和解析による手法は、短時間フーリエ変換で計算上発生する擬似周波数成分を抑圧する効果がある。さらに、特願２０００−６８５２１号明細書においては、短時間フーリエ変換、一般化調和解析双方の結果を比較することにより真の周波数成分を抽出する方法を提案している。
【０００７】
上記先願発明における一般化調和解析を利用した符号化方法は、与えられた音響信号から相関が最大となる標準周波数の含有信号成分を１つづつ削除していくことにより、原音響信号を近似する含有信号成分の集合を決定し、各含有信号に対応する符号データの集合により、原音響信号を表現するものである。上記先願発明においては、解析対象となる音響信号から含有信号成分を削除した後、当該含有成分が有する標準周波数は、次回以降の含有信号成分として抽出する対象から外されるため、既に抽出された含有信号成分と同一周波数である含有信号成分については、本来抽出すべきものであっても、抽出されなかった。このような状態で符号化を行なうと、本来の演奏からは、音程が数半音程度ずれてしまうこともある。
【０００８】
上記のような点に鑑み、本発明は、演奏録音等から得られる音響信号を正確に再現することが可能な周波数解析方法および音響信号の符号化方法を提供することを課題とする。
【０００９】
【課題を解決するための手段】
上記課題を解決するため、本発明では、解析すべき周波数を標準周波数として設定すると共に、各標準周波数に対応する周期関数を標準周期関数として準備し、各標準周波数に対応する相関値を格納するための相関配列、および前記各標準周波数に対応する強度値を格納するための強度配列を準備し、与えられた音響信号の時間軸上に複数の単位区間を設定し、各単位区間ごとの音響信号を区間信号として抽出し、抽出された区間信号に対して、複数の標準周期関数との相関を求めることにより、各標準周波数に対応する相関値を算出し、相関配列に各相関値を格納し、強度配列の全ての値を０に設定し、相関配列中で最大の相関値を選出し、強度配列中の対応する標準周波数の強度値に加算し、選出された最大相関値と対応する標準周期関数の積で生成される含有信号を前記区間信号から減じることにより差分信号を算出し、算出された差分信号を新たな区間信号とすることにより区間信号を更新し、区間信号と含有信号の構成要素となった標準周期関数との相関値を算出し、算出された相関値を対応する標準周波数の相関値として更新した後、当該更新された相関配列中で最大の相関値に対応する標準周期関数を選出し、区間信号と当該標準周期関数との相関値を対応する標準周波数の相関値として更新し、前記強度値の加算、前記区間信号の更新、前記相関値の更新を繰り返し実行することにより得られる強度配列を、その単位区間における全標準周波数各々に対応する強度値として決定する。さらに、本発明ではこのような強度配列の決定を、全単位区間に対して行なうことにより、音響信号の全単位区間に対する強度配列を得るようにしたことを特徴とする。本発明によれば、各標準周波数に対応した相関値、強度値を格納する相関配列、強度配列を用意しておき、相関値が最大となった標準周波数について、その相関値をそのまま、その標準周波数の強度情報とはせずに、強度値として強度配列に格納しておき、再び同一の標準周波数の相関値が最大となった場合に、その相関値を強度値として加算するようにしたので、音響信号における各周波数成分の強度情報をより正確に求めることが可能となり、複数の楽器音が混在するような音響信号に対しても、原音により忠実な再現を行なうことが可能となる。
【００１０】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００１１】
（周波数解析、音響信号符号化方法の基本原理）
はじめに、本発明に係る周波数解析方法、音響信号の符号化方法の基本原理を述べておく。この基本原理は、前掲の各公報あるいは明細書に開示されているので、ここではその概要のみを簡単に述べることにする。
【００１２】
図１（ａ）に示すように、時系列信号としてアナログ音響信号が与えられたものとする。図１の例では、横軸に時間ｔ、縦軸に振幅（強度）をとって、この音響信号を示している。ここでは、まずこのアナログ音響信号を、デジタルの音響データとして取り込む処理を行う。これは、従来の一般的なＰＣＭの手法を用い、所定のサンプリング周波数でこのアナログ音響信号をサンプリングし、振幅を所定の量子化ビット数を用いてデジタルデータに変換する処理を行えば良い。ここでは、説明の便宜上、ＰＣＭの手法でデジタル化した音響データの波形も図１（ａ）のアナログ音響信号と同一の波形で示すことにする。
【００１３】
続いて、この解析対象となる音響信号の時間軸上に、複数の単位区間を設定する。図１（ａ）に示す例では、時間軸ｔ上に等間隔に６つの時刻ｔ１〜ｔ６が定義され、これら各時刻を始点および終点とする５つの単位区間ｄ１〜ｄ５が設定されている。図１の例では、全て同一の区間長をもった単位区間が設定されているが、個々の単位区間ごとに区間長を変えるようにしてもかまわない。あるいは、隣接する単位区間が時間軸上で部分的に重なり合うような区間設定を行ってもかまわない。
【００１４】
こうして単位区間が設定されたら、各単位区間ごとの音響信号（以下、区間信号と呼ぶことにする）について、それぞれ代表周波数を選出する。各区間信号には、通常、様々な周波数成分が含まれているが、例えば、その中で成分の強度割合の大きな周波数成分を代表周波数として選出すれば良い。ここで、代表周波数とはいわゆる基本周波数が一般的であるが、音声のフォルマント周波数などの倍音周波数や、ノイズ音源のピーク周波数も代表周波数として扱うことがある。代表周波数は１つだけ選出しても良いが、音響信号によっては複数の代表周波数を選出した方が、より精度の高い符号化が可能になる。図１（ｂ）には、個々の単位区間ごとにそれぞれ３つの代表周波数を選出し、１つの代表周波数を１つの代表符号（図では便宜上、音符として示してある）として符号化した例が示されている。ここでは、代表符号（音符）を収容するために３つのトラックＴ１，Ｔ２，Ｔ３が設けられているが、これは個々の単位区間ごとに選出された３つずつの代表符号を、それぞれ異なるトラックに収容するためである。
【００１５】
例えば、単位区間ｄ１について選出された代表符号ｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３）は、それぞれトラックＴ１，Ｔ２，Ｔ３に収容されている。ここで、各符号ｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３）は、ＭＩＤＩ符号におけるノートナンバーを示す符号である。ＭＩＤＩ符号におけるノートナンバーは、０〜１２７までの１２８通りの値をとり、それぞれピアノの鍵盤の１つのキーを示すことになる。具体的には、例えば、代表周波数として４４０Ｈｚが選出された場合、この周波数はノートナンバーｎ＝６９（ピアノの鍵盤中央の「ラ音（Ａ３音）」に対応）に相当するので、代表符号としては、ｎ＝６９が選出されることになる。もっとも、図１（ｂ）は、上述の方法によって得られる代表符号を音符の形式で示した概念図であり、実際には、各音符にはそれぞれ強度に関するデータも付加されている。例えば、トラックＴ１には、ノートナンバーｎ（ｄ１，１），ｎ（ｄ２，１）・・・なる音高を示すデータとともに、ｅ（ｄ１，１），ｅ（ｄ２，１）・・・なる強度を示すデータが収容されることになる。この強度を示すデータは、各代表周波数の成分が、元の区間信号にどの程度の度合いで含まれていたかによって決定される。具体的には、各代表周波数をもった周期関数の区間信号に対する相関値に基づいて強度を示すデータが決定されることになる。また、図１（ｂ）に示す概念図では、音符の横方向の位置によって、個々の単位区間の時間軸上での位置が示されているが、実際には、この時間軸上での位置を正確に数値として示すデータが各音符に付加されていることになる。
【００１６】
音響信号を符号化する形式としては、必ずしもＭＩＤＩ形式を採用する必要はないが、この種の符号化形式としてはＭＩＤＩ形式が最も普及しているため、実用上はＭＩＤＩ形式の符号データを用いるのが好ましい。ＭＩＤＩ形式では、「ノートオン」データもしくは「ノートオフ」データが、「デルタタイム」データを介在させながら存在する。「ノートオン」データは、特定のノートナンバーＮとベロシティーＶを指定して特定の音の演奏開始を指示するデータであり、「ノートオフ」データは、特定のノートナンバーＮとベロシティーＶを指定して特定の音の演奏終了を指示するデータである。また、「デルタタイム」データは、所定の時間間隔を示すデータである。ベロシティーＶは、例えば、ピアノの鍵盤などを押し下げる速度（ノートオン時のベロシティー）および鍵盤から指を離す速度（ノートオフ時のベロシティー）を示すパラメータであり、特定の音の演奏開始操作もしくは演奏終了操作の強さを示すことになる。
【００１７】
前述の方法では、第ｉ番目の単位区間ｄｉについて、代表符号としてＪ個のノートナンバーｎ（ｄｉ，１），ｎ（ｄｉ，２），・・・，ｎ（ｄｉ，Ｊ）が得られ、このそれぞれについて強度ｅ（ｄｉ，１），ｅ（ｄｉ，２），・・・，ｅ（ｄｉ，Ｊ）が得られる。そこで、次のような手法により、ＭＩＤＩ形式の符号データを作成することができる。まず、「ノートオン」データもしくは「ノートオフ」データの中で記述するノートナンバーＮとしては、得られたノートナンバーｎ（ｄｉ，１），ｎ（ｄｉ，２），・・・，ｎ（ｄｉ，Ｊ）をそのまま用いれば良い。一方、「ノートオン」データもしくは「ノートオフ」データの中で記述するベロシティーＶとしては、得られた強度ｅ（ｄｉ，１），ｅ（ｄｉ，２），・・・，ｅ（ｄｉ，Ｊ）を所定の方法で規格化した値を用いれば良い。また、「デルタタイム」データは、各単位区間の長さに応じて設定すれば良い。
【００１８】
（周期関数との相関を求める具体的な方法）
上述した基本原理の基づく方法では、区間信号に対して、１つまたは複数の代表周波数が選出され、この代表周波数をもった周期信号によって、当該区間信号が表現されることになる。ここで、選出される代表周波数は、文字どおり、当該単位区間内の信号成分を代表する周波数である。この代表周波数を選出する具体的な方法には、後述するように、短時間フーリエ変換を利用する方法と、一般化調和解析の手法を利用する方法とがある。いずれの方法も、基本的な考え方は同じであり、あらかじめ周波数の異なる複数の周期関数を用意しておき、これら複数の周期関数の中から、当該単位区間内の区間信号に対する相関が高い周期関数を見つけ出し、この相関の高い周期関数の周波数を代表周波数として選出する、という手法を採ることになる。すなわち、代表周波数を選出する際には、あらかじめ用意された複数の周期関数と、単位区間内の区間信号との相関を求める演算を行うことになる。そこで、ここでは、周期関数との相関を求める具体的な方法を述べておく。
【００１９】
複数の周期関数として、図２に示すような三角関数が用意されているものとする。これらの三角関数は、同一周波数をもった正弦関数と余弦関数との対から構成されており、１２８通りの標準周波数ｆ（０）〜ｆ（１２７）のそれぞれについて、正弦関数および余弦関数の対が定義されていることになる。ここでは、同一の周波数をもった正弦関数および余弦関数からなる一対の関数を、当該周波数についての周期関数として定義することにする。すなわち、ある特定の周波数についての周期関数は、一対の正弦関数および余弦関数によって構成されることになる。このように、一対の正弦関数と余弦関数とにより周期関数を定義するのは、信号に対する周期関数の相関値を求める際に、相関値が位相の影響を受ける事を考慮するためである。なお、図２に示す各三角関数内の変数Ｆおよびｋは、区間信号Ｘについてのサンプリング周波数Ｆおよびサンプル番号ｋに相当する変数である。例えば、周波数ｆ（０）についての正弦波は、ｓｉｎ（２πｆ（０）ｋ／Ｆ）で示され、任意のサンプル番号ｋを与えると、区間信号を構成する第ｋ番目のサンプルと同一時間位置における周期関数の振幅値が得られる。
【００２０】
ここでは、１２８通りの標準周波数ｆ（０）〜ｆ（１２７）を図３に示すような式で定義した例を示すことにする。すなわち、第ｎ番目（０≦ｎ≦１２７）の標準周波数ｆ（ｎ）は、以下の（数式１）で定義されることになる。
【００２１】
（数式１）
ｆ（ｎ）＝４４０×２γ(n)
γ（ｎ）＝（ｎ−６９）／１２
【００２２】
このような式によって標準周波数を定義しておくと、最終的にＭＩＤＩデータを用いた符号化を行う際に便利である。なぜなら、このような定義によって設定される１２８通りの標準周波数ｆ（０）〜ｆ（１２７）は、等比級数をなす周波数値をとることになり、ＭＩＤＩデータで利用されるノートナンバーに対応した周波数になるからである。したがって、図２に示す１２８通りの標準周波数ｆ（０）〜ｆ（１２７）は、対数尺度で示した周波数軸上に等間隔（ＭＩＤＩにおける半音単位）に設定した周波数ということになる。このため、本願では、図に掲載するグラフにおけるノートナンバー軸を、いずれも対数尺度で示すことにする。
【００２３】
続いて、任意の区間の区間信号に対する各周期関数の相関の求め方について、具体的な説明を行う。例えば、図４に示すように、ある単位区間ｄについて区間信号Ｘが与えられていたとする。ここでは、区間長Ｌをもった単位区間ｄについて、サンプリング周波数Ｆでサンプリングが行なわれており、全部でｗ個のサンプル値が得られているものとし、サンプル番号を図示のように、０，１，２，３，・・・，ｋ，・・・，ｗ−２，ｗ−１とする（白丸で示す第ｗ番目のサンプルは、右に隣接する次の単位区間の先頭に含まれるサンプルとする）。この場合、任意のサンプル番号ｋについては、Ｘ（ｋ）なる振幅値がデジタルデータとして与えられていることになる。短時間フーリエ変換においては、Ｘ（ｋ）に対して各サンプルごとに中央の重みが１に近く、両端の重みが０に近くなるような窓関数Ｗ（ｋ）を乗ずることが通常である。すなわち、Ｘ（ｋ）×Ｗ（ｋ）をＸ（ｋ）と扱って以下のような相関計算を行うもので、窓関数の形状としては余弦波形状のハミング窓が一般に用いられている。ここで、ｗは以下の記述においても定数のような記載をしているが、一般にはｎの値に応じて変化させ、区間長Ｌを超えない範囲で最大となるＦ／ｆ（ｎ）の整数倍の値に設定することが望ましい。
【００２４】
このような区間信号Ｘに対して、第ｎ番目の標準周波数ｆ（ｎ）をもった正弦関数Ｒｎとの相関値を求める原理を示す。両者の相関値Ａ（ｎ）は、図５の第１の演算式によって定義することができる。ここで、Ｘ（ｋ）は、図４に示すように、区間信号Ｘにおけるサンプル番号ｋの振幅値であり、ｓｉｎ（２πｆ（ｎ）ｋ／Ｆ）は、時間軸上での同位置における正弦関数Ｒｎの振幅値である。この第１の演算式は、単位区間ｄ内の全サンプル番号ｋ＝０〜ｗ−１の次元について、それぞれ区間信号Ｘの振幅値と正弦関数Ｒｎの振幅ベクトルの内積を求める式ということができる。
【００２５】
同様に、図５の第２の演算式は、区間信号Ｘと、第ｎ番目の標準周波数ｆ（ｎ）をもった余弦関数との相関値を求める式であり、両者の相関値はＢ（ｎ）で与えられる。なお、相関値Ａ（ｎ）を求めるための第１の演算式も、相関値Ｂ（ｎ）を求めるための第２の演算式も、最終的に２／ｗが乗ぜられているが、これは相関値を規格化するためのものであり、前述のとおりｗはｎに依存して変化させるのが一般的であるため、この係数もｎに依存する変数である。
【００２６】
区間信号Ｘと標準周波数ｆ（ｎ）をもった標準周期関数との相関実効値は、図５の第３の演算式に示すように、正弦関数との相関値Ａ（ｎ）と余弦関数との相関値Ｂ（ｎ）との二乗和平方根値Ｅ（ｎ）によって示すことができる。この相関実効値の大きな標準周期関数の周波数を代表周波数として選出すれば、この代表周波数を用いて区間信号Ｘを符号化することができる。
【００２７】
すなわち、この相関値Ｅ（ｎ）が所定の基準以上の大きさとなる１つまたは複数の標準周波数を代表周波数として選出すれば良い。なお、ここで「相関値Ｅ（ｎ）が所定の基準以上の大きさとなる」という選出条件は、例えば、何らかの閾値を設定しておき、相関値Ｅ（ｎ）がこの閾値を超えるような標準周波数ｆ（ｎ）をすべて代表周波数として選出する、という絶対的な選出条件を設定しても良いが、例えば、相関値Ｅ（ｎ）の大きさの順にＱ番目までを選出する、というような相対的な選出条件を設定しても良い。
【００２８】
（一般化調和解析の手法）
ここでは、本発明に係る音響信号の符号化を行う際に有用な一般化調和解析の手法について説明する。既に説明したように、音響信号を符号化する場合、個々の単位区間内の区間信号について、相関値の高いいくつかの代表周波数を選出することになる。一般化調和解析は、より高い精度で代表周波数の選出を可能にする手法であり、その基本原理は次の通りである。
【００２９】
図６（ａ）に示すような単位区間ｄについて、信号Ｓ（ｊ）なるものが存在するとする。ここで、ｊは後述するように、繰り返し処理のためのパラメータである（ｊ＝１〜Ｊ）。まず、この信号Ｓ（ｊ）に対して、図２に示すような１２８通りの周期関数すべてについての相関値を求める。そして、最大の相関値が得られた１つの周期関数の周波数を代表周波数として選出し、当該代表周波数をもった周期関数を要素関数として抽出する。続いて、図６（ｂ）に示すような含有信号Ｇ（ｊ）を定義する。この含有信号Ｇ（ｊ）は、抽出された要素関数に、その振幅として、当該要素関数の信号Ｓ（ｊ）に対する相関値を乗じることにより得られる信号である。例えば、周期関数として図２に示すように、一対の正弦関数と余弦関数とを用い、周波数ｆ（ｎ）が代表周波数として選出された場合、振幅Ａ（ｎ）をもった正弦関数Ａ（ｎ）ｓｉｎ（２πｆ（ｎ）ｋ／Ｆ）と、振幅Ｂ（ｎ）をもった余弦関数Ｂ（ｎ）ｃｏｓ（２πｆ（ｎ）ｋ／Ｆ）との和からなる信号が含有信号Ｇ（ｊ）ということになる（図６（ｂ）では、図示の便宜上、一方の関数しか示していない）。ここで、Ａ（ｎ），Ｂ（ｎ）は、図５の式で得られる規格化された相関値であるから、結局、含有信号Ｇ（ｊ）は、信号Ｓ（ｊ）内に含まれている周波数ｆ（ｎ）をもった信号成分ということができる。
【００３０】
こうして、含有信号Ｇ（ｊ）が求まったら、信号Ｓ（ｊ）から含有信号Ｇ（ｊ）を減じることにより、差分信号Ｓ（ｊ＋１）を求める。図６（ｃ）は、このようにして求まった差分信号Ｓ（ｊ＋１）を示している。この差分信号Ｓ（ｊ＋１）は、もとの信号Ｓ（ｊ）の中から、周波数ｆ（ｎ）をもった信号成分を取り去った残りの信号成分からなる信号ということができる。そこで、パラメータｊを１だけ増加させることにより、この差分信号Ｓ（ｊ＋１）を新たな信号Ｓ（ｊ）として取り扱い、同様の処理を、パラメータｊをｊ＝１〜Ｊまで１ずつ増やしながらＪ回繰り返し実行すれば、Ｊ個の代表周波数を選出することができる。
【００３１】
このような相関計算の結果として出力されるＪ個の含有信号Ｇ（１）〜Ｇ（Ｊ）は、もとの区間信号Ｘの構成要素となる信号であり、もとの区間信号Ｘを符号化する場合には、これらＪ個の含有信号の周波数を示す情報および振幅（強度）を示す情報を符号データとして用いるようにすれば良い。尚、Ｊは代表周波数の個数であると説明してきたが、標準周波数ｆ（ｎ）の個数と同一すなわちＪ＝１２８であってもよく、周波数スペクトルを求める目的においてはそのように行うのが通例である。
【００３２】
（本発明に係る周波数解析方法および音響信号の符号化方法）
上述のように一般化調和解析では、Ｊ個の含有信号Ｇ（１）〜Ｇ（Ｊ）を符号データとして表現することにより、音響信号の符号化を行なっている。この際、含有信号Ｇ（ｊ）の構成要素となる要素関数、すなわち周期関数は、差分信号Ｓ（ｊ＋１）以降の差分信号との相関値を求める対象から外される。これは、その周波数を有する信号成分は１つだけであるとみなしているためである。
【００３３】
ところが、原音響信号に複数の楽器音が混在する場合、同一周波数の信号成分が複数存在することがある。このような音響信号に対して従来の一般化調和解析の手法を用いて符号化を行なうと、同一周波数については、最大の楽器音に対応する強度情報だけが得られることになり、他の楽器音についての強度情報は無視されることとなる。そこで、本発明では、含有信号Ｇ（ｊ）を構成する周期関数を、差分信号Ｓ（ｊ＋１）以降についても、相関値算出の対象として残すことにより、同一周波数について正確な強度情報を得るようにしている。
【００３４】
続いて、本発明に係る周波数解析方法を図７のフローチャートを用いて具体的に説明する。まず、標準周波数を有する標準周期関数の準備を行なう（ステップＳ１）。本実施形態では、図２に示したように１２８個の標準周期関数を用意する。続いて、準備された標準周期関数と同数の値を格納可能な配列を用意する（ステップＳ２）。本実施形態では、１２８個の標準周期関数に対応するため、配列も各標準周波数に対応した１２８個分の数値が格納可能となっている。このような配列をここでは２つ用意する。１つは相関値を格納するための相関配列、もう１つは強度値を格納する強度配列である。今までの一般化調和解析を利用した手法では、算出された相関値のみを用いて符号データの強度情報としたが、本発明では、同一標準周波数について複数回算出される相関値を強度値として加算し、最終的にこの強度値を符号データの強度情報とすることに特徴がある。
【００３５】
標準周期関数、相関配列、強度配列が準備されたら、図１（ａ）に示したように、時系列信号に対して単位区間を設定して、各単位区間における時系列信号を区間信号として抽出する（ステップＳ３）。次に、区間信号に対して標準周期関数との相関を求め、各相関値を相関配列の各標準周波数に対応する個所に格納する（ステップＳ４）。続いて、強度配列の全ての値を０に設定して初期化する（ステップＳ５）。この強度配列の初期化は各単位区間に対して１回だけ行なわれるものである。続いて、相関配列中の１２８個の相関値の中で最大となる相関値を選出する。さらに選出された相関値は、強度配列中の対応する標準周波数の強度値として加算される（ステップＳ６）。例えば、図８（ａ）に示すように相関配列の中でノートナンバー１００（標準周波数ｆ（１００））に対応する相関値が「７５」で最大であったとする。すると、この相関値「７５」は、強度配列中のノートナンバー１００に対応する強度値「０」に加算されて格納される。この時点の強度配列の状態を図８（ｂ）に示す。
【００３６】
続いて、標準周波数ｆ（１００）に対応する標準周期関数と、標準周波数ｆ（１００）に対応する相関値の積で生成される含有信号Ｇ（１）（この時点ではｊ＝１）を区間信号Ｓ（１）（＝区間信号Ｘ）から減じることにより、差分信号Ｓ（２）を算出する。この手順は前述の図６を用いて説明した手順と同様である。
この差分信号Ｓ（２）は新たな区間信号Ｓ（２）として定義されることになる（ステップＳ７）。
【００３７】
次に、区間信号Ｓ（２）と、含有信号Ｇ（１）の構成要素である標準周波数ｆ（１００）の標準周期関数との相関値を算出し、相関配列中の、標準周波数ｆ（１００）に対応する相関値を更新する（ステップＳ８）。これは、区間信号Ｓ（２）は、区間信号Ｓ（１）との相関が高い信号成分である含有信号Ｇ（１）が減算されたものであるため、含有信号Ｇ（１）の構成要素である標準周波数ｆ（１００）に関する相関値が大きく変化しているために行なわれる。本来は、区間信号が更新されているため、区間信号Ｓ（２）と１２８個全ての標準周期関数との相関値を算出すべきであるが、大きく変化しているのは、減算された含有信号Ｇ（１）の構成要素である標準周波数ｆ（１００）に対応する成分であるので、演算処理の負荷を軽減するため、１つの標準周波数に対してのみ行なう。この結果、相関配列は、図８（ｃ）に示すような状態となったものとする。図８（ｃ）においては、標準周波数ｆ（１００）に対応する相関値が「１０」となり、大幅に減少していることがわかる。
【００３８】
続いて、更新された相関配列の中で最大の相関値「４５」をとる標準周波数ｆ（５０）の標準周期関数と、区間信号Ｓ（２）の相関値を算出し、算出された相関値を相関配列中の、標準周波数ｆ（５０）の相関値として格納する。上述のように、区間信号Ｓ（２）と１２８個全ての標準周期関数との相関値を算出して、相関配列中の相関値１２８個全てを更新しておけば、ここでは新たに相関値の算出をする必要はない。ところが、区間信号Ｓ（２）は、区間信号Ｓ（１）から標準周波数ｆ（１００）のみを有する含有信号Ｇ（１）を減算したものであるため、他の標準周波数に関する成分については、大きな変化はない。そこで、演算量の削減のため、現在の相関配列の中で最大値をとる標準周期関数を、区間信号Ｓ（２）についても相関が最大であるとみなす。ただし、正確な相関値を得るために、当該標準周期関数と区間信号Ｓ（２）の相関値を演算するのである。この結果、相関配列は、図８（ｄ）に示すような状態となる。図８（ｄ）においては、標準周波数ｆ（５０）に対応する相関値が「４７」となり、若干変化していることがわかる。
【００３９】
このようにしてステップＳ７の処理により新たに得られた区間信号Ｓ（２）と、ステップＳ８の処理により更新された相関配列を用いて、ステップＳ６に戻り、上記区間信号Ｓ（１）に対して行なったのと同様な処理を行う。相関配列が図８（ｄ）に示したような状態である場合には、図８（ｅ）に示すように強度配列の標準周波数ｆ（５０）に対応する強度値に「４７」が加算されることになる。
【００４０】
ステップＳ６〜ステップＳ８の処理を設定されたパラメータｊ（ｊ＝１〜Ｊ）分繰り返し行なっていき、ｊ回分処理が実行された時点での強度配列に格納された強度値を出力するようにする。１つの単位区間についての処理が終了したら、時系列順に他の単位区間についても同様の処理を実行する。以上のような周波数解析を行なうことにより、同一周波数について位相違いの複数の成分を含むような時系列信号であっても、各周波数の強度をより正確に算出することが可能となる。
【００４１】
このようにして、時系列信号として音響信号を用い、周波数解析結果に基づいて符号化を行なう場合には、各単位区間について、強度配列に格納された強度値が「０」でないものについて、対応する標準周波数を「音の高さを示す情報」、各標準周波数の強度値を「音の強さを示す情報」、当該単位区間の始点を「音の発音開始時刻を示す情報」、当該単位区間の終点を「音の発音終了時刻を示す情報」として、４つの情報を含む符号データを作成すれば、当該単位区間内の区間信号Ｘを所定数の符号データにより符号化することができる。符号データとして、ＭＩＤＩデータを作成するのであれば、「音の高さを示す情報」としてノートナンバーを用い、「音の強さを示す情報」としてベロシティーを用い、「音の発音開始時刻を示す情報」としてノートオン時刻を用い、「音の発音終了時刻を示す情報」としてノートオフ時刻を用いるようにすれば良い。上記説明のように本発明に係る音響信号の符号化方法によれば、複数の楽器音が混在するような、同一周波数に位相の異なる複数の信号成分が存在する原音響信号に対して、その複数の成分を加算した強度値として音の強さを示す情報に反映させることができ、結果として原音響信号をより忠実に再現することが可能になる。
【００４２】
（相関値の適正評価法１、隣接成分からの影響）
上記ステップＳ１からステップＳ８までの処理を実行することにより、精度の高い周波数解析を行なうことが可能となるが、次に、さらに精度を高めるために得られた相関値の適正な評価法を３つ説明する。まず、ここでは、隣接する標準周波数成分から受ける影響を考慮した手法について説明する。この場合、上記ステップＳ４の相関演算段階で各標準周波数に対する相関値を求め、相関配列にセットした後、各相関値が正しいものか否かを確認する処理を行う。
【００４３】
具体的には、まず、ある標準周波数を対象標準周波数として着目し、この対象標準周波数に隣接する標準周波数を隣接標準周波数とする。例えば、対象標準周波数をｆ（３）とした場合、隣接標準周波数はｆ（４）となる。続いて、隣接標準周波数の隣接標準周期関数と、この隣接標準周波数に対応する相関値の積により得られる含有信号を、区間信号から減算することにより差分信号を算出する。
次に、算出された差分信号と、対象標準周波数を有する対象標準周期関数との相関値を算出する。続いて、この対象標準周波数について算出された相関値と、相関配列に既に格納されている対象標準周波数に対応する相関値との差を求め、この差があらかじめ設定された閾値より大きい場合、相関配列中の対象標準周波数に対応する相関値を「０」とする。一般に、多数の異なる周波数成分を有する時系列信号においては、近接する周波数成分が互いに影響し合っており、そのため、単純に周波数解析を行なうと、本来は存在していない周波数成分が検出されてしまうことがある。本実施形態では、隣接する標準周波数成分を削除した状態で、再度対象とする標準周波数成分の相関値を求め、それが隣接する標準周波数成分の削除前と大きく変化しているか否かを調べることにより、その対象とする標準周波数成分の相関値が本物であるかどうかを確認することができる。
【００４４】
（相関値の適正評価法２、隣接成分への影響）
上記の例では、隣接標準周波数成分から受ける影響を考慮して、対象となる標準周波数成分の相関値が本物であるかどうかを確認した。次に、このような手法に代えて、対象となる標準周波数成分から隣接する標準周波数成分へ与える影響を考慮して、対象となる標準周波数成分の相関値が本物であるかどうかを確認する手法について説明する。この場合も、上記ステップＳ４の相関演算段階で各標準周波数に対する相関値を求め、相関配列にセットした後、各相関値が正しいものか否かを確認する処理を行うことになる。
【００４５】
具体的には、上記の例と同様に、ある標準周波数を対象標準周波数として着目し、この対象標準周波数に隣接する標準周波数を隣接標準周波数とする。すなわち、対象標準周波数をｆ（３）とした場合、隣接標準周波数はｆ（４）となる。
続いて、対象標準周波数の対象標準周期関数と、この対象標準周波数に対応する相関値の積により得られる含有信号を、区間信号から減算することにより差分信号を算出する。次に、算出された差分信号と、隣接標準周波数を有する隣接標準周期関数との相関値を算出する。続いて、この隣接標準周波数について算出された相関値と、相関配列に既に格納されている隣接標準周波数に対応する相関値との差を求め、この差があらかじめ設定された閾値より小さい場合、相関配列中の対象標準周波数に対応する相関値を「０」とする。この手法によれば、対象とする標準周波数成分を削除した状態で、再度隣接する標準周波数成分の相関値を求め、それが対象とする標準周波数成分の削除前と大きく変化しているか否かを調べることにより、対象とする標準周波数成分の相関値が本物であるかどうかを確認することができる。
【００４６】
（相関値の適正評価法３、微細周波数の偏り）
次に、上記のような標準周波数よりもさらに狭い間隔で周波数を定義するとともに定義された周波数に対応する周期関数を用意し、これらの周期関数と区間信号との相関値を利用して精度の高い周波数解析を行なう手法について説明する。
このような狭い間隔で定義された周波数を本明細書では、微細周波数と呼び、微細周波数に対応する周期関数を微細周期関数と呼ぶことにする。微細周波数としては、隣接する標準周波数間に所定数設定される。また、微細周波数間の間隔は、標準周波数の場合と同様に等比級数となるように設定される。ここで、微細周波数を各標準周波数間に１２個設定した例を図９に示す。図９に示すように、標準周波数ｆ（ｎ）と標準周波数ｆ（ｎ＋１）の間に微細周波数ｆ（ｎ＋１／１３）〜微細周波数ｆ（ｎ＋１２／１３）の１２個が設定されている。図９中、ノートナンバーｎ＋６／１３とノートナンバーｎ＋７／１３の間の点線は、各標準周波数とみなされる微細周波数の範囲を示す。この「各標準周波数とみなされる」とは、各標準周波数に対応する相関値として相関配列に格納されることを示している。図９においては、ノートナンバーｎ＋６／１３まではノートナンバーｎの周波数範囲とみなされ、ノートナンバーｎ＋７／１３からはノートナンバーｎ＋１とみなされることを示している。
【００４７】
このような微細周波数に対して図２に示した標準周期関数と同じ形式の微細周期関数が用意され、各微細周期関数と区間信号との相関値が算出される。そして各標準周波数の範囲となる１３個（１個の標準周波数と前後６個ずつの微細周波数）の周波数の相関値のうち、最大のものがその標準周波数の相関値として相関配列に格納される。例えば、ノートナンバーｎ（標準周波数ｆ（ｎ））の相関値は、ノートナンバーｎ−６／１３からノートナンバーｎ＋６／１３までの１３個の相関値で最大のものが設定されることになる。ここで、最大の相関値を有する周波数がノートナンバーｎ−６／１３や、ノートナンバーｎ＋６／１３のように標準周波数範囲の端に位置する場合には、対象とする標準周波数と隣接する標準周波数の境界部に存在する成分である可能性もあるが、隣接する標準周波数成分の影響により対象とする標準周波数の範囲内には本来存在しない成分である可能性が高い。前者と後者を判別するためには、隣接する標準周波数の微細周波数に注目し、隣接する標準周波数が対象とする標準周波数に重なるように標準周波数範囲の端に位置している場合には前者であり、それ以外に位置する場合は後者とみなし、後者の場合には相関配列中の対応する標準周波数の相関値を「０」に設定する。前者の場合は、対象とする標準周波数成分と隣接する標準周波数成分が重複して算出されてしまうため、相関配列中の対象とする標準周波数の相関値または隣接する標準周波数の相関値を「０」に設定し、本実施形態では相関値が低い方を「０」に設定するようにしている。
【００４８】
【発明の効果】
以上、説明したように本発明によれば、解析すべき周波数を標準周波数として設定すると共に、各標準周波数に対応する周期関数を標準周期関数として準備し、各標準周波数に対応する相関値を格納するための相関配列、および前記各標準周波数に対応する強度値を格納するための強度配列を準備し、与えられた時系列信号の時間軸上に複数の単位区間を設定し、各単位区間ごとの時系列信号を区間信号として抽出し、抽出された区間信号に対して、複数の標準周期関数との相関を求めることにより、各標準周波数に対応する相関値を算出し、相関配列に各相関値を格納し、強度配列の全ての値を０に設定し、相関配列中で最大の相関値を選出し、強度配列中の対応する標準周波数の強度値に加算し、選出された最大相関値と対応する標準周期関数の積で生成される含有信号を前記区間信号から減じることにより差分信号を算出し、算出された差分信号を新たな区間信号とすることにより区間信号を更新し、区間信号と含有信号の構成要素となった標準周期関数との相関値を算出し、算出された相関値を対応する標準周波数の相関値として更新した後、当該更新された相関配列中で最大の相関値に対応する標準周期関数を選出し、区間信号と当該標準周期関数との相関値を対応する標準周波数の相関値として更新し、前記強度値の加算、前記区間信号の更新、前記相関値の更新を繰り返し実行することにより得られる強度配列を、その単位区間における全標準周波数各々に対応する強度値として決定し、このような強度配列の決定を、全単位区間に対して行なうことにより、時系列信号の全単位区間に対する強度配列を得るようにしたので、時系列信号における各周波数成分の強度情報をより正確に求めることが可能となる。特に、時系列信号として音響信号に適用した場合には、複数の楽器音が混在するような音響信号に対しても、原音により忠実な再現を行なうことが可能となるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の音響信号の符号化方法の基本原理を示す図である。
【図２】本発明で利用される周期関数の一例を示す図である。
【図３】図２に示す各周期関数の周波数とＭＩＤＩノートナンバーｎとの関係式を示す図である。
【図４】解析対象となる信号と周期信号との相関計算の手法を示す図である。
【図５】図４に示す相関計算を行うための計算式を示す図である。
【図６】一般化調和解析の基本的な手法を示す図である。
【図７】本発明に係る周波数解析方法を示すフローチャートである。
【図８】本発明における相関配列、強度配列の変化の様子を示す図である。
【図９】各標準周波数間に１２個の微細周波数を設定した状態を示す図である。
【符号の説明】
Ａ（ｎ），Ｂ（ｎ）・・・相関値
ｄ，ｄ１〜ｄ５・・・単位区間
Ｅ（ｎ）・・・相関値
Ｇ（ｊ）・・・含有信号
ｎ，ｎ１〜ｎ６・・・ノートナンバー
Ｓ（ｊ），Ｓ（ｊ＋１）・・・差分信号
Ｘ，Ｘ（ｋ）・・・区間信号
【図１】
0004580548.tif 000002
【図２】
0004580548.tif 000003
【図３】
0004580548.tif 000004
【図４】
0004580548.tif 000005
【図５】
0004580548.tif 000006
【図６】
0004580548.tif 000007
【図７】
0004580548.tif 000008
【図８】
0004580548.tif 000009
【図９】
0004580548.tif 000010