【问题标题】:PyDub: Combining audio size error?PyDub:结合音频大小错误?
【发布时间】:2014-04-15 22:28:55
【问题描述】:

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

我实际上遵循了另一个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 from_file 调用 from_wav 如果你传入的文件是一个wave :)

标签: python python-2.7 audio pydub


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    相关资源
    最近更新 更多