(57)【要約】【課題】本発明は、歌声や音楽の音響信号を入力として、その音響信号を音高と音価との時系列データとして出力するときにあって、処理の高速化を図るとともに、正確な音高および音価を決定できるようにすることを目的とする。【解決手段】音高の抽出前に、音響信号のデジタル信号に前処理を行うことにより、時間のかかる周波数解析の要不要を決定することで処理の高速化を実現する。そして、周波数解析後に得られる各フレームごとのパワー情報などから有音区間／無音区間を的確に判別したり、あるいは各フレームごとのパワーの変化率から的確に発声開始点を検出したりすることで、ある１つの音高が発声されたと考えられる連続有音区間を正しく検出したり、各連続有音区間内に存在するばらつきのある音高情報を、ある１つの音高情報にまとめたりすることにより、良好な音高と音価の時系列情報の生成を実現する。【選択図】　　　　　図１
2004145154.tif 000002
【特許請求の範囲】
【請求項１】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定方法において、
上記変換したデジタル信号を先頭からの順番に従って上記分析区間を単位として切り出して、その波形信号の前半の値の絶対値の合計または平均値と、後半の値の絶対値の合計または平均値とを算出する過程と、
上記算出した２つの値の差または比率を計算し、その計算値に基づいて、上記切り出した分析区間が無音であることを判断するときには、その分析区間については上記周波数解析を行わないように制御するとともに、その分析区間に続く分析区間について上記算出を行うことを指示する過程とを備えることを、
特徴とする音高音価決定方法。
【請求項２】
請求項１に記載の音高音価決定方法において、
上記制御により周波数解析を行うとされた分析区間のデジタル信号を処理対象として、そのデジタル信号の周波数解析により得られる各周波数成分のパワー値を低い周波数成分からチェックして、所定の閾値よりも大きく、かつ局所的な最大値を示す周波数成分を探索し、その探索した周波数成分のパワー値とその前後の周波数成分のパワー値とから、所定の補間式に従って、該当の分析区間の基本周波数又はそれに対応付けられる音高番号を推定する過程と、
上記推定した基本周波数よりも大きい周波数成分について上記探索を行うことで同様の形態を示す周波数又はそれに対応付けられる音高番号を順次得て、その値と上記推定した値とに従って、上記推定した値が正規のものであるのか否かを判断して、最終的に正規のものでないと判断するときには、上記推定した基本周波数を起点として上記推定をやり直すように指示する過程とを備えることを、
特徴とする音高音価決定方法。
【請求項３】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定方法において、
上記周波数解析により得られる各周波数成分のパワー値を低い周波数成分からチェックして、所定の閾値よりも大きく、かつ局所的な最大値を示す周波数成分を探索し、その探索した周波数成分のパワー値とその前後の周波数成分のパワー値とから、所定の補間式に従って、該当の分析区間の基本周波数又はそれに対応付けられる音高番号を推定する過程と、
上記推定した基本周波数よりも大きい周波数成分について上記探索を行うことで同様の形態を示す周波数又はそれに対応付けられる音高番号を順次得て、その値と上記推定した値とに従って、上記推定した値が正規のものであるのか否かを判断して、最終的に正規のものでないと判断するときには、上記推定した基本周波数を起点として上記推定をやり直すように指示する過程とを備えることを、
特徴とする音高音価決定方法。
【請求項４】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定方法において、
上記算出した各分析区間の平均パワー値を用いて、所定の閾値よりも小さな平均パワー値を持つ分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを修正する過程と、
上記修正により特定される無音の分析区間であるのか有音の分析区間であるのかという情報に基づいて、所定の閾値よりも短い連続有音区間を検出し、その検出した連続有音区間内の全分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを訂正する過程と、
上記訂正により特定される各連続有音区間ごとに、それらの連続有音区間内に出現する音高の出現頻度に従って、それらの連続有音区間の音高を決定する過程とを備えることを、
特徴とする音高音価決定方法。
【請求項５】
請求項４に記載の音高音価決定方法において、
上記決定した音高の情報と、その音高の決定元となった連続有音区間の持つ分析区間の数の情報と、上記テンポ情報とに基づいて、上記音響信号についての音高および音価の時系列情報を生成する過程を備えることを、
特徴とする音高音価決定方法。
【請求項６】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定方法において、
上記算出した各分析区間の平均パワー値を用いて、所定の閾値よりも小さな平均パワー値を持つ分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを修正する過程と、
上記修正により特定される無音の分析区間であるのか有音の分析区間であるのかという情報に基づいて、所定の閾値よりも短い連続有音区間を検出し、その検出した連続有音区間内の全分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを訂正する過程と、
上記訂正により特定される有音の各分析区間ごとに、その有音の分析区間の平均パワー値とその前後の分析区間の平均パワー値とに基づいて、その有音の分析区間が発声開始点であるのか否かを判断する過程と、
上記判断した発声開始点の内で次の発声開始点との間にある分析区間数が所定の閾値よりも少ないものを検出し、その時間的に後ろにある発声開始点を非発声開始点として決定して、その決定に従って、信号全体に渡って発声開始点を補正する過程と、
上記補正により特定される発声開始点を起点とする各連続有音区間ごとに、それらの連続有音区間内に出現する音高の出現頻度に従って、それらの連続有音区間の音高を決定する過程とを備えることを、
特徴とする音高音価決定方法。
【請求項７】
請求項６に記載の音高音価決定方法において、
上記決定した音高の情報と、その音高の決定元となった連続有音区間の持つ分析区間の数の情報と、上記テンポ情報とに基づいて、上記音響信号についての音高および音価の時系列情報を生成する過程を備えることを、
特徴とする音高音価決定方法。
【請求項８】
請求項６または７に記載の音高音価決定方法において、
上記判断する過程では、処理対象の分析区間の平均パワー値を基準にして、直前の分析区間と処理対象の分析区間との間で平均パワー値が規定量以上変化し、かつ、直前の分析区間と直後の分析区間との間で平均パワー値が規定量以上変化する処理対象の分析区間を発声開始点の分析区間であると判断することを、
特徴とする音高音価決定方法。
【請求項９】
請求項４ないし８のいずれか１項に記載の音高音価決定方法において、
上記決定する過程では、連続有音区間内に出現する音高の数を音高の高いものから累積加算して、その累積加算値が連続有音区間の持つ分析区間数から設定される閾値に到達する時点の音高を特定して、それを連続有音区間の音高として決定することを、
特徴とする音高音価決定方法。
【請求項１０】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定装置において、
上記変換したデジタル信号を先頭からの順番に従って上記分析区間を単位として切り出して、その波形信号の前半の値の絶対値の合計または平均値と、後半の値の絶対値の合計または平均値とを算出する手段と、
上記算出した２つの値の差または比率を計算し、その計算値に基づいて、上記切り出した分析区間が無音であることを判断するときには、その分析区間については上記周波数解析を行わないように制御するとともに、その分析区間に続く分析区間について上記算出を行うことを指示する手段とを備えることを、
特徴とする音高音価決定装置。
【請求項１１】
請求項１０に記載の音高音価決定装置において、
上記制御により周波数解析を行うとされた分析区間のデジタル信号を処理対象として、そのデジタル信号の周波数解析により得られる各周波数成分のパワー値を低い周波数成分からチェックして、所定の閾値よりも大きく、かつ局所的な最大値を示す周波数成分を探索し、その探索した周波数成分のパワー値とその前後の周波数成分のパワー値とから、所定の補間式に従って、該当の分析区間の基本周波数又はそれに対応付けられる音高番号を推定する手段と、
上記推定した基本周波数よりも大きい周波数成分について上記探索を行うことで同様の形態を示す周波数又はそれに対応付けられる音高番号を順次得て、その値と上記推定した値とに従って、上記推定した値が正規のものであるのか否かを判断して、最終的に正規のものでないと判断するときには、上記推定した基本周波数を起点として上記推定をやり直すように指示する手段とを備えることを、
特徴とする音高音価決定装置。
【請求項１２】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定装置において、
上記周波数解析により得られる各周波数成分のパワー値を低い周波数成分からチェックして、所定の閾値よりも大きく、かつ局所的な最大値を示す周波数成分を探索し、その探索した周波数成分のパワー値とその前後の周波数成分のパワー値とから、所定の補間式に従って、該当の分析区間の基本周波数又はそれに対応付けられる音高番号を推定する手段と、
上記推定した基本周波数よりも大きい周波数成分について上記探索を行うことで同様の形態を示す周波数又はそれに対応付けられる音高番号を順次得て、その値と上記推定した値とに従って、上記推定した値が正規のものであるのか否かを判断して、最終的に正規のものでないと判断するときには、上記推定した基本周波数を起点として上記推定をやり直すように指示する手段とを備えることを、
特徴とする音高音価決定装置。
【請求項１３】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定装置において、
上記算出した各分析区間の平均パワー値を用いて、所定の閾値よりも小さな平均パワー値を持つ分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを修正する手段と、
上記修正により特定される無音の分析区間であるのか有音の分析区間であるのかという情報に基づいて、所定の閾値よりも短い連続有音区間を検出し、その検出した連続有音区間内の全分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを訂正する手段と、
上記訂正により特定される各連続有音区間ごとに、それらの連続有音区間内に出現する音高の出現頻度に従って、それらの連続有音区間の音高を決定する手段とを備えることを、
特徴とする音高音価決定装置。
【請求項１４】
請求項１３に記載の音高音価決定装置において、
上記決定した音高の情報と、その音高の決定元となった連続有音区間の持つ分析区間の数の情報と、上記テンポ情報とに基づいて、上記音響信号についての音高および音価の時系列情報を生成する手段を備えることを、
特徴とする音高音価決定装置。
【請求項１５】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定装置において、
上記算出した各分析区間の平均パワー値を用いて、所定の閾値よりも小さな平均パワー値を持つ分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを修正する手段と、
上記修正により特定される無音の分析区間であるのか有音の分析区間であるのかという情報に基づいて、所定の閾値よりも短い連続有音区間を検出し、その検出した連続有音区間内の全分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを訂正する手段と、
上記訂正により特定される有音の各分析区間ごとに、その有音の分析区間の平均パワー値とその前後の分析区間の平均パワー値とに基づいて、その有音の分析区間が発声開始点であるのか否かを判断する手段と、
上記判断した発声開始点の内で次の発声開始点との間にある分析区間数が所定の閾値よりも少ないものを検出し、その時間的に後ろにある発声開始点を非発声開始点として決定して、その決定に従って、信号全体に渡って発声開始点を補正する手段と、
上記補正により特定される発声開始点を起点とする各連続有音区間ごとに、それらの連続有音区間内に出現する音高の出現頻度に従って、それらの連続有音区間の音高を決定する手段とを備えることを、
特徴とする音高音価決定装置。
【請求項１６】
請求項１５に記載の音高音価決定装置において、
上記決定した音高の情報と、その音高の決定元となった連続有音区間の持つ分析区間の数の情報と、上記テンポ情報とに基づいて、上記音響信号についての音高および音価の時系列情報を生成する手段を備えることを、
特徴とする音高音価決定装置。
【請求項１７】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定装置において、
請求項１０に記載の音高音価決定装置を実現するために用意される各手段で構成され、上記変換したデジタル信号の波形信号に基づいて、最初に有音となる分析区間を検出して、それよりも時間的に前の分析区間については周波数解析を行わないように制御する第１の機構と、
請求項１１に記載の音高音価決定装置を実現するために用意される各手段で構成され、周波数解析の解析結果を使って、有音の分析区間の音高を決定する第２の機構と、
請求項１３に記載の音高音価決定装置を実現するために用意される各手段で構成され、周波数解析の解析結果を使って、連続有音区間を決定するとともに、上記第２の機構の決定した音高を使って、それらの連続有音区間の音高を決定する第３の機構と、
請求項１４に記載の音高音価決定装置を実現するために用意される手段で構成され、上記第３の機構の決定した音高の情報と、その音高の決定元となった連続有音区間の持つ分析区間の数の情報と、上記テンポ情報とに基づいて、上記音響信号についての音高および音価の時系列情報を生成する第４の機構とを備えることを、
特徴とする音高音価決定装置。
【請求項１８】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定装置において、
請求項１０に記載の音高音価決定装置を実現するために用意される各手段で構成され、上記変換したデジタル信号の波形信号に基づいて、最初に有音となる分析区間を検出して、それよりも時間的に前の分析区間については周波数解析を行わないように制御する第１の機構と、
請求項１１に記載の音高音価決定装置を実現するために用意される各手段で構成され、周波数解析の解析結果を使って、有音の分析区間の音高を決定する第２の機構と、
請求項１５に記載の音高音価決定装置を実現するために用意される各手段で構成され、周波数解析の解析結果を使って、連続有音区間を決定するとともに、上記第２の機構の決定した音高を使って、それらの連続有音区間の音高を決定する第３の機構と、
請求項１６に記載の音高音価決定装置を実現するために用意される手段で構成され、上記第３の機構の決定した音高の情報と、その音高の決定元となった連続有音区間の持つ分析区間の数の情報と、上記テンポ情報とに基づいて、上記音響信号についての音高および音価の時系列情報を生成する第４の機構とを備えることを、
特徴とする音高音価決定装置。
【請求項１９】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定装置において、
請求項１２に記載の音高音価決定装置を実現するために用意される各手段で構成され、周波数解析の解析結果を使って、有音の分析区間の音高を決定する第１の機構と、
請求項１３に記載の音高音価決定装置を実現するために用意される各手段で構成され、周波数解析の解析結果を使って、連続有音区間を決定するとともに、上記第１の機構の決定した音高を使って、それらの連続有音区間の音高を決定する第２の機構と、
請求項１４に記載の音高音価決定装置を実現するために用意される手段で構成され、上記第２の機構の決定した音高の情報と、その音高の決定元となった連続有音区間の持つ分析区間の数の情報と、上記テンポ情報とに基づいて、上記音響信号についての音高および音価の時系列情報を生成する第３の機構とを備えることを、
特徴とする音高音価決定装置。
【請求項２０】
歌声や音楽の音響信号を入力として、その音響信号をデジタル信号に変換して周波数解析することで、各分析区間ごとに、平均パワー値を算出するとともに基本周波数を決定し、その情報に基づいて、ある１つの音高の音が発声された区間を特定することで、それらの各区間ごとの音高を同定し、その同定した情報と入力されるテンポ情報とに基づいて、入力する音響信号を音高と音価との時系列データとして出力する音高音価決定装置において、
請求項１２に記載の音高音価決定装置を実現するために用意される各手段で構成され、周波数解析の解析結果を使って、有音の分析区間の音高を決定する第１の機構と、
請求項１５に記載の音高音価決定装置を実現するために用意される各手段で構成され、周波数解析の解析結果を使って、連続有音区間を決定するとともに、上記第１の機構の決定した音高を使って、それらの連続有音区間の音高を決定する第２の機構と、
請求項１６に記載の音高音価決定装置を実現するために用意される手段で構成され、上記第２の機構の決定した音高の情報と、その音高の決定元となった連続有音区間の持つ分析区間の数の情報と、上記テンポ情報とに基づいて、上記音響信号についての音高および音価の時系列情報を生成する第３の機構とを備えることを、
特徴とする音高音価決定装置。
【請求項２１】
請求項１ないし９のいずれか１項に記載の音高音価決定方法の実現に用いられる処理をコンピュータに実行させるための音高音価決定プログラム。
【請求項２２】
請求項１ないし９のいずれか１項に記載の音高音価決定方法の実現に用いられる処理をコンピュータに実行させるための音高音価決定プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、歌声や音楽の音響信号を入力として、その音響信号を音高と音価との時系列データとして出力する音高音価決定方法およびその装置と、その音高音価決定方法の実現に用いられる音高音価決定プログラムおよびそのプログラムを記録した記録媒体とに関する。
【０００２】
【従来の技術】
音楽や歌唱などの音響信号は、基本周波数とその整数倍の周波数とを持つ波形からなっている。
【０００３】
このような音響信号を音高情報と音価情報とに変換する音高／音価の自動決定装置では、フレームと呼ばれる分析区間ごとに基本周波数を同定したり、有音や無音を決定したりしている。
【０００４】
この音高／音価の自動決定装置は、採譜装置と呼ばれる音楽や歌唱などの音響信号から楽譜データを自動作成する装置で用いられている（例えば、特許文献１，２，３を参照）。
【０００５】
なお、音高とは、音響関係の技術分野で用いられる技術用語であって基本周波数に対応付けられており、ＭＩＤＩ規格では、８．１８Ｈｚ〜１２．５４４ｋＨｚの間に設けられる１２８個の基本周波数に対して１２８個のコードを割り当てている。
【０００６】
また、音価とは、音響関係の技術分野で用いられる技術用語であって、四分音符や八分音符といった音符を表している。
【０００７】
【特許文献１】
特開平１−２１９６２５号公報
【特許文献２】
特開平１−２１９６２６号公報
【特許文献３】
特開平４−２６１５９１号公報
【０００８】
【発明が解決しようとする課題】
ところで、実際に入力される、人が発する音響信号は曖昧で、すべてのフレームごとに正確な基本周波数を同定したり、有音であるのか無音であるのかを誤りなく決定するのは困難である。
【０００９】
さらに実際には、１つの音高の音が発声された連続する複数のフレームにおいて同じ音高を抽出するのも困難である。
【００１０】
また、ある程度のレスポンスが期待される実用システムでは、周波数解析を使用する場合、できるだけ早く処理が完了することが望まれる。
【００１１】
しかしながら、これらの点に関して、従来技術は何ら解答を与えておらず、これから、従来技術に従っていると、正確な音高および音価の決定ができていないという問題点や、大きな処理負荷が強いられるという問題点がある。
【００１２】
本発明はかかる事情に鑑みてなされたものであって、歌声や音楽の音響信号を入力として、その音響信号を音高と音価との時系列データとして出力するときにあって、正確な音高および音価を決定できるようにし、また、処理負荷を低減できるようにする新たな音高音価決定技術の提供を目的とする。
【００１３】
さらに具体的に説明するならば、本発明は、音高の抽出前に、まず音響信号のデジタル信号に前処理を行うことにより、時間のかかる周波数解析の要不要を決定することで処理の高速化を図り、また、周波数解析後に得られる各フレームごとのパワー情報などから有音区間／無音区間を的確に判別したり、あるいは各フレームごとのパワーの変化率から的確に発声開始点を検出したりすることで、ある１つの音高が発声されたと考えられる連続有音区間を正しく検出したり、各連続有音区間内に存在するばらつきのある音高情報を、ある１つの音高情報にまとめたりすることにより、良好な音高と音価の時系列情報を生成することができるようにすることを目的とする。
【００１４】
【課題を解決するための手段】
この目的を達成するために、本発明の音高音価決定装置は、歌声や音楽の音響信号を入力として、その入力する音響信号を音高と音価との時系列データとして出力する処理を行うために、『前処理部』と、『周波数解析部』と、『分析区間音高決定部』と、『連続有音区間音高決定部』と、『音高音価出力部』とを備える。
【００１５】
ここで、前処理部は、歌声や音楽の始まる前から周波数分析を行っていたのでは処理負荷が大きくなることを考慮して、デジタル信号に変換された音響信号の波形信号に基づいて、そのデジタル信号から規定の時間単位に従って切り出される分析区間の内の最初に有音となる分析区間を検出して、それよりも時間的に前の分析区間については周波数解析を行わないように制御する処理を行うものであり、必ずしも備える必要はない。
【００１６】
また、連続有音区間音高決定部は、連続有音区間の決定と、その連続有音区間の持つ音高とを決定する処理を行うものであり、「タタタ」のような歌声の音響信号が入力される場合に用いられる構成（以下、第１の構成に従う連続有音区間音高決定部と称することがある）と、歌詞で歌った歌声の音響信号が入力される場合に用いられる構成（以下、第２の構成に従う連続有音区間音高決定部と称することがある）とがある。
【００１７】
（１）前処理部の構成
前処理部は、入力された音響信号のデジタル信号に変換されたものを受け取ると、▲１▼そのデジタル信号を先頭からの順番に従って分析区間を単位として切り出して、その波形信号の前半の値の絶対値の合計または平均値と、後半の値の絶対値の合計または平均値とを算出する手段と、▲２▼その算出した２つの値の差または比率を計算し、その計算値に基づいて、切り出した分析区間が無音であることを判断するときには、その分析区間については周波数解析を行わないように制御するとともに、その分析区間に続く分析区間について上記の算出を行うことを指示する手段とを備えるように構成する。
【００１８】
以上の各処理手段はコンピュータプログラムで実現できるものであり、このコンピュータプログラムは、半導体メモリなどの記録媒体に記録して提供したり、ネットワークを介して提供することができる。
【００１９】
この構成に従って、前処理部は、波形信号を使って、最初に有音となる分析区間を検出して、それよりも時間的に前の分析区間については周波数解析を行わないように制御するので、歌声や音楽の始まる前から無条件に周波数分析を行う構成を採る場合に比べて、その処理負荷を大きく低減できるようになる。
【００２０】
（２）周波数解析部の構成
周波数解析部は、前処理部が設けられるときには前処理部を介して与えられ、前処理部が設けられないときには前処理部を介さずに与えられる、入力された音響信号のデジタル信号に変換されたものを受け取ると、そのデジタル信号にＦＦＴを施すことで、各分析区間ごとに、各周波数成分のパワー値とその分析区間の平均パワー値とを算出する。
【００２１】
この周波数分析を行うにあたって、前処理部を経由して、入力された音響信号のデジタル信号に変換されたものを受け取る場合には、前処理部で周波数解析を行わないように制御された分析区間については、周波数分析を行わないように処理することになる。
【００２２】
（３）分析区間音高決定部の構成
分析区間音高決定部は、周波数解析部の解析結果を受けて、各分析区間の音高を決定する処理を行うものであり、周波数解析部から周波数解析結果を受け取ると、▲１▼周波数解析により得られる各周波数成分のパワー値を低い周波数成分からチェックして、所定の閾値よりも大きく、かつ局所的な最大値を示す周波数成分を探索し、その探索した周波数成分のパワー値とその前後の周波数成分のパワー値とから、所定の補間式に従って、該当の分析区間の基本周波数又はそれに対応付けられる音高番号を推定する手段と、▲２▼その推定した基本周波数よりも大きい周波数成分について上記の探索を行うことで同様の形態を示す周波数又はそれに対応付けられる音高番号を順次得て、その値と推定した値とに従って、推定した値が正規のものであるのか否かを判断して、最終的に正規のものでないと判断するときには、推定した基本周波数を起点として上記の推定をやり直すように指示する手段とを備えるように構成する。
【００２３】
この構成を採るときに、推定する手段は、上記の閾値として、周波数解析により得られる分析区間の平均パワー値を基準にして設定したものを用いることがある。
【００２４】
以上の各処理手段はコンピュータプログラムで実現できるものであり、このコンピュータプログラムは、半導体メモリなどの記録媒体に記録して提供したり、ネットワークを介して提供することができる。
【００２５】
この構成に従って、分析区間音高決定部は、局所的な最大値を示す周波数成分の近傍のパワー値を使って基本周波数（あるいは音高番号）を推定すると、その推定した基本周波数の２倍や３倍といった高次の周波数（あるいは音高番号）のところでも同様に局所的な最大値を示すことを条件にして、推定した基本周波数（あるいは音高番号）を正規のものとして確定するように処理するので、各分析区間の基本周波数（あるいは音高番号）を正確に決定できるようになる。
【００２６】
（４）第１の構成に従う連続有音区間音高決定部の構成
第１の構成に従う連続有音区間音高決定部は、「タタタ」のような歌声の音響信号が入力される場合に用いられて、連続有音区間の決定と、その連続有音区間の持つ音高とを決定する処理を行うものであり、分析区間音高決定部から分析区間ごとの音高の決定されたもの（分析区間ごとの平均パワー値についても周波数解析部により算出されている）を受け取ると、▲１▼各分析区間の平均パワー値を用いて、所定の閾値よりも小さな平均パワー値を持つ分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを修正する手段と、▲２▼その修正により特定される無音の分析区間であるのか有音の分析区間であるのかという情報に基づいて、所定の閾値よりも短い連続有音区間を検出し、その検出した連続有音区間内の全分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを訂正する手段と、▲３▼その訂正により特定される各連続有音区間ごとに、それらの連続有音区間内に出現する音高の出現頻度に従って、それらの連続有音区間の音高を決定する手段とを備えるように構成する。
【００２７】
この構成を採るときにあって、決定する手段は、連続有音区間内に出現する音高の数を音高の高いものから累積加算して、その累積加算値が連続有音区間の持つ分析区間数から設定される閾値に到達する時点の音高を特定して、それを連続有音区間の音高として決定するように処理することがある。
【００２８】
また、修正する手段は、上記の閾値として、周波数解析により得られる各分析区間の平均パワー値から算出されることになる全分析区間の平均パワー値を基準にして設定したものを用いることがある。
【００２９】
以上の各処理手段はコンピュータプログラムで実現できるものであり、このコンピュータプログラムは、半導体メモリなどの記録媒体に記録して提供したり、ネットワークを介して提供することができる。
【００３０】
この構成に従って、第１の構成に従う連続有音区間音高決定部は、「タタタ」のような歌声の音響信号が入力される場合にあって、小さな平均パワー値を持つ分析区間を無音として修正するとともに、それにより特定される連続有音区間の内の短いものについても無音区間として訂正することで連続有音区間を最終的に特定して、その特定した各連続有音区間内に出現する音高の出現頻度に従って、それらの連続有音区間の音高を決定するように処理するので、連続有音区間とそれが持つ音高とを正確に決定できるようになる。
【００３１】
（５）第２の構成に従う連続有音区間音高決定部の構成
第２の構成に従う連続有音区間音高決定部は、通常の歌声の音響信号が入力される場合に用いられて、連続有音区間の決定と、その連続有音区間の持つ音高とを決定する処理を行うものであり、分析区間音高決定部から分析区間ごとの音高の決定されたもの（分析区間ごとの平均パワー値についても周波数解析部により算出されている）を受け取ると、▲１▼各分析区間の平均パワー値を用いて、所定の閾値よりも小さな平均パワー値を持つ分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを修正する手段と、▲２▼その修正により特定される無音の分析区間であるのか有音の分析区間であるのかという情報に基づいて、所定の閾値よりも短い連続有音区間を検出し、その検出した連続有音区間内の全分析区間を無音と決定して、その決定に従って、信号全体に渡って各分析区間の音高と平均パワー値とを訂正する手段と、▲３▼その訂正により特定される有音の各分析区間ごとに、その有音の分析区間の平均パワー値とその前後の分析区間の平均パワー値とに基づいて、その有音の分析区間が発声開始点であるのか否かを判断する手段と、▲４▼その判断した発声開始点の内で次の発声開始点との間にある分析区間数が所定の閾値よりも少ないものを検出し、その時間的に後ろにある発声開始点を非発声開始点として決定して、その決定に従って、信号全体に渡って発声開始点を補正する手段と、▲５▼その補正により特定される発声開始点を起点とする各連続有音区間ごとに、それらの連続有音区間内に出現する音高の出現頻度に従って、それらの連続有音区間の音高を決定する手段とを備えるように構成する。
【００３２】
この構成を採るときにあって、判断する手段は、処理対象の分析区間の平均パワー値を基準にして、直前の分析区間と処理対象の分析区間との間で平均パワー値が規定量以上変化し、かつ、直前の分析区間と直後の分析区間との間で平均パワー値が規定量以上変化する処理対象の分析区間を発声開始点の分析区間であると判断するように処理することがある。
【００３３】
また、決定する手段は、連続有音区間内に出現する音高の数を音高の高いものから累積加算して、その累積加算値が連続有音区間の持つ分析区間数から設定される閾値に到達する時点の音高を特定して、それを連続有音区間の音高として決定するように処理することがある。
【００３４】
また、修正する手段は、上記の閾値として、周波数解析により得られる各分析区間の平均パワー値から算出されることになる全分析区間の平均パワー値を基準にして設定したものを用いることがある。
【００３５】
以上の各処理手段はコンピュータプログラムで実現できるものであり、このコンピュータプログラムは、半導体メモリなどの記録媒体に記録して提供したり、ネットワークを介して提供することができる。
【００３６】
この構成に従って、第２の構成に従う連続有音区間音高決定部は、通常の歌声の音響信号が入力される場合にあって、小さな平均パワー値を持つ分析区間を無音として修正するとともに、それにより特定される連続有音区間の内の短いものについても無音区間として訂正し、さらに、平均パワー値の変化に基づいて決定する発声開始点に従って発声開始点を起点とする連続有音区間を最終的に特定して、その特定した各連続有音区間内に出現する音高の出現頻度に従って、それらの連続有音区間の音高を決定するように処理するので、連続有音区間とそれが持つ音高とを正確に決定できるようになる。
【００３７】
（６）音高音価出力部の構成
音高音価出力部は、連続有音区間音高決定部により得られた音高・分析区間数の情報を音高・音価の情報に変換することで、入力された音響信号についての音高および音価の時系列情報を生成する処理を行うものであり、連続有音区間音高決定部から音高・分析区間数の情報を受け取ると、▲１▼その音高の情報と、その音高の決定元となった連続有音区間の持つ分析区間の数の情報と、外部から与えられるテンポ情報とに基づいて、入力された音響信号についての音高および音価の時系列情報を生成する手段を備えるように構成する。
【００３８】
以上の処理手段はコンピュータプログラムで実現できるものであり、このコンピュータプログラムは、半導体メモリなどの記録媒体に記録して提供したり、ネットワークを介して提供することができる。
【００３９】
この構成に従って、音高音価出力部は、入力された音響信号の楽譜の作成に用いられる音高および音価の時系列情報を出力することができるようになる。
【００４０】
このような構成要件で構成される本発明の音高音価決定装置は、その組み合わせにより様々な形で実現されることになる。
【００４１】
すなわち、
（イ）「前処理部＋周波数解析部＋分析区間音高決定部＋第１の構成に従う連続有音区間音高決定部＋音高音価出力部」
で実現されることもあるし、
（ロ）「前処理部＋周波数解析部＋分析区間音高決定部＋第２の構成に従う連
続有音区間音高決定部＋音高音価出力部」
で実現されることもあるし、
（ハ）「周波数解析部＋分析区間音高決定部＋第１の構成に従う連続有音区間
音高決定部＋音高音価出力部」
で実現されることあるし、
（ニ）「周波数解析部＋分析区間音高決定部＋第２の構成に従う連続有音区間
音高決定部＋音高音価出力部」
で実現されることもある。
【００４２】
このようにして、本発明によれば、人の歌声（タタタ歌いや、歌詞などでの歌唱）や音楽の音響信号を入力として、その入力する音響信号とテンポ情報とから音高および音価を自動的に決定することができるようになる。
【００４３】
そして、本発明によれば、周波数解析前に前処理を施して、時間のかかる周波数解析の要／不要を決定することで、処理の高速化を図ることができるようになる。
【００４４】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
【００４５】
図１に、本発明の音高音価決定装置１の一実施形態例を図示する。
【００４６】
本発明の音高音価決定装置１は、マイク２から入力される歌声の音響信号と、メトロノーム３から入力されるその歌声のテンポ情報とを入力として、その歌声の音高および音価の時系列データを求める処理を行うものであって、この処理を実現するために、Ａ／Ｄ変換部１０と、メモリ部１１と、テンポ情報入力部１２と、前処理部１３と、フレーム音高決定部１４と、有音／無音判定部１５と、第１の音高／音長決定部１６と、第２の音高／音長決定部１７と、選択部１８と、音高／音長整形部１９と、出力ファイル２０とを備える。
【００４７】
このＡ／Ｄ変換部１０は、マイク２により検出された歌唱やハミングの音響信号をデジタル信号に変換する。メモリ部１１は、デジタル信号に変換された処理対象の音響信号を一時的に格納する。テンポ情報入力部１２は、メトロノーム３から歌唱やハミングのテンポ情報を受け取る。
【００４８】
前処理部１３は、変換されたデジタル信号を使って所定の前処理を行う。この前処理は高速化を実現するために用意されており、この前処理を実施してもしなくても処理の正確さには影響を与えない。
【００４９】
フレーム音高決定部１４は、前処理部１３を経由して与えられる音響信号のデジタル信号、あるいは前処理部１３を経由しないで与えられる音響信号のデジタル信号を入力として、例えば２０ｍｓという時間長さで切り出されるフレームを単位として周波数分析を行うことで、各フレームごとの音高情報（基本周波数）およびパワー情報を算出する。このフレーム音高決定部１４による処理は、分析周期を少しずつずらしながらオーバーラップする形で、処理すべきデジタル信号（音響信号）がなくなるまで繰り返される。
【００５０】
有音／無音判定部１５は、フレーム音高決定部１４で得られたフレームごとの平均パワー情報を用いて、パワーの弱いフレームを無音と判定したり、有音と判定されるもののフレーム数が所定数連続していないことで、人の発声としては短すぎて有音と判断できないフレームを無音と判定する。
【００５１】
第１の音高／音長決定部１６は、「タタタ」で歌った場合に動作して、有音／無音判定部１５で得られた無音フレーム情報を用いて、無音フレームで囲まれた連続する有音区間を１回の発声として、その区間の有音フレームの数を数えるとともに、その区間に１つの音高を同定する。
【００５２】
第２の音高／音長決定部１７は、通常の歌詞などで歌った場合に動作して、有音／無音判定部１５で得られた無音フレーム情報に加えて、各フレームのパワーの変化率を利用して発声の開始点のフレームを検出し、無音フレームあるいは発声開始フレームで囲まれた連続する有音区間を１回の発声として、その区間の有音フレームの数を数えるとともに、その区間に１つの音高を同定する。
【００５３】
選択部１８は、外部から与えられる選択信号に従って、第１の音高／音長決定部１６を動作させるのか、第２の音高／音長決定部１７を動作させるのかを選択する。
【００５４】
音高／音長整形部１９は、第１の音高／音長決定部１６あるいは第２の音高／音長決定部１７で得られた連続有音フレーム数情報およびその連続有音区間の音高情報と、テンポ情報入力部１２が入力したテンポ情報とを用いて、連続有音フレーム数とテンポとから音価を決定し、最終的に音高／音価の時系列情報を作成して出力ファイル２０に出力する。
【００５５】
図２ないし図４に、前処理部１３およびフレーム音高決定部１４の実行する処理フローの一実施形態例を図示し、図５および図６に、有音／無音判定部１５および第１の音高／音長決定部１６の実行する処理フローの一実施形態例を図示し、図７ないし図９に、有音／無音判定部１５および第２の音高／音長決定部１７の実行する処理フローの一実施形態例を図示し、図１０に、音高／音長整形部１９の実行する処理フローの一実施形態例を図示する。
【００５６】
次に、これらの処理フローに従って、本発明の音高音価決定装置１の実行する処理について詳細に説明する。
【００５７】
先ず最初に、図２ないし図４に示す処理フローに従って、前処理部１３およびフレーム音高決定部１４の実行する処理について説明する。
【００５８】
本発明の音高音価決定装置１は、前処理およびフレーム音高決定処理に入ると、図２ないし図４の処理フローに示すように、先ず最初に、ステップ１０で、分析対象最小周波数成分（ｍｉｎ−ｆｒｅｑ）と分析対象最大周波数成分（ｍａｘ−ｆｒｅｑ）とを設定するとともに、ピッチ抽出フラグをＯＦＦにセットし、さらに、最終フレームフラグに０をセットする。
【００５９】
なお、ｍｉｎ−ｆｒｅｑ〜ｍａｘ−ｆｒｅｑという周波数範囲は基本周波数について設定されるものであり、２倍の高調波については、２×ｍｉｎ−ｆｒｅｑ〜２×ｍａｘ−ｆｒｅｑという周波数範囲が設定されることになる。
【００６０】
続いて、ステップ１１で、最終フレームフラグに１が立っているのか否かを判断して、最終フレームフラグに１が立っていることを判断するときには、処理を終了し、最終フレームフラグに１が立っていないことを判断するときには、ステップ１２に進んで、規定のシフト分ずらしたところから、未処理のデータ（入力された音響信号のデジタル変換されたもの）を１フレーム分読み込む。
【００６１】
ここで、規定のシフト分ずらした形で１フレーム分読み込むのは、フレームをオーバーラップした形で処理するようにしているからである。
【００６２】
続いて、ステップ１３で、１フレームの信号を得られたのか否かを判断して、１フレームの信号を得られない場合には、読み込んだフレームが最終フレームであることを意味しているので、ステップ１４に進んで、最終フレームフラグに１を立て、一方、１フレームの信号を得られた場合には、この処理を省略する。
【００６３】
続いて、ステップ１５で、ピッチ抽出フラグにＯＮがセットされているのか否かを判断して、ピッチ抽出フラグにＯＮがセットされていないことを判断するときには、ステップ１６に進んで、フレーム前半の信号の値の絶対値の平均と、フレーム後半の信号の値の絶対値の平均の値とに大きな差があるのか否かを判断することで、有音のフレームであるのか否かを判断する。
【００６４】
ここで、前半の波形信号の振幅の絶対値の合計と後半の波形信号の振幅の絶対値の合計とを比較してもよい。また、大きな差として、例えば、「振幅の絶対値の合計の比が５．０以上」などを指定することができる。
【００６５】
この判断処理により、フレームの前半と後半との間に差がないことを判断するときには、このフレームは無音フレームであると判断して、ステップ１７に進んで、このフレームのピッチ情報に−１、パワー情報に０をセットしてから、ステップ１８に進んで、次のフレームへ処理を進めて、ステップ１１に戻る。
【００６６】
ピッチ情報には、ＭＩＤＩ規格を用いる場合には０〜１２７の間にある音高番号がセットされることになるが、無音フレームであることで音高情報がないので、ステップ１７では、その旨を示す−１をセットするのである。
【００６７】
このようにしてステップ１１〜ステップ１８の処理を繰り返していく内に、ステップ１６で、フレームの前半と後半との間に差があるフレームを読み込んだことを判断するとき、すなわち、有音のフレームを読み込んだことを判断するときには、ステップ１９に進んで、ピッチ抽出フラグにＯＮをセットしてから、ステップ２０に進んで、フレームの両端部分の波形を変形するという処理を行う窓掛けの処理を行う。
【００６８】
ここで、ピッチ抽出フラグにＯＮをセットする時点に読み込んだ有音のフレームは、フレームの読み込みを開始してから最初に出現する有音のフレームであり、このフレーム以降に読み込むフレームについては、ステップ１５で、ピッチ抽出フラグにＯＮがセットされていることを判断することになるので、そのときには、直ちにステップ２０に進んで窓掛けの処理を行うことになる。
【００６９】
続いて、ステップ２１で、読み込んだフレームに対してＦＦＴを施し、続くステップ２２で、その演算結果に基づいて、各周波数成分のパワー値と、そのフレーム内での平均パワー値（ａｖｒ−ｐｏｗｅｒ）とを算出する。
【００７０】
続いて、ステップ２３で、ピッチ情報の値に対応付けられる変数ｉに分析対象最小周波数成分（ｍｉｎ−ｆｒｅｑ）をセットし、続くステップ２４で、変数ｉの値が分析対象最大周波数成分（ｍａｘ−ｆｒｅｑ）よりも大きくなったのか否かを判断する。
【００７１】
この判断処理により、変数ｉの値が“ｍａｘ−ｆｒｅｑ”よりも小さいことを判断するときには、ステップ２７に進んで、ｉ番目の周波数成分のパワー値が局所的最大値を示し、かつ上述のａｖｒ−ｐｏｗｅｒ　のｘ倍（例えば０．８倍）以上であるのか否かを判断して、そうでない場合には、ステップ２８に進んで、変数ｉの値を１つインクリメントしてから、ステップ２４に戻る。
【００７２】
このようにしてステップ２４／ステップ２７／ステップ２８の処理を繰り返していく内に、ステップ２７で、ｉ番目の周波数成分のパワー値が局所的最大値を示し、かつ上述のａｖｒ−ｐｏｗｅｒ　のｘ倍以上であることを判断するとき、すなわち、読み込んだフレームの基本周波数と思われる周波数成分を検出したことを判断するときには、ステップ２９に進んで、ｉ番目の周波数成分のパワー値と、（ｉ−１）番目の周波数成分のパワー値と、（ｉ＋１）番目の周波数成分のパワー値とから、例えば下記に示す補間式に従って、ｉ番目の周波数成分の代表周波数を算出して、それに対応付けられる音高番号（ＲＯ）を算出する。
【００７３】
すなわち、ｉ番目の周波数成分のパワー値をＰｉ　、（ｉ−１）番目の周波数成分のパワー値をＰｉ−１　、（ｉ＋１）番目の周波数成分のパワー値をＰｉ＋１　で表すならば、
（ｉ）Ｐｉ−１　＜Ｐｉ＋１　の場合
ＲＯ＝ｉ＋０．５×〔（Ｐｉ＋１　−Ｐｉ−１　）／（Ｐｉ　−Ｐｉ−１　）〕
（ｉｉ）Ｐｉ−１　≧Ｐｉ＋１　の場合
ＲＯ＝ｉ＋０．５×〔（Ｐｉ＋１　−Ｐｉ−１　）／（Ｐｉ　−Ｐｉ＋１　）〕
という補間式に従って、ｉ番目の周波数成分の代表周波数に対応付けられる音高番号（ＲＯ）を算出するのである。
【００７４】
続いて、ステップ３０で、ピッチ情報の値に対応付けられる変数ｊの値としてｉをセットし、続くステップ３１で、変数ｊの値が“２×ｍａｘ−ｆｒｅｑ”よりも大きくなったのか否かを判断する。
【００７５】
この判断処理により、変数ｊの値が“２×ｍａｘ−ｆｒｅｑ”よりも小さいことを判断するときには、ステップ３３に進んで、ｊ番目の周波数成分のパワー値が局所的最大値を示し、かつ上述のａｖｒ−ｐｏｗｅｒ　のｙ倍（例えば０．８倍）以上であるのか否かを判断して、そうでない場合には、ステップ３４に進んで、変数ｊの値を１つインクリメントしてから、ステップ３１に戻る。
【００７６】
このようにしてステップ３１／ステップ３３／ステップ３４の処理を繰り返していく内に、ステップ３３で、ｊ番目の周波数成分のパワー値が局所的最大値を示し、かつ上述のａｖｒ−ｐｏｗｅｒ　のｙ倍以上であることを判断するとき、すなわち、読み込んだフレームの基本周波数の２倍の周波数の可能性のある周波数成分を検出したことを判断するときには、ステップ３５に進んで、ｊ番目の周波数成分のパワー値と、（ｊ−１）番目の周波数成分のパワー値と、（ｊ＋１）番目の周波数成分のパワー値とから、例えば上記に示す補間式に従って、ｊ番目の周波数成分の代表周波数を算出して、それに対応付けられる音高番号（ＮＯ）を算出する。
【００７７】
続いて、ステップ３６で、ステップ３５で算出した音高番号（ＮＯ）がステップ２９で算出した音高番号（ＲＯ）のほぼ２倍となっているのか否かを判断して、ほぼ２倍となっていないことを判断するときには、ステップ３７に進んで、変数ｊの値を１つインクリメントしてから、ステップ３１に戻る。
【００７８】
このようにして、ステップ３１／ステップ３３〜ステップ３７の処理を繰り返していくことで、ステップ３６で、ステップ２９で算出した音高番号（ＲＯ）のほぼ２倍となる音高番号（ＮＯ）が得られたのか否かをチェックしていくことになる。
【００７９】
そして、このチェックを続けていくときに、ステップ３１で、変数ｊの値が“２×ｍａｘ−ｆｒｅｑ”よりも大きくなったことを判断することで、ステップ２９で算出した音高番号（ＲＯ）のほぼ２倍となる音高番号（ＮＯ）が得られないことを判断するときには、ステップ２９で算出した音高番号（ＲＯ）が基本周波数に対応付けられるものではないことを判断して、ステップ３２に進んで、変数ｉの値を１つインクリメントしてから、ステップ２４に戻ることで、そのインクリメントした変数ｉの指す周波数成分を起点として、ステップ２９で算出する音高番号（ＲＯ）の算出処理をやり直していくことになる。
【００８０】
一方、ステップ３６で、ステップ２９で算出した音高番号（ＲＯ）のほぼ２倍となる音高番号（ＮＯ）が得られたことを判断するときには、ステップ３８に進んで、変数ｉの値として、分析対象最大周波数成分（ｍａｘ−ｆｒｅｑ）よりも１つ大きな値となる“ｍａｘ−ｆｒｅｑ＋１”をセットしてから、ステップ２４に戻る。
【００８１】
このようにして、ステップ３８を経由してステップ２４に戻ると、ステップ２４で、変数ｉの値が分析対象最大周波数成分（ｍａｘ−ｆｒｅｑ）よりも大きくなったことを判断することになるので、このときには、ステップ２９で算出した音高番号（ＲＯ）が読み込んだフレームの基本周波数に対応付けられていることを判断して、ステップ２５に進んで、このフレームの音高番号（ＲＯ）を保存してから、ステップ２６に進んで、次のフレームへ処理を進めて、ステップ１１に戻る。
【００８２】
このようにして、本発明の音高音価決定装置１は、前処理およびフレーム音高決定処理に入ると、図２ないし図４の処理フローを実行することで、最初に有音となるフレームよりも時間的に前のフレームについては周波数解析を行わないように制御しつつ、各フレームの周波数解析結果から、各フレームについて、局所的な最大値を示し、かつ２倍の周波数のところでも局所的な最大値を示す周波数を検出することで、各フレームの基本周波数（あるいは音高番号）を検出するように処理するのである。
【００８３】
ここで、この図２ないし図４の処理フローでは、局所的な最大値を示す周波数を基本周波数の可能性を持つ周波数として検出すると、２倍の周波数のところでも局所的な最大値を示すのか否かをチェックすることにより、その推定した基本周波数が本来の基本周波数であるのか否かを確定するようにするという構成を採ったが、さらに高次の周波数のところでも局所的な最大値を示すのか否かをチェックすることにより、その推定した基本周波数が本来の基本周波数であるのか否かを確定するようにするという構成を採ってもよく、このような構成を採ると、基本周波数を高精度に決定できるようになる。
【００８４】
次に、図５および図６に示す処理フローに従って、有音／無音判定部１５および第１の音高／音長決定部１６の実行する処理について詳細に説明する。
【００８５】
本発明の音高音価決定装置１は、有音／無音判定処理および第１の音高／音長決定処理に入ると、図５および図６の処理フローに示すように、先ず最初に、ステップ１００で、周波数解析により求められている各フレーム内での平均パワー値を用いて、全フレームの平均パワー値を算出する。
【００８６】
続いて、ステップ１０１で、先頭からの順番に従ってフレームを１つ取り出し、続くステップ１０２で、全フレームを処理したのか否かを判断して、全フレームを処理していないことを判断するときには、ステップ１０３に進んで、取り出したフレームの平均パワー値がステップ１００で算出した平均パワー値のｘ倍（例えば０．１５倍）以下であるのか否かを判断する。
【００８７】
この判断処理により、取り出したフレームの平均パワー値がステップ１００で算出した平均パワー値のｘ倍よりも小さいことを判断するときには、ステップ１０４に進んで、取り出したフレームを無音フレームと決定してから、ステップ１０１に戻り、一方、ステップ１００で算出した平均パワー値のｘ倍よりも大きいことを判断するときには、ステップ１０５に進んで、取り出したフレームを有音フレームと決定してから、ステップ１０１に戻る。
【００８８】
このようにして、ステップ１０１〜ステップ１０５を繰り返していくことで、ステップ１０２で、全フレームについて無音であるのか有音であるのかを決定したことを判断すると、ステップ１０６に進んで、最初のフレームに戻り、続くステップ１０７で、最小連続有音フレーム数を設定する。
【００８９】
例えば、最小連続有音フレーム数として３を設定するのである。なお、人は１秒間に約１１回程度発声できるので、この値とフレームのシフト幅とから最小連続有音フレーム数を決定するようにしてもよい。
【００９０】
続いて、ステップ１０８で、先頭からの順番に従ってフレームを１つ取り出し、続くステップ１０９で、全フレームを処理したのか否かを判断して、全フレームを処理していないことを判断するときには、ステップ１１０に進んで、取り出したフレームが有音フレームであるのか否かを判断する。
【００９１】
すなわち、ステップ１０４／ステップ１０５の処理に従って、無音フレームであるのか有音フレームであるのかが決定されているので、それに従って、取り出したフレームが有音フレームであるのか否かを判断するのである。
【００９２】
この判断処理により、取り出したフレームが有音フレームではないことを判断するときには、ステップ１０８に戻る。
【００９３】
一方、この判断処理により、取り出したフレームが有音フレームであることを判断するときには、ステップ１１１に進んで、この先、有音フレームが最小連続有音フレーム数以上続くのか否かを判断して、続かないことを判断するときには、ステップ１１２に進んで、次の無音フレームの直前までの有音フレームを全て無音とする。そして、続くステップ１１３で、次の無音フレームまで移動してから、ステップ１０８に戻る。
【００９４】
一方、ステップ１１１で、この先、有音フレームが最小連続有音フレーム数以上続くことを判断するときには、ステップ１１２の処理を省略して、ステップ１１３に進んで、次の無音フレームまで移動してから、ステップ１０８に戻る。
【００９５】
このようにして、ステップ１０８〜ステップ１１３の処理を繰り返していくことで、ステップ１０９で、最小連続有音フレーム数よりも短い連続有音フレームについて、それを無音フレームと変更する処理を終了したことを判断すると、ステップ１１４に進んで、最初のフレームに戻り、続くステップ１１５で、先頭からの順番に従ってフレームを１つ取り出す。
【００９６】
続いて、ステップ１１６で、全フレームを処理したのか否かを判断して、全フレームを処理していないことを判断するときには、ステップ１１７に進んで、取り出したフレームが有音フレームであるのか否かを判断する。
【００９７】
すなわち、ステップ１０４／ステップ１０５およびステップ１１１／ステップ１１２の処理に従って、無音フレームであるのか有音フレームであるのかが決定されているので、それに従って、取り出したフレームが有音フレームであるのか否かを判断するのである。
【００９８】
この判断処理により、取り出したフレームが有音フレームでないことを判断するときには、ステップ１１５に戻る。
【００９９】
一方、この判断処理により、取り出したフレームが有音フレームであることを判断するときには、ステップ１１８に進んで、次の無音フレームの直前の有音フレームまで、どの音高が何フレーム出ているかをカウントするとともに、この区間に存在するフレーム数を連続有音フレーム数として保存する。
【０１００】
続いて、ステップ１１９で、高い音高から低い音高に向って、各音高の出力フレーム数を累積加算し、その合計が連続有音フレーム数のｙ％（例えば５０％）を越えたとき、その越えた時点の音高をその連続有音フレームの音高として決定して保存するとともに、有音開始フレーム番号と有音終了フレーム番号とについても保存する。
【０１０１】
例えば、２０フレーム数からなる連続有音フレームであるときにあって、▲１▼音高番号が８０のフレームが１つあり、▲２▼音高番号が７９のフレームが２つあり、▲３▼音高番号が７８のフレームが１つあり、▲４▼音高番号が７７のフレームが１つあり、▲５▼音高番号が６８のフレームが２つあり、▲６▼音高番号が６７のフレームが５つあり、▲７▼音高番号が６６のフレームが３つあり、▲８▼音高番号が６５のフレームが５つある場合には、「１」、「１＋２＝３」、「１＋２＋１＝４」、「１＋２＋１＋１＝５」、「１＋２＋１＋１＋２＝７」、「１＋２＋１＋１＋２＋５＝１２」と累積加算することにより、５０％に対応する１０フレーム数を越える６７という音高番号をその連続有音フレームの音高として決定するのである。
【０１０２】
そして、続くステップ１２０で、次の無音フレームまで移動してから、ステップ１１５に戻る。
【０１０３】
このようにして、ステップ１１５〜ステップ１２０の処理を繰り返していくことで、ステップ１１６で、連続有音フレームについて、有音開始フレーム番号、有音終了フレーム番号、音高、連続有音フレーム数を決定する処理を終了したことを判断すると、ステップ１２１に進んで、それらの情報を出力して、処理を終了する。
【０１０４】
このようにして、本発明の音高音価決定装置１は、有音／無音判定処理および第１の音高／音長決定処理に入ると、図５および図６の処理フローを実行することで、小さな平均パワー値を持つフレームを無音として修正するとともに、それにより特定される連続有音フレームの内の短いものについても無音フレームが連続したものとして訂正することで連続有音フレームを最終的に特定して、その特定した各連続有音フレーム内に出現する音高の出現頻度に従って、それらの連続有音フレームの音高を決定することで、各連続有音フレームについて、有音開始フレーム番号、有音終了フレーム番号、音高、連続有音フレーム数を決定するように処理するのである。
【０１０５】
次に、図７ないし図９に示す処理フローに従って、有音／無音判定部１５および第２の音高／音長決定部１７の実行する処理について説明する。
【０１０６】
本発明の音高音価決定装置１は、有音／無音判定処理および第２の音高／音長決定処理に入ると、図７ないし図９の処理フローに示すように、ステップ２００〜ステップ２１３で、上述した図５および図６の処理フローのステップ１００〜ステップ１１３と同様の処理を実行することで、全フレームについて無音であるのか有音であるのかを決定して、その決定に基づいて、最小連続有音フレーム数よりも短い連続有音フレームについて、それを無音フレームと変更する処理を実行する。
【０１０７】
続いて、ステップ２１４で、最初のフレームに戻り、続くステップ２１５で、先頭からの順番に従ってフレームを１つ取り出す。
【０１０８】
続いて、ステップ２１６で、全フレームを処理したのか否かを判断して、全フレームを処理していないことを判断するときには、ステップ２１７に進んで、取り出したフレームが有音フレームで、さらに次のフレームも有音フレームであるのか否かを判断する。
【０１０９】
すなわち、ステップ２０４／ステップ２０５の処理に従って、無音フレームであるのか有音フレームであるのかが決定されているので、それに従って、取り出したフレームが有音フレームであるのか否かを判断するのである。
【０１１０】
この判断処理により、取り出したフレームが有音フレームで、さらに次のフレームも有音フレームであることを判断するときには、ステップ２１８に進んで、前フレームと現フレームとの平均パワー値の差が現フレームの平均パワー値のｐ倍（例えば０．１倍）以上で、さらに次のフレームと前のフレームとの平均パワー値の差が現フレームの平均パワーのｑ倍（ｐ≦ｑであることが好ましく、例えば０．２倍）以上であるのか否かを判断して、そのような平均パワー値の変化がある場合には、ステップ２１９に進んで、取り出したフレームを発声開始フレームであると判断して、ＶＯＩＣＥフラグを立ててから、ステップ２１５に戻る。
【０１１１】
一方、ステップ２１７で、取り出したフレームが有音フレームで、さらに次のフレームも有音フレームであるという条件を充足しないことを判断するときには、そのままステップ２１５に戻り、そして、ステップ２１８で、上述したような平均パワー値の変化がない場合にも、そのままステップ２１５に戻る。
【０１１２】
このようにしてステップ２１５〜ステップ２１９の処理を繰り返していくことで、ステップ２１６で、ＶＯＩＣＥフラグを立てる処理を終了したことを判断すると、ステップ２２０に進んで、最初のフレームに戻り、続くステップ２２１で、最短発声フレーム数を設定する。
【０１１３】
ここで、最短発声フレーム数とは、ある発声開始フレームから次に発声開始フラグを立てられる最短の（最小の）フレーム数のことであり、例えば３などを使うことができる。
【０１１４】
続いて、ステップ２２２で、先頭からの順番に従ってフレームを１つ取り出し、続くステップ２２３で、全フレームについて処理を終了したのか否かを判断して、全フレームについて処理を終了していないことを判断するときには、ステップ２２４に進んで、取り出したフレームにＶＯＩＣＥフラグが立っているのか否かを判断する。
【０１１５】
この判断処理により、取り出したフレームにＶＯＩＣＥフラグが立っていないことを判断するときには、ステップ２２２に戻り、一方、ＶＯＩＣＥフラグが立っていることを判断するときには、ステップ２２５に進んで、取り出したフレームから最短発声フレーム数先のフレームまでの間に、ＶＯＩＣＥフラグが立っているフレームはあるのか否かを判断する。
【０１１６】
この判断処理により、取り出したフレームから最短発声フレーム数先のフレームまでの間に、ＶＯＩＣＥフラグが立っているフレームがあることを判断するときには、ステップ２２６に進んで、ＶＯＩＣＥフラグが立っているフレームのフラグを落としてから、続くステップ２２７で、次のフレームに移動して、ステップ２２２に戻る。
【０１１７】
一方、ステップ２２５で、取り出したフレームから最短発声フレーム数先のフレームまでの間に、ＶＯＩＣＥフラグが立っているフレームがないことを判断するときには、ステップ２２６の処理を省略して、直ちにステップ２２７に進んで、次のフレームに移動して、ステップ２２２に戻る。
【０１１８】
このようにして、ステップ２２２〜ステップ２２７の処理を繰り返していく内に、ステップ２２３で、最短発声フレーム数よりも短いフレームに立つＶＯＩＣＥフラグを落とす処理を終了したことを判断すると、ステップ２２８に進んで、最初のフレームに戻り、続くステップ２２９で、先頭からの順番に従ってフレームを１つ取り出す。
【０１１９】
続いて、ステップ２３０で、全フレームを処理したのか否かを判断して、全フレームを処理していないことを判断するときには、ステップ２３１に進んで、取り出したフレームにＶＯＩＣＥフラグが立っているのか否かを判断する。
【０１２０】
この判断処理により、取り出したフレームにＶＯＩＣＥフラグが立っていないことを判断するときには、ステップ２２９に戻る。
【０１２１】
一方、この判断処理により、取り出したフレームにＶＯＩＣＥフラグが立っていることを判断するときには、ステップ２３２に進んで、次の無音フレームまたはＶＯＩＣＥフラグの立っているフレームの直前のフレームまで、どの音高が何フレーム出ているかをカウントするとともに、この区間に存在するフレーム数を、連続有音フレーム数として保存する。
【０１２２】
続いて、ステップ２３３で、高い音高から低い音高に向って、各音高の出力フレーム数を累積加算し、その合計が連続有音フレーム数のｙ％（例えば５０％）を越えたとき、その越えた時点の音高をその連続有音フレームの音高として決定して保存するとともに、有音開始フレーム番号と有音終了フレーム番号とについても保存する。
【０１２３】
例えば、２０フレーム数からなる連続有音フレームであるときにあって、▲１▼音高番号が８０のフレームが１つあり、▲２▼音高番号が７９のフレームが２つあり、▲３▼音高番号が７８のフレームが１つあり、▲４▼音高番号が７７のフレームが１つあり、▲５▼音高番号が６８のフレームが２つあり、▲６▼音高番号が６７のフレームが５つあり、▲７▼音高番号が６６のフレームが３つあり、▲８▼音高番号が６５のフレームが５つある場合には、「１」、「１＋２＝３」、「１＋２＋１＝４」、「１＋２＋１＋１＝５」、「１＋２＋１＋１＋２＝７」、「１＋２＋１＋１＋２＋５＝１２」と累積加算することにより、５０％に対応する１０フレーム数を越える６７という音高番号をその連続有音フレームの音高として決定するのである。
【０１２４】
そして、続くステップ２３４で、次のＶＯＩＣＥフラグが立っているフレームまで移動してから、ステップ２２９に戻る。
【０１２５】
このようにして、ステップ２２９〜ステップ２３４の処理を繰り返していくことで、ステップ２３０で、連続有音フレームについて、有音開始フレーム番号、有音終了フレーム番号、音高、連続有音フレーム数を決定する処理を終了したことを判断すると、ステップ２３５に進んで、それらの情報を出力して、処理を終了する。
【０１２６】
このようにして、本発明の音高音価決定装置１は、有音／無音判定処理および第２の音高／音長決定処理に入ると、図７ないし図９の処理フローを実行することで、小さな平均パワー値を持つフレームを無音として修正するとともに、それにより特定される連続有音フレームの内の短いものについても無音フレームが連続したものとして訂正し、さらに、平均パワー値の変化に基づいて決定する発声開始フレームに従って発声開始フレームを起点とする連続有音フレームを最終的に特定して、その特定した各連続有音フレーム内に出現する音高の出現頻度に従って、それらの連続有音フレームの音高を決定することで、各連続有音フレームについて、有音開始フレーム番号、有音終了フレーム番号、音高、連続有音フレーム数を決定するように処理するのである。
【０１２７】
次に、図１０に示す処理フローに従って、音高／音長整形部１９の実行する処理について説明する。
【０１２８】
本発明の音高音価決定装置１は、音高／音長整形処理に入ると、図１０の処理フローに示すように、先ず最初に、ステップ３００で、テンポ情報を入力する。続いて、ステップ３０１で、テンポ情報を元に、１フレーム当りのタイムユニット（音価に相当するもの）を算出する
なお、このタイムユニットとしてＭＩＤＩのティックタイムなどを使用することもできる。
【０１２９】
続いて、ステップ３０２で、有音開始フレーム番号、有音終了フレーム番号、音高のデータを１組取り出し、続くステップ３０３で、最後の組のデータまで処理したのか否かを判断する。
【０１３０】
この判断処理により、最後の組のデータまで処理していないことを判断するときには、ステップ３０４に進んで、有音開始フレーム番号と有音終了フレーム番号とからその音高が出力されるべきタイムユニットを算出して、出力ファイル２０に出力してから、ステップ３０２に戻る。
【０１３１】
そして、ステップ３０３で、最後の組のデータまで処理したことを判断するときには、処理を終了する。
【０１３２】
このようにして、本発明の音高音価決定装置１は、音高／音長整形処理に入ると、図１０の処理フローを実行することで、入力された音響信号の楽譜の作成に用いられる音高および音価の時系列情報を出力するように処理するのである。
【０１３３】
【発明の効果】
以上説明したように、本発明は、人の歌声（タタタ歌いや、歌詞などでの歌唱）や音楽の音響信号を入力として、その入力する音響信号とテンポ情報とから音高および音価を自動的に決定する処理を行うときにあって、音高の抽出前に、まず音響信号のデジタル信号に前処理を行うことにより、時間のかかる周波数解析の要不要を決定することで処理の高速化を図ることができるようになる。
【０１３４】
そして、本発明は、周波数解析後に得られる各フレームごとのパワー情報などから有音区間／無音区間を的確に判別したり、あるいは各フレームごとのパワーの変化率から的確に発声開始点を検出したりすることで、ある１つの音高が発声されたと考えられる連続有音区間を正しく検出したり、各連続有音区間内に存在するばらつきのある音高情報を、ある１つの音高情報にまとめたりすることにより、良好な音高と音価の時系列情報を生成することができるようになる。
【０１３５】
このようにして、本発明によれば、人の歌声（タタタ歌いや、歌詞などでの歌唱）や音楽の音響信号を入力として、その入力する音響信号とテンポ情報とから音高および音価を高精度に決定することができるようになる。
【０１３６】
そして、本発明によれば、周波数解析前に前処理を施して、時間のかかる周波数解析の要／不要を決定することで、処理の高速化を図ることができるようになる。
【図面の簡単な説明】
【図１】本発明の音高音価決定装置の一実施形態例である。
【図２】前処理部およびフレーム音高決定部の実行する処理フローの一実施形態例である。
【図３】前処理部およびフレーム音高決定部の実行する処理フローの一実施形態例である。
【図４】前処理部およびフレーム音高決定部の実行する処理フローの一実施形態例である。
【図５】有音／無音判定部および第１の音高／音長決定部の実行する処理フローの一実施形態例である。
【図６】有音／無音判定部および第１の音高／音長決定部の実行する処理フローの一実施形態例である。
【図７】有音／無音判定部および第２の音高／音長決定部の実行する処理フローの一実施形態例である。
【図８】有音／無音判定部および第２の音高／音長決定部の実行する処理フローの一実施形態例である。
【図９】有音／無音判定部および第２の音高／音長決定部の実行する処理フローの一実施形態例である。
【図１０】音高／音長整形部の実行する処理フローの一実施形態例である。
【符号の説明】
１　　音高音価決定装置
２　　マイク
３　　メトロノーム
１０　Ａ／Ｄ変換部
１１　メモリ部
１２　テンポ情報入力部
１３　前処理部
１４　フレーム音高決定部
１５　有音／無音判定部
１６　第１の音高／音長決定部
１７　第２の音高／音長決定部
１８　選択部
１９　音高／音長整形部
２０　出力ファイル
【図１】
2004145154.tif 000003
【図２】
2004145154.tif 000004
【図３】
2004145154.tif 000005
【図４】
2004145154.tif 000006
【図５】
2004145154.tif 000007
【図６】
2004145154.tif 000008
【図７】
2004145154.tif 000009
【図８】
2004145154.tif 000010
【図９】
2004145154.tif 000011
【図１０】
2004145154.tif 000012