Pregunta

¿Cómo voy a ir sobre el uso de Python para leer los picos de frecuencia a partir de un archivo WAV PCM y luego ser capaz de generar una imagen de ella, para el análisis de espectrograma?

Estoy tratando de hacer un programa que le permite leer cualquier archivo de audio, la conversión a WAV PCM, y luego encontrar los picos y los puntos de corte de frecuencia.

¿Fue útil?

Solución

biblioteca de onda de Python le permitirá importar el audio. Después de eso, puede usar numpy tomar una FFT de la de audio.

A continuación, matplotlib hace tablas y gráficos muy agradables -. Absolutamente comparables a MATLAB

Es viejo como suciedad, pero este artículo probablemente empezar en casi exactamente el problema que describes (artículo en Python, por supuesto).

Otros consejos

Carga de 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 se construye en PyLab:

from pylab import *
specgram(signal)

Específicamente, es parte de matplotlib . Aquí hay un ejemplo mejor.

from pylab import *
specgram(signal)

es el más fácil. También es muy útil en este contexto:

subplot

Sin embargo, se advirtió: Matplotlib es muy lento pero crea hermosas imágenes. No se debe utilizar para exigir la animación, menos aún cuando se trata de 3D

Si necesita convertir de formato PCM a números enteros, tendrá que utilizar struct.unpack.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top