(57)【特許請求の範囲】
【請求項１】
所定のサンプリング周波数でデジタル化された時系列のサンプル列として与えられる音響信号を符号化するための符号化方法であって、
前記サンプル列に対して、所定数Ｔ個のサンプルで構成される単位区間を、隣接する単位区間と時間軸方向に前記Ｔ個より少ない所定数のサンプルを重複させながら設定する区間設定段階と、
個々の単位区間ごとに、解析対象とする少なくともＮ種類の各周波数ｆ（ｎ）について、周波数変換を行うことにより、各単位区間に対して、前記Ｎ種類の周波数に対応した第１のスペクトル強度を算出する第１のスペクトル算出段階と、
前記単位区間ｐに対して直前に位置する単位区間ｐ−１における第１のスペクトル強度との対応する周波数ごとの変化に基づく評価値が、所定のしきい値より大きい場合に限り、当該単位区間ｐをｑ（ｑ≦ｐ）番目の選出単位区間ｑとして選出し、解析対象とする少なくともＮ種類の各周波数ｆ（ｎ）について、前記第１のスペクトル算出段階における周波数変換に比較して高精度な周波数変換を行うことにより、前記Ｎ種類の周波数に対応した第２のスペクトル強度を算出する第２のスペクトル算出段階と、
前記Ｎ種類の各周波数ｆ（ｎ）に対して、整数ｈ（２≦ｈ≦Ｈ）分の１の周波数であるｆ（ｎ）／ｈに対応するスペクトル強度が存在する場合に、ｆ（ｎ）に対応するスペクトル強度とｆ（ｎ）／ｈに対応するスペクトル強度との相乗平均値の最大Ｈ−１個の総和を求め、当該総和に補正強度γを乗じた分だけ周波数ｆ（ｎ）に対応するスペクトル強度を減衰させる補正を周波数ｆ（ｎ）が低い方から順に行い、周波数ｆ（ｎ）が高い方は先に補正されたスペクトル強度を用いて当該スペクトル強度を減衰させる補正を行うようにし、補正スペクトル強度を作成するスペクトル補正段階と、
前記選出単位区間の先頭時刻と直後の選出単位区間の先頭時刻との時間差と、前記選出単位区間の補正スペクトル強度に基づいて、所定の形式の符号コードを生成する符号化段階と、
を有することを特徴とする音響信号の符号化方法。
【請求項２】
請求項１において、
前記第１のスペクトル算出段階および第２のスペクトル算出段階はＮ種類の各周波数ｆ（ｎ）に対して隣接する周波数を超えない範囲で所定のＭ種類の副周波数ｆ（ｎ，ｍ）を設定し、前記第１のスペクトル強度Ｅ１（ｐ，ｎ）および第２のスペクトル強度Ｅ２（ｑ，ｎ）として、前記Ｍ種類の副周波数の中で最も大きい強度を示す副周波数に対応する強度値を算出することを特徴とする音響信号の符号化方法。
【請求項３】
請求項１または請求項２において、
前記符号化段階は、隣接する２つの選出単位区間ｑと選出単位区間ｑ＋１に対して、前記選出単位区間ｑがｐ番目の単位区間ｐであった場合に、Ｐ（ｑ）＝ｐと定義し、前記選出単位区間ｑ＋１における周波数ｆ（ｎ）、ｆ（ｎ−１）、ｆ（ｎ＋１）に対応する前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）のいずれかと、当該選出単位区間ｑ＋１の直前に位置する単位区間Ｐ（ｑ＋１）−１における周波数ｆ（ｎ）に対応する前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１）−１，ｎ）との差が所定のしきい値Ｌｄｉｆ未満で、かつ前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）のいずれかおよび前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１）−１，ｎ）が所定のしきい値Ｌｍｉｎより大きい場合、前記選出単位区間ｑと選出単位区間ｑ＋１を連結し、前記符号コードの基礎となる時間差として、前記選出単位区間ｑに定義された選出単位区間ｑの先頭時刻と、選出単位区間ｑ＋１の直後の選出単位区間ｑ＋２の先頭時刻との時間差を用いることを特徴とする音響信号の符号化方法。
【請求項４】
請求項３において、
前記符号化段階は、前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）を決定する副周波数の少なくともいずれか１つと、前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１）−１，ｎ）を決定する副周波数とのノートナンバー単位の差が所定のしきい値Ｎｄｉｆ未満という条件をさらに満たした場合に限り、前記選出単位区間ｑと選出単位区間ｑ＋１を連結することを特徴とする音響信号の符号化方法。
【請求項５】
請求項４において、
前記選出単位区間ｑが、既に他の選出単位区間と連結されている場合、前記選出単位区間ｑが連結されている先頭の選出単位区間をｑｏとし、
前記符号化段階は、前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）を決定する副周波数の少なくともいずれか１つと、前記第１のスペクトル強度Ｅ１（Ｐ（ｑｏ），ｎ）を決定する副周波数とのノートナンバー単位の差が所定のしきい値Ｎａｄｉｆ未満という条件をさらに満たした場合に限り、前記選出単位区間ｑと選出単位区間ｑ＋１を連結することを特徴とする音響信号の符号化方法。
【請求項６】
請求項３から請求項５のいずれか一項において、
前記符号コードが、ある時刻ｔに所定の上限以上の数の発音区間が存在することを表現している場合、前記符号化段階は、各発音区間について、前記選出単位区間の先頭時刻から前記時刻ｔまでの経過時間に基づいて強度値を減衰させて減衰強度値を算出し、前記時刻ｔにおいて当該減衰強度値が最小となる発音区間を前記時刻ｔにおいて終了させるよう前記符号コードの発音区間を短縮させるように補正することを特徴とする音響信号の符号化方法。
【請求項７】
請求項１から請求項６のいずれか一項において、
前記第１のスペクトル算出段階は、前記単位区間の区間信号の構成要素となるべきＮ種類の要素信号を、各々当該周波数ｆ（ｎ）の周期の整数倍に対応し、前記Ｔに最も近いＴ（ｎ）個のサンプルとして準備する要素信号準備段階と、
前記Ｎ種類の各周波数ｆ（ｎ）に対応する要素信号と、それぞれ対応する前記単位区間ｐのＴ（ｎ）個のサンプルで構成される区間信号との相関演算を行うことにより、第１のスペクトル強度Ｅ１（ｐ，ｎ）を算出する相関演算段階により構成され、
前記第２のスペクトル算出段階は、
前記要素信号準備段階と、
前記Ｎ種類の各周波数ｆ（ｎ）に対応する要素信号と、それぞれ対応する前記選出単位区間ｑのＴ（ｎ）個のサンプルで構成される区間信号との相関演算を行い、相関値が最も高い周波数ｆ（ｎｍａｘ）に対応する要素信号を調和信号として選出する調和信号選出段階と、
前記選出された調和信号と当該調和信号について得られた相関値との積で与えられるＴ（ｎｍａｘ）個のサンプルを含有信号とし、当該含有信号を前記区間信号から減じることにより、Ｔ（ｎｍａｘ）個のサンプルで構成される差分信号を求める差分信号演算段階と、を有し、
前記Ｔ（ｎｍａｘ）個のサンプルを反映させ更新されたＴ（ｎ）個のサンプルを新たな区間信号として、前記調和信号選出段階および差分信号演算段階を実行して新たな含有信号および差分信号を得る処理を繰り返し行うことによりＮ種類の含有信号を求め、求められた含有信号の相関値に基づいて、前記Ｎ種類の周波数に対応した第２のスペクトル強度Ｅ２（ｑ，ｎ）を算出することを特徴とする音響信号の符号化方法。
【請求項８】
請求項７において、
前記相関演算段階は、
直前に位置する単位区間ｐ−１における各周波数ｆ（ｎ）に対応する直前相関演算結果に対し、前記単位区間ｐ−１における先頭Ｗサンプルに対応する相関演算を行い、各周波数ごとの相関値を前記直前相関演算結果より減算するとともに、前記単位区間ｐにおけるＴ（ｎ）サンプル中の最後尾Ｗサンプルに対応する相関演算を行い、各周波数ごとの相関値を前記直前相関演算結果に加算することにより、前記単位区間ｐにおける各周波数ｆ（ｎ）に対応する相関演算結果を取得し、当該相関演算結果に基づいて前記第１のスペクトル強度Ｅ１（ｐ，ｎ）を算出することを特徴とする音響信号の符号化方法。
【請求項９】
請求項１から請求項８のいずれか一項において、
前記符号化段階は、前記符号コードとしてＭＩＤＩ形式を用いて符号化を行い、前記符号コードの前記周波数の情報としてノートナンバーを用い、前記第２のスペクトル強度としてベロシティを用い、前記選出単位区間ｑの先頭時刻と直後の選出単位区間ｑ＋１の先頭時刻との時間差を各々直前のＭＩＤＩイベントからの相対時刻であるデルタタイム１とデルタタイム２で定義し、これらの定義されたノートナンバー、ベロシティ、デルタタイム１を基にＭＩＤＩのノートオンイベントを作成するとともに、ノートナンバー、デルタタイム２を基にＭＩＤＩのノートオフイベントを作成するようにしていることを特徴とする音響信号の符号化方法。
【請求項１０】
所定のサンプリング周波数でデジタル化された時系列のサンプル列として与えられる音響信号を符号化するための符号化装置であって、
前記サンプル列に対して、所定数Ｔ個のサンプルで構成される単位区間を、隣接する単位区間と時間軸方向に前記Ｔ個より少ない所定数のサンプルを重複させながら設定する区間設定手段と、
個々の単位区間ごとに、解析対象とする少なくともＮ種類の各周波数ｆ（ｎ）について、周波数変換を行うことにより、各単位区間に対して、前記Ｎ種類の周波数に対応した第１のスペクトル強度を算出する第１のスペクトル算出手段と、
前記単位区間ｐに対して直前に位置する単位区間ｐ−１における第１のスペクトル強度との対応する周波数ごとの変化に基づく評価値が、所定のしきい値より大きい場合に限り、当該単位区間ｐをｑ（ｑ≦ｐ）番目の選出単位区間ｑとして選出し、解析対象とする少なくともＮ種類の各周波数ｆ（ｎ）について、前記第１のスペクトル算出手段における周波数変換に比較して高精度な周波数変換を行うことにより、前記Ｎ種類の周波数に対応した第２のスペクトル強度を算出する第２のスペクトル算出手段と、
前記Ｎ種類の各周波数ｆ（ｎ）に対して、整数ｈ（２≦ｈ≦Ｈ）分の１の周波数であるｆ（ｎ）／ｈに対応するスペクトル強度が存在する場合に、ｆ（ｎ）に対応するスペクトル強度とｆ（ｎ）／ｈに対応するスペクトル強度との相乗平均値の最大Ｈ−１個の総和を求め、当該総和に補正強度γを乗じた分だけ周波数ｆ（ｎ）に対応するスペクトル強度を減衰させる補正を周波数ｆ（ｎ）が低い方から順に行い、周波数ｆ（ｎ）が高い方は先に補正されたスペクトル強度を用いて当該スペクトル強度を減衰させる補正を行うようにし、補正スペクトル強度を作成するスペクトル補正手段と、
前記選出単位区間の先頭時刻と直後の選出単位区間の先頭時刻との時間差と、前記選出単位区間の補正スペクトル強度に基づいて、所定の形式の符号コードを生成する符号化手段と、
を有することを特徴とする音響信号の符号化装置。
【請求項１１】
請求項１０において、
前記第１のスペクトル算出手段および第２のスペクトル算出手段はＮ種類の各周波数ｆ（ｎ）に対して隣接する周波数を超えない範囲で所定のＭ種類の副周波数ｆ（ｎ，ｍ）を設定し、前記第１のスペクトル強度Ｅ１（ｐ，ｎ）および第２のスペクトル強度Ｅ２（ｑ，ｎ）として、前記Ｍ種類の副周波数の中で最も大きい強度を示す副周波数に対応する強度値を算出することを特徴とする音響信号の符号化装置。
【請求項１２】
請求項１０または請求項１１において、
前記符号化手段は、隣接する２つの選出単位区間ｑと選出単位区間ｑ＋１に対して、前記選出単位区間ｑがｐ番目の単位区間ｐであった場合に、Ｐ（ｑ）＝ｐと定義し、前記選出単位区間ｑ＋１における周波数ｆ（ｎ）、ｆ（ｎ−１）、ｆ（ｎ＋１）に対応する前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）のいずれかと、当該選出単位区間ｑ＋１の直前に位置する単位区間Ｐ（ｑ＋１）−１における周波数ｆ（ｎ）に対応する前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１）−１，ｎ）との差が所定のしきい値Ｌｄｉｆ未満で、かつ前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）のいずれかおよび前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１）−１，ｎ）が所定のしきい値Ｌｍｉｎより大きい場合、前記選出単位区間ｑと選出単位区間ｑ＋１を連結し、前記符号コードの基礎となる時間差として、前記選出単位区間ｑに定義された選出単位区間ｑの先頭時刻と、選出単位区間ｑ＋１の直後の選出単位区間ｑ＋２の先頭時刻との時間差を用いることを特徴とする音響信号の符号化装置。
【請求項１３】
請求項１２において、
前記符号化手段は、前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）を決定する副周波数の少なくともいずれか１つと、前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１）−１，ｎ）を決定する副周波数とのノートナンバー単位の差が所定のしきい値Ｎｄｉｆ未満という条件をさらに満たした場合に限り、前記選出単位区間ｑと選出単位区間ｑ＋１を連結することを特徴とする音響信号の符号化装置。
【請求項１４】
請求項１３において、
前記選出単位区間ｑが、既に他の選出単位区間と連結されている場合、前記選出単位区間ｑが連結されている先頭の選出単位区間をｑｏとし、
前記符号化手段は、前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）を決定する副周波数の少なくともいずれか１つと、前記第１のスペクトル強度Ｅ１（Ｐ（ｑｏ），ｎ）を決定する副周波数とのノートナンバー単位の差が所定のしきい値Ｎａｄｉｆ未満という条件をさらに満たした場合に限り、前記選出単位区間ｑと選出単位区間ｑ＋１を連結することを特徴とする音響信号の符号化装置。
【請求項１５】
請求項１２から請求項１４のいずれか一項において、
前記符号コードが、ある時刻ｔに所定の上限以上の数の発音区間が存在することを表現している場合、前記符号化手段は、各発音区間について、前記選出単位区間の先頭時刻から前記時刻ｔまでの経過時間に基づいて強度値を減衰させて減衰強度値を算出し、前記時刻ｔにおいて当該減衰強度値が最小となる発音区間を前記時刻ｔにおいて終了させるよう前記符号コードの発音区間を短縮させるように補正することを特徴とする音響信号の符号化装置。
【請求項１６】
請求項１０から請求項１５のいずれか一項において、
前記第１のスペクトル算出手段は、前記単位区間の区間信号の構成要素となるべきＮ種類の要素信号を、各々当該周波数ｆ（ｎ）の周期の整数倍に対応し、前記Ｔに最も近いＴ（ｎ）個のサンプルとして準備する要素信号準備手段と、
前記Ｎ種類の各周波数ｆ（ｎ）に対応する要素信号と、それぞれ対応する前記単位区間ｐのＴ（ｎ）個のサンプルで構成される区間信号との相関演算を行うことにより、第１のスペクトル強度Ｅ１（ｐ，ｎ）を算出する相関演算手段により構成され、
前記第２のスペクトル算出手段は、
前記要素信号準備手段と、
前記Ｎ種類の各周波数ｆ（ｎ）に対応する要素信号と、それぞれ対応する前記選出単位区間ｑのＴ（ｎ）個のサンプルで構成される区間信号との相関演算を行い、相関値が最も高い周波数ｆ（ｎｍａｘ）に対応する要素信号を調和信号として選出する調和信号選出手段と、
前記選出された調和信号と当該調和信号について得られた相関値との積で与えられるＴ（ｎｍａｘ）個のサンプルを含有信号とし、当該含有信号を前記区間信号から減じることにより、Ｔ（ｎｍａｘ）個のサンプルで構成される差分信号を求める差分信号演算手段と、を有し、
前記Ｔ（ｎｍａｘ）個のサンプルを反映させ更新されたＴ（ｎ）個のサンプルを新たな区間信号として、前記調和信号選出手段および差分信号演算手段による処理を実行して新たな含有信号および差分信号を得る処理を繰り返し行うことによりＮ種類の含有信号を求め、求められた含有信号の相関値に基づいて、前記Ｎ種類の周波数に対応した第２のスペクトル強度Ｅ２（ｑ，ｎ）を算出することを特徴とする音響信号の符号化装置。
【請求項１７】
請求項１６において、
前記相関演算手段は、
直前に位置する単位区間ｐ−１における各周波数ｆ（ｎ）に対応する直前相関演算結果に対し、前記単位区間ｐ−１における先頭Ｗサンプルに対応する相関演算を行い、各周波数ごとの相関値を前記直前相関演算結果より減算するとともに、前記単位区間ｐにおけるＴ（ｎ）サンプル中の最後尾Ｗサンプルに対応する相関演算を行い、各周波数ごとの相関値を前記直前相関演算結果に加算することにより、前記単位区間ｐにおける各周波数ｆ（ｎ）に対応する相関演算結果を取得し、当該相関演算結果に基づいて前記第１のスペクトル強度Ｅ１（ｐ，ｎ）を算出することを特徴とする音響信号の符号化装置。
【請求項１８】
請求項１０から請求項１７のいずれか一項において、
前記符号化手段は、前記符号コードとしてＭＩＤＩ形式を用いて符号化を行い、前記符号コードの前記周波数の情報としてノートナンバーを用い、前記第２のスペクトル強度としてベロシティを用い、前記選出単位区間ｑの先頭時刻と直後の選出単位区間ｑ＋１の先頭時刻との時間差を各々直前のＭＩＤＩイベントからの相対時刻であるデルタタイム１とデルタタイム２で定義し、これらの定義されたノートナンバー、ベロシティ、デルタタイム１を基にＭＩＤＩのノートオンイベントを作成するとともに、ノートナンバー、デルタタイム２を基にＭＩＤＩのノートオフイベントを作成するようにしていることを特徴とする音響信号の符号化装置。
【請求項１９】
請求項１から請求項９のいずれか一項に記載の音響信号の符号化方法をコンピュータに実行させるためのプログラム。
【請求項２０】
請求項１０から請求項１８のいずれか一項に記載の音響信号の符号化装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音響信号の符号化技術に関し、特に、ＭＩＤＩ形式等の符号データに符号化するのに好適な符号化技術に関する。
【背景技術】
【０００２】
従来、ＭＩＤＩ音源を用いて音響信号を再生することを可能とするため、音響信号をＭＩＤＩ符号等の符号データに変換することが行われている（特許文献１〜５参照）。ＭＩＤＩ音源では、３２和音など限定された周波数で再生されるため、符号化の際には、限定された数の周波数を選択して符号化することが必要となる。出願人も、音響信号から限定された数の周波数を選択して符号化する技術について提案している（特許文献１、５参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−４１０３７号公報
【特許文献２】特許第３７７６７８２号公報
【特許文献３】特許第４０６１０７０号公報
【特許文献４】特許第４１５６２６８号公報
【特許文献５】特願２０１１−４３５４９号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載の発明では、先に選択された強度が大きい周波数の周辺の信号成分を一律に減衰させることにより、互いに隣接する周波数成分がなるべく選択されないようにしている。そのため、ボーカル再生において子音を表現するのに本来必要な成分も削除されてしまい、返って再現性が低下するという問題を抱えていた。
【０００５】
また、上記特許文献１に記載の発明では、演奏者が演奏していない倍音が残ってしまい、譜面に忠実な符号を完全に再現しきれないという問題がある。倍音を除去する手法については、出願人も提案している（特許文献２参照）が、精度の良い倍音除去が実現できていない。
【０００６】
そこで、本発明は、譜面に基づいて演奏された音響信号から、倍音による影響を可能な限り除去して、譜面に忠実な状態で符号化することが可能な音響信号の符号化方法および装置を提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明第１の態様では、所定のサンプリング周波数でデジタル化された時系列のサンプル列として与えられる音響信号を符号化するための符号化するにあたり、前記サンプル列に対して、所定数Ｔ個のサンプルで構成される単位区間を、隣接する単位区間と時間軸方向に前記Ｔ個より少ない所定数のサンプルを重複させながら設定し、個々の単位区間ごとに、解析対象とする少なくともＮ種類の各周波数ｆ（ｎ）について、周波数変換を行うことにより、各単位区間に対して、前記Ｎ種類の周波数に対応した第１のスペクトル強度を算出し、前記単位区間ｐに対して直前に位置する単位区間ｐ−１における第１のスペクトル強度との対応する周波数ごとの変化に基づく評価値が、所定のしきい値より大きい場合に限り、当該単位区間ｐをｑ（ｑ≦ｐ）番目の選出単位区間ｑとして選出し、解析対象とする少なくともＮ種類の各周波数ｆ（ｎ）について、前記第１のスペクトル算出段階における周波数変換に比較して高精度な周波数変換を行うことにより、前記Ｎ種類の周波数に対応した第２のスペクトル強度を算出し、
前記Ｎ種類の各周波数ｆ（ｎ）に対して、整数ｈ（２≦ｈ≦Ｈ）分の１の周波数であるｆ（ｎ）／ｈに対応するスペクトル強度が存在する場合に、ｆ（ｎ）に対応するスペクトル強度とｆ（ｎ）／ｈに対応するスペクトル強度との相乗平均値の最大Ｈ−１個の総和を求め、当該総和に補正強度γを乗じた分だけ周波数ｆ（ｎ）に対応するスペクトル強度を減衰させる補正を周波数ｆ（ｎ）が低い方から順に行い、周波数ｆ（ｎ）が高い方は先に補正されたスペクトル強度を用いて当該スペクトル強度を減衰させる補正を行うようにし、補正スペクトル強度を作成し、前記選出単位区間の先頭時刻と直後の選出単位区間の先頭時刻との時間差と、前記選出単位区間の補正スペクトル強度に基づいて、所定の形式の符号コードを生成するようにしたことを特徴とする。
【０００８】
本発明第１の態様によれば、各単位区間に対して周波数変換を行ってＮ種類の周波数に対応した第１のスペクトル強度を算出し、その強度が直前の単位区間と比較して所定の基準以上に大きい場合に、選出単位区間として選出し、その選出単位区間に対してより高精度な第２の周波数変換を行って、Ｎ種類の各周波数ｆ（ｎ）に対して、整数ｈ（２≦ｈ≦Ｈ）分の１の周波数であるｆ（ｎ）／ｈに対応するスペクトル強度が存在する場合に、ｆ（ｎ）に対応するスペクトル強度とｆ（ｎ）／ｈに対応するスペクトル強度との相乗平均値の最大Ｈ−１個の総和を求め、当該総和に補正強度γを乗じた分だけ周波数ｆ（ｎ）に対応するスペクトル強度を減衰させる補正を周波数ｆ（ｎ）が低い方から順に行い、周波数ｆ（ｎ）が高い方は先に補正されたスペクトル強度を用いて当該スペクトル強度を減衰させ、減衰補正後の情報に基づいて符号コードを生成するようにしたので、基音が限定される音響信号の低い方の音成分から倍音を順に精度良く除去でき、結果的に複数の基音に基づく倍音を多く含む高い方の音成分からも補正された低い方の音成分（基音）に基づいて倍音を精度良く除去することができ、譜面を忠実に再現した符号化を行うことが可能となる。また、固定間隔で音響信号全体に渡って情報を解析しつつ、特徴的な部分のみを符号化することになるため、和音を含む音響信号や、音声信号の周波数変化をより適切に解析することが可能となる。
【００１１】
また、本発明第２の態様では、本発明第１の態様において、前記第１のスペクトル算出および第２のスペクトル算出を、Ｎ種類の各周波数ｆ（ｎ）に対して隣接する周波数を超えない範囲で所定のＭ種類の副周波数ｆ（ｎ，ｍ）を設定し、前記第１のスペクトル強度Ｅ１（ｐ，ｎ）および第２のスペクトル強度Ｅ２（ｑ，ｎ）として、前記Ｍ種類の副周波数の中で最も大きい強度を示す副周波数に対応する強度値を算出するようにしたことを特徴とする。
【００１２】
本発明第２の態様によれば、解析する周波数の間隔を微細に設定することにより、より高精度な周波数解析が可能となり、適切な周波数成分を特定することができる。
【００１３】
また、本発明第３の態様では、本発明第１または第２の態様において、前記符号コードを生成する際、隣接する２つの選出単位区間ｑと選出単位区間ｑ＋１に対して、前記選出単位区間ｑがｐ番目の単位区間ｐであった場合に、Ｐ（ｑ）＝ｐと定義し、前記選出単位区間ｑ＋１における周波数ｆ（ｎ）、ｆ（ｎ−１）、ｆ（ｎ＋１）に対応する前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）のいずれかと、当該選出単位区間ｑ＋１の直前に位置する単位区間Ｐ（ｑ＋１）−１における周波数ｆ（ｎ）に対応する前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１）−１，ｎ）との差が所定のしきい値Ｌｄｉｆ未満で、かつ前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）のいずれかおよび前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１）−１，ｎ）が所定のしきい値Ｌｍｉｎより大きい場合、前記選出単位区間ｑと選出単位区間ｑ＋１を連結し、前記符号コードの基礎となる時間差として、前記選出単位区間ｑに定義された選出単位区間ｑの先頭時刻と、選出単位区間ｑ＋１の直後の選出単位区間ｑ＋２の先頭時刻との時間差を用いるようにしていることを特徴とする。
【００１４】
本発明第３の態様によれば、符号コードを生成する際、隣接する２つの選出単位区間のうち、後続の選出単位区間とその直前の単位区間の強度の差が所定のしきい値未満で、後続の選出単位区間の強度とその直前の単位区間の強度がともに所定のしきい値より大きい場合に、隣接する２つの選出単位区間を連結するようにしたので、選出されていないものの、時間的に最も近い単位区間が連結判断の際に考慮されることとなり、適切に音成分を連結することが可能になる。
【００１５】
また、本発明第４の態様では、本発明第３の態様において、前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）を決定する副周波数に対応する値ｍｍａｘ１、ｍｍａｘ２、ｍｍａｘ３の少なくともいずれか１つと、前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１）−１，ｎ）を決定する副周波数に対応する値ｍｍａｘ０との差が所定のしきい値Ｎｄｉｆ未満という条件をさらに満たした場合に限り、前記選出単位区間ｑと選出単位区間ｑ＋１を連結するようにしていることを特徴とする。副周波数に対応する値としては、例えば、ＭＩＤＩ規格ではノートナンバーの１／１００単位であるセント（後述する実施形態では、少し粗く１／１２ノートナンバー）を採用することができる。ＭＩＤＩ規格ではピッチベンドでノートナンバー間の微細な楽器音高変動をセント単位で表現することができる。
【００１６】
本発明第４の態様によれば、解析する周波数の間隔を微細に設定することにより、より高精度な周波数解析が可能となり、さらに、音成分の連結条件として、後続の選出単位区間とその直前の単位区間の副周波数との差がしきい値未満であることを追加したので、より精度の高い解析結果に基づいて音成分を連結することが可能となる。
【００１７】
また、本発明第５の態様では、本発明第４の態様において、前記選出単位区間ｑが、既に他の選出単位区間と連結されている場合、前記選出単位区間ｑが連結されている先頭の選出単位区間をｑｏとし、前記第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ）、Ｅ１（Ｐ（ｑ＋１），ｎ−１）、Ｅ１（Ｐ（ｑ＋１），ｎ＋１）を決定する副周波数に対応する値ｍｍａｘ１、ｍｍａｘ２、ｍｍａｘ３の少なくともいずれか１つと、前記第１のスペクトル強度Ｅ１（Ｐ（ｑｏ），ｎ）を決定する副周波数に対応する値ｍｍａｘｏとの差が所定のしきい値Ｎａｄｉｆ未満という条件をさらに満たした場合に限り、前記選出単位区間ｑと選出単位区間ｑ＋１を連結することを特徴とする。
【００１８】
本発明第５の態様によれば、さらに、音成分の連結条件として、前方の選出単位区間が、既に他の選出単位区間と連結されている場合、後続の選出単位区間とその直前の選出単位区間が連結されている先頭の選出単位区間の副周波数との差がしきい値未満であることを追加したので、副周波数が緩やかに変化し周波数が異なる音成分に属する後続の選出単位区間を誤って連結することを防ぎ、より精度の高い音成分の連結を実現することが可能となる。
【００１９】
また、本発明第６の態様では、本発明第３から第５のいずれかの態様において、前記符号コードが、ある時刻ｔに所定の上限以上の数の発音区間が存在することを表現している場合、各発音区間について、前記選出単位区間の先頭時刻から前記時刻ｔまでの経過時間に基づいて強度値を減衰させて減衰強度値を算出し、前記時刻ｔにおいて当該減衰強度値が最小となる発音区間を前記時刻ｔにおいて終了させるよう前記符号コードの発音区間を短縮させるように補正することを特徴とする。
【００２０】
本発明第６の態様によれば、符号コードが、ある時刻ｔに所定の上限以上の数の発音区間が存在することを表現している場合、各発音区間について、選出単位区間の先頭時刻から時刻ｔまでの経過時間に基づいて強度値を減衰させて減衰強度値を算出し、時刻ｔにおいて減衰強度値が最小となる発音区間を時刻ｔにおいて終了させるよう符号コードの発音区間を短縮させるように補正するようにしたので、同時発音数の制限の中で各時刻において可能な限り多くの音を同時発音することが可能となる。
【００２１】
また、本発明第７の態様では、本発明第１から第６のいずれかの態様において、前記第１のスペクトル算出を、前記単位区間の区間信号の構成要素となるべきＮ種類の要素信号を、各々当該周波数ｆ（ｎ）の周期の整数倍に対応し、前記Ｔに最も近いＴ（ｎ）個のサンプルとして準備し、前記Ｎ種類の各周波数ｆ（ｎ）に対応する要素信号と、それぞれ対応する前記単位区間ｐのＴ（ｎ）個のサンプルで構成される区間信号との相関演算を行うことにより、第１のスペクトル強度Ｅ１（ｐ，ｎ）を算出し、前記第２のスペクトルの算出を、前記準備された前記Ｎ種類の各周波数ｆ（ｎ）に対応する要素信号と、それぞれ対応する前記選出単位区間ｑのＴ（ｎ）個のサンプルで構成される区間信号との相関演算を行い、相関値が最も高い周波数ｆ（ｎｍａｘ）に対応する要素信号を調和信号として選出し、前記選出された調和信号と当該調和信号について得られた相関値との積で与えられるＴ（ｎｍａｘ）個のサンプルを含有信号とし、当該含有信号を前記区間信号から減じることにより、Ｔ（ｎｍａｘ）個のサンプルで構成される差分信号を演算により求め、前記Ｔ（ｎｍａｘ）個のサンプルを反映させ更新されたＴ（ｎ）個のサンプルを新たな区間信号として、前記調和信号の選出および差分信号の演算を実行して新たな含有信号および差分信号を得る処理を繰り返し行うことによりＮ種類の含有信号を求め、求められた含有信号の相関値に基づいて、前記Ｎ種類の周波数に対応した第２のスペクトル強度Ｅ２（ｑ，ｎ）を算出することを特徴とする。
【００２２】
本発明第７の態様によれば、全ての単位区間に対する第１のスペクトル算出を、簡易な離散フーリエ変換により行い、選出単位区間に対する第２のスペクトル算出を高精度な一般化調和解析により行うようにしたので、全ての単位区間の解析結果を参考にしつつ、選出単位区間の情報を高精度に得ることを、全体として効率的に行うことが可能となる。
【００２３】
また、本発明第８の態様では、本発明第７の態様において、前記第１のスペクトル算出における前記相関の演算を、直前に位置する単位区間ｐ−１における各周波数ｆ（ｎ）に対応する直前相関演算結果に対し、前記単位区間ｐ−１における先頭Ｗサンプルに対応する相関演算を行い、各周波数ごとの相関値を前記直前相関演算結果より減算するとともに、前記単位区間ｐにおけるＴ（ｎ）サンプル中の最後尾Ｗサンプルに対応する相関演算を行い、各周波数ごとの相関値を前記直前相関演算結果に加算することにより、前記単位区間ｐにおける各周波数ｆ（ｎ）に対応する相関演算結果を取得し、当該相関演算結果に基づいて前記第１のスペクトル強度Ｅ１（ｐ，ｎ）を算出することにより行うことを特徴とする。
【００２４】
本発明第８の態様によれば、第１のスペクトル算出における各単位区間に対する簡易な相関演算を行う際、直前の単位区間に対して行われた相関演算結果を利用し、直前相関演算結果の先頭部分を除去するとともに、当該単位区間の最後尾に対する相関演算を行って、その結果を直前相関演算結果に加算するようにしたので、直前の単位区間の相関演算結果の大部分を流用することができ、全ての単位区間に対する演算処理を高速化することが可能となる。
【発明の効果】
【００２５】
本発明によれば、譜面に基づいて演奏された音響信号から、倍音による影響を可能な限り除去して、譜面に忠実な状態で符号化することが可能となるという効果を有する。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態における音響信号の符号化装置のハードウェア構成図である。
【図２】本発明の一実施形態に係る音響信号の符号化方法の概要を示すフローチャートである。
【図３】時間軸方向の拡大、周波数の増加・時間情報の縮小の概念を示す図である。
【図４】従来技術と比較した本実施形態の区間設定の概念を示す図である。
【図５】本実施形態における解析周波数の論理的／物理的範囲の関係を示す図である。
【図６】本実施形態における単位区間と解析範囲の関係を示す図である。
【図７】本実施形態における単位区間の解析処理の様子を示す図である。
【図８】時間軸拡大処理後の音響信号から抽出した単位区間におけるサンプル列と、調和信号の対応関係を示す図である。
【図９】単位区間長Ｔが調和信号の１／２周期以上で３／４周期未満の場合の解析フレームの時間軸延長を説明する図である。
【図１０】単位区間長Ｔが調和信号の１／４周期以上で１／２周期未満の場合の解析フレームの時間軸延長を説明する図である。
【図１１】図２のＳ８における倍音除去の詳細を示すフローチャートである。
【図１２】連結判断の対象とする選出単位区間と単位区間との関係を示す図である。
【図１３】本実施形態における和音数の調整の概念を従来と比較した図である。
【図１４】本実施形態における和音数の調整の概念を、複旋律の場合に従来と比較した図である。
【図１５】図２のＳ１１における和音数調整処理の詳細を示すフローチャートである。
【図１６】図１５のＳ３７におけるノートオンテーブルからの最小音削除の詳細を示すフローチャートである。
【図１７】符号化対象とする音響信号の原音波形を示す図である。
【図１８】図１７に示した音響信号に対して倍音除去を行わずにＭＩＤＩ符号化を行った結果を示す図である。
【図１９】図１８に示した従来手法による符号化結果を譜面に変換した状態を示す図である。
【図２０】図１７に示した音響信号に対して従来の倍音除去手法によりＭＩＤＩ符号化を行った結果を示す図である。
【図２１】図１７に示した音響信号に対して従来の和音数削減手法によりＭＩＤＩ符号化を行った結果を示す図である。
【図２２】本発明による倍音除去を用いてＭＩＤＩ符号化を行った結果を示す図である。
【図２３】最大和音数を１として、本発明による倍音除去を用いてＭＩＤＩ符号化を行った結果を示す図である。
【図２４】図２３に示した符号化結果を譜面に変換した状態を示す図である。
【発明を実施するための形態】
【００２７】
以下、本発明の好適な実施形態について、図面を参照して詳細に説明する。
図１は、本発明の一実施形態における音響信号の符号化装置のハードウェア構成図である。音響信号の符号化装置は、汎用のコンピュータで実現することができ、図１に示すように、ＣＰＵ１（CPU: Central Processing Unit）と、コンピュータのメインメモリであるＲＡＭ２（RAM: Random Access Memory）と、データを記憶するための大容量のデータ記憶装置３（例えば，ハードディスク）と、ＣＰＵが実行するプログラムを記憶するためのプログラム記憶装置４（例えば，ハードディスク）と、キーボード、マウス等のキー入力Ｉ／Ｆ５と、外部デバイス（データ記憶媒体）とデータ通信するためのデータ入出力インターフェース６と、表示デバイス（ディスプレイ）に情報を送出するための表示出力インターフェース７と、を備え、互いにバスを介して接続されている。
【００２８】
音響信号の符号化装置のプログラム記憶装置４には、ＣＰＵ１を動作させ、コンピュータを、音響信号の符号化装置として機能させるための専用のプログラムが実装されている。専用のプログラムを実行することにより、ＣＰＵ１は、区間設定手段、第１のスペクトル算出手段（要素信号準備手段、相関演算手段を含む）、第２のスペクトル算出手段（要素信号準備手段、調和信号選出手段、差分信号演算手段を含む）、スペクトル補正手段、符号化手段としての機能を実現することになる。また、データ記憶装置３は、処理に必要な様々なデータを記憶する。
【００２９】
図２は、本実施形態に係る音響信号の符号化方法の概要を示すフローチャートである。本実施形態に係る音響信号の符号化方法は、図１に示した音響信号の符号化装置が、図２に示した各ステップ（各段階）を実行することにより行われる。
【００３０】
まず、音響信号の符号化装置は、処理対象であるデジタル音響信号を、データ入出力Ｉ／Ｆ６を介してデータ入力機器から読み込む。デジタル音響信号は、アナログ音響信号を所定のサンプリング周波数、量子化ビット数でサンプリングしたものであり、本実施形態では、サンプリング周波数４４．１ｋＨｚ、量子化ビット数１６ビットでサンプリングした場合を例にとって以下説明していく。サンプリング周波数４４．１ｋＨｚでサンプリングした場合、デジタル音響信号は、１秒間に４４１００個のサンプル（強度値）を有するサンプル列（サンプルの配列：強度配列）として構成されることになる。
【００３１】
デジタル音響信号を読み込んだら、音響信号の符号化装置は、デジタル音響信号を時間軸方向に所定の倍率Ｋ（Ｋは整数）だけ拡大する（Ｓ１）。具体的には、デジタル音響信号を構成するサンプルの数をＫ倍にする。そして、Ｋ個ごとに、元のサンプルと同じ値のものを配置し、その間の（Ｋ−１）個のサンプルの値としては、両側に位置する元のサンプルの値を用いて線形補間したものを与える。原音響信号の各サンプルｊ（ｊ＝０・・・Ｊ−１）についてのサンプル値をｘ（ｊ）とすると、コンピュータは、以下の〔数式１〕に従った処理を実行することにより、拡大後の音響信号の各サンプルｊ・Ｋ＋ｋ（０≦ｋ≦Ｋ−１）についてのサンプル値ｘ´（ｊ・Ｋ＋ｋ）を算出する。以下の〔数式１〕において、ｗはｋ／Ｋで与えられる０≦ｗ≦１の値をとる実数値とする。
【００３２】
〔数式１〕
ｘ´（ｊ・Ｋ＋ｋ）＝（１−ｗ）・ｘ（ｊ）＋ｗ・ｘ（ｊ＋１）
【００３３】
Ｓ１における処理の結果、デジタル音響信号を構成するＪ個のサンプルは、Ｊ×Ｋ個に拡大される。図３（ａ）にＳ１における拡大処理による波形の変化を示す。図３（ａ）における波形は、サンプルの値をプロットしたものを線分で結んだものであるが、サンプル数が多いため、曲線状に表現されるものである。上記〔数式１〕に従った処理を実行することにより、左側に示したような波形が右側に示したような波形に変化することになる。なお、図３の例では、説明の便宜上Ｋ＝２の場合を示している。このように、音響信号を時間軸方向に拡大して解析を行うことにより、元の音響信号に対してそのまま解析を行う場合と同等な周波数解析精度を維持しながら、解析における時間分解能を向上させ、周波数変動を高精度に抽出することが可能となる。
【００３４】
音響信号の符号化装置は、続くＳ２〜Ｓ５において、所定の区間に対して周波数解析を行う。本実施形態では、周波数解析の対象とする区間の設定を、単位区間を設定した後、所定の条件を満たす単位区間を選出単位区間として選出することにより行う。本実施形態における解析対象とする区間の設定の概念を、特許文献３に代表される従来技術と比較して説明する。図４は、従来技術と比較した本実施形態の区間設定の概念を示す図である。従来の場合も本実施形態も、後述するように、サンプリングにより得られた所定数のサンプルを単位区間として設定し、単位区間ごとに周波数解析を行う点は同一である。図４（ａ）に示すように、特許文献３に開示されている従来技術では、ゼロ交差点を特定し、そのゼロ交差点を利用して単位区間の設定位置を可変とする。図４（ａ）では例として３つの単位区間が設定されているが、これらの開始位置（左端）の間隔は均一ではない。そして、設定された各単位区間に対して、離散フーリエ変換及び一般化調和解析の両方を実行して解析結果を得る。
【００３５】
これに対して、図４（ｂ）に示すように、本実施形態では、固定間隔で単位区間を設定し、各単位区間に対して離散フーリエ変換を実行して解析結果を得る。そして、その解析結果を直前の単位区間と比較して、所定の条件を満たす場合に、選出単位区間として選出する。図４（ｂ）の例では、単位区間１、５、６がそれぞれ選出単位区間１、２、３として選出されている。そして、選出単位区間に対して一般化調和解析を実行して解析結果を得る。
【００３６】
具体的には、まず、音響信号の符号化装置が、時間軸方向に拡大されたサンプル上に単位区間を設定する（Ｓ２）。単位区間の長さ（サンプル数Ｔ）は、サンプリング周波数との関係で設定されるが、サンプリング周波数が４４．１ｋＨｚの場合、低域部まで忠実に解析するためには、４０９６サンプル以上必要である。そこで、本実施形態では、１単位区間のサンプル数Ｔ＝４０９６として単位区間を設定している。
【００３７】
単位区間の設定は、特許文献１、４に開示されているように、デジタル音響信号の先頭から順次サンプルを抽出することにより行われる。単位区間は、全てのサンプルを漏らさず設定し、好ましくは、連続する単位区間においてサンプルが重複するように設定する。本発明では、各単位区間の先頭の間隔（シフト幅という）を固定値で設定する。すなわち、重複させるサンプル数を一定として設定する。本実施形態では、シフト幅Ｗ＝６４の固定値とする。これにより、Ｔ＝４０９６の場合、先頭の単位区間をｊ＝０〜４０９５、２番目の単位区間をｊ＝６４〜４１５９、３番目の単位区間をｊ＝１２８〜４２２３というように、６４個のサンプルを重複させながら、設定することになる。そして、各サンプルの値ｘ（ｊ）を各単位区間ｐ（ｐは０以上の整数）ごとの値ｘ（ｐ，ｉ）（０≦ｉ≦Ｔ−１）と表現する。
【００３８】
次に、設定された各単位区間を対象として第１の周波数解析である離散フーリエ変換を実行し、各単位区間のスペクトルを算出する（Ｓ３）。各単位区間のスペクトルの算出は、特許文献１、３、４に開示されているように、ＭＩＤＩのノートナンバーｎに対応する１２８種の解析周波数ｆ（ｎ）＝４４０・２(n-69)/12の調和信号（調和関数）を基本にした離散フーリエ変換により、１２８個の成分を抽出することにより行う。“１２８種”“１２８個”というのは一例であり、例えば、ＭＩＤＩ規格の場合、ノートナンバーｎ＝０〜１２７の範囲に対応するが、グランドピアノを再現するための規格音域は、ノートナンバーｎ＝２１〜１０８の範囲である。したがって、この場合、８８種類の解析周波数を用いて８８個の成分を抽出することになる。また、前述したように、音響信号を時間軸方向に所定の倍率Ｋだけ拡大して周波数解析を行う場合、後述する時間軸拡大処理を省略すると、低音部に位置する解析周波数では解析不能になるため解析周波数の種類は更に少なくなる。例えば、Ｋ＝４の場合、解析周波数はＭＩＤＩ規格上でもノートナンバーｎ＝２４〜１２７（１０４種類）の範囲に制限され、更にグランドピアノの規格音域では、ノートナンバーｎ＝２４〜１０８（８５種類）の範囲に制限される。
【００３９】
本実施形態では、音響信号を時間軸方向にＫ倍に拡大したことに伴い、ｎの上限、下限をそれぞれαだけ下方に移動させる。αは、α＝１２・ｌｏｇ2Ｋ（例えばＫ＝４の場合α＝２４）で定義される整数である。したがって、特許文献１、３、４では、０≦ｎ≦１２７であるが、本実施形態では、−α≦ｎ≦１２７−αである。これにより各調和信号の周波数は、１／Ｋ倍に設定されることになる。ここで、本実施形態における解析周波数の論理的／物理的範囲の関係を図５に示す。図５に示すように、グランドピアノの規格音域は、ｎ＝２１〜１０８の範囲であるため、通常の解析を行う場合は、ｎ＝２１〜１０８の範囲で行うことになる。ところが、本発明では、時間軸拡大することにより周波数を低音側にシフトして解析処理を行う。また、ノートナンバーｎ＝２１以下については、対応する調和信号の１周期が単位区間より長くなるため、時間軸延長（後述）による長周期解析を行う。この結果、ｎ＝−３〜８４について周波数成分が得られるが、最終的に補正処理を行うことにより、ｎ＝２１〜１０８の範囲周波数成分が得られる。
【００４０】
ノートナンバーｎに対応して解析周波数を設定した場合、周波数が高くなるにつれ、ノートナンバー間の周波数間隔が広くなるため、特に、ｎが６０を超えると解析精度が低下してしまう。そこで、本実施形態では、特許文献４に開示したように、ノートナンバー間をＭ個の微分音（副周波数）に分割した１２８Ｍ個の要素信号ｆ（ｎ，ｍ）＝４４０・２(n-69+m/M)/12を用いて解析を行い、１２８Ｍ個の成分を抽出する。後述するＳ１０の符号コード作成処理においてピッチベンド符号の付加など特殊な符号化を行わない限り、各ノートナンバーにおけるＭ個の微分音の情報は不要であるため、Ｍ個の微分音の成分の最大値を当該ノートナンバーにおける成分として代表させ、結果的に１２８個の成分を抽出する。
【００４１】
音響信号の符号化装置による具体的な処理手順としては、各単位区間ｐごとに、まず、ノートナンバー分の強度値の配列Ｅ１（ｐ，ｎ）（−α≦ｎ≦１２７−α）と副周波数配列Ｓ（ｐ，ｎ）を設定し、初期値を全て０とする。続いて、−α≦ｎ≦１２７−αおよび０≦ｍ≦Ｍ−１に対して以下の〔数式２〕に従った処理を実行し、Ｅ１（ｐ，ｎ，ｍ）を最大にする（ｎｍａｘ，ｍｍａｘ）を求める。ただし、処理負荷との関係から、低音部分を必要としない場合は、ｎ＜０については処理を省略することにより、処理負荷を軽減することもできる。
【００４２】
〔数式２〕
Ａ(ｐ，ｎ，ｍ)＝(１／Ｔ（ｎ）)・Σi=0,T(n)-1ｘ(ｐ，ｉ) sin(２πｆ（ｎ，ｍ）（ｉ＋ｐＷ）／ｆｓ)
Ｂ(ｐ，ｎ，ｍ)＝(１／Ｔ（ｎ）)・Σi=0,T(n)-1ｘ(ｐ，ｉ) cos (２πｆ（ｎ，ｍ）（ｉ＋ｐＷ）／ｆｓ)
Ｅ１(ｐ，ｎ，ｍ)＝｛Ａ(ｐ，ｎ，ｍ)｝2＋｛Ｂ(ｐ，ｎ，ｍ)｝2
【００４３】
上記〔数式２〕においてＴ（ｎ）は解析フレーム長であり、調和信号（調和関数）の１周期が単位区間長Ｔ以下の場合、単位区間長Ｔを超えない範囲で調和信号の周期の最大の整数倍になるように設定する。ただし、本発明では、時間軸拡大することにより周波数を低音側にシフトして解析処理を行うため、調和信号（調和関数）の１周期が単位区間長Ｔを超える場合が発生する。具体的には、調和信号の１周期が単位区間長Ｔより大きい場合、Ｔ（ｎ）＝ｇ×ｆｓ／ｆ（ｎ，ｍ）で与え、Ｔ＜Ｔ（ｎ）におけるｘ(ｉ)の値については、後述する時間軸延長処理に基づき設定する。なお、ｇは１以上の整数値、ｆｓはサンプリング周波数（例えば、４４．１ｋＨｚ）である。
【００４４】
上記〔数式２〕に従った処理を各単位区間に対して実行し、Ａ(ｐ，ｎ，ｍ)、Ｂ(ｐ，ｎ，ｍ)、Ｅ１(ｐ，ｎ，ｍ)を求めることも可能である。ここで、本実施形態における単位区間と解析範囲の関係を図６に示す。図６において、上端の波形は原音響信号、下端の波形は調和関数をそれぞれ模式的に示したものである。図６の例では、対象とする単位区間である対象単位区間と、その直前の単位区間である直前単位区間のみを示してあるが、それぞれの相関計算範囲は、矩形の横方向の長さになる。本実施形態では、相関計算範囲Ｔを４０９６サンプル、シフト幅Ｗを６４サンプルとしているため、重複部分が非常に大きい。そこで、本実施形態では、重複部分については、直前単位区間における解析結果を利用することにより、解析処理の効率化を図っている。
【００４５】
本実施形態における単位区間の解析処理の様子を図７に示す。図７に示すように、対象単位区間における解析結果を得る際に、直前単位区間の重複部分を利用する。具体的には、対象単位区間と重複しない直前単位区間の先頭部分を削除し、直前単位区間と重複しない対象単位区間の最後尾部分のみ、相関演算を行って追加する。従って、単位区間内全体に渡って相関演算を行うのは、先頭の単位区間（ｐ＝０）に対してだけということになる。
【００４６】
ｐ≧１の場合、すなわち、２番目以降の単位区間ｐについて処理する場合、直前の単位区間（ｐ−１）についてのＡ(ｐ−１，ｎ，ｍ)、Ｂ(ｐ−１，ｎ，ｍ)が既に算出されている。本実施形態では、Ａ(ｐ−１，ｎ，ｍ)、Ｂ(ｐ−１，ｎ，ｍ)を用いて、以下の〔数式３〕に従った処理を実行することにより、単位区間ｐについてのＡ(ｐ，ｎ，ｍ) 、Ｂ(ｐ，ｎ，ｍ)を算出する。
【００４７】
〔数式３〕
Ａ(ｐ，ｎ，ｍ)＝Ａ(ｐ−１，ｎ，ｍ) −(１／Ｔ（ｎ）)・Σi=0,W-1ｘ(ｐ−１，ｉ) sin(２πｆ（ｎ，ｍ）（ｉ＋（ｐ−１）Ｗ）／ｆｓ)＋(１／Ｔ（ｎ）)・Σi=T(n)-W,T(n)-1ｘ(ｐ，ｉ) sin(２πｆ（ｎ，ｍ）（ｉ＋ｐＷ）／ｆｓ)
Ｂ(ｐ，ｎ，ｍ)＝Ｂ(ｐ−１，ｎ，ｍ) −(１／Ｔ（ｎ）)・Σi=0,W-1ｘ(ｐ−１，ｉ) cos (２πｆ（ｎ，ｍ）（ｉ＋（ｐ−１）Ｗ）／ｆｓ)＋(１／Ｔ（ｎ）)・Σi=T(n)-W,T(n)-1ｘ(ｐ，ｉ) cos (２πｆ（ｎ，ｍ）（ｉ＋ｐＷ）／ｆｓ)
Ｅ１(ｐ，ｎ，ｍ)＝｛Ａ(ｐ，ｎ，ｍ)｝2＋｛Ｂ(ｐ，ｎ，ｍ)｝2
【００４８】
続いて、ノートナンバーｎごとに、０≦ｍ≦Ｍ−１の範囲で、Ｅ１（ｐ，ｎ，ｍ）を最大にする（ｐ，ｎ，ｍｍａｘ）を求め、Ｅ１(ｐ，ｎ)＝Ｅ１(ｐ，ｎ，ｍｍａｘ)、Ｓ（ｐ，ｎ）＝ｍｍａｘとする処理を行う。そして、算出されたＥ１(ｐ，ｎ)、Ｓ（ｐ，ｎ）をメモリに一時保存する。メモリに一時保存されたＥ１(ｐ，ｎ)、Ｓ（ｐ，ｎ）は、後述する単音成分連結処理において用いる。
【００４９】
次に、単位区間ｐにおいて算出されたスペクトル強度Ｅ１(ｐ，ｎ)と、直前区間（ｐ−１）において算出されたスペクトル強度Ｅ１(ｐ−１，ｎ)との変化の評価を行う（Ｓ４）。具体的には、まず、以下の〔数式４〕に従った処理を実行することにより、単位区間ｐの直前区間（ｐ−１）との変化評価値ｄＥ(ｐ−１，ｐ)を算出する。
【００５０】
〔数式４〕
ｄＥ(ｐ−１，ｐ)＝（１００／Ｎ）・Σn=0,N-1｛｜Ｅ１(ｐ，ｎ)−Ｅ１(ｐ−１，ｎ)｜／（Ｅ１(ｐ，ｎ)＋Ｅ１(ｐ−１，ｎ)）｝
【００５１】
そして、得られた変化評価値ｄＥ(ｐ−１，ｐ)が、所定のしきい値未満である場合は、ｐ←ｐ＋１としてＳ２に戻り、次の単位区間ｐの設定を行う。所定のしきい値としては、適宜設定することが可能であるが、〔数式４〕を用いた場合は、１００で正規化してあるため、しきい値＝４０に設定している。
【００５２】
一方、得られた変化評価値ｄＥ(ｐ−１，ｐ)が、所定のしきい値以上である場合は、その単位区間ｐを選出単位区間ｑとして選出し、選出単位区間ｑについて一般化調和解析を行う（Ｓ５）。ｑの値は最初に選出された選出単位区間を０とし、以降は選出されるごとに１ずつ加算した値を与える。具体的には、まず、Ｓ３において設定されたＥ１(ｐ，ｎ)が最大になるＥ１(ｐ，ｎｍａｘ)を求める。すなわち、−α≦ｎ≦１２７−αの全てのｎのうち、Ｅ１(ｐ，ｎ)が最大になるｎの値をｎｍａｘとして求めるとともに、そのときのＥ１(ｐ，ｎ)をＥ１(ｐ，ｎｍａｘ)として求める。これは、上記〔数式２〕の処理を全てのｎに対して実行し、算出されたｎ個のＥ１(ｐ，ｎ)のうち最大のものを選択することにより行われる。さらに、求めたｎｍａｘを用いて、ｍｍａｘ＝Ｓ（ｐ，ｎｍａｘ）と設定する。
【００５３】
そして、得られたｎｍａｘ、ｍｍａｘを用いて以下の〔数式５〕に従った処理を実行することにより、Ａ(ｐ，ｎｍａｘ，ｍｍａｘ)、Ｂ(ｐ，ｎｍａｘ，ｍｍａｘ)を算出する。〔数式５〕に従った処理を実行するに際し、まず、単位区間ｐはｑ番目に選出された選出単位区間ｑであるとした場合に、Ｐ（ｑ）＝ｐと設定し、選出単位区間ｑにおいてノートナンバー分の相関強度配列Ｅ２（ｑ，ｎ）を定義し、初期値を全て０未満の値（例えば−１）に設定しておく。
【００５４】
〔数式５〕
Ａ(ｐ，ｎｍａｘ，ｍｍａｘ)＝(１／Ｔ（ｎｍａｘ）)・Σi=0,T(nmax)-1ｘ(ｐ，ｉ)・ sin(２πｆ（ｎｍａｘ，ｍｍａｘ）ｉ／ｆｓ)
Ｂ(ｐ，ｎｍａｘ，ｍｍａｘ)＝(１／Ｔ（ｎｍａｘ）)・Σi=0,T(nmax)-1ｘ(ｐ，ｉ) cos (２πｆ（ｎｍａｘ，ｍｍａｘ）ｉ／ｆｓ)
Ｅ２(ｑ，ｎｍａｘ)＝｛Ａ(ｐ，ｎｍａｘ，ｍｍａｘ)｝2＋｛Ｂ(ｐ，ｎｍａｘ，ｍｍａｘ)｝2
【００５５】
そして、算出されたＡ(ｐ，ｎｍａｘ，ｍｍａｘ)、Ｂ(ｐ，ｎｍａｘ，ｍｍａｘ)を用いて、以下の〔数式６〕に従った処理を実行することにより、単位区間ｐ内のサンプル（ｐ，ｉ）の値ｘ（ｐ，ｉ）を０≦ｉ≦Ｔ（ｎｍａｘ）−１に渡って更新する。
【００５６】
〔数式６〕
ｘ(ｐ，ｉ)←ｘ(ｐ，ｉ)−Ａ(ｐ，ｎｍａｘ，ｍｍａｘ) ・sin(２πｆ（ｎｍａｘ，ｍｍａｘ）ｉ／ｆｓ)−Ｂ(ｐ，ｎｍａｘ，ｍｍａｘ) ・cos (２πｆ（ｎｍａｘ，ｍｍａｘ）ｉ／ｆｓ) 
【００５７】
〔数式６〕の処理は、元の音響信号から含有信号を除去する処理である。含有成分を除去した後の音響信号に対して、さらに処理したｎｍａｘの値以外のｎを対象としてＥ２(ｑ，ｎ)が最大になる新たなＥ２(ｑ，ｎｍａｘ)を求め、その新たなｎｍａｘを用いて、〔数式５〕〔数式６〕に従った処理を実行する。この結果、さらに含有信号が音響信号から除去される。音響信号の符号化装置は、このような処理を１２８個全てのｎに対して実行し、Ｅ２(ｑ，ｎ)を得る。
【００５８】
本実施形態では、処理負荷を軽減するため、Ｍの値については、ノートナンバーに基づいて可変に設定し、例えば解析する周波数間隔が１００Ｈｚ程度になるようにしている。そして、ノートナンバー６０以下は分割せずＭ＝１にする。また、精度は若干落ちるが、相関強度配列Ｅ１(ｐ，ｎ)を決定するための〔数式２〕の処理でＳ（ｐ，ｎ）を決定し、相関強度配列Ｅ２(ｑ，ｎ)を決定するための〔数式５〕の処理は、ｍ＝Ｓ（ｐ，ｎ）に固定して行い、微分音解析を省略するようにしても良い。また、〔数式５〕の処理で、既に同一ノートナンバーに対して副周波数が異なる信号成分が複数回に渡って解析される可能性があるが、Ｅ２(ｑ，ｎ)に既に値がセットされている場合は、Ｅ１（ｐ，ｎ）の最大値の選定候補から除外するようにしても良い。
【００５９】
ここで、単位区間における解析フレームの設定について説明する。尚、以下説明は上述の選出単位区間においても同様に適用される。図８は、時間軸拡大処理後の音響信号から抽出した単位区間におけるサンプル列と、調和信号の対応関係を示す図である。このうち、図８（ａ）は、時間軸拡大処理後の音響信号から抽出した単位区間におけるサンプル列である。各サンプルにおけるサンプル値（４０９６個）を結ぶことにより、図８（ａ）に示すような波形状で示される。１２８個の調和信号のうち、図８（ｂ）に示すような１周期が単位区間長Ｔ以下の高音部の解析調和信号と相関演算を行う際、および単位区間Ｔより選出された調和信号である含有信号を減算する際には、調和信号の１周期が単位区間長Ｔを超えない範囲まで周期を整数倍した長さを解析フレーム長Ｔ（ｎ）とし、単位区間Ｔの先頭からサンプルＴ（ｎ）個を抽出して、解析フレームとする。
【００６０】
調和信号の１周期が単位区間長Ｔより大きい場合、相関計算区間である解析フレーム長Ｔ（ｎ）を調和信号の１周期分とするため、単位区間長ＴにＴ（ｎ）−Ｔ個のサンプル数を追加することにより時間軸延長処理を行う。この場合、調和信号の１周期を４つの分割区間Ｑ１−Ｑ４として設定する。そして、図８（ｄ）に示すように、単位区間長Ｔが、調和信号の３／４周期に相当する場合は、調和信号の分割区間Ｑ３（１／２周期から３／４周期の区間）に対応する単位区間のサンプルを、調和信号の３／４周期（２７０度：分割区間Ｑ３と分割区間Ｑ４の境界）の時点において時間軸方向に反転させたサンプルを追加する。２７０度の時点において時間軸方向に反転させるのは、調和信号の１周期が正弦波であると仮定すると、分割区間Ｑ３と分割区間Ｑ４（３／４周期から１周期の区間）は２７０度を軸に時間軸方向に左右対称である特徴を利用したものである。このようにして時間軸延長が行われ、図８（ｃ）に示すような波形の解析フレーム（５４６１サンプル）が得られる。図８（ｃ）（ｄ）の例では、単位区間長Ｔが、調和信号の３／４周期に相当する場合を示したが、単位区間長Ｔが、調和信号の３／４周期以上である場合は、同様に処理が行われ、解析フレーム長Ｔ（ｎ）は最大５４６１サンプルとなる。この場合、調和信号の３／４周期を超えた部分の単位区間のサンプルは、単位区間内のいずれかのサンプルが重複して使用されることになる。
【００６１】
また、図９（ｂ）に示すように、単位区間長Ｔが、調和信号の１／２周期以上で３／４周期未満に相当する場合（単位区間の最終サンプルが分割区間Ｑ３に属する場合）は、分割区間Ｑ４全体と分割区間Ｑ３の一部が欠損しているため、分割区間Ｑ２（１／４周期から１／２周期の区間）に対応する単位区間のサンプルを、調和信号の１／２周期（１８０度：分割区間Ｑ２と分割区間Ｑ３の境界）の時点において時間軸および振幅軸方向に反転させたサンプルを分割区間Ｑ３に追加し、さらに追加された分割区間Ｑ３のサンプルを、調和信号の３／４周期（２７０度）の時点において反転させたサンプルを追加する。１８０度の時点において時間軸および振幅軸方向に反転させるのは、調和信号の１周期が正弦波であると仮定すると、分割区間Ｑ２と分割区間Ｑ３は１８０度を軸に時間軸および振幅軸方向に１８０度回転させた対称形である特徴を利用したものである。このようにして時間軸延長が行われ、図９（ａ）に示すような波形の解析フレーム（最大８１９２サンプル）が得られる。この場合、調和信号の１／２周期を超えた部分の単位区間のサンプルは、単位区間内のいずれかのサンプルが重複して使用されることになる。
【００６２】
また、図１０（ｂ）に示すように、単位区間長Ｔが、調和信号の１／４周期以上で１／２周期未満に相当する場合（単位区間の最終サンプルが分割区間Ｑ２に属する場合）は、分割区間Ｑ３・Ｑ４全体と分割区間Ｑ２の一部が欠損しているため、Ｑ１区間（先頭から１／４周期の区間）に対応する単位区間のサンプルを、調和信号の１／４周期（９０度：分割区間Ｑ１と分割区間Ｑ２の境界）の時点において時間軸方向に反転させたサンプルを分割区間Ｑ２に追加し、さらに追加された分割区間Ｑ２のサンプルを、調和信号の１／２周期（１８０度）の時点において時間軸および振幅軸方向に反転させたサンプルを分割区間Ｑ３に追加し、さらに追加された分割区間Ｑ３のサンプルを、調和信号の３／４周期（２７０度）の時点において時間軸方向に反転させたサンプルを追加する。９０度の時点において時間軸方向に反転させるのは、調和信号の１周期が正弦波であると仮定すると、分割区間Ｑ１と分割区間Ｑ２は９０度を軸に時間軸方向に左右対称である特徴を利用したものである。このようにして時間軸延長が行われ、図１０（ａ）に示すような波形の解析フレーム（最大１６３８４サンプル）が得られる。この場合、調和信号の１／４周期を超えた部分の単位区間のサンプルは、単位区間内のいずれかのサンプルが重複して使用されることになる。
尚、単位区間長Ｔが、調和信号の１／４周期未満に相当する場合（単位区間の最終サンプルが分割区間Ｑ１に属する場合）も起こり得るが、これをもとに時間軸延長を行って相関計算を行っても、ソースとなる情報量が少なすぎて、有意な相関値が得られないため、単位区間長Ｔが、調和信号の１／４周期未満に相当する周波数に対しては解析対象としないものとする。
【００６３】
各選出単位区間ｑについて解析フレームを変化させながら周波数解析を行い、スペクトル（１２８個の周波数成分）が算出されたら、音響信号の符号化装置は、個々の選出単位区間ごとに、Ｓ５において算出されたスペクトルに基づいて、Ｎ種類の各周波数に対応して、各周波数を特定可能な周波数情報と、各々に対応するスペクトル強度、および当該選出単位区間の開始と終了を特定可能な時間情報で構成される単音成分を作成する（Ｓ６）。具体的には、算出したスペクトルに、各ノートナンバーｎの時刻、時間長の情報を追加し、[開始時刻，時間長，主周波数ｎ，副周波数Ｓ（Ｐ（ｑ），ｎ），強度Ｅ２（ｑ，ｎ）]で構成される単音成分を作成する。「開始時刻」としては選出単位区間の先頭の時刻を、デジタル音響信号全体において特定できる情報であれば良く、本実施形態では、単位区間の先頭サンプル（ｉ＝０）に付されたデジタル音響信号全体におけるサンプル番号（絶対サンプルアドレス：ｊに対応）を記録している。この絶対サンプルアドレスをサンプリング周波数（４４１００）で除算することにより、音響信号先頭からの時刻が得られる。時間長は、本実施形態では選出単位区間ごとに可変で与えられることを特徴とし、直後に後続する一般化調和解析を行った選出単位区間の開始時刻までの差分（後続する選出単位区間の開始時刻−当該選出単位区間の開始時刻）で与えられる。直後に後続する選出単位区間が存在しない場合（最終の選出単位区間）、単位区間のシフト幅Ｗを時間長として与える。
【００６４】
続いて、時間軸方向に拡大して処理されたことによる変動を是正するため、各単音成分を補正する処理を行う（Ｓ７）。単音成分が作成されたら、全ての周波数情報（ノートナンバー値に対応）に１２・ｌｏｇ2Ｋだけ加算する処理を行う。例えば、Ｋ＝４の場合、２４半音（２オクターブ）だけ全体的に音高を上げる。この処理は、Ｓ１においてサンプル数をＫ倍したことにより周波数が１／Ｋになっているため、周波数をＫ倍にして元の状態に戻すために行う。この補正によりノートナンバーが規格値上限の１２７を超えるノートナンバーをもつ符号コードは削除する。具体的には補正前のノートナンバーが１２８−１２・ｌｏｇ2Ｋ以上の符号コードが削除される。
【００６５】
続いて、全ての開始時刻，時間長に１／Ｋを乗算する。これにより、後述する符号化処理によりＭＩＤＩ符号に変換した場合、ＭＩＤＩ符号全体の演奏時間、および各ノートイベントの発音時間が１／Ｋに縮小される。この処理は、Ｓ１においてサンプル数をＫ倍したことにより全体の演奏時間がＫ倍になっているため、時刻を１／Ｋにして元の状態に戻すために行う。
【００６６】
Ｓ７における処理の結果、周波数（音高）はＫ倍になるとともに、時間情報は１／Ｋになる。Ｓ７の補正処理による音成分の変化の様子を図３（ｂ）に示す。図３（ｂ）においては、Ｋ＝２の場合の音成分の変化を、音符により示している。Ｓ７の補正処理により左側の“ミ”の音符は、右側では１オクターブ高い（周波数が２倍）“ミ”の音符に変化している。一方、左側の四分音符が、右側では時間的に１／２の八分音符に変化している。
【００６７】
各単音成分の周波数をＫ倍、時間軸を１／Ｋ倍にする処理を行ったら、次に、音響信号の符号化装置は、倍音成分の除去を行う（Ｓ８）。具体的には、Ｓ７までの処理により得られたＥ２（ｑ，ｎ）に対して、ｎの値が小さい順に倍音成分を除去する補正を行いＥ‘（ｑ，ｎ）に更新し、ｎより大きいＥ２（ｑ，ｎ）に対しては、更新されたＥ‘（ｑ，ｎ）を用いて倍音成分を除去する補正を行う。ここで、ｎの値が小さい順にＥ２（ｑ，ｎ）を補正する理由は次の通りである。ｎが比較的大きいＥ２（ｑ，ｎ）に含まれる倍音成分には、ｈを２以上の整数として複数個のＥ２（ｑ，ｎ−１２・ｌｏｇ2ｈ）に基づく倍音が含まれている可能性があり、更に各Ｅ２（ｑ，ｎ−１２・ｌｏｇ2ｈ）も、ｈ’を２以上の整数として、それより低いＥ２（ｑ，ｎ−１２・ｌｏｇ2ｈ−１２・ｌｏｇ2ｈ’）に基づく倍音が含まれている可能性があり、倍音成分が階層的に含まれているため倍音成分を特定できず高精度に除去することができない。一方、ｎが最小に近いＥ２（ｑ，ｎ）には、Ｅ２（ｑ，ｎ−１２・ｌｏｇ2ｈ）に対応する音成分が存在しないため、倍音成分は存在せず、基音として特定でき、補正する必要がない。次にｎが最小より若干大きいＥ２（ｑ，ｎ）には、Ｅ２（ｑ，ｎ−１２・ｌｏｇ2ｈ）に対応する音成分が１つしか存在しないため、Ｅ２（ｑ，ｎ−１２・ｌｏｇ2ｈ）が含まれる倍音成分の基音として特定でき、倍音成分を除去したＥ‘（ｑ，ｎ）に補正することができる。これよりｎが大きいＥ２（ｑ，ｎ）に対しては、倍音成分を除去した基音成分のみに補正されたＥ’（ｑ，ｎ−１２・ｌｏｇ2ｈ）を用いて倍音成分を高精度に除去することが可能になる。
【００６８】
図１１は、Ｓ８における倍音成分補正の詳細を示すフローチャートである。まず、初期設定を行う（Ｓ２１）。具体的には、倍音変数ｈを初期値“２”に設定するとともに、倍音成分の総和を記録する変数Ｖを初期値“０”に設定する。倍音変数ｈを初期値“２”に設定することにより一番低い倍音である２倍音から処理が行われることになる。
【００６９】
次に、“ｎ−１２・ｌｏｇ2ｈ”を算出し、“ｎ−１２・ｌｏｇ2ｈ”と“０”を比較する（Ｓ２２）。そして、ｎ−１２・ｌｏｇ2ｈ≧０である場合は、変数Ｖに｛Ｅ２（ｑ，ｎ）・Ｅ２（ｑ，ｎ−１２・ｌｏｇ2ｈ）｝1/2を加算し、倍音成分の総和Ｖを更新する処理を行う（Ｓ２３）。Ｓ２２において、ｎ−１２・ｌｏｇ2ｈ＜０と判断された場合には、Ｓ２３における総和Ｖの更新処理は行わない。これは、Ｅ２（ｑ，ｎ）にはｎ＜０に対応する値が存在しないからである。
【００７０】
続いて、倍音変数ｈをインクリメント（ｈ←ｈ＋１）する（Ｓ２４）。そして、処理対象の上限であるＨと比較する（Ｓ２５）。倍音変数ｈの上限Ｈは、何倍音まで処理するかを示している。本実施形態では、Ｈ＝１０に設定し、１０倍音まで処理する。この上限値Ｈを変更することにより、処理する倍音の数を変化させることができる。Ｓ２５における比較の結果、倍音変数ｈが上限値Ｈ以下である場合は、Ｓ２２に戻って、次の倍音成分の処理を行う。
【００７１】
一方、ｈがＨより大きい場合は、２倍音からＨ倍音までの倍音成分の総和Ｖが得られたことになるので、Ｅ２（ｑ，ｎ）から倍音成分を除去する（Ｓ２６）。具体的には、以下の〔数式７〕に従った処理を実行し、補正値Ｅ‘（ｑ，ｎ）を得る。
【００７２】
〔数式７〕
Ｅ‘（ｑ，ｎ）←Ｅ２（ｑ，ｎ）−Ｖ・γ
Ｖ＝Σh=2,10｛Ｅ２（ｑ，ｎ）・Ｅ２（ｑ，ｎ−１２・ｌｏｇ2ｈ）｝1/2
【００７３】
上記〔数式７〕に示すように、倍音成分の総和Ｖには倍音補正強度γが乗じられた後、減算される。倍音補正強度γは、０≦γ≦１の実数値であり、適宜設定が可能である。γの値が大きいほど補正強度が強く、倍音が除去されることになる。なお、Ｓ２３において加算されていく総和Ｖは、Ｓ２６においては、〔数式７〕の第２式のようになっている。
【００７４】
補正値Ｅ‘（ｑ，ｎ）が得られたら、得られた補正値Ｅ‘（ｑ，ｎ）と“０”を比較する（Ｓ２７）。比較の結果、補正値Ｅ‘（ｑ，ｎ）が０以上であれば、そのまま補正値Ｅ‘（ｑ，ｎ）として採用し、補正値Ｅ‘（ｑ，ｎ）が０未満であれば、補正値Ｅ‘（ｑ，ｎ）を“０”に設定する（Ｓ２８）。このように、補正値Ｅ‘（ｑ，ｎ）が０未満となった場合に、強制的に“０”に設定するのは、補正値Ｅ‘（ｑ，ｎ）として負の値は物理的に有り得ないためである。
【００７５】
図１１に示す倍音処理は、０≦ｎ≦１２７の１２８個の各ｎについて実行される。Ｓ８における倍音成分除去の結果は、補正相関強度配列Ｅ‘（ｑ，ｎ）として出力される。
【００７６】
倍音成分除去処理を行ったら、次に、音響信号の符号化装置は、連続する選出単位区間において単音成分を連結（統合）する処理を行う（Ｓ９）。具体的には、連続する選出単位区間における単音成分が、所定の連結条件を満たす場合、２つの単音成分を連結する。ここで、連結判断の対象とする選出単位区間と単位区間との関係を図１２に示す。
【００７７】
図１２は、図４（ｂ）と同様、単位区間１−６のうち、単位区間１、５、６がそれぞれ選出単位区間１、２、３として選出された例を示している。本実施形態では、連結判断の対象を音成分として選出される選出単位区間の間ではなく、選出単位区間と隣接する単位区間の間で行う点に特徴がある。図１２の例では、選出単位区間１と選出単位区間２（単位区間５）を連結するかどうか判断する際に、選出単位区間１と選出単位区間２（単位区間５）の間で連結条件を判断するのではなく、選出単位区間２（単位区間５）とその直前の単位区間４の間で連結条件を判断する。これにより、時間的に最も近い単位区間が連結判断の際に考慮されることとなり、適切に音成分を連結することが可能になる。
【００７８】
連結条件としては、同一の音として連続性を有する状態を適宜設定することができる。本実施形態では、選出単位区間ｑと選出単位区間ｑ＋１を連結するか否かを判断するにあたり、４つの条件について判断する。第１の条件は、選出単位区間ｑ＋１（単位区間としてはＰ（ｑ＋１））における単音成分の強度から直前の単位区間Ｐ（ｑ＋１）−１における単音成分の強度を減じた値が所定のしきい値Ｌｄｉｆ未満であること。第２の条件は、その双方の強度が所定のしきい値Ｌｍｉｎより大きいこと。第３の条件は、ノートナンバーに対して上下１の変移を考慮し、副周波数を考慮した周波数の差が所定の閾値Ｎｄｉｆ未満であること。第４の条件は、選出単位区間ｑが既に他の選出単位区間と連結されている場合、選出単位区間ｑと連結されている先頭の選出単位区間ｑｏと選出単位区間ｑ＋１の副周波数を考慮した周波数の差が所定の閾値Ｎａｄｉｆ未満であること。以上４つの条件を全て満たす場合に、連続性を有するとして、後続の単音成分を前方の単音成分に連結する。第１の条件と第２の条件においても、ノートナンバーに対して上下１の変移を考慮する。本実施形態では、ノートナンバーの変移を考慮した以下の〔数式８〕〜〔数式１０〕に従った４条件を満たすかどうかを判断することにより連結を行うか否かを決定する。
【００７９】
〔数式８〕
Ｅ１（Ｐ（ｑ＋１），ｎ）−Ｅ１（Ｐ（ｑ＋１）−１，ｎ）＜Ｌｄｉｆ
Ｅ１（Ｐ（ｑ＋１）−１，ｎ）＞ＬｍｉｎかつＥ１（Ｐ（ｑ＋１），ｎ）＞Ｌｍｉｎ
｜Ｓ（Ｐ（ｑ＋１）−１，ｎ）−Ｓ（Ｐ（ｑ＋１），ｎ）｜＜Ｎｄｉｆ
｜Ｓ（Ｐ（ｑｏ），ｎ）−Ｓ（Ｐ（ｑ＋１），ｎ）｜＜Ｎａｄｉｆ
【００８０】
上記〔数式８〕において１行目の式は、後続の単音成分の強度から前方の単音成分の強度を減じた値が所定のしきい値Ｌｄｉｆ未満であることを示し、２行目の式は、前方の単音成分と後続の単音成分の強度がともに所定のしきい値Ｌｍｉｎより大きいことを示し、３行目の式は、副周波数を考慮したノートナンバー単位の周波数の差が所定の閾値Ｎｄｉｆ未満であることを示している。４行目の式は、前方の選出単位区間がそれより前方の選出単位区間と既に連結されている場合に、先頭の選出単位区間ｑoと後続の選出単位区間ｑ＋１の副周波数を考慮したノートナンバー単位の周波数の差が所定の閾値Ｎａｄｉｆ未満であることを示している。
【００８１】
〔数式９〕
Ｅ１（Ｐ（ｑ＋１），ｎ−１）−Ｅ１（Ｐ（ｑ＋１）−１，ｎ）＜Ｌｄｉｆ
Ｅ１（Ｐ（ｑ＋１）−１，ｎ）＞ＬｍｉｎかつＥ１（Ｐ（ｑ＋１），ｎ−１）＞Ｌｍｉｎ
｜Ｓ（Ｐ（ｑ＋１）−１，ｎ）−Ｓ（Ｐ（ｑ＋１），ｎ−１）−Ｍ｜＜Ｎｄｉｆ
｜Ｓ（Ｐ（ｑｏ），ｎ）−Ｓ（Ｐ（ｑ＋１），ｎ−１）−Ｍ｜＜Ｎａｄｉｆ
【００８２】
上記〔数式８〕が同一ノートナンバー同士で比較しているのに対して、上記〔数式９〕においては、後続の単音成分として１ノートナンバー分下げたものを対象としている点が異なっている。３行目の式は、周波数をノートナンバー単位にすると、第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ−１）を決定する周波数Ｓ（Ｐ（ｑ＋１），ｎ−１）と、第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１）−１，ｎ）を決定する副周波数Ｓ（Ｐ（ｑ＋１）−１，ｎ）との差が所定のしきい値Ｎｄｉｆ未満であることを示している。４行目の式は、周波数をノートナンバー単位にすると、第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ−１）を決定する周波数Ｓ（Ｐ（ｑ＋１），ｎ−１）と、第１のスペクトル強度Ｅ１（Ｐ（ｑｏ），ｎ）を決定する副周波数Ｓ（Ｐ（ｑｏ），ｎ）との差が所定のしきい値Ｎａｄｉｆ未満であることを示している。
【００８３】
〔数式１０〕
Ｅ１（Ｐ（ｑ＋１），ｎ＋１）−Ｅ１（Ｐ（ｑ＋１）−１，ｎ）＜Ｌｄｉｆ
Ｅ１（Ｐ（ｑ＋１）−１，ｎ）＞ＬｍｉｎかつＥ１（Ｐ（ｑ＋１），ｎ＋１）＞Ｌｍｉｎ
｜Ｓ（Ｐ（ｑ＋１）−１，ｎ）−Ｓ（Ｐ（ｑ＋１），ｎ＋１）＋Ｍ｜＜Ｎｄｉｆ
｜Ｓ（Ｐ（ｑｏ），ｎ）−Ｓ（Ｐ（ｑ＋１），ｎ＋１）＋Ｍ｜＜Ｎａｄｉｆ
【００８４】
上記〔数式８〕が同一ノートナンバー同士で比較しているのに対して、上記〔数式１０〕においては、後続の単音成分として１ノートナンバー分上げたものを対象としている点が異なっている。３行目の式は、周波数をノートナンバー単位にすると、第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ＋１）を決定する周波数Ｓ（Ｐ（ｑ＋１），ｎ＋１）と、第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１）−１，ｎ）を決定する副周波数Ｓ（Ｐ（ｑ＋１）−１，ｎ）との差が所定のしきい値Ｎｄｉｆ未満であることを示している。４行目の式は、周波数をノートナンバー単位にすると、第１のスペクトル強度Ｅ１（Ｐ（ｑ＋１），ｎ＋１）を決定する周波数Ｓ（Ｐ（ｑ＋１），ｎ＋１）と、第１のスペクトル強度Ｅ１（Ｐ（ｑｏ），ｎ）を決定する副周波数Ｓ（Ｐ（ｑｏ），ｎ）との差が所定のしきい値Ｎａｄｉｆ未満であることを示している。
【００８５】
本実施形態における具体的な処理手順としては、まず、〔数式８〕に示した条件を全て満たすかどうかを判断する。そして、満たす場合には、連結処理へ進む。〔数式８〕に示した条件のうち１つでも満たさないものがある場合は、〔数式９〕に示した条件を全て満たすかどうかを判断する。そして、満たす場合には、連結処理へ進む。〔数式９〕に示した条件のうち１つでも満たさないものがある場合は、〔数式１０〕に示した条件を全て満たすかどうかを判断する。そして、満たす場合には、連結処理へ進む。〔数式１０〕に示した条件のうち１つでも満たさないものがある場合は、連結を行わないという決定を行う。
【００８６】
連結後の主周波数、副周波数、強度は前方の選出単位区間における単音成分の各値を採用し、時間長は双方の和で与える。すなわち、選出単位区間ｑと選出単位区間ｑ＋１を連結した場合、主周波数、副周波数、強度は選出単位区間ｑのものを採用する。この時、強度は倍音成分除去を行った後の値を使用する。連結条件としての具体的なしきい値は、本実施形態では、Ｌｄｉｆ＝１０[単位：１２８段階ベロシティ換算]、Ｌｍｉｎ＝１[単位：１２８段階ベロシティ換算]、Ｎｄｉｆ＝４／２５[単位：ノートナンバー換算] 、Ｎａｄｉｆ＝８／２５[単位：ノートナンバー換算]としている。連結処理は、符号コードへの変換前に行うものであるため、各しきい値は、ノートナンバー、ベロシティに換算したものである。Ｓ９における連結処理の結果、連結処理されなかった単音成分はそのまま残ることになる。また、連結により連結音成分が得られることになるが、連結音成分は、単音成分と同様、[開始時刻，時間長，主周波数ｎ，副周波数Ｓ（Ｐ（ｑ），ｎ），強度Ｅ‘（ｑ，ｎ）]で構成され、このうち時間長が単音成分より大きい値を有することになる。連結処理により、単音成分と連結音成分が混在することになるが、以降これらをまとめて音成分と呼ぶことにする。なお、Ｓ９における連結処理については、実行した方が、長音の音符で表現することになり、符号量が少なくなりＭＩＤＩ音源で円滑で自然な演奏が行われるようになるため、一般に望ましいが、ピッチベンド符号の付加などが行われないと、逆にビブラートなど音の微妙な時間的変化が消失するためＭＩＤＩ音源で不自然に聞こえる場合もあるため、必ずしも必須ではない。Ｓ９における連結処理を行わない場合、全てが短い音符として表現されることになる。
【００８７】
Ｓ９の連結処理を終えたら、最終的に得られた[開始時刻，時間長，主周波数ｎ，副周波数Ｓ（Ｐ（ｑ），ｎ），強度Ｅ‘（ｑ，ｎ）]の音成分を、符号コードに変換する（Ｓ１０）。符号コードの形式としては、周波数情報と、各周波数に対応するスペクトル強度、および単位区間の開始と終了を特定可能な時間情報を有するものであれば、どのような形式のものであっても良いが、本実施形態では、ＭＩＤＩ形式に変換する。ＭＩＤＩでは、発音開始と発音終了を別のイベントとして発生するため、本実施形態では、１つの音成分を２つのＭＩＤＩノートイベントに変換する。具体的には、「開始時刻」で、ノートナンバーｎのノートオンイベントを発行し、ベロシティ値は強度Ｅ‘（ｑ，ｎ）の最大値をＥｍａｘとして、１２８・｛Ｅ‘（ｑ，ｎ）／Ｅｍａｘ｝1/4で与える。時刻については、Standard MIDI Fileでは、直前イベントとの相対時刻（デルタタイム）で与える必要があり、その時刻単位は任意の整数値で定義でき、例えば、１／１５３６[秒]の単位に変換して与える。そして、絶対時刻が「開始時刻」＋「時間長」で特定される終了時刻で（デルタタイムでは「時間長」で与えられる終了時刻で）、ノートナンバーｎのノートオフイベントを発行する。この際、時間長には、０以上１以下の実数を乗じる。これは、使用するＭＩＤＩ音源の音色にも依存するが、ＭＩＤＩ音源の余韻を考慮して早めにノートオフ指示をするためである。時間長をそのまま用いてもＭＩＤＩ音源の処理上問題はないが、発音の際、後続音と部分的に重なる場合がある。
【００８８】
Ｓ１０の符号コード変換処理を終えたら、次に、符号コードに対して必要な調整を行う（Ｓ１１）。具体的には、和音数（同時発音数）の調整とビットレートの調整の２つの調整を行う。まず、和音数の調整を行う。これは、符号コードの処理可能な同時発音数（すなわち最大和音数）に収まるように、同時に発音する符号コードの数（すなわち和音数）を抑える処理である。本実施形態では、上述のように符号コードとしてＭＩＤＩ符号に変換する。
【００８９】
ここで、本実施形態における和音数の調整の概念について説明する。図１３は、本実施形態における和音数の調整の概念を従来の場合と比較した図である。図１３において、縦軸はノートナンバー、ベロシティを示し、横軸は時間を示している。また、各矩形は、ノートイベント対で特定される発音区間を示しており、横方向の幅は発音時間を示し、縦方向の位置はノートナンバー、縦方向の幅はベロシティを示している。
【００９０】
図１３（ａ）のようなＭＩＤＩデータを和音数１に調整する場合を考えてみる。この場合、従来の手法では、同時刻に重複する発音区間のうち、一方を単純に削除する処理を行う。このため、調整処理後は、図１３（ｂ）に示すように、重複していない部分まで削除されてしまう。本実施形態による調整処理では、発音区間のうち、重複する部分を特定する。図１３（ｃ）では、発音区間の重複する部分を濃い網掛けで示している。そして、発音区間の重複する部分のみを削除して和音数が１になるように調整する。この結果、調整処理後は、図１３（ｄ）に示すように、重複していない部分を残すことが可能になる。図１３（ｄ）の例では、いずれもノートオン時刻の早いものの後部を削除する処理を行っているが、本実施形態では、ノートオン時刻からの経過時間に基づいてベロシティを減衰する補正を行い、重複時刻において補正ベロシティの小さい方を削除するため、現実には、ノートオン時刻が遅い方の発音区間が削除される場合もある。
【００９１】
図１３の例は、単旋律の場合であるが、図１４に複旋律の場合について示す。図１４（ａ）のようなＭＩＤＩデータを和音数２に調整する場合、従来の手法では、同時刻に重複する発音区間のうち、ノートオン時刻が遅いものを単純に削除する処理を行う。このため、調整処理後は、図１４（ｂ）に示すように、ノートオン時刻が早いものだけが残り、実際の演奏とは異なったものになる。本実施形態による調整処理では、発音区間のうち、発音区間が３つ以上重複する部分を特定する。図１４（ｃ）では、発音区間の重複する部分を濃い網掛けで示している。そして、発音区間の重複する部分のみを削除して和音数が２になるように調整する。この結果、調整処理後は、図１４（ｄ）に示すように、実際の演奏に近い状態で残すことが可能になる。
【００９２】
実際には、Ｓ１１における和音数の調整は、時間軸方向に発音期間中（ノートオン状態）のノートイベントの個数を連続的にカウントし、最大和音数を超えるノートイベントが同時刻に存在する箇所が見つかった場合は、まず、ノートオン時のベロシティ値に対してノートオン時刻からの経過時間で補正した補正ベロシティ値を算出する。そして、算出された補正ベロシティ値で優先度を評価し、最大和音数以下になるように、優先度の低いノートイベント対を強制的にノートオフさせる補正処理を行う。この際、ベロシティ値またはデュレーション値のいずれかが所定の下限値より低い場合、優先度に関係なく削除する処理も行う。ｉ番目のノートイベントＥｖ（ｉ）のノートオン時刻をＥｖ（ｉ）．ｔｉｍｅ、ベロシティ値をＥｖ（ｉ）．ｖｅｌｏｃｉｔｙとすると、補正ベロシティ値Ｖｃ（ｉ，ｔ）は、以下の〔数式１１〕に従った処理を実行することにより算出される。
【００９３】
〔数式１１〕
Ｖｃ（ｉ，ｔ）＝Ｅｖ（ｉ）．ｖｅｌｏｃｉｔｙ・ｅｘｐ｛（ｔ−Ｅｖ（ｉ）．ｔｉｍｅ）・τ｝
【００９４】
上記〔数式１１〕において、τは減衰係数であり、本実施形態では、τ＝−１／１５３６に設定している。このため、時刻ｔの単位を１秒あたり１５３６とすると、Ｖｃ（ｉ，ｔ）は１秒後に１／２．７に減衰する。
【００９５】
Ｓ１１の和音数の調整の詳細について、図１５のフローチャートを用いて説明する。まず、初期設定を行う（Ｓ３１）。具体的には、入力MIDIイベント配列Ei(i)を用意し、入力MIDIイベント数をNiとし、入力MIDIイベントポインタi に初期値０を設定する。入力MIDIイベント配列Ei(i)は（time,note_number,channel,velocity）の属性をもち、timeの低い順、note_numberの低い順にソートされている。そして、ノートオンテーブルT(n)を全て初期値−１に設定し、ノートオンカウンタCnに初期値０を設定する。また、出力MIDIイベント配列Eo(i) を用意し、出力MIDIイベント数Noに初期値０を設定する。出力MIDIイベント配列Eo(i)も（time,note_number,channel,velocity）の属性をもっている。
【００９６】
続いて、ｉ番目のイベントがノートオンであるかどうかを判断する（Ｓ３２）。具体的には、入力MIDIイベント配列Ei(i)の属性の一つである強度値Ei(i). velocityの値が０より大きいかどうかを判断する。
【００９７】
Ｓ３２における判断の結果、ｉ番目のイベントがノートオンである場合は、ノートオンテーブルへ登録を行う（Ｓ３３）。具体的には、T(Ei(i). note_number)の値として iを設定する。そして、ノートオンカウンタCnをインクリメント（Cn←Cn＋１）する。さらに、出力MIDIイベント配列へ登録する。具体的には、Eo(No).time←Ei(i). time、Eo(No).note_number←Ei(i). note_number、Eo(No).channel←Ei(i). channel、Eo(No).velocity←Ei(i). velocityとすることにより、ｉ番目の入力MIDIイベントの各属性値を、ｉ番目の出力MIDIイベントの各属性値として与える処理を行う。出力MIDIイベント配列へ登録したら、出力MIDIイベント数Noをインクリメント（No←No＋１）する。
【００９８】
一方、Ｓ３２における判断の結果、ｉ番目のイベントがノートオンでない場合は、ｉ番目のイベントがノートオンテーブルに登録済みであるかどうかを判断する（Ｓ３４）。具体的には、T(Ei(i). note_number)が０以上であるかどうかを判断する。
【００９９】
Ｓ３４における判断の結果、ｉ番目のイベントがノートオンテーブルに登録済みである場合は、ノートオンテーブルからの削除を行う（Ｓ３５）。具体的には、T(Ei(i). note_number)の値として−１を設定する。そして、ノートオンカウンタCnをデクリメント（Cn←Cn−１）する。さらに、出力MIDIイベント配列へ登録する。具体的には、Eo(No).time←Ei(i). time、Eo(No).note_number←Ei(i). note_number、Eo(No).channel←Ei(i). channel、Eo(No).velocity←Ei(i). velocityとすることにより、ｉ番目の入力MIDIイベントの各属性値を、ｉ番目の出力MIDIイベントの各属性値として与える処理を行う。出力MIDIイベント配列へ登録したら、出力MIDIイベント数Noをインクリメント（No←No＋１）する。Ｓ３４における判断の結果、ｉ番目のイベントがノートオンテーブルに登録済みでない場合は、Ｓ３５の処理は行わない。
【０１００】
Ｓ３３においてノートオンテーブルへ登録を行った場合には、ノートオンカウンタが上限を超えたかどうかを判断する（Ｓ３６）。具体的には、ノートオンカウンタCnが、上限として設定された最大和音数より大きいかどうかを判断する。ＭＩＤＩ符号化を行う場合には、例えば、最大和音数は３２に設定される。
【０１０１】
Ｓ３６における判断の結果、ノートオンカウンタCnが上限を超えた場合は、ノートオンテーブルからの最小音削除処理を行う（Ｓ３７）。ノートオンテーブルからの最小音削除処理を終えたら、入力MIDIイベントポインタをインクリメントする（Ｓ３８）。そして、入力MIDIイベントポインタｉが入力MIDIイベント数Niより小さいかどうかを判断する（Ｓ３９）。判断の結果、入力MIDIイベントポインタｉが入力MIDIイベント数Niより小さい場合は、Ｓ３２に戻って次の入力イベントの処理を行う。Ｓ３９において、ｉ＝Niである場合は、全ての入力イベントについて処理を行ったことになるので、和音数調整処理を終了する。一方、Ｓ３２において、ノートオフであると判断された入力イベントについては、Ｓ３５のノートオンテーブルからの削除処理を行ったか否かに関わらず、Ｓ３７のノートオンテーブルからの最小音削除処理は行わない。
【０１０２】
次に、Ｓ３７のノートオンテーブルからの最小音削除処理の詳細を、図１６のフローチャートを用いて説明する。まず、ノートナンバーn、強度最小ノートナンバーnmin、最小ベロシティ値Vminの初期設定を行う（Ｓ４１）。具体的には、ノートナンバーn←0、強度最小ノートナンバーnmin←-1、最小ベロシティ値Vmin←128に設定する。
【０１０３】
初期設定後、そのノートナンバーｎに対応するノートオンイベントがノートオンテーブルに登録されているかどうかを判断する（Ｓ４２）。具体的には、Ｔ（ｎ）≧０であるかどうかを判断する。登録されている場合は、そのノートオンイベントの補正強度の算出を行う（Ｓ４３）。具体的には、上記〔数式１１〕に従った処理を実行する。入力MIDIイベント配列Ei(i)として（time,note_number,channel,velocity）の属性を持つとすると、上記〔数式１１〕は、以下の〔数式１１ａ〕のように表現される。
【０１０４】
〔数式１１ａ〕
Ｖ（Ｅｉ（Ｔ（ｎ）））＝Ｅｉ（Ｔ（ｎ））．ｖｅｌｏｃｉｔｙ・ｅｘｐ｛（Ｅｉ（ｉ）．ｔｉｍｅ−Ｅｉ（Ｔ（ｎ））．ｔｉｍｅ）・τ｝
【０１０５】
補正強度の算出が行われたら、得られた補正強度Ｖ（Ｅｉ（Ｔ（ｎ）））が最小ベロシティ値より小さいかどうかを判断する（Ｓ４４）。判断の結果、得られた補正強度Ｖ（Ｅｉ（Ｔ（ｎ）））が最小ベロシティ値より小さい場合は、そのノートナンバーｎの値を強度最小ノートナンバーｎｍｉｎとして設定し、得られた補正強度Ｖ（Ｅｉ（Ｔ（ｎ）））の値を最小ベロシティ値Ｖｍｉｎとして設定する（Ｓ４５）。
【０１０６】
Ｓ４２において、ノートオンテーブルに登録されていないと判断された場合には、削除する必要がないため、Ｓ４３〜Ｓ４５の処理は行われない。Ｓ４２において、ノートオンテーブルに登録されていないと判断された場合、またはＳ４５において、強度最小ノートナンバーｎｍｉｎ、最小ベロシティ値Ｖｍｉｎが更新された場合には、ノートナンバーｎをインクリメント（ｎ←ｎ＋１）する（Ｓ４６）。そして、ノートナンバーｎが上限値（本実施形態では１２８）より小さいかどうかを判断する（Ｓ４７）。判断の結果、ノートナンバーｎが上限値より小さい場合は、Ｓ４２に戻って次のノートナンバーｎのノートオンイベントの処理を行う。Ｓ４７において、ｎ＝１２８（上限値）である場合は、全てのノートナンバーｎのノートオンイベントについて処理を行ったことになるので、その時点で強度最小ノートナンバーｎｍｉｎに設定されているノートナンバーｎのノートイベントをノートオンテーブルから削除する（Ｓ４８）。具体的には、Ｔ（ｎｍｉｎ）←−１に設定する。そして、ノートオンカウンタＣｎをデクリメント（Ｃｎ←Ｃｎ−１）する。
【０１０７】
そして、強度最小ノートナンバーｎｍｉｎが、新規登録したイベントであるかどうかを判断する（Ｓ４９）。具体的には、ｎｍｉｎがEi(i). note_numberであるかどうかを判断する。判断の結果、強度最小ノートナンバーｎｍｉｎが、新規登録したイベントである場合は、出力MIDIイベント配列への登録を取り消す（Ｓ５０）。具体的には、Ｎｏ←Ｎｏ−１に設定する。
【０１０８】
一方、Ｓ４９における判断の結果、強度最小ノートナンバーｎｍｉｎが、新規登録したイベントでない場合は、出力MIDIイベント配列へノートオフイベントの登録を行う（Ｓ５１）。Ｓ５０の出力MIDIイベント配列への登録またはＳ５１の出力MIDIイベント配列へのノートオフイベントの登録を行ったら、ノートオンテーブルからの最小音削除処理を終え、図１５のＳ３８に進んで、入力MIDIイベントポインタのインクリメントを行う。
【０１０９】
図１５、図１６に示した処理を実行し、和音数の調整を終えたら、さらに、符号コードで処理可能なビットレートについても考慮するため、ビットレートの調整を行う。ＭＩＤＩ符号に変換する場合、時間軸方向に、例えば１秒間隔にノートイベント対の個数をカウントし、各々の符号データ量を平均５バイト（４０ビット）とし、ＭＩＤＩ音源で処理可能な最大ビットレートを９０００［ｂｐｓ（ビット／秒）］とすると、１秒間あたりイベント数が９０００／４０＝２２５個を超えている区間が見つかった場合は、その区間に存在するノートオンまたはノートオフイベントと各々対になるノートオフまたはノートオンイベントを近傍区間内で探索し、各ノートイベント対のベロシティ値とデュレーション値（ノートオフ時刻−ノートオン時刻）の積（エネルギー値）で優先度を評価し、指定イベント個数（この場合“２２５”）以下になるように優先度の低い（エネルギー値の小さい）ノートイベント対を局所的に削除する処理を行う。この際、ベロシティ値またはデュレーション値のいずれかが所定の下限値より低い場合、優先度に関係なく削除する処理も行う。
【０１１０】
ここで、本実施形態における特徴である倍音除去、和音数調整を施した結果を、従来手法と比較しながら説明する。図１７は、対象とする音響信号の原音波形を示す図である。横軸は時間、縦軸は振幅値を示している。図１８は、図１７に示した音響信号に対して倍音除去を行わずにＭＩＤＩ符号化を行った結果を示す図である。図１９は、図１８に示した従来手法による符号化結果を譜面に変換したものである。倍音が音符として記録されるため、本来の譜面を再現することはできない。
【０１１１】
図２０は、図１７に示した音響信号に対して特許文献２記載の従来の倍音除去手法によりＭＩＤＩ符号化を行った結果を示す図である。図２０の例では、倍音は除去されているが、同時に本来必要なデータまで除去されてしまっている。図２１は、図１７に示した音響信号に対して特許文献２記載の従来の和音数削減手法によりＭＩＤＩ符号化を行った結果を示す図である。図２１の例では、倍音の方を誤って抽出し、基音を落としてしまうとともに、データの欠落も生じている。
【０１１２】
図２２は、本発明による倍音除去を用いてＭＩＤＩ符号化を行った結果を示す図である。図１８、図２０、図２１と比較すると、倍音が除去され、データの欠落もないことがわかる。図２３は、最大和音数を１として、本発明による倍音除去を用いてＭＩＤＩ符号化を行った結果を示す図である。図２４は、図２３に示した符号化結果を譜面に変換したものである。倍音が除去され、和音数が調整されるため、本来の譜面を忠実に再現することができる。
【０１１３】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、ノートナンバー間をＭ個の微分音（副周波数）を用いて解析を行うようにしたが、微分音を用いず、ノートナンバーに対応したＮ種類の周波数のみで解析するようにしても良い。この場合、解析精度は若干落ちるが、解析対象の周波数の数が減るため、処理負荷は軽減される。微分音を用いない場合、Ｓ９の単音成分の連結処理の判断において、〔数式８〕〜〔数式１０〕では、いずれも３行目、４行目の式は判断しないことになる。
【０１１４】
また、上記実施形態では、単位区間の設定前に、Ｓ１において時系列方向へのサンプル数の拡大処理を行い、単音成分の作成後、Ｓ７において単音成分の補正として各単音成分の周波数をＫ倍、時間軸を１／Ｋ倍にする処理を行っているが、特別に高い時間分解能を必要としない場合、必ずしも実行しなくても良い。
【０１１５】
また、上記実施形態では、周波数解析を第１の周波数解析と第２の周波数解析に分け、第１の周波数解析の結果、所定の条件を満たした選出単位区間に対して第２の周波数解析を実行するようにしたが、各単位区間に対して、特許文献１〜４に開示されているような公知の周波数解析を実行するようにしても良い。
【０１１６】
また、上記実施形態では、Ｓ１１において２つの調整処理を行ったが、これらの調整処理は両方とも実行することが望ましいが、いずれか一方だけ実行しても良いし、２つとも実行しなくても良い。
【産業上の利用可能性】
【０１１７】
本発明は、ＰＣＭ等により得られた音響信号を、ＭＩＤＩ符号等の符号コードに変換する技術を用いて楽譜の制作、携帯電話の着信メロディの制作、カラオケ向けの演奏データの制作などの音楽コンテンツ制作分野をはじめ、放送メディア（地上・ＢＳなどによるデジタルラジオ・テレビ放送など）、通信メディア（ＣＳ放送、インターネット・ストリーミング放送、携帯電話サービス、携帯音楽配信サービスなど）、パッケージメディア（ＣＤ、ＤＶＤ、ＢｌｕｅＲａｙ、メモリＩＣカードなど）向けのオーディオコンテンツ制作産業に利用することができる。
【符号の説明】
【０１１８】
１・・・ＣＰＵ
２・・・ＲＡＭ
３・・・データ記憶装置
４・・・プログラム記憶装置
５・・・キー入力Ｉ／Ｆ
６・・・データ入出力Ｉ／Ｆ
７・・・表示出力Ｉ／Ｆ
【図１】
0006047863.tif 000002
【図２】
0006047863.tif 000003
【図３】
0006047863.tif 000004
【図４】
0006047863.tif 000005
【図５】
0006047863.tif 000006
【図６】
0006047863.tif 000007
【図７】
0006047863.tif 000008
【図８】
0006047863.tif 000009
【図９】
0006047863.tif 000010
【図１０】
0006047863.tif 000011
【図１１】
0006047863.tif 000012
【図１２】
0006047863.tif 000013
【図１３】
0006047863.tif 000014
【図１４】
0006047863.tif 000015
【図１５】
0006047863.tif 000016
【図１６】
0006047863.tif 000017
【図１７】
0006047863.tif 000018
【図１８】
0006047863.tif 000019
【図１９】
0006047863.tif 000020
【図２０】
0006047863.tif 000021
【図２１】
0006047863.tif 000022
【図２２】
0006047863.tif 000023
【図２３】
0006047863.tif 000024
【図２４】
0006047863.tif 000025