基本上我想要的是 python 3 中的 TTS ......我已经尝试过 pyttsx 但显然它只适用于 python 2 我也已经尝试过其他东西......现在我正在尝试使用来自voicerss.org的 api但我不能弄清楚如何 HTTP GET 它然后用 python 和 pyglet 玩它......
到目前为止,这是我的代码:
import pyglet
import urllib3
http = urllib3.PoolManager()
speechrequest = http.request('GET', 'http://api.voicerss.org/?key=04f49802d32d442ca997d4d2ea76d3d5&hl=pt-pt&c=wav&src=texto')
speech = pyglet.media.load(speechrequest)
speech.play()
pyglet.app.run()
错误是:
Traceback (most recent call last):
File "C:/Users/Diogo/Documents/test.py", line 6, in <module>
speech = pyglet.media.load(speechrequest)
File "C:\Users\Diogo\AppData\Local\Programs\Python\Python35\lib\site-packages\pyglet\media\__init__.py", line 1429, in load
source = get_source_loader().load(filename, file)
File "C:\Users\Diogo\AppData\Local\Programs\Python\Python35\lib\site-packages\pyglet\media\__init__.py", line 1410, in load
return riff.WaveSource(filename, file)
File "C:\Users\Diogo\AppData\Local\Programs\Python\Python35\lib\site-packages\pyglet\media\riff.py", line 185, in __init__
file = open(filename, 'rb')
TypeError: invalid file: <urllib3.response.HTTPResponse object at 0x0000002EB0730D30>
我猜它没有将 wav 文件返回给 python 不知道为什么,因为。如果我在 Internet Explorer 中输入“ http://api.voicerss.org/?key=04f49802d32d442ca997d4d2ea76d3d5&hl=pt-pt&c=wav&src=texto ”,它会返回一个 wav 文件...
所以,我的问题是:
我在代码上做错了什么,或者如果不可能这样,python 怎么说话?
请耐心等待我,我只有 18 岁,我不会说英语,因为我是葡萄牙人...