1.把本地文字传递给百度语音接口,返回语音mp3
2.将mp3保存到本地
3.用pyglet播放此语音
#-*- coding: UTF-8 -*- import pyglet import hashlib import time import urllib.request from urllib.request import quote import os.path tok='24.6a0ecfcf511a91e5fb6c9f9ef980b0d6.2592000.1462188570.282335-7953574'#你的token,一个月一授权 def downmp3(txt): h5 = hashlib.md5() h5.update(txt.encode('utf-8')) m5=h5.hexdigest() if os.path.exists(m5+'.mp3'): return m5+'.mp3' else: url='http://tsn.baidu.com/text2audio?tex='+quote(txt)+'&lan=zh&cuid=1qazxsw23edcvfr4&ctp=1&tok='+tok request = urllib.request.Request(url) response = urllib.request.urlopen(request) savePath=m5+'.mp3'#此文件保存最新下载的 f = open(savePath,'wb') f.write(response.read()) f.close() return savePath def exit_callback(dt): pyglet.app.exit() def answer(atxt): mp3file=downmp3(atxt) time.sleep(5) music = pyglet.media.load(mp3file) #music = pyglet.resource.media(mp3file) #music = pyglet.resource.media(mp3file) music.play() pyglet.clock.schedule_once(exit_callback, music.duration) pyglet.app.run() answer('你好') answer('你好啊') answer('你好吗')
pyglet需要avbin.dll,附件已经包含
经测试有一个问题,文件还没完成保存,读取的时候,就会报错