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