2014-04-15 35 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個字節