Pregunta

Tengo un poco de problemas de programación y conversión. Estoy diseñando una IA para reconocer las notas tocadas por los instrumentos y necesito extraer los datos de sonido sin procesar de un archivo de onda. Mi objetivo es realizar una operación FFT sobre fragmentos de tiempo en el archivo para su uso por la IA. Para esto, necesito una lista de amplitud del archivo de audio, pero parece que no puedo encontrar una técnica de conversión que funcione. Los archivos comienzan como MP3 y luego los convierto en archivo WAV, pero siempre termino con un archivo comprimido que escupe Gibberish cuando intento leerlo. ¿Alguien sabe cómo podría convertir el archivo WAV en algo que sería compatible con el módulo de onda de Python o incluso algo que convertiría directamente los datos en una lista de amplitud?

¿Fue útil?

Solución

El módulo de onda Python predeterminado no es muy minucioso. Puede probar el incluido en Scipy como alternativa.

Verificar: Lectura *.wav archivos en Python

Si va a hacer un trabajo pesado numérico con el audio, Scipy podría ser su mejor opción de todos modos.

Otros consejos

Creo que Python puede leer archivos .dat. Puede usar Sox para convertir MP3 o Wavs o lo que sea en archivos .dat que sean simplemente una lista de texto de "Tiempo - AMP izquierdo - AMP derecha"

El código es simplemente Sox SoundFile.mp3 SoundFile.dat

http://sox.sourceforge.net/

SOX es una línea de comando: la ejecuto con terminal en mi Mac, pero cualquier cosa que entienda los comandos Bash o Linux debería funcionar dependiendo de lo que esté utilizando la CPU.

¡Espero que ayude!

Es posible que también desee mirar los datos puros, tiene algunas transformaciones FFT buenas integradas en un lenguaje de programación gráfico intuitivo.

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