如何 increase/decrease .wav 文件的播放速度?

how to increase/decrease playback speed on .wav file?

我正在尝试 increase/decrease pydub 中一些 .wav 文件的音调(或速度)。 我尝试使用 sound.set_frame_rate(我乘以原始帧速率,但没有任何改变)。 有谁知道如何做到这一点? (最好不要下载额外的外部库)。谢谢。

sound.set_frame_rate() 进行转换,它不应导致任何 "chipmunk effect",但是您 可以 做的是更改帧速率(无需转换)然后将音频从那里转换回正常帧速率(如 44.1 kHz,"CD quality")

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)