'''

思路:使用百度的文本转音频API,将结果保存成mp3格式,并用mp3play库播放该文件。

'''

1 #-*- coding:utf-8 -*-

2 importsys3 importrequests4 importjson5 importmp3play6 importtime7

8 deftalk(info):9 appkey = "e5ccc9c7c8834ec3b08940e290ff1559"

10 headers ={11 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit'

12 '/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safar'

13 'i/537.36',14 }15 url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" %(appkey, info)16 content = requests.get(url, headers=headers)17 answer =json.loads(content.text)18 baidu_api = 'http://tts.baidu.com/text2audio?idx=1&tex={0}&cuid=baidu_speech_'\19 'demo&cod=2&lan=zh&ctp=1&pdt=1&spd=4&per=4&vol=5&pit=5'.format(answer['text'])20 res = requests.get(baidu_api, headers=headers)21 with open(r'E:\python_demo\tuling.mp3', 'wb') as f:22 f.write(res.content)23 return answer['text']24

25 defmain(info):26 info = info.decode('gb2312').encode('utf-8')27 answer =talk(info)28 mp3 = mp3play.load(r'E:\python_demo\tuling.mp3')29 mp3.play()30 time.sleep(min(40, mp3.seconds()))31 mp3.stop()32 try:33 print 'Tuling: %s' %answer34 exceptUnicodeEncodeError:35 print u'我说了个啥子哟。'

36

37 if __name__ == '__main__':38 print u'开始你的表演。'

39 whileTrue:40 info = raw_input('Studog:')41 if info == '88':42 break

43 main(info)

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