如何用Python的playsound模块设置音频1.5倍速播放?
实现音频1.5倍速播放的可行方案
你用的playsound库本身不支持调节播放速度,得换方法来实现变速播放需求。下面给你两种好用的解决方案:
方案一:用pygame实时变速播放
pygame的音频模块支持直接调整播放速度,步骤简单:
- 先安装pygame:
pip install pygame - 替换代码为:
from gtts import gTTS import pygame import time kompletterText = "Thats an example" mytext = str(kompletterText) language = 'de' myobj = gTTS(text=mytext, lang=language, slow=False) # 路径前加r避免转义字符出错 audio_path = r"C:\Users\Sawa2\Desktop\example.mp3" myobj.save(audio_path) # 初始化pygame音频组件 pygame.mixer.init() # 加载音频文件 pygame.mixer.music.load(audio_path) # 原频率乘以1.5得到1.5倍速的播放频率 freq, _, _ = pygame.mixer.music.get_raw() pygame.mixer.music.set_rate(int(freq * 1.5)) # 开始播放 pygame.mixer.music.play() # 等待播放结束 while pygame.mixer.music.get_busy(): time.sleep(0.1)
⚠️ 注意:这种方法靠修改播放频率实现变速,音频音调会跟着变高,介意的话选下面的方案。
方案二:用pydub处理音频后播放(保持音调不变)
pydub可以先把音频调到1.5倍速同时保留原音调,再播放处理后的音频,效果更自然:
- 安装依赖库:
pip install pydub simpleaudio - 代码示例:
from gtts import gTTS from pydub import AudioSegment from pydub.playback import play kompletterText = "Thats an example" mytext = str(kompletterText) language = 'de' myobj = gTTS(text=mytext, lang=language, slow=False) audio_path = r"C:\Users\Sawa2\Desktop\example.mp3" myobj.save(audio_path) # 加载MP3音频 audio = AudioSegment.from_mp3(audio_path) # 调整到1.5倍速,保持音调不变 fast_audio = audio.speedup(playback_speed=1.5, chunk_size=150, crossfade=25) # 播放处理后的音频 play(fast_audio)
额外提醒:路径里的反斜杠前一定要加r,不然会被当成转义字符导致找不到文件。
内容的提问来源于stack exchange,提问作者Sawa
相关产品推荐
相关产品推荐

