当前位置: 首页 > news >正文

开源 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频率的音频文件。

http://www.xdnf.cn/news/1368055.html

相关文章:

  • vscode 配置 + androidStudio配置
  • uniapp 自动升级-uni-upgrade-center
  • 复盘一个诡异的Bug之FileNotFoundException
  • 【实时Linux实战系列】实时信号处理在通信中的应用
  • leetcode-python-383赎金信
  • 为什么选择爱普生TG5032CFN温补晶振—可穿戴设备?
  • MATLAB Figure画布中绘制表格详解
  • PySINDy
  • 扩展现有的多模块 Starter
  • 【yocto】Yocto Project 核心:深入了解.bbclass文件
  • DevSecOps 集成 CI/CD Pipeline:实用指南
  • OnlyOffice ARM 架构编译教程
  • Hive的核心架构
  • 科普 | 5G支持的WWC架构是个啥(1)?
  • Spring Boot 集成 Docker 构建与发版完整指南
  • Netty源码—性能优化和设计模式
  • (vue)el-progress左侧添加标签/名称
  • 机器视觉学习-day02-灰度化实验
  • 【云计算】云原生(Cloud Native)
  • Spark云原生流处理实战与风控应用
  • 【云原生】CentOS安装Kubernetes+Jenkins
  • 【语法】【C+V】本身常用图表类型用法快查【CSDN不支持,VSCODE可用】
  • 云计算学习笔记——Linux硬盘、硬盘划分、交换空间、自动挂载篇
  • CentOS 7服务器初始化全攻略:从基础配置到安全加固
  • Redis ZSET 深度剖析:从命令、原理到实战
  • 几种方式实现文件自动上传到服务器共享文件夹
  • NVIDIA GPU 中的 L2 Cache
  • 【Linux】Socket编程——TCP版
  • 深入OpenHarmony后台任务“黑匣子”:BackgroundTaskMgr框架全栈解析与实战避坑指南
  • Thingsboard 租户管理员权限,增加租户普通用户权限