一直很憧憬钢铁侠的电子管家贾维斯,然而现实很骨感,技术还很远...今天先用Python做一个简单的文字转语音的测试。
实现文字转语音比较简单,有两种方式:一种是由单个文字的语音文件拼接,这种方式不受网络限制,方便快捷,但是合成的音质较差没有音调。具体做法可以参考https://zhuanlan.zhihu.com/p/28629057。另一种方法是通过讯飞、百度等提供的API,合成音质较好,但是有次数限制,不过自己用完全够用。本次以百度语音为例。
首先进入百度语音网站(https://console.bce.baidu.com/ai)注册语音应用(免费),获取APP_ID, API_KEY, SECRET_KEY。
根据官方用例测试:
fromaipimportAipSpeech
""" 你的 APPID AK SK """
APP_ID ='*********'
API_KEY ='************'
SECRET_KEY ='********************'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
result = client.synthesis('舍利子,是诸法空相,不生不灭,不垢不净,不增不减。是故空中无色,无受想行识,无眼耳鼻舌身意,无色声香味触法,无眼界乃至无意识界,无无明亦无无明尽,乃至无老死,亦无老死尽,无苦集灭道,无智亦无得,以无所得故,菩提萨埵。','zh',1, {
'vol':5,})
# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if notisinstance(result,dict):
withopen('test.mp3','wb')asf:
f.write(result)