上云无忧 > 文档中心 > 百度智能云语音合成简单教程
语音合成
百度智能云语音合成简单教程

文档简介:
实现步骤: 只需三步,1小时内即可完成语音合成接口的调用,让您的应用“开口说话”。 Step1:成为百度AI开放平台的开发者 要调用百度AI开放平台的语音合成能力先要成为百度AI开放平台的开发者,首先让我们花5分钟来注册百度AI开放平台的开发者,并新建一个百度语音合成应用。 先点击此处注册百度账户进入 如下图 的页面快速的建立一个百度账号吧。 【百度智能云】在线语音合成 【百度智能云】离线语音合成 定制音库
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

实现步骤

只需三步1小时内即可完成语音合成接口的调用,让您的应用“开口说话”。

Step1:成为百度AI开放平台的开发者

要调用百度AI开放平台的语音合成能力先要成为百度AI开放平台的开发者,首先让我们花5分钟来注册百度AI开放平台的开发者,并新建一个百度语音合成应用。

先点击此处注册百度账户进入 如下图 的页面快速的建立一个百度账号吧。  我们有账号之后登录,并且点击此处创建一个应用,如下图   

然后就能看到创建完的应用和 API KEY 以及 Secret KEY

Step2:领取免费额度

创建完应用后,可以到概览页领取语音合成的免费额度。免费额度说明详见语音合成免费额度文档 

Step3:准备数据

语音合成是将文本转换为可以播放的音频文件的服务,我们从大姚的订单库中找一段订单信息的文本如下:

三分钟前,由北京市顺义区二经路与二纬路交汇处北侧,北京首都国际机场T3航站楼 去往 东城区北三环东路36号喜来登大酒店(北京金隅店)

Step4: 编写一个示例程序

第一步API KEY 以及 Secret KEY第二步领取的免费额度,以及第三步的数据,我们就可以写一个示例代码调用百度AI开放平台的语音合成能力

准备开发环境

大姚选择用python来快速搭建一个原型,那我们就安装以下python。可以参考下表列出的不同操作系统的安装方法进行安装。

Python的官方下载地址:下载python 

Windows 快速测试包

windows平台的用户如果对上述的python安装感到困难,可以下载我们的一键测试包,下载地址:windows测试包。

解压zip文件后,双击run.bat即可测试。

编写代码

新建一个 main.py

粘贴以下内容,不要忘记替换你的 API_KEY 以及 SECRET_KEY

# coding=utf-8

import sys
import json

# 保证兼容python2以及python3
IS_PY3 = sys.version_info.major == 3
if IS_PY3:
    from urllib.request import urlopen
    from urllib.request import Request
    from urllib.error import URLError
    from urllib.parse import urlencode
    from urllib.parse import quote_plus
else:
    import urllib2
    from urllib import quote_plus
    from urllib2 import urlopen
    from urllib2 import Request
    from urllib2 import URLError
    from urllib import urlencode

# 替换你的 API_KEY
API_KEY = 'nu9r2plGFi3s1ugayDPSM6Mk'

# 替换你的 SECRET_KEY
SECRET_KEY = 'G62YGnq84eKTqu0mBgvdpmC6gNBzHdai'

# 大姚的订单信息内容文本
TEXT = "三分钟前,由北京市顺义区二经路与二纬路交汇处北侧,北京首都国际机场T3航站楼 去往 东城区北三环东路36号喜来登大酒店(北京金隅店)"



TTS_URL = 'http://tsn.baidu.com/text2audio'

"""  TOKEN start """

TOKEN_URL = 'http://openapi.baidu.com/oauth/2.0/token'


"""
    获取token
"""
def fetch_token():
    params = {'grant_type': 'client_credentials',
              'client_id': API_KEY,
              'client_secret': SECRET_KEY}
    post_data = urlencode(params)
    if (IS_PY3):
        post_data = post_data.encode('utf-8')
    req = Request(TOKEN_URL, post_data)
    try:
        f = urlopen(req, timeout=5)
        result_str = f.read()
    except URLError as err:
        print('token http response http code : ' + str(err.code))
        result_str = err.read()
    if (IS_PY3):
        result_str = result_str.decode()


    result = json.loads(result_str)

    if ('access_token' in result.keys() and 'scope' in result.keys()):
        if not 'audio_tts_post' in result['scope'].split(' '):
            print ('please ensure has check the tts ability')
            exit()
        return result['access_token']
    else:
        print ('please overwrite the correct API_KEY and SECRET_KEY')
        exit()


