He buscado mucho para tratar de encontrar una manera de lograr esto, pero las soluciones que he encontrado no hacen lo que necesito o no las entiendo .
Estoy buscando una forma de reproducir un sonido en python (sin bloqueo) que me permita cambiar la velocidad de reproducción en tiempo real, mientras se reproduce, sin espacios ni cortes.
Cambiar el tono está bien. La calidad del audio ni siquiera es tan importante.
La mayoría de las soluciones que he encontrado solo permiten configurar la velocidad de reproducción una vez, antes de que se reproduzca el archivo.
He hecho esto en mi proyecto Python. Uso VLC para presentar audio/video dentro de una GUI de PyQt5. La GUI tiene controles para ralentizar o acelerar el A/V mientras se reproduce. https://github.com/ccbogel/QualCoder El archivo principal de python para mostrar audio/video está en: view_av.py y allí está Class DialogViewAV Importa algunos módulos adicionales para la integración de GUI y vlc, si te ayuda a obtener su cabeza a su alrededor y extraiga los bits de código que necesita.
Tengo un video que explica el uso de la parte A/V del software y a los 45 segundos menciono la opción de cambio de velocidad de reproducción. https://www.youtube.com/watch?v=TjOfPvvXh7U&t=0s
Si tengo tiempo, tal vez pueda preparar un guión para hacer lo que buscas.
Encontré una solución usando python-mpv, un contenedor para 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=speedTodavía no he probado la estabilidad.
Se siente como una solución alternativa en lugar de que yo descubra cómo hacerlo, así que puedo intentar encontrar una solución diferente.