(57)【要約】【課題】音声信号のピッチを正確に検出する方法を提供する。【解決手段】ＢＰＦ５０、５１、…５２に対して並列的に所定数個のサンプリングデータを供給し、各バンドパスフィルタからの出力の最大値の対数値を求める。次いで、ＢＰＦの数だけ求められた対数値を参照して、中心周波数が最も低く設定されているＢＰＦ５０に対する対数値から順に見て、対数値の極小値と極大値との差が最も大きくなる対数値に対応するバンドパスフィルタを決定する。そして、このバンドパスフィルタに前記所定数個のサンプリングデータを供給した時に出力されたフィルタ出力データから全波整流波形を生成し、この全波整流波形のピーク値の正規化標準偏差を求め、これがしきい値ＴＨ以下の場合には、フィルタ出力データが零となる周期からピッチを求める。【選択図】  図１  
2005055612.tif 000002
【特許請求の範囲】
【請求項１】
音声信号のピッチを検出する方法であって、
ピッチ検出に関する処理を行う処理部が、
夫々の中心周波数が所定の関係を満たすようにして順次高くなるように設定されている複数のバンドパスフィルタの夫々に対して並列的に所定数個のサンプリングデータを供給する第１の工程と、
各バンドパスフィルタからの出力の最大値の対数値を求める第２の工程と、
前記バンドフィルタの数だけ求められた対数値を参照して、中心周波数が最も低く設定されているバンドパスフィルタに対する対数値から順に見て、対数値の極小値と極大値との差が最も大きくなる対数値に対応するバンドパスフィルタを決定する第３の工程と、
このバンドパスフィルタに前記所定数個のサンプリングデータを供給した時に出力されたフィルタ出力データから全波整流波形を生成する第４の工程と、
この全波整流波形において上に凸の部分（ピーク部）の値であるピーク値の標準偏差を求め、この標準偏差をピーク値の平均値で除算した正規化標準偏差を求める第５の工程と、
この正規化標準偏差が所定しきい値以下の場合には、前記フィルタ出力データが零となる周期からピッチを求める第６の工程と、を含む処理を実行することを特徴とするピッチ検出方法。
【請求項２】
請求項１に記載のピッチ検出方法において、
前記処理部は、
前記正規化標準偏差が所定値以下でない場合には、次の所定数個のサンプリングデータを用いて、前記第１、第２、第３、第４、第５の工程を繰り返して、新たな正規化標準偏差を求める工程と、
この新たな正規化標準偏差が前記所定しきい値以下となった場合には、前記繰り返された第３の工程で決定されたバンドパスフィルタに対して、既に前回の第１の工程によって当該バンドパスフィルタから出力されたフィルタ出力データが零となる周期からピッチを求める工程と、を含む処理を更に実行することを特徴とするピッチ検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声信号のピッチを検出する方法に関する。
【背景技術】
【０００２】
音声信号のピッチ（基音の周波数）を検出する手法は、従来より、様々なものが提案されている（例えば、特許文献１参照）。例えば、音声信号の相関を求めることなく少ない演算量でピッチ検出を行う手法として以下のものが提案されていた。先ず、音声信号をローパスフィルタに供給し、このローパスフイルタからのフィルタ出力を単位時間毎に切り出し、次いで、ローカルマキシマム（極大点）とローカルミニマム（極小点）を抽出し、ローカルマキシマムに対して正の符号を付加する一方、ローカルミニマムに対しては負の符号を付加する。さらに、正の符号を付加されたローカルマキシムと負の符号を付加されたローカルミニマムの二者を用いて、それぞれの時間間隔を求め、それぞれ求めた時間間隔からヒストグラムを作成し、ヒストグラムの最頻値からピッチ周期を決定する。ピッチが正確に検出できると、ピッチシフトやタイムストレッチ等の処理を正確に実行することができ、各種の音楽用装置等への応用が可能になる。
【０００３】
【特許文献１】特開平１１−１７５０９７号公報（第５−７頁、第７図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のピッチ検出手法によれば、倍音を除去するローパスフィルタのカットオフ周波数がピッチの検出精度に大きな影響を与えるものとなっていたため、このカットオフ周波数の設定を極めて適切なものとする必要があった。また、子音等のピッチがはっきりしない部分における処理手法については技術開示がなされていないため、子音等のピッチが突飛な値になってしまうことが有り得、ピッチ検出精度を確保することが難しかった。つまり、従来手法にあっては、一般に振幅レベルの高い子音やフォルマント等がピッチ検出に与える影響を考慮したものとはなっていないため、これらがピッチ検出精度の劣化に影響してしまうといった問題があった。このため、ピッチシフトやタイムストレッチ等の処理を正確に実行することができず、各種の音楽用装置等への応用が可能となるピッチ検出手法の実現が望まれていた。  
【０００５】
本発明は、かかる従来の課題を解決するためになされたもので、音声信号のピッチを正確に検出する方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、音声信号のピッチを検出する方法であって、
ピッチ検出に関する処理を行う処理部が、
夫々の中心周波数が所定の関係を満たすようにして順次高くなるように設定されている複数のバンドパスフィルタの夫々に対して並列的に所定数個のサンプリングデータを供給する第１の工程と、
各バンドパスフィルタからの出力の最大値の対数値を求める第２の工程と、
前記バンドフィルタの数だけ求められた対数値を参照して、中心周波数が最も低く設定されているバンドパスフィルタに対する対数値から順に見て、対数値の極小値と極大値との差が最も大きくなる対数値に対応するバンドパスフィルタを決定する第３の工程と、
このバンドパスフィルタに前記所定数個のサンプリングデータを供給した時に出力されたフィルタ出力データから全波整流波形を生成する第４の工程と、
この全波整流波形において上に凸の部分（ピーク部）の値であるピーク値の標準偏差を求め、この標準偏差をピーク値の平均値で除算した正規化標準偏差を求める第５の工程と、
この正規化標準偏差が所定しきい値以下の場合には、前記フィルタ出力データが零となる周期からピッチを求める第６の工程と、を含む処理を実行することを特徴とするようにした。
【０００７】
また、この請求項１に記載のピッチ検出方法において、
前記処理部が、前記正規化標準偏差が所定値以下でない場合には、次の所定数個のサンプリングデータを用いて、前記第１、第２、第３、第４、第５の工程を繰り返して、新たな正規化標準偏差を求める工程と、
この新たな正規化標準偏差が前記所定しきい値以下となった場合には、前記繰り返された第３の工程で決定されたバンドパスフィルタに対して、既に前回の第１の工程によって当該バンドパスフィルタから出力されたフィルタ出力データが零となる周期からピッチを求める工程と、を含む処理を更に実行することを特徴とするようにしても良い。
【発明の効果】
【０００８】
本発明によれば、音声信号のピッチを正確に検出することが可能になるという効果が得られる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明を実施するための最良の形態を図面を参照しつつ説明する。図１は本発明の最良の実施の形態のピッチ検出装置１００の構成図である。ピッチ検出装置１００は、外部から与えられた音声信号を電気信号として出力するマイクロフォン１０と、このアナログの音声電気信号をアナログ・デジタル変換するＡ／Ｄ変換器２０と、ピッチ検出に関する処理を行う処理部３０と、サンプリングデータ用メモリ３０と、を備えている。外部から与えられた音声信号はマイクロフォン１０によってアナログの音声電気信号に変換され、更に、Ａ／Ｄ変換器２０によってアナログ・デジタル変換される。そして、処理部４０は、このサンプリングされたデジタル信号を１０００個１単位（サンプリングレートは例えば４４．１ｋＨｚ）としてサンプリングデータ用メモリ３０に格納していくように構成されている。なお、処理部４０はサンプリングデータ用メモリ３０からサンプリングデータを獲得して所要の処理を行うようになっている。
【００１０】
また、このピッチ検出装置１００は、２７個のＢＰＦ（バンドパスフィルタ）５０、ＢＰＦ５１、…、ＢＰＦ５２が設けられ、処理部４０はサンプリングデータを各ＢＰＦに並列的（同じタイミング）に供給可能に構成されている。そして、各ＢＰＦから出力されるフィルタ出力はフィルタデータ用メモリ６０に順次蓄積されるように構成されている。なお、ＢＰＦ５０、ＢＰＦ５１、…、ＢＰＦ５２の夫々からのフィルタ出力は、フィルタデータ用メモリ６０のメモリ領域６０ａ、メモリ領域６０ｂ、…、メモリ領域６０ｃに夫々格納され、各ＢＰＦ５０、５１…、５２のフィルタ出力に対して処理が施し易いようなメモリ構成となっている。
【００１１】
そして、各ＢＰＦ５０、５１、…、５２の中心周波数は、ＢＰＦ５０が最も低く、順に、「１／４オクターブ」間隔で設定され、ＢＰＦ５２が最も高く設定されている。即ち、ＢＰＦ５０（ＣＨ０：チャンネル０）の中心周波数をｆ０とすると、ｆ０の、２の４乗根倍が、ＢＰＦ５１（ＣＨ１：チャンネル１）の中心周波数ｆ１となっており、次に、不図示のチャンネル２のＢＰＦの中心周波数ｆ２は、ｆ１の、２の４乗根倍となっている。かくして、ＢＰＦ５２（ＣＨ２６：チャンネル２６）の中心周波は、ｆ０に「２の４乗根の２６乗」を乗じたものとなっている。
【００１２】
（動作）
次に、図２、図３、図４等を参照してピッチ検出装置１００による動作を説明する。今、サンプリングデータ用メモリ３０には、既に、１０００個を１単位として複数単位のサンプリングデータが格納されているものとする。先ず、ステップＳ２００において、処理部４０は、最初の１単位１０００個のサンプリングデータをＢＰＦ５０、５１、…、５２に対して並列的に（同時に）供給する。このサンプリングデータの供給によって、各ＢＰＦ５０、ＢＰＦ５１、…、ＢＰＦ５２から出力されたフィルタ出力は、夫々、フィルタデータ用メモリ６０のメモリ領域６０ａ、６０ｂ、…、６０ｃに蓄積されることになる。
【００１３】
次いで、ステップＳ２０５において、処理部４０は、ＢＰＦ５０、ＢＰＦ５１、…、ＢＰＦ５２のフィルタ出力の最大値を求め、これに「１」を加算してその対数（常用対数）を求める。ここで「１」を加算するのは対数の真数を正とするためである。かくして、ＢＰＦ５０、ＢＰＦ５１、…、ＢＰＦ５２に対するフィルタ出力の対数値が求められる。そして、ステップＳ２１０において、処理部４０は、基音（基音の周波数が「ピッチ」）に対応するＢＰＦを決定する。
【００１４】
図３はステップＳ２１０の処理の説明図である。図３には、ステップＳ２０５において求めた、ＢＰＦ５０（ＣＨ０）、ＢＰＦ５１（ＣＨ１）、…、ＢＰＦ５２（ＣＨ２６）に対するフィルタ出力の対数値が図示されている。そして、ＢＰＦの数（本例では２７個）だけ求められた対数値を参照して、中心周波数が最も低く設定されているバンドパスフィルタであるＢＰＦ５０（ＣＨ０）に対する対数値から順に見て、対数値の極小値と極大値との差が最も大きくなる対数値に対応するバンドパスフィルタを決定する。図３の例では、対数値の極小値と極大値との差は、符号Ａ、Ｂ、Ｃで示す３つ存在するが、その内、極小値と極大値の差が最も大きくなる（符号Ａ）対数値に対応するバンドパスフィルタは、図１では不図示のＣＨ２のＢＰＦであると決定する。
【００１５】
次いで、ステップＳ２１５において、処理部４０は、この決定したＢＰＦに対するフィルタ出力をフィルタデータ用メモリ６０から獲得して、これを全波整流波形とする。図４には全波整流波形の一例を示している。ＢＰＦ出力は、通常、正弦波状であるため、ＢＰＦ出力の正の部分はそのままの波形となり、一方、ＢＰＦの負の部分は正の部分を０点を基準として折り返した点線で示すような波形となる。
【００１６】
次いで、ステップＳ２２０において、処理部４０は以下のようにしてこの全波整流波形から正規化標準偏差を求める。先ず、この全波整流波形の上に凸の部分（ピーク部）の値であるピーク値ａ１、ａ２、…、ａ１０の平均値を求める。次いで、この平均値と各ピーク値との差の２乗の総和の平方根を求め標準偏差とし、更に、この標準偏差を上記平均値で除算して正規化標準偏差を求める。この正規化標準偏差値が小さいほどピーク値のばらつきが少なく安定した母音部分であると言える。
【００１７】
そして、ステップＳ２２５において、処理部４０は、この正規化標準偏差が所定しきい値ＴＨ以下か否かを判定する。この正規化標準偏差が所定しきい値ＴＨ以下の場合（Ｙｅｓ）には、ステップＳ２３０に移行する。そして、ステップＳ２３０では、ステップＳ２１０にて決定したＢＰＦにサンプリングデータを供給した時に得られたフィルタ出力データが零となる周期を求めこれからピッチを求める。以上のような処理を行えば、正規化標準偏差が大きい子音の部分ではピッチ検出を行なわないことになり、更に、隣接するＢＰＦ間の出力レベル差を基音の検出に用いることでフォルマント等の効果により生じる基音より大きなパワーをもつ倍音の影響を避けることができる。かくして、子音の影響やフォルマント等の影響を受けないでピッチを正確に求めることが可能になる。なお、通常の考え方では、零クロス点の間隔について統計を取った方がピッチ安定性を判断しやすいように思えるが、ピーク値についての統計を取った方が有効であることを確認した。これはＢＰＦの出力は、既にかなり狭い帯域の信号であるので零クロス間隔はほぼ一定であり、ばらつきが少ないのに対して、振幅の方は子音部分等では大きく変化するために、周期の信頼性としては振幅を評価するほうが適しているためである。
【００１８】
さて、一方、ステップＳ２２５において、処理部４０によって正規化標準偏差が所定しきい値ＴＨ以下でないと判定された場合（Ｎｏ）には、ステップＳ２３５に移行し、処理部４０は次の１単位である次の１０００個のサンプリングデータをＢＰＦ５０、ＢＰＦ５１、…、ＢＰＦ５２に供給する。そして、ステップＳ２０５からステップＳ２２０までの処理を繰り返して実行し、ステップＳ２２５にて、今回の正規化標準偏差が所定しきい値以下であると判定された場合（Ｙｅｓ）には、ステップＳ２３０において、ピッチを求める。この際、繰り返して実行されたステップＳ２１０にて決定されたＢＰＦに対応する、最初の１単位の１０００個のフィルタ出力をフィルタデータ用メモリから獲得して、ステップＳ２３０を実行してピッチを求める。
【００１９】
例えば、１単位１０００サンプル毎にデータを処理する際に、１単位あるいは数単位に渡って正規化標準偏差がしきい値を上回ったためピッチ情報を検出できなかった場合（この処理対象区間を区間Ａと呼ぶ）において、その後初めて正規化標準偏差値がしきい値を下回った１単位１０００サンプルの処理が行われた時点（この処理対象区間を区間Ｂと呼ぶ）で以下の処理を行う。区間Ａにおいて基音候補とされていたＢＰＦチャンネル情報は無視し、区間Ｂにおいて選ばれたＢＰＦと同じチャンネルのＢＰＦが区間Ａにおいて出力していた結果から零クロス点を検出し、その結果から区間Ａでのピッチ情報を取得する。もし、区間Ａの後に正規化標準偏差値がしきい値を下回る区間（区間Ｂ）が現れなかった場合は、処理対象区間Ａに先行して正規化標準偏差値がしきい値を下回っていた処理単位において基音候補として選ばれていたＢＰＦチャンネルの情報を元に、区間Ａでのピッチ検出を行っても良い。このようにしてより一層正確なピッチ検出をすることが可能である。
【００２０】
以上説明してきた本発明の実施の形態は、フォルマント等の影響で基音より倍音のパワーが強い場合にも対応するために、通過帯域の中心周波数が低い側から高い側へと順次並ぶように複数のＢＰＦを設け、夫々のＢＰＦ出力について対数化した出力レベルの差を基音の検出に用いた。これは倍音について見ると、隣接するＢＰＦ間の出力レベル差は、より高次側になるにつれて小さくなる傾向があることによる。実際、通常の歌声の場合には、低域側から見ていった場合に現れる対数化したＢＰＦ出力の極小値から、次に現れる対数化したＢＰＦ出力の極大値までの高低差を測ると、この値が最も大きい箇所において、対数化したＢＰＦ出力の極大値を示すＢＰＦの通過帯域に基音が存在することを確認した。また、子音の影響により突飛なピッチを出力してしまうことを避けるために、一定区間内において基音を含む通過帯域を持つＢＰＦ出力の絶対値をとり、その一定区間内に含まれる波形ピーク値の高さの標準偏差を、当該区間内でのピークの平均で除算した正規化標準偏差を計算した。正規化標準偏差がしきい値を下回る、ピッチが安定した部分のみを選んでピッチを測定することにより、子音を棄却した。
【産業上の利用可能性】
【００２１】
以上説明してきたように、本発明によれば、音声信号のピッチを正確に検出する方法を提供することができる。
【図面の簡単な説明】
【００２２】
【図１】ピッチ検出装置１００の構成図である。
【図２】装置の全体動作を説明するためのフローチャートである。
【図３】動作例を説明する説明図である。
【図４】動作例を説明する説明図である。
【符号の説明】
【００２３】
１０  マイクロフォン
２０  Ａ／Ｄ変換器
３０  サンプリングデータ用メモリ
４０  処理部
５０  ＢＰＦ（バンドパスフィルタ）
５１  ＢＰＦ（バンドパスフィルタ）
５２  ＢＰＦ（バンドパスフィルタ）
６０  フィルタデータ用メモリ
１００  ピッチ検出装置
【図１】
2005055612.tif 000003
【図２】
2005055612.tif 000004
【図３】
2005055612.tif 000005
【図４】
2005055612.tif 000006