あなたの質問には3つの別々の部分があると思います:
- オーディオファイルをPythonにロードするには?
- Pythonでスペクトルを計算するには?
- スペクトルをどうするか?
1. Python でオーディオ ファイルをロードする方法は?
scipy
多くの信号処理機能を提供するため、おそらく を使用することをお勧めします。オーディオファイルをロードする場合:
import scipy.io.wavfile
samplerate, data = scipy.io.wavfile.read("mywav.wav")
これで、サンプル レート (サンプル/秒) が にsamplerate
、データが として得numpy.array
られdata
ます。アプリケーションによっては、データを浮動小数点に変換したい場合があります。
wave
wav ファイルをロードするための標準の python モジュールもありますが、 numpy
/scipy
はよりシンプルなインターフェイスと信号処理のためのより多くのオプションを提供します。
2. スペクトルの計算方法
簡単な答え: FFT を使用します。その他の知恵の言葉については、次を参照してください。
高速フーリエ変換を使用してオーディオを分析する
長い答えはかなり長いです。ウィンドウ処理は非常に重要です。そうしないと、奇妙なスペクトルが得られます。
3. スペクトルをどうするか
これは少し難しいです。フィルタリングは、より長い信号の時間領域で実行されることがよくあります。達成したいことを教えていただければ、これに対する良い答えが返ってくるかもしれません。周波数スペクトルを計算することは 1 つのことですが、信号処理で意味のある結果を得ることはもう少し複雑です。
(あなたがこれを尋ねていないことは知っていますが、>> 0 の確率で出てくるようです。もちろん、オーディオ信号処理について十分な知識を持っている可能性もあります。その場合、これは関係ありません。)