"""  TOKEN end """

if __name__ == '__main__':

    token = fetch_token()

    tex = quote_plus(TEXT)  # 此处TEXT需要两次urlencode

    params = {'tok': token, 'tex': tex, 'cuid': "quickstart",
              'lan': 'zh', 'ctp': 1}  # lan ctp 固定参数

    data = urlencode(params)

    req = Request(TTS_URL, data.encode('utf-8'))
    has_error = False
    try:
        f = urlopen(req)
        result_str = f.read()

        headers = dict((name.lower(), value) for name, value in f.headers.items())

        has_error = ('content-type' not in headers.keys() or headers['content-type'].find('audio/') < 0)
    except  URLError as err:
        print('http response http code : ' + str(err.code))
        result_str = err.read()
        has_error = True

    save_file = "error.txt" if has_error else u'大姚的订单信息.mp3'

    with open(save_file, 'wb') as of:
        of.write(result_str)

    if has_error:
        if (IS_PY3):
            result_str = str(result_str, 'utf-8')
        print("tts api  error:" + result_str)

    print("file saved as : " + save_file)

运行代码

在命令行中运行python main.py

结果

代码运行成功后,在main.py的同级目录中会产生一个 大姚的订单信息.mp3 文件,大姚打开一听觉得这就是他想要的效果,让我们一起来听听看:


相似文档
  • 您可以在我们的官方github上下载示例源码: https://github.com/Baidu-AIP/QuickStart/tree/master/TTS 更丰富的应用场景: 除上文提到的订单播报场景外,语音合成还可以集成到阅读类app中实现听书的功能,将文字载体转换为声音载体,让AI把文本内容读给您听,释放您的双手和双眼,获得更极致的阅读体验。 【百度智能云】在线语音合成 【百度智能云】离线语音合成 定制音库
  • Android SDK快速集成指南 只需四步,1小时内即可完成离线语音合成SDK的应用集成,让您的应用获得稳定一致的合成体验。 Step1:成为百度AI开放平台的开发者 要调用百度AI开放平台的语音合成能力先要成为百度AI开放平台的开发者,首先让我们花5分钟来注册百度AI开放平台的开发者,并新建一个百度语音合成应用。 【百度智能云】在线语音合成 【百度智能云】离线语音合成 定制音库
  • 在线语音合成目前有短文本在线合成及长文本在线合成2个产品。 短文本在线合成计费方式: 按次数包预付费:适合业务中对语音合成服务需求量较明确的用户选择,用户可同时购买多个次数包叠加使用。 按调用量后付费:适合对语音合成需求量尚处于探索期的用户选择,也可作为“按次数包预付费”付费方式的兜底方案。 【百度智能云】在线语音合成 定制音库
  • 离线语音合成SDK可直接在设备终端进行语音合成,无论何种网络状态(有网、无网、弱网),均可以使用离线合成,为您提供稳定一致、流畅自然的合成体验。 产品形态: 离线语音合成SDK包括Android和iOS两个版本。每个版本均有两种不同的授权方式。 授权方式一:按设备数授权(授权序列号与终端设备是1:1的关系) 适用于儿童故事机、服务机器人等智能硬件终端集成场景。 【百度智能云】离线语音合成 定制音库
  • 长文本在线合成接口可以将10万字以内文本一次性合成,异步返回音频。支持多种优质音库,将超长文本快速转换成稳定流畅、饱满真实的音频。适用于阅读听书、新闻播报等客户。 应用场景: 阅读听书:万字小说一次性合成,可反复播放,给用户带来更流畅、更稳定的听书体验。 新闻播报:长篇稿件批量快速合成,释放播音员人力,保障新闻生产时效性。 【百度智能云】在线语音合成 定制音库
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部