【问题标题】:Overlay wav files at different start times using Pydub使用 Pydub 在不同的开始时间覆盖 wav 文件
【发布时间】:2021-11-03 19:50:53
【问题描述】:

我有一系列 wav 文件,我想使用 Pydub 合并并导出为单个 wav。我希望原始文件中的音频在导出文件中的不同时间播放,例如audio_1.wav 中的音​​频在导出文件中的 time=0 开始,而audio_2.wav 中的音​​频从 time=5 开始,而不是两者都从 time=0 开始,因为 overlay 函数具有它们。有没有办法做到这一点?下面是我目前用于导入、覆盖和导出音频文件的代码。

from pydub import AudioSegment

audio_1 = AudioSegment.from_file("audio_1.wav",
                               format="wav")

audio_2 = AudioSegment.from_file("audio_2.wav",
                               format="wav")

overlay = vln_audio_1.overlay(vla_audio_2)
file_handle = overlay.export("output2.wav", format="wav")

【问题讨论】:

  • 你检查过文件中的内容吗?也许第二个文件在开始时有 5 秒的静音,这都是问题。
  • 不,这就是我想要的。目前所有文件同时开始,没有静音。
  • 也许你应该先在开头添加一些静音。 silence = AudioSegment.silent(duration=5000)audio_2 = silence + audio_2
  • 基于documentation可能需要overlay(..., position=5000)

标签: python python-3.x audio pydub


【解决方案1】:

我没有测试它,但基于documentation它可能需要overlay(..., position=5000)


顺便说一句:

你也可以在开头添加silence来移动音频

silence_5_seconds = AudioSegment.silent(duration=5000)

audio_2 = silence_5_seconds + audio_2

【讨论】:

  • 谢谢,终于成功了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 2018-06-11
  • 2022-01-25
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
相关资源
最近更新 更多