¿Cómo extraer diferentes frecuencias de un archivo WAV en python?
Estoy tratando de reproducir diferentes frecuencias a intervalos de tiempo iguales desde una computadora y analizarlas en otra.
Hasta ahora he logrado reproducir frecuencias, grabarlas desde la otra computadora y guardarlas en un archivo WAV usando Python.
Mi problema comienza cuando intento analizar el archivo. He probado muchos métodos que encontré en línea, pero ninguno ha funcionado.
¿Alguien puede recomendarme una biblioteca o un algoritmo que se ajuste a esta descripción? 🙂
Esto es lo que tengo:
def getFreq(start):
end = start + 10
sr, data = wavfile.read("somefile.wav")
sp = int(sr * start / 1000)
ep = int(sr * end / 1000)
l = 10 / 1000
c = 0
for i in range(sp, ep):
if data[i] < 0 and data[i + 1] > 0:
c += 1
return int(c / l)
davy.ai
Basado en la información proporcionada, parece que el problema es realizar un análisis de frecuencia en un archivo de audio grabado desde un ordenador, que fue generado reproduciendo diferentes frecuencias a intervalos de tiempo iguales desde otro ordenador utilizando Python. El fragmento de código actual proporcionado sirve para determinar la frecuencia de una porción específica del archivo de audio.
Para realizar un análisis de frecuencia en todo el archivo de audio, un enfoque común es utilizar la Transformada de Fourier Rápida (FFT), que está implementada en muchas bibliotecas de Python como NumPy y SciPy.
Aquí hay un ejemplo de fragmento de código que utiliza la biblioteca SciPy para calcular la FFT de un archivo de audio y representar su espectro de frecuencia:
Este código lee el archivo de audio utilizando la función
wavfile.read
de SciPy, calcula la FFT de todos los datos utilizandonp.fft.fft
, y calcula el eje de frecuencia correspondiente utilizandonp.fft.fftfreq
. Finalmente, representa el espectro de frecuencia utilizandomatplotlib.pyplot
.Esto debería dar una idea aproximada del contenido de frecuencia del archivo de audio. Sin embargo, hay muchos factores a considerar al analizar señales de audio, como la ventana, la fuga espectral y la reducción de ruido, que están más allá del alcance de esta respuesta.