説明

ロボット

【課題】雑音に対するロバスト性を確保するとともに、テンポ変動への追従性及びテンポ推定の安定性を確保する。
【解決手段】音楽音響信号MAから自己音声信号SVの音声成分をエコーキャンセルした音響信号にフィルタ処理を行い、オンセットを強調したオンセットベクトルを出力するSobelフィルタ部21と、オンセットベクトルに正規化相互相関関数を用いた時間周波数パターンマッチングを行ってビート間隔信頼度を求める時間周波数パターンマッチング部22と、ビート間隔信頼度に基づいてビート間隔を推定してテンポTPを出力するビート間隔推定部23とを備えた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音楽やスキャット等のビートを有する音響情報からテンポ及びビート時刻を推定するビートトラッキング技術を適用して音楽インタラクションを行うロボットの技術に関する。
【背景技術】
【0002】
近年、ヒューマノイドやホームロボット等、人間とソーシャル・インタラクションを行うロボットの研究が盛んに行われている。その中でも、ロボットに自らの耳で音楽を聴かせ、その音楽に合わせて歌唱させたり体を動かしたりさせる音楽インタラクションに関する研究は、ロボットに自然で豊かな表現をさせるために重要である。この技術分野においては、例えば、マイクロホンで集音したライブ音楽からリアルタイムにビートを抽出し、そのビートに同期させてロボットを踊らせる技術が知られている(例えば、特許文献1参照)。
【0003】
このようなロボットに音楽を聴かせて、その音楽のリズムに合わせてロボットを動作させる場合、音楽の音響情報からテンポを推定する必要がある。従来では、音響情報に基づいた自己相関関数を計算することによりテンポを推定していた(例えば、特許文献1,2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−33851号公報
【特許文献2】特開2002−116754号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、音楽を聴かせたロボットに、その音楽の音響情報からビートを抽出しテンポを推定させる場合、主に二つの対応すべき技術的課題がある。第一の課題は、雑音に対するロバスト性の確保である。ロボットに音楽を聴かせるためには、集音装置、例えばマイクロホンを搭載することが必要である。ロボットの外見の見栄えを考慮すると、集音装置はロボット体内に組み込まれることが望ましい。
【0006】
そうすると、その集音装置が集音する音には様々な雑音が含まれることになる。すなわち、集音装置が集音する音には、ロボットの周囲で発生する環境音はもちろんのこと、ロボット自身から発生する様々な音が雑音として含まれる。例えば、ロボット自身から発生する音として、ロボットの足音、体内で駆動するモータの動作音、自発音声等が挙げられる。特に、自発音声は、音声発生源であるスピーカが集音装置の比較的近くに組み込まれるため、周囲の環境音よりも入力レベルの大きな雑音となる。このように、集音された音楽の音響信号のS/N比が悪くなると、音響信号からビートを抽出する精度が低くなり、その結果テンポ推定の精度も低くなる。
【0007】
特に、ロボットの音楽インタラクションに求められる、集音した音楽に合わせて歌唱させたり発声させたりする動作においては、雑音となる自発音声のビートに周期性があるため、ロボットによるテンポ推定動作に不利な影響を与えることになる。
【0008】
第二の課題は、テンポ変動への追従性(適応性)及びテンポ推定の安定性の確保である。例えば、人間の演奏や歌唱による音楽のテンポは、演奏者や歌唱者の技量によって、又は楽曲の曲調等によって常に一定ではなく、曲の途中で変動することが通常である。ロボットに、そのようなテンポの一定しない音楽を聴かせて、その音楽のビートに同期させて動作させる場合、テンポ変動への高い追従性が求められる。その一方で、テンポが比較的一定しているときは、安定してテンポを推定できることが望ましい。一般的に、自己相関の計算を行って安定してテンポを推定するためには、テンポ推定処理で用いられる時間窓を長く設定するのがよいが、そのかわりテンポ変動への追従性は悪くなる。すなわち、テンポ変動への追従性の確保と、テンポ推定の安定性の確保とはトレードオフの関係にある。しかしながら、ロボットの音楽インタラクションにおいては、その両方の性能を良好に保つ必要がある。
【0009】
ここで、第一及び第二の課題の関係をみると、第一の課題である雑音に対するロバスト性を確保するためには、第二の課題の一方であるテンポ推定の安定性を確保する必要があると考えられるが、その場合、第二の課題の他方であるテンポ変動への追従性の確保が困難になるという問題がある。
【0010】
上記特許文献1,2には、上記第一の課題についての明示的記載及び示唆は一切ない。また、特許文献1,2を含む従来技術では、テンポ推定処理において時間方向の自己相関を求めており、テンポ推定の安定性を確保するために時間窓を長く設定するとテンポ変動への追従性が悪くなり上記第二の課題に対応できない。
【0011】
そこで、本発明は上記問題に鑑みてなされたものであり、雑音に対するロバスト性を確保するとともに、テンポ変動への追従性及びテンポ推定の安定性を確保して精度の高い音楽インタラクションを行うことのできるロボットを提供することを目的とする。
【課題を解決するための手段】
【0012】
上記の課題を解決するため、請求項1記載のロボット(例えば、実施例における脚式移動音楽ロボット4)は、音楽音響を集音して音楽音響信号(例えば、実施例における音楽音響信号MA)に変換する集音手段(例えば、実施例における耳機能部310)と、音声合成処理によって歌唱又はスキャットに係る自己音声信号(例えば、実施例における自己音声信号SV)を生成する音声信号生成手段(例えば、実施例における歌唱制御部220,スキャット制御部230)と、前記自己音声信号を音に変換して出力する音出力手段(例えば、実施例における発声機能部320)と、前記音楽音響信号と前記自己音声信号とを入力し、前記音楽音響信号から前記自己音声信号の音声成分を抑制した音響信号を生成する自己音声抑制手段(例えば、実施例における自己発声音抑制部10)と、前記音響信号にフィルタ処理を行ってオンセットを強調するフィルタ手段(例えば、実施例におけるSobelフィルタ部21)と、前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算するビート間隔信頼度計算手段(例えば、実施例における時間周波数パターンマッチング部22)と、前記計算されたビート間隔信頼度に基づいてビート間隔を推定する(例えば、実施例におけるテンポTP)ビート間隔推定手段(例えば、実施例におけるビート間隔推定部23)と、前記フィルタ手段においてオンセットの強調された音響信号と前記ビート間隔推定手段において推定されたビート間隔とに基づいて、ビート時刻信頼度を計算するビート時刻信頼度計算手段(例えば、実施例における近接ビート信頼度計算部31,連続ビート信頼度計算部32,ビート時刻信頼度計算部33)と、前記計算されたビート時刻信頼度に基づいてビート時刻を推定する(例えば、実施例におけるビート時刻BT)ビート時刻推定手段(例えば、実施例におけるビート時刻推定部34)と、前記それぞれ推定されたビート間隔及びビート時刻に基づいて、現在時刻よりも先のビート時刻を予測するビート時刻予測手段(例えば、実施例におけるビート時刻予測部210)と、前記ビート間隔と前記予測されたビート時刻とに基づいて、前記音声信号生成手段で生成される自己音声信号を同期化する同期化手段(例えば、実施例における歌唱制御部220,スキャット制御部230)と、を備えたことを特徴とする。
請求項2記載のロボットは、前記ビート時刻予測手段は、現在時刻から、少なくとも前記音声信号生成手段における処理遅延時間分の時間を経過した時刻以降のビート時刻を予測することを特徴とする。
請求項3記載のロボットは、前記ビート間隔推定手段で推定されたビート間隔に基づいて、ビート間隔の変動が所定の許容値より小さい期間を音楽区間として検出する音楽区間検出手段(例えば、実施例における音楽区間検出部110)をさらに備え、前記音声信号生成手段は、前記音楽区間として検出された場合に前記自己音声信号を生成することを特徴とする。
【発明の効果】
【0013】
請求項1記載の発明によれば、雑音に対するロバスト性を確保するとともに、テンポ変動への追従性及びテンポ推定の安定性を確保して音楽インタラクションを行うことができる。
請求項2記載の発明によれば、処理遅延時間を考慮して推定ビート時刻から未来のビート時刻を予測するため、リアルタイムな音楽インタラクションを行うことができる。
請求項3記載の発明によれば、音楽区間を検出することによって、ビートが抽出できない区間を非音楽区間であると判定するため、不安定期間の影響を受けることを少なくして音楽インタラクションを行うことができる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施形態であるロボットに組み込まれるビートトラッキング装置のブロック構成図である。
【図2】本実施形態における、推定ビート間隔を決定するビート間隔推定アルゴリズムを説明するための図である。
【図3】本実施形態における、ビート時刻を推定するビート時刻推定アルゴリズムを説明するための図である。
【図4】本発明の実施例である脚式移動音楽ロボットの概略の正面図である。
【図5】本実施例である脚式移動音楽ロボットの概略の側面図である。
【図6】本実施例である脚式移動音楽ロボットの、主に音楽インタラクションに関係する部分のブロック構成図である。
【図7】本実施例における楽曲IDテーブルの例である。
【図8】推定されたテンポに係るビート間隔時間に基づいてビート時刻を予測して外挿する様子(第2の例)を模式的に表した図である。
【図9】本実施例における、ビートトラッキング性能(ビートトラッキング成功率)についての実験結果を示したチャートである。
【図10】従来技術を使用した場合の、ビートトラッキング性能(ビートトラッキング成功率)についての実験結果を示したチャートである。
【図11】本実施例における、ビートトラッキング性能(テンポ変化時からの平均遅延時間)についての実験結果を示した図である。
【図12】本実施例におけるテンポ推定の実験結果のグラフである。
【図13】本実施例における、ビートトラッキング性能(ビート予測成功率)についての実験結果を示した図である。
【図14】推定されたテンポに係るビート間隔時間に基づいてビート時刻を予測して外挿する様子(第3の例)を模式的に表した図である。
【図15】推定されたテンポに係るビート間隔時間に基づいてビート時刻を予測して外挿する様子(第4の例)を模式的に表した図である。
【発明を実施するための形態】
【0015】
以下、本発明を実施するための形態について、図面を参照して詳細に説明する。ここでは、本発明の実施形態であるロボットに組み込まれるリアルタイム・ビートトラッキング装置(以下、ビートトラッキング装置という。)について説明する。このロボットは、後述する実施例でその詳細を説明するが、マイクロホンで集音した音楽からビートを抽出し、そのビートに合わせて足踏みをしたり、歌唱やスキャットによる自己発声音をスピーカから出力したりして音楽インタラクションを行うものである。
【0016】
図1に、ビートトラッキング装置のブロック構成図を示す。同図において、ビートトラッキング装置1は、自己発声音抑制部10と、テンポ推定部20と、ビート時刻推定部30とを備えている。
【0017】
自己発声音抑制部10は、セミブラインド独立成分分析部(以下、SB−ICA部という。)11を備えている(SB−ICA:Semi−Blind Independent Component Analysis)。SB−ICA部11には、2チャンネルの音声信号が入力される。そのうち、第1のチャンネルは音楽音響信号MAであり、第2のチャンネルは自己音声信号SVである。音楽音響信号MAは、ロボットに備えられたマイクロホンで集音された音楽から得られた音響信号である。ここでいう音楽とは、一般的にいう歌唱や演奏による音楽やスキャット等、拍のある音響信号のことをいう。自己音声信号SVは、ロボットの音声信号生成部(例えば、後述する実施例における歌唱制御部及びスキャット制御部)で生成されてスピーカの入力部に入力される音声合成音に係る音声信号である。
【0018】
自己音声信号SVは、ロボットの音声信号生成部が生成した音声信号であるため、雑音を無視できるクリーンな信号である。一方、音楽音響信号MAは、マイクロホンで集音した音響信号であるため雑音が含まれている。特に、ロボットに音楽を聴かせながら、足踏み、歌唱、スキャット等を行わせた場合には、これらの動作に伴って発生する音が、ロボットに聴かせている音楽と同様の周期性を有する雑音となって音楽音響信号MAに含まれることになる。
【0019】
そこで、SB−ICA部11は、音楽音響信号MA及び自己音声信号SVを入力して周波数解析処理を行ったのち、音楽音響情報から自己音声成分のエコーキャンセルを行って、自己発声音の抑制されたスペクトラムである自己発声音抑制スペクトラムを出力するものである。
【0020】
具体的には、SB−ICA部11は、音楽音響信号MA及び自己音声信号SVを、例えば、44.1KHz,16ビットで同期させてサンプリングしたのち、窓長を4096ポイント、シフト長を512ポイントに設定した短時間フーリエ変換を適用した周波数解析処理を行う。この周波数解析処理によって第1及び第2のチャンネルそれぞれについて得られたスペクトルを、スペクトルY(t,ω)及びS(t,ω)とする。なお、t,ωは、それぞれ時間フレーム及び周波数を表すインデックスである。
【0021】
次に、SB−ICA部11は、スペクトルY(t,ω)及びS(t,ω)をもとに、SB−ICA処理を行って自己発声音抑制スペクトラムp(t,ω)を求める。SB−ICA処理の計算方法を数式1に示す。なお、数式1においては、式を簡略化するためにωの記載を省略してある。
【0022】
【数1】

【0023】
数式1において、残響を考慮するためのフレーム数をMとした。すなわち、スピーカからマイクロホンまでの伝達系により、Mフレームにわたって残響が生じることを仮定して、S(t,ω),S(t−1,ω),S(t−2,ω)・・・S(t−M,ω)の反射モデルを採用している。例えば、実験においてはM=8フレームを設定することができる。また、数式1におけるA,Wは分離フィルタを示し、SB−ICA部11では適応的にこれらの推定を行う。そして、数式1によれば、p(t,ω)=Y(t,ω)−S(t,ω)となるようなスペクトラムが計算される。
【0024】
したがって、SB−ICA部11は、SB−ICA処理の入力及び出力に既知の信号であるS(t,ω)を用いるとともに、伝達系による残響を考慮したことにより、雑音除去の効果を有しながら自己発声音の抑制を精度よく行うことができる。
【0025】
テンポ推定部20は、Sobelフィルタ部21と、時間周波数パターンマッチング部(以下、STPM部という。)22と、ビート間隔推定部23とを備えている(STPM:Spectro−Temporal Pattern Maching)。
【0026】
Sobelフィルタ部21は、テンポ推定部20のビート間隔推定処理の前処理として位置づけられるものであり、自己発声音抑制部10から供給された自己発声音抑制スペクトラムp(t,ω)について、楽音のオンセット(音響信号のレベルが急激に大きくなる部分)を強調するためのフィルタである。結果として、ビート成分の雑音に対するロバスト性が向上する。
【0027】
具体的には、Sobelフィルタ部21は、自己発声音抑制スペクトルp(t,ω)に対して、音声認識処理や音楽認識処理で用いられるメルフィルタバンクを適用し、周波数の次元数を64次元に圧縮する。そして、得られたメルスケールでのパワースペクトルをPmel(t,f)とする。なお、メル周波数軸での周波数インデックスをfとする。ここで、スペクトログラムにおいてパワーが急激に上昇する時刻は楽音のオンセットである可能性が高く、そのオンセットとビート時刻やテンポとは密接な関係がある。そこで、時間方向のエッジ強調と周波数方向の平滑化とを同時に行うことのできるSobelフィルタを用いてスペクトラムを整形する。パワースペクトルPmel(t,f)にフィルタ処理を行って出力Psobel(t,f)を出力するSobelフィルタの計算式を数式2に示す。
【0028】
【数2】

【0029】
さらに、ビート時刻に対応するパワーの立ち上がり部を抽出するため、数式3の処理を行ってフレームごとに62次元(f=1,2,・・・,62)のオンセットベクトルd(t,f)を求める。
【0030】
【数3】

【0031】
テンポ推定部20のビート間隔推定処理は、STPM部22及びビート間隔推定部23によって行われる。ここで、隣り合う二つのビートの時間間隔を、「ビート間隔」と定義する。STPM部22は、Sobelフィルタ部21で求められたオンセットベクトルd(t,f)を用いて正規化相互相関関数による時間周波数パターンマッチング処理を行ってビート間隔信頼度R(t,i)を計算する。この正規化相互相関関数の計算式を数式4に示す。なお、数式4において、オンセットベクトルのマッチングに用いる次元数をFwとする。例えば、Fwには62次元全てとなる62を適用することができる。また、マッチングの窓長をPw、シフトパラメータをiとする。
【0032】
【数4】

【0033】
数式4に示した正規化相互相関関数は、時間方向と周波数方向との二次元による相互相関をとるものであるため、周波数方向に深くする一方時間方向の窓長を減らすことができる。すなわち、STPM部22は、雑音に対する処理の安定性を確保したまま、処理遅延時間を少なくすることができる。また、数式4の分母に示された正規化項は、信号処理における白色化に相当する部分である。よって、STPM部22は、Sobelフィルタ部21における雑音抑制効果に加えて、さらに定常雑音の抑制効果を有するものである。
【0034】
ビート間隔推定部23は、STPM部22で計算されたビート間隔信頼度R(t,i)からビート間隔を推定する。具体的には、次のようにしてビート間隔を推定する。ビート間隔推定部23は、前処理として、数式5によりローカルピークRpeak(t,i)を計算する。
【0035】
【数5】

【0036】
ビート間隔推定部23は、数式5により求めたローカルピークRpeak(t,i)のうち最上位から二つのローカルピークを抽出する。そして、これらのローカルピークに対応するビート間隔iを、ローカルピークRpeak(t,i)の値の大きな方からビート間隔I1(t)及びI2(t)として選択する。そして、ビート間隔推定部23は、これらビート間隔I1(t)及びI2(t)を用いてビート間隔候補Ic(t)を求め、さらに推定ビート間隔I(t)を推定する。
【0037】
図2に、推定ビート間隔I(t)を決定するためのビート間隔推定アルゴリズムを示して具体的に説明する。同図において、抽出された二つのローカルピークRpeak(t,i)の信頼度の差が大きい場合は、ビート間隔I1(t)をビート間隔候補Ic(t)とする。なお、差の尺度は常数αによって定められ、例えば、常数αを0.7とすることができる。
【0038】
一方、その差が小さい場合には、裏拍が抽出されているおそれがあり、よってビート間隔I1(t)が得るべきビート間隔ではないことがある。特に、正の整数分の整数倍(例えば、1/2,2/1,5/4,3/4,2/3,4/3等)が誤検出されやすい。よって、それを考慮して、ビート間隔I1(t)及びI2(t)の差分を用いたビート間隔候補Ic(t)の推定を行う。より具体的には、ビート間隔I1(t)及びI2(t)の差分を差分Id(t)とし、I1(t)−n×Id(t)の絶対値、又はI2(t)−n×Id(t)の絶対値が閾値δよりも小さい場合に、n×Id(t)をビート間隔候補Ic(t)にする。これにおいて、2からNmaxまでの整数である変数nの範囲で探索を行う。なお、Nmaxは、四分音符の長さまでを考慮して4に設定することができる。
【0039】
次に、得られたビート間隔候補Ic(t)と一つ前のフレームのビート間隔I(t−1)とを用いて上記と同様の処理を行って、最終的な推定ビート間隔I(t)を推定する。
【0040】
次に、ビート間隔推定部23は、ビート間隔推定処理によって推定したTIフレーム分のビート間隔群に対する中央値として、数式6の計算によってテンポTP=Im(t)を求める。なお、TIは、例えば13フレーム(約150ms)とすることができる。
【0041】
【数6】

【0042】
図1の説明に戻り、ビート時刻推定部30は、近接ビート信頼度計算部31と、連続ビート信頼度計算部32と、ビート時刻信頼度計算部33と、ビート時刻推定部34とを備えている。
【0043】
近接ビート信頼度計算部31は、あるフレームとビート間隔I(t)前のフレームとがともにビート時刻である信頼度を計算するものである。具体的には、処理フレームtごとに、フレームt−iと1ビート間隔I(t)分前のフレームt−i−I(t)がともにビート時刻である信頼度、すなわち近接ビート信頼度Sc(t,t−i)を、オンセットベクトルd(t,f)を用いて数式7により計算する。
【0044】
【数7】

【0045】
連続ビート信頼度計算部32は、各時刻において推定されたビート間隔I(t)でビートが連続的に存在することを示す信頼度を計算するものである。具体的には、処理フレームtにおけるフレームt−iの連続ビート信頼度Sr(t,t−i)を、近接ビート信頼度Sc(t,t−i)を用いて数式8により計算する。なお、Tp(t,m)は、フレームtを基準としてm個前のビート時刻であり、Nsrは、連続ビート信頼度Sr(t,t−i)を評価する際に考慮すべきビート数である。
【0046】
【数8】

【0047】
連続ビート信頼度Sr(t,t−i)は、複数のビート列が見つかった場合に、どのビート列が最も信頼できるか判定する場合に有効である。
【0048】
ビート時刻信頼度計算部33は、処理フレームtにおけるフレームt−iのビート時刻信頼度S’(t,t−i)を、近接ビート信頼度Sc(t,t−i)と連続ビート信頼度Sr(t,t−i)とを用いて数式9により計算する。
【0049】
【数9】

【0050】
そして、ビート時刻信頼度計算部33は、ビート時刻信頼度S’(t,t−i)間の時間的な重複を考慮し、数式10に示す加算平均を行って最終的なビート時刻信頼度S(t)を計算する。なお,S’t(t),Ns’(t)は、フレームtで値を有するS’(t,t−i)の集合、及びその集合の要素数を示す。
【0051】
【数10】

【0052】
ビート時刻推定部34は、ビート時刻信頼度計算部33で計算されたビート時刻信頼度S(t)を用いてビート時刻BTを推定する。具体的に、図3に示すビート時刻T(n+1)を推定するためのビート時刻推定アルゴリズムを参照して説明する。同図のビート時刻推定アルゴリズムにおいて、n番目のビート時刻T(n)が得られており、n+1番目のビート時刻T(n+1)を推定するものとする。同図のビート時刻推定アルゴリズムでは、現在の処理フレームtが、ビート時刻T(n)にビート間隔I(t)の3/4倍を加えた時刻を超えている場合に、ビート時刻信頼度S(t)からT(n)±1/2・I(t)の範囲内で最大3個のピークを抽出する。その範囲内にピークが存在する場合(Np>0)は、T(n)+I(t)に最も近いピークをビート時刻T(n+1)にする。一方、ピークが存在しない場合は、T(n)+I(t)をビート時刻T(n+1)にする。そして、ビート時刻T(n+1)をビート時刻BTとして出力する。
【0053】
以上により、本実施形態におけるビートトラッキング装置によれば、自己発声音抑制部によって、周波数解析処理ののち音楽音響情報から自己音声成分のエコーキャンセルを行うため、雑音除去の効果とともに自己発声音の抑制効果を発揮することができる。
【0054】
また、本実施形態におけるビートトラッキング装置によれば、自己発声音が抑制された音楽音響情報にSobelフィルタ処理を行うため、楽音のオンセットが強調されてビート成分の雑音に対するロバスト性が向上する。
【0055】
また、本実施形態におけるビートトラッキング装置によれば、時間方向と周波数方向との二次元の正規化相互相関関数を計算してパターンマッチングをはかるものであるため、雑音に対する処理の安定性を確保したまま、処理遅延時間を少なくすることができる。
【0056】
また、本実施形態におけるビートトラッキング装置によれば、第一番目及び第二番目に高いローカルピークに対応する2つのビート間隔をビート間隔候補として選択し、これらのうちいずれがよりビート間隔として尤もらしいかを詳細に判定するため、裏拍を誤検出するおそれを抑制してビート間隔の推定を行うことができる。
【0057】
さらに、本実施形態におけるビートトラッキング装置によれば、近接ビート信頼度及び連続ビート信頼度を計算してビート時刻信頼度を求めるため、ビートの集合から尤度の高いビート列についてのビート時刻を推定することができる。
【実施例】
【0058】
次に、本発明を実施するための実施例について図面を参照して説明する。図4に、本発明の実施例である脚式移動音楽ロボット(以下、音楽ロボットという。)の概略の正面図を示す。そして図5に、図4に示した音楽ロボットの概略の側面図を示す。図4において、音楽ロボット4は、基体部41と、これにそれぞれ可動連結される頭部42と、脚部43L,43Rと、腕部44L,44Rとを備えている。また、図5に示すように、音楽ロボット4は、背負う格好で収納部45を基体部41に装着している。
【0059】
図6に、主に音楽ロボット4の音楽インタラクションに関係する部分のブロック構成図を示す。同図において、音楽ロボット4は、ビートトラッキング装置1と、音楽認識装置100と、ロボット制御装置200とを備えている。なお、ここでのビートトラッキング装置1は、前述の実施形態におけるビートトラッキング装置を採用しているため、同一の符号を付している。そして、ビートトラッキング装置1と、音楽認識装置100と、ロボット制御装置200とは、収納部45に収納されている。
【0060】
音楽ロボット4の頭部42は、音楽ロボット4の周囲の音を集音するための耳機能部310を備えている。耳機能部310は、例えばマイクロホンを用いることができる。基体部41は、音楽ロボット4自身が発声すべき音を周囲に拡声するための発声機能部320を備えている。発声機能部320は、例えば音声信号を増幅するためのアンプ及びスピーカを用いることができる。脚部43L,43Rは、脚機能部330を備えている。脚機能部330は、脚部43L,43Rで上体を支えて自立させるだけでなく、二足歩行をさせたり足踏みさせたりする等、脚部43L,43Rの動作を制御するものである。
【0061】
ビートトラッキング装置1は、前述の実施形態で説明したとおり、音楽ロボット4が音楽を聴いて得た音楽音響信号から、音楽ロボット4自身が発声する自己発声音による影響を抑制した音楽音響情報を抽出し、その音楽音響情報からテンポを推定するとともにビート時刻を推定するものである。ビートトラッキング装置1の自己発声音抑制部10は2チャンネル分の音声信号入力部を具備しており、その第1のチャンネルには、頭部42に備えられた耳機能部310から音楽音響信号MAが入力される。また、第2のチャンネルには、ロボット制御装置200から出力されて基体部41の発声機能部320に入力される自己音声信号SVの分岐された信号(これも自己音声信号SVという。)が入力される。
【0062】
音楽認識装置100は、ビートトラッキング装置1で推定されたテンポTPに基づいて、音楽ロボット4に歌唱させるための楽曲を決定し、その楽曲に関する楽曲情報をロボット制御装置200に出力するものである。音楽認識装置100は、音楽区間検出部110と、楽曲名同定部120と、楽曲情報検索部130と、楽曲データベース140とを備えている。
【0063】
音楽区間検出部110は、ビートトラッキング装置1から供給されたテンポTPに基づいて、安定したビート間隔が得られる時間を音楽区間として検出し、その音楽区間において音楽区間ステータス信号を出力するものである。具体的には、過去Aw個のフレームのうち、フレームxのビート間隔I(x)と現在の処理フレームtのビート間隔I(t)との差分が、ビート間隔の許容誤差αよりも小さくなる関係を満たすフレームxの総数をNxとする。そのときのビート間隔安定度Sを数式11により求める。
【0064】
【数11】

【0065】
例えば、過去のフレーム数Aw=300(約3.5秒に相当する。)、許容誤差α=5(58ミリ秒に相当する。)とした場合に、ビート間隔安定度Sが0.8以上の場合に、音楽区間であると判定する。
【0066】
楽曲名同定部120は、ビートトラッキング装置1から供給されたテンポTPに最も近いテンポに対応する楽曲IDを出力するものである。なお、本実施例では、各楽曲は各別のテンポを有するという前提とする。具体的には、楽曲名同定部120は、図7に示すような楽曲IDテーブル70を予め有している。この楽曲IDテーブル70は、60M.M.から120M.M.までの複数のテンポにそれぞれ対応した楽曲IDと、いずれのテンポにもマッチしない場合(Unknown)に用いる楽曲IDである「IDunknown」とを登録した表データである。同図の例によれば、楽曲IDであるID001−ID007にそれぞれ対応する楽曲情報は、楽曲データベース140に格納されている。なお、テンポの単位である「M.M.」とは、1分間あたりの四分音符の数を示すテンポ表記である。
【0067】
楽曲名同定部120は、ビートトラッキング装置1から供給されたテンポTPについて、テンポ差が最も小さいテンポを楽曲IDテーブル70から検索し、その検索されたテンポとテンポTPとの差分がテンポ差の許容値β以下である場合は、その検索されたテンポに関連づけられた楽曲IDを出力する。一方、差分が許容値βよりも大きい場合は、「IDunknown」を楽曲IDにして出力する。
【0068】
楽曲情報検索部130は、楽曲名同定部120から供給された楽曲IDが「IDunknown」でない場合は、その楽曲IDをキーとして楽曲データベース140から楽曲情報を読み出し、音楽区間検出部110から供給される音楽区間ステータス信号のタイミングにしたがって出力する。楽曲情報は、例えば歌詞情報と、音の種類、長さ、音程等を含む譜面情報とを含むものである。楽曲情報は、楽曲IDテーブル70の楽曲ID(ID001−ID007)、又はこれらの楽曲IDと同一のIDに関連づけられて楽曲データベース140に格納されている。
【0069】
一方、楽曲情報検索部130は、楽曲名同定部120から供給された楽曲IDが「IDunknown」である場合は、楽曲データベース140には歌唱させるべき楽曲情報が格納されていないため、音楽ロボット4にスキャットを発声させるためのスキャット実行命令を、入来する音楽区間ステータス信号のタイミングにしたがって出力する。
【0070】
ロボット制御装置200は、ビートトラッキング装置1で推定されたテンポTP及びビート時刻BT、並びに音楽認識装置100から供給された楽曲情報又はスキャット実行命令に基づいて、ビート時刻に同期した歌唱若しくはスキャット、若しくは足踏み、又はそれらを組み合わせた動作を行わせるものである。ロボット制御装置200は、ビート時刻予測部210と、歌唱制御部220と、スキャット制御部230と、足踏み制御部240とを備えている。
【0071】
ビート時刻予測部210は、ビートトラッキング装置1で推定されたテンポTP及びビート時刻BTに基づいて、音楽ロボット4における処理遅延時間を考慮した、現在時刻より未来のビート時刻の予測を行うものである。本実施例における処理遅延は、ビートトラッキング装置1における処理遅延、及びロボット制御装置200における処理遅延である。
【0072】
ビートトラッキング装置1における処理遅延は、主に数式10に示すビート時刻信頼度S(t)の計算処理と、ビート時刻推定アルゴリズムによるビート時刻T(n+1)の推定処理とに係るものである。すなわち、数式10において、フレームtのビート時刻信頼度S(t)を算出するときには、全てのフレームtiが揃うまで待つ必要がある。フレームtiの最大値は、t+max(I(ti))で規定されるが、I(ti)の最大値はビート時刻推定アルゴリズムの特性上、60M.M.に対応するフレーム数であるため、正規化相互相関関数の窓長と同一の1secとなる。ビート時刻推定処理では、t=T(n)+3/4・I(t)の際のピーク抽出にT(n)+3/2・I(t)までビート時刻信頼度が必要である。つまり、フレームtのビート時刻信頼度が得られてから3/4・I(t)だけ待つ必要があり、この最大値は0.75secとなる。
【0073】
また、ビートトラキング装置1では、自己発声音抑制部10におけるMフレーム分の遅延と、テンポ推定部20のSobelフィルタ部21における1フレーム分の遅延とが生じるため、約2secの処理遅延時間が発生する。
【0074】
また、ロボット制御装置200における処理遅延は、主に歌唱制御部220における音声合成処理の処理による遅延である。
【0075】
そこで、ビート時刻予測部210は、ビート時刻推定部30で推定された最新のビート時刻BTにテンポTPに係るビート間隔時間を外挿することにより、処理遅延時間よりも長い時間分先のビート時刻を予測する。
【0076】
具体的には、第1の例として数式12の計算によってビート時刻を予測することができる。数式12において、ビート時刻T(n)を、フレームtまでに推定されたビート時刻のうち最新のビート時刻とする。そして、数式12では、フレームtより未来のビート時刻に対応するフレームのうち最もフレームtに近いフレームT’を計算する。
【0077】
【数12】

【0078】
また、第2の例として、予め処理遅延時間が分かっている場合は、ビート時刻予測部210は、現在時刻から処理遅延時間分の時間を超えるまでテンポTPをカウントし、超えたときのタイミングでビート時刻を外挿していく。図8に、第2の例によってビート時刻を外挿する様子を模式的に示す。同図の(a)(b)それぞれは、ビート時刻予測部210が、最新の推定ビート時刻である最新ビート時刻CBを取得したのちの現在時刻CTから処理遅延時間DTを超えた時刻に予測ビート時刻PBを外挿する様子を示している。同図(a)は、処理遅延時間DTに対して1ビート間隔が長いため1ビート間隔後に予測ビート時刻PBを外挿する様子を示している。そして、同図(b)は、処理遅延時間DTに対して1ビート間隔が短く、3ビート間隔後に予測ビート時刻PBを外挿する様子を示している。
【0079】
また、第3の例として、ビート時刻予測部210は、予測ビート時刻が現在時刻からの処理遅延時間内に存在するときにその予測ビート時刻を確定予測ビートとして確定させる。但し、現在時刻より前に予測された最新の予測ビート時刻と、現在時刻からの処理遅延時間内に存在する最初の予測ビート時刻との時間間隔が所定の時間に満たないときは、処理遅延時間内に存在する予測ビート時刻の確定を行わない。
【0080】
図14に、この第3の例によって予測ビート時刻を外挿する様子を模式的に示す。同図(a)は、予測ビート時刻PB2が現在時刻CTから処理遅延時間DTの時間内に存在する様子を示している。同図(a)の例では、現在時刻CTより前に予測された最新の予測ビート時刻PB1からテンポTPのビート間隔の1/2の時間よりも先に予測ビート時刻PB2が存在する。よって、この例の場合、ビート時刻予測部210は予測ビート時刻PB2を確定予測ビートとして確定させる。
【0081】
一方、図14(b)は、予測ビート時刻PB2aが現在時刻CTから処理遅延時間DTの時間内に存在する様子を示したものであるが、現在時刻CTより前に予測された最新の予測ビート時刻PB1からテンポTPのビート間隔の1/2の時間よりも前に予測ビート時刻PB2が存在する様子を示している。よって、この例の場合、ビート時刻予測部210は予測ビート時刻PB2を確定予測ビートとして確定させない。
【0082】
図14のように、所定の時間をテンポTPのビート間隔の1/2の時間とするのは好ましい例である。これは、音楽は、例えば四分音符と二分音符とが組み合わされて表現される場合があり、ビート間隔が1/2倍や2倍に突然変化することがあり得るからである。また、第3の例を適用することによって、裏拍を強迫(ビート)としてサンプリングしないようにする効果もある。
【0083】
また、上述した第1−第3の例による処理は、ビートトラッキング装置1でビートが推定されるたびに実行されるものであるが、音楽が無音になる等の理由によってビートが検出されない場合もある。その場合、ビートが検出されないまま、確定予測ビート時刻が現在時刻より過去になってしまう場合が起こり得る。第4の例として、ビート時刻予測部210は、最新の確定予測ビート時刻を起点にして予測処理を行うようにする。
【0084】
図15に、第4の例によってビート時刻を外挿する様子を模式的に示す。同図は、ビート時刻予測部210が最新ビート時刻CBを取得したのを最後にビートが推定されず、予測ビート時刻OPB1,OPB2を経て現在時刻CTになった例を示している。この場合、ビート時刻予測部210は、現在時刻CTより前に予測された最新の予測ビート時刻OPB2を起点にして第1−第3の例による予測処理を行うようにする。
【0085】
歌唱制御部220は、音楽認識装置100の楽曲情報検索部130から供給される楽曲情報において、譜面情報における音符の時刻及び長さを、ビートトラッキング装置1で推定されたテンポTPと、ビート時刻予測部210で予測された予測ビート時刻PBとに基づいて調整する。そして、歌唱制御部220は、楽曲情報の歌詞情報を用いて音声合成処理を行い、音声信号である歌声音声信号に変換して出力する。
【0086】
スキャット制御部230は、音楽認識装置100の楽曲応報検索部130から供給されるスキャット実行命令を受信した場合に、「Daba Daba Duba」や「Zun Cha(ずん ちゃ)」等の予め記憶しているスキャット用歌詞の発音タイミングを、ビートトラッキング装置1で推定されたテンポTPと、ビート時刻予測部210で予測された予測ビート時刻PBとに基づいて調整する。
【0087】
具体的には、スキャット制御部230は、スキャット用歌詞(例えば、「Daba」,「Daba」,「Duba」)から抽出したオンセットベクトルd(t,f)の各ベクトル値の合計値のピークを「Daba」,「Daba」,「Duba」のスキャットのビート時刻にする。そして、スキャット制御部230は、各音でのビート時刻とスキャットのビート時刻とを合わせて音声合成処理を行い、音声信号であるスキャット音声信号に変換して出力する。
【0088】
歌唱制御部220から出力された歌声音声信号と、スキャット制御部230から出力されたスキャット音声信号とは、信号合成されて発声機能部320に供給されるとともに、ビートトラッキング装置1の自己発声音制御部10の第2チャンネルに供給される。なお、音楽区間検出部110から音楽区間ステータス信号が出力されている区間において、信号合成による自己音声信号を生成し出力するようにしてもよい。
【0089】
足踏み制御部240は、ビートトラッキング装置1で推定されたテンポTPと、ビート時刻予測部210で予測された予測ビート時刻PBと、音楽ロボット4の脚部43L,43Rの端部である足部の地面への接地時刻とを用いたフィードバック則に基づいて足踏み動作のタイミングを生成する。
【0090】
次に、本実施例である音楽ロボット4を用いて音楽インタラクションの実験を行った結果について説明する。
【0091】
[実験1:ビートトラッキングの基本性能]
実験1用の評価データとして、RWC研究用音楽データベース(http://staff.aist.go.jp/m.goto/RWC−MDB/)におけるポピュラー音楽データベース(RWC−MDB−P−2001)のポピュラー音楽全100曲(日本語歌詞及び英語歌詞の楽曲)を使用した。各楽曲は、正しいビート時刻を容易に取得するため、MIDIデータを用いて生成した。ただし、MIDIデータは、得られたビート時刻の評価のためにのみ用いることとした。また、各楽曲の開始後30−90秒までの60秒間を評価データとして用いることとし、本実施例である音楽ロボット4による相互相関関数ベースの方式と、自己相関関数ベースの方式とでビートトラッキング成功率を比較した。なお、ビートトラッキング成功率の計算では、推定ビート時刻と正しいビート時刻との差が±100mS以内に収まっている場合に成功であるとした。具体的なビートトラッキング成功率rの計算例を数式13に示す。なお、Nsuccessは推定成功ビート数であり、Ntotalは正しいビート総数である。
【0092】
【数13】

【0093】
[実験2:テンポ変化への追従速度]
実験2用の評価データとして、ポピュラー音楽データベース(RWC−MDB−P−2001)から生演奏録音の3曲を選択し、テンポ変化を含む音楽音響信号を作成した。具体的には、楽曲番号11,18,62の楽曲を選択し(テンポはそれぞれ90,112,81M.M.)、これらの楽曲をNo.18→No.11→No.18→No.62の順に60秒ずつ区切ってつなげ合わせて4分間の音楽音響情報を作成した。この音楽音響情報を用いて、ビートトラッキングの遅延を、実験1と同様に本実施例と自己相関関数ベースの方式とで比較した。なお、ビートトラッキングの遅延時間は、実際にテンポが変化してからシステムがテンポ変化に追従するまでの時間とした。
【0094】
[実験3:ビート予測のノイズロバスト性能]
実験3用の評価データとして、ポピュラー音楽データベース(RWC−MDB−P−2001)の楽曲番号62のMIDIデータを用いて生成したテンポが一定である楽曲を用いた。ただし、実験1と同様に、MIDIデータはビート時刻の検証にのみ用いることとした。また、評価指標はビートトラッキング成功率を用いた。
【0095】
次に、上記実験1−3の実験結果について説明する。まず、実験1の結果を図9,10のチャートに示す。図9は、本実施例についての、テンポに対するビートトラッキング成功率を示した実験結果である。また、図10は、自己相関関数ベースについての、同様の実験結果である。図9,10において、ビートトラッキング成功率の平均値は、図9については約79.5%、図10については約72.8%であり、本実施例の方式の方が自己相関関数ベースよりも優れていることがわかる。
【0096】
また、図9,10ともに、テンポが遅い場合のビートトラッキング成功率の低下がみられる。これは、テンポの遅い楽曲は、ドラム等のテンポ抽出のキーとなる楽器が少ない音楽であるためと推測される。しかしながら、テンポが90M.M.付近を超える楽曲についての本実施例でのビートトラッキング成功率は90%を超えており、本実施例のビートトラッキングの基本的性能が従来例よりも高いことがわかる。
【0097】
次に、実験2の結果を図11の平均遅延時間測定結果に示す。また、図12に、音楽ロボット4の電源がオフである場合のテンポ推定の実験結果をグラフで示す。図11,12から明らかなとおり、本実施例は、従来の自己相関関数ベースに比べてテンポ変化への適応が速いことがわかる。図11によれば、本実施例(STPM処理)は、自己相関関数ベース(自己相関処理)に対して、スキャットをしない場合で1/10程度、スキャットをする場合で1/20程度の時間短縮の効果があることがわかる。
【0098】
また、図12によれば、実際のテンポ(Actual Tempo)に対する本実施例の遅延時間は、Delay=2secであるのに対し、自己相関関数ベースの遅延時間は、Delay=約20secとなっている。なお、同図の100sec付近でビートトラッキングが乱れているのは、ビート時刻にオンセットのない部分が評価データに一時的に存在しているためである。よって、本実施例では、一時的(短時間)にテンポが不安定になる場合があるが、従来の自己相関関数ベースに比べて不安定期間は特段に短い。また、本実施例では、音楽認識装置100の音楽区間検出部110が音楽区間を検出し、ビートが抽出できない区間を非音楽区間であると判定するため、本実施例である音楽ロボット4ではこのような不安定期間の影響は極めて少ない。
【0099】
実験3の結果を図13のビート予測成功率に示す。同図によれば、自己発声音がその周期性のためにビートトラッキングに影響を与えていることと、自己発声音抑制機能がこのような周期性ノイズに効果的に作用していることを示している。
【0100】
以上により、本実施例である音楽ロボットによれば、ビートトラッキング装置を備えたことによって雑音に対するロバスト性を確保するとともに、テンポ変動への追従性とテンポ推定の安定性とを兼ね備えることができる。
【0101】
また、本実施例である音楽ロボットによれば、処理遅延時間を考慮して推定ビート時刻から未来のビート時刻を予測するため、リアルタイムな音楽インタラクションを行うことができる。
【0102】
なお、上述した実施形態におけるビートトラッキング装置の一部又は全部の機能をコンピュータで実現するようにしてもよい。この場合、その機能を実現するためのビートトラッキング用プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたビートトラッキング用プログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、光ディスク、メモリカード等の可搬型記録媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持するものを含んでもよい。また上記のプログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせにより実現するものであってもよい。
【0103】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0104】
1 リアルタイム・ビートトラッキング装置(ビートトラッキング装置)
4 脚式移動音楽ロボット(ロボット)
10 自己発声音抑制部(自己音声抑制手段)
11 セミブラインド独立成分分析部(SB−ICA部)
20 テンポ推定部
21 Sobelフィルタ部(フィルタ手段)
22 時間周波数パターンマッチング部(ビート間隔信頼度計算手段)
23 ビート間隔推定部(ビート間隔推定手段)
30 ビート時刻推定部
31 近接ビート信頼度計算部(ビート時刻信頼度計算手段)
32 連続ビート信頼度計算部(ビート時刻信頼度計算手段)
33 ビート時刻信頼度計算部(ビート時刻信頼度計算手段)
34 ビート時刻推定部(ビート時刻推定手段)
41 基体部
42 頭部
43L,43R 脚部
44L,44R 腕部
45 収納部
100 音楽認識装置
110 音楽区間検出部(音楽区間検出手段)
120 楽曲名同定部
130 楽曲情報検索部
140 楽曲データベース
200 ロボット制御装置
210 ビート時刻予測部
220 歌唱制御部
230 スキャット制御部
240 足踏み制御部
310 耳機能部
320 発声機能部
330 脚機能部
MA 音楽音響信号
SV 自己音声信号
TP テンポ(ビート間隔)
BT ビート時刻

【特許請求の範囲】
【請求項1】
音楽音響を集音して音楽音響信号に変換する集音手段と、
音声合成処理によって歌唱又はスキャットに係る自己音声信号を生成する音声信号生成手段と、
前記自己音声信号を音に変換して出力する音出力手段と、
前記音楽音響信号と前記自己音声信号とを入力し、前記音楽音響信号から前記自己音声信号の音声成分を抑制した音響信号を生成する自己音声抑制手段と、
前記音響信号にフィルタ処理を行ってオンセットを強調するフィルタ手段と、
前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算するビート間隔信頼度計算手段と、
前記計算されたビート間隔信頼度に基づいてビート間隔を推定するビート間隔推定手段と、
前記フィルタ手段においてオンセットの強調された音響信号と前記ビート間隔推定手段において推定されたビート間隔とに基づいて、ビート時刻信頼度を計算するビート時刻信頼度計算手段と、
前記計算されたビート時刻信頼度に基づいてビート時刻を推定するビート時刻推定手段と、
前記それぞれ推定されたビート間隔及びビート時刻に基づいて、現在時刻よりも先のビート時刻を予測するビート時刻予測手段と、
前記ビート間隔と前記予測されたビート時刻とに基づいて、前記音声信号生成手段で生成される自己音声信号を同期化する同期化手段と、
を備えたことを特徴とするロボット。
【請求項2】
前記ビート時刻予測手段は、
現在時刻から、少なくとも前記音声信号生成手段における処理遅延時間分の時間を経過した時刻以降のビート時刻を予測することを特徴とする請求項1記載のロボット。
【請求項3】
前記ビート間隔推定手段で推定されたビート間隔に基づいて、ビート間隔の変動が所定の許容値より小さい期間を音楽区間として検出する音楽区間検出手段をさらに備え、
前記音声信号生成手段は、前記音楽区間として検出された場合に前記自己音声信号を生成することを特徴とする請求項1又は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

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2010−26513(P2010−26513A)
【公開日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願番号】特願2009−166049(P2009−166049)
【出願日】平成21年7月14日(2009.7.14)
【出願人】(000005326)本田技研工業株式会社 (23,863)
【Fターム(参考)】