2014-04-15 28 views
1

我是一个新手程序员,目前正在研究一些代码,其中音频段被覆盖并连接在一起。到目前为止,连接工作完美无缺,但似乎有关于重叠的错误。PyDub:结合音频大小错误?

我实际上接着从另一个计算器问题以下代码:

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赫兹,都是相同的长度(2秒长),所以我不知道发生了什么。我到处检查(我通常会想到)提到的大小,但我找不到任何。 有人说,有人可以给我一些线索,看看错误消息发生了什么?

非常感谢提前。

+0

尝试'from_wav'而不是'from_file'。 – ooga

+0

@ooga from_file调用from_wav如果你传入的文件是wave :) – Jiaaro

回答

1

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

需要在8通过,16位或32位的波形文件:/

当错误消息指出,“尺寸应为1,2或4”,其指的字节数每个样本应该是(1字节== 8位)。 24位是3个字节