PyDub:合并音频时的大小错误?
我是一名初学编程的程序员,目前正在处理一些代码,主要是把音频片段叠加在一起并连接起来。现在连接的部分运行得很好,但叠加的部分似乎出现了错误。
我其实是参考了另一个StackOverflow问题中的代码:
from pydub import AudioSegment
sound1 = AudioSegment.from_file("/path/to/my_sound.wav")
sound2 = AudioSegment.from_file("/path/to/another_sound.wav")
combined = sound1.overlay(sound2)
combined.export("/path/to/combined.wav", format='wav')
然后收到了以下错误信息(不重要的部分已删去):
combined = sound1.overlay(sound2)
File "C:\Python27\pydub\audio_segment.py", line 565, in overlay
sample_width))
audioop.error: Size should be 1, 2 or 4
[Finished in 13.0s with exit code 1]
这两个音频文件都是.wav格式,24位(也就是说不是立体声),采样率是44100赫兹,而且长度都是一样的(2秒),所以我也不太明白到底出了什么问题。我检查了所有我能想到的地方,想找找有没有关于大小的说明,但没找到。
所以,有人能给我一点提示,告诉我这个错误信息到底是怎么回事吗?
非常感谢!
1 个回答
4
Pydub这个库使用了Python标准库里的wave模块,但可惜的是,这个模块不支持24位的wav文件。
你需要使用8位、16位或者32位的wav文件 :/
当错误信息说“大小应该是1、2或4”时,它指的是每个音频样本应该占用的字节数(1字节等于8位)。而24位的音频样本占用的是3字节。