PyDub:合并音频时的大小错误?

4 投票
1 回答
2460 浏览
提问于 2025-04-18 02:53

我是一名初学编程的程序员,目前正在处理一些代码,主要是把音频片段叠加在一起并连接起来。现在连接的部分运行得很好,但叠加的部分似乎出现了错误。

我其实是参考了另一个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字节。

撰写回答