社会人博士の深層学習ブログ

深層学習を使った環境音認識研究で、働きながら博士号を取得しました

【初心者向け】python音響信号処理の試し方

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()

f:id:ys0510:20210321221411p:plain

 

続いて、短時間フーリエ変換。画像は載せませんでしたが、ファイル全体の平均を周波数-パワースペクトルの図も表示します。

 

guitar.stft_plot() 

f:id:ys0510:20210321221422p:plain

 

メルスペクトログラムも計算することができます。

guitar.melspectrogram(plot=True) 

 

f:id:ys0510:20210321221435p:plain

 

音声認識の特徴量としても使用される、MFCCは以下のように実行します。

guitar.mfcc(plot=True)

f:id:ys0510:20210321221459p:plain

 

 

ほかにも、ケプストラムやバンドパスフィルタなどのメソッドも実装しました。

おいおい紹介していければと思います。

 

今日は夜遅いので、このへんで。。