(57)【特許請求の範囲】
【請求項１】
入力音信号を取得するステップと、
前記入力音信号から単位時間あたりのビート数を取得するステップと、
前記入力音信号を前記単位時間あたりのビート数で正規化するステップと、
前記正規化された入力音信号のビートスペクトルを計算するステップと、
前記正規化された入力音信号のビートスペクトルと、参照音信号から計算された正規化されたビートスペクトルとのリズム類似度を計算するステップと
を有する音信号処理方法。
【請求項２】
非負値行列因子分解を用いて、前記入力音信号と前記参照音信号との第２類似度を計算するステップと、
前記リズム類似度および前記第２類似度を統合するステップと
を有する請求項１に記載の音信号処理方法。
【請求項３】
入力音信号を取得する取得手段と、
前記入力音信号から単位時間あたりのビート数を取得するＢＰＭ取得手段と、
前記入力音信号を前記単位時間あたりのビート数で正規化する正規化手段と、
前記正規化された入力音信号のビートスペクトルを計算するＢＳ計算手段と、
前記正規化された入力音信号のビートスペクトルと、参照音信号から計算された正規化されたビートスペクトルとを比較し、リズム類似度を計算するリズム類似度計算手段と
を有する音信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲の音信号を解析する技術に関する。
【背景技術】
【０００２】
楽曲の音信号を解析する技術が知られている。例えば特許文献１には、非負値行列因子分解（Nonnegative Matrix Factorization、ＮＭＦ）を用いて、楽曲のジャンルやスタイルを解析する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−７９１１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１においては、入力音と参照音のリズムパターンの類似度は、ＮＭＦの結果を用いて判断されている。しかし、ＮＭＦでは細かいリズムパターンを解析できない場合があった。
【０００５】
これに対し本発明は、より細かいリズムパターンを解析する技術を提供する。
【課題を解決するための手段】
【０００６】
本発明は、入力音信号を取得するステップと、前記入力音信号から単位時間あたりのビート数を取得するステップと、前記入力音信号を前記単位時間あたりのビート数で正規化するステップと、前記正規化された入力音信号のビートスペクトルを計算するステップと、前記正規化された入力音信号のビートスペクトルと、参照音信号から計算された正規化されたビートスペクトルとのリズム類似度を計算するステップとを有する音信号処理方法を提供する。
【０００７】
この音信号処理方法は、非負値行列因子分解を用いて、前記入力音信号と前記参照音信号との第２類似度を計算するステップと、前記リズム類似度および前記第２類似度を統合するステップとを有してもよい。
【０００８】
また、本発明は、入力音信号を取得する取得手段と、前記入力音信号から単位時間あたりのビート数を取得するＢＰＭ取得手段と、前記入力音信号を前記単位時間あたりのビート数で正規化する正規化手段と、前記正規化された入力音信号のビートスペクトルを計算するＢＳ計算手段と、前記正規化された入力音信号のビートスペクトルと、参照音信号から計算された正規化されたビートスペクトルとを比較し、リズム類似度を計算するリズム類似度計算手段とを有する音信号処理装置を提供する。
【発明の効果】
【０００９】
本発明によれば、より細かいリズムパターンを解析することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る楽曲検索システム１の機能構成を例示する図。
【図２】楽曲検索システム１の機能構成を例示する図。
【図３】特定手段１２の詳細な機能構成を例示する図。
【図４】類似度計算手段１３の詳細な機能構成を例示する図。
【図５】類似度計算手段１５の詳細な機能構成を例示する図。
【図６】電子楽器１０のハードウェア構成を例示する図。
【図７】情報処理装置２０のハードウェア構成を例示する図。
【図８】楽曲検索システム１の動作の概要を示すフローチャート。
【図９】対象区間特定処理の詳細を示すフローチャート。
【図１０】楽曲構造解析の詳細を例示するフローチャート。
【図１１】入力音信号に対して特定された楽曲構造を例示する図。
【図１２】対象区間選択処理の詳細を例示するフローチャート。
【図１３】振幅スペクトログラムに対するＮＭＦの概要を示す図。
【図１４】ＮＭＦによる類似度計算の詳細を例示するフローチャート。
【図１５】基底の組み合わせを例示する図。
【図１６】ビートスペクトルによる類似度計算の詳細を例示するフローチャート。
【図１７】ビートスペクトルを例示する図。
【発明を実施するための形態】
【００１１】
１．構成
図１は、一実施形態に係る楽曲検索システム１の機能構成を例示する図である。楽曲検索システム１は、複数の楽曲データをあらかじめ記憶している。処理対象となる楽曲（検索キーとなる楽曲）の音の入力が受け付けられると（以下、この音を「入力音」といい、入力音を示す信号を「入力音信号」という）、楽曲検索システム１は、記憶している楽曲の中から、入力音と類似している楽曲を検索する。
【００１２】
この例で、楽曲検索システム１は、電子楽器１０および情報処理装置２０を有する。電子楽器１０は、検索対象となる楽曲データを記憶した楽曲記憶装置の一例である。情報処理装置２０は、ユーザーインターフェースを提供するユーザー端末の一例である。電子楽器に記憶されている楽曲データは、伴奏用の楽曲のデータ（以下このデータを「伴奏データ」といい、伴奏用の楽曲の音を「伴奏音」という）である。ユーザーは、例えば、これから自分が演奏しようとする楽曲の情報を情報処理装置２０に入力する。楽曲の情報は、例えば、非圧縮または圧縮形式（ｗａｖやｍｐ３等）の音データに基づく楽曲の音信号であるが、これに限定されるものではない。また、楽曲の情報は、後述する情報処理装置２０のストレージ２０３に予め記憶されていてもよいし、情報処理装置２０の外から入力されてもよい。情報処理装置２０は、電子楽器に記憶されている伴奏データの中から、入力された楽曲に類似しているものを検索する。入力された楽曲に類似している伴奏音を発見すると、情報処理装置２０は、その伴奏音の再生を電子楽器１０に指示する。電子楽器１０は、指示された伴奏音を再生する。ユーザーは、再生される伴奏に合わせて電子楽器１０を演奏する。
【００１３】
図２は、楽曲検索システム１の機能構成を例示する図である。楽曲検索システム１は、楽曲の音信号（入力音信号）が入力されると、その楽曲と類似した楽曲を出力する。楽曲検索システム１は、取得手段１１、特定手段１２、類似度計算手段１３、データベース１４、類似度計算手段１５、統合手段１６、選択手段１７、および出力手段１８を有する。
【００１４】
取得手段１１は、入力音信号を取得する。特定手段１２は、入力音信号のうち、以降の処理の対象となる対象区間を特定する。データベース１４は、複数の伴奏データに関する情報を記憶している。類似度計算手段１３は、入力音信号の対象区間において、非負値行列因子分解（Nonnegative Matrix Factorization、ＮＭＦ）を用いて入力音と伴奏音の類似度を計算する。類似度計算手段１５は、入力音信号の対象区間において、ビートスペクトルを用いて入力音と伴奏音の類似度を計算する。統合手段１６は、類似度計算手段１３により計算された類似度および類似度計算手段１５により計算された類似度を統合する。選択手段１７は、統合された類似度に基づいて、入力音と類似している楽曲をデータベース１４の中から選択する。出力手段１８は、選択された楽曲を出力する。
【００１５】
図３は、特定手段１２の詳細な機能構成を例示する図である。特定手段１２は、入力音信号に対して、対象区間以外の部分（以下「非対象区間」という）を除いた音信号を出力する。特定手段１２は、構造解析手段１２１、分割手段１２２、選択手段１２３、および信号生成手段１２４を有する。構造解析手段１２１は、入力音信号により示される楽曲の音楽的な構造の解析（以下、「楽曲構造解析」という）を行う。分割手段１２２は、楽曲構造解析の結果に従って、入力音信号を時間領域において複数の区間に分割する。選択手段１２３は、複数の区間の中から、対象区間となる区間を選択する。信号生成手段１２４は、入力音信号から非対象区間を除いた音信号、すなわち対象区間のみの音信号を生成する。
【００１６】
図４は、類似度計算手段１３の詳細な機能構成を例示する図である。類似度計算手段１３は、入力音信号に対して、音色に関する類似度（以下「音色類似度」という）およびリズムに関する類似度（以下「リズム類似度」という）を出力する。類似度計算手段１３は、観測行列計算手段１３１、参照行列取得手段１３２、組み合わせ類似度計算手段１３３、音色類似度計算手段１３４、およびリズム類似度計算手段１３５を有する。観測行列計算手段１３１は、所定のアルゴリズム（この例ではＮＭＦ。ＮＭＦの詳細は後述）により、入力音信号の振幅スペクトログラムに対応する行列（以下、「観測行列」という）を、基底行列およびアクティベーション行列（係数行列）の積に分解する。以下、入力音信号から得られた基底行列およびアクティベーション行列を、それぞれ「観測基底行列」および「観測アクティベーション行列」という。観測基底行列は、入力音信号の振幅スペクトログラムに対応し、周波数に関連する第１成分および時間に関連する第２成分を含む第１行列の一例である。参照行列取得手段１３２は、参照音信号からＮＭＦにより得られた基底行列およびアクティベーション行列を取得する。以下、参照音信号から得られた基底行列およびアクティベーション行列を、それぞれ「参照基底行列」および「参照アクティベーション行列」という。参照音信号とは、参照用の楽曲を示す音信号をいう。参照用の楽曲はデータベース１４に記録されている伴奏データの中から順次選択された一の伴奏データにより示される楽曲である。参照基底行列は、参照音信号の振幅スペクトログラムに対応し、第１成分および第２成分を含み、前述の所定のアルゴリズムにより計算された第２行列の一例である。組み合わせ類似度計算手段１３３は、観測基底行列および参照基底行列に含まれる基底の組み合わせの類似度を単位時間毎に計算する。音色類似度計算手段１３４は、組み合わせ類似度計算手段１３３により計算された類似度を時間領域で積算し、入力音および参照音の音色類似度（第１類似度の一例）を計算する。リズム類似度計算手段１３５は観測アクティベーション行列および参照アクティベーション行列の類似度を計算する。この類似度は、入力音および参照音のリズム類似度（第２類似度の一例）を示している。
【００１７】
図５は、類似度計算手段１５の詳細な機能構成を例示する図である。類似度計算手段１５は、入力音信号に対して、類似度計算手段１３とは異なるアルゴリズムにより計算されたリズム類似度を出力する。類似度計算手段１５は、ＢＰＭ取得手段１５１、正規化手段１５２、ＢＳ計算手段１５３、参照ＢＳ取得手段１５４、および類似度計算手段１５５を有する。ＢＰＭ取得手段１５１は、入力音信号のＢＰＭ（Beat Per Minute）、すなわち単位時間あたりのビート数を取得する。正規化手段１５２は、入力音信号をＢＰＭで正規化する。ここで、「入力音信号をＢＰＭで正規化する」とは、入力音信号を直接、ＢＰＭで正規化するものだけでなく、入力音信号に何らかの信号処理を施して得られた信号をＢＰＭで正規化するものも含む。ＢＳ計算手段１５３（第１計算手段の一例）は、正規化された入力音信号のビートスペクトルを計算する。参照ＢＳ取得手段１５４は、参照音信号から得られた、正規化されたビートスペクトルを取得する。類似度計算手段１５５（第２計算手段の一例）は、入力音信号の正規化されたビートスペクトルと参照音信号の正規化されたビートスペクトルとを比較し、入力音および参照音のリズム類似度を計算する。
【００１８】
図６は、電子楽器１０のハードウェア構成を例示する図である。電子楽器１０は、演奏操作子１０１、音源１０２、発音制御部１０３、出力部１０４、ストレージ１０５、ＣＰＵ１０６、および通信ＩＦ１０７を有する。演奏操作子１０１は、ユーザー（演奏者）が演奏操作を行うための操作子、例えば鍵盤楽器であれば鍵盤、弦楽器であれば弦、または管楽器であればキーである。音源１０２は、各演奏操作子に対応する音データを記憶している。例えば鍵盤楽器において、ある鍵に対応する音データは、その鍵を押鍵したときに発生する音の立ち上がりから消え際までの音波形を示すデータである。発音制御部１０３は、演奏操作子１０１の操作に応じて音源１０２から音データを読み出す。出力部１０４は、読み出されたデータに応じた音信号（以下「演奏音信号」という）を出力する。ストレージ１０５は、データを記憶する不揮発性の記憶装置である。ストレージ１０５に記憶されているデータには、複数の伴奏データを記録したデータベースが含まれる。ＣＰＵ１０６は、電子楽器１０の各部を制御する制御装置である。ＣＰＵ１０６は、ストレージ１０５から読み出した伴奏データを出力部１０４に供給する。出力部１０４は、演奏音信号に加えて、伴奏データに応じた音信号（以下「伴奏音信号」という）を出力する出力装置であり、例えばスピーカーを含む。通信ＩＦ１０７は、他の装置、この例では特に情報処理装置２０と通信するためのインターフェースである。通信ＩＦ１０７は、情報処理装置２０と、例えば所定の規格に従った無線通信により通信する。
【００１９】
図７は、情報処理装置２０のハードウェア構成を例示する図である。情報処理装置２０は、ユーザー端末として機能するコンピューター装置、例えばスマートフォンである。情報処理装置２０は、ＣＰＵ２０１、メモリー２０２、ストレージ２０３、入力部２０４、出力部２０５、通信ＩＦ２０６を有する。ＣＰＵ２０１は、情報処理装置２０の他の構成要素を制御する制御装置である。メモリー２０２は、ＣＰＵ２０１がプログラムを実行する際のワークスペースとして機能する揮発性の記憶装置である。ストレージ２０３は、各種のデータおよびプログラムを記憶した不揮発性の記憶装置である。入力部２０４は、ユーザーから命令または情報の入力を受け付ける入力装置であり、例えば、タッチセンサー、ボタン、およびマイクロフォンの少なくとも１つを含む。出力部２０５は、外部に情報を出力する出力装置であり、例えば、ディスプレイおよびスピーカーの少なくとも１つを含む。通信ＩＦ２０６は、他の装置、例えば電子楽器１０またはネットワーク上のサーバ装置（図示略）と通信するためのインターフェースである。
【００２０】
この例では、図２に示した楽曲検索システム１の機能のうち、取得手段１１、特定手段１２、類似度計算手段１３、データベース１４、類似度計算手段１５、統合手段１６、および選択手段１７は、情報処理装置２０に実装されている。出力手段１８は、電子楽器１０に実装されている。
【００２１】
情報処理装置２０においては、コンピューター装置を楽曲検索システム１におけるユーザー端末として機能させるためのプログラムがストレージ２０３に記憶されている。ＣＰＵ２０１がこのプログラムを実行することにより、取得手段１１、特定手段１２、類似度計算手段１３、データベース１４、類似度計算手段１５、統合手段１６、および選択手段１７としての機能が情報処理装置２０に実装される。このプログラムを実行しているＣＰＵ２０１は、取得手段１１、特定手段１２、類似度計算手段１３、類似度計算手段１５、統合手段１６、および選択手段１７の一例である。ストレージ２０３は、データベース１４の一例である。また、電子楽器１０において、出力部１０４は出力手段１８の一例である。
【００２２】
２．動作
２−１．概要
図８は、楽曲検索システム１の動作の概要を示すフローチャートである。図８のフローは、例えば、ユーザーが楽曲の検索開始の指示を入力したことを契機として開始される。ステップＳ１において、取得手段１１は、入力音信号を取得する。ステップＳ２において、特定手段１２は、対象区間特定処理を行う。ステップＳ３において、類似度計算手段１３は、ＮＭＦによる類似度計算を行う。ステップＳ４において、類似度計算手段１５は、ビートスペクトルによる類似度計算を行う。ステップＳ５において、統合手段１６は、ＮＭＦによる類似度およびビートスペクトルによる類似度を統合する。ステップＳ６において、選択手段１７は、統合された類似度に基づいて楽曲を選択する。ステップＳ７において、出力手段１８は、選択された楽曲を出力する。すなわち、出力手段１８は、入力音に似た伴奏音を出力する。以下、各処理の詳細を説明する。
【００２３】
２−２．対象区間特定処理
ステップＳ３およびＳ４における類似度の計算は、入力音信号の全体を対象に行われてもよい。しかし、入力音信号の全体を対象とすると、以下の問題点がある。まず第１に、入力音信号の全体を対象とすると、計算にその分の時間を要する点である。第２に、入力音信号のうち、いわゆるイントロやアウトロ（エンディング）にはリズムが無い箇所が含まれている場合があり、このような部分まで含めて類似度を計算すると、類似度の信頼性が低下してしまうという点である。本実施形態においては、この点に対処するため、入力音信号のうち類似度計算の対象となる部分を一部に限っている。
【００２４】
図９は、ステップＳ２における対象区間特定処理の詳細を示すフローチャートである。ステップＳ２１において、特定手段１２は、入力音信号に対し楽曲構造解析を行う。楽曲構造解析とは、音楽的な構造（いわゆる、イントロ、Ａメロ、Ｂメロ、サビ、アウトロ（エンディング）といった区分け）を解析する処理をいう。
【００２５】
図１０は、楽曲構造解析の詳細を例示するフローチャートである。ステップＳ２１１において、特定手段１２は、入力音信号を複数の単位区間に区分する。単位区間は、例えば、楽曲の１小節に相当する区間である。単位区間の区分は例えば以下のように行われる。まず、特定手段１２は、入力音信号において拍点を検出する。次に、特定手段１２は、１小節に相当する複数個の拍点により構成される区間を単位区間として画定する。拍点の検出および１小節に相当する区間の画定には、例えば特開２０１５−１１４３６１号公報に記載された技術が用いられる。
【００２６】
ステップＳ２１２において、特定手段１２は、入力音信号から音色の特徴量（以下「音色特徴量」という）を計算する。音色特徴量としては、例えば、所定数（例えば１２個）のＭＦＣＣ（Mel-Frequency Cepstrum Coefficient、メル周波数ケプストラム係数）が用いられる。ＭＦＣＣは、ステップＳ２１１において画定された単位区間毎に計算される。
【００２７】
ステップＳ２１３において、特定手段１２は、入力音信号から和音の特徴量（以下「和音特徴量」という）を計算する。和音特徴量は、拍点に基づいて単位区間をさらに細分化したフレーム（例えば、八分音符または十六分音符に相当する期間）毎に計算される。和音特徴量としては、例えばいわゆるクロマベクトルが用いられる。クロマベクトルは、スペクトラム分析で得られた周波数域のエネルギーを例えば半音毎に区切り、これを１オクターブ内で足し合わせたものである。半音毎に区切ると全部で１２音となるので、クロマベクトルは１２次元のベクトルである。フレーム毎に計算されるクロマベクトルは和音の時間的な変化、すなわちコード進行を表している。
【００２８】
ステップＳ２１４において、特定手段１２は、確率モデルを用いた事後分布推定により、入力音の楽曲構造を推定する。すなわち、特定手段１２は、ある楽曲構造のもとで特徴量の時系列が観測される確率を記述した確率モデルについて、音色特徴量および和音特徴量の時系列が観測されたときの事後確率の確率分布（事後分布）を推定する。
【００２９】
確率モデルとしては、例えば、楽曲構造モデル、音色観測モデル、および和音観測モデルが用いられる。楽曲構造モデルは、楽曲構造を確率的に記述したモデルである。音色観測モデルは、音色特徴量の生成過程を確率的に記述したモデルである。和音観測モデルは和音特徴量の生成過程を確率的に記述したモデルである。これらの確率モデルにおいて、各単位区間は、音楽的な構造が類似または共通するもの同士で同じ構造区間にグルーピングされる。各グループは区間符号（例えば、Ａ、Ｂ、Ｃ、…）により区別される。
【００３０】
楽曲構造モデルは、例えば、相互に連鎖する複数の状態を状態空間に配列した状態遷移モデル、より詳細には隠れマルコフモデルである。音色観測モデルは、例えば、確率分布に正規分布を採用した無限混合ガウス分布に従うものであり、区間符号には依存するが構造区間内の滞在時間には依存しない確率モデルである。和音観測モデルは、例えば、確率分布に正規分布を採用した無限混合ガウス分布に従うものであり、区間符号および構造区間内の滞在時間の双方に依存する確率モデルである。各確率モデルにおける事後分布は、例えば変分ベイズ法等の反復推定アルゴリズムにより推定される。特定手段１２は、この事後分布を最大化させる楽曲構造を推定する。
【００３１】
ステップＳ２１５において、特定手段１２は、ステップＳ２１４における推定結果に基づいて楽曲構造を特定する。
【００３２】
図１１は、入力音信号に対して特定された楽曲構造を例示する図である。この例では、入力音信号が９つの単位区間（τ１〜τ９）に区分されている。これらの単位区間に対し、先頭から順に、Ａ、Ｂ、Ｃ、Ｃ、Ｃ、Ｄ、Ｂ、Ｅ、およびＦという区間符号が割り当てられている。
【００３３】
再び図９を参照する。ステップＳ２２において、特定手段１２は、入力音信号を分割する。具体的には、特定手段１２は、楽曲構造解析の結果に従って入力音信号を単位区間毎に分割する。ステップＳ２３において、特定手段１２は、複数に分割された入力音信号の中から、以降の処理に用いられる区間（以下「対象区間」という）を選択する。
【００３４】
図１２は、対象区間選択処理の詳細を例示するフローチャートである。ステップＳ２３１において、特定手段１２は、各単位区間の優先度を計算する。この例では、同じ区間符号が割り当てられた単位区間が多いものには高い優先度が、少ないものには低い優先度が与えられる。例えば図１１の例では、区間符号Ｃが割り当てられた区間が３つあるのでこれらには優先度３が、区間符号Ｂが割り当てられた区間が２つあるのでこれらには優先度２が、それ以外の区間には優先度１が、それぞれ割り当てられる。すなわち、ステップＳ２３は、複数の単位区間から、楽曲構造解析において同じグループに分類された区間が多い順にリズム類似度の計算の対象となる区間の選択をするものである。
【００３５】
なお、優先度を与える基準は上記の例に限定されない。上記の例に代えて、または加えて、他の基準が用いられてもよい。一例としては、例えば、単位区間の時間長が長いものに高い優先度を与え、時間長が短いものに低い優先度を与える基準が用いられる。すなわち、この別の例におけるステップＳ２３は、複数の単位区間のうち時間長の長い順にリズム類似度の計算の対象となる区間の選択をするものである。図１１の例では全ての単位区間の時間長が等しいが、例えば曲の途中でテンポが変わる場合や、楽曲構造解析において連続する複数の単位区間が統合されるアルゴリズムが採用された場合に、時間長に基づいて優先度を与える基準が意味を持つ。また、別の例として、例えば、入力音信号における時間軸上の位置に応じて、例えば開始から所定時間まで、および終了の所定時間前から終了までの区間に低い優先度を与え、他の区間に高い優先度を与える基準が用いられてもよい。これらの基準は重み付け加算され、複合的に適用されてもよい。
【００３６】
ステップＳ２３２において、特定手段１２は、未だ対象区間として選択されていない区間（以下「非選択区間」という）のうち、優先度が最も高い区間を対象区間に追加する。優先度が最も高い区間が複数ある場合、特定手段１２は、その中から他の基準に従って選択された１つの区間、例えば番号が最も早い区間を対象区間に追加する。
【００３７】
ステップＳ２３３において、特定手段１２は、対象区間の累積時間長がしきい値を超えたか判断する。しきい値としては、例えば、入力音信号の全時間長に対する所定の割合、一例としては５０％が用いられる。対象区間の累積時間長がしきい値を超えていないと判断された場合（Ｓ２３３：ＮＯ）、特定手段１２は、処理をステップＳ２３２に移行する。対象区間の累積時間長がしきい値を超えたと判断された場合（Ｓ２３３：ＹＥＳ）、特定手段１２は、図１２のフローを終了する。
【００３８】
図１１の例では、最初に区間τ３が対象区間に追加され、以降、処理が繰り返し行われる度に、区間τ４、τ５、τ２、およびτ７の順で対象区間に追加される。この例では区間τ１〜τ９の時間長が等しいので、区間τ７が対象区間に追加された時点で対象区間は全部で５区間となり対象区間の累積時間長が入力音信号の全時間長の５０％を超える。
【００３９】
再び図９を参照する。ステップＳ２４において、特定手段１２は、ステップＳ２３の結果に基づいて対象区間を特定する、図１１の例では、区間τ１、τ４、τ５、τ２、およびτ７が対象区間として特定される。特定手段１２は、分割された入力音信号のうち対象区間だけを繋ぎ合わせた信号を生成する。以降の処理では、この信号が入力音信号として処理される。
【００４０】
この例によれば、入力音信号の音楽的な構造に基づいて選択された一部の部分、例えば繰り返し登場する区間を以降の処理の対象として限定することができる。このような区間は、いわゆるサビやＡメロのように音楽的にインパクトの強い部分であることが多い。イントロやアウトロのようにリズムや音色が他の部分と異なっている可能性がある部分を処理の対象から除外することによって、検索の精度を保ちつつ、処理の負荷を低減することができる。
【００４１】
２−３．ＮＭＦによる類似度計算
次に、ステップＳ３におけるＮＭＦによる類似度計算について説明する。類似度計算の詳細を説明する前に、まずＮＭＦの概要について説明する。ＮＭＦとは、非負値の行列を２つの非負値の行列の積に分解する低ランク近似アルゴリズムである。非負値行列とは、その成分が全て非負値（すなわちゼロまたは正値）である行列をいう。一般にＮＭＦは次式（１）で表される。
【数１】
0006743425.tif 000002
ここでＹは与えられた行列すなわち観測行列（ｍ行ｎ列）を示す。Ｈを基底行列（ｍ行ｋ列）といい、Ｕをアクティベーション（または係数）行列（ｋ行ｎ列）という。すなわちＮＭＦは、観測行列Ｙを、基底行列Ｈとアクティベーション行列Ｕとの積で近似する処理である。
【００４２】
ＮＭＦを楽曲の類似度計算に適用するため、観測行列Ｙとして音信号の振幅スペクトログラムを表す行列を用いることを考える。振幅スペクトログラムとは、音信号の周波数スペクトルの時間変化を表すもので、時間、周波数、および振幅からなる３次元の情報である。振幅スペクトログラムは、例えば、音信号を時間領域で標本化し、これを短時間フーリエ変換することによって得られる複素スペクトログラムに対して絶対値を取ることにより得られる。ここで、横軸をｎ個に、縦軸をｍ個に分割し、分割された各領域における振幅を数値化すると、振幅スペクトログラムを行列として表すことができる。この行列は、行方向には時間的な情報を、列方向には周波数的な情報を、各成分の値は振幅に関する情報を含んでいる。振幅の値は非負値なので、この行列は非負値行列である。
【００４３】
図１３は、振幅スペクトログラムに対するＮＭＦの概要を示す図である。振幅スペクトログラムから得られた観測行列ＹにＮＭＦを適用した例を示している。基底行列Ｈは、周波数に関連する成分（第１成分の一例）および時間に関連する成分（第２成分の一例）を含み、振幅スペクトログラムに含まれる代表的スペクトルパターンの集合を表すものである。アクティベーション行列Ｕは、その代表的スペクトルパターンが「どのタイミングで」「どのくらいの強さで」現れているかを表していると考えることができる。より具体的には、基底行列Ｈは、それぞれ異なる音源に対応する複数（図１３の例では２つ）の基底ベクトルｈを含んでいる。各基底ベクトルは、ある音源の代表的な周波数スペクトルを示している。例えば、基底ベクトルｈ（１）はフルートの代表的なスペクトルパターンを示し、基底ベクトルｈ（２）はクラリネットの代表的なスペクトルパターンを示している。また、アクティベーション行列Ｕは、各音源に対応する複数（図１３の例では２つ）のアクティベーションベクトルｕを含んでいる。例えば、アクティベーションベクトルｕ（１）はフルートのスペクトルパターンが現れるタイミングおよびその強さを表しており、アクティベーションベクトルｕ（２）はクラリネットのスペクトルパターンが現れるタイミングおよびその強さを表している（図１３の例では、図面を簡単にするため、アクティベーションベクトルｕの成分の値はオンまたはオフの２値である）。
【００４４】
ＮＭＦは、観測行列Ｙが既知のときに基底行列Ｈおよびアクティベーション行列Ｕを計算するものである。詳細には、ＮＭＦは、次式（２）のように、行列Ｙと行列積ＨＵとの距離Ｄを最小化する問題として定義される。距離Ｄとしては、例えば、ユークリッド距離、一般化ＫＬ距離、板倉斎藤距離、またはβダイバージェンスが用いられる。式（２）の解を閉形式で得ることはできないが、効率的な反復解法がいくつか知られている（例えば、Lee D. D., & Sueng, H. S. (2001), Algorithms for non-negative matrix factorization. Advances in neural information processing systems, 13(1) V621-V624）。
【数２】
0006743425.tif 000003
なお、上式は、距離Ｄを最小にする行列ＨおよびＵを計算することを意味する。以降の式についても同様である。
【００４５】
なお、入力音および伴奏音に含まれる楽器が事前にある程度判明している場合、すなわち入力音および伴奏音に含まれる楽器の候補が事前にある程度限定されている場合、半教師有りＮＭＦが適用されてもよい。半教師有りＮＭＦについては、例えば、Smaragdis P, Raj B, Shashanka MV. Supervised and Semi-supervised Separation of Sounds from Single-Channel Mixtures, In: ICA. 2007. p. 414-421に記載されている。
【００４６】
図１４は、ＮＭＦによる類似度計算の詳細を例示するフローチャートである。ステップＳ３１において、類似度計算手段１３は、入力音信号の振幅スペクトログラムを計算する。ステップＳ３２において、類似度計算手段１３は、入力音信号の振幅スペクトログラムに対してＮＭＦを適用する。具体的には、類似度計算手段１３は、まず、入力音信号の振幅スペクトログラムを行列化して観測行列Ｙｏを得る。次に、類似度計算手段１３は、観測行列Ｙｏに対しＮＭＦを適用し、観測基底行列Ｈｏ（第１行列の一例）および観測アクティベーション行列Ｕｏを計算する。すなわち、ステップＳ３２は、第１行列を所定のアルゴリズムにより計算するものである。
【００４７】
ステップＳ３３において、類似度計算手段１３は、参照音信号の参照基底行列Ｈｒ（第２行列の一例）および参照アクティベーション行列Ｕｒを取得する。この例では、複数の伴奏データの各々に対してあらかじめＮＭＦが適用され、参照基底行列および参照アクティベーション行列が計算されている。計算された参照基底行列および参照アクティベーション行列は、伴奏データに関する情報としてデータベース１４に記録されている。類似度計算手段１３は、データベースに記録されている複数の伴奏データの中から、参照音とする伴奏音を順次、選択してその伴奏音に対応する参照基底行列および参照アクティベーション行列を、データベース１４から取得する。
【００４８】
なお、データベース１４に記録されている参照基底行列および参照アクティベーション行列は、必ずしも参照音の全体を用いて計算されたものでなくてもよい。入力音に対する対象区間特定処理と同様の処理で特定された一部の区間のみに対してＮＭＦが適用され、参照基底行列および参照アクティベーション行列が計算されてもよい。
【００４９】
ステップＳ３４において、類似度計算手段１３は、各フレームにおける基底の組み合わせ類似度を計算する。基底の組み合わせとは、基底行列に含まれる複数の基底ベクトルのうち、ある期間にアクティベートされる基底ベクトルの組み合わせをいう。
【００５０】
図１５は、基底の組み合わせを例示する図である。図１５（Ａ）は入力音に対応するＮＭＦの結果を、図１５（Ｂ）は参照音に対応するＮＭＦの結果を、それぞれ模式的に示す図である。この例で、入力音および参照音に対応する基底行列はいずれも、ギター、ベース、ハイハット、スネア、およびバスドラムに対応する基底ベクトルを含んでいる。図においては、各基底ベクトルに対応するアクティベーションベクトルが模式的に図示されている。横軸は時間を、縦軸はアクティベーションの強度を、それぞれ示している。基底の組み合わせを見ると、例えばフレームＦ１において、入力音では、ギター、ベース、ハイハット、およびバスドラムがアクティベートされており、参照音では、ハイハットおよびバスドラムがアクティベートされている。
【００５１】
基底の組み合わせ類似度は、例えば、入力音および参照音のそれぞれについてアクティベーション行列からあるフレームに対応する列ベクトルを抜き出し、両者の内積を計算することにより得られる。この内積は１フレームにおける基底の組み合わせ類似度を示している。すなわち、ステップＳ３４は、第１行列および第２行列における第１成分の組み合わせの類似度を第２成分毎に計算するものである。
【００５２】
再び図１４を参照する。ステップＳ３５において、類似度計算手段１３は、各フレームの組み合わせ類似度を積算することにより、入力音と参照音との音色類似度を計算する。すなわち、ステップＳ３５は、第１成分の組み合わせの類似度を第２成分について積算し、入力音信号および参照音信号の音色に関する第１類似度を得るものである。
【００５３】
再び図１４を参照する。ステップＳ３６において、類似度計算手段１３は、リズム類似度を計算する。この例では、特定の基底ベクトルに対応するアクティベーションベクトルの類似度がリズム類似度として用いられる。特定の基底ベクトルは、リズムに関連している楽器に対応する基底ベクトルである。すなわち、ステップＳ３６は、第１行列および第２行列のうち特定の第１成分における時間変化の類似度を計算し、入力音信号および参照音信号のリズムに関する第２類似度を得るものである。また、ステップＳ３６は、入力音信号に含まれる複数の区間の少なくとも一部に対して、参照音信号とのリズム類似度の計算をするステップの一例である。図１５の例では、バスドラムに対応するアクティベーションベクトルの類似度が計算される。ステップＳ３３〜Ｓ３６の処理は、参照音を順次更新しつつ、最終的に全ての伴奏データについて音色類似度およびリズム類似度が計算されるまで繰り返し行われる。
【００５４】
この例によれば、リズム類似度だけでなく音色類似度も計算される。したがって、リズム類似度だけを用いる場合と比較して、より高精度に楽曲を検索することができる。
【００５５】
２−４．ビートスペクトルによる類似度計算
図１６は、ステップＳ４におけるビートスペクトルによる類似度計算の詳細を例示するフローチャートである。ビートスペクトルとは、スペクトル上の繰り返しパターンを捉えた特徴量であり、何らかのスペクトログラム的な特徴量の時間領域の自己相関により計算される。この例では、スペクトル差分の自己相関により計算される。
【００５６】
ステップＳ４１において、類似度計算手段１５は、入力音信号のＢＰＭを取得する。この例で、類似度計算手段１５は、入力音信号を解析することによりＢＰＭを計算する。ＢＰＭの計算には公知の手法が用いられる。ステップＳ４２において、類似度計算手段１５は、入力音信号の振幅スペクトログラムを計算する。ステップＳ４３において、類似度計算手段１５は、振幅スペクトログラムから特徴量、この例ではスペクトル差分を得る。スペクトル差分とは、振幅スペクトログラムから時間軸上において隣り合うフレーム間の振幅の差をとったものをいう。すなわちスペクトル差分は、横軸が時間、縦軸が前フレームとの振幅差のデータである。ステップＳ４４において、類似度計算手段１５は、入力音信号を単位時間あたりのビート数で正規化する。具体的には、類似度計算手段１５は、スペクトル差分の時間軸をＢＰＭで正規化する。より具体的には、類似度計算手段１５は、スペクトル差分の時間軸をＢＰＭのｎ倍で除算することにより、時間軸を１／ｎ拍単位に正規化することができる。
【００５７】
ステップＳ４５において、類似度計算手段１５は、正規化された入力音信号のビートスペクトルを計算する。具体的には、類似度計算手段１５は、正規化されたスペクトル差分の自己相関から、ビートスペクトルを計算する。ステップＳ４６において、類似度計算手段１５は、参照音信号の正規化されたビートスペクトルを取得する。この例では、複数の伴奏データの各々に対してあらかじめビートスペクトルが計算されている。計算されたビートスペクトルは、伴奏データに関する情報としてデータベース１４に記録されている。類似度計算手段１３は、データベースに記録されている複数の伴奏データの中から、参照音とする伴奏音を順次、選択してその伴奏音に対応するビートスペクトルをデータベース１４から取得する。ステップＳ４７において、類似度計算手段１５は、正規化された入力音信号のビートスペクトルと、参照音信号から計算された正規化されたビートスペクトルとを比較し、リズム類似度を計算する。具体的には、類似度計算手段１５は、入力音および伴奏音のビートスペクトルの類似度を計算する。ステップＳ４７は、入力音信号に含まれる複数の区間の少なくとも一部に対して、参照音信号とのリズム類似度の計算をするステップの別の例である。
【００５８】
図１７は、ビートスペクトルを例示する図である。図１７（Ａ）は入力音のビートスペクトルを、図１７（Ｂ）は参照音のビートスペクトルを、それぞれ示している。図において、横軸は正規化されたビート周波数を、縦軸はスペクトル強度を、それぞれ示している。類似度計算手段１５は、これらのスペクトルをパターンマッチングすることにより両者の類似度を計算する。具体的には、ビートスペクトルは、ピークが現れる周波数およびそのピーク強度で特徴付けられる。類似度計算手段１５は、例えば、ピーク強度がしきい値以上のピークに関し、そのピークの周波数およびピーク強度を特徴量として抽出することにより、ビートスペクトルを数値化する。類似度計算手段１５は、これら特徴量を用いて両者の類似度を計算する。この類似度はリズム類似度（第４類似度の一例）である。すなわち、ステップＳ４７は、入力音信号のビートスペクトルおよび参照音信号のビートスペクトルの類似度を計算し、リズムに関する第４類似度を得るものである。
【００５９】
ＮＭＦを用いた類似度計算においては、アクティベーション行列からリズム類似度を計算している。しかし、一般にＮＭＦでは時間分解能が足りず、いわゆる、イーブンやシャッフルといった細かいリズム構造の違いを判断することができない。ＮＭＦにおいて時間をより細かく分解して計算することも可能であるが、計算量が著しく増えてしまうという問題がある。また、図１５の例では各楽器の基底がきれいに分離されている例を示したが、ＮＭＦの一般的な問題として、楽器音の分解が必ずしもうまくいくとは限らない。したがって、楽器音をうまく分離できない場合には、ＮＭＦではリズム構造を正確に捉えることができないという問題がある。
【００６０】
これに対し、この例ではビートスペクトルを用いてリズム類似度を計算している。そのため、細かいリズム構造をより正確に捉えることができる。また、ビートスペクトルにおいては一般にＢＰＭの差が特徴量に影響を与えてしまうため、単にビートスペクトル同士を比較してもリズム構造をリズム類似度として評価することは難しい。しかしこの例では、ビートスペクトルを計算する前にスペクトル差分をＢＰＭで正規化しており、入力音および参照音におけるＢＰＭの差が吸収されている。
【００６１】
２−５．類似度の統合、楽曲の選択
ステップＳ５における類似度の統合は、詳細には以下のように行われる。この例では、ＮＭＦにより２つの類似度（音色類似度およびリズム類似度）が、ビートスペクトルにより１つの類似度（リズム類似度）が得られている。これらの類似度は、共通のスケールに正規化されている（例えば、類似度最低がゼロ、類似度最高が１）。
【００６２】
統合手段１６は、ＮＭＦによる類似度とビートスペクトルによる類似度とが所定の重み、この例では１：１となるように調整された重み付け演算により、複数の類似度を統合する。具体的には、統合手段１６は、次式（３）により統合された類似度Ｄｉ（第３類似度の一例）を計算する。
Ｄｉ＝２・ＤｔＮ＋ＤｒＮ＋Ｄｒｂ      …（３）
ここで、ＤｔＮおよびＤｒＮはＮＭＦにより得られた音色類似度およびリズム類似度を、Ｄｒｂはビートスペクトルにより得られたリズム類似度を、それぞれ示している。この例によれば、ＮＭＦによる類似度とビートスペクトルによる類似度とが同じ重みで評価される。統合された類似度は、複数の伴奏データの各々について計算される。
【００６３】
選択手段１７は、複数の伴奏データのうち、入力音との類似度が最も高い伴奏データを選択する。この例においては選択手段１７が情報処理装置２０にあり、出力手段１８が電子楽器１０にあるので、情報処理装置２０は、選択手段１７により選択された伴奏データの識別子を電子楽器１０に通知する。電子楽器１０において、出力手段１８は、通知された識別子に対応する伴奏データを読み出し、伴奏音すなわち楽曲を出力する。
【００６４】
３．変形例
本発明は上述の実施形態に限定されるものではなく種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例のうち２つ以上のものが組み合わせて用いられてもよい。
【００６５】
楽曲検索システム１における機能構成とハードウェア構成との対応関係は、実施形態で説明した例に限定されない。例えば、楽曲検索システム１は、情報処理装置２０に全ての機能を集約したものであってもよい。この場合、検索対象となる楽曲は、電子楽器における伴奏音に限定されない。例えば、音楽プレーヤーにおいて再生される一般的な楽曲コンテンツの検索に楽曲検索システム１が適用されてもよい。あるいは、カラオケ装置における楽曲の検索に楽曲検索システム１が適用されてもよい。また、情報処理装置２０の機能の一部を、ネットワーク上のサーバ装置に実装してもよい。例えば、楽曲検索システム１の機能のうち、特定手段１２、類似度計算手段１３、データベース１４、類似度計算手段１５、統合手段１６、および選択手段１７をサーバ装置に実装してもよい。この場合、情報処理装置２０は、入力音信号を取得すると、データ化された入力音信号を含む検索要求をこのサーバ装置に送信する。サーバ装置は、受信した検索要求に含まれる入力音信号に類似する楽曲を検索し、その結果を情報処理装置２０に回答する。
【００６６】
特定手段１２が入力音信号から対象区間を特定する方法は、実施形態で説明した例に限定されない。特定手段１２は、楽曲構造解析により得られた複数の区間の中から、例えばランダムに、またはユーザーの指示応じて、選択された区間を対象区間として特定してもよい。また、特定手段１２は、対象区間の選択を、対象区間の累積時間長がしきい値を超えるまで行うものに限定されない。特定手段１２は、例えば、対象区間として選択された区間の数がしきい値を超えるまで対象区間の選択を行ってもよい。あるいは、特定手段１２は、優先度がしきい値よりも高い区間がなくなるまで対象区間の選択を行ってもよい。
【００６７】
特定手段１２により特定された対象区間に対して行われる信号処理は、類似度計算手段１３および類似度計算手段１５によるものに限定されない。特定手段１２により特定された対象区間に対して、類似度の計算以外の処理が行われてもよい。
【００６８】
類似度計算手段１３は、リズム類似度および音色類似度の双方を計算するものに限定されない。類似度計算手段１３は、リズム類似度および音色類似度のいずれか一方のみを計算するものであってもよい。また、類似度計算手段１３において、参照行列取得手段１３２は、参照音信号に対応する基底行列およびアクティベーション行列をデータベース１４から取得するのではなく、参照音信号自体をデータベース１４から取得し、ＮＭＦにより基底行列およびアクティベーション行列を計算してもよい。
【００６９】
類似度計算手段１３および類似度計算手段１５のいずれか一方は省略されてもよい。この場合、統合手段１６は不要であり、選択手段１７は、類似度計算手段１３および類似度計算手段１５のいずれか一方による類似度のみに基づいて楽曲を選択する。
【００７０】
取得手段１１、特定手段１２、類似度計算手段１３、類似度計算手段１５、統合手段１６、および選択手段１７は、ソフトウェアによってコンピューター装置に実装されるものに限定されない。これらのうち少なくとも一部は、例えば専用の集積回路によりハードウェアとして実装されてもよい。
【００７１】
情報処理装置２０のＣＰＵ２０１等により実行されるプログラムは、光ディスク、磁気ディスク、半導体メモリーなどの記憶媒体により提供されてもよいし、インターネット等の通信回線を介してダウンロードされてもよい。また、このプログラムは、図８のすべてのステップを備える必要はない。例えば、このプログラムは、ステップＳ１、ステップＳ２およびステップＳ３のみを備えるようにしてもよい。また、このプログラムは、ステップＳ１、ステップＳ２およびステップＳ４のみを備えるようにしてもよい。さらに、このプログラムは、ステップＳ１およびステップＳ４のみを備えるようにしてもよい。
【符号の説明】
【００７２】
１…楽曲検索システム、１０…電子楽器、１１…取得手段、１２…特定手段、１３…類似度計算手段、１４…データベース、１５…類似度計算手段、１６…統合手段、１７…選択手段、１８…出力手段、２０…情報処理装置、１０１…演奏操作子、１０２…音源、１０３…発音制御部、１０４…出力部、１０５…ストレージ、１０６…ＣＰＵ、１０７…通信ＩＦ、１２１…構造解析手段、１２２…分割手段、１２３…選択手段、１２４…信号生成手段、１３１…観測行列計算手段、１３２…参照行列取得手段、１３３…類似度計算手段、１３４…類似度計算手段、１３５…類似度計算手段、１５１…ＢＰＭ取得手段、１５２…正規化手段、１５３…ＢＳ計算手段、１５４…参照ＢＳ取得手段、１５５…類似度計算手段、２０１…ＣＰＵ、２０２…ストレージ、２０３…通信ＩＦ、２０４…入力部、１０５…出力部
【図１】
0006743425.tif 000004
【図２】
0006743425.tif 000005
【図３】
0006743425.tif 000006
【図４】
0006743425.tif 000007
【図５】
0006743425.tif 000008
【図６】
0006743425.tif 000009
【図７】
0006743425.tif 000010
【図８】
0006743425.tif 000011
【図９】
0006743425.tif 000012
【図１０】
0006743425.tif 000013
【図１１】
0006743425.tif 000014
【図１２】
0006743425.tif 000015
【図１３】
0006743425.tif 000016
【図１４】
0006743425.tif 000017
【図１５】
0006743425.tif 000018
【図１６】
0006743425.tif 000019
【図１７】
0006743425.tif 000020