代码之家  ›  专栏  ›  技术社区  ›  itsMe

如何使用pydub更改音频播放速度?

  •  0
  • itsMe  · 技术社区  · 7 年前

    我是音频编辑libs的新手- Pydub . 我想用pydub(比如.wav/mp3格式的文件)来改变一些音频文件的播放速度,但我不知道怎么做。我看到的唯一能解决这个问题的模块是 speedup module in effect.py . 但是,对于我该如何称呼它没有任何解释。

    有人能解释一下如何在Pydub完成这项任务吗?非常感谢!

    (相关问题: Pydub - How to change frame rate without changing playback speed ,但我要做的是在不更改音频质量的情况下更改播放速度。)

    1 回复  |  直到 7 年前
        1
  •  0
  •   abhi krishnan    7 年前

    sound.set_frame_rate()进行转换,不应产生任何“花栗鼠效应”,但您可以更改帧速率(不进行转换),然后将音频从那里转换回正常的帧速率(如44.1 kHz,“CD质量”)。

    from pydub import AudioSegment
    sound = AudioSegment.from_file(…)
    
    def speed_change(sound, speed=1.0):
        # Manually override the frame_rate. This tells the computer how many
        # samples to play per second
        sound_with_altered_frame_rate = sound._spawn(sound.raw_data, overrides={
             "frame_rate": int(sound.frame_rate * speed)
          })
         # convert the sound with altered frame rate to a standard frame rate
         # so that regular playback programs will work right. They often only
         # know how to play audio at standard frame rate (like 44.1k)
        return sound_with_altered_frame_rate.set_frame_rate(sound.frame_rate)
    
    
    slow_sound = speed_change(sound, 0.75)
    fast_sound = speed_change(sound, 2.0)