JP2017161573A - 音信号処理方法および音信号処理装置 - Google Patents
音信号処理方法および音信号処理装置 Download PDFInfo
- Publication number
- JP2017161573A JP2017161573A JP2016043218A JP2016043218A JP2017161573A JP 2017161573 A JP2017161573 A JP 2017161573A JP 2016043218 A JP2016043218 A JP 2016043218A JP 2016043218 A JP2016043218 A JP 2016043218A JP 2017161573 A JP2017161573 A JP 2017161573A
- Authority
- JP
- Japan
- Prior art keywords
- sound signal
- similarity
- unit
- music
- sections
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Auxiliary Devices For Music (AREA)
Abstract
【課題】より少ない計算で楽曲の音信号を解析する。【解決手段】一実施形態に係る音信号処理方法は、処理対象となる楽曲の音信号を取得するステップと、音信号を用いて楽曲の音楽的な構造の解析をするステップと、解析の結果に従って音信号を複数の区間に分割するステップと、複数の区間の少なくとも一部に対して、当該区間毎に参照データとのリズムパターンの類似度の計算をするステップとを有する。【選択図】図9
Description
本発明は、楽曲の音信号を解析する技術に関する。
楽曲の音信号を解析する技術が知られている。例えば特許文献1には、非負値行列因子分解(Nonnegative Matrix Factorization、NMF)を用いて、楽曲のジャンルやスタイルを解析する技術が記載されている。
特許文献1においては、入力された音信号の全体を対象として、楽曲のジャンルやスタイルを解析する処理が行われていた。しかし、特許文献1の技術においては、音信号の全体を解析の対象としているため、計算にその分の時間を要するという問題があった。
これに対し本発明は、より少ない計算で楽曲の音信号を解析する技術を提供する。
本発明は、処理対象となる楽曲の入力音信号を取得するステップと、前記入力音信号を用いて前記楽曲の音楽的な構造の解析をするステップと、前記解析の結果に従って前記入力音信号を複数の区間に分割するステップと、前記複数の区間の少なくとも一部に対して、当該区間毎に参照音信号とのリズム類似度の計算をするステップとを有する音信号処理方法を提供する。
前記解析は、音楽的な特徴に基づいて前記複数の区間をグルーピングする処理を含み、前記複数の区間から、前記解析において同じグループに分類された区間が多い順に前記リズム類似度の計算の対象となる区間の選択をするステップを有してもよい。
前記複数の区間から、前記複数の区間のうち時間長の長い順に前記リズム類似度の計算の対象となる区間の選択をするステップを有してもよい。
前記選択は、前記複数の区間の中から前記計算の対象となる区間を、当該選択の対象として選択された区間の累積時間長がしきい値を越えるまで行われてもよい。
また、本発明は、処理対象となる楽曲の入力音信号を取得する取得手段と、前記入力音信号を用いて前記楽曲の構造解析をする構造解析手段と、前記構造解析の結果に従って前記入力音信号を複数の区間に分割する分割手段と、前記複数の区間の少なくとも一部に対して、参照音信号とのリズム類似度を計算するリズム類似度計算手段とを有する音信号処理装置を提供する。
本発明によれば、より少ない計算で楽曲の音信号を解析することができる。
1.構成
図1は、一実施形態に係る楽曲検索システム1の機能構成を例示する図である。楽曲検索システム1は、複数の楽曲データをあらかじめ記憶している。処理対象となる楽曲(検索キーとなる楽曲)の音の入力が受け付けられると(以下、この音を「入力音」といい、入力音を示す信号を「入力音信号」という)、楽曲検索システム1は、記憶している楽曲の中から、入力音と類似している楽曲を検索する。
図1は、一実施形態に係る楽曲検索システム1の機能構成を例示する図である。楽曲検索システム1は、複数の楽曲データをあらかじめ記憶している。処理対象となる楽曲(検索キーとなる楽曲)の音の入力が受け付けられると(以下、この音を「入力音」といい、入力音を示す信号を「入力音信号」という)、楽曲検索システム1は、記憶している楽曲の中から、入力音と類似している楽曲を検索する。
この例で、楽曲検索システム1は、電子楽器10および情報処理装置20を有する。電子楽器10は、検索対象となる楽曲データを記憶した楽曲記憶装置の一例である。情報処理装置20は、ユーザーインターフェースを提供するユーザー端末の一例である。電子楽器に記憶されている楽曲データは、伴奏用の楽曲のデータ(以下このデータを「伴奏データ」といい、伴奏用の楽曲の音を「伴奏音」という)である。ユーザーは、例えば、これから自分が演奏しようとする楽曲の情報を情報処理装置20に入力する。楽曲の情報は、例えば、非圧縮または圧縮形式(wavやmp3等)の音データに基づく楽曲の音信号であるが、これに限定されるものではない。また、楽曲の情報は、後述する情報処理装置20のストレージ203に予め記憶されていてもよいし、情報処理装置20の外から入力されてもよい。情報処理装置20は、電子楽器に記憶されている伴奏データの中から、入力された楽曲に類似しているものを検索する。入力された楽曲に類似している伴奏音を発見すると、情報処理装置20は、その伴奏音の再生を電子楽器10に指示する。電子楽器10は、指示された伴奏音を再生する。ユーザーは、再生される伴奏に合わせて電子楽器10を演奏する。
図2は、楽曲検索システム1の機能構成を例示する図である。楽曲検索システム1は、楽曲の音信号(入力音信号)が入力されると、その楽曲と類似した楽曲を出力する。楽曲検索システム1は、取得手段11、特定手段12、類似度計算手段13、データベース14、類似度計算手段15、統合手段16、選択手段17、および出力手段18を有する。
取得手段11は、入力音信号を取得する。特定手段12は、入力音信号のうち、以降の処理の対象となる対象区間を特定する。データベース14は、複数の伴奏データに関する情報を記憶している。類似度計算手段13は、入力音信号の対象区間において、非負値行列因子分解(Nonnegative Matrix Factorization、NMF)を用いて入力音と伴奏音の類似度を計算する。類似度計算手段15は、入力音信号の対象区間において、ビートスペクトルを用いて入力音と伴奏音の類似度を計算する。統合手段16は、類似度計算手段13により計算された類似度および類似度計算手段15により計算された類似度を統合する。選択手段17は、統合された類似度に基づいて、入力音と類似している楽曲をデータベース14の中から選択する。出力手段18は、選択された楽曲を出力する。
図3は、特定手段12の詳細な機能構成を例示する図である。特定手段12は、入力音信号に対して、対象区間以外の部分(以下「非対象区間」という)を除いた音信号を出力する。特定手段12は、構造解析手段121、分割手段122、選択手段123、および信号生成手段124を有する。構造解析手段121は、入力音信号により示される楽曲の音楽的な構造の解析(以下、「楽曲構造解析」という)を行う。分割手段122は、楽曲構造解析の結果に従って、入力音信号を時間領域において複数の区間に分割する。選択手段123は、複数の区間の中から、対象区間となる区間を選択する。信号生成手段124は、入力音信号から非対象区間を除いた音信号、すなわち対象区間のみの音信号を生成する。
図4は、類似度計算手段13の詳細な機能構成を例示する図である。類似度計算手段13は、入力音信号に対して、音色に関する類似度(以下「音色類似度」という)およびリズムに関する類似度(以下「リズム類似度」という)を出力する。類似度計算手段13は、観測行列計算手段131、参照行列取得手段132、組み合わせ類似度計算手段133、音色類似度計算手段134、およびリズム類似度計算手段135を有する。観測行列計算手段131は、所定のアルゴリズム(この例ではNMF。NMFの詳細は後述)により、入力音信号の振幅スペクトログラムに対応する行列(以下、「観測行列」という)を、基底行列およびアクティベーション行列(係数行列)の積に分解する。以下、入力音信号から得られた基底行列およびアクティベーション行列を、それぞれ「観測基底行列」および「観測アクティベーション行列」という。観測基底行列は、入力音信号の振幅スペクトログラムに対応し、周波数に関連する第1成分および時間に関連する第2成分を含む第1行列の一例である。参照行列取得手段132は、参照音信号からNMFにより得られた基底行列およびアクティベーション行列を取得する。以下、参照音信号から得られた基底行列およびアクティベーション行列を、それぞれ「参照基底行列」および「参照アクティベーション行列」という。参照音信号とは、参照用の楽曲を示す音信号をいう。参照用の楽曲はデータベース14に記録されている伴奏データの中から順次選択された一の伴奏データにより示される楽曲である。参照基底行列は、参照音信号の振幅スペクトログラムに対応し、第1成分および第2成分を含み、前述の所定のアルゴリズムにより計算された第2行列の一例である。組み合わせ類似度計算手段133は、観測基底行列および参照基底行列に含まれる基底の組み合わせの類似度を単位時間毎に計算する。音色類似度計算手段134は、組み合わせ類似度計算手段133により計算された類似度を時間領域で積算し、入力音および参照音の音色類似度(第1類似度の一例)を計算する。リズム類似度計算手段135は観測アクティベーション行列および参照アクティベーション行列の類似度を計算する。この類似度は、入力音および参照音のリズム類似度(第2類似度の一例)を示している。
図5は、類似度計算手段15の詳細な機能構成を例示する図である。類似度計算手段15は、入力音信号に対して、類似度計算手段13とは異なるアルゴリズムにより計算されたリズム類似度を出力する。類似度計算手段15は、BPM取得手段151、正規化手段152、BS計算手段153、参照BS取得手段154、および類似度計算手段155を有する。BPM取得手段151は、入力音信号のBPM(Beat Per Minute)、すなわち単位時間あたりのビート数を取得する。正規化手段152は、入力音信号をBPMで正規化する。ここで、「入力音信号をBPMで正規化する」とは、入力音信号を直接、BPMで正規化するものだけでなく、入力音信号に何らかの信号処理を施して得られた信号をBPMで正規化するものも含む。BS計算手段153(第1計算手段の一例)は、正規化された入力音信号のビートスペクトルを計算する。参照BS取得手段154は、参照音信号から得られた、正規化されたビートスペクトルを取得する。類似度計算手段155(第2計算手段の一例)は、入力音信号の正規化されたビートスペクトルと参照音信号の正規化されたビートスペクトルとを比較し、入力音および参照音のリズム類似度を計算する。
図6は、電子楽器10のハードウェア構成を例示する図である。電子楽器10は、演奏操作子101、音源102、発音制御部103、出力部104、ストレージ105、CPU106、および通信IF107を有する。演奏操作子101は、ユーザー(演奏者)が演奏操作を行うための操作子、例えば鍵盤楽器であれば鍵盤、弦楽器であれば弦、または管楽器であればキーである。音源102は、各演奏操作子に対応する音データを記憶している。例えば鍵盤楽器において、ある鍵に対応する音データは、その鍵を押鍵したときに発生する音の立ち上がりから消え際までの音波形を示すデータである。発音制御部103は、演奏操作子101の操作に応じて音源102から音データを読み出す。出力部104は、読み出されたデータに応じた音信号(以下「演奏音信号」という)を出力する。ストレージ105は、データを記憶する不揮発性の記憶装置である。ストレージ105に記憶されているデータには、複数の伴奏データを記録したデータベースが含まれる。CPU106は、電子楽器10の各部を制御する制御装置である。CPU106は、ストレージ105から読み出した伴奏データを出力部104に供給する。出力部104は、演奏音信号に加えて、伴奏データに応じた音信号(以下「伴奏音信号」という)を出力する出力装置であり、例えばスピーカーを含む。通信IF107は、他の装置、この例では特に情報処理装置20と通信するためのインターフェースである。通信IF107は、情報処理装置20と、例えば所定の規格に従った無線通信により通信する。
図7は、情報処理装置20のハードウェア構成を例示する図である。情報処理装置20は、ユーザー端末として機能するコンピューター装置、例えばスマートフォンである。情報処理装置20は、CPU201、メモリー202、ストレージ203、入力部204、出力部205、通信IF206を有する。CPU201は、情報処理装置20の他の構成要素を制御する制御装置である。メモリー202は、CPU201がプログラムを実行する際のワークスペースとして機能する揮発性の記憶装置である。ストレージ203は、各種のデータおよびプログラムを記憶した不揮発性の記憶装置である。入力部204は、ユーザーから命令または情報の入力を受け付ける入力装置であり、例えば、タッチセンサー、ボタン、およびマイクロフォンの少なくとも1つを含む。出力部205は、外部に情報を出力する出力装置であり、例えば、ディスプレイおよびスピーカーの少なくとも1つを含む。通信IF206は、他の装置、例えば電子楽器10またはネットワーク上のサーバ装置(図示略)と通信するためのインターフェースである。
この例では、図2に示した楽曲検索システム1の機能のうち、取得手段11、特定手段12、類似度計算手段13、データベース14、類似度計算手段15、統合手段16、および選択手段17は、情報処理装置20に実装されている。出力手段18は、電子楽器10に実装されている。
情報処理装置20においては、コンピューター装置を楽曲検索システム1におけるユーザー端末として機能させるためのプログラムがストレージ203に記憶されている。CPU201がこのプログラムを実行することにより、取得手段11、特定手段12、類似度計算手段13、データベース14、類似度計算手段15、統合手段16、および選択手段17としての機能が情報処理装置20に実装される。このプログラムを実行しているCPU201は、取得手段11、特定手段12、類似度計算手段13、類似度計算手段15、統合手段16、および選択手段17の一例である。ストレージ203は、データベース14の一例である。また、電子楽器10において、出力部104は出力手段18の一例である。
2.動作
2−1.概要
図8は、楽曲検索システム1の動作の概要を示すフローチャートである。図8のフローは、例えば、ユーザーが楽曲の検索開始の指示を入力したことを契機として開始される。ステップS1において、取得手段11は、入力音信号を取得する。ステップS2において、特定手段12は、対象区間特定処理を行う。ステップS3において、類似度計算手段13は、NMFによる類似度計算を行う。ステップS4において、類似度計算手段15は、ビートスペクトルによる類似度計算を行う。ステップS5において、統合手段16は、NMFによる類似度およびビートスペクトルによる類似度を統合する。ステップS6において、選択手段17は、統合された類似度に基づいて楽曲を選択する。ステップS7において、出力手段18は、選択された楽曲を出力する。すなわち、出力手段18は、入力音に似た伴奏音を出力する。以下、各処理の詳細を説明する。
2−1.概要
図8は、楽曲検索システム1の動作の概要を示すフローチャートである。図8のフローは、例えば、ユーザーが楽曲の検索開始の指示を入力したことを契機として開始される。ステップS1において、取得手段11は、入力音信号を取得する。ステップS2において、特定手段12は、対象区間特定処理を行う。ステップS3において、類似度計算手段13は、NMFによる類似度計算を行う。ステップS4において、類似度計算手段15は、ビートスペクトルによる類似度計算を行う。ステップS5において、統合手段16は、NMFによる類似度およびビートスペクトルによる類似度を統合する。ステップS6において、選択手段17は、統合された類似度に基づいて楽曲を選択する。ステップS7において、出力手段18は、選択された楽曲を出力する。すなわち、出力手段18は、入力音に似た伴奏音を出力する。以下、各処理の詳細を説明する。
2−2.対象区間特定処理
ステップS3およびS4における類似度の計算は、入力音信号の全体を対象に行われてもよい。しかし、入力音信号の全体を対象とすると、以下の問題点がある。まず第1に、入力音信号の全体を対象とすると、計算にその分の時間を要する点である。第2に、入力音信号のうち、いわゆるイントロやアウトロ(エンディング)にはリズムが無い箇所が含まれている場合があり、このような部分まで含めて類似度を計算すると、類似度の信頼性が低下してしまうという点である。本実施形態においては、この点に対処するため、入力音信号のうち類似度計算の対象となる部分を一部に限っている。
ステップS3およびS4における類似度の計算は、入力音信号の全体を対象に行われてもよい。しかし、入力音信号の全体を対象とすると、以下の問題点がある。まず第1に、入力音信号の全体を対象とすると、計算にその分の時間を要する点である。第2に、入力音信号のうち、いわゆるイントロやアウトロ(エンディング)にはリズムが無い箇所が含まれている場合があり、このような部分まで含めて類似度を計算すると、類似度の信頼性が低下してしまうという点である。本実施形態においては、この点に対処するため、入力音信号のうち類似度計算の対象となる部分を一部に限っている。
図9は、ステップS2における対象区間特定処理の詳細を示すフローチャートである。ステップS21において、特定手段12は、入力音信号に対し楽曲構造解析を行う。楽曲構造解析とは、音楽的な構造(いわゆる、イントロ、Aメロ、Bメロ、サビ、アウトロ(エンディング)といった区分け)を解析する処理をいう。
図10は、楽曲構造解析の詳細を例示するフローチャートである。ステップS211において、特定手段12は、入力音信号を複数の単位区間に区分する。単位区間は、例えば、楽曲の1小節に相当する区間である。単位区間の区分は例えば以下のように行われる。まず、特定手段12は、入力音信号において拍点を検出する。次に、特定手段12は、1小節に相当する複数個の拍点により構成される区間を単位区間として画定する。拍点の検出および1小節に相当する区間の画定には、例えば特開2015−114361号公報に記載された技術が用いられる。
ステップS212において、特定手段12は、入力音信号から音色の特徴量(以下「音色特徴量」という)を計算する。音色特徴量としては、例えば、所定数(例えば12個)のMFCC(Mel-Frequency Cepstrum Coefficient、メル周波数ケプストラム係数)が用いられる。MFCCは、ステップS211において画定された単位区間毎に計算される。
ステップS213において、特定手段12は、入力音信号から和音の特徴量(以下「和音特徴量」という)を計算する。和音特徴量は、拍点に基づいて単位区間をさらに細分化したフレーム(例えば、八分音符または十六分音符に相当する期間)毎に計算される。和音特徴量としては、例えばいわゆるクロマベクトルが用いられる。クロマベクトルは、スペクトラム分析で得られた周波数域のエネルギーを例えば半音毎に区切り、これを1オクターブ内で足し合わせたものである。半音毎に区切ると全部で12音となるので、クロマベクトルは12次元のベクトルである。フレーム毎に計算されるクロマベクトルは和音の時間的な変化、すなわちコード進行を表している。
ステップS214において、特定手段12は、確率モデルを用いた事後分布推定により、入力音の楽曲構造を推定する。すなわち、特定手段12は、ある楽曲構造のもとで特徴量の時系列が観測される確率を記述した確率モデルについて、音色特徴量および和音特徴量の時系列が観測されたときの事後確率の確率分布(事後分布)を推定する。
確率モデルとしては、例えば、楽曲構造モデル、音色観測モデル、および和音観測モデルが用いられる。楽曲構造モデルは、楽曲構造を確率的に記述したモデルである。音色観測モデルは、音色特徴量の生成過程を確率的に記述したモデルである。和音観測モデルは和音特徴量の生成過程を確率的に記述したモデルである。これらの確率モデルにおいて、各単位区間は、音楽的な構造が類似または共通するもの同士で同じ構造区間にグルーピングされる。各グループは区間符号(例えば、A、B、C、…)により区別される。
楽曲構造モデルは、例えば、相互に連鎖する複数の状態を状態空間に配列した状態遷移モデル、より詳細には隠れマルコフモデルである。音色観測モデルは、例えば、確率分布に正規分布を採用した無限混合ガウス分布に従うものであり、区間符号には依存するが構造区間内の滞在時間には依存しない確率モデルである。和音観測モデルは、例えば、確率分布に正規分布を採用した無限混合ガウス分布に従うものであり、区間符号および構造区間内の滞在時間の双方に依存する確率モデルである。各確率モデルにおける事後分布は、例えば変分ベイズ法等の反復推定アルゴリズムにより推定される。特定手段12は、この事後分布を最大化させる楽曲構造を推定する。
ステップS215において、特定手段12は、ステップS214における推定結果に基づいて楽曲構造を特定する。
図11は、入力音信号に対して特定された楽曲構造を例示する図である。この例では、入力音信号が9つの単位区間(τ1〜τ9)に区分されている。これらの単位区間に対し、先頭から順に、A、B、C、C、C、D、B、E、およびFという区間符号が割り当てられている。
再び図9を参照する。ステップS22において、特定手段12は、入力音信号を分割する。具体的には、特定手段12は、楽曲構造解析の結果に従って入力音信号を単位区間毎に分割する。ステップS23において、特定手段12は、複数に分割された入力音信号の中から、以降の処理に用いられる区間(以下「対象区間」という)を選択する。
図12は、対象区間選択処理の詳細を例示するフローチャートである。ステップS231において、特定手段12は、各単位区間の優先度を計算する。この例では、同じ区間符号が割り当てられた単位区間が多いものには高い優先度が、少ないものには低い優先度が与えられる。例えば図11の例では、区間符号Cが割り当てられた区間が3つあるのでこれらには優先度3が、区間符号Bが割り当てられた区間が2つあるのでこれらには優先度2が、それ以外の区間には優先度1が、それぞれ割り当てられる。すなわち、ステップS23は、複数の単位区間から、楽曲構造解析において同じグループに分類された区間が多い順にリズム類似度の計算の対象となる区間の選択をするものである。
なお、優先度を与える基準は上記の例に限定されない。上記の例に代えて、または加えて、他の基準が用いられてもよい。一例としては、例えば、単位区間の時間長が長いものに高い優先度を与え、時間長が短いものに低い優先度を与える基準が用いられる。すなわち、この別の例におけるステップS23は、複数の単位区間のうち時間長の長い順にリズム類似度の計算の対象となる区間の選択をするものである。図11の例では全ての単位区間の時間長が等しいが、例えば曲の途中でテンポが変わる場合や、楽曲構造解析において連続する複数の単位区間が統合されるアルゴリズムが採用された場合に、時間長に基づいて優先度を与える基準が意味を持つ。また、別の例として、例えば、入力音信号における時間軸上の位置に応じて、例えば開始から所定時間まで、および終了の所定時間前から終了までの区間に低い優先度を与え、他の区間に高い優先度を与える基準が用いられてもよい。これらの基準は重み付け加算され、複合的に適用されてもよい。
ステップS232において、特定手段12は、未だ対象区間として選択されていない区間(以下「非選択区間」という)のうち、優先度が最も高い区間を対象区間に追加する。優先度が最も高い区間が複数ある場合、特定手段12は、その中から他の基準に従って選択された1つの区間、例えば番号が最も早い区間を対象区間に追加する。
ステップS233において、特定手段12は、対象区間の累積時間長がしきい値を超えたか判断する。しきい値としては、例えば、入力音信号の全時間長に対する所定の割合、一例としては50%が用いられる。対象区間の累積時間長がしきい値を超えていないと判断された場合(S233:NO)、特定手段12は、処理をステップS232に移行する。対象区間の累積時間長がしきい値を超えたと判断された場合(S233:YES)、特定手段12は、図12のフローを終了する。
図11の例では、最初に区間τ3が対象区間に追加され、以降、処理が繰り返し行われる度に、区間τ4、τ5、τ2、およびτ7の順で対象区間に追加される。この例では区間τ1〜τ9の時間長が等しいので、区間τ7が対象区間に追加された時点で対象区間は全部で5区間となり対象区間の累積時間長が入力音信号の全時間長の50%を超える。
再び図9を参照する。ステップS24において、特定手段12は、ステップS23の結果に基づいて対象区間を特定する、図11の例では、区間τ1、τ4、τ5、τ2、およびτ7が対象区間として特定される。特定手段12は、分割された入力音信号のうち対象区間だけを繋ぎ合わせた信号を生成する。以降の処理では、この信号が入力音信号として処理される。
この例によれば、入力音信号の音楽的な構造に基づいて選択された一部の部分、例えば繰り返し登場する区間を以降の処理の対象として限定することができる。このような区間は、いわゆるサビやAメロのように音楽的にインパクトの強い部分であることが多い。イントロやアウトロのようにリズムや音色が他の部分と異なっている可能性がある部分を処理の対象から除外することによって、検索の精度を保ちつつ、処理の負荷を低減することができる。
2−3.NMFによる類似度計算
次に、ステップS3におけるNMFによる類似度計算について説明する。類似度計算の詳細を説明する前に、まずNMFの概要について説明する。NMFとは、非負値の行列を2つの非負値の行列の積に分解する低ランク近似アルゴリズムである。非負値行列とは、その成分が全て非負値(すなわちゼロまたは正値)である行列をいう。一般にNMFは次式(1)で表される。
ここでYは与えられた行列すなわち観測行列(m行n列)を示す。Hを基底行列(m行k列)といい、Uをアクティベーション(または係数)行列(k行n列)という。すなわちNMFは、観測行列Yを、基底行列Hとアクティベーション行列Uとの積で近似する処理である。
次に、ステップS3におけるNMFによる類似度計算について説明する。類似度計算の詳細を説明する前に、まずNMFの概要について説明する。NMFとは、非負値の行列を2つの非負値の行列の積に分解する低ランク近似アルゴリズムである。非負値行列とは、その成分が全て非負値(すなわちゼロまたは正値)である行列をいう。一般にNMFは次式(1)で表される。
NMFを楽曲の類似度計算に適用するため、観測行列Yとして音信号の振幅スペクトログラムを表す行列を用いることを考える。振幅スペクトログラムとは、音信号の周波数スペクトルの時間変化を表すもので、時間、周波数、および振幅からなる3次元の情報である。振幅スペクトログラムは、例えば、音信号を時間領域で標本化し、これを短時間フーリエ変換することによって得られる複素スペクトログラムに対して絶対値を取ることにより得られる。ここで、横軸をn個に、縦軸をm個に分割し、分割された各領域における振幅を数値化すると、振幅スペクトログラムを行列として表すことができる。この行列は、行方向には時間的な情報を、列方向には周波数的な情報を、各成分の値は振幅に関する情報を含んでいる。振幅の値は非負値なので、この行列は非負値行列である。
図13は、振幅スペクトログラムに対するNMFの概要を示す図である。振幅スペクトログラムから得られた観測行列YにNMFを適用した例を示している。基底行列Hは、周波数に関連する成分(第1成分の一例)および時間に関連する成分(第2成分の一例)を含み、振幅スペクトログラムに含まれる代表的スペクトルパターンの集合を表すものである。アクティベーション行列Uは、その代表的スペクトルパターンが「どのタイミングで」「どのくらいの強さで」現れているかを表していると考えることができる。より具体的には、基底行列Hは、それぞれ異なる音源に対応する複数(図13の例では2つ)の基底ベクトルhを含んでいる。各基底ベクトルは、ある音源の代表的な周波数スペクトルを示している。例えば、基底ベクトルh(1)はフルートの代表的なスペクトルパターンを示し、基底ベクトルh(2)はクラリネットの代表的なスペクトルパターンを示している。また、アクティベーション行列Uは、各音源に対応する複数(図13の例では2つ)のアクティベーションベクトルuを含んでいる。例えば、アクティベーションベクトルu(1)はフルートのスペクトルパターンが現れるタイミングおよびその強さを表しており、アクティベーションベクトルu(2)はクラリネットのスペクトルパターンが現れるタイミングおよびその強さを表している(図13の例では、図面を簡単にするため、アクティベーションベクトルuの成分の値はオンまたはオフの2値である)。
NMFは、観測行列Yが既知のときに基底行列Hおよびアクティベーション行列Uを計算するものである。詳細には、NMFは、次式(2)のように、行列Yと行列積HUとの距離Dを最小化する問題として定義される。距離Dとしては、例えば、ユークリッド距離、一般化KL距離、板倉斎藤距離、またはβダイバージェンスが用いられる。式(2)の解を閉形式で得ることはできないが、効率的な反復解法がいくつか知られている(例えば、Lee D. D., & Sueng, H. S. (2001), Algorithms for non-negative matrix factorization. Advances in neural information processing systems, 13(1) V621-V624)。
なお、上式は、距離Dを最小にする行列HおよびUを計算することを意味する。以降の式についても同様である。
なお、入力音および伴奏音に含まれる楽器が事前にある程度判明している場合、すなわち入力音および伴奏音に含まれる楽器の候補が事前にある程度限定されている場合、半教師有りNMFが適用されてもよい。半教師有りNMFについては、例えば、Smaragdis P, Raj B, Shashanka MV. Supervised and Semi-supervised Separation of Sounds from Single-Channel Mixtures, In: ICA. 2007. p. 414-421に記載されている。
図14は、NMFによる類似度計算の詳細を例示するフローチャートである。ステップS31において、類似度計算手段13は、入力音信号の振幅スペクトログラムを計算する。ステップS32において、類似度計算手段13は、入力音信号の振幅スペクトログラムに対してNMFを適用する。具体的には、類似度計算手段13は、まず、入力音信号の振幅スペクトログラムを行列化して観測行列Yoを得る。次に、類似度計算手段13は、観測行列Yoに対しNMFを適用し、観測基底行列Ho(第1行列の一例)および観測アクティベーション行列Uoを計算する。すなわち、ステップS32は、第1行列を所定のアルゴリズムにより計算するものである。
ステップS33において、類似度計算手段13は、参照音信号の参照基底行列Hr(第2行列の一例)および参照アクティベーション行列Urを取得する。この例では、複数の伴奏データの各々に対してあらかじめNMFが適用され、参照基底行列および参照アクティベーション行列が計算されている。計算された参照基底行列および参照アクティベーション行列は、伴奏データに関する情報としてデータベース14に記録されている。類似度計算手段13は、データベースに記録されている複数の伴奏データの中から、参照音とする伴奏音を順次、選択してその伴奏音に対応する参照基底行列および参照アクティベーション行列を、データベース14から取得する。
なお、データベース14に記録されている参照基底行列および参照アクティベーション行列は、必ずしも参照音の全体を用いて計算されたものでなくてもよい。入力音に対する対象区間特定処理と同様の処理で特定された一部の区間のみに対してNMFが適用され、参照基底行列および参照アクティベーション行列が計算されてもよい。
ステップS34において、類似度計算手段13は、各フレームにおける基底の組み合わせ類似度を計算する。基底の組み合わせとは、基底行列に含まれる複数の基底ベクトルのうち、ある期間にアクティベートされる基底ベクトルの組み合わせをいう。
図15は、基底の組み合わせを例示する図である。図15(A)は入力音に対応するNMFの結果を、図15(B)は参照音に対応するNMFの結果を、それぞれ模式的に示す図である。この例で、入力音および参照音に対応する基底行列はいずれも、ギター、ベース、ハイハット、スネア、およびバスドラムに対応する基底ベクトルを含んでいる。図においては、各基底ベクトルに対応するアクティベーションベクトルが模式的に図示されている。横軸は時間を、縦軸はアクティベーションの強度を、それぞれ示している。基底の組み合わせを見ると、例えばフレームF1において、入力音では、ギター、ベース、ハイハット、およびバスドラムがアクティベートされており、参照音では、ハイハットおよびバスドラムがアクティベートされている。
基底の組み合わせ類似度は、例えば、入力音および参照音のそれぞれについてアクティベーション行列からあるフレームに対応する列ベクトルを抜き出し、両者の内積を計算することにより得られる。この内積は1フレームにおける基底の組み合わせ類似度を示している。すなわち、ステップS34は、第1行列および第2行列における第1成分の組み合わせの類似度を第2成分毎に計算するものである。
再び図14を参照する。ステップS35において、類似度計算手段13は、各フレームの組み合わせ類似度を積算することにより、入力音と参照音との音色類似度を計算する。すなわち、ステップS35は、第1成分の組み合わせの類似度を第2成分について積算し、入力音信号および参照音信号の音色に関する第1類似度を得るものである。
再び図14を参照する。ステップS36において、類似度計算手段13は、リズム類似度を計算する。この例では、特定の基底ベクトルに対応するアクティベーションベクトルの類似度がリズム類似度として用いられる。特定の基底ベクトルは、リズムに関連している楽器に対応する基底ベクトルである。すなわち、ステップS36は、第1行列および第2行列のうち特定の第1成分における時間変化の類似度を計算し、入力音信号および参照音信号のリズムに関する第2類似度を得るものである。また、ステップS36は、入力音信号に含まれる複数の区間の少なくとも一部に対して、参照音信号とのリズム類似度の計算をするステップの一例である。図15の例では、バスドラムに対応するアクティベーションベクトルの類似度が計算される。ステップS33〜S36の処理は、参照音を順次更新しつつ、最終的に全ての伴奏データについて音色類似度およびリズム類似度が計算されるまで繰り返し行われる。
この例によれば、リズム類似度だけでなく音色類似度も計算される。したがって、リズム類似度だけを用いる場合と比較して、より高精度に楽曲を検索することができる。
2−4.ビートスペクトルによる類似度計算
図16は、ステップS4におけるビートスペクトルによる類似度計算の詳細を例示するフローチャートである。ビートスペクトルとは、スペクトル上の繰り返しパターンを捉えた特徴量であり、何らかのスペクトログラム的な特徴量の時間領域の自己相関により計算される。この例では、スペクトル差分の自己相関により計算される。
図16は、ステップS4におけるビートスペクトルによる類似度計算の詳細を例示するフローチャートである。ビートスペクトルとは、スペクトル上の繰り返しパターンを捉えた特徴量であり、何らかのスペクトログラム的な特徴量の時間領域の自己相関により計算される。この例では、スペクトル差分の自己相関により計算される。
ステップS41において、類似度計算手段15は、入力音信号のBPMを取得する。この例で、類似度計算手段15は、入力音信号を解析することによりBPMを計算する。BPMの計算には公知の手法が用いられる。ステップS42において、類似度計算手段15は、入力音信号の振幅スペクトログラムを計算する。ステップS43において、類似度計算手段15は、振幅スペクトログラムから特徴量、この例ではスペクトル差分を得る。スペクトル差分とは、振幅スペクトログラムから時間軸上において隣り合うフレーム間の振幅の差をとったものをいう。すなわちスペクトル差分は、横軸が時間、縦軸が前フレームとの振幅差のデータである。ステップS44において、類似度計算手段15は、入力音信号を単位時間あたりのビート数で正規化する。具体的には、類似度計算手段15は、スペクトル差分の時間軸をBPMで正規化する。より具体的には、類似度計算手段15は、スペクトル差分の時間軸をBPMのn倍で除算することにより、時間軸を1/n拍単位に正規化することができる。
ステップS45において、類似度計算手段15は、正規化された入力音信号のビートスペクトルを計算する。具体的には、類似度計算手段15は、正規化されたスペクトル差分の自己相関から、ビートスペクトルを計算する。ステップS46において、類似度計算手段15は、参照音信号の正規化されたビートスペクトルを取得する。この例では、複数の伴奏データの各々に対してあらかじめビートスペクトルが計算されている。計算されたビートスペクトルは、伴奏データに関する情報としてデータベース14に記録されている。類似度計算手段13は、データベースに記録されている複数の伴奏データの中から、参照音とする伴奏音を順次、選択してその伴奏音に対応するビートスペクトルをデータベース14から取得する。ステップS47において、類似度計算手段15は、正規化された入力音信号のビートスペクトルと、参照音信号から計算された正規化されたビートスペクトルとを比較し、リズム類似度を計算する。具体的には、類似度計算手段15は、入力音および伴奏音のビートスペクトルの類似度を計算する。ステップS47は、入力音信号に含まれる複数の区間の少なくとも一部に対して、参照音信号とのリズム類似度の計算をするステップの別の例である。
図17は、ビートスペクトルを例示する図である。図17(A)は入力音のビートスペクトルを、図17(B)は参照音のビートスペクトルを、それぞれ示している。図において、横軸は正規化されたビート周波数を、縦軸はスペクトル強度を、それぞれ示している。類似度計算手段15は、これらのスペクトルをパターンマッチングすることにより両者の類似度を計算する。具体的には、ビートスペクトルは、ピークが現れる周波数およびそのピーク強度で特徴付けられる。類似度計算手段15は、例えば、ピーク強度がしきい値以上のピークに関し、そのピークの周波数およびピーク強度を特徴量として抽出することにより、ビートスペクトルを数値化する。類似度計算手段15は、これら特徴量を用いて両者の類似度を計算する。この類似度はリズム類似度(第4類似度の一例)である。すなわち、ステップS47は、入力音信号のビートスペクトルおよび参照音信号のビートスペクトルの類似度を計算し、リズムに関する第4類似度を得るものである。
NMFを用いた類似度計算においては、アクティベーション行列からリズム類似度を計算している。しかし、一般にNMFでは時間分解能が足りず、いわゆる、イーブンやシャッフルといった細かいリズム構造の違いを判断することができない。NMFにおいて時間をより細かく分解して計算することも可能であるが、計算量が著しく増えてしまうという問題がある。また、図15の例では各楽器の基底がきれいに分離されている例を示したが、NMFの一般的な問題として、楽器音の分解が必ずしもうまくいくとは限らない。したがって、楽器音をうまく分離できない場合には、NMFではリズム構造を正確に捉えることができないという問題がある。
これに対し、この例ではビートスペクトルを用いてリズム類似度を計算している。そのため、細かいリズム構造をより正確に捉えることができる。また、ビートスペクトルにおいては一般にBPMの差が特徴量に影響を与えてしまうため、単にビートスペクトル同士を比較してもリズム構造をリズム類似度として評価することは難しい。しかしこの例では、ビートスペクトルを計算する前にスペクトル差分をBPMで正規化しており、入力音および参照音におけるBPMの差が吸収されている。
2−5.類似度の統合、楽曲の選択
ステップS5における類似度の統合は、詳細には以下のように行われる。この例では、NMFにより2つの類似度(音色類似度およびリズム類似度)が、ビートスペクトルにより1つの類似度(リズム類似度)が得られている。これらの類似度は、共通のスケールに正規化されている(例えば、類似度最低がゼロ、類似度最高が1)。
ステップS5における類似度の統合は、詳細には以下のように行われる。この例では、NMFにより2つの類似度(音色類似度およびリズム類似度)が、ビートスペクトルにより1つの類似度(リズム類似度)が得られている。これらの類似度は、共通のスケールに正規化されている(例えば、類似度最低がゼロ、類似度最高が1)。
統合手段16は、NMFによる類似度とビートスペクトルによる類似度とが所定の重み、この例では1:1となるように調整された重み付け演算により、複数の類似度を統合する。具体的には、統合手段16は、次式(3)により統合された類似度Di(第3類似度の一例)を計算する。
Di=2・DtN+DrN+Drb …(3)
ここで、DtNおよびDrNはNMFにより得られた音色類似度およびリズム類似度を、Drbはビートスペクトルにより得られたリズム類似度を、それぞれ示している。この例によれば、NMFによる類似度とビートスペクトルによる類似度とが同じ重みで評価される。統合された類似度は、複数の伴奏データの各々について計算される。
Di=2・DtN+DrN+Drb …(3)
ここで、DtNおよびDrNはNMFにより得られた音色類似度およびリズム類似度を、Drbはビートスペクトルにより得られたリズム類似度を、それぞれ示している。この例によれば、NMFによる類似度とビートスペクトルによる類似度とが同じ重みで評価される。統合された類似度は、複数の伴奏データの各々について計算される。
選択手段17は、複数の伴奏データのうち、入力音との類似度が最も高い伴奏データを選択する。この例においては選択手段17が情報処理装置20にあり、出力手段18が電子楽器10にあるので、情報処理装置20は、選択手段17により選択された伴奏データの識別子を電子楽器10に通知する。電子楽器10において、出力手段18は、通知された識別子に対応する伴奏データを読み出し、伴奏音すなわち楽曲を出力する。
3.変形例
本発明は上述の実施形態に限定されるものではなく種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例のうち2つ以上のものが組み合わせて用いられてもよい。
本発明は上述の実施形態に限定されるものではなく種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例のうち2つ以上のものが組み合わせて用いられてもよい。
楽曲検索システム1における機能構成とハードウェア構成との対応関係は、実施形態で説明した例に限定されない。例えば、楽曲検索システム1は、情報処理装置20に全ての機能を集約したものであってもよい。この場合、検索対象となる楽曲は、電子楽器における伴奏音に限定されない。例えば、音楽プレーヤーにおいて再生される一般的な楽曲コンテンツの検索に楽曲検索システム1が適用されてもよい。あるいは、カラオケ装置における楽曲の検索に楽曲検索システム1が適用されてもよい。また、情報処理装置20の機能の一部を、ネットワーク上のサーバ装置に実装してもよい。例えば、楽曲検索システム1の機能のうち、特定手段12、類似度計算手段13、データベース14、類似度計算手段15、統合手段16、および選択手段17をサーバ装置に実装してもよい。この場合、情報処理装置20は、入力音信号を取得すると、データ化された入力音信号を含む検索要求をこのサーバ装置に送信する。サーバ装置は、受信した検索要求に含まれる入力音信号に類似する楽曲を検索し、その結果を情報処理装置20に回答する。
特定手段12が入力音信号から対象区間を特定する方法は、実施形態で説明した例に限定されない。特定手段12は、楽曲構造解析により得られた複数の区間の中から、例えばランダムに、またはユーザーの指示応じて、選択された区間を対象区間として特定してもよい。また、特定手段12は、対象区間の選択を、対象区間の累積時間長がしきい値を超えるまで行うものに限定されない。特定手段12は、例えば、対象区間として選択された区間の数がしきい値を超えるまで対象区間の選択を行ってもよい。あるいは、特定手段12は、優先度がしきい値よりも高い区間がなくなるまで対象区間の選択を行ってもよい。
特定手段12により特定された対象区間に対して行われる信号処理は、類似度計算手段13および類似度計算手段15によるものに限定されない。特定手段12により特定された対象区間に対して、類似度の計算以外の処理が行われてもよい。
類似度計算手段13は、リズム類似度および音色類似度の双方を計算するものに限定されない。類似度計算手段13は、リズム類似度および音色類似度のいずれか一方のみを計算するものであってもよい。また、類似度計算手段13において、参照行列取得手段132は、参照音信号に対応する基底行列およびアクティベーション行列をデータベース14から取得するのではなく、参照音信号自体をデータベース14から取得し、NMFにより基底行列およびアクティベーション行列を計算してもよい。
類似度計算手段13および類似度計算手段15のいずれか一方は省略されてもよい。この場合、統合手段16は不要であり、選択手段17は、類似度計算手段13および類似度計算手段15のいずれか一方による類似度のみに基づいて楽曲を選択する。
取得手段11、特定手段12、類似度計算手段13、類似度計算手段15、統合手段16、および選択手段17は、ソフトウェアによってコンピューター装置に実装されるものに限定されない。これらのうち少なくとも一部は、例えば専用の集積回路によりハードウェアとして実装されてもよい。
情報処理装置20のCPU201等により実行されるプログラムは、光ディスク、磁気ディスク、半導体メモリーなどの記憶媒体により提供されてもよいし、インターネット等の通信回線を介してダウンロードされてもよい。また、このプログラムは、図8のすべてのステップを備える必要はない。例えば、このプログラムは、ステップS1、ステップS2およびステップS3のみを備えるようにしてもよい。また、このプログラムは、ステップS1、ステップS2およびステップS4のみを備えるようにしてもよい。さらに、このプログラムは、ステップS1およびステップS4のみを備えるようにしてもよい。
1…楽曲検索システム、10…電子楽器、11…取得手段、12…特定手段、13…類似度計算手段、14…データベース、15…類似度計算手段、16…統合手段、17…選択手段、18…出力手段、20…情報処理装置、101…演奏操作子、102…音源、103…発音制御部、104…出力部、105…ストレージ、106…CPU、107…通信IF、121…構造解析手段、122…分割手段、123…選択手段、124…信号生成手段、131…観測行列計算手段、132…参照行列取得手段、133…類似度計算手段、134…類似度計算手段、135…類似度計算手段、151…BPM取得手段、152…正規化手段、153…BS計算手段、154…参照BS取得手段、155…類似度計算手段、201…CPU、202…ストレージ、203…通信IF、204…入力部、105…出力部
Claims (5)
- 処理対象となる楽曲の入力音信号を取得するステップと、
前記入力音信号を用いて前記楽曲の音楽的な構造の解析をするステップと、
前記解析の結果に従って前記入力音信号を複数の区間に分割するステップと、
前記複数の区間の少なくとも一部に対して、当該区間毎に参照音信号とのリズム類似度の計算をするステップと
を有する音信号処理方法。 - 前記解析は、音楽的な特徴に基づいて前記複数の区間をグルーピングする処理を含み、
前記複数の区間から、前記解析において同じグループに分類された区間が多い順に前記リズム類似度の計算の対象となる区間の選択をするステップを有する
ことを特徴とする請求項1に記載の音信号処理方法。 - 前記複数の区間から、前記複数の区間のうち時間長の長い順に前記リズム類似度の計算の対象となる区間の選択をするステップを有する
ことを特徴とする請求項1または2に記載の音信号処理方法。 - 前記選択は、前記複数の区間の中から前記計算の対象となる区間を、当該選択の対象として選択された区間の累積時間長がしきい値を越えるまで行われる
ことを特徴とする請求項2または3に記載の音信号処理方法。 - 処理対象となる楽曲の入力音信号を取得する取得手段と、
前記入力音信号を用いて前記楽曲の構造解析をする構造解析手段と、
前記構造解析の結果に従って前記入力音信号を複数の区間に分割する分割手段と、
前記複数の区間の少なくとも一部に対して、参照音信号とのリズム類似度を計算するリズム類似度計算手段と
を有する音信号処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016043218A JP2017161573A (ja) | 2016-03-07 | 2016-03-07 | 音信号処理方法および音信号処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016043218A JP2017161573A (ja) | 2016-03-07 | 2016-03-07 | 音信号処理方法および音信号処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017161573A true JP2017161573A (ja) | 2017-09-14 |
Family
ID=59853209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016043218A Pending JP2017161573A (ja) | 2016-03-07 | 2016-03-07 | 音信号処理方法および音信号処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017161573A (ja) |
-
2016
- 2016-03-07 JP JP2016043218A patent/JP2017161573A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6743425B2 (ja) | 音信号処理方法および音信号処理装置 | |
US7273978B2 (en) | Device and method for characterizing a tone signal | |
JP4465626B2 (ja) | 情報処理装置および方法、並びにプログラム | |
JP4665836B2 (ja) | 楽曲分類装置、楽曲分類方法、及び楽曲分類プログラム | |
JP6019858B2 (ja) | 楽曲解析装置および楽曲解析方法 | |
JP4815436B2 (ja) | 可変分解能により情報信号をスペクトル表現に変換する装置および方法 | |
CN109979488B (zh) | 基于重音分析的人声转乐谱系统 | |
Miron et al. | Monaural score-informed source separation for classical music using convolutional neural networks | |
JP4613923B2 (ja) | 楽音処理装置およびプログラム | |
JP5127982B2 (ja) | 音楽検索装置 | |
Wu et al. | Polyphonic pitch estimation and instrument identification by joint modeling of sustained and attack sounds | |
Osmalsky et al. | Neural networks for musical chords recognition | |
US20230186877A1 (en) | Musical piece structure analysis device and musical piece structure analysis method | |
JP2012506061A (ja) | デジタル音楽音響信号の分析方法 | |
Cogliati et al. | Piano music transcription modeling note temporal evolution | |
JP2017161572A (ja) | 音信号処理方法および音信号処理装置 | |
Laroche et al. | Hybrid projective nonnegative matrix factorization with drum dictionaries for harmonic/percussive source separation | |
CN113196381A (zh) | 音响解析方法以及音响解析装置 | |
Ozaslan et al. | Legato and glissando identification in classical guitar | |
JP6733487B2 (ja) | 音響解析方法および音響解析装置 | |
JP6565529B2 (ja) | 自動アレンジ装置及びプログラム | |
JP2017161573A (ja) | 音信号処理方法および音信号処理装置 | |
JP4926044B2 (ja) | 音信号の特徴を記述する装置および方法 | |
Özaslan et al. | Identifying attack articulations in classical guitar | |
Yanchenko et al. | Hierarchical multidimensional scaling for the comparison of musical performance styles |