(57)【要約】【課題】雑音に対するロバスト性を確保するとともに、テンポ変動への追従性及びテンポ推定の安定性を確保する。【解決手段】音楽音響信号ＭＡから自己音声信号ＳＶの音声成分をエコーキャンセルした音響信号にフィルタ処理を行い、オンセットを強調したオンセットベクトルを出力するＳｏｂｅｌフィルタ部２１と、オンセットベクトルに正規化相互相関関数を用いた時間周波数パターンマッチングを行ってビート間隔信頼度を求める時間周波数パターンマッチング部２２と、ビート間隔信頼度に基づいてビート間隔を推定してテンポＴＰを出力するビート間隔推定部２３とを備えた。【選択図】図１
2010026512.tif 000002
【特許請求の範囲】
【請求項１】
入力された音響信号にフィルタ処理を行ってオンセットを強調するフィルタ手段と、
前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算するビート間隔信頼度計算手段と、
前記計算されたビート間隔信頼度に基づいてビート間隔を推定するビート間隔推定手段と、
を備えたことを特徴とするビートトラッキング装置。
【請求項２】
前記フィルタ手段は、Ｓｏｂｅｌフィルタであることを特徴とする請求項１記載のビートトラッキング装置。
【請求項３】
前記フィルタ手段においてオンセットの強調された音響信号と前記ビート間隔推定手段において推定されたビート間隔とに基づいて、ビート時刻信頼度を計算するビート時刻信頼度計算手段と、
前記計算されたビート時刻信頼度に基づいてビート時刻を推定するビート時刻推定手段と、
を更に備えたことを特徴とする請求項１記載のビートトラッキング装置。
【請求項４】
前記ビート時刻信頼度計算手段は、前記オンセットの強調された音響信号と前記推定されたビート間隔とに基づいて近接ビート信頼度及び連続ビート信頼度を計算し、これらの計算結果に基づいて前記ビート時刻信頼度を計算することを特徴とする請求項３記載のビートトラッキング装置。
【請求項５】
入力された音響信号にフィルタ処理を行ってオンセットを強調する第１ステップと、
前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算する第２ステップと、
前記計算されたビート間隔信頼度に基づいてビート間隔を推定する第３ステップと、
を有したことを特徴とするビートトラッキング方法。
【請求項６】
前記第１ステップにおいてオンセットを強調した音響信号と前記第３ステップにおいて推定したビート間隔とに基づいて、ビート時刻信頼度を計算する第４ステップと、
前記計算したビート時刻信頼度に基づいてビート時刻を推定する第５ステップと、
を更に有したことを特徴とする請求項５記載のビートトラッキング方法。
【請求項７】
前記第４ステップは、前記オンセットを強調した音響信号と前記推定したビート間隔とに基づいて近接ビート信頼度及び連続ビート信頼度を計算し、これらの計算結果に基づいて前記ビート時刻信頼度を計算することを特徴とする請求項６記載のビートトラッキング方法。
【請求項８】
コンピュータに、
入力された音響信号にフィルタ処理を行ってオンセットを強調する第１ステップと、
前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算する第２ステップと、
前記計算されたビート間隔信頼度に基づいてビート間隔を推定する第３ステップと、
を実行させるためのビートトラッキング用プログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項９】
コンピュータに、
入力された音響信号にフィルタ処理を行ってオンセットを強調する第１ステップと、
前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算する第２ステップと、
前記計算されたビート間隔信頼度に基づいてビート間隔を推定する第３ステップと、
を実行させるためのビートトラッキング用プログラム。
【請求項１０】
音楽音響を集音して音楽音響信号に変換する集音手段と、
音声合成処理によって自己音声信号を生成する音声信号生成手段と、
前記自己音声信号を音に変換して出力する音出力手段と、
前記音楽音響信号と前記自己音声信号とを入力し、前記音楽音響信号から前記自己音声信号の音声成分を抑制した音響信号を生成する自己音声抑制手段と、
前記音響信号にフィルタ処理を行ってオンセットを強調するフィルタ手段と、
前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算するビート間隔信頼度計算手段と、
前記計算されたビート間隔信頼度に基づいてビート間隔を推定するビート間隔推定手段と、
前記フィルタ手段においてオンセットの強調された音響信号と前記ビート間隔推定手段において推定されたビート間隔とに基づいて、ビート時刻信頼度を計算するビート時刻信頼度計算手段と、
前記計算されたビート時刻信頼度に基づいてビート時刻を推定するビート時刻推定手段と、
前記それぞれ推定されたビート間隔及びビート時刻に基づいて、前記音声信号生成手段で生成される自己音声信号を同期化する同期化手段と、
を備えたことを特徴とするロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音楽やスキャット等のビートを有する音響情報からテンポ及びビート時刻を推定するビートトラッキング技術、及びそのビートトラッキング技術を適用して音楽インタラクションを行うロボットの技術に関する。
【背景技術】
【０００２】
近年、ヒューマノイドやホームロボット等、人間とソーシャル・インタラクションを行うロボットの研究が盛んに行われている。その中でも、ロボットに自らの耳で音楽を聴かせ、その音楽に合わせて歌唱させたり体を動かしたりさせる音楽インタラクションに関する研究は、ロボットに自然で豊かな表現をさせるために重要である。この技術分野においては、例えば、マイクロホンで集音したライブ音楽からリアルタイムにビートを抽出し、そのビートに同期させてロボットを踊らせる技術が知られている（例えば、特許文献１参照）。
【０００３】
このようなロボットに音楽を聴かせて、その音楽のリズムに合わせてロボットを動作させる場合、音楽の音響情報からテンポを推定する必要がある。従来では、音響情報に基づいた自己相関関数を計算することによりテンポを推定していた（例えば、特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３３８５１号公報
【特許文献２】特開２００２−１１６７５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、音楽を聴かせたロボットに、その音楽の音響情報からビートを抽出しテンポを推定させる場合、主に二つの対応すべき技術的課題がある。第一の課題は、雑音に対するロバスト性の確保である。ロボットに音楽を聴かせるためには、集音装置、例えばマイクロホンを搭載することが必要である。ロボットの外見の見栄えを考慮すると、集音装置はロボット体内に組み込まれることが望ましい。
【０００６】
そうすると、その集音装置が集音する音には様々な雑音が含まれることになる。すなわち、集音装置が集音する音には、ロボットの周囲で発生する環境音はもちろんのこと、ロボット自身から発生する様々な音が雑音として含まれる。例えば、ロボット自身から発生する音として、ロボットの足音、体内で駆動するモータの動作音、自発音声等が挙げられる。特に、自発音声は、音声発生源であるスピーカが集音装置の比較的近くに組み込まれるため、周囲の環境音よりも入力レベルの大きな雑音となる。このように、集音された音楽の音響信号のＳ／Ｎ比が悪くなると、音響信号からビートを抽出する精度が低くなり、その結果テンポ推定の精度も低くなる。
【０００７】
特に、ロボットの音楽インタラクションに求められる、集音した音楽に合わせて歌唱させたり発声させたりする動作においては、雑音となる自発音声のビートに周期性があるため、ロボットによるテンポ推定動作に不利な影響を与えることになる。
【０００８】
第二の課題は、テンポ変動への追従性（適応性）及びテンポ推定の安定性の確保である。例えば、人間の演奏や歌唱による音楽のテンポは、演奏者や歌唱者の技量によって、又は楽曲の曲調等によって常に一定ではなく、曲の途中で変動することが通常である。ロボットに、そのようなテンポの一定しない音楽を聴かせて、その音楽のビートに同期させて動作させる場合、テンポ変動への高い追従性が求められる。その一方で、テンポが比較的一定しているときは、安定してテンポを推定できることが望ましい。一般的に、自己相関の計算を行って安定してテンポを推定するためには、テンポ推定処理で用いられる時間窓を長く設定するのがよいが、そのかわりテンポ変動への追従性は悪くなる。すなわち、テンポ変動への追従性の確保と、テンポ推定の安定性の確保とはトレードオフの関係にある。しかしながら、ロボットの音楽インタラクションにおいては、その両方の性能を良好に保つ必要がある。
【０００９】
ここで、第一及び第二の課題の関係をみると、第一の課題である雑音に対するロバスト性を確保するためには、第二の課題の一方であるテンポ推定の安定性を確保する必要があると考えられるが、その場合、第二の課題の他方であるテンポ変動への追従性の確保が困難になるという問題がある。
【００１０】
上記特許文献１，２には、上記第一の課題についての明示的記載及び示唆は一切ない。また、特許文献１，２を含む従来技術では、テンポ推定処理において時間方向の自己相関を求めており、テンポ推定の安定性を確保するために時間窓を長く設定するとテンポ変動への追従性が悪くなり上記第二の課題に対応できない。
【００１１】
そこで、本発明は上記問題に鑑みてなされたものであり、雑音に対するロバスト性を確保するとともに、テンポ変動への追従性及びテンポ推定の安定性を確保したビートトラッキング装置、ビートトラッキング方法、記録媒体、ビートトラッキング用プログラム、及びロボットを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の課題を解決するため、請求項１記載のビートトラッキング装置（例えば、実施形態におけるリアルタイム・ビートトラッキング装置１）は、入力された音響信号にフィルタ処理を行ってオンセットを強調するフィルタ手段（例えば、実施形態におけるＳｏｂｅｌフィルタ部２１）と、前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算するビート間隔信頼度計算手段（例えば、実施形態における時間周波数パターンマッチング部２２）と、前記計算されたビート間隔信頼度に基づいてビート間隔を推定する（例えば、実施形態におけるテンポＴＰ）ビート間隔推定手段（例えば、実施形態におけるビート間隔推定部２３）と、を備えたことを特徴とする。
請求項２記載のビートトラッキング装置は、前記フィルタ手段は、Ｓｏｂｅｌフィルタであることを特徴とする。
請求項３記載のビートトラッキング装置は、前記フィルタ手段においてオンセットの強調された音響信号と前記ビート間隔推定手段において推定されたビート間隔とに基づいて、ビート時刻信頼度を計算するビート時刻信頼度計算手段（例えば、実施形態における近接ビート信頼度計算部３１，連続ビート信頼度計算部３２，ビート時刻信頼度計算部３３）と、前記計算されたビート時刻信頼度に基づいてビート時刻を推定する（例えば、実施形態におけるビート時刻ＢＴ）ビート時刻推定手段（例えば、実施形態におけるビート時刻推定部３４）と、を更に備えたことを特徴とする。
請求項４記載のビートトラッキング装置は、前記ビート時刻信頼度計算手段は、前記オンセットの強調された音響信号と前記推定されたビート間隔とに基づいて近接ビート信頼度及び連続ビート信頼度を計算し、これらの計算結果に基づいて前記ビート時刻信頼度を計算することを特徴とする。
請求項５記載のビートトラッキング方法は、入力された音響信号にフィルタ処理を行ってオンセットを強調する第１ステップと、前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算する第２ステップと、前記計算されたビート間隔信頼度に基づいてビート間隔を推定する第３ステップと、を有したことを特徴とする。
請求項６記載のビートトラッキング方法は、前記第１ステップにおいてオンセットを強調した音響信号と前記第３ステップにおいて推定したビート間隔とに基づいて、ビート時刻信頼度を計算する第４ステップと、前記計算したビート時刻信頼度に基づいてビート時刻を推定する第５ステップと、を更に有したことを特徴とする。
請求項７記載のビートトラッキング方法は、前記第４ステップは、前記オンセットを強調した音響信号と前記推定したビート間隔とに基づいて近接ビート信頼度及び連続ビート信頼度を計算し、これらの計算結果に基づいて前記ビート時刻信頼度を計算することを特徴とする。
請求項８記載の記録媒体は、コンピュータに、入力された音響信号にフィルタ処理を行ってオンセットを強調する第１ステップと、前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算する第２ステップと、前記計算されたビート間隔信頼度に基づいてビート間隔を推定する第３ステップと、を実行させるためのビートトラッキング用プログラムを記録したものである。
請求項９記載のビートトラッキング用プログラムは、コンピュータに、入力された音響信号にフィルタ処理を行ってオンセットを強調する第１ステップと、前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算する第２ステップと、前記計算されたビート間隔信頼度に基づいてビート間隔を推定する第３ステップと、を実行させるためのものである。
請求項１０記載のロボット（例えば、実施例における脚式移動音楽ロボット４）は、音楽音響を集音して音楽音響信号（例えば、実施例における音楽音響信号ＭＡ）に変換する集音手段（例えば、実施例における耳機能部３１０）と、音声合成処理によって自己音声信号（例えば、実施例における自己音声信号ＳＶ）を生成する音声信号生成手段（例えば、実施例における歌唱制御部２２０，スキャット制御部２３０）と、前記自己音声信号を音に変換して出力する音出力手段（例えば、実施例における発声機能部３２０）と、前記音楽音響信号と前記自己音声信号とを入力し、前記音楽音響信号から前記自己音声信号の音声成分を抑制した音響信号を生成する自己音声抑制手段（例えば、実施例における自己発声音抑制部１０）と、前記音響信号にフィルタ処理を行ってオンセットを強調するフィルタ手段（例えば、実施例におけるＳｏｂｅｌフィルタ部２１）と、前記オンセットの強調された音響信号に、相互相関関数を適用した時間周波数パターンマッチングを行ってビート間隔信頼度を計算するビート間隔信頼度計算手段（例えば、実施例における時間周波数パターンマッチング部２２）と、前記計算されたビート間隔信頼度に基づいてビート間隔を推定する（例えば、実施例におけるテンポＴＰ）ビート間隔推定手段（例えば、実施例におけるビート間隔推定部２３）と、前記フィルタ手段においてオンセットの強調された音響信号と前記ビート間隔推定手段において推定されたビート間隔とに基づいて、ビート時刻信頼度を計算するビート時刻信頼度計算手段（例えば、実施例における近接ビート信頼度計算部３１，連続ビート信頼度計算部３２，ビート時刻信頼度計算部３３）と、前記計算されたビート時刻信頼度に基づいてビート時刻を推定する（例えば、実施例におけるビート時刻ＢＴ）ビート時刻推定手段（例えば、実施例におけるビート時刻推定部３４）と、前記それぞれ推定されたビート間隔及びビート時刻に基づいて、前記音声信号生成手段で生成される自己音声信号を同期化する同期化手段（例えば、実施例におけるビート時刻予測部２１０，歌唱制御部２２０，スキャット制御部２３０）と、を備えたことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、雑音に対するロバスト性を確保するとともに、テンポ変動への追従性及びテンポ推定の安定性を確保することができる。
請求項１，５，８，９記載の各発明によれば、時間方向と周波数方向との二次元の相互相関関数を適用してパターンマッチングをはかるものであるため、雑音に対する処理の安定性を確保したまま、処理遅延時間を少なくすることができる。
請求項２記載の発明によれば、オンセットが強調されるため、ビート成分の雑音に対するロバスト性をより向上させることができる。
請求項３，６記載の各発明によれば、ビート時刻信頼度を求めてビート時刻を推定するため、ビート時刻の確からしさに基づいた精度の高いビート時刻推定を行うことができる。
請求項４，７記載の各発明によれば、近接ビート信頼度及び連続ビート信頼度を計算してビート時刻信頼度を求めるため、ビートの集合から尤度の高いビート列についてのビート時刻を推定することができ、より精度を上げることができる。
請求項１０記載の発明によれば、雑音に対するロバスト性を確保するとともに、テンポ変動への追従性及びテンポ推定の安定性を確保して音楽インタラクションを行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態であるビートトラッキング装置のブロック構成図である。
【図２】本実施形態における、推定ビート間隔を決定するビート間隔推定アルゴリズムを説明するための図である。
【図３】本実施形態における、ビート時刻を推定するビート時刻推定アルゴリズムを説明するための図である。
【図４】本発明の実施例である脚式移動音楽ロボットの概略の正面図である。
【図５】本実施例である脚式移動音楽ロボットの概略の側面図である。
【図６】本実施例である脚式移動音楽ロボットの、主に音楽インタラクションに関係する部分のブロック構成図である。
【図７】本実施例における楽曲ＩＤテーブルの例である。
【図８】推定されたテンポに係るビート間隔時間に基づいてビート時刻を予測して外挿する様子を模式的に表した図である。
【図９】本実施例における、ビートトラッキング性能（ビートトラッキング成功率）についての実験結果を示したチャートである。
【図１０】従来技術を使用した場合の、ビートトラッキング性能（ビートトラッキング成功率）についての実験結果を示したチャートである。
【図１１】本実施例における、ビートトラッキング性能（テンポ変化時からの平均遅延時間）についての実験結果を示した図である。
【図１２】本実施例におけるテンポ推定の実験結果のグラフである。
【図１３】本実施例における、ビートトラッキング性能（ビート予測成功率）についての実験結果を示した図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について、図面を参照して詳細に説明する。ここでは、本発明の実施形態であるリアルタイム・ビートトラッキング装置（以下、ビートトラッキング装置という。）をロボットに適用した例について説明する。このロボットは、後述する実施例でその詳細を説明するが、マイクロホンで集音した音楽からビートを抽出し、そのビートに合わせて足踏みをしたり、歌唱やスキャットによる自己発声音をスピーカから出力したりして音楽インタラクションを行うものである。
【００１６】
図１に、本実施形態であるビートトラッキング装置のブロック構成図を示す。同図において、ビートトラッキング装置１は、自己発声音抑制部１０と、テンポ推定部２０と、ビート時刻推定部３０とを備えている。
【００１７】
自己発声音抑制部１０は、セミブラインド独立成分分析部（以下、ＳＢ−ＩＣＡ部という。）１１を備えている（ＳＢ−ＩＣＡ：Ｓｅｍｉ−Ｂｌｉｎｄ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｃｏｍｐｏｎｅｎｔ  Ａｎａｌｙｓｉｓ）。ＳＢ−ＩＣＡ部１１には、２チャンネルの音声信号が入力される。そのうち、第１のチャンネルは音楽音響信号ＭＡであり、第２のチャンネルは自己音声信号ＳＶである。音楽音響信号ＭＡは、ロボットに備えられたマイクロホンで集音された音楽から得られた音響信号である。ここでいう音楽とは、一般的にいう歌唱や演奏による音楽やスキャット等、拍のある音響信号のことをいう。自己音声信号ＳＶは、ロボットの音声信号生成部（例えば、後述する実施例における歌唱制御部及びスキャット制御部）で生成されてスピーカの入力部に入力される音声合成音に係る音声信号である。
【００１８】
自己音声信号ＳＶは、ロボットの音声信号生成部が生成した音声信号であるため、雑音を無視できるクリーンな信号である。一方、音楽音響信号ＭＡは、マイクロホンで集音した音響信号であるため雑音が含まれている。特に、ロボットに音楽を聴かせながら、足踏み、歌唱、スキャット等を行わせた場合には、これらの動作に伴って発生する音が、ロボットに聴かせている音楽と同様の周期性を有する雑音となって音楽音響信号ＭＡに含まれることになる。
【００１９】
そこで、ＳＢ−ＩＣＡ部１１は、音楽音響信号ＭＡ及び自己音声信号ＳＶを入力して周波数解析処理を行ったのち、音楽音響情報から自己音声成分のエコーキャンセルを行って、自己発声音の抑制されたスペクトラムである自己発声音抑制スペクトラムを出力するものである。
【００２０】
具体的には、ＳＢ−ＩＣＡ部１１は、音楽音響信号ＭＡ及び自己音声信号ＳＶを、例えば、４４．１ＫＨｚ，１６ビットで同期させてサンプリングしたのち、窓長を４０９６ポイント、シフト長を５１２ポイントに設定した短時間フーリエ変換を適用した周波数解析処理を行う。この周波数解析処理によって第１及び第２のチャンネルそれぞれについて得られたスペクトルを、スペクトルＹ（ｔ，ω）及びＳ（ｔ，ω）とする。なお、ｔ，ωは、それぞれ時間フレーム及び周波数を表すインデックスである。
【００２１】
次に、ＳＢ−ＩＣＡ部１１は、スペクトルＹ（ｔ，ω）及びＳ（ｔ，ω）をもとに、ＳＢ−ＩＣＡ処理を行って自己発声音抑制スペクトラムｐ（ｔ，ω）を求める。ＳＢ−ＩＣＡ処理の計算方法を数式１に示す。なお、数式１においては、式を簡略化するためにωの記載を省略してある。
【００２２】
【数１】
2010026512.tif 000003
【００２３】
数式１において、残響を考慮するためのフレーム数をＭとした。すなわち、スピーカからマイクロホンまでの伝達系により、Ｍフレームにわたって残響が生じることを仮定して、Ｓ（ｔ，ω），Ｓ（ｔ−１，ω），Ｓ（ｔ−２，ω）・・・Ｓ（ｔ−Ｍ，ω）の反射モデルを採用している。例えば、実験においてはＭ＝８フレームを設定することができる。また、数式１におけるＡ，Ｗは分離フィルタを示し、ＳＢ−ＩＣＡ部１１では適応的にこれらの推定を行う。そして、数式１によれば、ｐ（ｔ，ω）＝Ｙ（ｔ，ω）−Ｓ（ｔ，ω）となるようなスペクトラムが計算される。
【００２４】
したがって、ＳＢ−ＩＣＡ部１１は、ＳＢ−ＩＣＡ処理の入力及び出力に既知の信号であるＳ（ｔ，ω）を用いるとともに、伝達系による残響を考慮したことにより、雑音除去の効果を有しながら自己発声音の抑制を精度よく行うことができる。
【００２５】
テンポ推定部２０は、Ｓｏｂｅｌフィルタ部２１と、時間周波数パターンマッチング部（以下、ＳＴＰＭ部という。）２２と、ビート間隔推定部２３とを備えている（ＳＴＰＭ：Ｓｐｅｃｔｒｏ−Ｔｅｍｐｏｒａｌ  Ｐａｔｔｅｒｎ  Ｍａｃｈｉｎｇ）。
【００２６】
Ｓｏｂｅｌフィルタ部２１は、テンポ推定部２０のビート間隔推定処理の前処理として位置づけられるものであり、自己発声音抑制部１０から供給された自己発声音抑制スペクトラムｐ（ｔ，ω）について、楽音のオンセット（音響信号のレベルが急激に大きくなる部分）を強調するためのフィルタである。結果として、ビート成分の雑音に対するロバスト性が向上する。
【００２７】
具体的には、Ｓｏｂｅｌフィルタ部２１は、自己発声音抑制スペクトルｐ（ｔ，ω）に対して、音声認識処理や音楽認識処理で用いられるメルフィルタバンクを適用し、周波数の次元数を６４次元に圧縮する。そして、得られたメルスケールでのパワースペクトルをＰｍｅｌ（ｔ，ｆ）とする。なお、メル周波数軸での周波数インデックスをｆとする。ここで、スペクトログラムにおいてパワーが急激に上昇する時刻は楽音のオンセットである可能性が高く、そのオンセットとビート時刻やテンポとは密接な関係がある。そこで、時間方向のエッジ強調と周波数方向の平滑化とを同時に行うことのできるＳｏｂｅｌフィルタを用いてスペクトラムを整形する。パワースペクトルＰｍｅｌ（ｔ，ｆ）にフィルタ処理を行って出力Ｐｓｏｂｅｌ（ｔ，ｆ）を出力するＳｏｂｅｌフィルタの計算式を数式２に示す。
【００２８】
【数２】
2010026512.tif 000004
【００２９】
さらに、ビート時刻に対応するパワーの立ち上がり部を抽出するため、数式３の処理を行ってフレームごとに６２次元（ｆ＝１，２，・・・，６２）のオンセットベクトルｄ（ｔ，ｆ）を求める。
【００３０】
【数３】
2010026512.tif 000005
【００３１】
テンポ推定部２０のビート間隔推定処理は、ＳＴＰＭ部２２及びビート間隔推定部２３によって行われる。ここで、隣り合う二つのビートの時間間隔を、「ビート間隔」と定義する。ＳＴＰＭ部２２は、Ｓｏｂｅｌフィルタ部２１で求められたオンセットベクトルｄ（ｔ，ｆ）を用いて正規化相互相関関数による時間周波数パターンマッチング処理を行ってビート間隔信頼度Ｒ（ｔ，ｉ）を計算する。この正規化相互相関関数の計算式を数式４に示す。なお、数式４において、オンセットベクトルのマッチングに用いる次元数をＦｗとする。例えば、Ｆｗには６２次元全てとなる６２を適用することができる。また、マッチングの窓長をＰｗ、シフトパラメータをｉとする。
【００３２】
【数４】
2010026512.tif 000006
【００３３】
数式４に示した正規化相互相関関数は、時間方向と周波数方向との二次元による相互相関をとるものであるため、周波数方向に深くする一方時間方向の窓長を減らすことができる。すなわち、ＳＴＰＭ部２２は、雑音に対する処理の安定性を確保したまま、処理遅延時間を少なくすることができる。また、数式４の分母に示された正規化項は、信号処理における白色化に相当する部分である。よって、ＳＴＰＭ部２２は、Ｓｏｂｅｌフィルタ部２１における雑音抑制効果に加えて、さらに定常雑音の抑制効果を有するものである。
【００３４】
ビート間隔推定部２３は、ＳＴＰＭ部２２で計算されたビート間隔信頼度Ｒ（ｔ，ｉ）からビート間隔を推定する。具体的には、次のようにしてビート間隔を推定する。ビート間隔推定部２３は、前処理として、数式５によりローカルピークＲｐｅａｋ（ｔ，ｉ）を計算する。
【００３５】
【数５】
2010026512.tif 000007
【００３６】
ビート間隔推定部２３は、数式５により求めたローカルピークＲｐｅａｋ（ｔ，ｉ）のうち最上位から二つのローカルピークを抽出する。そして、これらのローカルピークに対応するビート間隔ｉを、ローカルピークＲｐｅａｋ（ｔ，ｉ）の値の大きな方からビート間隔Ｉ１（ｔ）及びＩ２（ｔ）として選択する。そして、ビート間隔推定部２３は、これらビート間隔Ｉ１（ｔ）及びＩ２（ｔ）を用いてビート間隔候補Ｉｃ（ｔ）を求め、さらに推定ビート間隔Ｉ（ｔ）を推定する。
【００３７】
図２に、推定ビート間隔Ｉ（ｔ）を決定するためのビート間隔推定アルゴリズムを示して具体的に説明する。同図において、抽出された二つのローカルピークＲｐｅａｋ（ｔ，ｉ）の信頼度の差が大きい場合は、ビート間隔Ｉ１（ｔ）をビート間隔候補Ｉｃ（ｔ）とする。なお、差の尺度は常数αによって定められ、例えば、常数αを０．７とすることができる。
【００３８】
一方、その差が小さい場合には、裏拍が抽出されているおそれがあり、よってビート間隔Ｉ１（ｔ）が得るべきビート間隔ではないことがある。特に、正の整数分の整数倍（例えば、１／２，２／１，５／４，３／４，２／３，４／３等）が誤検出されやすい。よって、それを考慮して、ビート間隔Ｉ１（ｔ）及びＩ２（ｔ）の差分を用いたビート間隔候補Ｉｃ（ｔ）の推定を行う。より具体的には、ビート間隔Ｉ１（ｔ）及びＩ２（ｔ）の差分を差分Ｉｄ（ｔ）とし、Ｉ１（ｔ）−ｎ×Ｉｄ（ｔ）の絶対値、又はＩ２（ｔ）−ｎ×Ｉｄ（ｔ）の絶対値が閾値δよりも小さい場合に、ｎ×Ｉｄ（ｔ）をビート間隔候補Ｉｃ（ｔ）にする。これにおいて、２からＮｍａｘまでの整数である変数ｎの範囲で探索を行う。なお、Ｎｍａｘは、四分音符の長さまでを考慮して４に設定することができる。
【００３９】
次に、得られたビート間隔候補Ｉｃ（ｔ）と一つ前のフレームのビート間隔Ｉ（ｔ−１）とを用いて上記と同様の処理を行って、最終的な推定ビート間隔Ｉ（ｔ）を推定する。
【００４０】
次に、ビート間隔推定部２３は、ビート間隔推定処理によって推定したＴＩフレーム分のビート間隔群に対する中央値として、数式６の計算によってテンポＴＰ＝Ｉｍ（ｔ）を求める。なお、ＴＩは、例えば１３フレーム（約１５０ｍｓ）とすることができる。
【００４１】
【数６】
2010026512.tif 000008
【００４２】
図１の説明に戻り、ビート時刻推定部３０は、近接ビート信頼度計算部３１と、連続ビート信頼度計算部３２と、ビート時刻信頼度計算部３３と、ビート時刻推定部３４とを備えている。
【００４３】
近接ビート信頼度計算部３１は、あるフレームとビート間隔Ｉ（ｔ）前のフレームとがともにビート時刻である信頼度を計算するものである。具体的には、処理フレームｔごとに、フレームｔ−ｉと１ビート間隔Ｉ（ｔ）分前のフレームｔ−ｉ−Ｉ（ｔ）がともにビート時刻である信頼度、すなわち近接ビート信頼度Ｓｃ（ｔ，ｔ−ｉ）を、オンセットベクトルｄ（ｔ，ｆ）を用いて数式７により計算する。
【００４４】
【数７】
2010026512.tif 000009
【００４５】
連続ビート信頼度計算部３２は、各時刻において推定されたビート間隔Ｉ（ｔ）でビートが連続的に存在することを示す信頼度を計算するものである。具体的には、処理フレームｔにおけるフレームｔ−ｉの連続ビート信頼度Ｓｒ（ｔ，ｔ−ｉ）を、近接ビート信頼度Ｓｃ（ｔ，ｔ−ｉ）を用いて数式８により計算する。なお、Ｔｐ（ｔ，ｍ）は、フレームｔを基準としてｍ個前のビート時刻であり、Ｎｓｒは、連続ビート信頼度Ｓｒ（ｔ，ｔ−ｉ）を評価する際に考慮すべきビート数である。
【００４６】
【数８】
2010026512.tif 000010
【００４７】
連続ビート信頼度Ｓｒ（ｔ，ｔ−ｉ）は、複数のビート列が見つかった場合に、どのビート列が最も信頼できるか判定する場合に有効である。
【００４８】
ビート時刻信頼度計算部３３は、処理フレームｔにおけるフレームｔ−ｉのビート時刻信頼度Ｓ’（ｔ，ｔ−ｉ）を、近接ビート信頼度Ｓｃ（ｔ，ｔ−ｉ）と連続ビート信頼度Ｓｒ（ｔ，ｔ−ｉ）とを用いて数式９により計算する。
【００４９】
【数９】
2010026512.tif 000011
【００５０】
そして、ビート時刻信頼度計算部３３は、ビート時刻信頼度Ｓ’（ｔ，ｔ−ｉ）間の時間的な重複を考慮し、数式１０に示す加算平均を行って最終的なビート時刻信頼度Ｓ（ｔ）を計算する。なお，Ｓ’ｔ（ｔ），Ｎｓ’（ｔ）は、フレームｔで値を有するＳ’（ｔ，ｔ−ｉ）の集合、及びその集合の要素数を示す。
【００５１】
【数１０】
2010026512.tif 000012
【００５２】
ビート時刻推定部３４は、ビート時刻信頼度計算部３３で計算されたビート時刻信頼度Ｓ（ｔ）を用いてビート時刻ＢＴを推定する。具体的に、図３に示すビート時刻Ｔ（ｎ＋１）を推定するためのビート時刻推定アルゴリズムを参照して説明する。同図のビート時刻推定アルゴリズムにおいて、ｎ番目のビート時刻Ｔ（ｎ）が得られており、ｎ＋１番目のビート時刻Ｔ（ｎ＋１）を推定するものとする。同図のビート時刻推定アルゴリズムでは、現在の処理フレームｔが、ビート時刻Ｔ（ｎ）にビート間隔Ｉ（ｔ）の３／４倍を加えた時刻を超えている場合に、ビート時刻信頼度Ｓ（ｔ）からＴ（ｎ）±１／２・Ｉ（ｔ）の範囲内で最大３個のピークを抽出する。その範囲内にピークが存在する場合（Ｎｐ＞０）は、Ｔ（ｎ）＋Ｉ（ｔ）に最も近いピークをビート時刻Ｔ（ｎ＋１）にする。一方、ピークが存在しない場合は、Ｔ（ｎ）＋Ｉ（ｔ）をビート時刻Ｔ（ｎ＋１）にする。そして、ビート時刻Ｔ（ｎ＋１）をビート時刻ＢＴとして出力する。
【００５３】
以上により、本実施形態であるビートトラッキング装置によれば、自己発声音抑制部によって、周波数解析処理ののち音楽音響情報から自己音声成分のエコーキャンセルを行うため、雑音除去の効果とともに自己発声音の抑制効果を発揮することができる。
【００５４】
また、本実施形態であるビートトラッキング装置によれば、自己発声音が抑制された音楽音響情報にＳｏｂｅｌフィルタ処理を行うため、楽音のオンセットが強調されてビート成分の雑音に対するロバスト性が向上する。
【００５５】
また、本実施形態であるビートトラッキング装置によれば、時間方向と周波数方向との二次元の正規化相互相関関数を計算してパターンマッチングをはかるものであるため、雑音に対する処理の安定性を確保したまま、処理遅延時間を少なくすることができる。
【００５６】
また、本実施形態であるビートトラッキング装置によれば、第一番目及び第二番目に高いローカルピークに対応する２つのビート間隔をビート間隔候補として選択し、これらのうちいずれがよりビート間隔として尤もらしいかを詳細に判定するため、裏拍を誤検出するおそれを抑制してビート間隔の推定を行うことができる。
【００５７】
さらに、本実施形態であるビートトラッキング装置によれば、近接ビート信頼度及び連続ビート信頼度を計算してビート時刻信頼度を求めるため、ビートの集合から尤度の高いビート列についてのビート時刻を推定することができる。
【実施例】
【００５８】
次に、本発明を実施するための実施例について図面を参照して説明する。図４に、本発明の実施例である脚式移動音楽ロボット（以下、音楽ロボットという。）の概略の正面図を示す。そして図５に、図４に示した音楽ロボットの概略の側面図を示す。図４において、音楽ロボット４は、基体部４１と、これにそれぞれ可動連結される頭部４２と、脚部４３Ｌ，４３Ｒと、腕部４４Ｌ，４４Ｒとを備えている。また、図５に示すように、音楽ロボット４は、背負う格好で収納部４５を基体部４１に装着している。
【００５９】
図６に、主に音楽ロボット４の音楽インタラクションに関係する部分のブロック構成図を示す。同図において、音楽ロボット４は、ビートトラッキング装置１と、音楽認識装置１００と、ロボット制御装置２００とを備えている。なお、ここでのビートトラッキング装置１は、前述の実施形態であるビートトラッキング装置を採用しているため、同一の符号を付している。そして、ビートトラッキング装置１と、音楽認識装置１００と、ロボット制御装置２００とは、収納部４５に収納されている。
【００６０】
音楽ロボット４の頭部４２は、音楽ロボット４の周囲の音を集音するための耳機能部３１０を備えている。耳機能部３１０は、例えばマイクロホンを用いることができる。基体部４１は、音楽ロボット４自身が発声すべき音を周囲に拡声するための発声機能部３２０を備えている。発声機能部３２０は、例えば音声信号を増幅するためのアンプ及びスピーカを用いることができる。脚部４３Ｌ，４３Ｒは、脚機能部３３０を備えている。脚機能部３３０は、脚部４３Ｌ，４３Ｒで上体を支えて自立させるだけでなく、二足歩行をさせたり足踏みさせたりする等、脚部４３Ｌ，４３Ｒの動作を制御するものである。
【００６１】
ビートトラッキング装置１は、前述の実施形態で説明したとおり、音楽ロボット４が音楽を聴いて得た音楽音響信号から、音楽ロボット４自身が発声する自己発声音による影響を抑制した音楽音響情報を抽出し、その音楽音響情報からテンポを推定するとともにビート時刻を推定するものである。ビートトラッキング装置１の自己発声音抑制部１０は２チャンネル分の音声信号入力部を具備しており、その第１のチャンネルには、頭部４２に備えられた耳機能部３１０から音楽音響信号ＭＡが入力される。また、第２のチャンネルには、ロボット制御装置２００から出力されて基体部４１の発声機能部３２０に入力される自己音声信号ＳＶの分岐された信号（これも自己音声信号ＳＶという。）が入力される。
【００６２】
音楽認識装置１００は、ビートトラッキング装置１で推定されたテンポＴＰに基づいて、音楽ロボット４に歌唱させるための楽曲を決定し、その楽曲に関する楽曲情報をロボット制御装置２００に出力するものである。音楽認識装置１００は、音楽区間検出部１１０と、楽曲名同定部１２０と、楽曲情報検索部１３０と、楽曲データベース１４０とを備えている。
【００６３】
音楽区間検出部１１０は、ビートトラッキング装置１から供給されたテンポＴＰに基づいて、安定したビート間隔が得られる時間を音楽区間として検出し、その音楽区間において音楽区間ステータス信号を出力するものである。具体的には、過去Ａｗ個のフレームのうち、フレームｘのビート間隔Ｉ（ｘ）と現在の処理フレームｔのビート間隔Ｉ（ｔ）との差分が、ビート間隔の許容誤差αよりも小さくなる関係を満たすフレームｘの総数をＮｘとする。そのときのビート間隔安定度Ｓを数式１１により求める。
【００６４】
【数１１】
2010026512.tif 000013
【００６５】
例えば、過去のフレーム数Ａｗ＝３００（約３．５秒に相当する。）、許容誤差α＝５（５８ミリ秒に相当する。）とした場合に、ビート間隔安定度Ｓが０．８以上の場合に、音楽区間であると判定する。
【００６６】
楽曲名同定部１２０は、ビートトラッキング装置１から供給されたテンポＴＰに最も近いテンポに対応する楽曲ＩＤを出力するものである。なお、本実施例では、各楽曲は各別のテンポを有するという前提とする。具体的には、楽曲名同定部１２０は、図７に示すような楽曲ＩＤテーブル７０を予め有している。この楽曲ＩＤテーブル７０は、６０Ｍ．Ｍ．から１２０Ｍ．Ｍ．までの複数のテンポにそれぞれ対応した楽曲ＩＤと、いずれのテンポにもマッチしない場合（Ｕｎｋｎｏｗｎ）に用いる楽曲ＩＤである「ＩＤｕｎｋｎｏｗｎ」とを登録した表データである。同図の例によれば、楽曲ＩＤであるＩＤ００１−ＩＤ００７にそれぞれ対応する楽曲情報は、楽曲データベース１４０に格納されている。なお、テンポの単位である「Ｍ．Ｍ．」とは、１分間あたりの四分音符の数を示すテンポ表記である。
【００６７】
楽曲名同定部１２０は、ビートトラッキング装置１から供給されたテンポＴＰについて、テンポ差が最も小さいテンポを楽曲ＩＤテーブル７０から検索し、その検索されたテンポとテンポＴＰとの差分がテンポ差の許容値β以下である場合は、その検索されたテンポに関連づけられた楽曲ＩＤを出力する。一方、差分が許容値βよりも大きい場合は、「ＩＤｕｎｋｎｏｗｎ」を楽曲ＩＤにして出力する。
【００６８】
楽曲情報検索部１３０は、楽曲名同定部１２０から供給された楽曲ＩＤが「ＩＤｕｎｋｎｏｗｎ」でない場合は、その楽曲ＩＤをキーとして楽曲データベース１４０から楽曲情報を読み出し、音楽区間検出部１１０から供給される音楽区間ステータス信号のタイミングにしたがって出力する。楽曲情報は、例えば歌詞情報と、音の種類、長さ、音程等を含む譜面情報とを含むものである。楽曲情報は、楽曲ＩＤテーブル７０の楽曲ＩＤ（ＩＤ００１−ＩＤ００７）、又はこれらの楽曲ＩＤと同一のＩＤに関連づけられて楽曲データベース１４０に格納されている。
【００６９】
一方、楽曲情報検索部１３０は、楽曲名同定部１２０から供給された楽曲ＩＤが「ＩＤｕｎｋｎｏｗｎ」である場合は、楽曲データベース１４０には歌唱させるべき楽曲情報が格納されていないため、音楽ロボット４にスキャットを発声させるためのスキャット実行命令を、入来する音楽区間ステータス信号のタイミングにしたがって出力する。
【００７０】
ロボット制御装置２００は、ビートトラッキング装置１で推定されたテンポＴＰ及びビート時刻ＢＴ、並びに音楽認識装置１００から供給された楽曲情報又はスキャット実行命令に基づいて、ビート時刻に同期した歌唱若しくはスキャット、若しくは足踏み、又はそれらを組み合わせた動作を行わせるものである。ロボット制御装置２００は、ビート時刻予測部２１０と、歌唱制御部２２０と、スキャット制御部２３０と、足踏み制御部２４０とを備えている。
【００７１】
ビート時刻予測部２１０は、ビートトラッキング装置１で推定されたテンポＴＰ及びビート時刻ＢＴに基づいて、音楽ロボット４における処理遅延時間を考慮した、現在時刻より未来のビート時刻の予測を行うものである。本実施例における処理遅延は、ビートトラッキング装置１における処理遅延、及びロボット制御装置２００における処理遅延である。
【００７２】
ビートトラッキング装置１における処理遅延は、主に数式１０に示すビート時刻信頼度Ｓ（ｔ）の計算処理と、ビート時刻推定アルゴリズムによるビート時刻Ｔ（ｎ＋１）の推定処理とに係るものである。すなわち、数式１０において、フレームｔのビート時刻信頼度Ｓ（ｔ）を算出するときには、全てのフレームｔｉが揃うまで待つ必要がある。フレームｔｉの最大値は、ｔ＋ｍａｘ（Ｉ（ｔｉ））で規定されるが、Ｉ（ｔｉ）の最大値はビート時刻推定アルゴリズムの特性上、６０Ｍ．Ｍ．に対応するフレーム数であるため、正規化相互相関関数の窓長と同一の１ｓｅｃとなる。ビート時刻推定処理では、ｔ＝Ｔ（ｎ）＋３／４・Ｉ（ｔ）の際のピーク抽出にＴ（ｎ）＋３／２・Ｉ（ｔ）までビート時刻信頼度が必要である。つまり、フレームｔのビート時刻信頼度が得られてから３／４・Ｉ（ｔ）だけ待つ必要があり、この最大値は０．７５ｓｅｃとなる。
【００７３】
また、ビートトラキング装置１では、自己発声音抑制部１０におけるＭフレーム分の遅延と、テンポ推定部２０のＳｏｂｅｌフィルタ部２１における１フレーム分の遅延とが生じるため、約２ｓｅｃの処理遅延時間が発生する。
【００７４】
また、ロボット制御装置２００における処理遅延は、主に歌唱制御部２２０における音声合成処理の処理による遅延である。
【００７５】
そこで、ビート時刻予測部２１０は、ビート時刻推定部３０で推定された最新のビート時刻ＢＴにテンポＴＰに係るビート間隔時間を外挿することにより、処理遅延時間よりも長い時間分先のビート時刻を予測する。
【００７６】
具体的には、第１の例として数式１２の計算によってビート時刻を予測することができる。数式１２において、ビート時刻Ｔ（ｎ）を、フレームｔまでに推定されたビート時刻のうち最新のビート時刻とする。そして、数式１２では、フレームｔより未来のビート時刻に対応するフレームのうち最もフレームｔに近いフレームＴ’を計算する。
【００７７】
【数１２】
2010026512.tif 000014
【００７８】
また、第２の例として、予め処理遅延時間が分かっている場合は、ビート時刻予測部２１０は、現在時刻から処理遅延時間分の時間を超えるまでテンポＴＰをカウントし、超えたときのタイミングでビート時刻を外挿していく。図８に、第２の例によってビート時刻を外挿する様子を模式的に示す。同図の（ａ）（ｂ）それぞれは、ビート時刻予測部２１０が、最新の推定ビート時刻である最新ビート時刻ＣＢを取得したのちの現在時刻ＣＴから処理遅延時間ＤＴを超えた時刻に予測ビート時刻ＰＢを外挿する様子を示している。同図（ａ）は、処理遅延時間ＤＴに対して１ビート間隔が長いため１ビート間隔後に予測ビート時刻ＰＢを外挿する様子を示している。そして、同図（ｂ）は、処理遅延時間ＤＴに対して１ビート間隔が短く、３ビート間隔後に予測ビート時刻ＰＢを外挿する様子を示している。
【００７９】
歌唱制御部２２０は、音楽認識装置１００の楽曲情報検索部１３０から供給される楽曲情報において、譜面情報における音符の時刻及び長さを、ビートトラッキング装置１で推定されたテンポＴＰと、ビート時刻予測部２１０で予測された予測ビート時刻ＰＢとに基づいて調整する。そして、歌唱制御部２２０は、楽曲情報の歌詞情報を用いて音声合成処理を行い、音声信号である歌声音声信号に変換して出力する。
【００８０】
スキャット制御部２３０は、音楽認識装置１００の楽曲応報検索部１３０から供給されるスキャット実行命令を受信した場合に、「Ｄａｂａ  Ｄａｂａ  Ｄｕｂａ」や「Ｚｕｎ  Ｃｈａ（ずん  ちゃ）」等の予め記憶しているスキャット用歌詞の発音タイミングを、ビートトラッキング装置１で推定されたテンポＴＰと、ビート時刻予測部２１０で予測された予測ビート時刻ＰＢとに基づいて調整する。
【００８１】
具体的には、スキャット制御部２３０は、スキャット用歌詞（例えば、「Ｄａｂａ」，「Ｄａｂａ」，「Ｄｕｂａ」）から抽出したオンセットベクトルｄ（ｔ，ｆ）の各ベクトル値の合計値のピークを「Ｄａｂａ」，「Ｄａｂａ」，「Ｄｕｂａ」のスキャットのビート時刻にする。そして、スキャット制御部２３０は、各音でのビート時刻とスキャットのビート時刻とを合わせて音声合成処理を行い、音声信号であるスキャット音声信号に変換して出力する。
【００８２】
歌唱制御部２２０から出力された歌声音声信号と、スキャット制御部２３０から出力されたスキャット音声信号とは、信号合成されて発声機能部３２０に供給されるとともに、ビートトラッキング装置１の自己発声音制御部１０の第２チャンネルに供給される。なお、音楽区間検出部１１０から音楽区間ステータス信号が出力されている区間において、信号合成による自己音声信号を生成し出力するようにしてもよい。
【００８３】
足踏み制御部２４０は、ビートトラッキング装置１で推定されたテンポＴＰと、ビート時刻予測部２１０で予測された予測ビート時刻ＰＢと、音楽ロボット４の脚部４３Ｌ，４３Ｒの端部である足部の地面への接地時刻とを用いたフィードバック則に基づいて足踏み動作のタイミングを生成する。
【００８４】
次に、本実施例である音楽ロボット４を用いて音楽インタラクションの実験を行った結果について説明する。
【００８５】
［実験１：ビートトラッキングの基本性能］
実験１用の評価データとして、ＲＷＣ研究用音楽データベース（ｈｔｔｐ：／／ｓｔａｆｆ．ａｉｓｔ．ｇｏ．ｊｐ／ｍ．ｇｏｔｏ／ＲＷＣ−ＭＤＢ／）におけるポピュラー音楽データベース（ＲＷＣ−ＭＤＢ−Ｐ−２００１）のポピュラー音楽全１００曲（日本語歌詞及び英語歌詞の楽曲）を使用した。各楽曲は、正しいビート時刻を容易に取得するため、ＭＩＤＩデータを用いて生成した。ただし、ＭＩＤＩデータは、得られたビート時刻の評価のためにのみ用いることとした。また、各楽曲の開始後３０−９０秒までの６０秒間を評価データとして用いることとし、本実施例である音楽ロボット４による相互相関関数ベースの方式と、自己相関関数ベースの方式とでビートトラッキング成功率を比較した。なお、ビートトラッキング成功率の計算では、推定ビート時刻と正しいビート時刻との差が±１００ｍＳ以内に収まっている場合に成功であるとした。具体的なビートトラッキング成功率ｒの計算例を数式１３に示す。なお、Ｎｓｕｃｃｅｓｓは推定成功ビート数であり、Ｎｔｏｔａｌは正しいビート総数である。
【００８６】
【数１３】
2010026512.tif 000015
【００８７】
［実験２：テンポ変化への追従速度］
実験２用の評価データとして、ポピュラー音楽データベース（ＲＷＣ−ＭＤＢ−Ｐ−２００１）から生演奏録音の３曲を選択し、テンポ変化を含む音楽音響信号を作成した。具体的には、楽曲番号１１，１８，６２の楽曲を選択し（テンポはそれぞれ９０，１１２，８１Ｍ．Ｍ．）、これらの楽曲をＮｏ．１８→Ｎｏ．１１→Ｎｏ．１８→Ｎｏ．６２の順に６０秒ずつ区切ってつなげ合わせて４分間の音楽音響情報を作成した。この音楽音響情報を用いて、ビートトラッキングの遅延を、実験１と同様に本実施例と自己相関関数ベースの方式とで比較した。なお、ビートトラッキングの遅延時間は、実際にテンポが変化してからシステムがテンポ変化に追従するまでの時間とした。
【００８８】
［実験３：ビート予測のノイズロバスト性能］
実験３用の評価データとして、ポピュラー音楽データベース（ＲＷＣ−ＭＤＢ−Ｐ−２００１）の楽曲番号６２のＭＩＤＩデータを用いて生成したテンポが一定である楽曲を用いた。ただし、実験１と同様に、ＭＩＤＩデータはビート時刻の検証にのみ用いることとした。また、評価指標はビートトラッキング成功率を用いた。
【００８９】
次に、上記実験１−３の実験結果について説明する。まず、実験１の結果を図９，１０のチャートに示す。図９は、本実施例についての、テンポに対するビートトラッキング成功率を示した実験結果である。また、図１０は、自己相関関数ベースについての、同様の実験結果である。図９，１０において、ビートトラッキング成功率の平均値は、図９については約７９．５％、図１０については約７２．８％であり、本実施例の方式の方が自己相関関数ベースよりも優れていることがわかる。
【００９０】
また、図９，１０ともに、テンポが遅い場合のビートトラッキング成功率の低下がみられる。これは、テンポの遅い楽曲は、ドラム等のテンポ抽出のキーとなる楽器が少ない音楽であるためと推測される。しかしながら、テンポが９０Ｍ．Ｍ．付近を超える楽曲についての本実施例でのビートトラッキング成功率は９０％を超えており、本実施例のビートトラッキングの基本的性能が従来例よりも高いことがわかる。
【００９１】
次に、実験２の結果を図１１の平均遅延時間測定結果に示す。また、図１２に、音楽ロボット４の電源がオフである場合のテンポ推定の実験結果をグラフで示す。図１１，１２から明らかなとおり、本実施例は、従来の自己相関関数ベースに比べてテンポ変化への適応が速いことがわかる。図１１によれば、本実施例（ＳＴＰＭ処理）は、自己相関関数ベース（自己相関処理）に対して、スキャットをしない場合で１／１０程度、スキャットをする場合で１／２０程度の時間短縮の効果があることがわかる。
【００９２】
また、図１２によれば、実際のテンポ（Ａｃｔｕａｌ  Ｔｅｍｐｏ）に対する本実施例の遅延時間は、Ｄｅｌａｙ＝２ｓｅｃであるのに対し、自己相関関数ベースの遅延時間は、Ｄｅｌａｙ＝約２０ｓｅｃとなっている。なお、同図の１００ｓｅｃ付近でビートトラッキングが乱れているのは、ビート時刻にオンセットのない部分が評価データに一時的に存在しているためである。よって、本実施例では、一時的（短時間）にテンポが不安定になる場合があるが、従来の自己相関関数ベースに比べて不安定期間は特段に短い。また、本実施例では、音楽認識装置１００の音楽区間検出部１１０が音楽区間を検出し、ビートが抽出できない区間を非音楽区間であると判定するため、本実施例である音楽ロボット４ではこのような不安定期間の影響は極めて少ない。
【００９３】
実験３の結果を図１３のビート予測成功率に示す。同図によれば、自己発声音がその周期性のためにビートトラッキングに影響を与えていることと、自己発声音抑制機能がこのような周期性ノイズに効果的に作用していることを示している。
【００９４】
以上により、本実施例である音楽ロボットによれば、ビートトラッキング装置を備えたことによって雑音に対するロバスト性を確保するとともに、テンポ変動への追従性とテンポ推定の安定性とを兼ね備えることができる。
【００９５】
また、本実施例である音楽ロボットによれば、処理遅延時間を考慮して推定ビート時刻から未来のビート時刻を予測するため、リアルタイムな音楽インタラクションを行うことができる。
【００９６】
なお、上述した実施形態であるビートトラッキング装置の一部又は全部の機能をコンピュータで実現するようにしてもよい。この場合、その機能を実現するためのビートトラッキング用プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたビートトラッキング用プログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、光ディスク、メモリカード等の可搬型記録媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持するものを含んでもよい。また上記のプログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせにより実現するものであってもよい。
【００９７】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００９８】
１  リアルタイム・ビートトラッキング装置（ビートトラッキング装置）
４  脚式移動音楽ロボット（ロボット）
１０  自己発声音抑制部（自己音声抑制手段）
１１  セミブラインド独立成分分析部（ＳＢ−ＩＣＡ部）
２０  テンポ推定部
２１  Ｓｏｂｅｌフィルタ部（フィルタ手段）
２２  時間周波数パターンマッチング部（ビート間隔信頼度計算手段）
２３  ビート間隔推定部（ビート間隔推定手段）
３０  ビート時刻推定部
３１  近接ビート信頼度計算部（ビート時刻信頼度計算手段）
３２  連続ビート信頼度計算部（ビート時刻信頼度計算手段）
３３  ビート時刻信頼度計算部（ビート時刻信頼度計算手段）
３４  ビート時刻推定部（ビート時刻推定手段）
ＭＡ  音楽音響信号
ＳＶ  自己音声信号
ＴＰ  テンポ（ビート間隔）
ＢＴ  ビート時刻
【図１】
2010026512.tif 000016
【図２】
2010026512.tif 000017
【図３】
2010026512.tif 000018
【図４】
2010026512.tif 000019
【図５】
2010026512.tif 000020
【図６】
2010026512.tif 000021
【図７】
2010026512.tif 000022
【図８】
2010026512.tif 000023
【図９】
2010026512.tif 000024
【図１０】
2010026512.tif 000025
【図１１】
2010026512.tif 000026
【図１２】
2010026512.tif 000027
【図１３】
2010026512.tif 000028