4年ぐらい前に実装した、pythonを使った音響信号処理ツールのご紹介です。
●対象の方
・音響信号処理を試してみたい
・けど、フーリエ変換やその他信号処理のことはよくわからない
・1つずつ動作を見ながら実装していくのは億劫
※とりあえず動かしてみたいという方向けです。バグがある可能性があるため、厳密な実装や研究向けという方は、自己責任でお願いいたします。
GitHub - yui0204/audio_processing: This repository contains audio signal processing tools
使い方
1.まずは音声ファイル(ここでは、同じフォルダにあるギターのサンプルファイル)をwavedataクラスのインスタンスとして読み込みます。
guitar = WavfileOperate("./Acoustic_guitar181.wav").wavedata
2.あとは好きなメソッド(時系列波形のプロットやフーリエ変換など)を実行すれば、勝手にグラフ表示を行ってくれます。
まずは、時系列波形のプロットから
guitar.plot()
続いて、短時間フーリエ変換。画像は載せませんでしたが、ファイル全体の平均を周波数-パワースペクトルの図も表示します。
guitar.stft_plot()
メルスペクトログラムも計算することができます。
guitar.melspectrogram(plot=True)
音声認識の特徴量としても使用される、MFCCは以下のように実行します。
guitar.mfcc(plot=True)
ほかにも、ケプストラムやバンドパスフィルタなどのメソッドも実装しました。
おいおい紹介していければと思います。
今日は夜遅いので、このへんで。。