7
9

More than 3 years have passed since last update.

MMSE-STSA法の音声強調・ノイズ除去をJSにポーティングしたがあと一歩うまく動かない話

Last updated at Posted at 2018-01-20

現在、音声強調・ノイズ除去のプログラムに凝っていて、shunsukeaihara氏のpysspという音声強調・ノイズ除去のpythonライブラリを見つけたので、

それを利用したMSSE-STSA法の音声処理プログラムを書いて、諸事情でJS(node.js)にポーティングしてみました。

pysspではnumpyやscipyが多用されていますが、JSにもnumjsというnumpyもどきがあって、それを使って比較的、綺麗に書き換えられました。

で、pythonの実装がコレ
https://github.com/ryogrid/pyssp_mod/blob/c228347fb2d5d6e2c5fdf2135757d3273fb9f651/mmse_stsa_js.py
で、JSの実装がコレ
https://github.com/ryogrid/pyssp_mod/blob/d6f48b14de924a105fd29444a03218e0a7bd0874/mmse_stsa.js
なのですが、残念ながら、JS版は処理した音声が歪んでしまって、バグがあるか、Python版との差異があるかと思われますが、ずっとレビューしていますが、解決できていません。

どこか気付くところがあればご教授いただければ幸いです。

利用している数学関数がpythonで利用しているものと同じ値を返すことは確認しています。
ただ、fftとifftの関数が返す複素数の配列で、第2要素以降で実部と虚部が逆になっていることは確認していて、python版に合わせるために入れ替えたりはしてみたのですが、問題は解決しませんでした。また、入力についても入れ替えたりはしてみました。ここらへんが、どうも怪しいなあと思っていますが、打つ手なしの状態です。

あと、JS版は音声データの読み込みと書き出しをテキストで行っていますが、これは、JSでWaveファイルの読み書きがうまくできなかったためです。これが問題の原因でないことは確認しています。

以上です。

7
9
3

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
7
9