tren - FFT para espectrogramas en Python
transformada de fourier 2d python (4)
Cargar archivos WAV es fácil usando audiolab :
from audiolab import wavread
signal, fs, enc = wavread(''test.wav'')
o para leer cualquier formato de audio general y convertir a WAV:
from audiolab import Sndfile
sound_file = Sndfile(''test.w64'', ''r'')
signal = wave_file.read_frames(wave_file.nframes)
El espectrograma está integrado en PyLab:
from pylab import *
specgram(signal)
Específicamente, es parte de matplotlib . Aquí hay un mejor ejemplo.
¿Cómo utilizaré Python para leer los picos de frecuencia de un archivo WAV PCM y luego podré generar una imagen de este, para el análisis de spectogram?
Estoy intentando hacer un programa que te permita leer cualquier archivo de audio, convertirlo a WAV PCM, y luego encontrar los picos y los límites de frecuencia.
Si necesita convertir de formato PCM a enteros, querrá usar struct.unpack.
La biblioteca de ondas de Python te permitirá importar el audio. Después de eso, puedes usar numpy para tomar una FFT del audio.
Entonces, matplotlib hace muy buenos cuadros y gráficos, absolutamente comparables a MATLAB.
Es viejo como tierra, pero este artículo probablemente te ayudará a comenzar casi exactamente con el problema que estás describiendo (artículo en Python, por supuesto).
from pylab import *
specgram(signal)
es el más fácil También es bastante útil en este contexto:
subplot
Pero ten cuidado: Matplotlib es muy lento pero crea imágenes hermosas. No debe usarlo para animaciones exigentes, incluso menos cuando se trata de 3D