在python中读取.wav文件

时间:2014-10-11 12:44:58

标签: python scipy

我正在尝试(通过课程)通过ipython读取声音文件.wav。当我尝试“普通”代码来读取文件时:

from scipy.io.wavfile import read

(fs,x) = read ('/Users/joehigham/Desktop/Audio_1.wav')

我得到了

的众所周知的追踪调用
ValueError: string size must be a multiple of element size 

任何人都可以指出我为什么会发生这种情况的正确方向,当然我怎么能解决这个问题呢?

提前谢谢 - 我确实在寻找解决方案,但没有(我发现)似乎与声音文件相匹配。

1 个答案:

答案 0 :(得分:2)

您的wav文件可能包含24位数据。您可以查看:

import wave
w = wave.open("filename.wav")
print(w.getsampwidth())

如果打印的值为3,则数据为24位。如果是这种情况,scipy.io.wavfile将无效。我写了一个处理24位数据的阅读器;见https://github.com/WarrenWeckesser/wavio(取代了 https://gist.github.com/WarrenWeckesser/7461781 中的要点)。读者也是on PyPI