人工知能第一研究室

 
マルチチャネルNMFを用いた楽器演奏音からの雑音除去の研究

最初に下のほうにある実験データを見ると理解しやすいかもしれません。

はじめに

 最近では、高性能な計算機や比較的安価なマイクをなどの機材を使って自宅で簡単に楽器演奏を録音できるようになってきました。しかし、自宅では周囲の雑音が入ってしまう問題点もあります。本研究では、この問題点を解決するために雑音のある環境で楽器演奏を録音してもその後の信号処理で雑音を取り除くことによって仮想的な防音設備を実現することを目的にしています。
非負値行列因子分解という技術を用いて楽器演奏音と雑音を分離することで雑音除去を行います。

NMF(非負値行列因子分解)とは

matrix

左辺のような負の値を持たない行列を右辺のように任意の数の行列に分解することを意味します。
NMFの特徴は非負値で表されたデータを何らかの特徴に分けることができる点です。

NMFを音に適用する場合

スペクトログラムというものを利用します。

   ・スペクトログラムとは

STFT_2048_shift_1024

    縦軸を周波数、横軸を時間で表すグラフで、時間変化による周波数の強さを観察するためのものです。
    スペクトログラムで周波数の強さを見る場合にはデータを2乗したものが用いられるため非負値の行列
    としてみることができます。
    この行列を使ってNMFを音に適用します。

NMFを音に適用することで音源に含まれている楽器や声などの特徴によって音を分離することができます。

NMFを音に適用した場合の行列の役割

音にNMFを適用すると

NMF

X : 信号処理したい音のスペクトログラム
H : 周波数
U : 音量

となり、分解された行列HとUは音を分離したときの周波数特徴とその周波数特徴の時間変化ごとの音量を表します。何個の音に分離するかは事前に基底数として決定しておかなければなりません。この画像の例ではm個(=基底数)に音を分離していることになります。

マルチチャネル拡張

ここまではモノラル信号(マイク1個で録音)でなければいけませんでしたが、マルチチャネル拡張することでステレオ信号(マイク2個で録音)を扱えるようになります。ここでは、マルチチャネル拡張の方法については詳しくは説明しませんが、マルチチャネル拡張することによって何ができるようになるのかを説明したいと思います。マルチチャネル拡張をするとステレオ信号を扱えるようになり、ステレオ信号に含まれている位相情報を用いることによってどの方向から音がやってきているのかということを判別することができます。

  ・位相とは

phase

   位相とはマイクにどのタイミングで音がやってきたかということを表すものです。上の図はマイク4本に
   対して左から音がなった場合を示しています。音はマイク1に最初に到達し、遅れてマイク2、マイク
   3、マイク4と順番に到達します。このときの遅延時間を計算することによってどの方向から音がやって
   きたかを判別したりすることができます。
   例) 正面からの音はどのマイクにも同じタイミングで音がやってくるので遅延時間0秒

実験

実際の音を使ってマルチチャネル拡張したNMFで音を分離してみます。
処理する音は

before

この音をマルチチャネルNMFを用いて音源分離すると

drums
ドラム

violin_synthシンセサイザー

vocals
ボーカル

となります。

最後に、NMFについて少し詳しく知りたい人は
http://www.kecl.ntt.co.jp/icl/signal/sawada/mypaper/829-833_9_02.pdf
を参照してください。
マルチチャネルNMFについては
http://www.kecl.ntt.co.jp/icl/signal/sawada/pub-eng.html
でMultichannel NMFに関する論文のPDFを参照してください(英語です)。