(57)【特許請求の範囲】
【請求項１】
与えられた音響信号に対して、時間軸上に複数の単位区間を設定する区間設定段階と、
前記単位区間における音響信号と複数の周期関数との相関を求めることにより、各周期関数に対応した強度を算出し、各周期関数が有する周波数と、前記各周期関数に対応した強度と、単位区間の始点に対応する区間開始時刻と、単位区間の終点に対応する区間終了時刻で構成される単位音素データを算出する単位音素データ算出段階と、
前記単位音素データに対して、各単位区間ごとに周波数比が整数倍の関係となる他の単位音素データの強度値を加算して高周波分布度を得て、当該単位音素データとの周波数比が（１／整数）倍の関係となる他の単位音素データの強度値を加算して低周波分布度を得て、高周波分布度と低周波分布度の正負の符号を互いに異ならせて加算することにより得られた値を当該単位音素データの強度値で除することにより、各単位音素データの倍音分布度を算出する倍音分布度算出段階と、
前記単位音素データのうち、区間が連続し、周波数が同一で強度が類似するものを連結して連結音素データとし、連結音素データの属性として、周波数は構成する単位音素データのいずれかの周波数を与え、強度は構成する単位音素データの最大値を与え、開始時刻は先頭の単位音素データの区間開始時刻を与え、終了時刻は最後尾の単位音素データの区間終了時刻を与え、倍音分布度は構成する単位音素データのいずれかの倍音分布度を与えるようにする音素データ連結段階と、
前記連結処理後の音素データのうち、少なくとも倍音分布度が所定の条件を満たす音素データのみを抽出し、当該抽出した音素データの区間長に対応するデルタタイム情報、周波数に対応するノートナンバー情報、強度に対応するベロシティー情報をもつＭＩＤＩ形式の符号データを作成する符号化段階と、
を有することを特徴とする音響信号の符号化方法。
【請求項２】
前記音素データ連結段階は、各単位区間ごとに倍音分布度に基づいて所定数の単位音素データに優先する旨を示す情報である優先マークを付与すると共に、強度値が所定値より小さい単位音素データを削除した後に、前記連結処理を実行するものであることを特徴とする請求項１に記載の音響信号の符号化方法。
【請求項３】
前記音素データ連結段階における前記優先マークの付与は、前記代表分布度の正負の符号を考慮して、倍音であると判断される単位音素データを付与対象から除外し、残った単位音素データのうち、所定数のものに優先マークを付与するものであることを特徴とする請求項２に記載の音響信号の符号化方法。
【請求項４】
前記符号化段階は、連結処理後の音素データの区間長が所定値よりも長く、優先マークが付与されていないものを符号化対象から除外し、残った音素データを符号化するものであることを特徴とする請求項２または請求項３に記載の音響信号の符号化方法。
【請求項５】
コンピュータに、音響信号に対して時間軸上に複数の単位区間を設定する区間設定段階、前記単位区間における音響信号と複数の周期関数との相関を求めることにより、各周期関数に対応した強度を算出し、各周期関数が有する周波数と、前記各周期関数に対応した強度と、単位区間の始点に対応する区間開始時刻と、単位区間の終点に対応する区間終了時刻で構成される単位音素データを算出する単位音素データ算出段階、前記単位音素データに対して、各単位区間ごとに周波数比が整数倍の関係となる他の単位音素データの強度値を加算して高周波分布度を得て、当該単位音素データとの周波数比が（１／整数）倍の関係となる他の単位音素データの強度値を加算して低周波分布度を得て、高周波分布度と低周波分布度の正負の符号を互いに異ならせて加算することにより得られた値を当該単位音素データの強度値で除することにより、各単位音素データの倍音分布度を算出する倍音分布度算出段階、前記単位音素データのうち、区間が連続し、周波数が同一で強度が類似するものを連結して連結音素データとし、連結音素データの属性として、周波数は構成する単位音素データのいずれかの周波数を与え、強度は構成する単位音素データの最大値を与え、開始時刻は先頭の単位音素データの区間開始時刻を与え、終了時刻は最後尾の単位音素データの区間終了時刻を与え、倍音分布度は構成する単位音素データのいずれかの倍音分布度を与えるようにする音素データ連結段階、前記連結処理後の音素データのうち、少なくとも倍音分布度が所定の条件を満たす音素データのみを抽出し、当該抽出した音素データの区間長に対応するデルタタイム情報、周波数に対応するノートナンバー情報、強度に対応するベロシティー情報をもつＭＩＤＩ形式の符号データを作成する符号化段階と、前記連結処理後の音素データのうち、所定の条件を満たす音素データのみを抽出し、符号データを作成する符号化段階、を実行させるためのプログラム。
【請求項６】
前記音素データ連結段階は、各単位区間ごとに倍音分布度に基づいて所定数の単位音素データに優先する旨を示す情報である優先マークを付与すると共に、強度値が所定値より小さい単位音素データを削除した後に、前記連結処理を実行するものであることを特徴とする請求項５に記載のプログラム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、音楽制作における採譜と呼ばれる以下のような業務を支援するのに適用することができる。採譜業務としては、例えば、譜面が入手できない場合の素材としての既存楽曲の引用・既存楽曲のカバー曲制作、ヒット曲のメロディ・和声進行・音色の分析研究等の楽曲分析、カラオケにおけるＭＩＤＩデータ形式の演奏データ作成、ゲーム機のＢＧＭデータの作成、携帯電話の着メロデータ作成、自動ピアノ・演奏ガイド機能付き鍵盤楽器向け演奏データの作成、楽譜出版・版下作成などがある。
【０００２】
【従来の技術】
音響信号に代表される時系列信号には、その構成要素として複数の周期信号が含まれている。このため、与えられた時系列信号にどのような周期信号が含まれているかを解析する手法は、古くから知られている。例えば、フーリエ解析は、与えられた時系列信号に含まれる周波数成分を解析するための方法として広く利用されている。
【０００３】
このような時系列信号の解析方法を利用すれば、音響信号を符号化することも可能である。コンピュータの普及により、原音となるアナログ音響信号を所定のサンプリング周波数でサンプリングし、各サンプリング時の信号強度を量子化してデジタルデータとして取り込むことが容易にできるようになってきており、こうして取り込んだデジタルデータに対してフーリエ解析などの手法を適用し、原音信号に含まれていた周波数成分を抽出すれば、各周波数成分を示す符号によって原音信号の符号化が可能になる。
【０００４】
一方、電子楽器による楽器音を符号化しようという発想から生まれたＭＩＤＩ（Musical Instrument Digital Interface）規格も、パーソナルコンピュータの普及とともに盛んに利用されるようになってきている。このＭＩＤＩ規格による符号データ（以下、ＭＩＤＩデータという）は、基本的には、楽器のどの鍵盤キーを、どの程度の強さで弾いたか、という楽器演奏の操作を記述したデータであり、このＭＩＤＩデータ自身には、実際の音の波形は含まれていない。そのため、実際の音を再生する場合には、楽器音の波形を記憶したＭＩＤＩ音源が別途必要になるが、その符号化効率の高さが注目を集めており、ＭＩＤＩ規格による符号化および復号化の技術は、現在、パーソナルコンピュータを用いて楽器演奏、楽器練習、作曲などを行うソフトウェアに広く採り入れられている。
【０００５】
そこで、音響信号に代表される時系列信号に対して、所定の手法で解析を行うことにより、その構成要素となる周期信号を抽出し、抽出した周期信号をＭＩＤＩデータを用いて符号化しようとする提案がなされている。例えば、特開平１０−２４７０９９号公報、特開平１１−７３１９９号公報、特開平１１−７３２００号公報、特開平１１−９５７５３号公報、特開２０００−９９００９号公報、特開２０００−９９０９２号公報、特開２０００−９９０９３号公報、特開２０００−２６１３２２号公報、特開２００１−５４５０号公報、特開２００１−１４８６３３号公報、特願２００１−２０９１６３号明細書には、任意の時系列信号について、構成要素となる周波数を解析し、その解析結果からＭＩＤＩデータを作成することができる種々の方法が提案されている。
【０００６】
【発明が解決しようとする課題】
上記各公報および明細書において提案してきたＭＩＤＩ符号化方式により、演奏録音等から得られる音響信号の効率的な符号化が可能になった。音響信号の符号化においては、特に楽器音から発生する倍音成分の扱いが問題となるが、倍音の処理についても上記各公報において開示されている手法により解決を試みている。倍音とは、本来の音である基本音の周波数の整数倍の周波数を有する音であり、本来の音を正確に再現する上では重要な成分であるが、通常は演奏者が意図して発した音ではないため、演奏データから譜面を再現する採譜に本発明を応用する際には不要な成分となる。倍音成分は、ＭＩＤＩノートナンバーでいえば、基本音の＋１２、＋１９、＋２４、＋２８、＋３１、・・・といった値をとるものとなる。特に、特願２００１−２０９１６３号明細書においては、倍音に相当すると考えられる成分を所定の割合で基本音の強度成分に加算するとともに、倍音の強度成分を所定の割合で減算することにより各々の第２強度を算出し、この第２強度を符号化時の優先度として扱うことにより、倍音除去を行っている。
【０００７】
しかしながら、上記手法では、倍音に相当すると考えられる音の強度成分を基本音の第２強度として加算していくだけであるので、倍音であるかどうかの判断が充分であるとはいえない。また、上記手法では、複数の音源が混在している音響信号に対しても一律に倍音除去を行っているため、倍音除去を行ってはいけないヴォーカル（歌声）についても倍音除去が行われてしまうという問題がある。
【０００８】
上記のような点に鑑み、本発明は、精度の良い倍音除去が可能であると共に、人間の声以外に対してだけ、倍音除去を行うことが可能な音響信号の符号化方法を提供することを課題とする。
【０００９】
【課題を解決するための手段】
上記課題を解決するため、本発明では、音響信号の符号化方法として、音響信号に対して時間軸上に複数の単位区間を設定する区間設定段階、単位区間における音響信号と複数の周期関数との相関を求めることにより、各周期関数に対応した強度を算出し、各周期関数が有する周波数と、各周期関数に対応した強度と、単位区間の始点に対応する区間開始時刻と、単位区間の終点に対応する区間終了時刻で構成される単位音素データを算出する単位音素データ算出段階、単位音素データに対して、各単位区間ごとに周波数比が整数倍の関係となる他の単位音素データの強度値を加算して高周波分布度を得て、当該単位音素データとの周波数比が（１／整数）倍の関係となる他の単位音素データの強度値を加算して低周波分布度を得て、高周波分布度と低周波分布度の正負の符号を互いに異ならせて加算することにより得られた値を当該単位音素データの強度値で除することにより、各単位音素データの倍音分布度を算出する倍音分布度算出段階、単位音素データのうち、区間が連続し、周波数が同一で強度が類似するものを連結して連結音素データとし、連結音素データの属性として、周波数は構成する単位音素データのいずれかの周波数を与え、強度は構成する単位音素データの最大値を与え、開始時刻は先頭の単位音素データの区間開始時刻を与え、終了時刻は最後尾の単位音素データの区間終了時刻を与え、倍音分布度は構成する単位音素データのいずれかの倍音分布度を与えるようにする音素データ連結段階、連結処理後の音素データのうち、少なくとも倍音分布度が所定の条件を満たす音素データのみを抽出し、当該抽出した音素データの区間長に対応するデルタタイム情報、周波数に対応するノートナンバー情報、強度に対応するベロシティー情報をもつＭＩＤＩ形式の符号データを作成する符号化段階を、有するようにしたことを特徴とする。
【００１０】
本発明によれば、各単位区間について音響信号の周波数解析を行なうことにより単位音素データを得て、各単位音素データに対して当該単位音素データの整数倍の周波数成分の強度が大きいか、整数分の１の周波数成分の強度が大きいかに基づいて倍音と判断される成分を削除して符号化を行うようにしたので、精度の良い倍音除去が可能となる。
【００１１】
さらに、倍音と判断される成分を除去する際、連結後の音素データの区間長が長いものについてだけ、倍音と判断される成分の除去を行うようすることにより、楽器音等の、人間の声以外に対してだけ倍音除去を行うことが可能となる。
【００１２】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して詳細に説明する。
（1.音響信号の符号化の基本原理）
はじめに、本発明に係る音響信号の符号化方法の基本原理を述べておく。この基本原理は、前掲の各公報あるいは明細書に開示されているので、ここではその概要のみを簡単に述べることにする。
【００１３】
図１（ａ）に示すように、時系列信号としてアナログ音響信号が与えられたものとする。図１の例では、横軸に時間ｔ、縦軸に振幅（強度）をとって、この音響信号を示している。ここでは、まずこのアナログ音響信号を、デジタルの音響データとして取り込む処理を行う。これは、従来の一般的なＰＣＭの手法を用い、所定のサンプリング周波数でこのアナログ音響信号をサンプリングし、振幅を所定の量子化ビット数を用いてデジタルデータに変換する処理を行えば良い。ここでは、説明の便宜上、ＰＣＭの手法でデジタル化した音響データの波形も図１（ａ）のアナログ音響信号と同一の波形で示すことにする。
【００１４】
続いて、この解析対象となる音響信号の時間軸上に、複数の単位区間を設定する。図１（ａ）に示す例では、時間軸ｔ上に等間隔に６つの時刻ｔ１〜ｔ６が定義され、これら各時刻を始点および終点とする５つの単位区間ｄ１〜ｄ５が設定されている。図１の例では、全て同一の区間長をもった単位区間が設定されているが、個々の単位区間ごとに区間長を変えるようにしてもかまわない。あるいは、隣接する単位区間が時間軸上で部分的に重なり合うような区間設定を行ってもかまわない。
【００１５】
こうして単位区間が設定されたら、各単位区間ごとの音響信号（以下、区間信号と呼ぶことにする）について、それぞれ代表周波数を選出する。各区間信号には、通常、様々な周波数成分が含まれているが、例えば、その中で成分の強度割合の大きな周波数成分を代表周波数として選出すれば良い。ここで、代表周波数とはいわゆる基本周波数が一般的であるが、音声のフォルマント周波数などの倍音周波数や、ノイズ音源のピーク周波数も代表周波数として扱うことがある。代表周波数は１つだけ選出しても良いが、音響信号によっては複数の代表周波数を選出した方が、より精度の高い符号化が可能になる。図１（ｂ）には、個々の単位区間ごとにそれぞれ３つの代表周波数を選出し、１つの代表周波数を１つの代表符号（図では便宜上、音符として示してある）として符号化した例が示されている。ここでは、代表符号（音符）を収容するために３つのトラックＴ１，Ｔ２，Ｔ３が設けられているが、これは個々の単位区間ごとに選出された３つずつの代表符号を、それぞれ異なるトラックに収容するためである。
【００１６】
例えば、単位区間ｄ１について選出された代表符号ｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３）は、それぞれトラックＴ１，Ｔ２，Ｔ３に収容されている。ここで、各符号ｎ（ｄ１，１），ｎ（ｄ１，２），ｎ（ｄ１，３）は、ＭＩＤＩ符号におけるノートナンバーを示す符号である。ＭＩＤＩ符号におけるノートナンバーは、０〜１２７までの１２８通りの値をとり、それぞれピアノの鍵盤の１つのキーを示すことになる。具体的には、例えば、代表周波数として４４０Ｈｚが選出された場合、この周波数はノートナンバーｎ＝６９（ピアノの鍵盤中央の「ラ音（Ａ３音）」に対応）に相当するので、代表符号としては、ｎ＝６９が選出されることになる。もっとも、図１（ｂ）は、上述の方法によって得られる代表符号を音符の形式で示した概念図であり、実際には、各音符にはそれぞれ強度に関するデータも付加されている。例えば、トラックＴ１には、ノートナンバーｎ（ｄ１，１），ｎ（ｄ２，１）・・・なる音高を示すデータとともに、ｅ（ｄ１，１），ｅ（ｄ２，１）・・・なる強度を示すデータが収容されることになる。この強度を示すデータは、各代表周波数の成分が、元の区間信号にどの程度の度合いで含まれていたかによって決定される。具体的には、各代表周波数をもった周期関数の区間信号に対する相関値に基づいて強度を示すデータが決定されることになる。また、図１（ｂ）に示す概念図では、音符の横方向の位置によって、個々の単位区間の時間軸上での位置が示されているが、実際には、この時間軸上での位置を正確に数値として示すデータが各音符に付加されていることになる。
【００１７】
音響信号を符号化する形式としては、必ずしもＭＩＤＩ形式を採用する必要はないが、この種の符号化形式としてはＭＩＤＩ形式が最も普及しているため、実用上はＭＩＤＩ形式の符号データを用いるのが好ましい。ＭＩＤＩ形式では、「ノートオン」データもしくは「ノートオフ」データが、「デルタタイム」データを介在させながら存在する。「ノートオン」データは、特定のノートナンバーＮとベロシティーＶを指定して特定の音の演奏開始を指示するデータであり、「ノートオフ」データは、特定のノートナンバーＮとベロシティーＶを指定して特定の音の演奏終了を指示するデータである。また、「デルタタイム」データは、所定の時間間隔を示すデータである。ベロシティーＶは、例えば、ピアノの鍵盤などを押し下げる速度（ノートオン時のベロシティー）および鍵盤から指を離す速度（ノートオフ時のベロシティー）を示すパラメータであり、特定の音の演奏開始操作もしくは演奏終了操作の強さを示すことになる。
【００１８】
前述の方法では、第ｉ番目の単位区間ｄｉについて、代表符号としてＪ個のノートナンバーｎ（ｄｉ，１），ｎ（ｄｉ，２），・・・，ｎ（ｄｉ，Ｊ）が得られ、このそれぞれについて強度ｅ（ｄｉ，１），ｅ（ｄｉ，２），・・・，ｅ（ｄｉ，Ｊ）が得られる。そこで、次のような手法により、ＭＩＤＩ形式の符号データを作成することができる。まず、「ノートオン」データもしくは「ノートオフ」データの中で記述するノートナンバーＮとしては、得られたノートナンバーｎ（ｄｉ，１），ｎ（ｄｉ，２），・・・，ｎ（ｄｉ，Ｊ）をそのまま用いれば良い。一方、「ノートオン」データもしくは「ノートオフ」データの中で記述するベロシティーＶとしては、得られた強度ｅ（ｄｉ，１），ｅ（ｄｉ，２），・・・，ｅ（ｄｉ，Ｊ）を所定の方法で規格化した値を用いれば良い。また、「デルタタイム」データは、各単位区間の長さに応じて設定すれば良い。
【００１９】
（2.周期関数との相関を求める具体的な手法）
上述した基本原理の基づく方法では、区間信号に対して、１つまたは複数の代表周波数が選出され、この代表周波数をもった周期信号によって、当該区間信号が表現されることになる。ここで、選出される代表周波数は、文字どおり、当該単位区間内の信号成分を代表する周波数である。この代表周波数を選出する具体的な方法には、後述するように、短時間フーリエ変換を利用する方法と、一般化調和解析の手法を利用する方法とがある。いずれの方法も、基本的な考え方は同じであり、あらかじめ周波数の異なる複数の周期関数を用意しておき、これら複数の周期関数の中から、当該単位区間内の区間信号に対する相関が高い周期関数を見つけ出し、この相関の高い周期関数の周波数を代表周波数として選出する、という手法を採ることになる。すなわち、代表周波数を選出する際には、あらかじめ用意された複数の周期関数と、単位区間内の区間信号との相関を求める演算を行うことになる。そこで、ここでは、周期関数との相関を求める具体的な方法を述べておく。
【００２０】
複数の周期関数として、図２に示すような三角関数が用意されているものとする。これらの三角関数は、同一周波数をもった正弦関数と余弦関数との対から構成されており、１２８通りの標準周波数ｆ（０）〜ｆ（１２７）のそれぞれについて、正弦関数および余弦関数の対が定義されていることになる。ここでは、同一の周波数をもった正弦関数および余弦関数からなる一対の関数を、当該周波数についての周期関数として定義することにする。すなわち、ある特定の周波数についての周期関数は、一対の正弦関数および余弦関数によって構成されることになる。このように、一対の正弦関数と余弦関数とにより周期関数を定義するのは、信号に対する周期関数の相関値を求める際に、相関値が位相の影響を受ける事を考慮するためである。なお、図２に示す各三角関数内の変数Ｆおよびｋは、区間信号Ｘについてのサンプリング周波数Ｆおよびサンプル番号ｋに相当する変数である。例えば、周波数ｆ（０）についての正弦波は、ｓｉｎ（２πｆ（０）ｋ／Ｆ）で示され、任意のサンプル番号ｋを与えると、区間信号を構成する第ｋ番目のサンプルと同一時間位置における周期関数の振幅値が得られる。
【００２１】
ここでは、１２８通りの標準周波数ｆ（０）〜ｆ（１２７）を図３に示すような式で定義した例を示すことにする。すなわち、第ｎ番目（０≦ｎ≦１２７）の標準周波数ｆ（ｎ）は、以下に示す〔数式１〕で定義されることになる。
【００２２】
〔数式１〕
ｆ（ｎ）＝４４０×２γ(n)
γ（ｎ）＝（ｎ−６９）／１２
【００２３】
このような式によって標準周波数を定義しておくと、最終的にＭＩＤＩデータを用いた符号化を行う際に便利である。なぜなら、このような定義によって設定される１２８通りの標準周波数ｆ（０）〜ｆ（１２７）は、等比級数をなす周波数値をとることになり、ＭＩＤＩデータで利用されるノートナンバーに対応した周波数になるからである。したがって、図２に示す１２８通りの標準周波数ｆ（０）〜ｆ（１２７）は、対数尺度で示した周波数軸上に等間隔（ＭＩＤＩにおける半音単位）に設定した周波数ということになる。
【００２４】
（2.1.短時間フーリエ変換による手法）
続いて、任意の区間の区間信号に対する各周期関数の相関の求め方について、具体的な説明を行う。例えば、図４に示すように、ある単位区間ｄについて区間信号Ｘが与えられていたとする。ここでは、区間長Ｌをもった単位区間ｄについて、サンプリング周波数Ｆでサンプリングが行なわれており、全部でｗ個のサンプル値が得られているものとし、サンプル番号を図示のように、０，１，２，３，・・・，ｋ，・・・，ｗ−２，ｗ−１とする（白丸で示す第ｗ番目のサンプルは、右に隣接する次の単位区間の先頭に含まれるサンプルとする）。この場合、任意のサンプル番号ｋについては、Ｘ（ｋ）なる振幅値がデジタルデータとして与えられていることになる。短時間フーリエ変換においては、Ｘ（ｋ）に対して各サンプルごとに中央の重みが１に近く、両端の重みが０に近くなるような窓関数Ｗ（ｋ）を乗ずることが通常である。すなわち、Ｘ（ｋ）×Ｗ（ｋ）をＸ（ｋ）と扱って以下のような相関計算を行うもので、窓関数の形状としては余弦波形状のハミング窓が一般に用いられている。ここで、ｗは以下の記述においても定数のような記載をしているが、一般にはｎの値に応じて変化させ、区間長Ｌを超えない範囲で最大となるＦ／ｆ（ｎ）の整数倍の値に設定することが望ましい。
【００２５】
このような区間信号Ｘに対して、第ｎ番目の標準周波数ｆ（ｎ）をもった正弦関数Ｒｎとの相関値を求める原理を示す。両者の相関値Ａ（ｎ）は、図５の第１の演算式によって定義することができる。ここで、Ｘ（ｋ）は、図４に示すように、区間信号Ｘにおけるサンプル番号ｋの振幅値であり、ｓｉｎ（２πｆ（ｎ）ｋ／Ｆ）は、時間軸上での同位置における正弦関数Ｒｎの振幅値である。この第１の演算式は、単位区間ｄ内の全サンプル番号ｋ＝０〜ｗ−１の次元について、それぞれ区間信号Ｘの振幅値と正弦関数Ｒｎの振幅ベクトルの内積を求める式ということができる。
【００２６】
同様に、図５の第２の演算式は、区間信号Ｘと、第ｎ番目の標準周波数ｆ（ｎ）をもった余弦関数との相関値を求める式であり、両者の相関値はＢ（ｎ）で与えられる。なお、相関値Ａ（ｎ）を求めるための第１の演算式も、相関値Ｂ（ｎ）を求めるための第２の演算式も、最終的に２／ｗが乗ぜられているが、これは相関値を規格化するためのものでり、前述のとおりｗはｎに依存して変化させるのが一般的であるため、この係数もｎに依存する変数である。
【００２７】
区間信号Ｘと標準周波数ｆ（ｎ）をもった標準周期関数との相関実効値は、図５の第３の演算式に示すように、正弦関数との相関値Ａ（ｎ）と余弦関数との相関値Ｂ（ｎ）との二乗和平方根値Ｅ（ｎ）によって示すことができる。この相関実効値の大きな標準周期関数の周波数を代表周波数として選出すれば、この代表周波数を用いて区間信号Ｘを符号化することができる。
【００２８】
すなわち、この相関値Ｅ（ｎ）が所定の基準以上の大きさとなる１つまたは複数の標準周波数を代表周波数として選出すれば良い。なお、ここで「相関値Ｅ（ｎ）が所定の基準以上の大きさとなる」という選出条件は、例えば、何らかの閾値を設定しておき、相関値Ｅ（ｎ）がこの閾値を超えるような標準周波数ｆ（ｎ）をすべて代表周波数として選出する、という絶対的な選出条件を設定しても良いが、例えば、相関値Ｅ（ｎ）の大きさの順にＱ番目までを選出する、というような相対的な選出条件を設定しても良い。
【００２９】
（2.2.一般化調和解析による手法）
ここでは、本発明に係る音響信号の符号化を行う際に有用な一般化調和解析の手法について説明する。既に説明したように、音響信号を符号化する場合、個々の単位区間内の区間信号について、相関値の高いいくつかの代表周波数を選出することになる。一般化調和解析は、より高い精度で代表周波数の選出を可能にする手法であり、その基本原理は次の通りである。
【００３０】
図６（ａ）に示すような単位区間ｄについて、信号Ｓ（ｊ）なるものが存在するとする。ここで、ｊは後述するように、繰り返し処理のためのパラメータである（ｊ＝１〜Ｊ）。まず、この信号Ｓ（ｊ）に対して、図２に示すような１２８通りの周期関数すべてについての相関値を求める。そして、最大の相関値が得られた１つの周期関数の周波数を代表周波数として選出し、当該代表周波数をもった周期関数を要素関数として抽出する。続いて、図６（ｂ）に示すような含有信号Ｇ（ｊ）を定義する。この含有信号Ｇ（ｊ）は、抽出された要素関数に、その振幅として、当該要素関数の信号Ｓ（ｊ）に対する相関値を乗じることにより得られる信号である。例えば、周期関数として図２に示すように、一対の正弦関数と余弦関数とを用い、周波数ｆ（ｎ）が代表周波数として選出された場合、振幅Ａ（ｎ）をもった正弦関数Ａ（ｎ）ｓｉｎ（２πｆ（ｎ）ｋ／Ｆ）と、振幅Ｂ（ｎ）をもった余弦関数Ｂ（ｎ）ｃｏｓ（２πｆ（ｎ）ｋ／Ｆ）との和からなる信号が含有信号Ｇ（ｊ）ということになる（図６（ｂ）では、図示の便宜上、一方の関数しか示していない）。ここで、Ａ（ｎ），Ｂ（ｎ）は、図５の式で得られる規格化された相関値であるから、結局、含有信号Ｇ（ｊ）は、信号Ｓ（ｊ）内に含まれている周波数ｆ（ｎ）をもった信号成分ということができる。
【００３１】
こうして、含有信号Ｇ（ｊ）が求まったら、信号Ｓ（ｊ）から含有信号Ｇ（ｊ）を減じることにより、差分信号Ｓ（ｊ＋１）を求める。図６（ｃ）は、このようにして求まった差分信号Ｓ（ｊ＋１）を示している。この差分信号Ｓ（ｊ＋１）は、もとの信号Ｓ（ｊ）の中から、周波数ｆ（ｎ）をもった信号成分を取り去った残りの信号成分からなる信号ということができる。そこで、パラメータｊを１だけ増加させることにより、この差分信号Ｓ（ｊ＋１）を新たな信号Ｓ（ｊ）として取り扱い、同様の処理を、パラメータｊをｊ＝１〜Ｊまで１ずつ増やしながらＪ回繰り返し実行すれば、Ｊ個の代表周波数を選出することができる。
【００３２】
このような相関計算の結果として出力されるＪ個の含有信号Ｇ（１）〜Ｇ（Ｊ）は、もとの区間信号Ｘの構成要素となる信号であり、もとの区間信号Ｘを符号化する場合には、これらＪ個の含有信号の周波数を示す情報および振幅（強度）を示す情報を符号データとして用いるようにすれば良い。尚、Ｊは代表周波数の個数であると説明してきたが、標準周波数ｆ（ｎ）の個数と同一すなわちＪ＝１２８であってもよく、周波数スペクトルを求める目的においてはそのように行うのが通例である。
【００３３】
こうして、各単位区間について、所定数の周波数群が選出されたら、この周波数群の各周波数に対応する「音の高さを示す情報」、選出された各周波数の信号強度に対応する「音の強さを示す情報」、当該単位区間の始点に対応する「音の発音開始時刻を示す情報」、当該単位区間に後続する単位区間の始点に対応する「音の発音終了時刻を示す情報」、の４つの情報を含む所定数の符号データを作成すれば、当該単位区間内の区間信号Ｘを所定数の符号データにより符号化することができる。符号データとして、ＭＩＤＩデータを作成するのであれば、「音の高さを示す情報」としてノートナンバーを用い、「音の強さを示す情報」としてベロシティーを用い、「音の発音開始時刻を示す情報」としてノートオン時刻を用い、「音の発音終了時刻を示す情報」としてノートオフ時刻を用いるようにすれば良い。
【００３４】
（3.本発明に係る音響信号の符号化方法）
ここまでに説明した従来技術とも共通する本発明の基本原理を要約すると、原音響信号に単位区間を設定し、単位区間ごとに複数の周波数に対応する信号強度を算出し、得られた信号強度を基に用意された周期関数を利用して１つまたは複数の代表周波数を選出し、選出された代表周波数に対応する音の高さ情報と、選出された代表周波数の強度に対応する音の強さ情報と、単位区間の始点に対応する発音開始時刻と、単位区間の終点に対応する発音終了時刻で構成される符号データを作成することにより、音響信号の符号化が行われていることになる。
【００３５】
本発明の音響信号符号化方法は、上記基本原理において、用意された周期関数の全てについて相関演算を行って、各周波数に対応する強度を求め、これら各周波数と、各周波数の強度と、単位区間の始点に対応する区間開始時刻と、単位区間の終点に対応する区間終了時刻で構成されるデータを「音素データ」と定義し、この音素データをさらに加工することにより最終的な符号化データを得るようにしたものである。
【００３６】
ここからは、本発明の音響信号符号化方法の流れについて、図７に示すフローチャートを用いて説明する。まず、音響信号の時間軸上の全区間に渡って単位区間を設定する（ステップＳ１）。このステップＳ１における手法は、上記基本原理において、図１（ａ）を用いて説明した通りである。
【００３７】
続いて、各単位区間ごとの音響信号、すなわち区間信号について、周波数解析を行って各周波数に対応する強度値を算出し、周波数、強度値、単位区間の始点、終点の４つの情報からなる単位音素データを算出する（ステップＳ２）。具体的には、図２に示したような１２８種の周期関数に対して区間信号の相関強度を求め、その周期関数の周波数、求めた相関強度、単位区間の始点、終点の４つの情報を「単位音素データ」と定義する。この単位音素データとは、音素データのうち、特に単位区間長のものとする。本実施形態では、上記基本原理で説明した場合のように、代表周波数を選出するのではなく、用意した周期関数全てに対応する単位音素データを取得する。このステップＳ２の処理を全単位区間に対して行うことにより、Ｍ×Ｎ個の単位音素データからなる単位音素データ群が得られる。ここで、Ｎは周期関数の総数（上述の例ではＮ＝１２８）、Ｍは音響信号において設定された単位区間の総数である。
【００３８】
続いて、各単位区間ごとに単位音素データが有する強度値に基づいて、各周波数の倍音分布度を算出する（ステップＳ３）。倍音分布度とは、その単位音素データが基本音であるか、他の単位音素データの倍音であるかどうかを判定するための値である。具体的には、以下の〔数式２〕を用いてノートナンバーｎに対応する倍音分布度Ｈ（ｎ）が算出される。
【００３９】
〔数式２〕
Ｈ（ｎ）＝｛V(n+12) + V(n+19) + V(n+24) + V(n+28) + V(n+31) + V(n+34) + V(n+36) - V(n-12) - V(n-19) - V(n-24) - V(n-28) - V(n-31) - V(n-34) - V(n-36) ｝×100／V(n)
【００４０】
上記〔数式２〕において、V(n)はノートナンバーｎの強度値を示しており、 V(n+12) ,V(n+19) ,V(n+24) ,V(n+28) ,V(n+31) ,V(n+34) ,V(n+36) はそれぞれノートナンバーｎの音の２倍音、３倍音、４倍音、５倍音、６倍音、７倍音、８倍音の強度値を、 V(n-12) ,V(n-19) ,V(n-24) ,V(n-28) ,V(n-31) ,V(n-34) ,V(n-36) はそれぞれノートナンバーｎの音を２倍音、３倍音、４倍音、５倍音、６倍音、７倍音、８倍音と仮定したときの基本音の強度値を示している。結局、上記〔数式２〕で算出される倍音分布度Ｈ（ｎ）は、自身の整数倍の周波数の音が多く存在する場合には正の値となり、自身の整数分の１の周波数の音が多く存在する場合には負の値となる。
【００４１】
倍音分布度算出の具体例を図８を用いて説明する。図８は、ある単位区間における１２８個の単位音素データのうち、１０個の単位音素データを示している。実際には、１２８個全ての単位音素データについて、基本音であるか倍音であるかの判断を行うが、図８では、説明の便宜上１０個だけを示している。図８において、音階（ノートナンバー）、強度値は単位音素データを構成するものである。なお、ここで音階およびノートナンバーは、単位音素データの属性である周波数と同義であり、その関係は上記〔数式１〕で定まるものである。ここでは、説明の便宜上、周波数ではなく、音階およびノートナンバーを使用する。また、図８において音階のアルファベットＣ・Ｄ・Ｅ・Ｆ・Ｇ・Ａ・Ｂはそれぞれド・レ・ミ・ファ・ソ・ラ・シを表わしており、Ｇ２という音階は、２オクターブ目のソの音を表わしている。（ピアノ鍵盤の中央のド、すなわちノートナンバー６０で始まる音階を３オクターブ目と定義する方法と４オクターブ目と定義する方法があり、本実施形態では前者を用いている。）
【００４２】
倍音分布度の算出は、次のように行われる。例えば、図８の１行目の音階Ｇ２については、それぞれ周波数が２倍（ノートナンバーが＋１２）の音階Ｇ３、４倍（ノートナンバーが＋２４）の音階Ｇ４、５倍（ノートナンバーが＋２８）の音階Ｂ４、６倍（ノートナンバーが＋３１）の音階Ｄ５の強度値が積算される。これは、音階Ｇ２の強度積算の欄に「120+90+35+40」として示されている。これを音階Ｇ２の強度２０で割って、正規化のために１００を乗じたものが倍音分布度「１４２５」となる。これは、すなわち上記〔数式２〕を用いて倍音分布度Ｈ（ｎ）を算出したものである。
【００４３】
図８の５行目の音階Ｃ４の場合は、周波数が２倍（ノートナンバーが＋１２）の音階Ｃ５の強度値が加算され、１／２倍（ノートナンバーが−１２）の音階Ｃ３の強度値が減算される。その結果、倍音分布度は「−１５０」となる。同様にして各単位音素データについて倍音分布度の算出が行われる。図８の例では、説明の便宜上、１０個の単位音素データに対してしか処理を行っていないが、実際には各単位区間における全単位音素データ（図２に示したように１２８個の周期関数を用意した場合には１２８個）に対して行われる。
【００４４】
続いて、算出された倍音分布度に基づいて、各単位音素データに優先マークを付与する（ステップＳ４）。具体的には、各単位区間ごとに倍音分布度の値が負である単位音素データを優先する対象から外し、倍音分布度の値が正である単位音素データのうちから所定の基準により所定数のものに優先マークを付与する。例えば、図８に示した例で３つのものに優先マークを付与することを考えてみる。この場合、まず、音階Ｃ４・Ｅ４・Ｇ４・Ｂ４・Ｃ５・Ｄ５の倍音分布度の値は全て負であるので、優先する対象から除外される。残った単位音素データのうち、所定の基準で優先するものを決定するが、本実施形態では、倍音分布度の値が１００に近いものを選択するものとする。図８の例では、音階Ｇ３・Ｅ３・Ｃ３の順に１００に近いため、この３つに対応する単位音素データに優先マークが付与されることになる。ここで、まず、倍音分布度が負であるものを優先対象から外すのは、倍音分布度が負であるということが、自身の整数分の１の周波数である音の成分が強いということを示しており、それはすなわち自身が他の基本音の倍音である可能性が高いためである。逆に、倍音分布度が正であるものは、自身の整数分の１の周波数である音の成分が弱いということを示しており、それはすなわち自身が他の基本音の倍音である可能性が低いということであるため、優先マークの付与対象として残される。また、所定の基準として倍音分布度の値が１００に近いものを選択するようにしたのは、１００に近いほど、自身の音と倍音がバランス良く発生していることを示しているためである。倍音分布度の値が大き過ぎると、自身の音が倍音に比較して弱いことを意味し、その音がノイズである可能性が高く、かつ自身の音の倍音の位置（通常はオクターブ上すなわち２倍音の位置）に他の基本音が存在する可能性が高くなるためである。
【００４５】
図８に示した例では、説明の便宜上３つの単位音素データに優先マークを付与するようにしたが、実用上はＭＩＤＩ規格の同時発音可能数に合わせて１６〜３２個程度に優先マークを付与する。優先マークを付与するとは、実際には、単位音素データに倍音分布度の値を保持させたり、優先を示すフラグを記録することになる。なお、ここで優先マークが付与された単位音素データを以降優先音素データと呼ぶことにする。
【００４６】
このようにして優先音素データを含む単位音素データ群が得られたら、この単位音素データ群を構成する単位音素データのうち、強度値が所定の基準以下である単位音素データを削除する（ステップＳ５）。ここで、強度値が所定の基準以下である単位音素データを削除するのは、信号レベルがほとんど０であって、実際には音が存在していないと判断される音素を削除するためである。そのため、この所定の基準としては、音が実際に存在しないレベルとみなされる値が設定される。この時点で単位音素データの数はＭ×Ｎ個より減ることになる。
【００４７】
強度値が所定以下の単位音素データを削除したら、残った単位音素データ群において、同一周波数で時系列方向に連続する複数の単位音素データを１つの連結音素データとして連結する（ステップＳ６）。図９は単位音素データの連結を説明するための概念図である。図９（ａ）は連結前の単位音素データ群の様子を示す図である。図９（ａ）において、格子状に仕切られた各矩形は単位音素データを示しており、網掛けがされている矩形は、上記ステップＳ５において強度値が所定の基準以下であると判断されて削除された単位音素データであり、その他の矩形は削除されなかった単位音素データを示す。ステップＳ６においては、同一周波数（同一ノートナンバー）で時間ｔ方向に連続する単位音素データを連結する。具体的には、図９（ａ）に示す単位音素データ群に対して連結処理を実行すると、図９（ｂ）に示すような複数の連結音素データ、複数の単位音素データからなる音素データ群が得られる。例えば、図９（ａ）に示した単位音素データＡ１、Ａ２、Ａ３は連結されて、図９（ｂ）に示すような連結音素データＡが得られることになる。このとき、構成される単位音素データＡ１、Ａ２、Ａ３のいずれか１つは優先音素データでなければならず、いずれも優先音素データでない場合は連結されずにこの段階で削除され、次のステップＳ７には渡されない。連結が行われる場合、新たに得られる連結音素データＡの周波数としては、単位音素データＡ１、Ａ２、Ａ３に共通の周波数が与えられ、強度値としては、単位音素データＡ１、Ａ２、Ａ３の強度値のうち最大のものが与えられ、開始時刻としては、先頭の単位音素データＡ１の区間開始時刻ｔ１が与えられ、終了時刻としては、最後尾の単位音素データＡ３の区間終了時刻ｔ４が与えられる。なお、連結音素データＡの強度値としては、単位音素データＡ１、Ａ２、Ａ３の強度値の平均値を与えるようにすることも可能である。最終的な符号化時には、優先マーク（実際には、倍音分布度等）は符号化されず、周波数（ノートナンバー）、強度値、開始時刻、終了時刻の４つの情報だけで構成されるため、３つの単位音素データが１つの連結音素データに統合されることにより、データ量は３分の１に削減される。このことは、最終的にＭＩＤＩ符号化される場合には、短い音符３つではなく、長い音符１つとして表現されることを意味している。また、図９（ａ）に示した優先音素データＢのように、同一周波数で時系列方向に連続する単位音素データがない場合で、当該単位音素データが優先音素データである場合には、図９（ｂ）に示すように、連結されずにそのまま残ることになるが、以降の処理においては、連結音素データも、連結されなかった単位区間長の優先音素データもまとめて「音素データ」として扱う。
【００４８】
続いて、全区間において残っている音素データのうち、優先音素データ以外で区間長が所定値より長いものを削除して符号化を行う（ステップＳ７）。区間長とは、音素データの開始時刻から終了時刻までの長さを示す。所定値としては、１００〜２００ｍsec（ミリ秒）が設定される。この所定値は、ピアノとヴォーカルを分けるために設定されるものである。一般に、ピアノ等の鍵楽器は１つの音成分が長く続き、ヴォーカル等の人の声は１つの音成分が短い。ピアノの場合、キーを降ろしている間に音が鳴り続け、時間が経つにつれて振幅は指数関数的に減衰するが、周波数はほとんど変化しないため、単位音素データの連結がされやすく、音の持続時間（デュレーション）が長くなる。これに対し、ヴォーカルは子音の部分では周波数が時間とともに急変して安定せず、母音の部分では音が持続して、ピアノより振幅の減衰は少ないものの周波数は微小に震えるため、音素の連結がされにくく、音の持続時間（デュレーション）が短くなる。ここでは、このような特性を利用して区間長が所定値より長い音素データを削除することによって、楽器音の倍音だけを削除することができる。所定値より短いものについては、優先音素データ以外の音素データであっても削除しないため、ヴォーカルの倍音成分は削除されないことになる。音素データの削除が行われたら、ＭＩＤＩ形式に符号化を行う。
【００４９】
以上、本発明の好適な実施形態について説明したが、上記符号化方法は、コンピュータ等で実行されることは当然である。具体的には、図７のフローチャートに示したようなステップを上記手順で実行するためのプログラムをコンピュータに搭載しておく。そして、音響信号をＰＣＭ方式等でデジタル化した後、コンピュータに取り込み、ステップＳ１〜ステップＳ７の処理を行った後、ＭＩＤＩ形式等の符号データをコンピュータより出力する。出力された符号データは、例えば、ＭＩＤＩデータの場合、ＭＩＤＩシーケンサ、ＭＩＤＩ音源を用いて音声として再生される。
【００５０】
【発明の効果】
以上、説明したように本発明によれば、音響信号に対して時間軸上に複数の単位区間を設定し、単位区間における音響信号と複数の周期関数との相関を求めることにより各周期関数に対応した強度を算出し、各周期関数が有する周波数と、各周期関数に対応した強度と、単位区間の始点に対応する区間開始時刻と、単位区間の終点に対応する区間終了時刻で構成される単位音素データを算出し、単位音素データに対して各単位区間ごとに周波数が互いに整数倍の関係となる両単位音素データの強度に基づいて、各単位音素データの倍音分布度を算出し、単位音素データのうち、区間が連続し、周波数および強度が類似するものを連結して連結音素データとし、連結音素データの属性として、周波数は構成する単位音素データのいずれかの周波数を与え、強度は構成する単位音素データの最大値を与え、開始時刻は先頭の単位音素データの区間開始時刻を与え、終了時刻は最後尾の単位音素データの区間終了時刻を与え、倍音分布度は構成する単位音素データのいずれかの倍音分布度を与えるようにし、連結処理後の音素データのうち、所定の条件を満たす音素データのみを抽出し、符号データを作成するようにしたので、精度の良い倍音除去が可能となるという効果を奏する。また、倍音と判断される成分を除去する際、連結後の音素データの区間長が長いものについてだけ、倍音と判断される成分の除去を行うようすることにより、楽器音等の、人間の声以外に対してだけ倍音除去を行うことも可能となる。
【図面の簡単な説明】
【図１】本発明の音響信号の符号化方法の基本原理を示す図である。
【図２】本発明で利用される周期関数の一例を示す図である。
【図３】図２に示す各周期関数の周波数とＭＩＤＩノートナンバーｎとの関係式を示す図である。
【図４】解析対象となる信号と周期信号との相関計算の手法を示す図である。
【図５】図４に示す相関計算を行うための計算式を示す図である。
【図６】一般化調和解析の基本的な手法を示す図である。
【図７】本発明の音響信号符号化方法のフローチャートである。
【図８】単位音素データの周波数（音階で示す）、強度、倍音分布度の関係を示す図である。
【図９】単位音素データの連結を説明するための概念図である。
【符号の説明】
Ａ（ｎ），Ｂ（ｎ）・・・相関値
ｄ，ｄ１〜ｄ５・・・単位区間
Ｅ（ｎ）・・・相関値
Ｇ（ｊ）・・・含有信号
ｎ，ｎ１〜ｎ６・・・ノートナンバー
Ｓ（ｊ），Ｓ（ｊ＋１）・・・差分信号
Ｘ，Ｘ（ｋ）・・・区間信号
Ｈ（ｎ）・・・倍音分布度
【図１】
0003776782.tif 000002
【図２】
0003776782.tif 000003
【図３】
0003776782.tif 000004
【図４】
0003776782.tif 000005
【図５】
0003776782.tif 000006
【図６】
0003776782.tif 000007
【図７】
0003776782.tif 000008
【図８】
0003776782.tif 000009
【図９】
0003776782.tif 000010