我是音频编辑库-Pydub的新手。我想使用Pydub(例如.wav / mp3格式的文件)更改某些音频文件的播放速度,但是我不知道如何制作。我看到的唯一可能解决此问题的模块是speedup module in effect.py。但是,没有关于我应该如何称呼它的解释。
谁能解释一下如何在Pydub中执行此任务?非常感谢!
(一个相关的问题:Pydub - How to change frame rate without changing playback speed,但是我要做的是在不改变音频质量的情况下更改播放速度。)
最佳答案
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)