以下、図面を参照し、この発明の実施の形態を説明する。
図1はこの発明によるアライメント装置の一実施形態であるタイムアライメント装置としての機能を備えた歌唱評価装置1の構成を示すブロック図である。この歌唱評価装置1は、カラオケにおいて歌唱者が発声した歌唱音声とガイドボーカル音声との一致の度合いを評価する装置であり、パーソナルコンピュータ、携帯電話端末、スマートフォン、タブレット型端末等の各種のコンピュータにより構成されている。
カラオケでは、歌唱者によっては、楽譜内容に忠実に歌唱するのではなく、曲の各部の歌い始めや歌い終わりのタイミングを意図的にずらして歌唱を行い、これにより豊かな感情表現を行う場合がある。そこで、本実施形態による歌唱評価装置1では、このような歌唱のタイミングのずれがあったとしてもマイナス評価を行わず、仮に歌唱者が曲の各部をガイドボーカル音声の対応する各部と同じタイミングで歌唱していたとした場合に歌唱音声がガイドボーカル音声とどの程度一致しているかという観点で歌唱の評価を行う。本実施形態における歌唱評価装置1は、カラオケ装置の一部をなすものであるが、歌唱評価装置1をカラオケ装置とは独立した装置としてもよい。なお、図1では、歌唱評価装置1の全体構成のうち歌唱評価に関連した各部のみが図示されており、カラオケの伴奏、歌詞表示等、歌唱評価と関係のない各部の図示は省略されている。
図1に示すように、歌唱評価装置1は、CPU(Central Processing Unit)11と、HD(Hard Disk)やROM(Read Only Memory)等からなる不揮発性記憶部12と、RAM(Random Access Memory)等からなる揮発性記憶部13と、マイクロホン14aおよびA/D変換部14と、操作部15と、表示部16と、通信I/F17とを有する。
図1において、操作部15は、テンキー等の各種の操作子により構成されており、各操作子に対する操作情報をCPU11に供給する。表示部16は、液晶ディスプレイとその駆動回路により構成されており、CPU11から供給される表示情報の表示を行う。通信I/F17は、CPU11がインターネット等のネットワークを介して他の装置との間で行う通信を仲介する装置である。マイクロホン14aは歌唱者が発声する歌唱音声を収音する手段である。A/D変換部14は、マイクロホン14aの出力信号を一定のサンプリングレートでサンプリングしてA/D変換し、歌唱音声波形のデジタルサンプル列である歌唱データをCPU11に出力する。
不揮発性記憶部12には、歌唱評価プログラム121と、複数の楽曲に各々対応した複数のガイドボーカル音響パラメータ122が記憶されている。ここで、歌唱評価プログラム121は、A/D変換部14から供給される歌唱データに基づき、歌唱の評価を行うプログラムである。この歌唱評価プログラム121は、歌唱評価装置1の工場出荷時に不揮発性記憶部12に予め書き込まれたものであってもよく、通信I/F17を介してネットワーク上のサーバから不揮発性記憶部12にダウンロードされたものであってもよい。ガイドボーカル音響パラメータ122は、楽曲の模範的な歌唱音声波形のデジタルサンプル列であるガイドボーカルデータを一定時間長のフレームに区切り、フレーム毎に解析を行うことにより得られた音のパラメータ列である。ここで、ガイドボーカル音響パラメータは、ガイドボーカル音のピッチ等、時間軸に沿って変化する単一の種類のパラメータであってもよく、ガイドボーカル音のピッチ、音量等、時間軸に沿って変化する複数種類のパラメータからなるベクトルであってもよい。
CPU11は、揮発性記憶部13をワークエリアとして使用して歌唱評価プログラム121を実行し、A/D変換部14から供給される歌唱データに基づいて歌唱の評価を行う。その際、CPU11は、不揮発性記憶部12に記憶された各ガイドボーカル音響パラメータ122のうちカラオケの選択曲に対応したガイドボーカル音響パラメータ122を参照して歌唱の評価を行う。なお、CPU11は、不揮発性記憶部12から歌唱評価プログラム121を直接読み出して実行してもよいが、歌唱評価プログラム121をRAMに移して実行してもよい。また、CPU11は、ネットワークを経由して歌唱評価プログラム121をRAMに移して実行してもよい。また、CPU11に加えてDSPを設け、歌唱評価プログラム121に従って行う演算処理の一部をDSPに実行させてもよい。また、CPU11は、歌唱評価プログラム121を実行する際、ガイドボーカル音響パラメータ122を不揮発性記憶部12からRAMに移して歌唱評価プログラム121の演算処理に使用してもよい。また、CPU11は、ネットワークを経由してガイドボーカル音響パラメータ122をRAMに移してもよい。また、ガイドボーカル音響パラメータ122は、予め記憶しておくのではなく、ガイドボーカル音声から抽出して使用してもよい。
CPU11は、歌唱評価プログラム121を実行することにより、図1に示す解析部111、対応情報生成部112、評価部113および実行制御部114の各機能を実現する。また、CPU11は、歌唱評価プログラム121に従い、揮発性記憶部13内に、図1に示す歌唱データバッファ131、歌唱音響パラメータバッファ132、第1の入力データバッファ133、第2の入力データバッファ134、差分マトリックスバッファ135、対応情報バッファ136および評価結果バッファ137の各バッファ領域を設定する。
図2は、図1における解析部111、対応情報生成部112および実行制御部114の機能を示すブロック図である。歌唱者が歌唱を行っている間、A/D変換部14から供給される歌唱データは、歌唱データバッファ131内に順次蓄積される。解析部111は、歌唱データバッファ131内の歌唱データを一定時間長のフレームに区切って、フレーム毎に周波数解析等の解析を行い、歌唱音声のピッチ等の歌唱音響パラメータを生成する。ここで、歌唱音響パラメータは、歌唱音声のピッチ等、時間軸に沿って変化する単一の種類のパラメータであってもよく、歌唱音声のピッチ、音量等、時間軸に沿って変化する複数種類のパラメータからなるベクトルであってもよい。
実行制御部114は、解析部111により生成される歌唱音響パラメータを歌唱音響パラメータバッファ132に順次蓄積する。また、実行制御部114は、予め設定した終点までの歌唱音響パラメータが歌唱音響パラメータバッファ132に蓄積される都度、対応情報生成部112に対する第1の入力データおよび第2の入力データを第1の入力データバッファ133および第2の入力データバッファ134に設定する。ここで、第1の入力データは、歌唱音響パラメータバッファ132に蓄積された歌唱音響パラメータのうち実行制御部114により決定された始点から終点までの区間内の歌唱音響パラメータを正規化したデータである。また、第2の入力データは、不揮発性記憶部12内のカラオケ選択曲に対応したガイドボーカル音響パラメータのうち実行制御部114により決定された始点から終点までの区間内のガイドボーカル音響パラメータを正規化したデータである。ここで、歌唱音響パラメータを正規化したデータとは、例えば始点から終点までの歌唱音響パラメータについて加算平均と標準偏差を求め、始点から終点までの歌唱音響パラメータから加算平均を減じた各値を標準偏差により除算したデータである。ガイドボーカル音響パラメータを正規化したデータも同様である。なお、始点および終点の決定方法については後述する。
対応情報生成部112は、第1の入力データバッファ133内の第1の入力データの始点から終点までの各情報A(i)と、第2の入力データバッファ134内の第2の入力データの始点から終点までの各情報B(j)とを対応付ける対応情報を生成する動的時間整合を実行する。この動的時間整合を実行するため、対応情報生成部112は、差分マトリックスを生成する。実行制御部114は、この差分マトリックスを差分マトリックスバッファ135に格納する。ここで、差分マトリックスは、第1の入力データの始点から終点までの各情報A(i)(i=0〜imax)と第2の入力データの始点から終点までの各情報B(j)(j=0〜jmax)の各組み合わせについて算出された差分情報D(i、j)=|A(i)−B(j)|を要素とするマトリックスである。
対応情報生成部112は、この差分マトリクスにおいてその左下隅(すなわち、(0、0)成分)からその右上隅(imax、jmax)へ至る経路のうち、その経路上に位置する各成分の累積値が最小になる経路(以下、最適経路)Rを探索し、その最適経路Rの示す対応関係(第1の入力データの時間軸と第2の入力データの時間軸との対応関係)を表す対応情報を対応情報バッファ136に格納する。なお、演算の誤差等により不適切な最適経路Rが探索されるのを防止するため、予め設定した探索窓の範囲内に最適経路Rを制限してもよい。
より詳細に説明すると、対応情報生成部112は、以下に説明する規則にしたがって最適経路Rを探索する。
規則1.移動に伴い経路にある値の累積を求める。
規則2.最後に右上隅から選択された経路を逆に辿って先頭(左下隅)に至り、最適経路を決定する。
規則3.1回の移動は右、上、右上への移動に制限される。
規則3a.右と上への移動において、移動後の値の累積が等しい場合、右への移動が優先される。
規則3b.右と右上への移動において、移動後の値の累積が等しい場合、右への移動が優先される。
規則3c.上と右上への移動において、移動後の値の累積が等しい場合、上への移動が優先される。
規則3d.右、上、右上への移動において、移動後の値の累積を求める際、値への重み付けを行わない。
実行制御部114は、この対応情報生成部112により生成された対応情報を対応情報バッファ136に格納する。
そして、本実施形態において、実行制御部114は、対応情報生成部112が動的時間整合により第1および第2の入力データについて対応情報を生成した後、対応情報生成部112に再び動的時間整合を行わせる際に、当該対応情報により対応付けられた第1および第2の入力データの途中の各位置を各々の始点とする新たな第1および第2の入力データを生成して第1の入力データバッファ133および第2の入力データバッファ134に格納する。
図1において、評価部113は、実行制御部114による制御の下、対応情報バッファ136に格納された対応情報と差分マトリックスバッファ135に格納された差分マトリックスとに基づいて歌唱音声とガイドボーカルとの一致度に関する評価を行い、評価結果である採点データを評価結果バッファ137に格納する。
以上が本実施形態の構成である。
図3は本実施形態における実行制御部114の動作を示すフローチャートである。実行制御部114は、カラオケの伴奏が始り、歌唱者による歌唱が開始されると、歌唱者による歌唱が終了してステップS6の判断結果が「YES」となるまでの間、図3に示すステップS1〜S5の各処理を繰り返す。
まず、ステップS1において、実行制御部114は、歌唱データバッファ131から所定時間長の歌唱データを読み出して解析部111に与え、解析部111に歌唱データの解析を行わせ、解析部111から解析結果として出力される歌唱音響パラメータを歌唱音響パラメータバッファ132に格納する。
次にステップS2に進むと、実行制御部114は、事前に設定された始点から終点までの区間内の歌唱音響パラメータを歌唱音響パラメータバッファ132から読み出し、これに正規化を施し、第1の入力データとして第1の入力データバッファ133に格納する。ここで、歌唱開始後に最初に実行されるステップS2では、歌唱音響パラメータバッファ132に格納された歌唱音響パラメータの先頭の位置(すなわち、歌唱開始時刻)が始点とされ、この始点に対して所定時間を加えた時刻が終点とされる。また、歌唱開始後の2回目以降に実行されるステップS2では、後述するステップS4において設定される始点および終点が採用される。
次にステップS3に進むと、実行制御部114は、事前に設定された始点から終点までの区間内のガイドボーカル音響パラメータ122を不揮発性記憶部12から読み出し、これに正規化を施し、第2の入力データとして第2の入力データバッファ134に格納する。ここで、歌唱開始後に最初に実行されるステップS3では、不揮発性記憶部12内の当該歌唱曲に対応したガイドボーカル音響パラメータの先頭の位置(すなわち、ガイドボーカル開始時刻)が始点とされ、この始点に対して所定時間を加えた時刻が終点とされる。また、歌唱開始後の2回目以降に実行されるステップS3では、後述するステップS4において設定される始点および終点が採用される。
次にステップS4に進むと、実行制御部114は、第1の入力データバッファ133内の第1の入力データおよび第2の入力データバッファ134内の第2の入力データについての動的時間整合を対応情報生成部112に実行させる。この動的時間整合において、対応情報生成部112は、第1の入力データ(歌唱)の各情報A(i)と第2の入力データ(ガイドボーカル)の各情報B(j)の各組み合わせにおいて、各情報間の差分D(i、j)=|A(i)−B(j)|を算出し、この差分D(i、j)を要素とする差分マトリックスを生成する。ここで、第1の入力データを構成する情報A(i)および第2の入力データを構成する情報B(j)が、音のピッチと音量等、複数種類のパラメータからなるベクトルである場合には、それらのベクトルのベクトル空間におけるユークリッド距離を差分D(i、j)とする。そして、対応情報生成部112は、この差分マトリックスにおける始点同士の組に対応した要素から終点同士の組に対応した要素に至る経路であって、当該経路上の各要素(差分D(i、j))の累計値が最小となる経路を最適経路とし、この最適経路を示す対応情報を生成する。実行制御部114は、この動的時間整合により得られる対応情報を対応情報バッファ136に格納する。また、実行制御部114は、動的時間整合を実行するために対応情報生成部112が生成する差分マトリックスを差分マトリックスバッファ135に格納する。
また、ステップS4において、実行制御部114は、次回のステップS2における歌唱音響パラメータの始点および終点(すなわち、第1の入力データの始点および終点)を設定するとともに、次回のステップS3におけるガイドボーカル音響パラメータの始点および終点(すなわち、第2の入力データの始点および終点)を設定する。
さらに詳述すると、実行制御部114は、対応情報により対応付けられた第1の入力データの始点および終点間の中央付近の途中の位置と第2の入力データの始点および終点間の中央付近の途中の位置を次回のステップS2における歌唱音響パラメータの始点および次回のステップS3におけるガイドボーカル音響パラメータの始点とする。また、実行制御部114は、現状の歌唱音響パラメータの終点に所定時間を加えた時刻を次回のステップS2における歌唱音響パラメータの終点とし、現状のガイドボーカル音響パラメータの終点に所定時間を加えた時刻を次回のステップS3におけるガイドボーカル音響パラメータの終点とする。ただし、このようにして定まるガイドボーカル音響パラメータの終点がガイドボーカル音響パラメータの終了時刻−α(αは所定の値)以上の範囲にある場合には、歌唱データまたはガイドボーカル音響パラメータの終了時刻を次回の歌唱音響パラメータまたはガイドボーカル音響パラメータの終点とする。
次にステップS5に進むと、実行制御部114は、評価部113に歌唱の評価を行わせる。このステップS5において、評価部113は、対応情報バッファ136内の対応情報を参照することにより、差分マトリックスバッファ135から差分マトリックスの各要素のうち対応情報が示す最適経路上の各要素を読み出す。そして、読み出した各要素の累計値に例えば所定の重み係数を乗算する等して歌唱の採点データとし、この採点データを評価結果バッファ137に格納する。
この評価結果バッファ137内の採点データは、表示部16に表示される。採点データは、数値として表示部16に表示してもよいが、横軸を時刻、縦軸を採点とする座標に採点データをグラフ表示してもよい。なお、このような表示をする代わりに、あるいはこのような表示に加えて、採点データをイラスト表示してもよい。
以下同様であり、実行制御部114は、歌唱が終了するまでの間、ステップS1〜S5の各処理を繰り返す。
図4〜図7は、本実施形態の動作例を示す図である。これらの図4〜図7において、縦軸は歌唱音響パラメータの時間軸であり、横軸はガイドボーカル音響パラメータの時間軸である。また、図4〜図7において、Ts(0)は歌唱開始時刻、Ts(M)は歌唱終了時刻、Tt(0)はガイドボーカル開始時刻、Tt(N)はガイドボーカル終了時刻である。また、図4〜図7において、時刻Ts(0)、Ts(1)、Ts(2)、Ts(3)およびTs(4)の各間の時間長は各々一定の時間長Tであり、時刻Tt(0)、Tt(1)、Tt(2)、Tt(3)およびTt(4)の各間の時間長も各々一定の時間長Tである。さらに図4〜図7において、ガイドボーカルの終了時刻Tt(N)は、時刻Ts(4)−α以上の範囲にある。また、図4〜図7には、仮に歌唱開始時刻から歌唱終了時刻を第1の入力データの始点および終点とし、ガイドボーカル開始時刻およびガイドボーカル終了時刻を第2の入力データの始点および終点として動的時間整合を行ったとした場合に得られる対応情報が破線で例示されている。図8はこの動作例における揮発性記憶部13内の各バッファ領域の使用状況を示す図である。以下、これらの図4〜図8と、前掲図3のフローチャートを参照し、本実施形態の動作例を説明する。
歌唱開始後の最初のステップS1において、実行制御部114は、図8に示す始点Ts(0)から終点Ts(2)までの区間の歌唱データを歌唱データバッファ131から読み出して解析部111に与え、始点Ts(0)から終点Ts(2)までの区間の歌唱音響パラメータを歌唱音響パラメータバッファ132に格納する。
次に歌唱開始後の最初のステップS2において、実行制御部114は、図8に示す始点Ts(0)から終点Ts(2)までの区間の歌唱音響パラメータを正規化し、第1の入力データとして第1の入力データバッファ133に格納する。
次に歌唱開始後の最初のステップS3において、実行制御部114は、図8に示すように、不揮発性記憶部12内の始点Tt(0)から終点Tt(2)までの区間のガイドボーカル音響パラメータを正規化し、第2の入力データとして第2の入力データバッファ134に格納する。
次に歌唱開始後の最初のステップS4において、実行制御部114は、第1の入力データ(Ts(0)〜Ts(2))と第2の入力データ(Tt(0)〜Tt(2))についての動的時間整合を対応情報生成部112に実行させる。このとき、対応情報生成部112は、始点Ts(0)から終点Ts(2)までの第1の入力データの各情報A(i)と、始点Tt(0)から終点Tt(2)までの第2の入力データの各情報B(j)の各組み合わせについて差分を算出し、この差分を要素とする差分マトリックスを生成する。そして、実行制御部114は、この差分マトリックスを図8に示すように差分マトリックスバッファ135に格納する。また、対応情報生成部112は、この差分マトリックスに基づいて始点(Ts(0)、Tt(0))および終点(Ts(2)、Tt(2))間の最適経路を示す対応情報を生成する。そして、実行制御部114は、この対応情報を図8に示すように対応情報バッファ136に格納する。図4にはこの始点(Ts(0)、Tt(0))および終点(Ts(2)、Tt(2))間の最適経路を示す対応情報が実線で示されている。
また、このステップS4において、実行制御部114は、次回のステップS2における歌唱音響パラメータの始点および終点を設定するとともに、次回のステップS3におけるガイドボーカル音響パラメータの始点および終点を設定する。
まず、実行制御部114は、次の規則4、5に従って次回の始点の設定を行う。
規則4:第1および第2の入力データから生成された対応情報が、当該第1の入力データの終点から所定時間Tだけ前の位置を当該第2の入力データの終点から所定時間Tだけ前の位置よりも終点側の位置に対応付けている場合、当該第1の入力データの終点から所定時間Tだけ前の位置を新たな第1の入力データの始点(すなわち、次回のステップS2における歌唱音響パラメータの始点)とし、当該新たな第1の入力データの始点に対応情報によって対応付けられた第2の入力データの位置を新たな第2の入力データの始点(すなわち、次回のステップS3におけるガイドボーカル音響パラメータの始点)とする。
規則5:第1および第2の入力データから生成された対応情報が、当該第2の入力データの終点から所定時間Tだけ前の位置を当該第1の入力データの終点から所定時間Tだけ前の位置よりも終点側の位置に対応付けている場合、当該第2の入力データの終点から所定時間Tだけ前の位置を新たな第2の入力データの始点(すなわち、次回のステップS3におけるガイドボーカル音響パラメータの始点)とし、当該新たな第2の入力データの始点に対応情報によって対応付けられた第1の入力データの位置を新たな第1の入力データの始点(すなわち、次回のステップS2における歌唱音響パラメータの始点)とする。
このような規則4、5を使用するのは、次回の動的時間整合に使用する第1および第2の入力データの始点を時間軸上において極力後の位置とし、歌唱データの入力速度に対して対応情報の生成速度を追従させるためである。
また、実行制御部114は、現状の歌唱音響パラメータおよびガイドボーカル音響パラメータの各終点に所定時間Tを加えた各時刻を次回のステップS2およびS3における歌唱音響パラメータおよびガイドボーカル音響パラメータの各終点とする。
この例において、動的時間整合により得られた対応情報は、図4に示すように、第1の入力データの終点Ts(2)から所定時間Tだけ前の時刻Ts(1)を、第2の入力データの終点Tt(2)から所定時間Tだけ前の時刻Tt(1)よりも終点Tt(2)よりの時刻Tt(1’)に対応付けている。そこで、実行制御部114は、上記規則4を適用し、時刻Ts(1)を次回のステップS2における第1の入力データ(歌唱音響パラメータ)の始点とし、時刻Tt(1’)を次回のステップS2における第2の入力データ(ガイドボーカル音響パラメータ)の始点とする。また、実行制御部114は、現状の終点である時刻Ts(2)から所定時間Tだけ後の時刻Ts(3)を次回のステップS2における第1の入力データの終点とし、現状の終点である時刻Tt(2)から所定時間Tだけ後の時刻Tt(3)を次回のステップS3における第2の入力データの終点とする。
次に歌唱開始後の最初のステップS5において、実行制御部114は、評価部113に歌唱の評価を行わせる。このとき、評価部113は、対応情報の前半部分、より具体的には第1の入力データにおける時刻Ts(0)から時刻Ts(1)までの区間の各情報を第2の入力データにおける時刻Tt(0)から時刻Tt(1’)までの区間の各情報に対応付ける前半区間の対応情報を参照する。そして、評価部113は、この前半区間の対応情報により対応付けられた第1の入力データの前半区間内の各情報と第2の入力データの前半区間内の各情報との差分を差分マトリックスバッファ135内の差分マトリックスから読み出し、これらの差分の累計値に基づいて歌唱の採点データを生成し、図8に示すように評価結果バッファ137に格納する。
次に歌唱開始後の2回目のステップS1において、実行制御部114は、図8に示す時刻Ts(2)から終点Ts(3)までの区間の歌唱データを歌唱データバッファ131から読み出して解析部111に与え、時刻Ts(2)から時刻Ts(3)までの区間の歌唱音響パラメータを歌唱音響パラメータバッファ132に格納する。
次に歌唱開始後の2回目のステップS2において、実行制御部114は、事前に設定された始点および終点、すなわち、図8に示す始点Ts(1)から終点Ts(3)までの区間の歌唱音響パラメータを正規化し、第1の入力データとして第1の入力データバッファ133に格納する。
次に歌唱開始後の2回目のステップS3において、実行制御部114は、図8に示すように、事前に設定された始点および終点、すなわち、不揮発性記憶部12内の始点Tt(1’)から終点Tt(3)までの区間のガイドボーカル音響パラメータを正規化し、第2の入力データとして第2の入力データバッファ134に格納する。
次に歌唱開始後の2回目のステップS4において、実行制御部114は、第1の入力データ(Ts(1)〜Ts(3))と第2の入力データ(Tt(1’)〜Tt(3))についての動的時間整合を対応情報生成部112に実行させる。このとき実行制御部114は、対応情報生成部112が動的時間整合のために生成する差分マトリックスを図8に示すように差分マトリックスバッファ135に格納する。また、対応情報生成部112は、この差分マトリックスに基づいて始点(Ts(1)、Tt(1’))および終点(Ts(3)、Tt(3))間の最適経路を示す対応情報を生成する。そして、実行制御部114は、この対応情報を図8に示すように対応情報バッファ136に格納する。
図5にはこの始点(Ts(1)、Tt(1’))および終点(Ts(3)、Tt(3))間の最適経路を示す対応情報が実線で示されている。また、図5には、この対応情報とともに、初回のステップS4において得られた対応情報(すなわち、始点(Ts(0)、Tt(0))および終点(Ts(2)、Tt(2))間の最適経路を示す対応情報)が実線で示されている。
また、このステップS4において、実行制御部114は、次回のステップS2における歌唱音響パラメータの始点および終点を設定するとともに、次回のステップS3におけるガイドボーカル音響パラメータの始点および終点を設定する。
この例において、動的時間整合により得られた対応情報は、図5に示すように、第2の入力データ(ガイドボーカル音響パラメータ)の終点Tt(3)から所定時間Tだけ前の時刻Tt(2)を第1の入力データ(歌唱音響パラメータ)の終点Ts(3)から所定時間Tだけ前の時刻Ts(2)よりも終点Ts(3)よりの時刻Ts(2’)に対応付けている。
そこで、実行制御部114は、上記規則5を適用し、時刻Ts(2’)を次回のステップS2における第1の入力データ(歌唱音響パラメータ)の始点とし、時刻Tt(2)を次回のステップS2における第2の入力データ(ガイドボーカル音響パラメータ)の始点とする。また、実行制御部114は、現状の終点である時刻Ts(3)から所定時間Tだけ後の時刻Ts(4)を次回のステップS2における第1の入力データ(歌唱音響パラメータ)の終点とし、現状の終点である時刻Tt(3)から所定時間Tだけ後の時刻Tt(4)を次回のステップS3における第2の入力データ(ガイドボーカル音響パラメータ)の終点とする。
次に歌唱開始後の2回目のステップS5において、実行制御部114は、評価部113に歌唱の評価を行わせる。このとき、評価部113は、対応情報の前半部分、より具体的には第1の入力データにおける時刻Ts(1)から時刻Ts(2’)までの区間の各情報を第2の入力データにおける時刻Tt(1’)から時刻Tt(2)までの区間の各情報に対応付ける前半区間の対応情報を参照する。そして、評価部113は、この前半区間の対応情報により対応付けられた第1の入力データの前半区間内の各情報と第2の入力データの前半区間内の各情報との差分を差分マトリックスバッファ135内の差分マトリックスから読み出し、これらの差分の累計値に基づいて歌唱の採点データを生成し、図8に示すように評価結果バッファ137に格納する。
次に歌唱開始後の3回目のステップS1において、実行制御部114は、図8に示す時刻Ts(3)から終点Ts(4)までの区間の歌唱データを歌唱データバッファ131から読み出して解析部111に与え、時刻Ts(3)から時刻Ts(4)までの区間の歌唱音響パラメータを歌唱音響パラメータバッファ132に格納する。
次に歌唱開始後の3回目のステップS2において、実行制御部114は、事前に設定された始点および終点、すなわち、図8に示す始点Ts(2’)から終点Ts(4)までの区間の歌唱音響パラメータを正規化し、第1の入力データとして第1の入力データバッファ133に格納する。
次に歌唱開始後の3回目のステップS3において、実行制御部114は、図8に示すように、事前に設定された始点および終点、すなわち、不揮発性記憶部12内の始点Tt(2)から終点Tt(4)までの区間のガイドボーカル音響パラメータを正規化し、第2の入力データとして第2の入力データバッファ134に格納する。
次に歌唱開始後の3回目のステップS4において、実行制御部114は、第1の入力データ(Ts(2’)〜Ts(4))と第2の入力データ(Tt(2)〜Tt(4))についての動的時間整合を対応情報生成部112に実行させる。このとき実行制御部114は、対応情報生成部112が動的時間整合のために生成する差分マトリックスを図8に示すように差分マトリックスバッファ135に格納する。また、対応情報生成部112は、この差分マトリックスに基づいて始点(Ts(2’)、Tt(2))および終点(Ts(4)、Tt(4))間の最適経路を示す対応情報を生成する。そして、実行制御部114は、この対応情報を図8に示すように対応情報バッファ136に格納する。図6にはこの始点(Ts(2’)、Tt(2))および終点(Ts(4)、Tt(4))間の最適経路を示す対応情報が実線で示されている。また、図6には、この対応情報とともに、初回および2回目の各ステップS4において得られた対応情報が実線で示されている。
また、このステップS4において、実行制御部114は、生成した対応情報に基づいて、次回のステップS2における歌唱音響パラメータの始点および終点を設定するとともに、次回のステップS3におけるガイドボーカル音響パラメータの始点および終点を設定する。
この例において、動的時間整合により得られた対応情報は、図6に示すように、第1の入力データ(歌唱音響パラメータ)の終点Ts(4)から所定時間Tだけ前の時刻Ts(3)を第2の入力データ(ガイドボーカル音響パラメータ)の終点Tt(4)から所定時間Tだけ前の時刻Tt(3)よりも終点Tt(4)よりの時刻Tt(3’)に対応付けている。
そこで、実行制御部114は、時刻Ts(3)を次回のステップS2における第1の入力データ(歌唱音響パラメータ)の始点とし、時刻Tt(3’)を次回のステップS2における第2の入力データ(ガイドボーカル音響パラメータ)の始点とする。また、実行制御部114は、現状の終点である時刻Ts(4)と時刻Tt(4)とに基づいて、次回のステップS2における歌唱音響パラメータの終点と、次回のステップS3におけるガイドボーカル音響パラメータの終点とを設定する。この例では、時刻Tt(4)に所定時間Tを加えた時刻は、ガイドボーカル終了時刻Tt(N)−α以上の範囲にある。そこで、実行制御部114は、歌唱終了時刻Ts(M)を次回のステップS2における歌唱音響パラメータの終点とし、ガイドボーカル終了時刻Tt(N)を次回のステップS3におけるガイドボーカル音響パラメータの終点とする。
次に歌唱開始後の3回目のステップS5において、実行制御部114は、評価部113に歌唱の評価を行わせる。このとき、評価部113は、対応情報の前半部分、より具体的には第1の入力データにおける時刻Ts(2’)から時刻Ts(3)までの区間の各情報を第2の入力データにおける時刻Tt(2)から時刻Tt(3’)までの区間の各情報に対応付ける前半区間の対応情報を参照する。そして、評価部113は、この前半区間の対応情報により対応付けられた第1の入力データの前半区間内の各情報と第2の入力データの前半区間内の各情報との差分を差分マトリックスバッファ135内の差分マトリックスから読み出し、これらの差分の累計値に基づいて歌唱の採点データを生成し、図8に示すように評価結果バッファ137に格納する。
次に歌唱開始後の4回目のステップS1において、実行制御部114は、図8に示す時刻Ts(4)から時刻Ts(M)までの区間の歌唱データを歌唱データバッファ131から読み出して解析部111に与え、時刻Ts(4)から時刻Ts(M)までの区間の歌唱音響パラメータを歌唱音響パラメータバッファ132に格納する。
次に歌唱開始後の4回目のステップS2において、実行制御部114は、事前に設定された始点および終点、すなわち、図8に示す始点Ts(3)から終点Ts(M)までの区間の歌唱音響パラメータを正規化し、第1の入力データとして第1の入力データバッファ133に格納する。
次に歌唱開始後の4回目のステップS3において、実行制御部114は、図8に示すように、事前に設定された始点および終点、すなわち、不揮発性記憶部12内の始点Tt(3’)から終点Tt(N)までの区間のガイドボーカル音響パラメータを正規化し、第2の入力データとして第2の入力データバッファ134に格納する。
次に歌唱開始後の4回目のステップS4において、実行制御部114は、第1の入力データ(Ts(3)〜Ts(M))と第2の入力データ(Tt(3’)〜Tt(N))についての動的時間整合を対応情報生成部112に実行させる。このとき実行制御部114は、対応情報生成部112が動的時間整合のために生成する差分マトリックスを図8に示すように差分マトリックスバッファ135に格納する。また、対応情報生成部112は、この差分マトリックスに基づいて始点(Ts(3)、Tt(3’))および終点(Ts(M)、Tt(N))間の最適経路を示す対応情報を生成する。そして、実行制御部114は、この対応情報を図8に示すように対応情報バッファ136に格納する。図7にはこの始点(Ts(3)、Tt(3’))および終点(Ts(M)、Tt(N))間の最適経路を示す対応情報が実線で示されている。また、図7には、この対応情報とともに、初回、2回目および3回目の各ステップS4において得られた対応情報が実線で示されている。
なお、このステップS4では、その後、ステップS2およびステップS3を実行する可能性がないので、次回のステップS2における歌唱音響パラメータの始点および終点の設定、次回のステップS3におけるガイドボーカル音響パラメータの始点および終点の設定を行わない。
次に歌唱開始後の4回目のステップS5において、評価部113は、第1の入力データにおける時刻Ts(3)から時刻Ts(M)までの区間の各情報を第2の入力データにおける時刻Tt(3’)から時刻Tt(N)までの区間の各情報に対応付ける対応情報を参照する。そして、評価部113は、この対応情報により対応付けられた第1の入力データの各情報と第2の入力データの各情報との差分を差分マトリックスバッファ135内の差分マトリックスから読み出し、これらの差分の累計値に基づいて歌唱の採点データを生成し、図8に示すように評価結果バッファ137に格納する。
以上が本実施形態の動作例である。
次に本実施形態と比較例との比較を行い、本実施形態の効果について説明する。第1の比較例では、図4〜図7に破線で示したように、曲の全区間に亙る歌唱音響パラメータおよびガイドボーカル音響パラメータを第1および第2の入力データとして動的時間整合を行う。この場合、歌唱音響パラメータおよびガイドボーカル音響パラメータの始点同士の近傍の区間と終点同士の近傍の区間を除いた広範囲の区間において正確な対応情報が得られる。しかし、この第1の比較例では、曲の全区間に亙る歌唱音響パラメータおよびガイドボーカル音響パラメータを利用して対応情報を得るための動的時間整合の演算を行うので、演算に使用するデータを記憶するためのメモリの容量が大きくなる問題がある。また、第1の比較例では、曲の全区間に亙る歌唱音響パラメータが得られてから対応情報を生成するための動的時間整合が開始されるため、歌唱の評価結果が得られるのは、歌唱が終わった後になる。このため、曲の歌唱中に自分が上手く歌唱できているかをリアルタイムに知りたい歌唱者の要求に応えることができない。
これに対し、本実施形態では、実行制御部114が第1および第2の入力データを対応情報生成部112に与えると、対応情報生成部112は、第1の入力データの始点から終点までの各情報と第2の入力データの始点から終点までの各情報とを対応付ける対応情報を生成する。次に実行制御部114は、この対応情報により対応付けられた第1および第2の入力データの途中の各位置を各々の始点とする新たな第1および第2の入力データを対応情報生成部112に与える。本実施形態では、このように部分的に重複して前後した複数組の第1および第2の入力データを実行制御部114が対応情報生成部112に順次与え、対応情報を生成させる。従って、本実施形態によれば、動的時間整合の演算に使用するデータを記憶するためのメモリの容量を第1の比較例に比べて格段と減らすことができる。
例えば図8において、始点(Ts(0)、Tt(0))および終点(Ts(2)、Tt(2))間の第1および第2の入力データの動的時間整合を行うために必要となるデータは、歌唱データバッファ131内の時刻Ts(0)−Ts(2)間の歌唱データ、歌唱音響パラメータバッファ132内の時刻Ts(0)−Ts(2)間の歌唱音響パラメータ、第1の入力データバッファ133内の時刻Ts(0)−Ts(2)間の第1の入力データ、第2の入力データバッファ134内の時刻Tt(0)−Tt(2)間の第2の入力データ、差分マトリックスバッファ135内の始点(Ts(0)、Tt(0))および終点(Ts(2)、Tt(2))間の領域に対応した差分マトリックス、対応情報バッファ136内の始点(Ts(0)、Tt(0))および終点(Ts(2)、Tt(2))間の領域に対応した対応情報である。これらの情報は、その後に行う始点(Ts(1)、Tt(1’))および終点(Ts(3)、Tt(3))間の第1および第2の入力データの動的時間整合では不要であるため、当該動的時間整合の際には、当該動的時間整合の演算を行うために使用するデータを上書きしても構わない。よって本実施形態によれば、動的時間整合の演算に使用するデータを記憶するためのメモリの容量を第1の比較例に比べて格段と減らすことができる。
また、本実施形態によれば、部分的に重複して前後した複数組の第1および第2の入力データを実行制御部114が対応情報生成部112に順次与え、対応情報を生成させ、この対応情報に基づいて歌唱の評価を行う。従って、例えば図8に示すように、まず、始点(Ts(0)、Tt(0))および終点(Ts(1)、Tt(1’))間の区間について評価結果が出力され、次いで始点(Ts(1)、Tt(1’))および終点(Ts(2’)、Tt(2))間の区間について評価結果が出力され、…という具合に歌唱者が行う歌唱に追従して歌唱の評価結果が順次出力される。従って、本実施形態によれば、曲の歌唱中に自分が上手く歌唱できているかをリアルタイムに知りたい歌唱者の要求に応えることができる。
第2の比較例では、図9に示すように、曲の全区間に亙る歌唱音響パラメータおよびガイドボーカル音響パラメータを一定時間長の小区間に各々区切り、歌唱音響パラメータおよびガイドボーカル音響パラメータの小区間の組を順次切り換えて動的時間整合を行う。この第2の比較例によれば、動的時間整合の演算に使用するデータを記憶するためのメモリの容量を格段と減らすことができる。また、この第2の比較例によれば、曲の全区間に亙る歌唱音響パラメータおよびガイドボーカル音響パラメータを小区間に各々区切り、歌唱音響パラメータおよびガイドボーカル音響パラメータの小区間の組毎に動的時間整合を行って歌唱の評価を行うので、曲の歌唱中に自分が上手く歌唱できているかをリアルタイムに知りたい歌唱者の要求に応えることができる。
しかし、この第2の比較例には、動的時間整合により得られる対応情報が不正確になる問題がある。さらに詳述すると、例えば図9において、始点(Ts(0)、Tt(0))および終点(Ts(1)、Tt(1))間の動的時間整合では、当該始点および終点間の領域において、当該始点から当該終点に至る経路であって、経路上における第1の入力データ(歌唱)および第2の入力データ(ガイドボーカル)間の差分の累積値が最小となる最適経路を探索し、その最適経路を示す対応情報を生成する。次に始点(Ts(1)、Tt(1))および終点(Ts(2)、Tt(2))間の動的時間整合では、当該始点および終点間の領域において、当該始点から当該終点に至る経路であって、経路上における第1の入力データ(歌唱)および第2の入力データ(ガイドボーカル)間の差分の累積値が最小となる最適経路を探索し、その最適経路を示す対応情報を生成する。以下、同様であり、第2の比較例において生成される対応情報が示す最適経路は、動的時間整合において始点または終点となる各位置(Ts(0)、Tt(0))、(Ts(1)、Tt(1))、(Ts(2)、Tt(2))、(Ts(3)、Tt(3))、…を必ず通過する。ところが、曲の全区間に亙る歌唱音響パラメータおよびガイドボーカル音響パラメータの各部を対応付ける正確な対応情報は、図9において破線で例示するように、動的時間整合において始点または終点となる各位置を通過しない曲線となり得る。このように第2の比較例では、動的時間整合により得られる対応情報が示す最適経路が各位置(Ts(0)、Tt(0))、(Ts(1)、Tt(1))、(Ts(2)、Tt(2))、(Ts(3)、Tt(3))、…を通過する経路に制限されるため、正確な対応情報が得られない問題がある。
これに対し、本実施形態において、実行制御部114は、対応情報生成部112が例えば図4に示す始点(Ts(0)、Tt(0))および終点(Ts(2)、Tt(2))間の第1および第2の入力データについての対応情報を生成した後、図5に示すように、当該対応情報により対応付けられた第1および第2の入力データの途中の各位置(Ts(1)、Tt(1’))を各々の始点とする新たな第1および第2の入力データを対応情報生成部112に与え、新たな第1および第2の入力データの動的時間整合を行わせる。以下同様であり、実行制御部114は、対応情報生成部112が生成した対応情報により対応付けられた第1および第2の入力データの途中の各位置を各々の始点とする新たな第1および第2の入力データを対応情報生成部112に与える動作を繰り返す。ここで、対応情報により対応付けられた第1および第2の入力データの途中の位置は第1および第2の入力データの各終点から離れているため、この第1および第2のデータの途中の位置は正確に対応している確率が高い。従って、本実施形態によれば、図4〜図7に示すように、曲の全区間を通じて正確な対応情報(具体的には破線と重なる対応情報)が得られる。
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
(1)上記実施形態では、動的時間整合の処理対象となる歌唱音響パラメータおよびガイドボーカル音響パラメータの始点および終点間の各区間を旧区間から新区間に切り換える際、旧区間と新区間を一定時間Tだけオーバラップさせた。しかし、このオーバラップ長は、常に一定長である必要はなく、例えばガイドボーカル音響パラメータにおいてピッチの変化が激しい区間はオーバラップ長を長くする、といった具合に、曲の進行に合わせて変化させてもよい。あるいはオーバラップ長を指定するオーバラップ長情報をガイドボーカル音響パラメータに重畳しておき、曲の進行に合わせてオーバラップ長情報をガイドボーカル音響パラメータから読み出して、オーバラップ長の制御に利用するようにしてもよい。
(2)上記実施形態では、動的時間整合の処理対象となる歌唱音響パラメータおよびガイドボーカル音響パラメータの始点および終点間の各区間の長さを一定時間長2Tとした。しかし、この区間の長さは必ずしも一定である必要はなく、曲の進行に合わせて変化させてもよい。この場合も、始点および終点間の区間長を指定する区間長情報をガイドボーカル音響パラメータに重畳しておき、曲の進行に合わせて区間長情報をガイドボーカル音響パラメータから読み出して、区間長の制御に利用するようにしてもよい。
(3)上記実施形態では、動的時間整合の処理対象となる歌唱音響パラメータの始点および終点間の長さと、動的時間整合の処理対象となるガイドボーカルパラメータの始点および終点間の長さを同じ長さにしたが、両者の長さを異ならせてもよい。
(4)この発明はカラオケ装置以外の装置にも適用可能である。例えば言語学習装置において、入力されたユーザの音声データと比較対象となる教師データとの動的時間整合を行い、ユーザの音声データを採点するのに上記実施形態を利用してもよい。また、この言語学習装置において、ユーザの音声データを採点を行うだけでなく、ユーザの音声データが示す発声タイミングと教師データが示す発声タイミングとの時間関係を示す情報(ある箇所の発声が遅れている、あるいは早すぎる、といった情報)をユーザに提供し、ユーザに発声の練習を行わせるようにしてもよい。あるいは楽器演奏練習装置において、入力されたユーザの楽器演奏データと比較対象となる教師データとの動的時間整合を行い、ユーザの楽器演奏データを採点するのに上記実施形態を利用してもよい。また、この楽器演奏練習装置において、ユーザの楽器演奏データを採点を行うだけでなく、ユーザの楽器演奏データが示す演奏タイミングと教師データが示す演奏タイミングとの時間関係を示す情報をユーザに提供し、ユーザに楽器演奏の練習を行わせるようにしてもよい。
(5)上記実施形態において解析部111と評価部113を省略し、対応情報生成部112と実行制御部114の機能のみを備えたタイムアライメント装置を構成してもよい。
(6)上記実施形態において、第1および第2の入力データは、複数の情報を時間軸に沿って序列化した時系列データであった。そして、上記実施形態では、この発明を2つの時系列データ間の対応付けを行うタイムアライメント装置に適用した。しかし、この発明は、時系列データ以外のデータ、すなわち、任意の軸に沿って序列化された情報からなる任意のデータ間の対応付けをも行う一般的なアライメント装置にも適用可能である。例えば、ある基準位置から全方位に波動(例えば地震の波動)が伝搬する場合において、第1の方向に沿った各位置において観測される物理量(例えば地表の変位)と、第2の方向に沿った各位置において観測される物理量とを対応付けるのにこの発明を利用してもよい。
(7)上記実施形態では、第1の入力データと第2の入力データとの対応付けを行った。しかし、この発明の適用対象は、このような2つの入力データ間の対応付けを行うアライメント装置に限定されるものではない。この発明は、3つ以上の複数の入力データ間の対応付けを行うアライメント装置にも適用可能である。例えばカラオケにおいて、AさんとBさんが歌唱を行う場合に、上記実施形態の歌唱評価装置1が、Aさんの歌唱の歌唱音響パラメータとガイドボーカルパラメータとの動的時間整合を行うのと並行し、Bさんの歌唱の歌唱音響パラメータとガイドボーカルパラメータとの動的時間整合を行い、Aさんの歌唱の採点とBさんの歌唱の採点を行うようにしてもよい。あるいは例えばカラオケにおいて、AさんとBさんとCさんが歌唱を行う場合に、上記実施形態の歌唱評価装置1が、Aさんの歌唱の歌唱音響パラメータとBさんの歌唱の歌唱音響パラメータとの動的時間整合を行うのと並行し、Bさんの歌唱の歌唱音響パラメータとCさんの歌唱の歌唱音響パラメータとの動的時間整合を行い、Aさん、Bさん、Cさんの歌唱が時間的関係を考慮した場合にどの程度類似しているかの採点を行うようにしてもよい。
(8)上記実施形態では、歌唱評価装置1を、パーソナルコンピュータ、携帯電話端末、スマートフォン、タブレット型端末等により構成した。しかし、そのようにする代わりに、クラウド技術を利用し、ネットワーク上のコンピュータに歌唱評価装置1の処理を実行させてもよい。