最近有个项目需要做视觉自动化处理的工具,最后选用的软件为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 应用 开发(十一)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.parse
API_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 token
except Exception as e:
print(f"获取access_token失败: {e}")
return None
if __name__ == '__main__':
main()
三、效果演示
将录音文件test.wav文件放到和python文件同一个目录,运行效果如下,生产了16K频率的音频文件。