スペクトログラム解析のために、Pythonを使用してWAV PCMファイルから周波数ピークを読み取り、その画像を生成する方法を教えてください。PythonのスペクトログラムのFFT
私はオーディオファイルを読み込んでWAV PCMに変換し、ピークと周波数カットオフを見つけるプログラムを作ろうとしています。
スペクトログラム解析のために、Pythonを使用してWAV PCMファイルから周波数ピークを読み取り、その画像を生成する方法を教えてください。PythonのスペクトログラムのFFT
私はオーディオファイルを読み込んでWAV PCMに変換し、ピークと周波数カットオフを見つけるプログラムを作ろうとしています。
Python's wave libraryオーディオをインポートできます。その後、オーディオのuse numpy to take an FFTすることができます。
次に、matplotlibは非常に素晴らしいチャートとグラフを作成します。これはMATLABに匹敵します。
これは汚れとして古くなりますが、this articleはおそらくあなたが記述している問題(ほぼPythonの記事)をほぼ正確に開始することになります。
ロードWAVファイルはaudiolabを使用して簡単です:
from audiolab import wavread
signal, fs, enc = wavread('test.wav')
または任意の一般的なオーディオフォーマットを読み、WAVに変換する:
from audiolab import Sndfile
sound_file = Sndfile('test.w64', 'r')
signal = wave_file.read_frames(wave_file.nframes)
スペクトログラムはPyLabに組み込まれています:
from pylab import *
specgram(signal)
具体的には、matplotlibの一部です。 Here's a better example.
from pylab import *
specgram(signal)
が最も簡単です。このコンテキストでも非常に便利です:
subplot
警告:Matplotlibは非常に遅いですが、美しい画像を作成します。 3Dを扱っているときでさえ、要求の少ないアニメーションには使用しないでください。
PCM形式から整数に変換する必要がある場合は、struct.unpackを使用します。
matplotlibはスペクトログラムをコマンド 'specgram 'で直接計算することもできます。 – tom10
私はそれがまさに私が必要とするように見えます。ありがとうございました :) –