使用pyDub生成静默

时间:2014-05-16 03:38:59

标签: python audio mp3 wav pydub

我发现了pyDub,看起来就像我需要的那样:

http://pydub.com/

唯一的问题是产生沉默。 pyDub可以这样做吗?

基本上我想要的工作流程是:

  1. 获取目录中的所有WAV文件
  2. 按照文件名顺序将它们拼凑在一起,在
  3. 之间保持1秒钟
  4. 生成结果的单个MP3
  5. 这可能吗?我意识到我可以制作一个沉默的WAV并以这种方式进行(间接GIF闪回,任何人?),但我更喜欢以编程方式生成静音,因为我可能想要试验沉默的持续时间和/或MP3的比特率。

    我非常感谢任何回复。

1 个答案:

答案 0 :(得分:13)

pydub序列由pydub.AudioSegment个实例组成。 pydub quickstart documentation仅显示如何从文件创建AudioSegments。

然而,阅读the source,甚至更轻松地阅读pydoc pydub.AudioSequence会显示

pydub.AudioSegment = class AudioSegment(__builtin__.object)
 |  AudioSegments are *immutable* objects representing segments of audio
 |  that can be manipulated using python code.
 …
 |  silent(cls, duration=1000) from __builtin__.type
 |      Generate a silent audio segment. 
 |      duration specified in milliseconds (default: 1000ms).

将被称为(遵循快速入门指南中的用法):

from pydub import AudioSegment
second_of_silence = AudioSegment.silent() # use default
second_of_silence = AudioSegment.silent(duration=1000) # or be explicit

现在second_of_silence将是一个AudioSegement,就像示例中的song一样

song = AudioSegment.from_wav("never_gonna_give_you_up.wav")

并且可以操作,编写等,不需要空白的音频文件。