(57)【特許請求の範囲】
【請求項１】
任意の音信号を入力するための入力手段と、
前記入力手段から入力された音信号のサンプル振幅値の所定サンプル数にわたる平均値をそれぞれ求め、その結果を時系列的な平均レベル情報として出力する演算手段と、
前記演算手段によって求められた平均レベル情報が所定値以上の区間を有効区間として検出する有効区間検出手段と、
検出した有効区間の中から、前記平均レベル情報の傾きに基づき、安定区間を検出する安定区間検出手段と、
検出した安定区間の中から、１つの音符に相当する定常区間を検出する定常区間検出手段と
を具えたことを特徴とする音信号分析装置。
【請求項２】
任意の音信号を入力するための入力手段と、
前記入力手段から入力された音信号のサンプル振幅値の所定サンプル数毎にその最大値を検出し、検出された最大値を補間することによって補助波形を作成する波形作成手段と、
前記波形作成手段によって作成された補助波形が所定値以上の区間を第１の区間として検出する第１区間検出手段と、
前記第１の区間内における前記音信号のサンプル振幅値に基づいて音信号分析用の第２の区間を、該第１の区間の中から検出する第２区間検出手段と、
前記第２の区間内における前記音信号中の隣接する波形同士の一致度合いを分析し、一致していると分析された連続する複数の波形からなる区間を第３の区間として検出する第３区間検出手段と、
前記検出された第３の区間に基づき、１つの音符に相当する定常区間を検出する手段と
を具えたことを特徴とする音信号分析装置。
【請求項３】
前記検出された前記定常区間において、前記音信号のピッチを分析し、該音信号のノートを決定するノート分析手段を更に具えたことを特徴とする請求項１又は２に記載の音信号分析装置。
【請求項４】
分析すべき音信号を入力するステップと、
入力された音信号のサンプル振幅値の所定サンプル数にわたる平均値をそれぞれ求め、その結果を時系列的な平均レベル情報として出力するステップと、
前記平均レベル情報が所定値以上の区間を有効区間として検出するステップと、
検出した有効区間の中から、前記平均レベル情報の傾きに基づき、安定区間を検出するステップと、
検出した安定区間の中から、１つの音符に相当する定常区間を検出するステップと
を具備する音信号を分析するための方法。
【請求項５】
分析すべき音信号を入力するステップと、
入力された音信号のサンプル振幅値の所定サンプル数毎にその最大値を検出し、検出された最大値を補間することによって補助波形を作成するステップと、
前記作成された補助波形が所定値以上の区間を第１の区間として検出するステップと、
前記第１の区間内における前記音信号のサンプル振幅値に基づいて音信号分析用の第２の区間を、該第１の区間の中から検出するステップと、
前記第２の区間内における前記音信号中の隣接する波形同士の一致度合いを分析し、一致していると分析された連続する複数の波形からなる区間を第３の区間として検出するステップと、
前記検出された第３の区間に基づき、１つの音符に相当する定常区間を検出するステップと
を具備する音信号を分析するための方法。
【請求項６】
コンピュータによって読み取り可能な記録媒体であって、該コンピュータに、
分析すべき音信号を入力させるステップと、
入力された音信号のサンプル振幅値の所定サンプル数にわたる平均値をそれぞれ求め、その結果を時系列的な平均レベル情報として出力させるステップと、
前記平均レベル情報が所定値以上の区間を有効区間として検出させるステップと、
検出した有効区間の中から、前記平均レベル情報の傾きに基づき、安定区間を検出させるステップと、
検出した安定区間の中から、１つの音符に相当する定常区間を検出させるステップと
からなる手順を実行させるプログラムを記憶してなる記録媒体。
【請求項７】
コンピュータによって読み取り可能な記録媒体であって、該コンピュータに、
分析すべき音信号を入力させるステップと、
入力された音信号のサンプル振幅値の所定サンプル数毎にその最大値を検出し、検出された最大値を補間することによって補助波形を作成させるステップと、
前記作成された補助波形が所定値以上の区間を第１の区間として検出させるステップと、
前記第１の区間内における前記音信号のサンプル振幅値に基づいて音信号分析用の第２の区間を、該第１の区間の中から検出させるステップと、
前記第２の区間内における前記音信号中の隣接する波形同士の一致度合いを分析し、一致していると分析された連続する複数の波形からなる区間を第３の区間として検出させるステップと、
前記検出された第３の区間に基づき、１つの音符に相当する定常区間を検出させるステップと
からなる手順を実行させるプログラムを記憶してなる記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、マイクロフォン等によって入力した音声信号や楽音信号等、そのピッチまたはノートが未確定の音信号に基づいて、音楽的な音が存在する区間（有効区間）やその音楽的な音の定常部分を分析し、そのノート（音階の音名）や音符長を自動的に分析することができるようにした音信号分析装置及び方法に関し、更に、そのためのプログラムを記憶した記録媒体に関する。
この発明に従う分析結果は、必要に応じてＭＩＤＩ情報等の形態の電子的楽譜情報として出力することができるものであり、従って、この発明は人間の音声等で入力した可聴的なメロディを自動的に楽譜化することができる技術に関するものである。
【０００２】
【従来の技術】
最近、コンピュータ等を用いて、ＭＩＤＩ情報等の演奏情報を発生し、その演奏情報に基づいて演奏音を再生するコンピュータ演奏システムが新たな楽音演奏装置として注目されている。
この種のコンピュータ演奏システムでは、演奏情報を発生するためのデータを入力する方式として、リアルタイム入力方式、ステップ入力方式、数値入力方式、楽譜入力方式等がある。
リアルタイム入力方式は、テープレコーダのように演奏者が実際に演奏した鍵盤等の演奏操作子の操作情報をリアルタイムに演奏情報に変換する方式である。数値入力方式は、音高（ピッチ）、音の長さ、音の強弱等の演奏情報をコンピュータのキーボードから直接数値データとして入力する方式である。楽譜入力方式は、コンピュータのファンクションキーやマウス等を用いてディスプレイ上の楽譜（５線譜）に単純化した音譜記号等を配置していく方式である。ステップ入力方式は、音譜をＭＩＤＩ鍵盤やソフトウェア鍵盤で入力し、音の長さをコンピュータのファンクションキーやマウス等を用いて入力する方式である。
【０００３】
上述の各入力方式のうち、リアルタイム入力方式は、実際の演奏操作状態をそのまま演奏情報として記憶することができるので、人間的な微妙な演奏上のニュアンスを表現し易く、また短時間入力が可能であるという利点を有する。しかし、この方式は演奏者自身に高度の楽器演奏能力が必要であり、初心者等には不向きな入力方式である。
そこで、リアルタイム入力方式の利点を生かし、初心者でも短時間で簡単に演奏情報を入力できるようにした演奏情報発生装置として、人声音又は自然楽器の楽音をマイクを介して直接入力し、その入力音に応じて演奏情報を発生するものがある。すなわち、これは、人声音やギター等の音（単音）をマイクから入力するだけで、簡単にＭＩＤＩ信号を発生することができ、ＭＩＤＩキーボード等を使用しなくてもＭＩＤＩ機器を制御できる。
【０００４】
【発明が解決しようとする課題】
従来の演奏情報発生装置では、マイクからの入力音のピッチ変化に対して、次のような処理を行ってＭＩＤＩ情報を発生している。すなわち、第１の方法はピッチ変化を半音単位で検出し、そのピッチのノート情報のみを発生する。第２の方法はピッチ変化を半音単位で検出し、そのピッチのノート情報と、その間のピッチ変化に関するピッチベンド情報（音高変化情報）とを発生する。第３の方法はノート検出することなく、入力信号のピッチを上下１オクターブの範囲で変化し得るピッチベンド情報として発生する。また、ノート情報（ノートオン又はノートオフ）を発生するのに、入力音のレベルを所定の基準値と比較し、その基準値よりも入力音のレベルが大きくなった時点でノートオンを、小さくなった時点でノートオフを発生している。
しかしながら、上記第１及び第２の方法のようにピッチ変化を半音単位で検出する場合において、入力音のピッチが微妙にゆれると意図しないノート情報（ノートオン又はノートオフ）が多数発生するという問題がある。また、第３の方法のようにピッチ変化をピッチベンド情報で発生する場合は、ピッチ変化をピッチベンド情報で忠実に追従させることができるが、採譜のような目的には適さない。さらに、入力レベルに応じてノート情報を発生すると、入力音のレベルのゆれに応じて意図しないノート情報が多数発生するという問題がある。
【０００５】
ところで、リアルタイム入力方式においては、複数の音が任意の時間間隔で時系列的にマイクに入力されるので、音の存在する部分に対して効率的な分析を行うことが要求される。すなわち、マイク入力された信号に対してピッチ等の分析を絶えず行うようにしていたのでは、実際には音が入力されていない時間においても無駄な分析処理をすることになるので好ましくない。そこで、マイク入力された信号から実際に音が存在している区間（有効区間）を抽出し、抽出された有効区間についてのみピッチ分析等の複雑な分析処理を施すようにするのが効率的である。そのための従来の有効区間の抽出法は、単純に所定基準レベルと入力信号レベルを比較して有効区間の抽出を行っていたので、入力音のレベルが微妙に変動するような場合、特に基準レベル付近で変動した場合には有効区間の抽出が不正確になると問題があった。
【０００６】
この発明は、マイク等からの入力音のピッチ又はレベルが微妙にゆれた場合でも、そのゆれた部分以外の音楽的な音の定常部分すなわち１つの音符に相当する部分を分析することのできる音信号分析装置及び方法を提供することを目的とする。詳しくは、入力された音信号からその定常部分を有効に分析し、これに基づき音のピッチを正確に分析できるようにするものである。しかして、この分析結果を必要に応じてＭＩＤＩ情報等の形態の電子的楽譜情報として出力することができるようにし、人間の音声や実際の楽器演奏等で入力した可聴的なメロディを自動的に楽譜化することを正確に行うことができるようにした技術を提供しようとするものである。
【０００７】
【課題を解決するための手段】
請求項１に記載の本発明に係る音信号分析装置は、任意の音信号を入力するための入力手段と、前記入力手段から入力された音信号のサンプル振幅値の所定サンプル数にわたる平均値をそれぞれ求め、その結果を時系列的な平均レベル情報として出力する演算手段と、前記演算手段によって求められた平均レベル情報が所定値以上の区間を有効区間として検出する有効区間検出手段と、検出した有効区間の中から、前記平均レベル情報の傾きに基づき、安定区間を検出する安定区間検出手段と、検出した安定区間の中から、１つの音符に相当する定常区間を検出する定常区間検出手段とを具えたものである。
入力手段から入力される音信号の各サンプル振幅値の所定サンプル数にわたる平均値をそれぞれ求めているので、入力された音信号のレベル変動に応答して滑らかに変化する平均レベル情報を得ることができ、音楽的な音が存在すると思われる区間、すなわち有効区間を適切に検出することができる。そして、かかる有効区間を対象にして、その中から更に前記平均レベル情報の傾きに基づき、安定区間を検出し、さらに、検出した安定区間の中から、１つの音符に相当する定常区間を検出するようにしているので、音信号分析に適した定常区間を、適切に検出することができる。このような３段階の区間分析によって音信号分析用の定常区間を検出するようにしたので、音信号分析に適した１つの音符に相当する定常区間、例えばピッチ検出に適した安定した区間、を適切に検出することができ、音分析、特にピッチ検出、の精度を向上させることができる。
【０００８】
請求項１に記載の音信号分析装置の一実施態様として、前記安定区間検出手段では、前記平均レベル情報の傾きが所定値以下である区間を求め、かつ、求められた区間の長さが所定長以上の部分をレベル安定区間として判定し、このレベル安定区間に基づき前記安定区間を検出するものとしてよい。平均レベル情報の傾きが小さいほど音信号の振幅レベルの変動が少ない、つまり安定していることを意味しており、また安定しているというからには時間的にも或る程度以上の長さにわたっている必要がある。すなわち、平均レベル情報の傾きが所定値以下であっても、その区間長が短い場合には安定した区間とは言えないので、それを除外する。よって、この傾きが所定値以下である区間の時間的長さが所定長以上である部分をレベル安定区間として判定することが適切である。
【０００９】
請求項２に記載の本発明に係る音信号分析装置は、任意の音信号を入力するための入力手段と、前記入力手段から入力された音信号のサンプル振幅値の所定サンプル数毎にその最大値を検出し、検出された最大値を補間することによって補助波形を作成する波形作成手段と、前記波形作成手段によって作成された補助波形が所定値以上の区間を第１の区間として検出する第１区間検出手段と、前記第１の区間内における前記音信号のサンプル振幅値に基づいて音信号分析用の第２の区間を、該第１の区間の中から検出する第２区間検出手段と、前記第２の区間内における前記音信号中の隣接する波形同士の一致度合いを分析し、一致していると分析された連続する複数の波形からなる区間を第３の区間として検出する第３区間検出手段と、前記検出された第３の区間に基づき、１つの音符に相当する定常区間を検出する手段とを具えたものである。この場合、波形作成手段で作成した補間波形が所定値以上の区間を第１の区間として検出している。例えば、この補間波形は音信号波形の各ピークレベル間を結ぶ振幅エンベロープ波形に類似した波形として得られるもので、音信号の振幅レベルの傾向を示している。このような補間波形の算出は、平均レベル情報の演算よりも素早く行えるので、処理速度を早くすることができ、各区間の検出速度を向上することができ、音信号の分析時間を短縮し、かつそのための演算装置の負担を軽減することができる。さらに、検出した第３の区間に基づき、１つの音符に相当する定常区間を検出するようにしているので、音信号分析に適した定常区間を、適切に検出することができる。従って、音信号分析に適した１つの音符に相当する定常区間を適切に検出することができ、音分析、特にピッチ検出、の精度を向上させることができる。
【００１０】
上記請求項２に記載の音信号分析装置の一実施態様として、前記第２区間検出手段は、前記音信号のサンプル振幅値に対して両方向からエンベロープ検出を行うことによって最大値を検出し、検出された最大値を補間することによって最大値補間曲線を求め、求められた最大値補間曲線に基づいて各サンプルポイントにおける合計傾斜を求め、求められた合計傾斜が所定値以下の部分をレベル安定区間として判定し、このレベル安定区間に基づき前記第２の区間を検出するようにしてもよい。このように、両方からエンベロープ検出を行うことによって、徐々にレベルの上がる波形において、倍音ピークをピッチのピークとして誤って検出しないようにすることができる。
【００３０】
入力された音信号の前記定常区間を検出したら、それらの検出した定常区間を対象にしてノート分析処理を行う。すなわち、本発明に係る音信号分析装置は、前記検出された前記定常区間において、前記音信号のピッチを分析し、該音信号のノートを決定するノート分析手段を更に具えていてよい。
【００３４】
検出された定常区間が、全て有効な音符に相当しているとは限らず、その中には、無効なものもあり得る。無効な定常区間を判定するために、本発明によれば、所定の音符長（例えば許容される最小音符長）に対応する時間間隔で分割されたグリッドを、有利に使用することができる。すなわち、本発明の音信号分析装置は、検出された前記各定常区間を、その時系列に従って、所定の音符長に対応する時間間隔で分割されたグリッド上にそれぞれ配置し、各定常区間の開始端部に最も近い１つのグリッド位置を各定常区間に対してそれぞれ割り当て、その結果同じグリッド位置に複数の定常区間が割り当てられた場合には最も時間長の長い１つの定常区間を有効なものとして選択する手段を更に具えていてよい。
【００３５】
更に、本発明によれば、隣接する区間同士の波形の一致度を演算し、この一致度が所定値よりも大きい部分を有声区間として検出し、検出された有声区間内の一致度の高い区間の波形を基準にして、その両側の区間の波形との間で順次一致度を演算し、その一致度に基づいて定常区間を検出し、この定常区間について音信号のピッチ等を分析／検出するようにしてもよい。有声区間内で一致度の高い区間は音声の母音の基準となるので、それを基準に求められた一致度によって母音の変化を検出できる。このように検出された定常区間を母音、すなわち１つの音符として認識するとよい。すでに説明した本発明の各構成において、波形の一致度の高い区間、すなわち、同波形区間として判定された区間は、母音区間つまり、１つの音符のかたまりとして認識し、分析処理すことができる。
【００３６】
更に、本発明においては、上述した各構成すなわち発明は、音声分析装置の装置発明として構成することができるのみならず、音声分析方法の方法発明として構成することができる。また、本発明の実施は、コンピュータプログラムの形態で実施することができ、そのようなコンピュータプログラムを記憶した記録媒体の形態で本発明を実施することもできるし、それも本出願における本発明の範囲に含まれる。
【００３７】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図２はこの発明に係る楽音情報分析装置及び演奏情報発生装置を内蔵した電子楽器の構成を示すハードブロック図である。
電子楽器は、マイクロプロセッサユニット（ＣＰＵ）１、プログラムメモリ２及びワーキングメモリ３からなるマイクロコンピュータによって制御される。
ＣＰＵ１は、この電子楽器全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｅを介してプログラムメモリ２、ワーキングメモリ３、演奏データメモリ４、押鍵検出回路５、マイクインターフェイス６、スイッチ検出回路７、表示回路８及び音源回路９がそれぞれ接続されている。
【００３８】
プログラムメモリ２はＣＰＵ１の各種プログラム（システムプログラムや動作プログラムなど）、各種データ等を格納するものであり、リードオンリーメモリ（ＲＯＭ）で構成されている。
ワーキングメモリ３は、演奏情報やＣＰＵ１がプログラムを実行する際に発生する各種データを一時的に記憶するものであり、ランダムアクセスメモリ（ＲＡＭ）の所定のアドレス領域がそれぞれ割り当てられ、レジスタ、フラグ、バッファ、テーブル等などとして利用される。
演奏データメモリ４は、マイク等からの入力音に基づいて発生された演奏情報（ＭＩＤＩデータ）などを記憶するものである。
また、ＣＰＵ１には、ハードディスク装置１Ｈなどを接続して、そこに自動演奏データやコード進行データ等の各種データを記憶していてもよく、更に、前記動作プログラムを記憶するようにしてもよい。また、前記ＲＯＭ２に動作プログラムを記憶せずに、ハードディスク装置１Ｈにこれらの動作プログラムを記憶させておき、それをＲＡＭ３に読み込むことにより、ＲＯＭ２に動作プログラムを記憶したときと同様の動作をＣＰＵ１に行わせることができる。このようにすると、動作プログラムの追加やバージョンアップ等が容易に行える。また、着脱自在な外部記憶媒体１Ｇ、例えばＣＤ−ＲＯＭ等、を設けてもよい。この外部記憶媒体１Ｇ例えばＣＤ−ＲＯＭには、各種データ及び任意の動作プログラムを記憶していてもよい。このＣＤ−ＲＯＭに記憶されている動作プログラムや各種データは、ＣＤ−ＲＯＭドライブ（図示せず）によって、読み出され、ハードディスク装置１Ｈに転送記憶させることができる。これにより、動作プログラムの新規のインストールやバージョンアップを容易に行うことができる。
【００３９】
なお、通信インターフェイス１Ｆをデータ及びアドレスバス１Ｅに接続し、この通信インターフェイス１Ｆを介してＬＡＮ（ローカルエリアネットワーク）やインターネットなどの種々の通信ネットワーク上に接続可能とし、他のサーバコンピュータとの間でデータのやりとりを行うようにしてもよい。これにより、ハードディスク装置１Ｈ内に動作プログラムや各種データが記憶されていないような場合には、サーバコンピュータからその動作プログラムや各種データをダウンロードすることができる。この場合、クライアントとなる楽音生成装置である電子楽器から、通信インターフェイス及び通信ネットワークを介してサーバコンピュータに動作プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドに応じて、所定の動作プログラムやデータを、通信ネットワークを介して電子楽器１に送信する。電子楽器では、通信インターフェイスを介してこれらの動作プログラムやデータを受信して、ハードディスク装置にこれらを蓄積する。これによって、動作プログラム及び各種データのダウンロードが完了する。
【００４０】
鍵盤１０は、発音すべき楽音の音高を選択するための複数の鍵を備えており、各鍵に対応してキースイッチを有しており、また必要に応じて押鍵速度検出装置や押圧力検出装置等のタッチ検出手段を有している。
押鍵検出回路５は、発生すべき楽音の音高を指定する鍵盤１０のそれぞれの鍵に対応して設けられた複数のキースイッチからなる回路を含んで構成されており、新たな鍵が押圧されたときはキーオンイベントを出力し、鍵が新たに離鍵されたときはキーオフイベントを出力する。また、鍵押し下げ時の押鍵操作速度又は押圧力等を判別してタッチデータを生成する処理を行い、生成したタッチデータをベロシティデータとして出力する。このようにキーオン、キーオフイベント及びベロシティなどのデータはＭＩＤＩ規格に準拠したデータ（以下「ＭＩＤＩデータ」とする）で表現されておりキーコードと割当てチャンネルを示すデータも含んでいる。
マイクロフォン１Ａは、音声信号や楽器音を電圧信号に変換して、マイクインターフェイス６に出力する。マイクインターフェイス６は、マイクロフォン１Ａからのアナログの電圧信号をディジタル信号に変換してデータ及びアドレスバス１Ｅを介してＣＰＵ１に出力する。
【００４１】
テンキー＆各種スイッチ１Ｂは、数値データ入力用のテンキーや文字データ入力用のキーボード、音符化処理（音信号分析処理及び演奏情報発生処理）のスタート／ストップスイッチなどの各種の操作子を含んで構成される。なお、この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含むが、その詳細については公知なので説明を省略する。
スイッチ検出回路７は、テンキー＆各種スイッチ１Ｂの各操作子の操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス１Ｅを介してＣＰＵ１に出力する。
表示回路８はＣＰＵ１の制御状態、設定データの内容等の各種の情報をディスプレイ１Ｃに表示するものである。ディスプレイ１Ｃは液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成され、表示回路８によってその表示動作を制御されるようになっている。
このテンキー＆各種スイッチ１Ｂ、並びにディスプレイ１ＣによってＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）が構成される。
【００４２】
音源回路９は、複数チャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス１Ｅを経由して与えられた楽音トラック上のＭＩＤＩデータを入力し、このデータに基づいた楽音信号を生成し、それをサウンドシステム１Ｄに出力する。
音源回路９において複数チャンネルで楽音信号を同時に発音させる構成としては、１つの回路を時分割で使用することによって複数の発音チャンネルを形成するようなものや、１つの発音チャンネルが１つの回路で構成されるような形式のものであってもよい。また、音源回路９における楽音信号発生方式はいかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出すメモリ読み出し方式（波形メモリ方式）、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるＦＭ方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるＡＭ方式等の公知の方式を適宜採用してもよい。また、これらの方式以外にも、自然楽器の発音原理を模したアルゴリズムにより楽音波形を合成する物理モデル方式、基本波に複数の高調波を加算することで楽音波形を合成する高調波合成方式、特定のスペクトル分布を有するフォルマント波形を用いて楽音波形を合成するフォルマント合成方式、ＶＣＯ、ＶＣＦ及びＶＣＡを用いたアナログシンセサイザ方式等を採用してもよい。また、専用のハードウェアを用いて音源回路を構成するものに限らず、ＤＳＰとマイクロプログラムを用いて音源回路を構成するようにしてもよいし、ＣＰＵとソフトウェアのプログラムで音源回路を構成するようにしてもよい。
音源回路９から発生された楽音信号は、アンプ及びスピーカからなるサウンドシステム１Ｄを介して発音される。
【００４３】
次に、この発明に係る電子楽器が音信号分析装置及び演奏情報発生装置として動作する場合の一例を説明する。
図１は図２の電子楽器が演奏情報発生装置として動作する際のメインフローを示す図である。メインフローは次のようなステップで順番に実行される。
ステップ１１：まず、初期設定処理を行い、図２のワーキングメモリ３内の各レジスタ及びフラグなどに初期値を設定したりする。
このとき、テンキー＆各種スイッチ１Ｂ上の音符化処理スタートスイッチがオン操作された場合に、ステップ１２〜ステップ１８までの一連の処理を行う。
【００４４】
ステップ１２：このステップは音符化処理スタートスイッチのオン操作有りと判定された場合に行われるものであり、ここでは、そのオン操作に対応して、マイクインターフェイス６を介してマイクロフォン１Ａから入力される音声信号や楽器音の電圧波形を所定周期（例えば４４．１ｋＨｚ）でサンプリング処理し、それをディジタルサンプル信号としてワーキングメモリ３内の所定領域に記憶する。このサンプリング処理は従来の公知の方法で行うので、ここでは詳細は省略する。
ステップ１３からステップ１６までが音符化処理スタートスイッチのオン操作に対応した音符化処理である。この音符化処理ではサンプリングされた音声信号や楽器音のディジタルサンプル信号を種々分析してそれを音高列すなわち楽譜表示可能なＭＩＤＩデータに変換する。
ステップ１３：ステップ１２の音声サンプリング処理の結果得られたディジタルサンプル信号に基づいて音楽的な音が存在する区間すなわち有効区間がどこにあるのかを検出するための有効区間検出処理を行う。この有効区間検出処理の詳細については後述する。
ステップ１４：ステップ１３の有効区間検出処理の結果、検出された各有効区間をさらにレベルの安定している安定区間に細分化するための安定区間検出処理を行う。この安定区間検出処理の詳細についは後述する。
ステップ１５：ステップ１４の安定区間検出処理の結果、検出された各安定区間内に存在する音楽的な音の定常部分（１つの音符に相当する部分）を検出する定常区間検出処理を行う。この定常区間検出処理の詳細についは後述する。
ステップ１６：ステップ１３〜ステップ１５の処理の結果、得られた各定常区間毎に最も最適な音符を割り当てる音高列決定処理を行う。すなわち、このステップではＭＩＤＩデータを発生する。この音高列決定処理の詳細については後述する。
ステップ１７：ステップ１６の処理によって発生されたＭＩＤＩデータに基づいて楽譜を作成する楽譜作成処理を行う。この楽譜作成処理は従来の技術によって容易に実現可能なので詳細は省略する。
ステップ１８：ステップ１６の処理によって発生されたＭＩＤＩデータに基づいた自動演奏処理を行う。この自動演奏処理についても従来の技術によって容易に実現可能なので詳細は省略する。
【００４５】
図３は図１のステップ１３の有効区間検出処理の詳細を示す図である。以下、ステップ１２によって求められたディジタルサンプル信号からどのようにして有効区間が検出されるのか、この有効区間検出処理の動作を図７及び図８を用いて説明する。
ステップ３１：ステップ１２によって求められたディジタルサンプル信号に基づいて平均音圧レベルを算出する。図７は、サンプリング周波数４４．１ｋＨｚでサンプリングされた音声信号すなわちディジタルサンプル信号の波形値の一例を示す図である。図７では、約２０ポイント分の波形値が示されている。ステップ３１では、所定のサンプル数（例えば、１０ｍｓｅｃ相当の時間に対応するサンプル数）にわたるサンプル振幅値の平均を求め、それを平均音圧レベルとする。従って、サンプリング周期４４．１ｋＨｚの場合においては、この所定サンプル数は『４４１個』であり、あるサンプルポイントの平均値は、そのポイントを最終ポイントとする１０ｍｓｅｃ分前の各ポイントの合計値、すなわち最終ポイントから４４１ポイント分前の波形値の合計を４４１で除した値となる。なお、０ポイントから４４０ポイントまでは、４４１ポイント分の波形値が存在しないので、０ポイントからその該当ポイントまでの波形値の平均をそのポイントの平均値とする。こうして、時系列的な平均音圧レベル情報が各サンプルタイミング毎に得られる。
【００４６】
図７では、説明の便宜上１５ポイント分の波形値の平均値を平均音圧レベルとして算出する場合を図示している。従って、最初の１５ポイントまではそれまでの波形値の合計値をそのポイント数で除する形になっている。また、波形値の合計は、その絶対値を合計することによって求める。
図８（Ａ）はこのようにして求められた平均音圧レベルの値を、サンプリングポイントを横軸とした場合をグラフ化して示したものである。以下、図８（Ａ）の平均音圧レベルによって形成される曲線を平均音圧レベルカーブと称する。
なお、図７のように１５ポイント毎に平均音圧レベルを求める場合には、カットオフ周波数１０Ｈｚ程度のローパスフィルタを掛けて、レベル変動を滑らかにしている。従って、実際に４４１ポイント分の波形値の平均を取る場合には、カットオフ周波数８０〜１００Ｈｚ程度のローパスフィルタを掛けて、そのレベル変動を滑らかにするのが望ましい。
また、ここでは、あるサンプリングポイントの平均値を求めるのに、そのポイントより前の所定数のポイントの波形値を合計して平均音圧レベルを求める場合について説明したが、あるサンプリングポイントを中心として前後に所定数のポイントの波形値を合計してもよいし、サンプリングポイントから後に所定数のポイントの波形値を合計してもよい。
【００４７】
ステップ３２：前記ステップ３１で求められた図８（Ａ）のような平均音圧レベルカーブを、所定のしきい値に基づいて有効区間又は無効区間にそれぞれ分類する。この処理では、しきい値として、その平均音圧レベルカーブの中の最大波形値の２０パーセントの値をしきい値とする。これ以外の値をしいき値としてもよいことは言うまでもない。例えば、平均音圧レベルカーブの平均値をしきい値としたり、又はその平均値の８０パーセントをしきい値としたり、平均音圧レベルカーブの最大値の半分の値をしきい値としたりしてもよい。
しきい値は図８（Ｂ）のような点線で示される。従って、この点線（しきい値）と平均音圧レベルカーブとの交点位置が有効区間及び無効区間の境界となり、この点線（しきい値）よりも大きい区間が有効区間となり、小さい区間が無効区間となる。図８（Ｂ）では、有効区間を○印で示し、無効区間を×印で示す。
【００４８】
ステップ３３：人間が音高を認知できる必要な最低長を０．０５ｍｓｅｃとした場合に、前記ステップ３２で決定された無効区間の中からこの最低長よりも小さな無効区間を有効区間に変更する。例えば、サンプリング周期が４４．１ｋＨｚの場合にはサンプリング数で２２０５個以下の無効区間を有効区間に変更する。図８（Ｂ）においては、左側から第３番目及び第５番目の無効区間がこの短い無効区間に相当する。従って、ステップ３３の処理の結果、図８（Ｂ）は図８（Ｃ）のようになり、有効区間が拡張される。なお、この処理において、全区間内の始まりと終わりの部分に存在する無効区間は、短い無効区間に相当するが、短いからといって有効区間に変更しない特別な領域として△印を用いて表現している。
【００４９】
ステップ３４：前記ステップ３３の処理の結果、得られた有効区間及び無効区間のパターンの中から０．０５ｍｓｅｃ以下の短い有効区間を無効区間に変更する処理を行う。この処理は前記ステップ３３と同様の処理にて行う。図８（Ｃ）においては、右端の有効区間がこの短い有効区間に該当する。従って、ステップ３４の処理の結果、図８（Ｃ）は図８（Ｄ）のようになる。図８（Ｄ）から明らかなように、有効区間は第１区間から第４区間までの全部の４つの区間となる。なお、区間の終わりの部分の△印は第４の有効区間とみなされる。
ステップ３５：ステップ３４で特定された有効区間の平均音圧レベルカーブの平均値を求め、それが所定値よりも小さい場合にその部分を無効区間とする最終的な有効区間のチェックを行う。この平均値はその有効区間に存在する各ポイントの平均音圧レベル値の合計をその有効区間長で除することによって得られる。このようにして得られた平均音圧レベルの平均値が図８（Ｄ）の各区間の下側に示してある。第１区間は６０、第２区間は２５、第３区間は４５、第４区間は１５である。この平均音圧レベルの平均値がその区間の最大波形値の３０パーセントを下回った場合は、その区間を無効区間とする。ここでは、第２区間及び第４区間が該当するので、それぞれの区間が無効区間になる。図８（Ｅ）はこのステップ３５の有効区間チェック処理によって特定された有効区間と無効区間を示す図である。
【００５０】
ステップ３６：ステップ３１〜ステップ３５までの処理によって特定された有効区間を拡張する処理を行う。例えば、図８（Ｆ）に示すように最大波形値の１５パーセントを拡張許可レベルとして、そこの部分に線を引き、有効区間を特定する境界線をその拡張許可レベルの線のところまで拡張する。すなわち、各有効区間の端から外側に向かって平均音圧レベルカーブの上昇下降をチェックしながら、そのカーブが拡張許可レベルを下回ったかどうかのチェックを行いながら拡張処理を行う。このとき、下降が上昇に反転した場合や拡張許可レベルを下回った場合には、そこまでを有効区間とする。
また、図８（Ｇ）は、この有効区間拡張処理の別の例を示す図である。拡張許可レベルを最大波形値の５パーセントとし、平均音圧レベルカーブの下降が終了した位置を有効区間の末端とする。又は、上昇が始まった位置を末端としてもいい。この拡張処理によれば、図８（Ｆ）の場合よりも第１区間及び第３区間の拡張幅が大きくなる。このようにして、人間が音高として認知することの可能な有効区間が最終的に決定することになる。
なお、拡張許可レベルが低く、かつ、有効区間が近い距離にある場合には、ある有効区間の末尾側の拡張位置と次の有効区間の先頭側の拡張位置とが接近することもあれば、また同じ位置になることもある。また、下降が終わる部分と上昇が始まる部分のいずれを区切りにするかによっても境界位置が変わる。この拡張処理の結果、有効区間同士が重複した場合には、両方の中間位置を境界位置とすればよい。
なお、図８（Ｆ）及び（Ｇ）では、有効区間の拡張を前後に行う場合について説明したが、前方向又は後方向のみにしてもよい。また、前後に拡張する場合に、前方向と後方向とで拡張許可レベルを異ならせるようにしてもよい。
【００５１】
図４は図１のステップ１４の安定区間検出処理の詳細を示す図である。以下、ステップ１３によって求められた有効区間内の平均音圧レベルカーブに対して、レベルの安定した領域を検出するための安定区間検出処理を行う。この安定区間検出処理の動作を図９を用いて説明する。図９は、図８のＡ点からＢ点までの第１の有効区間について、安定区間を検出する場合について示してある。
ステップ４１：図３で検出された有効区間内の平均音圧レベルカーブに基づいて、その傾斜度数を算出する。この処理では、図９（Ｂ）に示すように、傾斜を算出するための算出幅を例えば１００ポイントとし、その算出幅のシフト量を例えば５０ポイントとして、Ａ点からＢ点に向かって順次シフトしながら、その傾斜度数を算出する。Ａ点がサンプルポイント『０００』だとすると、サンプルポイント『０００』と『１００』との間の傾斜を求め、次にそれをそれぞれ５０ポイントずつシフトしたサンプルポイント『０５０』と『１５０』との間の傾斜度数を求める。例えば、サンプルポイント『０００』の平均音圧レベルが『３２５』で、サンプルポイント『１００』の平均音圧レベルが『１５７６』である場合、その傾斜度数は（１５７６−３２５）／１００＝１２．５１となる。以後、サンプルポイント『１００』と『２００』との間、『１５０』と『２５０』との間、『２００』と『３００』との間のように、順番にその傾斜度数を算出する。算出された傾斜度数の一例を図９（Ｂ）に示す。図から明らかなように、サンプルポイント『０００』，『１００』間の傾斜度数は１２．５１、サンプルポイント『０５０』，『１５０』間の傾斜度数は３２．４２、サンプルポイント『１００』，『２００』間の傾斜度数は２０．１２、サンプルポイント『１５０』，『２５０』間の傾斜度数は１１．８４、サンプルポイント『２００』，『３００』間の傾斜度数は５．２４、サンプルポイント『２５０』，『３５０』間の傾斜度数は４．８２、サンプルポイント『３００』，『４００』間の傾斜度数は２．３４、サンプルポイント『３５０』，『４５０』間の傾斜度数は３．８９、サンプルポイント『４００』，『５００』間の傾斜度数は５．３６となる。これらの傾斜度数は前者のサンプルポイントにおける傾斜度数として記憶されることになる。すなわち、サンプルポイント『０００』の傾斜度数は１２．５１、サンプルポイント『０５０』の傾斜度数は３２．４２として、それぞれのサンプルポイント毎に傾斜度数が記憶される。
このようにしてＡ点からＢ点までの全区間における傾斜度数を算出し、次のステップ４２の安定区間抽出処理を行う。
【００５２】
ステップ４２：前記ステップ４１で算出された傾斜度数に基づいて今度は安定区間の抽出を行う。すなわち、各サンプルポイントにおける傾斜度数の中から所定値（例えば１０）以下のものを安定部分とみなし、この安定部分とみなされたサンプルポイントの数が所定数以上すなわち所定時間だけ継続している場合にその連続した安定部分を安定区間とする。この所定時間は、テンポも考慮に入れて、例えば、約２０００サンプルポイント程度とする。図９（Ａ）のような平均音圧レベルカーブの場合は、図９（Ｃ）のようなａ，ｂ，ｃの３ヵ所が安定区間として探索されることになる。
ステップ４３：前記ステップ４２によって抽出された安定区間の存在に基づいて人間は初めてその安定区間の開始点付近に音符のトリガである音の開始点があることに気付く。ここでは、その音符の開始点付近を決定するために、前記ステップ４２で抽出された安定区間を拡張する。
この安定区間を拡張する場合、すなわち音符の開始点を決定する場合、最初の安定区間ａについては、必然的にＡ点がその安定区間ａの音符の開始点となり、最後の安定区間ｃについては、必然的にＢ点がその安定区間ｃの音符の終了点となる。ところが、安定区間ａの音符終了点、安定区間ｂの音符開始点は容易に求めることができない。そこで、安定区間の終了点から次の安定区間の開始点までの間における傾斜度数の最も大きいサンプルポイントをその安定区間の音符終了点及び次の安定区間の音符開始点とすることにした。各安定区間ａの音符終了点及び安定区間ｂの音符開始点は図９（Ｄ）のようにＣ点となり、安定区間ｂの音符終了点及び安定区間ｃの音符開始点はＤ点となる。
なお、上述の説明では、傾斜度数の最も大きいサンプルポイントを安定区間の音符開始点及び次の安定区間の音符終了点とする場合について説明したが、これに限らず、安定区間の終了点から次の安定区間の開始点までの間で安定度数が所定の値（しきい値）を最初に越えた場合のサンプルポイントを音符終了点（音符開始点）としてもよいし、安定区間の開始点の直前で所定の値（しいき値）を下回った場合のサンプルポイントを音符終了点（音符開始点）としてもよいし、以上の３つの方法で求められたサンプルポイントを複合的に計算して新たに音符終了点（音符開始点）を求めるようにしてもよい。このようにして求められた区間ＡＣ，ＣＤ，ＤＢがそれぞれのレベルに対応した安定区間になる。すなわち、図９の場合、安定区間ａのレベルに対応した安定区間はＡＣとなり、安定区間ｂのレベルの対応した安定区間はＣＤとなり、安定区間ｃのレベルに対応した安定区間はＤＢとなる。
【００５３】
図５は図１のステップ１５の定常区間検出処理の詳細を示す図である。ステップ１４によって求められた安定区間の中から定常区間がどのようにして検出されるのか、その定常区間検出処理の詳細を図１０から図１７までの図面を用いて説明する。
音声や楽音などの音楽的なオーディオ信号を分析する場合、定常部がどこにあるかを知ることは重要なことである。リズム系以外の音色では、定常部の周期性によって音高が決定され、定常部を骨格として音価が決定されるからである。この実施の形態では、定常部は、楽譜として表した時に一つの音符に相当する区間のことであり、音色、音高、ベロシティという音の３大要素の変化に注目し、人間が一つの音として認識する区間を時間軸上で検出しようとすることをいう。
以下、図５のステップに従って、この定常区間検出処理について説明する。
【００５４】
定常区間を検出するためには、まず音信号波形の周期の基準位置を検出することが必要である。この基準位置の検出方法には大きく分けて、０クロス位置検出法とピーク位置検出法のいずれか一方を用いるのが一般的である。０クロス位置検出法によって周期の基準位置を検出するためには、フィルタ等で倍音をできるだけ取り除かないと検出は困難であり、それに帯域分割も必要である。ピーク位置検出法の場合も倍音をできるだけ取り除くことが望ましいが、０クロス位置検出ほどはシビアでないため、音声や楽器の発音可能周波数帯をカットオフ周波数としてバンドパスフィルタを掛けるだけでよく、帯域分割などの処理を特に行う必要はない。従って、ピーク位置検出法の方が手順が簡単で、そこそこの結果が得られる方法であり、望ましい。従って、この実施の形態では、ピーク位置検出法のよって周期の基準位置を検出する場合について説明する。
【００５５】
ステップ５１：第１次バンドパスフィルタ（第１次ＢＰＦ）を通過させて、所定の倍音を削除する。これは、発音可能な帯域をカットオフ周波数として、バンドパスフィルタを掛けることである。音声の場合、人間の発音可能な帯域は８０〜１０００Ｈｚ程度であり、ユーザを限定せずに、オールマイティに分析するにはこれくらいが必要である。但し、ユーザが限定されている場合には、発音可能な帯域をある程度絞ることによって、倍音による間違いを減少させて、検出精度を向上させることができる。ギターなら、８０〜７００Ｈｚ程度であるが、これも予め音高枠を決めておくと精度が上がる。楽器ごとの違いなども予め設定しておくと精度が向上する。図１０（Ａ）は、第１次ＢＰＦ処理後の音声波形の一部を示すものである。
ステップ５２：ステップ５１の第１次ＢＰＦ処理によって得られた楽音波形信号に対してピーク位置検出法を用いて１周期の基準となるピーク基準位置検出処理を行う。このピーク位置検出方法は公知の手法によって行う。楽音波形のピークレベルを検知して、これを所定の時定数回路で保持し、その保持されている値をスレッシュルドホールド電圧として次にこのスレッシュルドホールド電圧以上になった場合を次のピークレベルとして保持し、それを順次繰り返すことによって、図１０（Ａ）のようなピーク位置を検出することができる。図１０（Ａ）はこのピーク位置を検出する際のスレッシュルドホールド電圧の様子を示す図である。
図１０（Ａ）の音声波形からは、図１０（Ｂ）のようなピーク位置が検出されることになる。図１０（Ｂ）ではピーク基準位置Ｐ１，Ｐ２，Ｐ３，Ｐ６は共に規則正しく所定の位置で現れているが、ピーク基準位置Ｐ４，Ｐ５については、音声波形の若干の乱れによって誤差を含む位置にピークが現れている。
これは、ステップ５１の第１次ＢＰＦ処理のカットオフ周波数の帯域が広い範囲を網羅しているため、図１０（Ａ）のようにピーク位置が連続して表れたからである。
【００５６】
ステップ５３：前記ステップ５２で検出されたピーク基準位置に基づいて、あるピーク基準位置から始まる基本区間と、その基本区間の直後の次のピーク基準位置までの区間（以下、移動区間とする）との間の２つの区間の波形について波形が同じであるか否かの比較を行う。
図１０（Ｂ）に示されるピーク基準位置について考察すると、ピーク基準位置Ｐ１からピーク基準位置Ｐ２までが区間ｄ、ピーク基準位置Ｐ２からピーク基準位置Ｐ３までが区間ｅとなる。このとき、両区間ｄ，ｅは帯域最低長よりも大きく、帯域最高長よりも小さいので、区間ｄが基本区間となり、区間ｅが移動区間となり、後述する波形比較処理の対象となる。
次に、区間ｅが基本区間となり、ピーク基準位置Ｐ３からピーク基準位置Ｐ４までが区間ｆとなる。このとき、両区間ｅ，ｆは帯域最低長よりも大きく、帯域最高長よりも小さいので、今度は区間ｅが基本区間となり、区間ｆが移動区間となり、後述する波形比較処理の対象となる。
ところが、ピーク基準位置Ｐ４からピーク基準位置Ｐ５までの区間は帯域最低長よりも小さいので、比較対象の区間とはならずに、次のピーク基準位置Ｐ５からピーク基準位置Ｐ６までの区間ｇが区間ｆとの波形比較対象となる。
なお、波形比較処理の結果、区間ｆ及び区間ｇは他の区間ｄや区間ｅとは異なった波形として認識されることになる。まず、ワーキングメモリ（ＲＡＭ）には、ピーク基準位置情報をアドレスとして、そこに一致フラグ又は不一致フラグがそれぞれ書き込まれるデータ領域が設けられる。そして、図１０（Ｂ）のような場合には、区間ｄと区間ｅとは一致すると判定されるので、区間ｅに対応するピーク基準位置情報Ｐ２に関するデータ領域には一致フラグが書き込まれる。一方、区間ｅと区間ｆとは一致しないと判定されるので、区間ｆに対応するピーク基準位置情報Ｐ３に関するデータ領域には不一致フラグが書き込まれる。ピーク基準位置Ｐ４からピーク基準位置Ｐ５までの区間は帯域最低長よりも小さいので、ピーク基準位置情報Ｐ４及びＰ５に関するデータ領域には不一致フラグが書き込まれる。なお、ピーク基準位置情報Ｐ１及びＰ６に関するデータ領域には一致フラグが書き込まれているものとする。このようにして順次ピーク基準位置情報と共に書き込まれた一致フラグ及び不一致フラグの様子が図１０（Ｃ）に示されている。
【００５７】
波形比較処理は後述する誤差率を算出する方法によって行われる。
図１３はこの波形比較処理の中で行われる誤差率の算出方法を説明するための図である。
まず、誤差率の算出対象となる２つの波形が図１２の示すような比較波１Ｘと比較波２Ｘであるとする。この波形は図１０のピーク基準位置によって区切られた範囲となる。まず、比較波１Ｘ及び比較波２Ｘについて、最大振幅値が１００パーセントとなるようにその振幅値の正規化を行う。まず、比較波１Ｘは比較波１Ｙとなり、比較波２Ｘは比較波２Ｙとなる。ここで、比較波２Ｘは比較波１Ｘに比べて時間軸（横軸）方向の長さが短いので、比較波２Ｘを比較波１Ｘと同じ時間幅となるように伸長する。すなわち、比較波２Ｙの時間軸を伸長して比較波２Ｚにする。
この比較波１Ｙと比較波２Ｚとの間で誤差率の計算が行われる。
図１３は、比較波１Ｙと比較波２Ｚとの間の誤差率を算出する場合の具体的な値を示す図である。図では、比較波１Ｙと比較波２Ｚの最初の１周期の波形すなわちサンプリング数で２４個分について誤差率を算出する場合について説明する。
比較波１Ｙと比較波２Ｚの同じサンプリング位置についてその差分を算出し、その差分の絶対値の合計を求める。図１３の場合には絶対値の合計値は１２２である。これをサンプリング数２４で除することによって、誤差率が求まる。この場合には誤差率は５となる。そこで、同じ波形がどうかのしいき値を１０とすれば、図１３の場合の誤差率５は１０以下なので、同じ波形として処理されることになる。なお、図１３において、各波形は１０００を最大レベルとして正規化されている。
【００５８】
ステップ５４：ステップ５３の波形比較処理の結果を利用して、誤差率が所定値（例えば１０）よりも小さな区間同士を繋げて、それを疑似的な一致区間とし、各一致区間から抽出されるピッチの最大値と最小値を検出し、それに基づいてカットオフ周波数帯を決定する。例えば、波形比較処理の結果得られた複数の一致区間の中のピッチの最小値が２３５ポイントで、最大値が３６５ポイントだとする。この一致区間にやや余裕を持たせるために、最小値を１割減とし、最大値を１割増しとすると、一致区間は約２１２ポイントから約４０２ポイントになる。これは、サンプリング周波数が４４．１ｋＨｚだと、１１０Ｈｚから２０８Ｈｚのオーディオ信号の周波数帯に相当する。従って、この１１０Ｈｚから２０８Ｈｚをカットオフ周波数帯とする。
ステップ５５：ステップ５４で決定された新たなカットオフ周波数帯を用いて、第２次バンドパスフィルタ（第２次ＢＰＦ）を通過させて、不要な倍音を除去する。例えば、前述の場合には、カットオフ周波数帯は１１０Ｈｚから２０８Ｈｚの範囲となる。これによって、倍音による間違いを減少させて、検出精度を向上させることができる。
ステップ５６：ステップ５２のピーク基準位置検出処理と同じ処理を行う。
ステップ５７：ステップ５３の波形比較処理と同じ処理を行う。
ステップ５５からステップ５７までの一連の処理によって、誤差の原因となる低周波や高調波がカットされてより精度の高いピーク基準位置検出処理及び波形比較処理が可能となり、前回よりも精度の高い一致区間が得られる。ステップ５７の波形比較処理によって、図１０（Ｃ）のように一致フラグ及び不一致フラグによって特徴付けられた有効区間の波形は、図１０（Ｄ）のような三つの定常区間Ｘ，Ｙ，Ｚのようなピッチ列が求められる。
【００５９】
ステップ５８：ステップ５７までの処理によって得られた図１０（Ｄ）のようなピッチ列を用いても良いが、さらに精度を高めるために、各ピーク基準位置におけるピッチデータを補間して、１サンプルポイント毎に１ピッチデータとなるように補間する。この場合に、図１０（Ａ）から明らかなように最初のピーク基準位置より前のサンプルポイント及び最後のピーク基準位置より後のサンプルポイントについては、補間するためのピッチデータが存在しないためピッチの補間を行うことができない。そこで、最初のピーク基準位置より前のサンプルポイントについては最初のピーク位置におけるピッチデータを、最後のピーク基準位置より後のサンプルポイントについては最後のピーク位置におけるピッチデータをそのまま適用することにした。そして、それぞれのピーク基準位置間においては、両者のピッチデータの値を直線補間して適用する。例えば、図１０（Ｂ）において、ピーク基準位置Ｐ１のピッチデータがＰＤ１、ピーク基準位置Ｐ２のピッチデータがＰＤ２であるとすれば、ピーク基準位置Ｐ１とＰ２との間の任意のサンプルポイントＰＶにおけるピッチデータは、次式によって求められる。
（ＰＤ２−ＰＤ１）×（ＰＶ−ＰＡ）／（Ｐ２−Ｐ１）
【００６０】
ステップ５９：ステップ５８の処理によって求められた各サンプルポイント毎のピッチデータを用いてバンドパスフィルタ処理を行う。すなわち、ピッチデータは時間経過と共に変化するので、カットオフ周波数帯も時間的に変動する、いわやる時変動バンドパスフィルタ（ＢＰＦ）処理を行う。これによって、楽音波形信号はサイン波形に近い波形に変形されるので、このような波形に対してピーク位置検出処理を行うことによって、理想的なピーク位置検出を行うことができる。また、これを基準に比較処理を行えるので、誤差が最小限に抑えられるようになるため、高精度で同波形（同母音）区間を見つけることが可能となる。
ステップ５Ａ：ステップ５９の時変動ＢＰＦ処理を経た楽音波形に対して、ステップ５２のピーク基準位置検出処理と同じ処理を行う。
ステップ５Ｂ：ステップ５９の時変動ＢＰＦ処理を経た楽音波形に対して、ステップ５３の波形比較処理と同じ処理を行う。
【００６１】
上述の説明では、図５の定常区間検出処理のステップ５２、５６及び５Ａでは、楽音波形のプラス側だけに注目してピーク基準位置を検出する場合について説明したが、音声音や楽器音などのようにピッチを有する楽音波形は、プラス側、マイナス側、又はプラス側マイナス側の両側に強いピークが現れることがある。従って、前述のようにプラス側にピークが強く現れている場合にはプラス側に注目してピーク基準位置を検出することによって、ピッチの検出が可能である。この場合、鋭いピークが両側に現れている場合も問題ないが、マイナス側に偏って強く現れる場合がある。このような場合には、その強く現れる側に注目してピーク基準位置の検出を行う方が良いことは言うまでもない。仮に、ピーク基準位置の検出をピークが弱く現れる方向に注目して行ったとすると、ピーク基準位置の検出自体が曖昧になり、思ったようにピッチを検出することができなくなるというおそれが生じる。ピークがプラス側マイナス側のどちらかに偏って現れるという現象は、発音する人間や楽器のその時々の条件に応じて種々変化するものなので、一概にどちら側に注目してピーク基準位置を検出したらよいかということは言えないのが現状である。
そこで、強いピークがどちら側に現れてもよいように、予め楽音波形をチェックして、ピークがプラス側又はマイナス側のどちらに強く現れているかを検出し、検出された側の楽音波形に基づいてピーク基準位置の検出及びピッチ検出を行うようにすればよい。例えば、図５のステップ５１の第１次ＢＰＦ処理後における安定区間の楽音波形が図１１のようであったとする。この楽音波形の場合、強いピークはマイナス側に現れ、弱いピークがプラス側に現れている。この楽音波形の両側についてピーク基準位置の検出処理を施した場合、ピークの強さは異なるがどちら側にも安定したピークが現れているので、プラス側でもマイナス側でもほぼ変わりなく規則的なピーク基準位置を検出することは可能である。従って、この楽音波形の場合には、プラス側に注目して図５の定常区間検出処理を行ってもなんら支障はないことになる。しかしながら、楽音波形によっては、周期が比較的短かくて、長く繰り返す波形などの場合には、徐々にそのピークが鈍ることもあり、プラス側だけに注目して定常区間処理を行った場合に、正確なピーク基準位置を検出できなくなることがある。従って、図１１のような波形の場合でも、できるだけ強いピークの現れるマイナス側に注目することが望ましい。
そこで、図４の安定区間検出処理によって検出された安定区間毎に、その区間全体で楽音波形の絶対値の最大がプラス側又はマイナス側のどちらに存在するかを検出し、検出する側に注目してピーク基準位置の検出を行うようにすればよい。図１１の場合にはマイナス側に絶対値の最大が存在するので、マイナス側に注目してピーク基準位置の検出が行うことが望ましいことになる。これによって、倍音などに惑わされることなくピーク基準位置を検出することができる。
【００６２】
なお、上述の実施の形態では、楽音波形のピークレベルを検知して、これを所定の時定数回路で保持し、その保持されている値をスレッシュルドホールド電圧として次にこのスレッシュルドホールド電圧以上になった場合を次のピークレベルとして保持し、それを順次繰り返すことによって、ピーク位置を検出していた。しかしながら、この方法だと、時定数をどの程度に設定するかによって、所望のピーク基準位置を検出することができるか否かが決定していたので、倍音を相当な帯域で含む音声音や楽器音の場合には、整然としたピークがなかなか出現しない場合が多いという問題を有していた。そこで、上述の実施の形態では、検出されたピーク基準位置が後の周波数帯決定処理に用いることのできる正確なものであるか否かの判定を、検出されたピーク位置に基づいた波形比較処理によって行っていた。このことは、前述のピーク基準位置検出処理によって検出されたピーク位置がさほど正確なものでもなくてもよいということを意味するものである。
そこで、楽音波形のピークレベルを検知する場合に、時定数をある程度小さめに設定しておき、楽音波形からピーク基準位置として可能性のあるものを多数抽出し、抽出されたピーク基準位置に基づいて波形比較処理を行って、ピーク基準位置を順次決定していくようにしてもよい。この場合、図１４のような楽音波形のプラス側に注目してピーク位置を検出すれば、各ピーク位置は１周期内で３箇所抽出される。この１周期当たり３箇所のピーク位置に基づいてそれぞれ波形比較処理を行うと、その処理に要する時間は大変なものとなる。故に、ここでは、まず、同波形であると認定された区間に基づいて、これ以降の同波形区間の検出処理を効率的に行うようにした。
例えば、図１４のような楽音波形の場合、ピーク位置としてＰａ〜Ｐｏが検出されることになる。従って、最初に波形比較処理されるのは、ピーク位置Ｐａを起点とした以下の１６通りの組み合わせについてである。
（Ｐａ−Ｐｂ）と（Ｐｂ−Ｐｃ）、（Ｐａ−Ｐｂ）と（Ｐｂ−Ｐｄ）、
（Ｐａ−Ｐｂ）と（Ｐｂ−Ｐｅ）、（Ｐａ−Ｐｂ）と（Ｐｂ−Ｐｆ）、
（Ｐａ−Ｐｃ）と（Ｐｃ−Ｐｄ）、（Ｐａ−Ｐｃ）と（Ｐｃ−Ｐｅ）、
（Ｐａ−Ｐｃ）と（Ｐｃ−Ｐｆ）、（Ｐａ−Ｐｃ）と（Ｐｃ−Ｐｇ）、
（Ｐａ−Ｐｄ）と（Ｐｄ−Ｐｅ）、（Ｐａ−Ｐｄ）と（Ｐｄ−Ｐｆ）、
（Ｐａ−Ｐｄ）と（Ｐｄ−Ｐｇ）、（Ｐａ−Ｐｄ）と（Ｐｄ−Ｐｈ）、
（Ｐａ−Ｐｅ）と（Ｐｅ−Ｐｆ）、（Ｐａ−Ｐｅ）と（Ｐｅ−Ｐｇ）、
（Ｐａ−Ｐｅ）と（Ｐｅ−Ｐｈ）、（Ｐａ−Ｐｅ）と（Ｐｅ−Ｐｉ）
この結果、区間（Ｐａ−Ｐｄ）と区間（Ｐｄ−Ｐｇ）の波形が一致すると判定される。この結果、ピーク位置Ｐａはピッチ基準位置ＰＰａとなり、他のピーク位置Ｐｂ，Ｐｃは候補から除外される。そして、次はピーク位置Ｐｄを起点として同じようして１６通りの組み合わせについて波形比較処理を行い、ピーク位置Ｐｄがピッチ基準位置ＰＰｄとなる。以下、同様にして、ピッチ基準位置が次々と検出されることになる。
なお、１６通りの中から同波形区間を検出する場合には、１６通り全ての誤差率を算出し、その中で所定値（例えば１０）以下の誤差率で最小のものを同波形区間としてもよいし、順次算出された誤差率の中で所定値（例えば１０）以下のものが現れた時点でそれを同波形区間としてもよい。
【００６３】
このように同波形区間を抽出するのに多数の組み合わせについて誤差率の算出処理を行っていると、相当の時間を要することになるので、ここでは、前述のように同波形であると認定された区間に基づいて、これ以降の同波形区間の検出処理を行う。すなわち、前述の１６通りの組み合わせの中でも、
（Ｐａ−Ｐｂ）と（Ｐｂ−Ｐｄ）、（Ｐａ−Ｐｂ）と（Ｐｂ−Ｐｅ）、
（Ｐａ−Ｐｂ）と（Ｐｂ−Ｐｆ）、（Ｐａ−Ｐｃ）と（Ｐｃ−Ｐｄ）、
（Ｐａ−Ｐｃ）と（Ｐｃ−Ｐｇ）、（Ｐａ−Ｐｄ）と（Ｐｄ−Ｐｅ）、
（Ｐａ−Ｐｄ）と（Ｐｄ−Ｐｆ）、（Ｐａ−Ｐｅ）と（Ｐｅ−Ｐｆ）、
（Ｐａ−Ｐｅ）と（Ｐｅ−Ｐｇ）
の９通りについては比較処理を行わない。これは比較対象の波形区間長の比が２倍近いので、比較するまでもなく同波形とはなりえないので、事前にそれらの比較を行わないようにするためである。
従って、ここでは、次の７通りの組み合わせについて波形比較処理を行う。
（Ｐａ−Ｐｂ）と（Ｐｂ−Ｐｃ）、（Ｐａ−Ｐｃ）と（Ｐｃ−Ｐｅ）、
（Ｐａ−Ｐｃ）と（Ｐｃ−Ｐｆ）、（Ｐａ−Ｐｄ）と（Ｐｄ−Ｐｇ）、
（Ｐａ−Ｐｄ）と（Ｐｄ−Ｐｈ）、（Ｐａ−Ｐｅ）と（Ｐｅ−Ｐｈ）、
（Ｐａ−Ｐｅ）と（Ｐｅ−Ｐｉ）
すると、前述の場合と同じく区間（Ｐａ−Ｐｄ）と区間（Ｐｄ−Ｐｇ）の波形が一致すると判定される。この結果、ピーク位置Ｐａはピッチ基準位置ＰＰａとなり、他のピーク位置Ｐｂ，Ｐｃは候補から除外される。そして、次はピーク位置Ｐｄを起点として同じようして７通りの組み合わせについて波形比較処理を行うことになるが、ここでは、区間（Ｐｄ−Ｐｇ）に基づいて、次の比較対象となる区間を限定する。すなわち、区間（Ｐｄ−Ｐｇ）の区間長に±αとなるような区間（Ｐｇ−Ｐｉ）、（Ｐｇ−Ｐｊ）、（Ｐｇ−Ｐｋ）に対して波形比較処理を行う。ここで、αとして、例えば、区間（Ｐａ−Ｐｄ）の約４分の１の長さを用いる。なお、αにはこれ以外の適当な値を用いてもよいことはいうまでもない。この波形比較処理の結果、区間（Ｐｄ−Ｐｇ）と区間（Ｐｇ−Ｐｊ）が同波形区間と判定される。従って、これ以降は３通りの組み合わせについて波形比較処理を行えばよいので、演算処理が非常に楽になる。
【００６４】
ステップ５Ｃ：ステップ５１からステップ５Ｂまでの処理によって得られた定常区間を拡張する。すなわち、ステップ５１からステップ５Ｂまでの処理を行った結果、各定常区間Ｘ，Ｙ，Ｚが図１０（Ｄ）のように１個の不一致区間によって区切られている場合はよいが、図１０（Ｃ）のように定常区間が複数の不一致区間によって区切られている場合には、各不一致区間を定常区間に接続して、定常区間を拡張しなければならない。このステップ５Ｃはこの定常区間の拡張処理を行うものである。
例えば、ステップ５１からステップ５Ｂまでの処理によって、１つの安定区間が図１５のように第１同母音部ＸＸと第２同母音部ＹＹという同波形区間すなわち定常区間が決定された場合、その安定区間の先頭部分に接する第１同母音部ＸＸの先頭周期区間Ｓ１と、安定区間の末尾部分に接する第２同母音部ＹＹの最終周期区間Ｅ２とは、その安定区間に沿って拡張すればよい。ところが、第１同母音部ＸＸと第２同母音部ＹＹとの間の不一致区間Ｎ１〜Ｎ６については単純に拡張することはできないので、次のように拡張する。
まず、前記ステップ５３、５７及び５Ｂの波形比較処理よりも誤差率の許容度の大きい拡張用誤差率に基づいて、第１同母音部ＸＸの最終周期区間Ｅ１と不一致区間Ｎ１、Ｎ２、Ｎ３、Ｎ４、Ｎ５、Ｎ６の順に比較し、拡張用誤差率よりも小さいと判断された不一致区間を第１同母音部ＸＸに組み込んで拡張する。同じく第２同母音部ＹＹの先頭周期区間Ｓ２と不一致区間Ｎ６、Ｎ５、Ｎ４、Ｎ３、Ｎ２、Ｎ１の順に比較し、拡張用誤差率よりも小さいと判断された不一致区間を両方の同母音部ＸＸ、ＹＹに組み込んで拡張する。図１５（Ａ）の場合は、不一致区間Ｎ１，Ｎ２が第１同母音部ＸＸに組み込まれ、不一致区間Ｎ６が第２同母音部ＹＹに組み込まれ、結果として、図１５（Ｂ）のようになったとする。
なお、各同母音区間に組み込まれずに残った不一致区間Ｎ３，Ｎ４，Ｎ５は次のようにして、いずれかの同母音区間に組み込むようにする。不一致区間Ｎ３と、第１同母音部ＸＸに組み込まれた不一致区間Ｎ２との間の波形比較処理を行って誤差率を求め、不一致区間Ｎ５と、第２同母音区間ＹＹに組み込まれた不一致区間Ｎ６との波形比較処理を行って誤差率を求め、両方の誤差率を比較して、誤差率の小さい方（一致する度合いの高い方）をその同母音部として組み込み、拡張する。この結果、不一致区間Ｎ２と不一致区間Ｎ３との誤差率の方が小さいので、図１５（Ｃ）のように、不一致区間Ｎ３が第１同母音部ＸＸに組み込まれる。今度は、不一致区間Ｎ２と不一致区間Ｎ４との誤差率を求め、不一致区間Ｎ６と不一致区間Ｎ５との誤差率と比べ、同じく誤差率の小さい方を組み込む。このようにして、図１５（Ｃ）のように不一致区間Ｎ３，Ｎ４が第１同母音部ＸＸに組み込まれ、不一致区間Ｎ５は第２同母音部ＹＹに組み込まれる。
なお、前述のように不一致区間Ｎ３が第１同母音区間に組み込まれた時点で、図１５（Ｄ）のように、この不一致区間Ｎ３を第１同母音区間とみなして、次の誤差率算出の際の不一致区間Ｎ４と不一致区間Ｎ３とを比較対象区間としてもよいことはいうまでもない。
また、この誤差率の小さいほうをいずれかの同母音区間に組み込む際に、誤差率に上限値を設け、誤差率がその上限値を越えた場合には、その不一致区間は同母音区間に組み込まないようにしてもよい。
以上のようにして、すき間区間を両側の同母音区間に組み込み、定常区間の拡張処理を終了する。
【００６５】
なお、前述の波形比較処理では、ステップ５９の時変動ＢＰＦ処理の施された楽音波形に対して、ステップ５Ｂの波形比較処理を行う場合について説明したが、この場合だと、ＢＰＦ処理後のサイン波形に近い波形に対して比較処理を行うことになるので、母音毎の特徴までもがフィルタリングされてしまい同母音区間を抽出するという意義が薄れてしまう恐れがある。そこで、ピーク位置検出用と波形比較処理用の波形を別途用意して、それに基づいてそれぞれピーク位置検出及び波形比較処理を行うようにしてもよい。すなわち、ピーク位置検出用の波形としては時変動ＢＰＦ処理後の波形をそのまま用い、波形比較処理用としてはその時変動ＢＰＦ処理に用いた周波数成分の数倍周期の周波数帯波形を残すようなＢＰＦ処理を行った波形を用いるようにする。
例えば、ステップ５Ａのピーク基準位置検出処理によって検出されたピーク基準位置に基づいてそれぞれの波形区間長の周波数を求めた場合、次のような周波数列になったとする。
１３４．６Ｈｚ、１３５．２Ｈｚ、１４５．７Ｈｚ、１３５．７Ｈｚ、・・・
従って、この周波数列を基本周波数列として、その整数倍の周波数帯を今度はカットオフ周波数とする時変動ＢＰＦ処理をそれぞれの周波数帯毎に行い、それによって得られた波形を合成する。すなわち、上記のような周波数列の場合には、基本周波数列の２倍の周波数列として、
２６９．２Ｈｚ、２７０．４Ｈｚ、２９１．４Ｈｚ、２７１．４Ｈｚ、・・・
３倍の周波数列として、
４０３．８Ｈｚ、４０５．６Ｈｚ、４３７．１Ｈｚ、４０７．１Ｈｚ、・・・
４倍の周波数列として、
５３８．４Ｈｚ、５４０．８Ｈｚ、５８２．８Ｈｚ、５４２．８Ｈｚ、・・・
のように、それぞれ基本周波数列の整数倍の周波数列をカットオフ周波数とする時変動ＢＰＦ処理をそれぞれ別々に行う。
このようにして得られた各周波数列に対応したＢＰＦ処理後の波形を合成して得られた合成波形をステップ５Ｂの波形比較処理の対象波形として使用する。
これによって、同母音区間の検出時には、音色（母音）の変化に従った正確な同母音区間の検出を行うことができるようになる。
なお、基本周波数を最低周波数とし、基本周波数の整数倍を最高周波数とするバンドパスフィルタ処理を行い、それを波形比較処理の対象波形として使用してもよいことはいうまでもない。
【００６６】
ステップ５Ｄ：ステップ５１からステップ５Ｃまでの処理によって得られた定常区間について今度は音高の変化や安定性を考慮して細分化処理を行い、最終的な定常区間を決定する。ステップ５Ｃまでの定常区間検出処理では、波形を引き延ばして比較しているため、『ああ』などのような連続母音による音声波形の音高変化であっても、それを１つの同じ音としてとらえるような仕組みになっている。従って、楽器音の楽音波形の場合には、持続系の楽器音の音高変化を見つけ出せないような事態も起こる。そこで、この実施の形態では、ステップ５Ｃまでの処理によって得られた定常部区間ごとに音高変化の状態を調べて、その状態に応じてさらに分割する必要があるかどうかの判定を行い。必要があると判定された場合には、定常部区間をさらに細かな定常区間に分割する。
すなわち、ある定常区間の中におけるピーク基準位置間の長さ（周期長）を計算し、それでサンプリング周波数を割ることによってそのピーク基準位置における周波数が算出される。各定常区間を構成する各波形の周波数の値に基づいて、その波形区間の周波数ｆ1と前波形区間の周波数ｆ0との差分（すなわち比）を、ノートに対応したリニア軸で数値化した値すなわち「音程のセント値」に基づいた相対値ｘで表わすと、下記式のようになる。
ｆ1／ｆ0 ＝ ２(x/12)
これを対数で表わして、ｘを解くと、
ｘ  ＝  ｌｏｇ（ｆ1／ｆ0）／ｌｏｇ（12√２）
なる式によって求められる。なお、「12√２」は、２の１２乗根である。周知のように、これは、２つの周波数の差すなわち比（すなわち音程）をセント値に変換する公式に対応している。ただし、一般的なセント値の表現では半音の音程が１００セントで表現されるが、上記式に従うｘは数値「１」が半音の音程に相当しており、半音の音程を「１」とする、小数点以下の値を含む値である。しかし、これは小数点の位取りの仕方の問題でしかないので、上記相対値ｘは、実質的にセント値に相当するものであると考えてもよく、要するに、相対的な音程情報のことである。上記式では、この相対値ｘは、ｆ1とｆ0のどちらが大きいかによってプラス又はマイナスの符号を持つことになるが、ピッチ安定区間の検出のためにはこの正負符号は不要であるから、これを除去した絶対値表現｜ｘ｜で表わしたものを「ノート距離」ということにする。図１６（Ａ）は、このようにして求められる「ノート距離」の時間的変化の関数（以下、ノート距離変動曲線という）の一例を示すもので、縦軸が「ノート距離」、横軸が時間である。このノート距離変動曲線がフラットである区間が、ピッチが安定している区間に相当する。
【００６７】
図１６（Ａ）のようなノート距離変動曲線を微分してその立下り又は立上りの大きい部分を区切りとすれば、２箇所のピッチ安定区間ＰＳ１及びＰＳ２が検出される。
なお、このようにしてピッチ安定区間を求めてもよいが、この実施の形態では、動的ボーダ曲線を算出し、それに基づいてピッチ安定区間を検出するようにした。ここで、動的ボーダ曲線は、ノート距離変動曲線に基づいて算出されるものであり、例えば、あるサンプルポイントＰＸにおける動的ボーダは、開始位置からサンプルポイントＰＸまでのノート距離変動曲線の平均値を求め、それに所定の定数を乗じたものである。なお、これにオフセット値を加算してもよい。図１６（Ａ）の場合は、動的ボーダ曲線は曲線ＡＣ１のようになる。この動的ボーダ曲線ＡＣ１とノート距離変動曲線ＮＣ１とを比較して、ノート距離変動曲線ＮＣ１が動的ボーダ曲線ＡＣ１よりも小さな区間をピッチ安定区間とする。なお、このとき、動的ボーダ曲線ＡＣ１がノート距離変動曲線ＮＣ１よりも小さくなった時点で、動的ボーダ曲線ＡＣ１の演算を停止し、その値を保持し続けて、ノート距離変動曲線ＮＣ１とその保持していた値とが等しくなった時点で前回までの動的ボーダ曲線ＡＣ１の値をリセットして、再び最初から同じように動的ボーダ曲線ＡＣ１の演算を開始する。このようすが図１６（Ｂ）に示されている。すると、図１６（Ｂ）のようなピッチ安定区間ＰＳ３及びＰＳ４が求まることになる。図１６のようなノート距離変動曲線ＮＣ１の場合は、微分処理によって検出されたピッチ安定区間も、動的ボーダ曲線によって検出されたピッチ安定区間もさほど変わりはない。しかしながら、図１７のようにノート距離変動曲線ＮＣ２の場合には、明確な違いが現れる。
【００６８】
図１７のノート距離変動曲線ＮＣ２の場合は、同母音区間の後半部分でピッチが不安定になっているため、曲線ＮＣ２の傾きでピッチ安定区間を検出すると、図１７（Ａ）のようにピッチ安定区間ＰＳ５，ＰＳ６，ＰＳ７，ＰＳ８が多数現れてしまう。しかしながら、図１７のノート距離変動曲線の場合、人間の耳はピッチが不安定な部分でそのピッチ変化に対して鈍く（疎く）反応するようになるので、実際には図１７（Ａ）のような多数のピッチ安定区間を感じとることはなく、図１６（Ｂ）のような大まかな２つのピッチ安定区間を感じ取ることになる。
一方、前述の動的ボーダ曲線によってピッチ安定区間を検出すれば、人間の耳と同じような反応を行わせることが可能となる。すなわち、図１７のノート距離変動曲線ＮＣ２の動的ボーダ曲線を求めると、図１７（Ｂ）のような曲線ＡＣ２になる。従って、この動的ボーダ曲線ＡＣ２よりも小さなノート距離変動曲線ＮＣ２の部分がピッチ安定区間ＰＳ９及びＰＳＡとなり、図１６のような大まかな２区間として把握されるようになる。すなわち、音程が安定している区間（図１７の安定区間ＰＳ９）では、その後にそれなりの音程変化が発生すると音の区割りが変わったこと、つまり新しい音が始まったということを人間は感じる。逆に、音程が不安定な区間（図１７の安定区間ＰＳＡ）では多少の音程の変化は人間の耳にはあまり感じ取られなくなり、新しい音すなわち区間として認識しない。従って、音程が不安定な区間ではそれなりの大きな音程の変化でないと、音程の変化として認められなくなる。このような人間の耳に近いピッチ安定区間の検出を可能とするために、上述のような動的ボーダを曲線を用い、一連の処理で安定区間又は不安定区間を動的に検出し、区間分けを行っている。
このようにして検出されたピッチ安定区間が図５の定常区間検出処理によって最終的に検出された定常区間すなわち楽譜として表した時に一つの音符に相当する区間になる。
【００６９】
図６は図１のステップ１６の音高列決定処理の詳細を示す図である。音高列決定処理は、ステップ１５によって検出された各定常区間に対して最適な音高列を決定するための処理である。以下、この音高列決定処理について図１８及び図１９を用いて説明する。
音声や楽音などを最終的に音符情報に変換する場合、ある特定周波数をどの音高に丸めるかによってメロディが大幅に変わってしまい、思ったような検出ができない場合が多い。そこで、この実施の形態では、相対音を主体として音高を決定し、さらにそれに調を利用して一番ふさわしい音高遷移を選択することによって音高列を決定するようにした。
この音高列決定処理の一例を図６のフローチャートに従って説明する。
ステップ６１：ステップ１５（図５）の定常区間検出処理によって得られた各定常区間に対してその区間の代表周波数を決定する。図１９（Ａ）は、最終的に得られた定常区間の一例を示す図である。ここでは全部で１２個の区間が検出されたものとして、各区間に括弧記号で囲まれた〔０〕〜〔１２〕の区間番号を割り当ててある。
各定常区間の代表周波数を決定する場合に重要なことは、各定常区間の周期位置から周波数の動向を洗い出して、その区間固有の周波数を１つに決定することである。そのための方法として、第１の方法は定常区間全体の平均周波数をその区間の代表周波数とする。第２の方法は定常区間の丁度中間付近の周期（周波数）をその区間の代表周波数とする。第３の方法はピッチが安定している部分の平均周波数をその区間の代表周波数とする。
なお、この実施の形態では、図５のステップ５Ｄのノート距離による細分化処理の際に使用したノート距離変動曲線、及びその時に検出されたピッチ安定区間を用いて代表周波数を算出する。すなわち、図５のステップ５Ｄの細分化処理によって細分化された区間すなわちピッチ安定区間におけるノート距離変動曲線の平均値を求める。この平均値を静的ボーダとする。例えば、図１７のようなノート距離変動曲線ＮＣ２の場合には、ピッチ区間ＰＳ９における静的ボーダはＳＢ１となり、ピッチ区間ＰＳＡにおける静的ボーダはＳＢ２となる。そして、各ピッチ区間ＰＳ９及びＰＳＡにおけるノート距離変動曲線ＮＣ２がこの静的ボーダＳＢ１及びＳＢ２よりも小さい区間を代表周波数検出区間Ｆ１及びＦ２として、その代表周波数検出区間Ｆ１及びＦ２に存在する各波形のピッチに基づいてその定常区間（ピッチ安定区間）ＰＳ９及びＰＳＡの代表周波数を決定する。
例えば、図１８の代表周波数検出区間Ｆ１を構成する波形区間が図１９（Ｂ）のような１２個であり、各波形区間の周期長は図示の通りとする。この場合、この代表周波数検出区間Ｆ１における周期長の平均値は、２５５．８３３となる。ここで、周期長はサンプリング数で表されているので、サンプリング周波数が４４．１ｋＨｚだから、この代表周波数検出区間Ｆ１の代表周波数は、その周期長の平均値でサンプリング周波数を除することによって得られるので、図１９（Ｂ）の場合には１７２．３８Ｈｚとなる。この場合、代表周波数の値は小数点２桁を有効として扱う。図１９（Ｃ）はこのようにして図１９（Ａ）のような各定常区間の代表周波数を算出した結果を示す図である。
【００７０】
ステップ６２：ステップ６１の処理によって各定常区間の代表周波数が決定されると、今度はその代表周波数に基づいて各定常区間の相前後する定常区間番号同士のノート距離を決定する。ノート距離の決定は図５のステップ５Ｄで用いた演算式と同様にして求める。図１９（Ｃ）にはこのようにして算出されたノート距離の一例が示されている。
ステップ６３：算出されたノート距離の小数点以下一桁を四捨五入して、ノート距離を１２音階上の各音高へ丸め込む。例えば、図１９（Ｃ）の場合には、各ノート距離は四捨五入されて、右欄の整数のようになる。この整数は、前音高からのノート番号上の差を示すことになるので、最初の音高を決定することによって、音高列データを完成することが可能となる。図１９（Ｃ）の最右欄に示す音高列データが最初の音高を０とした場合の音高遷移のようすを示すデータである。
すなわち、図１９（Ｃ）の場合には０−２−４−５−２−３・・・となる。
ステップ６４：第１音の音高を決定する。まず、最も簡単な方法は、第１音にデフォルト値として６０のノートナンバ（ノートネームＣ４）音を割り当てる。すなわち、ＭＩＤＩ規格の場合、ノートナンバの限界は０〜１２７なので、第１音の音高として、ノートナンバ６０（ノートネームＣ４）の音を割り当てる。これによって、高音側（プラス側）には６７半音分、低音側（マイナス側）には６０半音分だけ音高を振ることができる。
このようにすると図１９（Ｃ）の最右欄の音高列を示すデータは、６０（Ｃ４）−６２（Ｄ４）−６４（Ｅ４）−６５（Ｆ４）−６２（Ｄ４）−６３（Ｄ♯４）・・・・となる。
【００７１】
ステップ６５：ステップ６４で決定された音高列データを修正する。すなわち、ステップ６４で決定された音高列データの振れ幅を検出し、それが低音側（マイナス側）に−６０以下に振れている場合には、その最小振れ幅に合わせてデフォルト値６０を修正する。この修正は、最小振れ幅のノートが０以上となるようにデフォルト値を上側にシフトすることによって行う。例えば、最小振れ幅が−６４の場合には、計算式−６０−（−６４）＝４の結果に従って、デフォルト値６０を４ノート分上側にシフトして、第１音として６４を割当てる。高音側（プラス側）に＋６７以上振れている場合にも同様に最大振れ幅に合わせてデフォルト値６０を修正すればよい。なお、低音側（マイナス側）及び高音（プラス側）の両方において振れ幅がオーバーすることは人間の発声帯域から判断してあり得ないので、そのような場合は除外する。なお、このようなことが起こり得るような場合には、特別に音域を０〜２５６の範囲で設定するようにしてもよい。
なお、ステップ６４では、第１音の音高をデフォルト値（例えば６０）として決定し、音高列データを作成する場合について説明したが、これに限らず、最初の定常区間の代表周波数に最も近い純正率音階の周波数を検出し、その音階に当てはめるようにしてもよい。
例えば、図１９（Ｃ）の場合には、区間番号〔０〕の代表周波数は１７２．３８Ｈｚなので、第１音の音高をそれに最も近いノートナンバ５３（ノートネームＦ３）に決定する。
これによって、図１９（Ｃ）の音高列を示すデータは、５３（Ｆ３）−５５（Ｇ３）−５７（Ａ３）−５８（Ａ♯３）−５５（Ｇ３）−５６（Ｇ♯３）・・・・となる。
なお、これ以外にも種々の方法で音程列を割り当ててもよいことは言うまでもない。
【００７２】
次に、この発明に係る電子楽器が音信号分析装置及び演奏情報発生装置として動作する場合の第２の実施の形態について説明する。
この第２の実施の形態に係る電子楽器が音信号分析装置及び演奏情報発生装置として動作する際のメインフローは図１と同じなので、その説明は省略する。ただし、メインフローの中のステップ１３〜ステップ１５の各処理の内容が前述の第１の実施の形態のものとは異なるので、以下その異なる点について詳細に説明する。
【００７３】
図２０は図１のステップ１３の有効区間検出処理の詳細を示す図であり、図３に対応したものである。有効区間検出処理は、ステップ１２の音声サンプリング処理の結果得られたディジタルサンプル信号に基づいて音楽的な音が存在する区間すなわち有効区間を検出するための処理である。以下、この有効区間検出処理の詳細を図２３を用いて説明する。
ステップ２０１：ステップ１２によって求められたディジタルサンプル信号を所定のサンプル数毎に区切る処理を行う。図２３（Ａ）は、サンプリング周波数４４．１ｋＨｚでサンプリングされた音声信号すなわちディジタルサンプル信号の波形値の一例を示す図である。図２３（Ａ）には、約４４０８ポイント分の波形値が示されている。図２３（Ｄ）には、その２倍の約８８１６ポイント分の波形値が示されている。ステップ２０１では、所定のサンプル数（例えば、音声の最低周波数を８０Ｈｚとした場合におけるその最大周期に対応するサンプル数）でディジタルサンプル信号を区切る。従って、サンプリング周期４４．１ｋＨｚの場合には、この所定サンプル数は『５５１＝４４１００／８０』である。図２３（Ｂ）は図２３（Ａ）の波形値に対応しており、この波形値が５５１サンプル数毎に区切られた場合の各波形区間Ｓ１〜Ｓ８の様子を示す図である。
【００７４】
ステップ２０２：ステップ２０１によって区切られた区間毎に、その区間内に存在するディジタルサンプル信号波形の最大値を抽出する。図２３（Ｃ）には、図２３（Ａ）のディジタルサンプル信号波形が点線で示され、その各区間Ｓ１〜Ｓ８内における各波形の最大値が黒点で示されている。
ステップ２０３：ステップ２０２で求められた各区間の最大値を補間（例えば直線補間）し、補助波形を作成する。図２３（Ｄ）は、図２３（Ａ）〜（Ｃ）の約２倍の区間に相当する補助波形を示すものであり、各区間の最大値を直線補間することによって得られた補助波形を示している。なお、図２３（Ａ）のディジタルサンプル信号波形は点線で示されている。
次のステップ２０４〜ステップ２０６では、このようにして得られた補助波形に基づいて有効区間の抽出処理が行われる。
【００７５】
ステップ２０４：前記ステップ２０３で求められた図２３（Ｄ）のような補助波形を、所定のしきい値Ｔｈに基づいて有効区間又は無効区間にそれぞれ分類する。この処理では、しきい値Ｔｈとして、最大波形値の約３分の１の値をしきい値とする。これ以外の値をしきい値Ｔｈとしてもよいことは言うまでもない。例えば、図２３（Ｄ）の実線波形の平均値をしきい値Ｔｈとしたり、又はその平均値の８０パーセントをしきい値Ｔｈとしたりしてもよい。
従って、このしきい値Ｔｈと補助波形との交点位置が有効区間及び無効区間の境界となり、このしきい値Ｔｈよりも大きい区間が有効区間となり、小さい区間が無効区間となる。
【００７６】
ステップ２０５：人間が音高を認知できる必要な最低長を０．０５ｍｓｅｃとした場合に、前記ステップ２０２で決定された無効区間の中からこの最低長よりも小さな無効区間を有効区間に変更する。例えば、サンプリング周期が４４．１ｋＨｚの場合にはサンプリング数で２２０５個以下のの無効区間が、人間が音高を認知できる必要な最低長である０．０５ｍｓｅｃ以下の無効期間に対応するので、そのような無効区間を有効区間に変更する。図２３（Ｄ）の無効区間は、波形区間で３個分（サンプリング数で約１６５３個分）なので、この最低長よりも小さな無効区間に相当するので、このステップ２０５の処理によって有効区間に変更される。
ステップ２０６：前記ステップ２０５の処理の結果、得られた有効区間及び無効区間のパターンの中から０．０５ｍｓｅｃ以下の短い有効区間を無効区間に変更する処理を行う。この処理は前記ステップ２０５と同様の処理にて行う。
【００７７】
図２１は図１のステップ１４の安定区間検出処理の詳細を示す図であり、図４に対応したものである。以下、図２０の有効区間検出処理によって求められた有効区間内のディジタルサンプリング信号に対して、レベルの安定した領域を検出するための安定区間検出処理を行う。この安定区間検出処理の動作を図２４〜図２６を用いて説明する。
ステップ２１１：図２０の有効区間検出処理によって検出された有効区間内のディジタルサンプリング信号に基づいて、波形のピークが強く出ているサイドを検出する。すなわち、図２４（Ａ）のように有効区間内のディジタルサンプリング信号のプラス（＋）側の波形のピーク値ｍａｘとマイナス（−）側の波形のピーク値ｍｉｎのそれぞれの絶対値を取り、どちらの絶対値が大きいかによって、ピークの強く出ているサイドを決定する。なお、これ以外の方法でピークの強く出ているサイドを決定するようにしてもよい。例えば、上位３〜５個のピーク値の絶対値の合計を比較して決定するようにしてもよい。
ステップ２１２：ステップ２１１でピークの検出されたサイドにおいて、前方（時間経過方向）に向けてエンベロープを取り、そのピーク部を検出する。すなわち、図２４（Ｂ）のように、プラス側の波形に対して前方にエンベロープを取り、そのピーク部を検出する。この結果、図２４（Ｂ）の場合、ピーク部としてＰ１〜Ｐ４の４点が検出される。
ステップ２１３：今度はステップ２１２とは逆の方向（時間経過とは逆方向）に向けてエンベロープを取り、そのピーク部を検出する。すると、図２４（Ｃ）のように、同じ位置にピーク部Ｐ１〜Ｐ４が検出されるが、波形によってはこれ以外にもピーク部ＰＰが検出される。このことは、徐々にレベルが上がっている波形においては、いずれか一方向だけでエンベロープ検出を行った場合には、倍音ピークをピッチのピークとして取り間違え、実際にピークでない箇所（ピーク部ＰＰなどのようなもの）を誤ってピークとして検出してしまうことがある。従って、ステップ２１２及びステップ２１３のように、異なる方向でエベロープを取り、ピーク部を検出することによって、ピーク部の検出精度を向上することができる。
【００７８】
ステップ２１４：ステップ２１２及びステップ２１３の処理によって検出されたピーク部を直線補間し、新たな波形を生成する。図２４（Ｄ）は、ステップ２１２及びステップ２１３によって検出されたピーク部Ｐ１〜Ｐ４を直線補間することによって生成された新たなピーク値補間曲線を示している。なお、図２４（Ｄ）において図２４（Ａ）のディジタルサンプル信号波形は点線で示されている。
ステップ２１５：以上の処理によって生成されたピーク値補間曲線に基づいて、ピーク間の合計傾斜を算出する。この処理では、図２４（Ｄ）に示すように、傾斜を算出するための算出幅を例えば２００ポイントとし、その算出幅のシフト量を例えば１００ポイントとして、このシフト量に相当するポイントを順次シフトしながら、その傾斜を算出する。有効区間の最初のサンプルポイントａ１が『１００』だとすると、そのサンプルポイント『１００』と『３００』との間の傾斜ｂ１は、算式：（ａ3 −ａ１）／２００によって求められる。次にそれぞれのポイントを１００ポイントずつシフトしたサンプルポイント『２００』と『４００』との間の傾斜ｂ２を求める。
【００７９】
このようにして算出された傾斜の一例を図２５に示す。図から明らかなように、サンプルポイント『１００』−『３００』間の傾斜ｂ１は０．０３、サンプルポイント『２００』−『４００』間の傾斜ｂ２は０．１５、サンプルポイント『３００』−『５００』間の傾斜ｂ３は０．２５、サンプルポイント『４００』−『６００』間の傾斜ｂ４は０．５０、サンプルポイント『５００』−『７００』間の傾斜ｂ５は０．９０、サンプルポイント『６００』−『８００』間の傾斜ｂ６は１．８０、サンプルポイント『７００』−『９００』間の傾斜ｂ７は１．９０、サンプルポイント『８００』−『１０００』間の傾斜ｂ８は２．００、サンプルポイント『９００』−『１１００』間の傾斜ｂ９は１．７０、『１０００』−『１２００』間の傾斜ｂ１０は１．２０、『１１００』−『１３００』間の傾斜ｂ１１は０．７０となる。
これらの傾斜ｂ１〜ｂ１１は前者のサンプルポイントａ１〜ａ１１における傾斜として記憶される。すなわち、サンプルポイントａ１の傾斜ｂ１が０．０３、サンプルポイントａ２の傾斜ｂ２が０．１５として、それぞれのサンプルポイント毎に傾斜が記憶される。
【００８０】
次に、このようにして求められた傾斜ｂ１〜ｂ１１の値に基づいて、合計傾斜を求める。合計傾斜はそのサンプルポイントを基準に後ろ５つの傾斜を合計することによって得られるものであり、そのサンプルポイント付近の傾斜の度合いを示すものである。例えば、サンプルポイントａ１の合計傾斜ｃ１は、そのサンプルポイントａ１の傾斜ｂ１と、それから４つ後ろの傾斜ｂ２〜ｂ５とを合計することによって算出される。すなわち、ｃ１＝ｂ１＋ｂ２＋ｂ３＋ｂ４＋ｂ５によって算出される。図２５の場合には、サンプルポイントａ１の合計傾斜ｃ１は１．８３、サンプルポイントａ２の合計傾斜は３．６０、サンプルポイントａ３の合計傾斜ｃ３は５．３５、サンプルポイントａ４の合計傾斜は７．１０、サンプルポイントａ５の合計傾斜は８．３０、サンプルポイントａ６の合計傾斜ｃ６は８．６０、サンプルポイントａ７の合計傾斜は７．５０である。
【００８１】
このようにして全区間における合計傾斜を算出し、次のステップ２１６の処理を行う。なお、ここでは、５ポイントの合計をその先頭の合計傾斜とする場合について説明したが、これに限らず、５ポイントの中間の合計傾斜としてもよい。すなわち、合計傾斜ｃ１をサンプルポイントａ１〜ａ５の中間すなわちサンプルポイントａ３の値としてもよい。また、これ以外に５ポイントにおける位置が明確であれば、合計傾斜をどのポイントの値としてもよいことは言うまでもない。また、５ポイントに限らず、それ以上でもそれ以下でもよいことは言うまでもない。
このように合計傾斜を用いることで、一時的な傾きにだまされることなく、適切な傾斜部分が見つけ出せるので、適切な安定箇所を発見することができるようになる。
【００８２】
ステップ２１６：前記ステップ２１５で算出された合計傾斜に基づいて今度は安定区間の抽出を行う。すなわち、各サンプルポイントにおける合計傾斜を直線補間又はその他の補間によって結ぶことによって形成された合計傾斜曲線の中で所定値（例えば、合計傾斜値５）以下の箇所を安定区間とし、それ以外の箇所は不安定区間とする。
ステップ２１７：ステップ２１６の処理によって安定区間とみなされた区間毎に波形の最大値すなわちピーク値補間曲線の最大値を検出し、その最大値が所定値以下の場合にはその安定区間は削除し、不安定区間に変更する。
ステップ２１８：このようにして抽出された安定区間の存在に基づいて人間は初めてその安定区間の開始点付近に音符のトリガである音の開始点があることに気付く。そこで、その音符の開始点付近を決定するために、ステップ２１６及びステップ２１７で安定区間と認定された部分の音符開始点を検出し、それに応じて安定区間の拡張を行う。
【００８３】
図２６はステップ２１６からステップ２１８までの処理の概念を示すものである。有効区間内の合計傾斜曲線が図２６に示すような場合、それを所定値で区切ることによって３つの安定区間ｄ１〜ｄ３が検出される。なお、安定区間ｄ２についてはステップ２１７の処理の結果、ピーク値補間曲線の最大値が所定値以下であるために削除される。従って、図２６の有効区間の場合には２つの安定区間ｄ１，ｄ３が存在することになり、２つの安定区間ｄ１，ｄ３の間には削除された安定区間ｄ２を含む不安定区間が存在することになる。この不安定区間を安定区間ｄ１，ｄ３に接続して、それぞれの安定区間ｄ１，ｄ３の拡張処理を行う必要がある。
【００８４】
安定区間ｄ１については、必然的に有効区間の開始点がその安定区間ｄ１の音符の開始点となり、安定区間ｄ３については、必然的に有効区間の最終点がその安定区間ｄ３の音符の終了点となる。そして、安定区間ｄ３の音符開始点及び安定区間ｄ１の最終点は次のようにして求められる。すなわち、ステップ２１６で検出された不安定区間の中から、音符開始点の検出対象となる安定区間に近い方の不安定区間を決定し、その不安定区間内の合計傾斜曲線のピーク値に相当するサンプルポイントをその安定区間の音符開始点とするようにした。従って、図２６のように安定区間ｄ２が削除されて不安定区間が２箇所存在する場合には、音符開始点の検出対象となる安定区間ｄ３に近い方の不安定区間において、合計傾斜のピーク値に相当するサンプルポイントｆ２が安定区間ｄ３の音符開始点となる。従って、安定区間ｄ１の音符終了点はサンプルポイントｆ２となるので、最終的に、安定区間ｄ１は拡張安定区間ｅ１となり、安定区間ｄ２は拡張安定区間ｅ３となる。
なお、図２６の場合に、安定区間ｄ２がステップ２１７の処理で削除されなかった場合には、サンプルポイントｆ１が安定区間ｄ１の音符終了点及び安定区間ｄ２の音符開始点となり、サンプルポイントｆ２が安定区間ｄ２の音符終了点及び安定区間ｄ３の音符開始点となる。
【００８５】
図２２は図１のステップ１５の定常区間検出処理の詳細を示す図であり、図５に対応したものである。図２１の安定区間検出処理によって求められた安定区間の中から定常区間がどのようにして検出されるのか、その定常区間検出処理の詳細を説明する。なお、図２２の定常区間処理の内、ステップ２２１〜ステップ２２９は図５に示したステップ５１〜ステップ５９とほとんど同じなので、その部分については簡単に説明し、これ以外について詳細に説明する。
【００８６】
ステップ２２１：第１次バンドパスフィルタ（第１次ＢＰＦ）を通過させて、所定の倍音を削除する。
ステップ２２２：ステップ２２１の第１次ＢＰＦ処理によって得られた楽音波形信号に対してピーク位置検出法を用いて１周期の基準となるピーク基準位置検出処理を行う。
ステップ２２３：前記ステップ２２２で検出されたピーク基準位置に基づいて、あるピーク基準位置から始まる基本区間と、その基本区間の直後の次のピーク基準位置までの区間（以下、移動区間とする）との間の２つの区間の波形について波形が同じであるか否かの比較を図１３に示すような誤差率算出方法によって行う。
ステップ２２４：ステップ２２３の波形比較処理の結果を利用して、誤差率が所定値（例えば１０）よりも小さな区間同士を繋げて、それを疑似的な一致区間とし、各一致区間から抽出されるピッチの最大値と最小値を検出し、それに基づいてカットオフ周波数帯を決定する。
ステップ２２５：ステップ２２４で決定された新たなカットオフ周波数帯を用いて、第２次バンドパスフィルタ（第２次ＢＰＦ）を通過させて、不要な倍音を除去する。
ステップ２２６：ステップ２２２のピーク基準位置検出処理と同じ処理を行う。
ステップ２２７：ステップ２２３の波形比較処理と同じ処理を行う。
ステップ２２５からステップ２２７までの一連の処理によって、誤差の原因となる低周波や高調波がカットされて、より精度の高いピーク基準位置検出処理及び波形比較処理が可能となり、前回よりも精度の高い一致区間が得られる。
ステップ２２８：ステップ２２７までの処理によって得られた各ピーク基準位置におけるピッチデータを補間して、１サンプルポイント毎に１ピッチデータとなるように直線補間する。
【００８７】
ステップ２２９：ステップ２２８の処理によって求められた各サンプルポイント毎のピッチデータを用いて時変動バンドパスフィルタ（ＢＰＦ）処理を行う。
ステップ２２Ａ：ステップ２２９の時変動バンドパスフィルタ処理を経た楽音波形に対して、ピークが強く出ているサイドを決定し、ステップ２２８で得られた周波数変化に基づいて決定されるピリオド区間によって楽音波形を区切り、各区切り区間内で最大となる位置を検出し、そこをピーク基準位置とする。すなわち、ステップ２２９の時変動バンドパスフィルタ処理によって得られた楽音波形が図２７に示すようなものである場合、その周波数変化に基づいて決定されるピリオド区間ＰＲ１〜ＰＲ５によって各楽音波形を区切る。この区切られた区間ＰＲ１〜ＰＲ５における最大値Ｐ１〜Ｐ６がピーク基準位置となる。ステップ２２２（ステップ５２）やステップ２２６（ステップ５６）のようなピーク基準位置検出処理によってピーク基準位置を検出すると、図１０（Ａ）に示すような波形の場合、明らかに誤った位置にピーク基準位置Ｐ４，Ｐ５が出現してしまうという問題があるが、このステップ２２Ａのようにピリオド区間によって楽音波形を区切り、その中でピーク基準位置を検出する場合だと、そのような明らかに誤ったピーク基準位置が検出されることはなくなり、ピーク基準位置検出精度が向上する。
【００８８】
ステップ２２Ｂ：ステップ２２Ａのピーク基準位置検出処理によって検出されたピーク基準位置に基づいて波形の有声区間検出処理を行う。すなわち、この有声区間検出処理では、ステップ２２３と同様に、ステップ２２Ａで検出されたピーク基準位置に基づいて、あるピーク基準位置から始まる基本区間と、その基本区間の直後の次のピーク基準位置までの区間（以下、移動区間とする）との間の２つの区間の波形について波形が同じであるか否かの比較を図１３に示すような誤差率算出方法によって行う。そのために、この有声区間検出処理では、基本区間と移動区間とが不一致と判定された場合、その部分を直ちに有声区間の区切りとしないで、不一致が所定回数以上連続して発生した場合に有声区間の区切りとする。これによって、「あ〜い〜う〜」や「あ〜あ〜あ〜」等のように「母音が連続する部分」を有声区間として検出することができる。
【００８９】
例えば、図２８の場合、ピーク基準位置Ｐ１からピーク基準位置Ｐ２までを基本区間Ｐ１２とすると、ピーク基準位置Ｐ２からピーク基準位置Ｐ３までが移動区間Ｐ２３となる。この場合、基本区間Ｐ１２と移動区間２３は一致すると判定されたとする。区間Ｐ２３と区間Ｐ３４についても同様に一致と判定されたとする。次の区間Ｐ３４と区間Ｐ４５が不一致と判定された場合、その区間Ｐ３４と、区間Ｐ４５の次の区間Ｐ５６との間で波形比較処理を行う。その結果、区間Ｐ３４と区間Ｐ５６が一致と判定された場合には、区間Ｐ４５と区間５６が不一致であっても、区間Ｐ３４、区間Ｐ４５、区間Ｐ５６は一致するものとして次の区間Ｐ５６と区間Ｐ６７（図示せず）の判定に進む。このとき、区間Ｐ３４と区間Ｐ４５、区間Ｐ３４と区間Ｐ５６、区間Ｐ３４と区間Ｐ６７（図示せず）、区間Ｐ３４と区間Ｐ７８（図示せず）、区間Ｐ３４と区間Ｐ８９（図示せず）がそれぞれ不一致と判定された場合、すなわち所定回数（例えば５回）以上不一致が連続して発生した場合には、その区間Ｐ３４を有声区間の区切りとし、次の区間Ｐ４５と区間Ｐ５６について同様の判定を行う。区間Ｐ４５と区間Ｐ５６が不一致の場合には、区間Ｐ４５と区間Ｐ６７（図示へせず）について判定を行う。なお、区間４５と区間Ｐ５６が不一致の場合、不一致が連続するがどうかの処理を行わずに、次の区間Ｐ５６と区間Ｐ６７について判定を行い、隣合う区間が一致したときに始めて前述と同様の一致処理を行うようにしてもよい。
このようにして、有声区間が決定したら、今度はその有声区間の中で所定長以下のもの（短い有声区間）を削除する。
【００９０】
以上の処理によって、安定区間は、図２９に示すように不安定区間によって分離された有声区間Ｖ１〜Ｖ３のように分類される。なお、この有声区間Ｖ１〜Ｖ３は隣接比較誤差曲線の値の低い安定した部分に対応し、隣接比較誤差曲線の値の高い部分が不安定区間に対応している。従って、この隣接比較誤差曲線に基づいて、安定区間Ｖ１〜Ｖ３の拡張処理を行う。この拡張処理は、安定区間の開始点及び終了点に接する有効区間については無条件にその安定区間の開始点及び終了点まで拡張し、二つの有声区間に挟まれた不安定区間については隣接比較誤差の最大値を区切り点として、有効区間の拡張を行う。従って、図２９に示すような隣接比較誤差曲線の場合には、各有声区間Ｖ１〜Ｖ３は拡張処理によって拡張有声区間Ｖ１Ｅ〜Ｖ３Ｅのようになる。なお、図２９では、拡張有声区間内の隣接比較誤差の傾きが０となる部分（底辺部分）が一か所の場合のみが示されているが、実際には隣接比較誤差の傾きが０となる部分（底辺部分）は複数箇所存在する場合があることは言うまでもない。
【００９１】
ステップ２２Ｃ：ステップ２２１からステップ２２Ｂまでの処理によって得られた各拡張有声区間について、隣合う区間の誤差すなわち隣接比較誤差の傾きが０となる部分（底辺部分）を検出し、そこを母音の基準位置とし、その母音の発音に対応した区間を音色区間として検出する処理を行う。
この音色区間を検出する処理では、底辺部分に相当する波形区間を基本区間として固定し、その前後に存在する複数の波形区間を移動区間として順次波形比較処理を行い、その比較誤差を求める。このようにして求めた比較誤差を基準比較誤差と呼ぶ。
すなわち、図３０（Ａ）に示すように隣接比較誤差の底辺部分に相当する波形区間ｍ０を基本区間とし、この基本区間とその両側に存在する複数の移動区間ｍ１，ｍ−１，ｍ２，ｍ−２，ｍ３，ｍ−３，ｍ４，ｍ−４・・・との間で波形比較処理を行う。基本区間は隣接比較誤差の最低値に相当するもの、すなわち、波形比較処理の結果、一致度が高いと認定された波形区間のことである。このようにして得られた比較誤差が図３０（Ｂ）のような基準比較誤差曲線となる。この基準比較誤差曲線は波形区間ｍ０を基準にして波形比較処理を行っている関係上、波形区間ｍ０の近傍では隣接比較誤差曲線と同じような傾向を示すが、比較的離れた部分では誤差率は大きくなり、誤差率最大に収束する。
そして、この基準比較誤差曲線の値（誤差率）が所定値以下の部分の波形区間が音色区間ＴＳ１となる。
なお、基準比較誤差曲線を求める場合にも、ステップ２２Ｂの有声区間検出処理のように、基準比較誤差曲線の値が所定値よりも大きくなった場合にそこを直ちに音色区間の区切りとしないで、所定値よりも大きい値が所定回数以上連続して発生した場合に音色区間の区切りとする。
【００９２】
このようにして音色区間が決定した場合に、拡張有声区間内でこの音色区間以外の未決定区間長が所定長以上の場合には、決定した音色区間以外の拡張音声区間について同様の処理を行う。すなわち、図３０の場合には、図３０（Ｂ）のような音色区間ＴＳ１が決定した場合、この音色区間ＴＳ１以外の拡張有声区間すなわち未決定区間長が所定長以上なので、この未決定区間長についても同様に、図３０（Ｃ）に示すような隣接比較誤差の底辺部分に相当する波形区間ｎ０を基本区間とし、この基本区間とその前後に存在する複数の移動区間ｎ１，ｎ−１，ｎ２，ｎ−２，ｎ３，ｎ−３，ｎ４，ｎ−４・・・との間で波形比較処理を行う。このようにして得られた比較誤差が図３０（Ｄ）のような基準比較誤差曲線となる。この基準比較誤差曲線の値（誤差率）が所定値以下の部分の波形区間が今度は音色区間ＴＳ２となる。従って、図３０の拡張有声区間の場合には２つの音色区間ＴＳ１，ＴＳ２が検出されることになる。
【００９３】
ステップ２２Ｄ：ステップ２２Ｃの処理によって得られた音色区間をステップ５Ｃの定常区間拡張処理と同じようにして拡張する。すなわち、ステップ２２１からステップ２２Ｃまでの処理を行った結果、検出された音色区間ＳＴ１と音声区間ＳＴ２との間が１個の波形区間によって区切られている場合にはそのままその波形区間を音色区間ＳＴ１及びＳＴ２の区切りとすればよいが、隣合う音色区間同士が複数の波形区間によって区切られている場合には、これらの波形区間を前後の音色区間に接続して、音色区間を拡張しなければならない。この音色区間を拡張する処理は、図１５と同様の処理によって行われる。
なお、この場合もＢＰＦ処理後のサイン波形に近い波形に対して比較処理を行うことになるので、母音毎の特徴までもがフィルタリングされてしまい同母音区間すなわち同じ音色を抽出するという意義が薄れてしまう恐れがある。そこで、ピーク位置検出用と波形比較処理用の波形を別途用意して、それに基づいてそれぞれピーク位置検出及び波形比較処理を行うようにしてもよい。すなわち、ピーク位置検出用の波形としては時変動ＢＰＦ処理後の波形をそのまま用い、波形比較処理用としてはその時変動ＢＰＦ処理に用いた周波数成分の数倍周期の周波数帯波形を残すようなＢＰＦ処理を行った波形を用いるようにする。
なお、基本周波数を最低周波数とし、基本周波数の整数倍を最高周波数とするバンドパスフィルタ処理を行い、それを波形比較処理の対象波形として使用してもよいことはいうまでもない。
【００９４】
このようにした拡張された音色区間について今度は音高の変化や安定性を考慮して細分化処理を行い、最終的な音程区間を決定する。ステップ２２Ｃまでの音色区間検出処理では、波形を引き延ばして比較しているため、『ああ』などのような連続母音による音声波形の音高変化であっても、それを１つの同じ音としてとらえるような仕組みになっている。従って、楽器音の楽音波形の場合には、持続系の楽器音の音高変化を見つけ出せないような事態も起こる。そこで、この実施の形態では、ステップ２２Ｃまでの処理によって得られた音色区間ごとに音高変化の状態を調べて、その状態に応じてさらに分割する必要があるかどうかの判定を行い。必要があると判定された場合には、音色区間をさらに細かな音程区間に分割する。この音色区間を音程区間に分割する処理は、図１６に示すようなノート距離変動曲線を用いて行う。
【００９５】
ステップ２２Ｅ：ステップ２２Ｄの処理によって検出された音程区間の中には、音符として存在しえないほど短いものが含まれていたりする場合がある。故に、このステップでは１小節を所定の音符長（例えば８分音符長）を単位としたグリッドに均等に分割し、このグリッドに前述の音程区間を当てはめて、音価を決定するようにしている。各音程区間の先頭が最も近いグリッドにその音程区間を当てはめるようにしているが、１つのグリッドに対して２つ以上の音程区間が最も近いという場合には、それらの音程区間の中で音長の長いものをそのグリッドに当てはめるようにした。
例えば、図３１は８分音符長で分割された１小節分に該当する音程区間の一例を示す図である。図において、ステップ２２Ｄによって最終的に決定された音程区間はＰＴ１〜ＰＴ５のようになったとする。この場合、音程区間ＰＴ１はグリッドＧ２に、音程区間ＰＴ２はグリッドＧ４に、音程区間ＰＴ３はグリッドＧ５に当てはまる。しかしながら、グリッドＧ６に関しては、音程区間ＰＴ４と音程区間ＰＴ５の２つがグリッドＧ６に最も近い音程区間である。従って、この場合には、音程区間ＰＴ４と音程区間ＰＴ５の音長の長い方、すなわち音程区間ＰＴ５がグリッグＧ６に当てはめられることになる。
なお、グリッドＧ５に音程区間ＰＴ３が当てはめられている関係上、音程区間ＰＴ２の音長はクリッドＧ４からグリッドＧ５までとなるが、このときに、音程区間ＰＴ３が存在しない場合には、その音程区間ＰＴ２の音長の最終位置をそのまま採用してもよいし、音程区間ＰＴ２の末尾が最も近いグリッドにその音程区間を当てはめるようにしてもよい。この場合、音程区間の存在しない部分にノートオフ（休符）を当てはめるようにしてもよい。
また、音程区間ＰＴ３が存在しない場合には、その音程区間ＰＴ２の音長の最終位置を次の音程区間ＰＴ５の開始位置であるグリッドＧ６までとしてもよい。この場合には、ノートオフ（休符）などは存在しないことになる。
このように図２２の定常区間検出処理によって音価が決定された後は、図１のステップ１６の音高列決定処理によって、各音価に最適な音高列が割り当てられる。この音高列決定処理は第１の実施の形態と同じなので説明は省略する。
【００９６】
【発明の効果】
この発明に係る音信号分析装置によれば、マイク等からの入力音のピッチ又はレベルが微妙にゆれた場合でも、そのゆれた部分以外の音楽的な音の定常部分すなわち１つの音符に相当する部分を分析することのできる音信号分析装置を提供することができる。
【図面の簡単な説明】
【図１】  図２の電子楽器が演奏情報発生装置として動作する際のメインフローを示す図である。
【図２】  この発明に係る楽音情報分析装置及び演奏情報発生装置を内蔵した電子楽器の構成を示すハードブロック図である。
【図３】  図１のステップ１３の有効区間検出処理の詳細を示す図である。
【図４】  図１のステップ１４の安定区間検出処理の詳細を示す図である。
【図５】  図１のステップ１５の定常区間検出処理の詳細を示す図である。
【図６】  図１のステップ１６の音高列決定処理の詳細を示す図である。
【図７】  サンプリング周波数４４．１ｋＨｚでサンプリングされた音声信号すなわちディジタルサンプル信号の波形値の一例を示す図である。
【図８】  図３の有効区間検出処理の動作例の概念を示す図である。
【図９】  図４の安定区間検出処理の動作例の概念を示す図である。
【図１０】  図５の第１次及び第２次ＢＰＦ処理並びに波形比較処理による動作例の概念を示す図である。
【図１１】  図５のステップ５１の第１次ＢＰＦ処理後における安定区間の楽音波形の強いピークがマイナス側に現れ、弱いピークがプラス側に現れる場合の波形例を示す図である。
【図１２】  図５の波形比較処理の中で行われる誤差率の算出方法がどのように行われるのか、その具体例を２個の比較波を用いて示した図である。
【図１３】  図５の波形比較処理によって、図１１の２個の比較波からどのようにして誤差率が算出されるのか、具体的な数値を示す図である。
【図１４】  時定数を小さめに設定した場合に図５のピーク基準位置検出処理によってピーク基準位置がどのように抽出されるか、その具体例を示す図である。
【図１５】  図５のステップ５Ｃの定常区間拡張処理の動作例を示す図である。
【図１６】  図５のステップ５Ｄのノート距離による細分化処理の動作例を示す図である。
【図１７】  図５のステップ５Ｄのノート距離による細分化処理の別の動作例を示す図である。
【図１８】  図６のステップ６１の各定常区間の代表周波数決定処理を行う場合に、定常区間のどの部分から代表周波数を検出するのかその動作例を示す図である。
【図１９】  図６のステップ６１の各定常区間からどのようにして代表周波数が検出されるのかその動作例を示す図である。
【図２０】  図１のステップ１３の有効区間検出処理の別の実施の形態に係るものの詳細を示す図である。
【図２１】  図１のステップ１４の安定区間検出処理の別の実施の形態に係るものの詳細を示す図である。
【図２２】  図１のステップ１５の定常区間検出処理の別の実施の形態に係るものの詳細を示す図である。
【図２３】  図２０の有効区間検出処理の動作例の概念を示す図である。
【図２４】  図２１のステップ２１１からステップ２１５までの処理の動作例の概念を示す図である。
【図２５】  図２１のステップ２１５の合計傾斜の算出例を示す図である。
【図２６】  図２１のステップ２１６及びステップ２１８の処理の動作例の概念を示す図である。
【図２７】  図２２のステップ２２Ａのピーク基準位置検出処理の動作例の概念を示す図である。
【図２８】  図２２のステップ２２Ｂの有声区間検出処理における動作例の概念の前半部分を示す図である。
【図２９】  図２２のステップ２２Ｂの有声区間検出処理における動作例の概念の後半部分を示す図である。
【図３０】  図２２のステップ２２Ｃの音色区間検出処理における動作例の概念を示す図である。
【図３１】  図２２のステップ２２Ｅの音価決定処理における動作例の概念を示す図である。
【符号の説明】
１…ＣＰＵ、２…プログラムメモリ、３…ワーキングメモリ、４…演奏データメモリ、５…押鍵検出回路、６…マイクインターフェイス、７…スイッチ検出回路、８…表示回路、９…音源回路、１０…鍵盤、１Ａ…マイクロフォン、１Ｂ…テンキー＆各種スイッチ、１Ｃ…ディスプレイ、１Ｄ…サウンドシステム、１Ｅ…データ及びアドレスバス
【図１】
0003669129.tif 000002
【図２】
0003669129.tif 000003
【図３】
0003669129.tif 000004
【図４】
0003669129.tif 000005
【図５】
0003669129.tif 000006
【図６】
0003669129.tif 000007
【図７】
0003669129.tif 000008
【図８】
0003669129.tif 000009
【図９】
0003669129.tif 000010
【図１０】
0003669129.tif 000011
【図１１】
0003669129.tif 000012
【図１２】
0003669129.tif 000013
【図１３】
0003669129.tif 000014
【図１４】
0003669129.tif 000015
【図１５】
0003669129.tif 000016
【図１６】
0003669129.tif 000017
【図１７】
0003669129.tif 000018
【図１８】
0003669129.tif 000019
【図１９】
0003669129.tif 000020
【図２０】
0003669129.tif 000021
【図２１】
0003669129.tif 000022
【図２２】
0003669129.tif 000023
【図３１】
0003669129.tif 000024
【図２３】
0003669129.tif 000025
【図２４】
0003669129.tif 000026
【図２５】
0003669129.tif 000027
【図２６】
0003669129.tif 000028
【図２７】
0003669129.tif 000029
【図２８】
0003669129.tif 000030
【図２９】
0003669129.tif 000031
【図３０】
0003669129.tif 000032