人工知能第一研究室

 
ブログ

楽器の音響信号に対してクロマベクトルを利用した音高推定の研究

研究の背景

  • 音楽経験者であれば自分の好きな曲を演奏してみたいと思うであろう。もしも音楽の音響信号波形からコンピュータを用いて楽譜を書き起こす自動採譜が実現すれば、楽譜が手に入るだけでなく、リスナーの要求に合わせて音響信号をカスタマイズして一歩踏み込ん だ音楽鑑賞をすることができるなど、様々な効用がある。

研究の目的

  • しかし、音高推定の問題 やリズム・拍節構造の認識の問題、雑音が混在していることが原因で、自動採譜は容易ではない。本研究では、音高推定に絞って研究を行い、自動採譜の支援をすることが目的である。

従来研究

  • ピアノの単音に対してクロマベクトルを使用して音高推定を行う手法がある。クロマベクトルについては上の通りである。

解決したい課題

  • 上の図はピアノのF4の音について計算したクロマベクトルを表しており、下の図はトランペットのF4の音について計算したクロマベクトルを表している。トランペットに関しては、どのフレームにおいても「F」ではなく「C」という音が最も大きい特徴を示していることがわかる。このことから、倍音成分の方がパワーが大きい楽器では正解率が低下してしまう。

提案手法

  • 提案手法の全体の流れについては上の通りである。
  • 提案手法においての音名推定部分の流れは上の通りである。
  • 音名推定部分においての類似度評価の方法については上の通りである。
  • 提案手法においての音高推定部分の流れは上の通りである。
  • 類似度評価に用いた類似度は上の通りである。

実験

  • 提案手法の音高推定の精度を調べるための実験であり、実験条件は上の通りである。

実験結果

  • 実験結果は上の通りである。

まとめ

  • 様々な楽器の音高推定の精度を向上させ、自動採譜の支援をすることが目的である。
  • クロマベクトル同士の類似度評価、振幅スペクトル同士の類似度評価を用いた音高推定を提案した。
  • 提案手法によって、どの楽器も音高正解率が向上した。

今後の課題

  • データベースに使用する音を変更した場合の検証
  • 楽器音の強弱によって周波数成分がどう変わるか調査

マルチチャネル非負値行列因子分解を用いた音源分離および音声認識の性能向上に関する研究

背景・目的

近年、スマートフォンやハンズフリーなどの音声を取り扱うオーディオ機器が広く普及しており、様々な音が混在する環境下での利用が想定されます。ただし、周囲の雑音や他話者の音声の影響によって、目的とする音の抽出や認識が困難になるという問題が生じます。この問題の解決には音源分離技術が有効であり、必要とする目的音のみを抽出することが可能となります。そうすることで、通話時における会話音声の明瞭度の向上や音声入力操作時における音声認識性能の向上へと繋がります。

音源分離には様々な手法が提案されていますが、ここではマルチチャネル非負値行列因子分解(MNMF)に着目します。MNMFは劣決定条件(音源数 > 観測マイク数)に有効な手法であり、観測環境下に多くの音源が存在する場合でも、少ないマイク数で分離が可能です。しかし、MNMFは自由度の高いモデルであるため分離性能に対する初期値依存性が大きいといった課題がありました。本研究では、雑音環境下で観測された音声データをMNMFで分離し、得られた分離信号を音声認識実験に適用することで認識性能の向上を図ります。認識性能という観点から、ランダムな初期値を設定する従来手法などを含む複数の手法と提案手法を比較することで、有効性を検証します。MNMFのアルゴリズムや挙動解析、問題点等は過去のページを参照ください。

提案手法

これまでの研究成果により、あらかじめ初期値を与えることで分離性能が向上し、ばらつきの抑制を達成することができました。ただしMNMFの性質上、多少なりともばらつきが生じます。そこで本研究では、この性質を逆手にとって、初期値の設定によって得られた高い分離性能を持つ複数の分離信号の中から新たな分離信号を算出する手法を提案します。

—————————————————————————————————————————————————
なお、本提案手法は雑音環境下音声認識タスクである”CHiME Challenge4″を対象としており、音源方向が既知(正面方向)という条件の下でバイナリマスク法を適用しています。
—————————————————————————————————————————————————

あらかじめバイナリマスク法を用いて生成したマスクに、EMアルゴリズムによる強調処理を適用することで計算した空間相関行列Hの初期値をMNMFに設定します。その他の行列にはランダムな初期値パターンを複数個用意し、複数回の音源分離を実施します。分離後に得られた複数個の空間相関行列Hのパラメータを利用して、階層的クラスタ分析を適用します。クラスタ分析の結果に基づいて、同じクラスタ内に属する信号にアンサンブル平均を適用することで、新たな分離信号を算出します。

