开源 python 应用 开发(十三)AI应用--百度智能云TTS语音合成
最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。
链接:
开源 python 应用 开发(一)python、pip、pyAutogui、python opencv安装-CSDN博客
开源 python 应用 开发(二)基于pyautogui、open cv 视觉识别的工具自动化-CSDN博客
开源 python 应用 开发(三)python语法介绍-CSDN博客
开源 python 应用 开发(四)python文件和系统综合应用-CSDN博客
开源 python 应用 开发(五)python opencv之目标检测-CSDN博客
开源 python 应用 开发(六)网络爬虫-CSDN博客
开源 python 应用 开发(七)数据可视化-CSDN博客
开源 python 应用 开发(八)图片比对-CSDN博客
开源 python 应用 开发(九)目标跟踪-CSDN博客
开源 python 应用 开发(十)音频压缩-CSDN博客
开源 python 应用 开发(十一)AI应用--百度智能云ASR短语音转文本-CSDN博客
开源 python 应用 开发(十二)AI应用--百度智能云Agent聊天-CSDN博客
开源 python 应用 开发(十三)AI应用--百度智能云TTS语音合成-CSDN博客
推荐链接:
开源 Arkts 鸿蒙应用 开发(一)工程文件分析-CSDN博客
开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用-CSDN博客
开源 Arkts 鸿蒙应用 开发(三)Arkts的介绍-CSDN博客
开源 Arkts 鸿蒙应用 开发(四)布局和常用控件-CSDN博客
开源 Arkts 鸿蒙应用 开发(五)控件组成和复杂控件-CSDN博客
推荐链接:
开源 java android app 开发(一)开发环境的搭建-CSDN博客
开源 java android app 开发(二)工程文件结构-CSDN博客
开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客
开源 java android app 开发(四)GUI界面重要组件-CSDN博客
开源 java android app 开发(五)文件和数据库存储-CSDN博客
开源 java android app 开发(六)多媒体使用-CSDN博客
开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客
开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客
开源 java android app 开发(九)后台之线程和服务-CSDN博客
开源 java android app 开发(十)广播机制-CSDN博客
开源 java android app 开发(十一)调试、发布-CSDN博客
开源 java android app 开发(十二)封库.aar-CSDN博客
推荐链接:
开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客
开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-CSDN博客
开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客
开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-CSDN博客
开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-CSDN博客
本章内容为使用百度智能云将文本合成为语音的方法,其中多种速度语调等多种参数可以设置。
一、主要内容
使用使用百度语音合成API将文本转换为语音的Python程序。
二、API Key 和 Secret Key获取
进入百度智能云 -> 选择语音合成标准版 -> 选择开通付费,默认赠送10小时流量,不购买资源
-> 实名认证后获得,api key 和 secret key
在以下页面可以查看API Key 和 Secret Key
三、源代码分析
主要功能
文本转语音:将中文文本转换为wav格式的音频文件
API认证:通过百度API获取访问令牌
音频保存:将合成的音频保存为本地文件
代码结构分析
1. 导入模块
python
import requests # 用于发送HTTP请求
import urllib.parse # 用于URL编码
2. 全局变量
python
API_KEY = "" # 需要填写的百度API Key
SECRET_KEY = "" # 需要填写的百度Secret Key
3. 主函数 main()
设置API端点:https://tsn.baidu.com/text2audio
准备待转换的文本并进行URL编码
构建请求参数,包括语速、音调、音量等设置
发送POST请求获取音频数据
保存音频文件为output.wav
4. 认证函数 get_access_token()
调用百度OAuth接口获取访问令牌
使用client_credentials授权模式
返回access_token用于后续API调用
参数说明
tex: URL编码后的文本
tok: 访问令牌
cuid: 用户唯一标识
ctp: 客户端类型(1为web)
lan: 语言(zh为中文)
spd: 语速(0-15,5为适中)
pit: 音调(0-15,5为适中)
vol: 音量(0-15,5为适中)
per: 发音人(0为默认女声)
aue: 音频格式(6为mp3)
以下为源码:
import requests
import urllib.parseAPI_KEY = "***"
SECRET_KEY = "***"def main():try:url = "https://tsn.baidu.com/text2audio"# 准备文本并编码text = "这是一段测试代码啊,百度云也能听清楚我讲的是什么吗?"encoded_text = urllib.parse.quote(text)# 构建请求参数params = {'tex': encoded_text,'tok': get_access_token(),'cuid': 'cmClbqGBAL3Mi8RSdREgdAl1uRJJXbZG','ctp': 1,'lan': 'zh','spd': 5, # 调整为适中语速'pit': 5, # 调整为适中音调'vol': 5, # 调整为适中音量'per': 0, # 使用默认发音人'aue': 6 # mp3格式}headers = {'Content-Type': 'application/x-www-form-urlencoded','Accept': 'audio/mp3'}# 发送请求response = requests.post(url, data=params, headers=headers)# 检查响应if response.status_code == 200:# 保存音频文件with open('output.wav', 'wb') as f:f.write(response.content)print("语音合成成功,已保存为 output.wav")else:print(f"请求失败,状态码: {response.status_code}")print(f"错误信息: {response.text}")except Exception as e:print(f"程序执行出错: {e}")def get_access_token():"""获取百度API访问令牌"""try:url = "https://aip.baidubce.com/oauth/2.0/token"params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}response = requests.post(url, params=params)response.raise_for_status()token = response.json().get("access_token")if not token:raise ValueError("未能获取到access_token")return tokenexcept Exception as e:print(f"获取access_token失败: {e}")return Noneif __name__ == '__main__':main()
三、效果演示
将录音文件test.wav文件放到和python文件同一个目录,运行效果如下,生产了16K频率的音频文件。