Python,需要播放从文本转语音API提取的音频,但我无法将其转换为类似字节的对象。

3

为了我的程序,我需要一个通过Google文字转语音朗读的文本框。

我找到了一个能够很好地实现这一点的API(gTTS文档),但我真的需要找到一种在不将其保存为本地文件的情况下播放音频的方法。 目前我的代码是这样的(我从pydub导入了AudioSegment):

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'

我尝试着将我的变量转换为类似于字节的对象,但是到目前为止我没有找到任何方法。有什么办法吗?

1个回答

2
我无法回答有关将其转换为类似字节的对象的问题。但是,可以通过使用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()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接