我尝试使用wave模块打开wave文件,但是无论尝试如何,我都会遇到相同的错误。
出现错误的行如下:

wav = wave.open(f)

这是错误消息:
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

字符串f是.WAV文件的路径,在我的任何媒体播放器中播放时都可以使用。

我当然已经导入了wave模块。
我尝试了f作为相对路径和绝对路径。
我尝试将“WAV”替换为“wav”。

是什么原因引起的错误?

最佳答案

Python的wave模块可与特定类型的WAV一起使用:PCM(WAVE_FORMAT_PCM: 0x0001)。

在您的情况下,您正在使用WAVE_FORMAT_GSM610 [0x0031 = hex(49)]类型的WAV。

您可以使用Audacity之类的程序或某些lib来转换编解码器以更改WAV文件的类型。

您可以在此处查看WAV类型的列表:
https://www.videolan.org/developers/vlc/doc/doxygen/html/vlc__codecs_8h.html

Python的wave模块源代码:
https://github.com/python/cpython/blob/master/Lib/wave.py

关于python - 在Python中打开wav文件ojit_pre ww怎么了?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17297048/

10-13 08:59