説明

こぶし検出装置、こぶし検出方法及びプログラム

【課題】歌唱音声から「こぶし」の技法を用いて歌唱された区間を検出することが可能な技術を提供することを目的とする。
【解決手段】カラオケ装置1のCPU11は、歌唱音声からピッチを検出し、該ピッチの変動の態様からまず「こぶし候補区間」を特定する。すなわち、ピッチの上昇および下降(それぞれ区間AおよびB)の区間におけるピッチの変化の割合や、ピッチの一過的な上昇に要した時間(区間Cの長さ)を元にこぶしに特徴的なピッチの変動を検出する。その後、別途検出した「ビブラート技法が用いられている区間」に含まれるこぶし候補区間を除外することにより、こぶし技法が用いられている区間を最終的に特定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、こぶし検出装置、こぶし検出方法及びプログラムに関する。
【背景技術】
【0002】
歌唱の評価を行うカラオケ装置が種々開発されている。例えば、特許文献1に記載のカラオケ装置においては、歌唱者の音声からピッチ(音程)、音長、タイミングなどのパラメータを抽出し、抽出された各パラメータに基づいて歌唱の評価を行う。
【特許文献1】特開平10−78750号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、歌手などの熟練した歌唱者は、歌い始めや歌い終わりを意図的にずらしたり、声質や音量を変化させたり、ビブラートやこぶしなどの技法を用いたりするなど、様々な表現方法を用いて歌のなかに情感を表現する。多くの歌唱者は、楽譜の内容に忠実に従うよりも、歌手のように様々な表現方法を用いて歌唱したいと考えている。
【0004】
さて、従来のカラオケ装置では、模範となる歌唱やガイドメロディなどのリファレンスに基づいて歌唱を評価する。しかし、それらのリファレンスは、楽譜どおりの音高やリズムで作成されていることが多く、上述のように各種の表現方法を用いて歌唱すると、リファレンスと異なっているために評価が下がってしまう傾向があった。そこで、カラオケ装置において、上述のような各種の表現方法を検出し、検出された個々の表現方法に基づいて歌唱を評価する技術が望まれていた。
【0005】
本発明は、上述した事情に鑑みてなされたものであり、歌唱音声から「こぶし」の技法を用いて歌唱された区間を検出することが可能なこぶし検出装置、こぶし検出方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の好適な態様であるこぶし検出装置は、歌唱音声を表す歌唱音声データを受取る受取手段と、前記受取手段が受取った歌唱音声データから、ピッチを検出するピッチ検出手段と、前記ピッチ検出手段により検出されたピッチから、ピッチが上昇した後下降する区間を特定し、前記区間から、(1)ピッチが上昇する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、(2)ピッチが下降する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、(3)ピッチが上昇し始めてから下降し終わるまでの区間の長さが所定の範囲内であることを特徴とする候補区間を選択する候補区間選択手段と、前記歌唱音声において、ビブラートの技法が用いられている区間を表すビブラート区間データを受取る第2の受取手段と、前記候補区間選択手段により選択された候補区間の各々について、前記第2の受取手段が受け取ったビブラート区間データが表すビブラート区間に含まれなければ、該候補区間をこぶしの技法が用いられている区間として特定するこぶし区間特定手段とを有することを特徴とする。
【0007】
本発明の好適な態様であるこぶし検出装置は、上記の構成において、前記候補区間選択手段は、さらに追加して前記区間を含むノート(楽音)の発音を開始したタイミングから、ピッチが上昇を開始したタイミングとの時間差が所定の閾値より小さいとの条件を用いて前記候補区間を選択しても良い。
【0008】
本発明の好適な態様であるこぶし検出装置は、上記の構成において、前記候補区間選択手段は、さらに追加して前記区間の直前または直後の所定長の区間において、所定の大きさを超えるピッチの変動がないとの条件を用いて前記候補区間を選択しても良い。
【0009】
本発明の好適な態様であるこぶし検出装置は、上記の構成において、前記候補区間選択手段は、さらに追加して前記区間の直後または所定時間後の所定長の区間において、ピッチの変動幅が所定の閾値より小さいとの条件を用いて前記候補区間を選択しても良い。
【0010】
本発明の好適な態様であるこぶし検出方法は、歌唱音声を表す歌唱音声データを受取る受取段階と、前記受取段階において受取った歌唱音声データから、ピッチを検出するピッチ検出段階と、前記ピッチ検出段階において検出されたピッチから、ピッチが上昇した後下降する区間を特定し、前記区間から、(1)ピッチが上昇する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、(2)ピッチが下降する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、(3)ピッチが上昇し始めてから下降し終わるまでの区間の長さが所定の範囲内であることを特徴とする候補区間を選択する候補区間選択段階と、前記歌唱音声において、ビブラートの技法が用いられている区間を表すビブラート区間データを受取る第2の受取段階と、前記候補区間選択段階において選択された候補区間の各々について、前記第2の受取段階において受け取ったビブラート区間データが表すビブラート区間に含まれなければ、該候補区間をこぶしの技法が用いられている区間として特定するこぶし区間特定段階とを有することを特徴とする。
【0011】
本発明の好適な態様であるプログラムは、コンピュータを、歌唱音声を表す歌唱音声データを受取る受取手段と、前記受取手段が受取った歌唱音声データから、ピッチを検出するピッチ検出手段と、前記ピッチ検出手段により検出されたピッチから、ピッチが上昇した後下降する区間を特定し、前記区間から、(1)ピッチが上昇する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、(2)ピッチが下降する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、(3)ピッチが上昇し始めてから下降し終わるまでの区間の長さが所定の範囲内であることを特徴とする候補区間を選択する候補区間選択手段と、前記歌唱音声において、ビブラートの技法が用いられている区間を表すビブラート区間データを受取る第2の受取手段と、前記候補区間選択手段により選択された候補区間の各々について、前記第2の受取手段が受け取ったビブラート区間データが表すビブラート区間に含まれなければ、該候補区間をこぶしの技法が用いられている区間として特定するこぶし区間特定手段として機能させることを特徴とする。
【発明の効果】
【0012】
本発明に係るこぶし検出装置、こぶし検出方法、またはプログラムによれば、歌唱音声から「こぶし」の技法を用いて歌唱された区間を検出することが可能となる。
【発明を実施するための最良の形態】
【0013】
以下では、本発明の一実施形態に係るカラオケ装置について説明する。なお、以下の説明では、上記カラオケ装置を用いて歌唱を練習する者を「歌唱者」と呼ぶ。
【0014】
(A:構成)
図1は、カラオケ装置1のハードウェア構成を示したブロック図である。カラオケ装置1は、カラオケ伴奏を再生する通常のカラオケ機能を備えるとともに、歌唱者の歌唱音声から「こぶし」の技法が用いられている区間(以下、こぶし区間)を検出するこぶし検出機能も備える。なお、「こぶし」とは、装飾的に加える、うねるような節回しを行う技法である。
【0015】
図1において、CPU(Central Processing Unit)11は、ROM(Read Only Memory)12に記憶されている制御プログラムを読み出してRAM(Random Access Memory)13にロードし、これを実行することにより、カラオケ装置1の各部を制御する。
【0016】
表示部15は、例えば液晶ディスプレイなどであり、CPU11の制御の下で、カラオケ装置1を操作するためのメニュー画面や、背景画像に歌詞テロップが重ねられたカラオケ画面などの各種画面を表示する。
操作部16は、テンキーや上下キー、演奏開始キーなどの各種のキーを備えており、押下されたキーに対応した操作信号をCPU11へ出力する。
【0017】
マイクロホン17は、歌唱音声を収音し、音声信号(アナログデータ)を生成する。
音声処理部18は、マイクロホン17が生成した音声信号をA/D変換し、デジタルデータ(音声データ)に変換してCPU11に出力する。また、音声処理部18は、CPU11から受取った音声データをD/A変換し、音声信号に変換してスピーカ19に出力する。
スピーカ19は、音声処理部18から受取った音声信号に基づいて音声を放音する。
【0018】
記憶部14は、例えばHDD(Hard Disk Drive)などの大容量の記憶手段であり、各種の記憶領域を有している。
【0019】
楽曲データ記憶領域14aには、複数の楽曲データが格納されている。図2は、各楽曲データの内容を模式的に示した図である。各楽曲データは、ヘッダと伴奏データと歌詞データとガイドメロディデータとを有している。
ヘッダには、楽曲を特定する曲番号データ、楽曲の曲名を示す曲名データ、ジャンルを示すジャンルデータ、楽曲の演奏時間を示す演奏時間データなどが含まれている。
【0020】
伴奏データには、楽曲の伴奏を行う各種楽器の演奏音が楽曲の進行に伴って記されている。伴奏データは、例えばMIDI(Musical Instrument Digital Interface)形式などのデータ形式である。
歌詞データには、歌詞の内容(文字)が、表示すべきタイミング、および表示部15の画面において表示すべき位置と対応付けられて記されている。
ガイドメロディデータには、歌唱者が歌唱すべき旋律を示したガイドメロディが書き込まれている。
【0021】
歌唱音声データ記憶領域14bには、マイクロホン17から出力された歌唱者の歌唱を表す音声信号が音声処理部18でA/D変換されることにより生成された音声データ(以下、歌唱音声データ)が、各楽曲について記憶されている。歌唱音声データは、WAVE形式やMP3(MPEG-1 Audio Layer-3)形式などの音声データである。
ビブラート区間データ記憶領域14cには、各楽曲の歌唱音声データにおいて「ビブラート」の技法が用いられている区間(以下、ビブラート区間)を示すデータが記憶される。
【0022】
こぶし区間データ記憶領域14dには、各楽曲の歌唱音声データにおいて「こぶし」の技法が用いられているこぶし区間を示すデータが記憶される。
パラメータ記憶領域14eには、各楽曲の歌唱音声データから抽出されたピッチや、該ピッチから抽出された各種のパラメータが記憶される。
以上に説明したカラオケ装置1の各部は、バス20を介して互いにデータをやり取りする。
【0023】
(B:動作)
次に、カラオケ装置1が歌唱音声データから「こぶし区間」を特定する処理について説明する。
【0024】
(B−1:カラオケ伴奏処理)
歌唱者が、操作部16を操作して歌唱する楽曲を選択すると、楽曲の曲番号データなど楽曲を特定する操作信号が操作部16からCPU11に出力される。CPU11は、操作部16から供給された操作信号が示す楽曲データを楽曲データ記憶領域14aから読み出し、読み出した楽曲データについてカラオケ伴奏処理を行う。
【0025】
図3は、カラオケ伴奏処理の流れを示すフローチャートである。
ステップSA100において、CPU11は、カラオケ伴奏をスピーカ19に放音させると共に、歌詞テロップを表示部15に表示させる。すなわち、CPU11は、楽曲データ記憶領域14aから楽曲データに含まれる伴奏データを読み出して音声処理部18に出力する。そして音声処理部18は、上記伴奏データをアナログの音声信号に変換し、スピーカ19に出力する。また、CPU11は、楽曲データ記憶領域14aから楽曲データに含まれる歌詞データを読み出して、該歌詞データに従って歌詞テロップを表示部15に表示させる。
【0026】
歌唱者は、表示部15に表示された歌詞テロップを見ながら、スピーカ19から放音されるカラオケ伴奏にあわせて歌唱を行う。マイクロホン17により生成された音声信号は、A/D変換されることにより歌唱音声データが生成される(ステップSA110)。該歌唱音声データは、歌唱音声データ記憶領域14bに書き込まれる。
【0027】
ステップSA120において、CPU11は、楽曲の進行に伴い歌唱音声データのピッチを解析し、解析結果を表す歌唱ピッチデータを生成する。すなわち、ステップSA110において生成された歌唱音声データを歌唱音声データ記憶領域14bから読み出し、読み出した歌唱音声データから所定時間長(例えば、3msec)のフレーム単位でピッチを検出し、検出されたピッチを示す歌唱ピッチデータを生成する。なお、歌唱ピッチデータにおいては、楽曲データに含まれるガイドメロディのピッチを基準とした上記検出されたピッチの相対値としてピッチを示す。生成された歌唱ピッチデータは、パラメータ記憶領域14eに書き込まれる。
図4には、ステップSA120において生成された歌唱ピッチデータのうち、楽曲の一部分(時刻12s000ms〜18s000ms)をグラフA1で示す。図4において、横軸は時刻(楽曲が開始されてからの経過時間)を表す。また、縦軸には、各時刻における歌唱ピッチデータのガイドメロディに対する相対値が示されている。
【0028】
ステップSA130において、CPU11は、楽曲の演奏が一曲分終了したか否かを判定する。ステップSA130の判定結果が“Yes”である場合には、カラオケ伴奏処理を終了する。ステップSA130の判定結果が“No”である場合には、楽曲の残りの部分についてステップSA100ないしステップSA120の処理を行う。
【0029】
(B−2:ビブラート区間特定処理)
CPU11は、歌唱音声データから「こぶし区間」を特定するにあたり、予め「こぶし」と類似した特徴を示す「ビブラート」が用いられている区間を特定するビブラート区間特定処理を行う。ビブラートとは、音を伸ばしながらピッチをわずかに上下させ震えるような音色を出すことにより音に豊かな響きを与える歌唱技法である。
【0030】
図5は、ビブラート区間特定処理の流れを示したフローチャートである。ステップSB100において、CPU11は、パラメータ記憶領域14eに書き込まれた歌唱ピッチデータに対して、特定の周波数成分を抽出するフィルタ処理を施す。本実施形態においては、CPU11は、歌唱ピッチデータを6Hzより低い周波数の成分を抽出するローパスフィルタで処理し、新たなピッチデータ(以下、フィルタ歌唱ピッチデータ)を生成する。図4におけるグラフA2は、グラフA1の歌唱ピッチデータを上記ローパスフィルタにより処理することで生成されたフィルタ歌唱ピッチデータを示している。
【0031】
図4に示されるように、フィルタをかける前の歌唱ピッチデータ(A1)には、波形に細かい乱れがある。このような波形の乱れは例えばリバーブによるものであり、リバーブのかかった音声データからピッチを検出した場合には、その検出結果は正弦波にならず波形の乱れたものとなる。そのため、リバーブのかかった音声からビブラート区間を検出することが困難であった。更には、音声にリバーブがかかっているか否かを音声データから判定することも困難であった。しかしながら、ローパスフィルタで処理された歌唱ピッチデータにおいては、音声にかけられたリバーブの影響は取り除かれており、後述の処理において適切にビブラート区間を特定することが可能になる。
【0032】
ステップSB110において、CPU11は、歌唱音声データにおいてビブラート区間の特徴を示す区間(以下、ビブラート候補区間)を以下の条件で特定する。すなわち、CPU11は、ステップSB100において生成されたフィルタ歌唱ピッチデータの表すピッチが、負から正又は正から負に変化する(ゼロクロスする)箇所をゼロクロス箇所として特定する。具体的には、例えば、図4に示す例においては、フィルタ歌唱ピッチデータを表すグラフA2がゼロクロスする時刻(例えば、時刻P1,P2,P3,P4など)が、ゼロクロス箇所として特定される。
【0033】
次いで、CPU11は、フィルタ歌唱ピッチデータにおいてゼロクロス箇所が現れる時間間隔を測定し、測定された時間間隔が予め定められた範囲内であり、かつ、その時間間隔が連続して所定回数以上検出された区間を、ビブラート候補区間として特定する。この処理によって、図4に示した例では、ゼロクロス箇所がほぼ等間隔で現れる区間A3がビブラート候補区間として特定される。なお、図4においては、ビブラート候補区間として1つの区間が特定されたが、図4に含まれない楽曲部分においてもビブラート候補区間が特定される。
【0034】
そして、CPU11は、ステップSB110において、特定されたビブラート候補区間においてビブラート技法が実際に用いられていることを更に厳密に解析するため、該区間のそれぞれについて、以下のように複数のパラメータを抽出する(ステップSB120)。なお、以下の説明において、例えば図4における区間A3のようにフィルタ歌唱ピッチデータの値が周期的に変動している場合に、単位時間あたりの振動の回数を「ビブラートの振動数」と呼ぶ。
【0035】
(1)ビブラートの振動数の平均値(Af;Average of frequency)
パラメータAfは各ビブラート候補区間におけるビブラートの振動数の平均値であり、上記フィルタ歌唱ピッチデータが横軸とゼロクロスする時間間隔の逆数の平均値として算出される。
(2)ビブラートの振動数の標準偏差(Df;Deviation of frequency)
パラメータDfは、上記フィルタ歌唱ピッチデータが横軸とゼロクロスする時間間隔の逆数の分布の標準偏差として算出される。本パラメータから、ビブラートの振動数の「ばらつき」の大きさを推定することができる。すなわち、本パラメータの値が0に近いほど均一な振動数を持つ、優れたビブラートであることを示す。
【0036】
ここで、以下のパラメータの説明において用いられる「ピッチ振動幅」について説明する。図6は、図4におけるフィルタ歌唱ピッチデータ(A2)を取り出して示したグラフである。図6において、CPU11は、以下のようにして上記ビブラート候補区間における「ピッチ振動幅」を算出する。まず、CPU11は、フィルタ歌唱ピッチデータを時間で微分することにより、該データのグラフから極大値および極小値を特定する。
【0037】
例えば、図6においてQ2、Q4、Q6、Q8、およびQ10は極大値を示し、Q1、Q3、Q5、Q7、およびQ9は極小値を示す。CPU11は、特定された1つの極小値と、時間的に直後に隣接する極大値との差分をピッチ振動幅とし、該ピッチ振動幅を、該値の算出に用いた極小値と極大値との中間の時刻に位置付ける。例えば極小値Q1と極大値Q2とからはピッチ振動幅W1が生成される。図6には、そのようにして生成されたピッチ振動幅W1〜5が書き込まれている。
【0038】
さて、ステップSB120で抽出されるパラメータの説明に戻る。
(3)ピッチ振動幅の平均値(Ap;Average of pitch)
パラメータApは、各ビブラート候補区間において見出されたピッチ振動幅の平均値を示す。
(4)ピッチ振動幅の標準偏差(Dp;Deviation of pitch)
パラメータDpは、各ビブラート候補区間において見出されたピッチ振動幅の標準偏差を示す。本パラメータから、ビブラート区間におけるピッチの振動幅の「ばらつき」の大きさを推定することができる。すなわち、本パラメータの値が0に近いほど均一の振動幅でピッチが振動する、優れたビブラートであることを示す。
【0039】
(5)ピッチ振動幅の線形近似直線の傾き(Sp;Slope of pitch)
パラメータSpは、上記ピッチ振動幅のグラフにおける線形近似直線の傾きを示す。図7は、図6において算出されたピッチ振動幅のグラフを取り出して示している。CPU11は、ビブラート候補区間(図中A3)におけるピッチ振動幅の点について、線形近似直線を決定する。例えば、図7に示す区間A3においては、線形近似直線のグラフは直線L1のように決定され、(式1)として表される。
(式1)P=15t+150
このように線形近似直線を算出することにより直線の傾きSpが決定される。上記の例では、ピッチ振動幅の線形近似直線の傾きSpは、15である。
本パラメータから、ビブラートを行っている間のピッチの振動幅の安定性を推定することができる。すなわち、Spの絶対値が小さい値であるほど、ビブラートを行っている間にピッチの変動幅が均一に保たれた、優れたビブラートであることを表す。
【0040】
ステップSB130において、CPU11は、以下のような基準で、ステップSB110において特定されたビブラート候補区間の各々について、ビブラート区間として最終的に決定するか否かを判定する。すなわち、
(1)Dfが所定の閾値より小さい
(2)Apが所定の範囲内である
(3)Dpが所定の閾値より小さい
(4)Spの絶対値が所定の閾値より小さい
上記(1)ないし(4)の全ての条件を満たすビブラート候補区間をビブラート区間として最終決定する。
【0041】
上記の条件により特定されたビブラート区間においては、ビブラートが用いられている可能性は非常に高いことが期待される。なぜなら、一般にビブラートにおいては、ビブラートの振動数、ピッチの振動幅のばらつきは小さく、また、その振動幅は所定の大きさの範囲内(例えば500セント以内など)にあり、更にはピッチの変動幅はビブラート区間を通して略一定となるからである。なお、「セント」とは、ピッチの相対的な音程差を示す単位であり、例えば+100セントが示すピッチは基準となるピッチから半音分上の音程を示す。CPU11は、特定した区間を表すビブラート区間データを、ビブラート区間データ記憶領域14cに記憶する。
【0042】
図8に、図4に示された歌唱ピッチデータについて生成されたビブラート区間データを示す。図8に示されるように、ビブラート区間データにおいては、各楽曲についての歌唱音声データにおいて検出されたビブラート区間について、その開始時刻と終了時刻が書き込まれている。
以上で、ビブラート区間特定処理は終了する。
【0043】
以上のように、ステップSB110で、フィルタ歌唱ピッチデータにおいてピッチの振動の時間間隔が予め定められた範囲内であり、且つその時間間隔が連続して所定回数以上検出されたことを条件として一旦ビブラート区間の候補を絞り込んだ。そしてステップSB120において抽出されたパラメータに基づいて上記ビブラート候補区間がビブラート区間として適切であるか厳密に判定した。そのように、ビブラートに特有のピッチの変動を示すか否かを複数の条件で判定することで、最終的に正確なビブラート区間を特定することができる。
【0044】
(B−3:こぶし区間特定処理)
CPU11は、上述のビブラート区間特定処理を終えると、こぶし区間特定処理を行う。こぶし区間特定処理とは、歌唱音声データからこぶし区間を特定する処理である。図9は、こぶし区間特定処理の流れを示すフローチャートである。
【0045】
ステップSC100において、CPU11は、パラメータ記憶領域14eから、フィルタ歌唱ピッチデータを読み出す。
次にステップSC110において、CPU11は、歌唱音声データにおいてこぶし区間を含む可能性がある区間(以下、こぶし候補区間)を以下のように特定する。なお、以下の説明においては、フィルタ歌唱ピッチデータの一部を模式的に示した図10を参照して説明する。なお、図10において、P(>0)およびP(<0)は、それぞれピッチが上昇している区間Aおよび減少している区間Bにおけるピッチの変動幅を示す。また、区間Cは、区間Aの開始から区間Bの終了までの区間を示す。t、t、およびtは、それぞれ区間A、B、およびCの時間幅を示す。
【0046】
CPU11は、フィルタ歌唱ピッチデータから、以下に示す条件(1)ないし(3)を同時に満たす区間を「こぶし候補区間」として特定する。すなわち、ピッチが上がり再び下がる区間(区間C)において、
(1)ピッチが上がる区間(区間A)においてピッチの変化の割合の絶対値(|P/t|)が所定値よりも大きいこと。
(2)ピッチが下がる区間(区間B)においてピッチの変化の割合の絶対値(|P/t|)が所定値よりも大きいこと。
(3)ピッチが上がり始めてから下がり終わるまでの区間の長さ(t)が所定の範囲内であること。すなわち、ピッチの一過的な上昇に要する時間が、短すぎず且つ長すぎないこと。
【0047】
以上の条件(1)ないし(3)により、図4と同じフィルタ歌唱ピッチデータを示した図11においてこぶし候補区間を特定すると、区間1、2、3、4、5、および6が特定される。CPU11は、該こぶし候補区間を示すデータをこぶし候補区間データとして生成し、こぶし区間データ記憶領域14dに書き込む。
図12は、こぶし候補区間データの一例を示している。こぶし候補区間データにおいては、各楽曲についての歌唱音声データにおいて特定されたこぶし候補区間の各々について、ピッチの変動の開始時刻と終了時刻が書き込まれている。例えば、図12において、00m14s500〜00m15s400msとのデータは、図11における区間3のピッチ変動と対応している。
【0048】
ステップSC120において、CPU11は、ビブラート区間データ記憶領域14cからビブラート区間データを、こぶし区間データ記憶領域14dからこぶし候補区間データを読み出し、読み出したこぶし候補区間データが示す区間からビブラート区間に含まれているこぶし候補区間を除外することにより、最終的なこぶし区間を特定する。
例えば、図11に示されたフィルタ歌唱ピッチデータからは、図12に示すこぶし候補区間データと、図8に示すビブラート区間データとが生成されるが、図12に示された複数のこぶし候補区間のうち、00m12s200ms〜00m12s800msの区間のみは、ビブラート区間に含まれないが、該区間を除く他の区間は、ビブラート区間に含まれていることからこぶし区間から除外される。なお、こぶし候補区間とビブラート区間の開始時刻または終了時刻がずれている場合には、こぶし候補区間の一部でもビブラート区間に含まれている場合には、該こぶし候補区間はビブラート区間に含まれていると判定しても良い。
【0049】
上述したように、こぶし候補区間の特定においては、所定の時間内にピッチが一過的に上昇することを条件としているため、歌唱音声にビブラートが含まれていた場合には、該ビブラートを構成する個々のピッチの振動が含まれてしまう。そこで、こぶしおよびビブラートの両者が共に特定されるような条件でこぶし候補区間を特定し、該特定されたこぶし候補区間から、別途特定されたビブラート区間を除外することによりこぶし区間が特定される。
【0050】
(C:変形例)
以上、本発明の一実施形態について説明したが、本発明は上述の実施形態に限定されることなく、他の様々な形態で実施可能である。以下にその一例を示す。
【0051】
(1)上述した実施形態においては、フィルタ歌唱ピッチデータにおいて、ピッチの変動の態様が条件(1)ないし(3)の条件を満たす区間を「こぶし候補区間」として特定する場合について説明した。しかし、上記の条件に加え、例えば以下のような条件(a)、(b)、(c)、および(d)によりこぶし候補区間を特定しても良い。
(a)各ノート(楽音)の発音タイミングの直後の所定の期間内にピッチの立ち上がりがあるものをこぶし候補区間とする。
フィルタ歌唱ピッチデータの一部を取り出して示した図13(a)に示されているように、時刻t1からt3まで伸ばして発音するノートにおいて、その発音開始(時刻t1)から所定の時間以上経過してからピッチの立ち上がり(時刻t2)が見られる場合には、該区間をこぶし候補区間とは特定しない。なぜなら、各ノートの発音開始直後にこぶしを回すのが一般的であるからである。
(b)こぶしの直前および直後に所定のレベルを超えるピッチの下降がない。
図13(b)に示されているように、時刻t5において極大値を示すピッチの一過的な上昇の直前に時刻t4において極小値を示すようなピッチの大きな下降が見られる場合には、上記時刻t5において極大値を示すピッチの一過的な上昇の区間をこぶし候補区間とは特定しない。
(c)こぶしの直後に所定のレベルを超えるピッチの上昇がない。
図13(c)に示されているように、時刻t6において極大値を示すピッチの一過的な上昇の直後に時刻t7において極大値を示すようなピッチの大きな上昇が見られる場合には、時刻t6において極大値を示すピッチの一過的な上昇の区間をこぶし候補区間とは特定しない。
(d)ピッチの一過的な上昇の後に一定期間の平坦部(区間内のピッチの最大値と最小値の差分が一定値以内である部分)がある。すなわち、ピッチが一過的に上昇した区間の直後の所定長の区間、またはピッチが一過的に上昇した区間の所定時間後の所定長の区間において、平坦部がある。
図13(d)に示されているように、時刻t8において極大値を示すピッチの一過的な上昇が終了した後に時刻t9において極小値を示すピッチの下降や、時刻t10において極大値を示すピッチの上昇が見られ、該区間におけるピッチの変動幅は所定の閾値より大きくなるため、時刻t8において極大値を示すピッチの一過的な上昇の区間をこぶし候補区間とは特定しない。
なお、上述の実施形態において示した条件(1)ないし(3)、および上記の条件(a)、(b)、(c)、および(d)の中から、複数の条件を選択して用いることによりこぶし候補区間を特定するとしても良く、該条件の組み合わせ方法は適切に設定すれば良い。
【0052】
(2)上述した実施形態においては、ビブラート区間を特定する方法の一例として、ピッチの変動の態様に基づく場合について説明した。しかし、ビブラート区間を特定する方法は上述の方法に限定されるものではない。例えば、ビブラートの区間を特定するために上記実施形態において用いた複数の条件のうち、いずれかを用いないとしても良いし、上記の条件に加え、他の条件を組み合わせて用いても良い。
【0053】
(3)上述した実施形態においては、歌唱音声データはWAVE形式やMP3形式のデータとしたが、データの形式はこれに限定されるものではなく、歌唱音声を表すデータであればどのような形式のデータであってもよい。
【0054】
(4)上述した実施形態では、カラオケ装置1が、上記実施形態に係る機能の全てを実現する場合について説明した。しかし、ネットワークで接続された2以上の装置が上記機能を分担するようにし、それら複数の装置を備えるシステムが同実施形態のカラオケ装置1の機能を実現するようにしてもよい。
【0055】
(5)上述した実施形態においては、歌唱音声データからビブラート区間を特定し、該ビブラート区間をこぶし候補区間から除外してこぶし区間を特定する場合について説明した。しかし、楽曲データに付随しているなど、ビブラートの技法を用いて歌唱する区間を示すデータが得られる場合には、該データを用いてビブラート区間を特定すればよく、上述のビブラート区間特定処理を行う必要はない。その場合、該データが示すビブラート区間をビブラート区間データ記憶領域14cに書き込んでおき、こぶし区間特定処理の際には、該書き込まれたビブラート区間データを読み出して用いれば良い。
【0056】
(6)上述した実施形態においては、カラオケ伴奏の進行に伴って歌唱音声データからピッチを検出し、歌唱ピッチデータを生成する場合について説明した。しかし、該処理は必ずしもカラオケ伴奏に伴って行われる必要はない。例えば、歌唱音声を一旦楽曲の初めから終わりまで蓄積して生成した歌唱音声データから、カラオケ伴奏が終了した段階でピッチを検出するようにしても良い。
【0057】
(7)上記実施形態においては、こぶし区間を歌唱音声データから特定する場合について説明した。しかし、例えば歌手の歌唱など模範となる歌唱を示すデータからこぶし区間を上記実施形態に説明した方法で予め特定し、特定した区間を示すデータを含むカラオケ用楽曲データを作成してもよい。その場合、カラオケ装置1は、楽曲においていずれの区間がこぶしを用いて歌うべき区間であるかを表示部15に表示すれば、歌唱者は、適切なタイミングでこぶしを用いて歌唱することができる。
【0058】
(8)上述した実施形態では、歌唱者の歌唱音声データから楽曲におけるこぶし区間を特定する場合について説明した。しかし、例えば、何らかの記憶手段に記憶された音声データを読み出して、該音声データからこぶしを検出しても良い。
【0059】
(9)上述した実施形態では、CPU11は、歌唱音声データに対して特定の周波数以下の周波数成分を抽出するローパスフィルタ処理を行ったが、CPU11が行うフィルタ処理はこれに限らず、例えば、所定の周波数幅の周波数成分を取り出すフィルタを用いてもよい。要するに、特定の周波数帯域の成分を抽出するフィルタ処理であればどのようなものであってもよい。
【0060】
(10)上述した実施形態においては、歌唱者の歌唱を表す歌唱音声データからこぶし区間を特定する場合について説明した。しかし、処理の対象となる音声データは、歌唱音声を表すデータに限らず、例えばバイオリンやフルートなどの楽器の演奏音を表す音声データであってもよい。そのようにすれば、例えば楽器においてこぶしと特性が類似した演奏技法を検出することができる。
【0061】
(11)上述した実施形態におけるカラオケ装置1のCPU11によって実行されるプログラムは、磁気テープ、磁気ディスク、フレキシブルディスク、光記録媒体、光磁気記録媒体、CD(Compact Disk)−ROM、DVD(Digital Versatile Disk)、RAM、ROMなどの記録媒体に記録した状態で提供し得る。また、インターネットのようなネットワーク経由でカラオケ装置1にダウンロードさせることも可能である。
【0062】
(12)上述した実施形態において、こぶし区間を特定するに際し、こぶし候補区間の一部でもビブラート区間に含まれている場合には、該こぶし候補区間はビブラート区間に含まれていると判定する場合について説明した。しかし、各こぶし候補区間がビブラート区間に含まれるか否かを判定する方法は、上記の方法に限定されるものではない。たとえば、各こぶし候補区間の開始時刻から終了時刻までがビブラート区間に含まれる場合に、該こぶし候補区間はビブラート区間に含まれると判定しても良い。また、各こぶし候補区間において、ピッチが極大値を示す時刻がビブラート区間に含まれる場合に、該こぶし候補区間はビブラート区間に含まれると判定しても良い。
【図面の簡単な説明】
【0063】
【図1】カラオケ装置1の構成を示すブロック図である。
【図2】楽曲データの内容を示す図である。
【図3】カラオケ伴奏処理の流れを示すフローチャートである。
【図4】歌唱ピッチデータおよびフィルタ歌唱ピッチデータを示す図である。
【図5】ビブラート区間特定処理の流れを示すフローチャートである。
【図6】ピッチ振動幅の算出方法を説明するための図である。
【図7】ピッチ振動幅の線形近似直線の算出方法を示す図である。
【図8】ビブラート区間データの一例を示す図である。
【図9】こぶし区間特定処理の流れを示すフローチャートである。
【図10】こぶし候補区間の特定方法を説明するための図である。
【図11】フィルタ歌唱ピッチデータを示す図である。
【図12】こぶし候補区間データの一例を示す図である。
【図13】こぶし区間の特定方法を説明するための図である。
【符号の説明】
【0064】
1…カラオケ装置、11…CPU、12…ROM、13…RAM、14…記憶部、15…表示部、16…操作部、17…マイクロホン、18…音声処理部、19…スピーカ、20…バス。

