LoginSignup
2
3

More than 5 years have passed since last update.

Signal Subspace法(カーネルPCA)を使って音声データのノイズ除去(音声強調)をやってみた

Last updated at Posted at 2018-03-18

書いてみました。
https://github.com/ryogrid/pyssp_mod/blob/master/kpca_denoise.py

カーネルPCAの実装は以下から拝借しました。
https://github.com/lucasrodes/kPCA-denoising-python/blob/master/our_kpca.py

やっていることは、
-音声データを512サンプルに分割して並べて行列にする
-512サンプルごとにFFTをかけて、振幅スペクトルベクトル群(行列)と位相スペクトルベクトル群(行列)を求める
-上の振幅スペクトル行列にk-PCAを用いたデノイズ処理をかける
-得られた行列の中のデノイズされた振幅スペクトルベクトル(512要素)と位相スペクトルベクトルをよろしくして行列にする
-位相スペクトルベクトルに1j(虚数のみ1の複素数)をかけてexpをとったものに、振幅スペクトルを乗算
-上の行列の512要素(行か列かどっちだろ)ごとにIFFTをかける
- IFFTをかけた行列の全要素の実部だけとりだして、1次元ベクトルに並べ直す
- デノイズされた音声データが得られたぞ!

いくらかノイズ除去はできました。パラメータをいろいろ試せばもっと良い効果が得られるかも。

以上です。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3