説明

聴覚マスキングデータの作成方法および装置

【課題】 会話音声・騒音信号(マスキー音響信号)が別途準備した音楽信号(マスカー音響信号)によって、聴覚マスキングがどの程度働くかを客観的に定量的に評価することが可能な聴覚マスキングデータの作成方法・装置を提供する。
【解決手段】 マスキー音響信号、マスカー原音音響信号、マスカー加工音響信号の各々を符号化(S15、S16、S18)してマスキー符号A、マスカー原音符号B、マスカー加工符号Cを得た後、マスキー符号Aとマスカー原音符号Bを用いて、低強度選択に基づく演算により、マスキング対象信号成分ABを作成するとともに(S11)、マスキー符号Aとマスカー加工符号Cを用いて、低強度選択に基づく演算により、マスキング対象信号成分ACを作成し(S12)、マスキング対象信号成分ABおよびマスキング対象信号成分ACを用いて、差分演算に基づく演算により、聴覚マスキングデータとしてマスキング対象成分の増分ABCを作成する(S13)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、聴覚マスキングの性質を利用して、会話音を秘匿化したり、騒音の不快感を和らげたりするマスカー音響信号を作成するため、与えられた音響信号に対して加工を加え、加工により聴覚マスキング度合いや信号劣化度合いを評価するマスカー音響信号の評価技術に関する。
【背景技術】
【0002】
電車や自動車の音などで会話が聴きづらくなる等、ある音により他の音がかき消されてしまう聴覚マスキングという現象が存在する。この聴覚マスキングについては、E. Zwickerらが提唱した臨界帯域幅ごとにマスキー音(かき消される音)とマスカー音(かき消す音)の音圧比率が所定のレベル以上に達すると発生することが知られており、周波数が高くなるにつれ、臨界帯域幅も大きくなる性質がある(非特許文献1参照)。
【0003】
この聴覚マスキングの性質を利用して、会話音を秘匿化したり、騒音の不快感を和らげたりする技術も提案されている(特許文献1参照)。特許文献1の公知の手法では、エアコンノイズ(ピンクノイズ)のようなマスキング効果が高い既存の音源をマスカー音響信号として用いる方法を提案しているが、かなり音量の高いエアコンノイズを室内に流すため、室内全体に不快感を与え、本来の会話を行っている当事者どうしで相手の声が聞きとりづらくなるといった問題が指摘されている。そのため、先手法では、エアコンノイズのレベルを低減させ、代わりに鑑賞用の音楽信号を重ねる手法も併せて提案している。しかし、ポップスなど比較的騒がしい音楽は別にして、一般的なクラシック系の音楽のような鑑賞用の音楽信号は白色雑音やピンク雑音成分が少なく、エアコンノイズに比べ音声帯域の周波数成分が弱いため、エアコンノイズと同等なマスキング効果は働かない。従って、室内に快適な音楽を流そうとすると、マスキング効果が弱くなるというジレンマに陥っていた。
【0004】
これに対して、本願発明者は、与えられた音楽信号及びマスキング対象とする騒音信号や平均的な日本人男女の音声信号に対して周波数解析を行い、前記騒音信号や前記音声信号に多く含まれ、逆に前記音楽信号に余り含まれていない周波数成分を強調させるようなフィルタ関数を算出し、前記音楽信号に対して前記フィルタ関数を用いてフィルタ加工を加え、改変させた音楽信号をマスカー音響信号として使用することにより、前記音楽信号に対してエアコンノイズと同等な会話音や騒音に対する聴覚マスキング効果をもたせるようにする手法を提案している(特許文献2および特許文献3参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−031501号公報
【特許文献2】特願2010−174716号
【特許文献3】特願2010−192133号
【特許文献4】特許第4132362号
【特許文献5】特開平10−253429号公報
【特許文献6】特開2000−259137号公報
【特許文献7】特開2000−330554号公報
【0006】
【非特許文献1】E.Zwicker and E. Terhardt,"Analytical expressions for critical-band rate and critical bandwidth as a function of frequency",Journal of Acoustical Society of America, Vol.68, no.5, pp.1523-1525, November 1980.
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記従来の技術では、与えられた音楽信号に対して会話音や騒音に対する聴覚マスキングが効果的に働くように音楽信号にフィルタ加工を加える手法を提案しているが、再生される音楽品質を優先するため、音楽によってはマスキング効果が十分増強できないケースが生じる。この際、フィルタ加工による音楽信号の品質劣化成分によって、ヒト聴覚系内で生理的に働いているマスキング効果については客観的に計測や評価する手段が存在しなかった。
【0008】
上記課題である会話音声・騒音信号(マスキー音響信号)が別途準備した音楽信号(マスカー音響信号)によって、聴覚マスキングがどの程度働くかを客観的に定量的に評価するための聴覚マスキングデータを作成するためには、非特許文献1に記載されている臨界周波数帯域を用いて、マスカー音響信号とマスキー音響信号との間で対応する臨界周波数帯域に含まれる信号成分を比較すれば良い。マスカー音響信号側の臨界周波数帯域に含まれる信号成分が、対応するマスキー音響信号側の同周波数帯域に含まれる信号成分に比べ、所定の割合(臨界周波数帯域ごとに異なるが平均して振幅で10倍程度(+20dB))以上に大きければ、当該周波数帯域に含まれるマスキー音響信号側の周波数成分は完全にマスキングされ聴取されないことが知られている。ただし、マスカー音響信号とマスキー音響信号との間で対応する臨界周波数帯域に含まれる信号成分を比較して聴覚マスキングデータを作成することは容易ではない。
【0009】
本発明は、臨界周波数帯域の幅が非特許文献1に記載されている通り、音楽音階と同様に周波数が高くなるほど広がる特性をもつことに着目し、マスカー音響信号及びマスキー音響信号を平均律音階を基本として記述されるMIDI等の形式に符号化することにより、マスカー音響信号とマスキー音響信号との間で対応する臨界周波数帯域に含まれる信号成分の比較処理を、マスカー音響信号とマスキー音響信号に対応する(MIDI等の)符号データどうしの比較演算で簡便に実現する手法を提案することを主眼にしている。
【0010】
そこで、本発明は、会話音声・騒音信号(マスキー音響信号)が別途準備した音楽信号(マスカー音響信号)によって、聴覚マスキングがどの程度働くかを客観的に定量的に評価するための聴覚マスキングデータを作成することが可能な聴覚マスキングデータの作成方法および装置を提供することを課題とする。
【課題を解決するための手段】
【0011】
上記課題を解決するため、本発明第1の態様では、聴覚マスキングにおけるマスキー音響信号、マスカー原音音響信号、マスカー加工音響信号の各々を符号化して得られたマスキー符号A、マスカー原音符号B、マスカー加工符号Cに対して、前記マスキー符号Aと前記マスカー原音符号Bを用いて、低強度選択に基づく演算により、マスキング対象信号成分ABを作成するとともに、前記マスキー符号Aと前記マスカー加工符号Cを用いて、低強度選択に基づく演算により、マスキング対象信号成分ACを作成し、前記マスキング対象信号成分ABおよび前記マスキング対象信号成分ACを用いて、差分演算に基づく演算により、聴覚マスキングデータとしてマスキング対象成分の増分ABCを作成するようにしていることを特徴とする。
【0012】
本発明第1の態様によれば、マスキー音響信号に対応するマスキー符号A、マスカー原音音響信号に対応するマスカー原音符号B、マスカー加工音響信号に対応するマスカー加工符号Cに対して、マスキー符号Aとマスカー原音符号Bを用いて、低強度選択に基づく演算によりマスキング対象信号成分ABを作成するとともに、マスキー符号Aとマスカー加工符号Cを用いて、低強度選択に基づく演算によりマスキング対象信号成分ACを作成した後、マスキング対象信号成分ABおよびマスキング対象信号成分ACを用いて、差分演算に基づく演算によりマスキング対象成分の増分ABCを作成するようにしたので、マスカー原音音響信号に対するマスカー加工音響信号のマスキング対象成分の増分を効率的に作成できる。得られたマスキング対象成分の増分ABCを表示または音響出力することにより、マスキング対象成分の増分を視覚的、聴覚的に確認することが可能となる。
【0013】
また、本発明第2の態様では、聴覚マスキングにおけるマスキー音響信号、マスカー原音音響信号、マスカー加工音響信号の各々を符号化して得られたマスキー符号A、マスカー原音符号B、マスカー加工符号Cに対して、前記マスキー符号Aを構成する全ての音の高さに一律に所定のオフセット値を加え、複数通りのオフセット値に対応して、複数通りの改変マスキー符号A1、改変マスキー符号A2,...,を作成し、前記マスキー符号Aおよび前記複数通りの改変マスキー符号A1,...の各々と前記マスカー原音符号Bまたはマスカー加工符号Cを用いて、低強度選択に基づく演算により、複数通りのマスキング対象信号成分AB,マスキング対象信号成分AB1,...またはマスキング対象信号成分AC,マスキング対象信号成分AC1,..を作成し、前記複数通りのマスキング対象信号成分AB,マスキング対象信号成分AB1,...またはマスキング対象信号成分AC,マスキング対象信号成分AC1,..どうしを各々の群内で2つずつ重複無く順次組み合わせ、加算演算に基づく演算により、合算マスキング対象信号成分ABまたは合算マスキング対象信号成分ACを作成し、前記マスキング対象信号成分ABおよび前記マスキング対象信号成分ACを用いて、差分演算に基づく演算により、聴覚マスキングデータとしてマスキング対象成分の増分ABCを作成するようにしていることを特徴とする。
【0014】
本発明第2の態様によれば、マスキー音響信号に対応するマスキー符号A、およびマスキー符号Aを所定の音の高さだけシフトさせた改変符号データA1、A2、・・・のそれぞれと、マスカー原音音響信号またはマスカー加工音響信号に対応するマスカー原音符号Bまたはマスカー加工符号Cに対して、マスキー符号Aおよび複数通りの改変マスキー符号A1,...の各々とマスカー原音符号Bまたはマスカー加工符号Cを用いて、低強度選択に基づく演算により、複数通りのマスキング対象信号成分AB,マスキング対象信号成分AB1,...またはマスキング対象信号成分AC,マスキング対象信号成分AC1,..を作成し、複数通りのマスキング対象信号成分AB,マスキング対象信号成分AB1,...またはマスキング対象信号成分AC,マスキング対象信号成分AC1,..どうしを各々の群内で2つずつ重複無く順次組み合わせ、加算演算により、合算マスキング対象信号成分ABまたは合算マスキング対象信号成分ACを作成し、マスキング対象信号成分ABおよびマスキング対象信号成分ACを用いて、差分演算により、マスキング対象信号成分の増分ABCを作成するようにしたので、マスカー原音音響信号に対するマスカー加工音響信号のマスキング対象信号成分の増分を、+1または−1半音の範囲に拡張させて高精度、かつ効率的に作成できる。得られたマスキング対象信号成分の増分ABCを表示または音響出力することにより、マスキング対象信号成分の増分を視覚的、聴覚的に確認することが可能となる。
【0015】
また、本発明第3の態様では、本発明第1または第2の態様において、前記差分演算により得られたマスキング対象信号成分の増分ABCを表示手段に画面表示し、および/または前記マスキング対象信号成分の増分ABCを音響再生手段により音響再生することを特徴とする。
【0016】
本発明第3の態様によれば、マスキング対象信号成分の増分ABCを表示手段に画面表示、および/またはマスキング対象信号成分の増分ABCを音響再生手段により音響再生するようにしたので、マスキング対象信号成分の増分ABCを視覚的かつ聴覚的に評価することが可能となる。
【0017】
また、本発明第4の態様では、本発明第1から第3のいずれかの態様において、前記マスキー符号A、マスカー原音符号B、マスカー加工符号Cは時系列に配置されたイベントデータで構成され、各イベントデータには、発音開始または発音終了の識別、時刻、音の高さ、チャンネル番号、音の強さの属性情報を備えた符号データであり、前記差分演算に基づく演算は、前記2つの符号データの各イベントデータに対して互いに異なるチャンネル番号を付与しながら、時刻が早い順にソートして、2つのチャンネル番号を有する1つの時系列な符号データに統合することにより2チャンネル符号データを作成し、発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される区間を発音区間としたとき、前記2チャンネル符号データの中で、一方のチャンネルの発音区間が、同一の音の高さをもつ他方のチャンネルの発音区間と時間的に全てまたは一部が重複する場合に、両発音区間が重複する区間を、両発音区間の音の強さの差分値を新たな音の強さとする新たな発音区間を重複区間として生成し、前記重複する両発音区間のうち、重複しない区間については、前記重複区間を除く区間に元の音の強さを有する発音区間を生成して更新し、更新された発音区間の各々の発音開始のイベントデータと発音終了のイベントデータを時系列にソートし、所定の形式で符号化することを特徴とする。
【0018】
また、本発明第5の態様では、本発明第第1から第4のいずれかの態様において、前記マスキー符号A、マスカー原音符号B、マスカー加工符号Cは時系列に配置されたイベントデータで構成され、各イベントデータには、発音開始または発音終了の識別、時刻、音の高さ、チャンネル番号、音の強さの属性情報を備えた符号データであり、前記低強度選択に基づく演算は、前記2つの符号データの各イベントデータに対して互いに異なるチャンネル番号を付与しながら、時刻が早い順にソートして、2つのチャンネル番号を有する1つの時系列な符号データに統合することにより2チャンネル符号データを作成する符号データ統合段階と、発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される区間を発音区間としたとき、前記2チャンネル符号データの中で、一方のチャンネルの発音区間が、同一の音の高さをもつ他方のチャンネルの発音区間と時間的に全てまたは一部が重複する場合に、両発音区間が重複する区間を、両発音区間の音の強さのいずれか小さい方の値を新たな音の強さとする新たな発音区間を重複区間として生成し、前記重複する両発音区間のうち、重複しない区間については、発音区間の音の強さを全て0に設定して更新し、更新された発音区間の各々の発音開始のイベントデータと発音終了のイベントデータを時系列にソートし、所定の形式で符号化することを特徴とする。
【0019】
また、本発明第6の態様では、本発明第第1から第5のいずれかの態様において、前記マスキー符号A、マスカー原音符号B、マスカー加工符号Cは時系列に配置されたイベントデータで構成され、各イベントデータには、発音開始または発音終了の識別、時刻、音の高さ、チャンネル番号、音の強さの属性情報を備えた符号データであり、前記加算演算に基づく演算は、前記2つの符号データの各イベントデータに対して互いに異なるチャンネル番号を付与しながら、時刻が早い順にソートして、2つのチャンネル番号を有する1つの時系列な符号データに統合することにより2チャンネル符号データを作成し、発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される区間を発音区間としたとき、前記2チャンネル符号データの中で、一方のチャンネルの発音区間が、同一の音の高さをもつ他方のチャンネルの発音区間と時間的に全てまたは一部が重複する場合に、両発音区間が重複する区間を、両発音区間の音の強さの和を新たな音の強さとする新たな発音区間を重複区間として生成し、前記重複する両発音区間のうち、重複しない区間については、一方のチャンネルの発音区間の音の強さを有する発音区間を生成して更新し、更新された発音区間の各々の発音開始のイベントデータと発音終了のイベントデータを時系列にソートし、所定の形式で符号化する演算符号データ符号化段階を有することを特徴とする。
【0020】
本発明第4から第6の態様によれば、マスカー原音音響信号とマスカー加工音響信号またはマスカー音響信号とマスキー音響信号に対応する2つの符号データを1つの2チャンネル符号データに統合し、2つのチャンネルで発音時間が重複する同一ノートナンバーの発音区間を重複区間と非重複区間に分割し、重複区間、非重複区間のベロシティを、差分演算、低強度選択、加算演算を行うことにより更新し、各発音区間を特定するノートオンのイベントデータとノートオフのイベントデータを時系列にソートし、2つのマスカー音響信号どうしの差分(マスカー原音音響信号の加工に基づく信号劣化成分やマスキング対象信号成分の増分)、マスカー原音音響信号またはマスカー加工音響信号によるマスキー音響信号に対する聴覚マスキングデータ、オフセットを加えた複数のマスキー音響信号どうしの和(音高方向にオフセットを加えた複数のマスキー音響信号どうしの和)またはマスキング対象信号成分どうしの和(音高方向にオフセットを加えた複数のマスキー音響信号に対するマスカー原音信号またはマスカー加工音響信号によるマスキング対象信号成分どうしの和)に対応する演算符号データとして符号化するようにしたので、発音開始または発音終了の識別、時刻、音の高さ、チャンネル番号、音の強さの属性情報を備えた符号データ間の演算を効率的に行うことが可能となる。
【0021】
また、本発明第7の態様では、本発明第4から第6のいずれかの態様において、前記重複発音区間の演算処理をする際、前記重複区間の音の強さが0の場合、前記音の強さを0以外の1〜127の範囲で小さな値に変更することを特徴とする。
【0022】
また、本発明第8の態様では、本発明第4から第6のいずれかの態様において、前記重複発音区間の演算処理をする際、前記重複区間の音の強さが0の場合、前記重複区間を符号化対象から削除することを特徴とする。
【0023】
本発明第7、第8の態様によれば、音の強さとして最終的に0が与えられることがなくなり、各発音区間の終了を特定するノートオフのイベントデータを示すベロシティ0と区別することが可能となる。
【0024】
また、本発明第9の態様では、本発明第4から第8のいずれかの態様において、 前記演算符号データ符号化段階にて符号化された演算符号データに対して、発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される発音区間を抽出し、前記抽出された全ての発音区間の時間間隔(発音終了のイベントデータの時刻と発音開始のイベントデータの時刻との差)の総和値Duration、および前記抽出された全ての発音区間の音の強さと発音区間の時間間隔(発音終了のイベントデータの時刻と発音開始のイベントデータの時刻との差)との積の総和値Energyを算出し、総和値Energyを総和値Durationで除した値を前記演算符号データの評価値として出力するようにしていることを特徴とする。
【0025】
本発明第9の態様によれば、発音区間の時間間隔の総和値と、抽出された全ての発音区間の音の強さと発音区間の時間間隔との積の総和値をエネルギー総和値として算出し、エネルギー総和値を時間間隔の総和値で除した値を演算符号データの評価値として出力するようにしたので、時間当たりのエネルギー(強さの時間平均値)を用いて前記音響信号を符号化して得られた2つの独立した符号データの関係を客観的に評価することが可能となる。具体的には、マスカー原音音響信号に対するマスカー加工音響信号の信号劣化成分や、マスカー原音音響信号に対するマスカー加工音響信号のマスキー音響信号に対するマスキング対象信号成分の増分を単一の数値パラメータで提示することにより、マスカー原音音響信号に対する加工度合いを効率的に決定することができる。
【0026】
また、本発明第10の態様では、本発明第4から第9のいずれかの態様において、前記差分符号データの符号化は、前記重複発音区間の差分処理により得られた発音区間として、発音開始と発音終了の時刻が同一のものがある場合に、当該発音区間を構成するイベントデータを削除する処理をさらに行うことを特徴とする。
【0027】
本発明第10の態様によれば、重複発音区間の差分処理後に、発音開始と発音終了の時刻が同一のものがある場合に、値が0をもつ発音区間を構成するイベントデータを削除するようにしたので、画面表示や音響再生において機能的に意味をもたない冗長なイベントの発生を防ぐことが可能となる。
【発明の効果】
【0028】
本発明によれば、会話音声・騒音信号(マスキー)が別途準備した音楽信号(マスカー)によって、聴覚マスキングがどの程度働くかを客観的に定量的に評価するための聴覚マスキングデータを作成することが可能となるという効果を有する。
【図面の簡単な説明】
【0029】
【図1】演算符号データ作成装置の一実施形態を示す機能ブロック図である。
【図2】演算符号データの作成方法の概要を示すフローチャートである。
【図3】MIDIデータ統合処理の詳細を示すフローチャートである。
【図4】重複ノートオン区間の差分処理の概要を説明するための図である。
【図5】重複ノートオン区間の低強度選択処理の概要を説明するための図である。
【図6】重複ノートオン区間の加算処理の概要を説明するための図である。
【図7】重複ノートオン区間の演算処理の詳細を示すフローチャートである。
【図8】0デュレーションイベント削除処理の詳細を示すフローチャートである。
【図9】0デュレーションイベント削除処理の詳細を示すフローチャートである。
【図10】本発明に係る聴覚マスキングデータの作成装置の一実施形態を示す機能ブロック図である。
【図11】本発明第1の実施形態に係る聴覚マスキングデータの作成方法の概要を示すフローチャートである。
【図12】マスキーMIDI符号Aを+1または−1半音の範囲に拡張させて合算マスキング対象信号成分AB、ACを作成する処理の概要を示すフローチャートである。
【図13】MIDI打ち込みデータを表示出力した状態を示す図である。
【図14】マスカー原音MIDI符号Bを表示出力した状態を示す図である。
【図15】マスカー加工MIDI符号Cを表示出力した状態を示す図である。
【図16】差分MIDI符号BCを表示出力した状態を示す図である。
【図17】マスキーMIDI符号Aを表示出力した状態を示す図である。
【図18】合算マスキング対象成分ABを表示出力した状態を示す図である。
【図19】合算マスキング対象成分ACを表示出力した状態を示す図である。
【図20】差分MIDI符号ABCを表示出力した状態を示す図である。
【発明を実施するための形態】
【0030】
<基本となる符号データの演算処理>
以下、本発明の好適な実施形態について、図面を参照して詳細に説明する。まず、本発明で用いる符号データの演算処理について説明する。図1は、符号データの演算処理を実行する演算符号データ作成装置を示す機能ブロック図である。演算符号データ作成装置は、図1に示すように、データ入力部11、演算処理部12、表示部13、音響出力部14、データ出力部15、符号データ作成部16を有すると共に、図示しないハードディスク等の記憶装置、指示入力を行うキーボード、マウス等の入力機器等を有しており、入出力機器が接続された汎用のコンピュータに専用のプログラムを組み込むことにより実現される。
【0031】
図1において、データ入力部11は、聴覚マスキング効果の評価の対象であるマスカー原音音響信号、マスカー加工音響信号またはマスキー音響信号などの複数のWAV形式等(WAVはMicrosoft社の音響信号形式)の音響信号を入力するためのものである。マスカー加工音響信号は、上述のように、特許文献2または特許文献3の手法により、与えられた音楽信号及びマスキング対象とする騒音信号や平均的な日本人男女の音声信号に対して周波数解析を行い、マスキー音響信号に多く含まれ、逆にマスカー原音音響信号に余り含まれていない周波数成分を強調させるようなフィルタ関数を算出し、マスカー原音音響信号に対してフィルタ関数を用いてフィルタ加工を加え、改変させて得られるものである。続いて、符号データ作成部16は、入力された音響信号を特許文献4など公知の手法によりMIDI(Musical Instruments Digital Interface)データ等の符号データに変換するためのものである。後続の演算処理部12と同様に、CPU、メモリを有し、記憶装置から専用のプログラムをメモリ上に読み込んで実行することにより本機能を実現する。演算処理部12は、CPU、メモリを有し、記憶装置から専用のプログラムをメモリ上に読み込んで実行し、符号データ作成部16で作成された複数の符号データどうしで指定された所定の演算を行い、演算符号データを作成する、本発明の演算符号データ作成装置の主要な機能を実現するものである。表示部13は、液晶ディスプレイ等の表示装置により実現され、演算処理部12により作成された演算符号データを表示する。音響出力部14は、MIDI音源、MIDIシーケンサ、アンプおよびスピーカにより実現され、演算処理部12により作成された演算符号データを音響信号に変換して音響出力する。データ出力部15は、MIDIデータ等の演算符号データをSMF(Standard MIDI File)形式などのデータ形式で出力するためのものである。
【0032】
<処理概要>
図2は、図1に示した演算符号データ作成装置による演算符号データの作成方法の概要を示すフローチャートである。演算符号データの作成方法は、図2に示した各ステップ(各段階)の詳細な手順を記録したプログラムを、図1に示した演算符号データ作成装置が実行することにより行われる。
【0033】
本発明で用いる符号データ作成部16で作成される符号データとしては、データ入力部11で入力された音響信号を構成する各音素成分を、その音素成分の強度、高さ、時間情報で表現した形式のものであれば、どのようなものであっても良い。時間情報に関しては、開始時刻と終了時刻で特定する形式であっても、開始時刻と発音時間で特定する形式であっても、何らかの手法により開始時刻、終了時刻、発音時間が特定できるものであれば良い。本実施形態では、符号データとして、発音開始時にノートオン、発音終了時にノートオフのイベントデータを設定し、音の強さとしてベロシティ、音の高さとしてノートナンバーを設定したMIDI規格を採用している。したがって、以下においても、MIDIデータを例にとって説明していく。
【0034】
演算符号データの作成方法としては、まず、コンピュータ本体である演算処理部12が、2つのMIDIデータをデータ入力部11から読み込む。ここでは、2つのMIDIデータM1、M2を読み込むものとする。2つのMIDIデータM1、M2を読み込んだら、演算処理部12は、読み込んだ2つのMIDIデータM1、M2を、1つの時系列な2チャンネルMIDIデータに統合する(S1)。
【0035】
統合に際して、演算処理部12は、読み込んだ2つのMIDIデータM1、M2それぞれのMIDIイベント配列を、Event1[]、Event2[]とする。2つのMIDIイベント配列の総ノートイベント数は各々Ne1、Ne2とし、各イベント配列には属性として[time,channel,note−number,velocity]の4つの値をもつものとする。例えば、Event1[]のtime属性をEvent1[].timeと表記する。timeにはノートイベントの絶対値を与え、MIDI規格準拠のSMF形式(Standard MIDI File)で使用されるデルタタイムという相対時刻で指示される値を先頭時刻からの累積値に変換する。絶対時刻の単位は、デルタタイムと同様にユーザ指定の整数値である。channelはMIDI規格上0〜15の値をとり得るが、Event1[]は0、Event2[]は1とする。note−numberとvelocityは0〜127の値をとり、ノートオンの場合は、velocityとして1以上の値を与え、ノートオフの場合は、velocityとして0を与える。
【0036】
そして、統合先とする配列EventW[]を用意する。さらに、Event1[]、Event2[]、EventW[]へのポインタをp1、p2、pwとし、初期状態ではp1=p2=pw=0と設定する。EventW[]の総ノートイベント数をNwとすると、Nw=Ne1+Ne2となる。
【0037】
<MIDIデータ統合>
配列の準備ができたら、演算処理部12はMIDIデータ統合処理を開始する。 S1におけるMIDIデータ統合処理の詳細を図3のフローチャートを用いて説明する。まず、演算処理部12は、ポインタp2が総ノートイベント数Ne2より小さいかどうかを判断する(S101)。後述するように、p2は配列Event2[]内のノートイベントが処理される度に1加算されるため、p2がNe2より小さいことは未処理のノートイベントが配列Event2[]内に残っていることを意味する。すなわち、S101では、配列Event2[]内のノートイベントの処理を終えたかどうかを判断している。
【0038】
ポインタp2が総ノートイベント数Ne2より小さい場合は、Event2[p2].timeがEvent1[p1].timeより小さいかどうかを判断する(S102)。これは、ポインタp2で特定されるEvent2[p2]内のノートイベントの絶対時刻がポインタp1で特定されるEvent1[p1]内のノートイベントの絶対時刻よりも早いかどうかを判断している。そして、Event2[p2].timeがEvent1[p1].timeより小さい場合は、Event2[p2]についての処理を行い(S103)、Event2[p2].timeがEvent1[p1].time以上の場合は、Event1[p1]についての処理を行う(S105)。なお、S101において、ポインタp2が総ノートイベント数Ne2以上である場合は、配列Event2[]内のノートイベントの処理を全て終えたことを意味するので、この場合にも、S105に進んで、Event1[p1]についての処理を行う。
【0039】
S103のEvent2[p2]についての処理では、演算処理部12は、以下の〔数式1〕に従った処理を実行する。
【0040】
〔数式1〕
EventW[pw].time←Event2[p2].time
EventW[pw].channel←1
EventW[pw].note−number←Event2[p2].note−number
EventW[pw].velocity←Event2[p2].velocity
pw←pw+1
p2←p2+1
【0041】
上記〔数式1〕の6つの式のうち、第1式、第3式、第4式では、Event2[p2]のノートイベントのtime、note−number、velocityをEventW[pw]のノートイベントのtime、note−number、velocityとして与えている。また、第2式では、EventW[pw]のノートイベントのchannelを1に設定している。この4つの式により、MIDIデータM2に存在していたノートイベントが、統合MIDIデータのチャンネル1のノートイベントとして移行されたことになる。第5式、第6式は、ポインタの加算である。
【0042】
S105のEvent1[p1]についての処理では、演算処理部12は、以下の〔数式2〕に従った処理を実行する。
【0043】
〔数式2〕
EventW[pw].time←Event1[p1].time
EventW[pw].channel←0
EventW[pw].note−number←Event1[p1].note−number
EventW[pw].velocity←Event1[p1].velocity
pw←pw+1
p1←p1+1
【0044】
上記〔数式2〕は、上記〔数式1〕におけるEvent2[p2]の代わりにEvent1[p1]が用いられており、channelが0に設定されている。上記〔数式2〕では、第1式〜第4式により、MIDIデータM1に存在していたノートイベントが、統合MIDIデータのチャンネル0のノートイベントとして移行されたことになる。第5式、第6式は、ポインタの加算である。
【0045】
S105におけるEvent1[p1]についての処理後は、ポインタp1が総ノートイベント数Ne1より小さいかどうかを判断する(S106)。判断の結果、ポインタp1が総ノートイベント数Ne1より小さい場合は、S101に戻る。逆に、ポインタp1が総ノートイベント数Ne1以上の場合は、配列Event1[p1]内のノートイベントの処理を全て終えたことを意味するので、S103に進んで、Event2[p2]についての処理を行う。
【0046】
S103におけるEvent2[p2]についての処理後は、ポインタp2が総ノートイベント数Ne2より小さいかどうかを判断する(S104)。判断の結果、ポインタp2が総ノートイベント数Ne2より小さい場合は、S103に戻って、Event2[p2]についての処理を行う。逆に、ポインタp2が総ノートイベント数Ne2以上の場合は、配列Event2[p2]内のノートイベントの処理を全て終えたことを意味するので、統合処理を終了する。
【0047】
<重複ノートオン区間の演算処理>
統合処理が終了したら、演算処理部12は、重複ノートオン区間演算処理を実行する(図2のS2)。ノートオン区間(発音区間)とは、ノートオンのイベントデータとそれに対応する同一ノートナンバーをもつノートオフの2つのイベントデータの対で構成される区間である。また、重複ノートオン区間とは、他方のチャンネルのノートオン区間と時間的に全てまたは一部が重複するノートオン区間である。上記S1の統合処理の結果、EventW[]は、2チャンネルのMIDIイベントで構成されることになり、これに対して、単一チャンネルのMIDIイベント配列EventS[]に変換する処理を行う。ただし、EventW[]は、同一時間に同一ノートナンバーのノートオン区間が重複してしまう可能性がある。重複ノートオン区間演算処理では、ノートオン区間が重複する部分について強度値(ベロシティ)の演算を行い、1つのチャンネルに統一することにより、単一チャンネルのMIDIイベント配列EventS[]に変換する。
【0048】
ここで、重複ノートオン区間演算処理の概要を図4〜図6を用いて説明する。本実施形態では、重複ノートオン区間演算処理として、差分処理、低強度選択処理、加算処理の3つを行っている。図4、図5、図6は、それぞれ差分処理、低強度選択処理、加算処理の様子を示している。まず、差分処理について、図4を用いて説明する。図4(a)は2つのMIDIデータ統合後の1つの2チャンネルMIDIデータを示し、図4(b)は重複ノートオン区間差分処理後の1チャンネルMIDIデータを示している。説明の便宜上、図4においては、1つのノートナンバーについてだけ示している。また、各矩形は、左端がノートオンイベントの時刻、右端がノートオフイベントの時刻であり、左右方向の幅がノートオン区間を示している。また、各矩形の上下方向がベロシティを示している。図4(a)の例では、全てのノートオン区間が他方のチャンネルのノートオン区間と時間的に全てまたは一部が重複しているため、全てが重複ノートオン区間である。また、ノートオン区間02のように、その一部が他方のチャンネルのノートオン区間12と重複している場合は、重複している区間を重複区間、重複していない区間を非重複区間と呼ぶことにする。
【0049】
図4(a)の例では、チャンネル0(図中、ch:0で示す。)のノートオン区間01とチャンネル1(図中、Ch:1で示す。)のノートオン区間11が重複しているため、差分演算処理が行われ、図4(b)に示すように、チャンネル0に新ノートオン区間が得られる。新ノートオン区間のベロシティは、ノートオン区間01のベロシティとノートオン区間11のベロシティの差分となる。ノートオン区間01とノートオン区間11は、ノートオンイベントの時刻、ノートオフイベントの時刻が同一であり、ノートオン区間が完全に重複しているため、差分演算処理後の新ノートオン区間のノートオンイベントの時刻、ノートオフイベントの時刻は、ノートオン区間01、ノートオン区間11と同一となる。
【0050】
ノートオン区間02とノートオン区間12のように一部が重複している場合、重複している一部についてだけ、差分演算処理が行われる。ノートオン区間02とノートオン区間12のベロシティは同じであるので、ノートオン区間02とノートオン区間12が重複している区間については、ノートオン区間が存在しなくなる。また、ノートオン区間02には、チャンネル1のノートオン区間と重複していない部分があるので、重複していない部分については、チャンネル0に新ノートオン区間が得られる。新ノートオン区間のベロシティは、ノートオン区間02のベロシティがそのまま与えられる。また、新ノートオン区間のノートオン時刻は、ノートオン区間12のノートオフ時刻が与えられ、新ノートオン区間のノートオフ時刻は、ノートオン区間02のノートオフ時刻がそのまま与えられる。
【0051】
次に、低強度選択処理について、図5を用いて説明する。図5(a)は2つのMIDIデータ統合後の1つの2チャンネルMIDIデータを示しており、図4(a)と全く同一である。図5(b)は重複ノートオン区間低強度選択処理後の1チャンネルMIDIデータを示している。説明の便宜上、図5においても、1つのノートナンバーについてだけ示している。また、各矩形は、左端がノートオンイベントの時刻、右端がノートオフイベントの時刻であり、左右方向の幅がノートオン区間を示している。また、各矩形の上下方向がベロシティを示している。
【0052】
図5(a)の例では、チャンネル0(図中、ch:0で示す。)のノートオン区間01とチャンネル1(図中、Ch:1で示す。)のノートオン区間11が重複しているため、低強度選択処理が行われ、図5(b)に示すように、チャンネル0に新ノートオン区間が得られる。新ノートオン区間のベロシティは、ノートオン区間01のベロシティとノートオン区間11のベロシティのうち低強度のものを選択する。図5(a)の例では、ノートオン区間01のベロシティの方がノートオン区間11のベロシティよりも小さい(低強度)ため、新ノートオン区間のベロシティとして、ノートオン区間01のベロシティが選択される。ノートオン区間01とノートオン区間11は、ノートオンイベントの時刻、ノートオフイベントの時刻が同一であり、ノートオン区間が完全に重複しているため、差分演算処理後の新ノートオン区間のノートオンイベントの時刻、ノートオフイベントの時刻は、ノートオン区間01、ノートオン区間11と同一となる。
【0053】
ノートオン区間02とノートオン区間12のように一部が重複している場合、重複している部分、重複していない部分それぞれについて、低強度選択処理が行われる。ノートオン区間02とノートオン区間12のベロシティは同一であるので、ノートオン区間02とノートオン区間12が重複している区間については、どちらのベロシティを選択しても同じであるため、新ノートオン区間のベロシティとして、ノートオン区間02、ノートオン区間12と同一のベロシティが与えられる。図においては、便宜上新ノートオン区間を02で示す。新ノートオン区間02のノートオン時刻は、ノートオン区間02のノートオン時刻がそのまま与えられ、新ノートオフ区間02のノートオフ時刻は、ノートオン区間12のノートオフ時刻が与えられる。また、ノートオン区間02には、チャンネル1のノートオン区間と重複していない部分があるが、強度選択処理において重複していない部分については、他方のノートオン区間のベロシティが0であるとみなして、当該区間のベロシティを一律に0に変更する。即ち重複していない区間は削除する。
【0054】
次に、加算処理について、図6を用いて説明する。図6(a)は2つのMIDIデータ統合後の1つの2チャンネルMIDIデータを示しており、図4(a)図5(a)と全く同一である。図6(b)は重複ノートオン区間加算処理後の1チャンネルMIDIデータを示している。説明の便宜上、図6においても、1つのノートナンバーについてだけ示している。また、各矩形は、左端がノートオンイベントの時刻、右端がノートオフイベントの時刻であり、左右方向の幅がノートオン区間を示している。また、各矩形の上下方向がベロシティを示している。
【0055】
図6(a)の例では、チャンネル0(図中、ch:0で示す。)のノートオン区間01とチャンネル1(図中、Ch:1で示す。)のノートオン区間11が重複しているため、加算処理が行われ、図6(b)に示すように、チャンネル0に新ノートオン区間が得られる。新ノートオン区間のベロシティは、ノートオン区間01のベロシティとノートオン区間11のベロシティを加算したものとなる。ただし、加算後のベロシティの値が上限値127を越える場合は、127に設定する。ノートオン区間01とノートオン区間11は、ノートオンイベントの時刻、ノートオフイベントの時刻が同一であり、ノートオン区間が完全に重複しているため、差分演算処理後の新ノートオン区間のノートオンイベントの時刻、ノートオフイベントの時刻は、ノートオン区間01、ノートオン区間11と同一となる。
【0056】
ノートオン区間02とノートオン区間12のように一部が重複している場合、重複している部分、重複していない部分それぞれについて、加算処理が行われる。重複している部分については、ノートオン区間02とノートオン区間12のベロシティを加算したものが、新ノートオン区間のベロシティとして与えられる。図においては、便宜上新ノートオン区間を02+12で示す。同様に、加算後のベロシティの値が上限値127を越える場合は、127に設定する。また、ノートオン区間02には、チャンネル1のノートオン区間と重複していない部分があるので、重複していない部分については、当該区間の他方のベロシティが0であるとみなして、新ノートオン区間02のベロシティとして、ノートオン区間02のベロシティがそのまま与えられる。新ノートオン区間02+12のノートオン時刻は、ノートオン区間02、12のノートオン時刻が与えられ、新ノートオン区間02+12のノートオフ時刻は、ノートオフ区間12のノートオフ時刻が与えられる。新ノートオン区間02のノートオン時刻は、ノートオン区間12のノートオフ時刻が与えられ、新ノートオン区間02のノートオフ時刻は、ノートオン区間02のノートオフ時刻がそのまま与えられる。
【0057】
S2の重複ノートオン区間演算処理に際して、演算処理部12は、EventW[]、EventS[]の各配列へのポインタをpw、psとし、初期状態ではpw=ps=0に設定する。また、EventS[]のChannel値は全て0に設定する。さらに、演算処理部12は、0〜127のノートナンバーに対応してノートオン時にMIDIイベント配列へのポインタを格納するノートオンテーブルをEventW[]のチャンネル0とチャンネル1に対応してtableW[0,]、tableW[1,]を定義し、EventS[]に対応してtableS[]を定義する。そして、tableW[0,]、tableW[1,]、tableS[]の全ての初期値を−1に設定する。また、生成されるMIDIイベント配列EventS[]の総ノートイベント数をNsとする。
【0058】
配列の準備ができたら、演算処理部12は、重複ノートオン区間演算処理を開始する。この重複ノートオン区間演算処理の詳細を図7のフローチャートを用いて説明する。まず、図7のS201で演算処理部12は、ポインタpwで特定されるEventW[]を用いて、以下の〔数式3〕に従った処理を実行し、処理対象のノートナンバーnn、ベロシティvel、処理チャンネルchを設定する。
【0059】
〔数式3〕
nn←EventW[pw].note−number
vel←EventW[pw].velocity
ch←EventW[pw].channel
【0060】
続いて、他チャンネルの状態確認としてチャンネル0のノートナンバーnnがノートオンになっているか否か、即ちtableW[1−ch,nn]が0以上であるかどうかの確認を行う(S202)。すなわち、他方のチャンネル1−chに同一ノートナンバーのノートオンになっているイベントが存在するかどうかの判断を行う。tableW[1−ch,nn]が0以上である場合は、同一ノートナンバーnnのノートオンイベントが少なくとも他方のチャンネル側に存在していることになるので、強制的にノートオフイベントを発行してノートオン区間を中断させる処理を行う(S203)。
【0061】
具体的には、tableS[nn]が0以上であるかどうかを判断し、tableS[nn]が0以上である場合は、演算処理部12は、以下の〔数式4〕に従った処理を実行する。
【0062】
〔数式4〕
EventS[ps].time←EventW[pw].time
EventS[ps].channel←0
EventS[ps].note−number←nn
EventS[ps].velocity←0
tableS[nn]←−1
ps←ps+1
【0063】
上記〔数式4〕の6つの式のうち、第1式、第3式では、EventW[pw]のノートイベントのtime、note−numberをEventS[ps]のノートイベントのtime、note−numberとして与えている。第2式では、EventS[ps]のノートイベントのchannelを0に設定している。EventS[]内のノートイベントは1つのチャンネルに納められるため、全てチャンネル0に設定される。第4式では、EventS[ps]のノートイベントのvelocityを0に設定している。これは、ノートオフイベントであることを示すものである。この4つの式により、EventS[]内に強制的にノートオフが設定される。これにより、概念上は、他方のチャンネルの同一ナンバーのノートオン区間(非重複区間)が終了し、他方のチャンネルの同一ノートナンバーのノートオンまたはノートオフイベントと合わせて重複区間が開始されることになる。(この段階では、2つのチャンネルが当該ノートナンバーで時間的にどのように重複するかがわからない)。第5式は、ノートナンバーnnについてのノートオン区間が終了したことを示すための処理である。第6式は、ポインタの加算である。
【0064】
〔数式4〕に従った処理を実行したら、演算処理部12は、処理対象のチャンネルchのノートイベントがノートオンかノートオフかを確認する。即ち、velが0より大きいかどうかを確認する(S204)。なお、S203において、tableS[nn]が0より小さい場合は他方のチャンネルの同一ナンバーのノートオン区間(非重複区間)は既に終了しているので、〔数式4〕に従った処理を実行せずにS204に進む。S204において、velが0より大きいと判断された場合には、2つのチャンネルが当該ノートイベントを起点に時間的に重複する区間が開始されると判断され、演算処理部12は、以下の〔数式5a〕〔数式5b〕〔数式5c〕のいずれかに従った重複区間のベロシティ演算処理を実行する(S205)。具体的には、差分処理の場合は〔数式5a〕、低強度選択処理の場合は〔数式5b〕、加算処理の場合は〔数式5c〕に従った処理を実行する。
【0065】
〔数式5a〕
vel←|vel−EventW[tableW[1−ch,nn]].velocity|
tableW[ch,nn]←pw
【0066】
上記〔数式5a〕の2つの式のうち、第1式では、他方のチャンネルの同一ノートナンバーのノートイベントとのベロシティの差分を演算し、その差分をvelとしている。この第1式により重複区間の差分演算処理が行われたことになる。なお、この結果である差分velが0の場合は、ノートオフを示す0と区別するため、vel←−1とする処理を行う。第2式は、処理したノートナンバーが処理チャンネルのノートオン区間に入り、EventW[]において何番目のノートイベントでオンになったかを特定する処理である。
【0067】
〔数式5b〕
vel>EventW[tableW[1−ch,nn]].velocityの場合
vel←EventW[tableW[1−ch,nn]].velocity
常にtableW[ch,nn]←pw
【0068】
上記〔数式5b〕の2つの式のうち、第1式では、他方のチャンネルの同一ノートナンバーのノートイベントとベロシティを比較し、他方のチャンネルのベロシティが小さい場合に限り、velに他方のチャンネルのベロシティを与えている。この第1式により他方のチャンネルと処理チャンネルのうち、低強度の方の値がベロシティとして選択されることになる。第2式は、上記〔数式5a〕の第2式と同一であり、他方のチャンネルと処理チャンネルのベロシティの大小に係らず、常に実行される。
【0069】
〔数式5c〕
vel←vel+EventW[tableW[1−ch,nn]].velocity
tableW[ch,nn]←pw
【0070】
上記〔数式5c〕の2つの式のうち、第1式では、他方のチャンネルの同一ノートナンバーのノートイベントとのベロシティを加算し、その結果をvelとしている。この第1式により重複区間の加算演算処理が行われたことになる。なお、この結果である和velが127より大きい場合は、vel←127とする処理を行う。第2式は、〔数式5a〕〔数式5b〕の第2式と同一であり、処理したノートナンバーが処理チャンネルのノートオン区間に入り、EventW[]において何番目のノートイベントでオンになったかを特定する処理である。
【0071】
S204において、vel=0であると判断された場合には、2つのチャンネルで時間的に重複していた区間の一方のチャンネルchのノートイベントが終了すると判断され、演算処理部12は、以下の〔数式6a〕〔数式6b〕のいずれかに従った重複区間の終了処理を実行する(S206)。具体的には、低強度選択処理の場合は〔数式6a〕、差分処理、加算処理の場合は〔数式6b〕に従った処理を実行する。
【0072】
〔数式6a〕
vel←−1
【0073】
処理チャンネルのノートイベントはノートオフになり、ここで重複区間が終了し、非重複区間が開始されるが、低強度選択処理の場合は非重複区間のベロシティは一律0に設定される。ただし、ノートオフを示すベロシティ0とベロシティ0をもつノートオン区間とを区別するため、velに−1を与える。
【0074】
〔数式6b〕
vel←EventW[tableW[1−ch,nn]].velocity
tableW[ch,nn]←−1
【0075】
処理チャンネルのノートイベントはノートオフになり、ここで重複区間が終了し、他方のチャンネルのみの非重複区間が開始される。上記〔数式6b〕の第1式では、開始される非重複区間のベロシティとして、既にノートオンになっている他方のチャンネルのノートイベントのベロシティをvelに与える。第2式は、処理チャンネルにおけるノートナンバーnnについてノートオン区間が終了したことを示すための処理である。
【0076】
一方、S202において、他方のチャンネルがノートオフ、即ちtableW[1−ch,nn]が0より小さい場合は、同一ノートナンバーで他方のチャンネル側はノートオフ状態ではなく処理チャンネル側がノートオンになってもノートオフになっても重複することはないため、非重複区間の開始処理に進む(S207)。S207では、S204と同様な確認を行い、vel>0(ノートオン状態)の場合、演算処理部12は、tableW[ch,nn]←pwとし、vel=0(ノートオフ状態)の場合、tableW[ch,nn]←−1とする処理を実行する。低強度選択処理の場合は、さらに、vel>0であれば、vel←−1とする処理を実行する。
【0077】
処理チャンネルに対して、S205、S206、S207のいずれの処理が終了した場合には、出力ノートイベントの書き込みの処理を実行する(S214)。S214では、まず、tableS[nn]=−1かつvel>0、またはtableS[nn] >0かつvel=0の場合、以下の〔数式7〕に従った処理を実行し、出力用の配列EventS[]にノートオンイベントまたはノートオフイベントを生成する。ここで、条件となるtableS[nn]=−1かつvel>0は、そのノートナンバーnnがノートオフ状態であって、現在処理中のノートイベントが、ノートオンイベントであることを示している。また、もう一方の条件であるtableS[nn] >0かつvel=0は、既にそのノートナンバーnnがノートオン状態であって、現在処理中のノートイベントが、ノートオフイベントであることを示している。
【0078】
〔数式9〕
EventS[ps].time←EventW[pw].time
EventS[ps].channel←0
EventS[ps].note−number←nn
EventS[ps].velocity←vel
vel>0の場合tableS[nn]←ps、vel=0の場合tableS[nn]←−1
ps←ps+1
【0079】
上記〔数式9〕の6つの式のうち、第1式、第2式、第3式、第6式は、上記〔数式4〕と同一である。〔数式4〕との違いは、velの値によりノートオフまたはノートオンの双方の場合があるため、第4式において、EventS[ps]のノートイベントのベロシティに現在処理中のベロシティまたは〔数式5〕〜〔数式8〕で補正したベロシティを代入している点である。これは、ノートオンまたはノートオフのいずれの可能性もあり、かつベロシティ値が補正される場合があるためである。第5式では、velの値に応じてtableS[nn]に設定する値が異なっている。vel=0の場合は、〔数式4〕と同様、−1を設定するが、vel>0の場合は、psの値を設定する。
【0080】
S214におけるノートオン処理が終わったら、入力側のEventW[]の格納されている全てのノートイベントの処理が終わったかどうかを判断する(S215)。具体的には、pw←pw+1とした後、pw<Nwの場合、全てのノートイベントの処理が終わっていないため、S201に戻って次のノートイベントについての処理を実行する。pw≧Nwの場合、全てのノートイベントの処理が終わったことになるため、Ns←psとして、重複ノートオン区間処理を終了する。
【0081】
<0デュレーションイベント削除処理>
重複ノートオン区間処理が終了したら、演算処理部12は、0デュレーションイベント削除処理を行う(図2のS3)。重複ノートオン区間についての処理が終了すると、図7で作成された単一チャンネルのMIDIイベント配列EventS[]には、同一ノートナンバーで時間的にノートオン区間が重複するようなノートイベントが存在しなくなる。しかし、EventS[]には、ノートオンとノートオフが同一時刻となる0デュレーションのノートイベントが含まれている可能性がある。そこで、次に、0デュレーションのノートイベントを削除する処理を行う。
【0082】
この0デュレーションイベント削除処理の詳細を図8、9のフローチャートを用いて説明する。0デュレーションイベント削除処理に際して、演算処理部12は、削除処理後の出力する演算MIDIイベント配列をEventD[]として用意し、総ノートイベント数をNd[]とし、EventS[]、EventD[]の各配列へのポインタをps、pdとし、初期状態ではps=pd=0に設定する。また、EventD[]のChannel値は全て0に設定する。さらに、演算処理部12は、0〜127のノートナンバーに対応してノートオン時にMIDIイベント配列へのポインタを格納するノートオンテーブルtableS[]を定義する。そして、tableS[]の全ての初期値を−1に設定する。さらに、定量評価に使用するノートイベントの総エネルギーをEnergy、総デュレーションをDurationとし、初期値はEnergy=Duration=0とする(S301)。
【0083】
配列の準備ができたら、演算処理部12は、ポインタpsで特定されるイベント配列EventS[ps]を参照して、以下の〔数式10〕に従った処理を実行し、処理対象のノートナンバーnn、ベロシティvelを設定する(S302)。
【0084】
〔数式10〕
nn←EventS[ps].note−number
vel←EventS[ps].velocity
【0085】
そして、当該イベントがノートオフ、即ちvel=0であるか否かを確認する(S303)。ノートオン、即ちvel=0でないと確認された場合には、以下の〔数式11〕に従った処理を実行する(S305)。
【0086】
〔数式11〕
tableS[nn]←ps
【0087】
一方、S303において、ノートオフ、即ちvel=0であると確認された場合には、まず、EventS[tableS[nn]].timeとEventS[ps].timeが一致するか、EventS[tableS[nn]].velocityが0より小さいかを確認し(S304)、少なくともいずれか一つの条件を満たす場合に限り、以下の〔数式12〕に従った処理を実行する(S306)。
【0088】
〔数式12〕
EventS[tableS[nn] ].note−number←−1
EventS[ps].note−number←−1
tableS[nn]←−1
【0089】
EventS[tableS[nn]].timeとEventS[ps].timeが一致する場合は、デュレーションが0であることを意味するので、そのノートイベントを削除できるようにマーキングする。また、EventS[tableS[nn]].velocityが0より小さい場合は、負値ベロシティイベント(ベロシティが0になるノートオン区間)であることを意味するので、そのノートイベントを削除できるようにするか、ベロシティ0をもつノートイベントを作成できるようにマーキングする。本実施形態では、上記〔数式12〕の第1式、第2式に示すように、そのノートイベントにノートナンバーとしては無効な負の値(−1)を設定している。S304において、EventS[tableS[nn]].timeとEventS[ps].timeが一致せず、EventS[tableS[nn]].velocityが0以上である有効なノートイベントと判断された場合には、上記〔数式12〕に従った処理は実行しない。代わりに、総エネルギー値と総デュレーション値の更新処理を実行する(S307)。具体的には、以下の〔数式13〕に従った処理を実行する。
【0090】
〔数式13〕
Energy←Energy+EventS[tableS[nn]].velocity・(EventS[ps].time−EventS[tableS[nn]].time)
Duration←Duration+EventS[ps].time−EventS[tableS[nn]].time
【0091】
上記〔数式13〕の第1式では、ノートオン区間のベロシティにデュレーションを乗じてエネルギー値を算出し、それまでに算出されている総エネルギー値に加算することにより、総エネルギー値Energyを更新している。上記〔数式13〕の第2式では、ノートオン区間のデュレーションを、それまで算出された総デュレーションに加算することにより、総デュレーション値Durationを更新している。S305〜S307のいずれかの処理が終了したら、psの値をインクリメントする(S308)。そして、ps<Nsであるかどうかを判断する(S309)。ps<Nsである場合は、S302に戻る。一方、ps≧Nsである場合は、全てのノートイベントについて処理したことを意味するので、総エネルギー値と総デュレーション値を出力し、出力イベント配列の生成に進む。結局、S302〜S309のループにおいては、デュレーションが0のノートイベント、ベロシティが負値であるノートイベントを削除し、総エネルギー値と総デュレーション値を算出する処理を実行していることになる。
【0092】
全てのノートイベントに対する処理を実行し、デュレーション0のノートイベント・ベロシティが負値のノートイベントの削除、総エネルギー値と総デュレーション値の算出が行われたら、出力イベント配列の生成を行う。まず、ps=pd=0に設定する(S310)。続いて、ポインタpsで特定されるイベント配列EventS[ps]を読み込み(S311)、読み込まれたノートイベントが有効であるか、即ちEventS[ps].note−number≧0であるかどうかを確認する(S312)。そして、EventS[ps].note−number≧0である場合は、無効化されていないノートイベントであることを意味するので、以下の〔数式14〕に従った処理を実行し、出力イベント配列EventD[pd]に値を出力する(S313)。
【0093】
〔数式14〕
EventD[pd].time←EventS[ps].time
EventD[pd].channel←0
EventD[pd].note−number←EventS[ps].note−number
EventD[pd].velocity←EventS[ps].velocity
pd←pd+1
【0094】
S312において無効化されているノートイベントであると確認された場合を含め、入力イベント配列のポインタをインクリメントし(S314)、ps<Nsであるかどうかを確認する(S315)。ps<Nsである場合は、S311に戻る。一方、ps≧Nsである場合は、全てのノートイベントについて処理したことを意味するので、Nd←pdとする。さらに、総エネルギー値Energyを総デュレーション値Durationで除算することにより、単位時間あたりのベロシティEnergy/Durationを出力して、処理を終了する。
【0095】
上記で生成されるMIDIイベント配列EventD[]を求める演算MIDIデータとして採用し、それをMIDI符号として出力する。
【0096】
演算MIDIデータは、様々な形式で出力することができる。表示用のデータに変換して、表示部13に画面出力することも可能であるし、音響信号に変換して音響出力部14に音響出力することも可能であるし、そのまま記憶媒体等のデータ出力部15にSMF形式等によりデータ出力することも可能である。表示部13に画面出力するに際しては、特許文献5から特許文献7などに記載の公知の手法を用いることができ、ノートオンおよびノートオフをノートオン区間に変換して左右幅を決定し、ベロシティに対応する上下方向の幅を決定して矩形を生成し、対応するノートナンバーの位置に配置することにより、表示用データを生成し、表示部13に出力する。表示部13と音響出力部14に同時に出力した場合には、2種の音響信号を視覚的かつ聴覚的に評価することができる。
【0097】
<聴覚マスキングデータの作成(マスカー音響信号の評価)(1)>
上記演算符号データの作成(符号データの演算処理)方法を用いて、聴覚マスキングデータを作成することができる。以下、本発明に係る聴覚マスキングデータの作成方法および装置を、2つの実施形態に基づいて説明する。図10は、本発明に係る聴覚マスキングデータ作成装置の一実施形態を示す機能ブロック図である。本実施形態における聴覚マスキングデータ作成装置は、図10に示すように、データ入力部21、演算処理部22、表示部23、音響出力部24、データ出力部25、符号データ作成部26を有すると共に、図示しないハードディスク等の記憶装置、指示入力を行うキーボード、マウス等の入力機器等を有しており、入出力機器が接続された汎用のコンピュータに専用のプログラムを組み込むことにより実現される。
【0098】
図10において、データ入力部21は、聴覚マスキング効果の評価の対象であるマスカー原音音響信号、マスカー加工音響信号またはマスキー音響信号などの複数のWAV形式等(WAVはMicrosoft社の音響信号形式)の音響信号を入力するためのものである。続いて、符号データ作成部26は、入力された音響信号を特許文献4など公知の手法によりMIDIデータ等の符号データに変換するためのものである。後続の演算処理部22と同様に、CPU、メモリを有し、記憶装置から専用のプログラムをメモリ上に読み込んで実行することにより本機能を実現する。演算処理部22は、CPU、メモリを有し、記憶装置から専用のプログラムをメモリ上に読み込んで実行し、本発明の聴覚マスキングデータ作成装置の主要な機能を実現するものであり、演算処理部12の機能も備え、必要に応じて上述した符号データの演算処理も実行する。表示部23は、液晶ディスプレイ等の表示装置により実現され、演算処理部22により作成された聴覚マスキングデータを表示する。聴覚マスキングデータとしては、様々なものを用いることができるが、本実施形態では、マスキング対象成分の増分を聴覚マスキングデータとして用いている。音響出力部24は、MIDI音源、MIDIシーケンサ、アンプおよびスピーカにより実現され、演算処理部22により作成された演算符号データを音響出力する。データ出力部25は、MIDIデータ等の符号データをSMF形式などのデータ形式で出力するためのものである。
【0099】
図11は、第1の実施形態に係る聴覚マスキングデータ作成方法の処理概要を示すフローチャートである。また、図13〜図20は、処理過程におけるMIDI符号データを表示部23に出力した状態を示す図である。図13〜図20においては、横軸が時間軸、縦軸が音の高さ(ノートナンバー)となっている。また、図13〜図20においては、各矩形がノートオン区間を示し、各矩形の横幅がノートオン区間の長さ(Durationに対応)、上下の幅がベロシティを示している。したがって、各矩形の面積がEnergyに対応している。
事前準備として、必要な符号データを作成する処理を行う。まず、会話音・騒音等のかき消される側の音であるマスキー音響信号、BGM等のかき消す側の音であるマスカー音響信号を用意し各々図10に示すデータ入力部21に入力され、それぞれ特許文献4など公知の手法により図10に示す符号データ作成部26においてMIDI符号化し、マスキーMIDI符号A、マスカー原音MIDI符号Bを得る(S15、S16)。マスキーMIDI符号A、マスカー原音MIDI符号Bをそれぞれ表示出力した状態を図17、図14に示す。また、図14と同一の楽曲について、MIDI打ち込みデータを表示出力した状態を図13に示す。さらに、マスカー音響信号に対しては、特許文献2または特許文献3に記載のマスキング効果強調処理を実行し(S17)、マスカー加工音響信号を得た後、同様に特許文献4など公知の手法によりMIDI符号化し(S18)、マスカー加工MIDI符号Cを得る。マスカー加工MIDI符号Cを表示出力した状態を図15に示す。
【0100】
本実施形態に係る聴覚マスキングデータ作成方法は、図11に示した各ステップ(各段階)の詳細な手順を記録したプログラムを、図10に示した聴覚マスキングデータ作成装置が実行することにより行われる。事前準備により用意されたマスキーMIDI符号A、マスカー原音MIDI符号B、マスカー加工MIDI符号Cが符号データ出力部26から出力されると、演算処理部22は、マスキーMIDI符号A、マスカー原音MIDI符号Bに対して、低強度選択モードによるMIDIデータの低強度選択演算を実行する(S11)。具体的には、マスキーMIDI符号A、マスカー原音MIDI符号データBを入力符号データとして、図1〜図3、図5、図7〜図9を用いて説明した演算符号データの作成方法を実行する。この際、重複ノートオン区間についてのベロシティの設定は、低強度選択により行う。すなわち、〔数式5b〕〔数式6a〕等に従った処理を実行し、ベロシティを設定することになる。S11における演算符号データ作成処理の結果、マスキング対象信号成分ABが得られる。上記図1〜図3、図5、図7〜図9を用いた説明から明らかなように、得られるマスキング対象信号成分ABも1チャンネル形式のMIDI符号データとなる。
【0101】
さらに、演算処理部22は、符号データ出力部26から出力されたマスキーMIDI符号A、マスカー加工MIDI符号Cに対して、低強度選択モードによる演算符号データ作成処理を実行する(S12)。すなわち、図1〜図3、図5、図7〜図9を用いて説明した演算符号データの作成方法を実行し、重複ノートオン区間についての低強度選択によりベロシティの設定を行う。S11における処理とS12における処理は、入力データが異なるだけであり、処理自体は全く同一である。S12における演算符号データ作成処理の結果、マスキング対象信号成分ACが得られる。マスキング対象信号成分ACも、マスキング対象信号成分ABと同様、1チャンネル形式のMIDI符号データとなる。
【0102】
マスキング対象信号成分AB、マスキング対象信号成分ACが得られたら、演算処理部22は、マスキング対象信号成分AB、マスキング対象信号成分ACに対して、差分演算モードによる演算符号データ作成処理を実行する(S13およびS14)。具体的には、マスキング対象信号成分ABとマスキング対象信号成分ACを第1の入力符号データとして、マスカー原音MIDI符号Bとマスカー加工MIDI符号Cを第2の入力符号データとして、各々、図1〜図4、図7〜図9を用いて説明した演算符号データの作成方法を実行する。この際、重複ノートオン区間についてのベロシティの設定は、差分演算により行う。すなわち、〔数式5a〕〔数式6b〕等に従った処理を実行し、ベロシティを設定することになる。S13における演算符号データ作成処理の結果、差分MIDI符号ABCが得られ、S14における演算符号データ作成処理の結果、差分MIDI符号BCが得られる。上記図1〜図4、図7〜図9を用いた説明から明らかなように、得られる差分MIDI符号ABCおよび差分MIDI符号BCも1チャンネル形式のMIDI符号データとなる。
【0103】
差分MIDI符号ABCは、S17のマスキング効果強調処理により強調されるマスキング効果の度合いを示す音響マスキングデータの差分量を与え、差分MIDI符号BCは、S17のマスキング効果強調処理に伴い品質劣化する信号成分を与え、各々、演算MIDIデータであるため、上述のように、様々な形式で出力しマスキング効果や品質劣化の度合いを評価することができる。表示用のデータに変換して、表示部23に画面出力することも可能であるし、音響信号に変換して音響出力部24に音響出力することも可能であるし、そのまま記憶媒体等のデータ出力部25にSMF形式等によりデータ出力することも可能である。表示部23に画面出力するに際しては、特許文献5から特許文献7などに記載の公知の手法を用いることができ、ノートオンおよびノートオフをノートオン区間に変換して左右幅を決定し、ベロシティに対応する上下方向の幅を決定して矩形を生成し、対応するノートナンバーの位置に配置することにより、表示用データを生成し、表示部23に出力する。マスキーMIDI符号A、マスカー原音MIDI符号B、マスカー加工MIDI符号Cを基に作成した差分MIDI符号ABCおよび差分MIDI符号BCを出力することにより、聴覚マスキング効果とそれに伴う品質劣化成分を客観的に判断することが可能となり、S17のマスキング効果強調処理における強調度合いの調整を効率良く行うことが可能になる。表示部23と音響出力部24に同時に出力した場合には、視覚的かつ聴覚的に評価することができる。表示部23においては、図20に示すような差分MIDI符号ABCと図16に示すような差分MIDI符号BCが出力されることになる。
【0104】
<聴覚マスキングデータの作成(マスカー音響信号の評価)(2)>
次に、第2の実施形態について説明する。第1の実施形態では、S11、S12において、単一のマスキーMIDI符号Aを用いて演算を行い、マスキング対象信号成分AB、ACを作成したが、第2の実施形態では、マスキーMIDI符号Aを+1または−1半音の範囲に拡張させて演算を行い、合算マスキング対象信号成分AB、ACを作成する。図12は、マスキーMIDI符号Aを+1または−1半音の範囲に拡張させて合算マスキング対象信号成分AB、ACを作成する処理の概要を示すフローチャートである。第1の実施形態と同様、事前準備として、必要な符号データを作成する処理を行う。図12では図11記載のマスキーMIDI符号A、マスカー原音MIDI符号B、マスカー加工MIDI符号Cが既に準備されているものとする。
【0105】
本実施形態に係る聴覚マスキングデータの作成方法は、図12に示した各ステップ(各段階)の詳細な手順を記録したプログラムを、図10に示した聴覚マスキングデータ作成装置が実行することにより行われる。事前準備により用意されたマスキーMIDI符号A、マスカー原音MIDI符号B、マスカー加工MIDI符号Cが符号データ作成部26から出力されると、演算処理部22は、マスキーMIDI符号Aに対して、1半音(1ステップのMIDIノートナンバーに相当)だけ高い方向にシフトする処理を行う(S21)。具体的には、マスキーMIDI符号A内の全イベントデータEvent[]について、その属性であるnote−numberに“1”だけ加算する処理を実行する。S21におけるシフト処理の結果、改変マスキーMIDI符号A1が得られる。改変マスキーMIDI符号A1は、マスキーMIDI符号Aに比べて全体に半音だけ高くなったデータとなる。
【0106】
続いて、演算処理部22は、マスキーMIDI符号Aに対して、1半音だけ低い方向にシフトする処理を行う(S21)。具体的には、マスキーMIDI符号A内の全イベントデータEvent[]について、その属性であるnote−numberに“1”だけ減算する処理を実行する。S22におけるシフト処理の結果、改変マスキーMIDI符号A2が得られる。改変マスキーMIDI符号A2は、マスキーMIDI符号Aに比べて全体に半音だけ低くなったデータとなる。
【0107】
次に、演算処理部22は、マスキーMIDI符号A、改変マスキーMIDI符号A1、改変マスキーMIDI符号A2、マスカー原音MIDI符号B、マスカー加工MIDI符号Cに対して、低強度選択モードによる演算符号データ作成処理を実行する(S23〜S25)。具体的には、マスキーMIDI符号Aとマスカー原音MIDI符号Bまたはマスカー加工MIDI符号C、を入力符号データとして、図1〜図3、図5、図7〜図9を用いて説明した演算符号データの作成方法を実行し、マスキング対象信号成分ABまたはマスキング対象信号成分ACを作成する(S23)。同様に、改変マスキーMIDI符号A1とマスカー原音MIDI符号Bまたはマスカー加工MIDI符号Cを入力符号データとして、マスキング対象信号成分AB1またはマスキング対象信号成分AC1を作成し(S24)、改変マスキーMIDI符号A2とマスカー原音MIDI符号Bまたはマスカー加工MIDI符号Cを入力符号データとして、マスキング対象信号成分AB2またはマスキング対象信号成分AC2を作成する(S25)。この際、重複ノートオン区間についてのベロシティの設定は、低強度選択により行う。すなわち、S11、S12と同様、〔数式5b〕〔数式6a〕等に従った処理を実行し、ベロシティを設定することになる。S23〜S25における演算符号データ作成処理の結果、マスキング対象信号成分AB、マスキング対象信号成分AB1、マスキング対象信号成分AB2、またはマスキング対象信号成分AC、マスキング対象信号成分AC1、マスキング対象信号成分AC2が得られる。上記図1〜図3、図5、図7〜図9を用いた説明から明らかなように、これら6種のマスキング対象信号成分はいずれも1チャンネル形式のMIDI符号データとなる。
【0108】
マスキング対象信号成分AB、AB1、AB2またはマスキング対象信号成分AC、AC1、AC2が得られたら、演算処理部22は、マスキング対象信号成分ABとマスキング対象信号成分AB1またはマスキング対象信号成分ACとマスキング対象信号成分AC1に対して、加算演算モードによる演算符号データ作成処理を実行する(S26)。具体的には、マスキング対象信号成分ABとマスキング対象信号成分AB1またはマスキング対象信号成分ACとマスキング対象信号成分AC1を入力符号データとして、図1〜図3、図6〜図9を用いて説明した演算符号データの作成方法を実行する。この際、重複ノートオン区間についてのベロシティの設定は、加算演算により行う。すなわち、〔数式5c〕〔数式6b〕等に従った処理を実行し、ベロシティを設定することになる。S26における演算符号データ作成処理の結果、合算マスキング対象成分ABまたは合算マスキング対象成分ACが得られる。上記図1〜図3、図6〜図9を用いた説明から明らかなように、得られる合算マスキング対象成分ABまたは合算マスキング対象成分ACも1チャンネル形式のMIDI符号データとなる。
【0109】
次に、演算処理部22は、合算マスキング対象成分ABとマスキング対象信号成分AB2または合算マスキング対象成分ACとマスキング対象信号成分AC2に対して、加算演算モードによる演算符号データ作成処理を実行する(S27)。すなわち、図1〜図3、図6〜図9を用いて説明した演算符号データの作成方法を実行し、重複ノートオン区間についての加算演算によりベロシティの設定を行う。S26における処理とS27における処理は、入力データが異なるだけであり、処理自体は全く同一である。S27における演算符号データ作成処理の結果、新たな合算マスキング対象成分ABまたは合算マスキング対象成分ACが得られる。新たに得られた合算マスキング対象成分ABまたは合算マスキング対象成分ACも、1チャンネル形式のMIDI符号データとなる。本実施形態では、上下に1半音ずつシフトすることにより2つの改変マスキーMIDI符号を生成したが、さらにシフトした改変マスキーMIDI符号を生成し、それらを基に合算マスキング対象成分ACを作成するようにしても良い。
【0110】
合算マスキング対象成分ABまたは合算マスキング対象成分ACは、図11のマスキング対象成分ABまたはマスキング対象成分ACに対応し、図11に示される手法に比べ、各マスキング対象成分の算出を+1または−1半音の範囲に拡張させて高精度に算出するようにしたものである。従って、図11のマスキング対象成分ABまたはマスキング対象成分ACを図12の合算マスキング対象成分ABまたは合算マスキング対象成分ACに置換すれば、図11のS13およびS14に基づいて差分MIDI符号ABCおよび差分MIDI符号BCを高精度に算出することができ、高精度に視覚的かつ聴覚的に評価することができる。合算マスキング対象成分AB、合算マスキング対象成分ACをそれぞれ表示出力した状態を図18、図19に示す。
【産業上の利用可能性】
【0111】
本発明は、聴覚マスキングを用いて会話音の秘匿化を行ったり、騒音の快音化を行ったりする際に、マスカー音に対して何らかの信号処理や改変を加え、それにより、マスキー音に対する秘匿化や快音化の効果を評価する産業に利用することができる。秘匿化としては、医療機関(調剤薬局などの受付カウンター)、金融機関・保険会社の相談カウンター、法律事務所などの面談室、携帯電話店のカウンター、会食に使われる飲食店などにおいて交わされる会話音声が待合室や他の面談室や座席に居る人々に聴取されないようにするものがある。快音化としては、トイレの排泄音などがトイレ内外に漏れることを低減したり、オフィス室内に設置される各種騒音源(コンピュータサーバー、プリンター・複写機、断裁機、空調機、送風機)より事務室に漏れる騒音の不快感を和らげ、騒音レベルを心理的に低減化する手法に関するものがある。
【符号の説明】
【0112】
11、21 データ入力部
12、22 演算処理部
13、23 表示部
14、24 音響出力部
15、25 データ出力部
16、26 符号データ作成部

【特許請求の範囲】
【請求項1】
聴覚マスキングにおけるマスキー音響信号、マスカー原音音響信号、マスカー加工音響信号の各々を符号化して得られたマスキー符号A、マスカー原音符号B、マスカー加工符号Cに対して、
前記マスキー符号Aと前記マスカー原音符号Bを用いて、低強度選択に基づく演算により、マスキング対象信号成分ABを作成するとともに、前記マスキー符号Aと前記マスカー加工符号Cを用いて、低強度選択に基づく演算により、マスキング対象信号成分ACを作成する低強度選択演算段階と、
前記マスキング対象信号成分ABおよび前記マスキング対象信号成分ACを用いて、差分演算に基づく演算により、聴覚マスキングデータとしてマスキング対象成分の増分ABCを作成するようにしている差分演算段階と、
を有することを特徴とする聴覚マスキングデータの作成方法。
【請求項2】
聴覚マスキングにおけるマスキー音響信号、マスカー原音音響信号、マスカー加工音響信号の各々を符号化して得られたマスキー符号A、マスカー原音符号B、マスカー加工符号Cに対して、
前記マスキー符号Aを構成する全ての音の高さに一律に所定のオフセット値を加え、複数通りのオフセット値に対応して、複数通りの改変マスキー符号A1、改変マスキー符号A2,...,を作成する符号データ改変段階と、
前記マスキー符号Aおよび前記複数通りの改変マスキー符号A1,...の各々と前記マスカー原音符号Bまたはマスカー加工符号Cを用いて、低強度選択に基づく演算により、複数通りのマスキング対象信号成分AB,マスキング対象信号成分AB1,...またはマスキング対象信号成分AC,マスキング対象信号成分AC1,..を作成している低強度選択演算段階と、
前記複数通りのマスキング対象信号成分AB,マスキング対象信号成分AB1,...またはマスキング対象信号成分AC,マスキング対象信号成分AC1,..どうしを各々の群内で2つずつ重複無く順次組み合わせ、加算演算に基づく演算により、合算マスキング対象信号成分ABまたは合算マスキング対象信号成分ACを作成するようにしている加算演算段階と、
前記マスキング対象信号成分ABおよび前記マスキング対象信号成分ACを用いて、差分演算に基づく演算により、聴覚マスキングデータとしてマスキング対象成分の増分ABCを作成するようにしている差分演算段階と、
を有することを特徴とする聴覚マスキングデータの作成方法。
【請求項3】
請求項1または請求項2において、
前記差分演算段階により得られたマスキング対象成分の増分ABCを表示手段に画面表示する段階、および/または前記マスキング対象成分の増分ABCを音響再生手段により音響再生する段階をさらに有することを特徴とする聴覚マスキングデータの作成方法。
【請求項4】
請求項1から請求項3のいずれか一項において、
前記マスキー符号A、マスカー原音符号B、マスカー加工符号Cは時系列に配置されたイベントデータで構成され、各イベントデータには、発音開始または発音終了の識別、時刻、音の高さ、チャンネル番号、音の強さの属性情報を備えた符号データであり、
前記差分演算に基づく演算は、
前記2つの符号データの各イベントデータに対して互いに異なるチャンネル番号を付与しながら、時刻が早い順にソートして、2つのチャンネル番号を有する1つの時系列な符号データに統合し、2チャンネル符号データを作成する符号データ統合段階と、
発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される区間を発音区間としたとき、前記2チャンネル符号データの中で、一方のチャンネルの発音区間が、同一の音の高さをもつ他方のチャンネルの発音区間と時間的に全てまたは一部が重複する場合に、両発音区間が重複する区間を、両発音区間の音の強さの差分値を新たな音の強さとする新たな発音区間を重複区間として生成し、前記重複する両発音区間のうち、重複しない区間については、前記重複区間を除く区間に元の音の強さを有する発音区間を生成する発音区間更新段階と、
前記発音区間更新段階にて更新された発音区間の各々の発音開始のイベントデータと発音終了のイベントデータを時系列にソートし、所定の形式で符号化する演算符号データ符号化段階と、
を有することを特徴とする聴覚マスキングデータの作成方法。
【請求項5】
請求項1から請求項4のいずれか一項において、
前記マスキー符号A、マスカー原音符号B、マスカー加工符号Cは時系列に配置されたイベントデータで構成され、各イベントデータには、発音開始または発音終了の識別、時刻、音の高さ、チャンネル番号、音の強さの属性情報を備えた符号データであり、
前記低強度選択に基づく演算は、
前記2つの符号データの各イベントデータに対して互いに異なるチャンネル番号を付与しながら、時刻が早い順にソートして、2つのチャンネル番号を有する1つの時系列な符号データに統合し、2チャンネル符号データを作成する符号データ統合段階と、
発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される区間を発音区間としたとき、前記2チャンネル符号データの中で、一方のチャンネルの発音区間が、同一の音の高さをもつ他方のチャンネルの発音区間と時間的に全てまたは一部が重複する場合に、両発音区間が重複する区間を、両発音区間の音の強さのいずれか小さい方の値を新たな音の強さとする新たな発音区間を重複区間として生成し、前記重複する両発音区間のうち、重複しない区間については、発音区間の音の強さを全て0に設定する発音区間更新段階と、
前記発音区間更新段階にて更新された発音区間の各々の発音開始のイベントデータと発音終了のイベントデータを時系列にソートし、所定の形式で符号化する演算符号データ符号化段階と、
を有することを特徴とする聴覚マスキングデータの作成方法。
【請求項6】
請求項1から請求項5のいずれか一項において、
前記マスキー符号A、マスカー原音符号B、マスカー加工符号Cは時系列に配置されたイベントデータで構成され、各イベントデータには、発音開始または発音終了の識別、時刻、音の高さ、チャンネル番号、音の強さの属性情報を備えた符号データであり、
前記加算演算に基づく演算は、
前記2つの符号データの各イベントデータに対して互いに異なるチャンネル番号を付与しながら、時刻が早い順にソートして、2つのチャンネル番号を有する1つの時系列な符号データに統合し、2チャンネル符号データを作成する符号データ統合段階と、
発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される区間を発音区間としたとき、前記2チャンネル符号データの中で、一方のチャンネルの発音区間が、同一の音の高さをもつ他方のチャンネルの発音区間と時間的に全てまたは一部が重複する場合に、両発音区間が重複する区間を、両発音区間の音の強さの和を新たな音の強さとする新たな発音区間を重複区間として生成し、前記重複する両発音区間のうち、重複しない区間については、一方のチャンネルの発音区間の音の強さを有する発音区間を生成する発音区間更新段階と、
前記発音区間更新段階にて更新された発音区間の各々の発音開始のイベントデータと発音終了のイベントデータを時系列にソートし、所定の形式で符号化する演算符号データ符号化段階と、
を有することを特徴とする聴覚マスキングデータの作成方法。
【請求項7】
請求項4から請求項6のいずれか一項において、
前記発音区間更新段階は、前記重複区間の音の強さが0の場合、前記音の強さを0以外の1〜127の範囲で小さな値に変更することを特徴とする聴覚マスキングデータの作成方法。
【請求項8】
請求項4から請求項6のいずれか一項において、
前記発音区間更新段階は、前記重複区間の音の強さが0の場合、前記重複区間を符号化対象から削除することを特徴とする聴覚マスキングデータの作成方法。
【請求項9】
請求項4から請求項8のいずれか一項において、
前記演算符号データ符号化段階にて符号化された演算符号データに対して、発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される発音区間を抽出し、前記抽出された全ての発音区間の時間間隔(発音終了のイベントデータの時刻と発音開始のイベントデータの時刻との差)の総和値Duration、および前記抽出された全ての発音区間の音の強さと発音区間の時間間隔(発音終了のイベントデータの時刻と発音開始のイベントデータの時刻との差)との積の総和値Energyを算出し、総和値Energyを総和値Durationで除した値を前記演算符号データの評価値として出力するようにしていることを特徴とする聴覚マスキングデータの作成方法。
【請求項10】
請求項4から請求項9のいずれか一項において、
前記演算符号データ符号化段階は、前記重複発音区間差分処理段階により得られた発音区間として、発音開始と発音終了の時刻が同一のものがある場合に、当該発音区間を構成するイベントデータを削除する処理をさらに行うことを特徴とする聴覚マスキングデータの作成方法。
【請求項11】
請求項4から請求項10のいずれか一項において、
前記符号データは、MIDIデータであり、前記発音開始の識別はノートオン、前記発音終了の識別はノートオフ、前記時刻はデルタタイム、前記音の高さはノートナンバー、前記音の強さはベロシティ、前記発音区間はノートオン区間で表現されることを特徴とする聴覚マスキングデータの作成方法。
【請求項12】
聴覚マスキングにおけるマスキー音響信号、マスカー原音音響信号、マスカー加工音響信号の各々を符号化して得られたマスキー符号A、マスカー原音符号B、マスカー加工符号Cを入力する手段と、
前記マスキー符号Aと前記マスカー原音符号Bを用いて、低強度選択に基づく演算により、マスキング対象信号成分ABを作成するとともに、前記マスキー符号Aと前記マスカー加工符号Cを用いて、低強度選択に基づく演算により、マスキング対象信号成分ACを作成する低強度選択演算手段と、
前記マスキング対象信号成分ABおよび前記マスキング対象信号成分ACを用いて、差分演算に基づく演算により、聴覚マスキングデータとしてマスキング対象成分の増分ABCを作成するようにしている差分演算手段と、
を有することを特徴とする聴覚マスキングデータの作成装置。
【請求項13】
聴覚マスキングにおけるマスキー音響信号、マスカー原音音響信号、マスカー加工音響信号の各々を符号化して得られたマスキー符号A、マスカー原音符号B、マスカー加工符号Cを入力する手段と、
前記マスキー符号Aを構成する全ての音の高さに一律に所定のオフセット値を加え、複数通りのオフセット値に対応して、複数通りの改変マスキー符号A1、改変マスキー符号A2,...,を作成する符号データ改変手段と、
前記マスキー符号Aおよび前記複数通りの改変マスキー符号A1,...の各々と前記マスカー原音符号Bまたはマスカー加工符号Cを用いて、低強度選択に基づく演算により、複数通りのマスキング対象信号成分AB,マスキング対象信号成分AB1,...またはマスキング対象信号成分AC,マスキング対象信号成分AC1,..を作成している低強度選択演算手段と、
前記複数通りのマスキング対象信号成分AB,マスキング対象信号成分AB1,...またはマスキング対象信号成分AC,マスキング対象信号成分AC1,..どうしを各々の群内で2つずつ重複無く順次組み合わせ、加算演算に基づく演算により、合算マスキング対象信号成分ABまたは合算マスキング対象信号成分ACを作成するようにしている加算演算手段と、
前記マスキング対象信号成分ABおよび前記マスキング対象信号成分ACを用いて、差分演算に基づく演算により、聴覚マスキングデータとしてマスキング対象成分の増分ABCを作成するようにしている差分演算手段と、
を有することを特徴とする聴覚マスキングデータの作成装置。
【請求項14】
請求項12または請求項13において、
前記差分演算手段により得られたマスキング対象成分の増分ABCを画面表示する表示手段、および/または前記マスキング対象成分の増分ABCを音響再生する音響再生手段をさらに有することを特徴とする聴覚マスキングデータの作成装置。
【請求項15】
請求項12から請求項14のいずれか一項において、
前記マスキー符号A、マスカー原音符号B、マスカー加工符号Cは時系列に配置されたイベントデータで構成され、各イベントデータには、発音開始または発音終了の識別、時刻、音の高さ、チャンネル番号、音の強さの属性情報を備えた符号データであり、
前記差分演算に基づく演算は、
前記2つの符号データの各イベントデータに対して互いに異なるチャンネル番号を付与しながら、時刻が早い順にソートして、2つのチャンネル番号を有する1つの時系列な符号データに統合し、2チャンネル符号データを作成する符号データ統合手段と、
発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される区間を発音区間としたとき、前記2チャンネル符号データの中で、一方のチャンネルの発音区間が、同一の音の高さをもつ他方のチャンネルの発音区間と時間的に全てまたは一部が重複する場合に、両発音区間が重複する区間を、両発音区間の音の強さの差分値を新たな音の強さとする新たな発音区間を重複区間として生成し、前記重複する両発音区間のうち、重複しない区間については、前記重複区間を除く区間に元の音の強さを有する発音区間を生成する発音区間更新手段と、
前記発音区間更新手段にて更新された発音区間の各々の発音開始のイベントデータと発音終了のイベントデータを時系列にソートし、所定の形式で符号化する演算符号データ符号化手段と、
により実行されることを特徴とする聴覚マスキングデータの作成装置。
【請求項16】
請求項12から請求項15のいずれか一項において、
前記マスキー符号A、マスカー原音符号B、マスカー加工符号Cは時系列に配置されたイベントデータで構成され、各イベントデータには、発音開始または発音終了の識別、時刻、音の高さ、チャンネル番号、音の強さの属性情報を備えた符号データであり、
前記低強度選択に基づく演算は、
前記2つの符号データの各イベントデータに対して互いに異なるチャンネル番号を付与しながら、時刻が早い順にソートして、2つのチャンネル番号を有する1つの時系列な符号データに統合し、2チャンネル符号データを作成する符号データ統合手段と、
発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される区間を発音区間としたとき、前記2チャンネル符号データの中で、一方のチャンネルの発音区間が、同一の音の高さをもつ他方のチャンネルの発音区間と時間的に全てまたは一部が重複する場合に、両発音区間が重複する区間を、両発音区間の音の強さのいずれか小さい方の値を新たな音の強さとする新たな発音区間を重複区間として生成し、前記重複する両発音区間のうち、重複しない区間については、発音区間の音の強さを全て0に設定する発音区間更新手段と、
前記発音区間更新手段にて更新された発音区間の各々の発音開始のイベントデータと発音終了のイベントデータを時系列にソートし、所定の形式で符号化する演算符号データ符号化手段と、
により実行されることを特徴とする聴覚マスキングデータの作成装置。
【請求項17】
請求項12から請求項16のいずれか一項において、
前記マスキー符号A、マスカー原音符号B、マスカー加工符号Cは時系列に配置されたイベントデータで構成され、各イベントデータには、発音開始または発音終了の識別、時刻、音の高さ、チャンネル番号、音の強さの属性情報を備えた符号データであり、
前記加算演算に基づく演算は、
前記2つの符号データの各イベントデータに対して互いに異なるチャンネル番号を付与しながら、時刻が早い順にソートして、2つのチャンネル番号を有する1つの時系列な符号データに統合し、2チャンネル符号データを作成する符号データ統合手段と、
発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される区間を発音区間としたとき、前記2チャンネル符号データの中で、一方のチャンネルの発音区間が、同一の音の高さをもつ他方のチャンネルの発音区間と時間的に全てまたは一部が重複する場合に、両発音区間が重複する区間を、両発音区間の音の強さの和を新たな音の強さとする新たな発音区間を重複区間として生成し、前記重複する両発音区間のうち、重複しない区間については、一方のチャンネルの発音区間の音の強さを有する発音区間を生成する発音区間更新手段と、
前記発音区間更新手段にて更新された発音区間の各々の発音開始のイベントデータと発音終了のイベントデータを時系列にソートし、所定の形式で符号化する演算符号データ符号化手段と、
により実行されることを特徴とする聴覚マスキングデータの作成装置。
【請求項18】
請求項15から請求項17のいずれか一項において、
前記発音区間更新手段は、前記重複区間の音の強さが0の場合、前記音の強さを0以外の1〜127の範囲で小さな値に変更することを特徴とする聴覚マスキングデータの作成装置。
【請求項19】
請求項15から請求項17のいずれか一項において、
前記発音区間更新手段は、前記重複区間の音の強さが0の場合、前記重複区間を符号化対象から削除することを特徴とする聴覚マスキングデータの作成装置。
【請求項20】
請求項15から請求項19のいずれか一項において、
前記演算符号データ符号化段階にて符号化された演算符号データに対して、発音開始のイベントデータとそれに対応する同一の音の高さをもつ発音終了の2つのイベントデータの対で構成される発音区間を抽出し、前記抽出された全ての発音区間の時間間隔(発音終了のイベントデータの時刻と発音開始のイベントデータの時刻との差)の総和値Duration、および前記抽出された全ての発音区間の音の強さと発音区間の時間間隔(発音終了のイベントデータの時刻と発音開始のイベントデータの時刻との差)との積の総和値Energyを算出し、総和値Energyを総和値Durationで除した値を前記演算符号データの評価値として出力するようにしていることを特徴とする聴覚マスキングデータの作成装置。
【請求項21】
請求項15から請求項20のいずれか一項において、
前記演算符号データ符号化手段は、前記重複発音区間差分処理手段により得られた発音区間として、発音開始と発音終了の時刻が同一のものがある場合に、当該発音区間を構成するイベントデータを削除する処理をさらに行うことを特徴とするマスキングデータの作成装置。
【請求項22】
請求項15から請求項21のいずれか一項において、
前記符号データは、MIDIデータであり、前記発音開始の識別はノートオン、前記発音終了の識別はノートオフ、前記時刻はデルタタイム、前記音の高さはノートナンバー、前記音の強さはベロシティ、前記発音区間はノートオン区間で表現されることを特徴とする聴覚マスキングデータの作成装置。
【請求項23】
請求項1から請求項11のいずれかに記載の聴覚マスキングデータの作成方法をコンピュータに実行させるためのプログラム。
【請求項24】
請求項12から請求項22のいずれかに記載の聴覚マスキングデータの作成装置としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate