PyDub:音频合并大小错误?

4

我是一名初学者程序员,目前正在编写一些代码,其中音频片段被叠加并组合在一起。目前连接工作得非常好,但似乎存在有关叠加的错误。

实际上,我遵循了另一个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 Hz,并且长度相同(2秒钟),所以我不确定出了什么问题。我已经检查了所有可能想到的地方来寻找有关大小的信息,但是没有找到任何信息。 话虽如此,能否有人给我一些线索,告诉我错误信息是怎么回事? 非常感谢!

请尝试使用 from_wav 而不是 from_file - ooga
如果您传递的文件是一个wave文件,则@ooga从文件调用from_wav。 :) - Jiaaro
1个回答

4

Pydub使用Python标准库的wave模块 - 不幸的是,该模块不支持24位的wav文件。

你需要传入8、16或32位的wav文件 :/

当错误信息提示“大小应为1、2或4”时,它指的是每个采样应该是多少字节(1字节== 8位)。24位是3个字节。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接