【语音合成】百度tts调用

3.1 获取百度密钥
  1. 访问:https://console.bce.baidu.com/ai/
  2. 登录百度账号
  3. 点击【语音技术】→【语音合成】
  4. 点击【创建应用】
  5. 填写应用名称(如:听写小程序)
  6. 创建成功后,复制 API KeySecret Key

短文本在线合成

请求方式及参数基本说明

语音合成接口支持 POST 和 GET两种方式, 推荐POST方式请求。 正式地址:http://tsn.baidu.com/text2audiohttps://tsn.baidu.com/text2audio

POST 方式(推荐), 文本不超过120 GBK字节,即60个汉字 或者字母数字。

GET 方式,拼接后的url总长度不多于1000个字符。

如需合成更长文本,推荐使用长文本在线合成。长文本在线合成可将10万字以内文本一次性合成,异步返回音频。支持多种优质音库,将超长文本快速转换 成稳定流畅、饱满真实的音频。适用于阅读听书、新闻播报等客户。

请求方式和参数

上传参数

参数 必选 描述
tex 需要合成的文本内容,采用UTF-8编码。长度限制:不超过60个汉字或字母数字组合。注意:文本在百度服务器转换为GBK编码后,字节数需小于120。如需合成更长文本,建议使用长文本在线合成功能。
tok 开发者access_token,需从开放平台获取(详见上文"鉴权认证机制"部分)
cuid 用户唯一标识符,用于UV值统计。推荐使用能区分用户的设备标识(如MAC地址或IMEI码),长度不超过60个字符
ctp 客户端类型标识,web端固定值为1
lan 语言选项,固定值zh。当前仅支持中英文混合模式
spd 语速调节参数,取值范围0-15,默认值5表示中等语速
pit 音调调节参数,取值范围0-15,默认值5表示中等音调
vol 音量调节参数,取值范围0-15,默认值5表示中等音量(注:0为最小音量值,并非静音)

音库选择参数

参数 可选值 说明
per(基础音库) 度小美=0 度小宇=1 度逍遥(基础)=3 度丫丫=4 基础音库选项
per(精品音库) 度逍遥(精品)=5003 度小鹿=5118 度博文=106 度小童=110 度小萌=111 度米朵=103 度小娇=5 精品音库选项
aue 3为mp3格式(默认); 4为pcm-16k; 5为pcm-8k; 6为wav(内容同pcm-16k); 注意aue=4或者6是语音识别要求的格式,但是音频内容不是语音识别要求的自然人发音,所以识别效果会受影响。

示例代码:

python 复制代码
import requests

API_KEY = "xxxx"
SECRET_KEY = "xxxx"

def main():
        
    url = "https://tsn.baidu.com/text2audio"
    
    payload='tex=%E4%BD%A0%E5%A5%BD%EF%BC%8C%E4%BB%8A%E5%A4%A9%E8%BF%87%E5%BE%97%E6%80%8E%E4%B9%88%E6%A0%B7&tok='+ get_access_token() +'&cuid=8k04do10mFyJCdWp0FYtnTizcgwUjvCO&ctp=1&lan=zh&spd=5&pit=1&vol=1&per=4115&aue=3'
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept': '*/*',
        'cuid': '6hNM0P4h3xq7tcuG8CLAIddCS2N7xFo8'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload.encode("utf-8"))
    
    response.encoding = "utf-8"
    print(response.text)
    

def get_access_token():
    """
    使用 AK,SK 生成鉴权签名(Access Token)
    :return: access_token,或是None(如果错误)
    """
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
    return str(requests.post(url, params=params).json().get("access_token"))

if __name__ == '__main__':
    main()


解码base64音频数据就可以播放了

const audioUrl = decodeBase64Audio(data.audio_data, data.content_type);

参考官方文档:https://console.bce.baidu.com/support/?timestamp=1776591548702#/api?product=AI&project=%E8%AF%AD%E9%9F%B3%E6%8A%80%E6%9C%AF&parent=%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90&api=text2audio&method=post

相关推荐
apihz18 小时前
台风实时与历史详情查询免费 API 接口完整教程
android·开发语言·tcp/ip·dubbo·台风·天气预报
TMT星球2 天前
2026中国互联网大会医疗AI分论坛举办,轻松健康发布“证音”并落地多个战略合作
人工智能·搜索引擎·百度
滴图客户服务经理4 天前
出行APP里的“预计到达时间“是怎么算出来的?
大数据·经验分享·百度
KaMeidebaby5 天前
卡梅德生物技术快报|蛋白的叠氮基修饰:实操解析:核酸模板耦合蛋白的叠氮基修饰实现靶蛋白定点共价标记
前端·人工智能·物联网·算法·百度
Lemomate-AI6 天前
Lemos知识库-AI+知识图谱驱动智能脑进化
百度·微信公众平台·facebook·twitter·新浪微博
AI数据皮皮侠7 天前
地级市企业与个体户年度注册量数据集
大数据·python·深度学习·机器学习·dubbo
KaMeidebaby7 天前
卡梅德生物技术快报|蛋白 N 端测序在重组贻贝融合蛋白表征中的应用,解决原核表达序列偏移工艺难题
前端·人工智能·物联网·算法·百度
ShiXZ2137 天前
PDF-OCR文件识别篇(八):配置、运维与排错
java·运维·ocr·dubbo·springboot
2601_9618451525 天前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
zhuzicc25 天前
Dubbo @Autowired 注入同模块接口,到底走的是本地调用还是 RPC?源码给你答案(Dubbo @Service注解的双重注册机制)
rpc·autowired·dubbo·依赖注入·java面试·spring ioc·dubbo源码分析