2

我是一名新手程序员,目前正在处理一些代码,其中音频片段被叠加并连接在一起。到目前为止,连接工作得很好,但似乎有关于覆盖的错误。

我实际上遵循了另一个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 位(IE 不是立体声),44100 Hz,并且长度相同(2 秒长),所以我不确定发生了什么。我到处检查(我通常会想到的)提到尺寸,但我找不到。话虽如此,有人可以给我一些关于错误消息发生了什么的线索吗?

非常感谢提前。

4

1 回答 1

3

Pydub 使用 Python StdLib 中的 wave 模块 - 不幸的是,它不支持 24 位 wave。

您需要传入 8、16 或 32 位波形文件:/

当错误消息显示“大小应为 1、2 或 4”时,它指的是每个样本应为的字节数(1 字节 == 8 位)。24位是3个字节

于 2014-04-15T23:56:30.533 回答