write waves wavefile señales read procesamiento grabar ecualizador con analisis python format wave

waves - wavefile read python



Abrir un archivo wave en python: formato desconocido: 49. ¿Qué está pasando? (2)

Intento abrir un archivo de onda con el módulo de wave , pero sigo recibiendo el mismo error, sea lo que sea que intente. La línea con el error es la siguiente:

wav = wave.open(f)

Este es el mensaje de error:

Traceback (most recent call last): File "annotate.py", line 47, in <module> play(file) File "annotate.py", line 33, in play wav = wave.open(f) File "C:/Program Files (x86)/Python/lib/wave.py", line 498, in open return Wave_read(f) File "C:/Program Files (x86)/Python/lib/wave.py", line 163, in __init__ self.initfp(f) File "C:/Program Files (x86)/Python/lib/wave.py", line 143, in initfp self._read_fmt_chunk(chunk) File "C:/Program Files (x86)/Python/lib/wave.py", line 269, in _read_fmt_chunk raise Error(''unknown format: %r'' % (wFormatTag,)) wave.Error: unknown format: 49

String f es una ruta a un archivo .WAV y funciona cuando se reproduce en cualquiera de mis reproductores multimedia. Por supuesto, he importado el módulo de wave . Intenté f como un camino relativo y absoluto. Intenté reemplazar "WAV" por "wav".

¿Cuál es el error causado por?


El archivo está comprimido y el módulo de wave no admite este tipo de compresión.


El módulo de onda de Python funciona con un tipo específico de WAV: PCM ( WAVE_FORMAT_PCM: 0x0001 ).

En su caso, está usando un WAV de tipo WAVE_FORMAT_GSM610 [0x0031 = hex (49)].

Puede usar un programa como Audacity o alguna lib para convertir códecs para cambiar el tipo de archivo WAV.

Puede ver una lista de tipos de WAV aquí: https://www.videolan.org/developers/vlc/doc/doxygen/html/vlc__codecs_8h.html

Código fuente del módulo de onda de Python: https://github.com/python/cpython/blob/master/Lib/wave.py