【特許請求の範囲】
【請求項1】
歌唱音声を表す歌唱音声データを受取る受取手段と、
前記受取手段が受取った歌唱音声データから、ピッチを検出するピッチ検出手段と、
前記ピッチ検出手段により検出されたピッチから、ピッチが上昇した後下降する区間を特定し、前記区間から、
(1)ピッチが上昇する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、
(2)ピッチが下降する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、
(3)ピッチが上昇し始めてから下降し終わるまでの区間の長さが所定の範囲内である
ことを特徴とする候補区間を選択する候補区間選択手段と、
前記歌唱音声において、ビブラートの技法が用いられている区間を表すビブラート区間データを受取る第2の受取手段と、
前記候補区間選択手段により選択された候補区間の各々について、前記第2の受取手段が受け取ったビブラート区間データが表すビブラート区間に含まれなければ、該候補区間をこぶしの技法が用いられている区間として特定するこぶし区間特定手段と
を有することを特徴とするこぶし検出装置。
【請求項2】
前記候補区間選択手段は、前記区間を含むノート(楽音)の発音を開始したタイミングから、ピッチが上昇を開始したタイミングとの時間差が所定の閾値より小さいとの条件を用いて前記候補区間を選択することを特徴とする請求項1に記載のこぶし検出装置。
【請求項3】
前記候補区間選択手段は、前記区間の直前または直後の所定長の区間において、所定の大きさを超えるピッチの変動がないとの条件を用いて前記候補区間を選択することを特徴とする請求項1に記載のこぶし検出装置。
【請求項4】
前記候補区間選択手段は、前記区間の直後または所定時間後の所定長の区間において、ピッチの変動幅が所定の閾値より小さいとの条件を用いて前記候補区間を選択することを特徴とする請求項1に記載のこぶし検出装置。
【請求項5】
歌唱音声を表す歌唱音声データを受取る受取段階と、
前記受取段階において受取った歌唱音声データから、ピッチを検出するピッチ検出段階と、
前記ピッチ検出段階において検出されたピッチから、ピッチが上昇した後下降する区間を特定し、前記区間から、
(1)ピッチが上昇する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、
(2)ピッチが下降する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、
(3)ピッチが上昇し始めてから下降し終わるまでの区間の長さが所定の範囲内である
ことを特徴とする候補区間を選択する候補区間選択段階と、
前記歌唱音声において、ビブラートの技法が用いられている区間を表すビブラート区間データを受取る第2の受取段階と、
前記候補区間選択段階において選択された候補区間の各々について、前記第2の受取段階において受け取ったビブラート区間データが表すビブラート区間に含まれなければ、該候補区間をこぶしの技法が用いられている区間として特定するこぶし区間特定段階と
を有することを特徴とするこぶし検出方法。
【請求項6】
コンピュータを、
歌唱音声を表す歌唱音声データを受取る受取手段と、
前記受取手段が受取った歌唱音声データから、ピッチを検出するピッチ検出手段と、
前記ピッチ検出手段により検出されたピッチから、ピッチが上昇した後下降する区間を特定し、前記区間から、
(1)ピッチが上昇する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、
(2)ピッチが下降する区間におけるピッチの変化の割合の絶対値が所定の閾値よりも大きく、
(3)ピッチが上昇し始めてから下降し終わるまでの区間の長さが所定の範囲内である
ことを特徴とする候補区間を選択する候補区間選択手段と、
前記歌唱音声において、ビブラートの技法が用いられている区間を表すビブラート区間データを受取る第2の受取手段と、
前記候補区間選択手段により選択された候補区間の各々について、前記第2の受取手段が受け取ったビブラート区間データが表すビブラート区間に含まれなければ、該候補区間をこぶしの技法が用いられている区間として特定するこぶし区間特定手段
として機能させるためのプログラム。

【図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