如何在 python 中更改音频文件播放时的播放速度?

use*_*819 6 python audio

我已经做了很多搜索,试图找到一种方法来实现这一目标,但我找到的解决方案要么不能满足我的需要 ,要么 我不理解它们

我正在寻找一种在 python (非阻塞)中播放声音的方法,它允许我在播放时实时更改播放速度,没有间隙或切口。

改变音调就好了。音频质量甚至不是那么重要。

我发现的大多数解决方案只允许在播放文件之前设置一次播放速度。

use*_*819 0

我找到了一个解决方案,使用 python-mpv, mpv.io的包装器

from pynput.keyboard import Key, Listener
import mpv
speed=1

#quick function to change speed via keyboard. 
def on_press(key):

    global speed

    if key.char == 'f' :
        speed=speed-0.1
        player.speed=speed
    if key.char == 'g' :
        speed=speed+0.1
        player.speed=speed

player = mpv.MPV(ytdl=True)
player.play('/Users/regvardy/mediapipe_faceswap-main/test.wav')
with Listener(
        on_press=on_press) as listener:
    listener.join()
while True:
    
    player.speed=speed
Run Code Online (Sandbox Code Playgroud)

我还没有测试过它的稳定性。

这感觉像是一种解决方法,而不是我真正找到如何做到这一点,所以我可能会尝试找到不同的解决方案。