对于我的程序,我需要一个由Google文字转语音转换的文字字段。

我找到了一个可以很好地做到这一点的API(gTTSdocs),但是我确实需要找到一种播放音频而不将其保存为本地文件的方法。
此刻我的代码是这样的(我从AudioSegment导入了pydub):

FileToPlay = io.BytesIO()
tts = gTTS(SecondText, lang = SecondLanguageVoice)
tts.write_to_fp(FileToPlay)
FileToPlay.read()
SoundToPlay = AudioSegment.from_mp3(io.BytesIO(FileToPlay))
play(SoundToPlay)

但是,变量类型不是预期的类型,因为会带来以下错误:
TypeError: a bytes-like object is required, not '_io.BytesIO'

我试图查看是否可以将变量转换为类似字节的对象,但到目前为止我什么都没找到。有没有什么?

最佳答案

对于您有关转换为类似字节的对象的问题,我没有任何答案。但是直接播放可以通过使用pyglet完成
我写了以下几行,以便您自己进行测试!

from gtts import gTTS
from io import BytesIO
import pyglet

myMP3 = BytesIO()
tts = gTTS(text='Sound Check 1, 2, 3!', lang='en', slow=False)
tts.write_to_fp(myMP3)
myMP3.seek(0)

test = pyglet.media.load(None, file=myMP3, streaming=False)
test.play()
pyglet.app.run()

09-07 17:43