为什么我必须暂停gtts才能听到声音

  • 本文关键字:声音 gtts 暂停 python gtts
  • 更新时间 :
  • 英文 :


我曾让这个脚本使用gtts从文本中听到音频,而不必使用BytesIo保存mp3,但现在如果我不在末尾放一个time.sleep,我就听不到声音。为什么?有没有不同于暂停到底的解决方案?

from gtts import gTTS
from io import BytesIO
import pygame
import time
def speak(text, language='en'):
mp3_fo = BytesIO()
tts = gTTS(text, lang=language)
tts.write_to_fp(mp3_fo)
return mp3_fo
pygame.init()
pygame.mixer.init()
# sound.seek(0)
sound = speak("Python is cool always")
pygame.mixer.music.load(sound, 'mp3')
pygame.mixer.music.play()
time.sleep(5)

可能是因为主线程在声音播放之前就结束了。你可以尝试在另一个线程中执行你的.play((,并命令主线程等待这个线程的结束?

最新更新