上一节,我们介绍了让电脑认出菜品,这一节,我们介绍下文字怎么转成语音。
语音转文字,已经非常多了,各大聊天社交软件都有,甚至手机电脑出厂时就已经带有这样的功能了。而文字转语音相对就比较少,我们能自己做一个吗?答案当然是肯定的。
为了简单,我们依然使用 python 调用百度的人工智能 API 实现,同上一节一样,依然是分两步走:
1. 获取 token
获取token需要两个 key
,即 API Key(AK)
Secret Key(SK)
。得到两个 key 后,即可利用下面这个网址获取 token
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【AK】&client_secret=【SK】
注册百度AI帐号,即可免费获得 AK
和 SK
。
以下是 python 代码,文件名 token.py
# encoding:utf-8
import urllib, urllib2, sys
import ssl, json
AK = "TwAxxxxxxxxxxxxxxxxxxxxZn" # 官网获取的 AK
SK = "nExxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXF" # 官网获取的 SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials'\
'&client_id=%s'\
'&client_secret=%s' % (AK, SK)
def GetToken():
request = urllib2.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib2.urlopen(request)
content = response.read()
if (content):
js = json.loads(content)
return js['access_token']
return None
代码非常简单,就是把网址添加上 AK
和 SK
, 带上 http 头,访问之,最终解析 json 数据而已。更加详细的信息可参照上一讲 : 让电脑认出菜品。
2. 识别
拿到 token
后,就非常简单了,直接访问以下网址即可:
http://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=abcdxxx&tok=【你的token】&tex=【要合成语音的文字】&vol=9&per=0&spd=5&pit=5
上面的链接,有以下参数可以调节:
- 音量:vol=9
- 语速:spd=5
音调:pid=5
per 选填 发音人选择, 0为普通女声,1为普通男生,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女声
直接用浏览器,就可以获得合成的语音:
当然,我们这里也是要上代码的:
# encoding:utf-8
import base64
import urllib, requests
from urllib import quote
import urllib2, json
from token import GetToken
def GetSpeech(token, text):
rqt = "http://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=abcdxxx&tok=%s&tex=%s&vol=9&per=0&spd=5&pit=5" % (token, urllib.quote(text))
data_get = requests.get(rqt).content
fp = open("test.mp3", "w+") # 我们将合成的语音写到文件 test.mp3
fp.write(data_get)
fp.close
if __name__ == "__main__":
GetSpeech(GetToken(), "向日葵智能") # 以合成“向日葵智能”为例
这里放上最终合成的语音,大家可以听听:语音合成结果试听(向日葵智能)
[…] python实战小项目,深度学习合成语音,调用百度人工智能 API 实现 […]
[…] python实战小项目,深度学习合成语音,调用百度人工智能 API 实现 […]
[…] python实战小项目,深度学习合成语音,调用百度人工智能 API 实现 […]
[…] python实战小项目,深度学习合成语音,调用百度人工智能 API 实现 […]
[…] python实战小项目,深度学习合成语音,调用百度人工智能 API 实现 […]