python实战小项目,深度学习合成语音,调用百度人工智能 API 实现

上一节,我们介绍了让电脑认出菜品,这一节,我们介绍下文字怎么转成语音。

语音转文字,已经非常多了,各大聊天社交软件都有,甚至手机电脑出厂时就已经带有这样的功能了。而文字转语音相对就比较少,我们能自己做一个吗?答案当然是肯定的。

为了简单,我们依然使用 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帐号,即可免费获得 AKSK

以下是 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

代码非常简单,就是把网址添加上 AKSK, 带上 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
已有 5 条评论
  1. […] python实战小项目,深度学习合成语音,调用百度人工智能 API 实现 […]

  2. […] python实战小项目,深度学习合成语音,调用百度人工智能 API 实现 […]

  3. […] python实战小项目,深度学习合成语音,调用百度人工智能 API 实现 […]

  4. […] python实战小项目,深度学习合成语音,调用百度人工智能 API 实现 […]

  5. […] python实战小项目,深度学习合成语音,调用百度人工智能 API 实现 […]

添加新评论

icon_redface.gificon_idea.gificon_cool.gif2016kuk.gificon_mrgreen.gif2016shuai.gif2016tp.gif2016db.gif2016ch.gificon_razz.gif2016zj.gificon_sad.gificon_cry.gif2016zhh.gificon_question.gif2016jk.gif2016bs.gificon_lol.gif2016qiao.gificon_surprised.gif2016fendou.gif2016ll.gif