安装好AipSpeech后就可以直接上代码了,很简单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| from aip import AipSpeech
""" 你的 APPID AK SK 在百度云控制台中可以获取,目前可以免费体验""" APP_ID = 'your ID' API_KEY = 'your KEY' SECRET_KEY = 'your SECRET_KEY'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
text = '白皮书说,党的十八大以来,中国的核安全事业进入安全高效发展的新时期。在核安全观引领下,中国逐步构建起法律规范、行政监管、行业自律、技术保障、人才支撑、文化引领、社会参与、国际合作等为主体的核安全治理体系,核安全防线更加牢固。'
result = client.synthesis(text, 'zh', 1, { 'vol': 5, })
if not isinstance(result, dict): with open('audio.mp3', 'wb') as f: f.write(result)
|
运行过后会生成一个audio.mp3
文件,打开就可以听到文字转语音的内容了。
以为这样就完了?不不不
我们要实现的终极目标是在微信打字聊天就可以自动转为我们自己的音色语音发送给对方。。。
额,也不是很绕口,就是难就难在使用自己的音色,毕竟懒得开口嘛。。。额也许有其他不能开口的客观原因呢。比如:
- 在公交车/地铁上人多不方便语音
- 在图书馆看书不方便回复语音又不想跑外面去
- 在你心情不好不想说话又不得不哄的时候|ू・ω・` )
等等,还有很多实用场景,这里就不一一举例了。至于实现的难点嘛,则有:
- 使用自己的音色,自己录制几个小时的甚至更长时间的朗读音频用作训练。。。
- 如何嵌入到微信用,毕竟微信没那么大方。。。
- 还有就是一些安全问题,自己的独特声线容易泄露被其他人利用。。。
解决方案
在网上溜了一圈,就看到这个老哥的一篇,不得不说微软的TTS是真的强。。。
https://zhuanlan.zhihu.com/p/49711377
而我想的解决方案是,在本地生成这个audio.mp3
文件后发送一个链接给对方(在微信中),ta打开自动播放也就能听到我们的声音了。鉴于目前没有可以支付美刀的信用卡,不能注册使用Azure,所以只能先用百度这个凑合着用吧,先自己挖一个坑,以后有时间再填。。。over
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| from aip import AipSpeech import time
def TextToSpeech(text): """ 你的 APPID AK SK """ APP_ID = 'your ID' API_KEY = 'your KEY' SECRET_KEY = 'your SECRET_KEY'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
result = client.synthesis( text, 'zh', 1, { 'vol':5, 'spd':5, 'pit':5, 'per':5003 } )
filename = 'static/music/' + str(time.time()) + '.mp3'
if not isinstance(result, dict): with open(filename, 'wb') as f: f.write(result)
return filename
if __name__ == "__main__": text = "我就是随便测试一下啦" filenname = TextToSpeech(text) print(filenname)
|