バイナリマスク法とは、マイク間の位相差を用いてマスク関数を構築し、雑音を抑圧する手法です。例えば2チャネルで録音された観測信号において、目的音が正面方向(0度)にある場合、マイク間の位相差は0となります。そこで、マイク間の位相差がゼロから離れた時間周波数ビンのパワーをマスキングすることで正面方向の音を取り出すことができます。 そして、バイナリマスク適用後に得られた雑音マスクをEMアルゴリズムを用いて強調処理を行います。強調した雑音マスクからステアリングベクトル(SV)を推定し、観測信号のSVから減算したものを目的信号のSVと定義して、それらの相互相関をとることで空間相関行列Hを計算しています。

階層的クラスタ分析とは、数値分類法の一種であり、異なる集団に属する複数の個体から個体間の距離に基づいて、類似するものを順次集めてクラスタを作成する手法です。その様子をデンドログラムと呼ばれる木構造のグラフで描写することができ、結果として出力されるデンドログラムから任意の数のクラスタに分類することが可能だという特徴があります。なお、クラスタ間の距離計算にはウォード法を使用しています。

アンサンブル平均とは、同一の信号を複数回観測し、それらを加算平均することで雑音を抑圧する手法です。もしも全く同じ目的信号を繰り返し取得することができ、雑音間に相関性が無ければ、それらを加算平均することで不規則に発生する雑音の影響を少なくすることができ、相対的に目的信号が強調されます。

以下に提案手法におけるフローチャートを示します。

提案手法の評価

評価実験では、雑音環境下で観測された信号をMNMFで音源分離し、分離後に得られた目的信号を音声認識実験に適用することで、認識性能が改善するのかどうかを検証します。評価指標には単語誤り率(WER)を用います。4つの雑音環境下(BUS:走行バスの中、CAF:喫茶店、PED:歩行者天国、STR:交差点)において、6つのマイクロホンが装着されたタブレットに向かって人が発話して収音したデータを使用しています。

使用データ:
 4環境×話者4名×3発話×2パターン(SIMU・REAL) 計96発話
 ・SIMU:雑音データと室内で収音した音声データを畳みこんで作成したもの
 ・REAL:実際に雑音環境下で発話したもの

比較手法:
 以下の7つの手法を比較に使用しています。
 ①未処理のまま認識(“Noisy”)
 ②重み付き遅延和アレーにより目的信号強調(“Baseline”)
 ③ランダム初期値(“Random”) ← 従来手法
 ④”Random”に階層的クラスタ分析とアンサンブル平均を適用(“Random+cluster”)
 ⑤EMアルゴリズムから計算した初期値(“EM”)
 ⑥”EM”に階層的クラスタ分析とアンサンブル平均を適用(“EM+cluster”) ← 提案手法
 ⑦室内で収音した音声データを認識(“Clear”) ← 理想データ

以下の図が実験結果となります。これらの結果から、SIMUの場合だと4環境全てにおいて提案手法の認識性能が最も高いことがわかります。ただし、”Clear”にはまだ及ばないということから、まだ性能向上の余地があることが確認できます。REALでは、CAFとSTRにおいて最も高い認識性能が得られていますが、4環境の平均(AVE)に注目すると、全手法の中でも最高の性能が得られていることがわかります。

まとめ

本研究では雑音下における音声認識にMNMFを適用し、初期値設定と階層的クラスタ分析、アンサンブル平均を組みあわせた手法を提案しました。従来のランダム初期値のMNMFには、初期値依存性といった課題がありました。そこで、初期値設定を行うことで、初期値依存性を緩和(分離性能の向上・ばらつきの抑制)することができました。さらに初期値の設定によって性能の向上した分離信号に階層的クラスタ分析を適用することで分類された信号に対し、アンサンブル平均を適用して新たな信号の算出を行いました。評価実験において、提案手法を用いることで音声認識性能が向上したことから、有効性を確認することができました。目的成分が強調された信号を取得することができ、認識性能の向上に繋がったのだと考えられます。

手拍子によって踊り方を変えるロボット

2018年12月21日に行われた3年生によるデモ大会で発表した内容です。

<背景>現在単純に踊るだけのロボットは多く存在しますが一定の速さで動作するものがほとんどです。そこで自分の意思で速さを変更できるようにしたいと思い開発しました。

<開発環境>MATLAB, Julius , TOPPERS/EV3RT

<概要>手拍子のテンポが遅ければ低速で動作し、速ければ高速で動作します。詳しくは以下の動画をご覧ください。

クロマベクトルを用いた楽曲の調推定

2018年12月21日に行われた、3年生によるデモ大会での発表内容です。

【目的】
・発展的な音楽情報処理の基礎となる調推定の精度向上
・現在普及している調推定ソフトウェアが低精度である原因の追究・明確化

【概要】
クロマベクトルは、非常に短い音響信号の12音名(クロマ)を周波数軸とし、各クロマのパワーを表す。
このクロマベクトルを用いて楽曲全体におけるクロマのパワー総量を調べ、これを特徴量として調を推定する。

本研究を通し、調推定における課題点は「非整数次倍音」・「曖昧な調性」であることが判明した。

 発表の詳細は下の動画でご覧になれます。