php文本转语音mp3api源代码,小说文本转音频(百度AI语音合成接口)
今天带来的是百度AI的一个语音合成接口,它的主要功能是将接收到的文本内容,转换为音频数据返回。
我实现的大致流程为:
1 - 爬取小说文本内容(本篇不涉及)
2 - 调用百度AI语音合成接口,将文本内容转换为音频数据,并保存到本地文件夹
3 - 获取该文件夹内的文件名
4 - 将所有音频文件合并为一个output音频文件
使用工具:python环境、aip(百度AI)、pydub、os
环境准备:
1. 百度AI语音合成接口的应用创建
- 使用语音合成
- 领取免费试用权益
- 创建语音合成应用
2. 在你的python环境中安装第三方库
- 安装百度AI的一个python库 -- aip:pip install baidu-aip
- 安装合并音频文件时,需要用到的库 -- pydub:pip instal pydub
- 下载安装pydub所需要软件依赖 -- FFMPEG官网
- 安装FFMPEG后,将FFMPEG的 bin 目录加入系统的环境变量
源码讲解环节
好的,环境都准备好后,下面就是喜闻乐见的源码讲解环节了(´◔౪◔)
百度AI语音合成-小说文字转音频.py
from aip import AipSpeech
""" 你的 APPID AK SK """
APP_ID = '' # 你的APPID
API_KEY = '' # 你的API_KEY
SECRET_KEY = '' # 你的SECRET_KEY
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
with open('1.txt', 'r', encoding='utf-8')as file:
flag = 0
while True:
flag += 1
string = file.read(1023)
if not string:
break
# string为需要转化的文字,但最大长度需要小于1024个字节,且编码需要为utf-8
result = client.synthesis(string, 'zh', 1, {
'vol': 7, #音量,取值0-15,默认为5中音量
'spd': 4, #语速,取值0-9,默认为5中语速
'pit': 7, #音调,取值0-9,默认为5中语调
'per': 1, #发声人,0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女
})
# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
with open(r'video/{}.mp3'.format(str(flag)), 'wb') as f:
f.write(result)
print('第{}段已转化完成....'.format(flag))
# // 成功返回二进制文件流
# // 失败返回
# {
# "err_no":500,
# "err_msg":"notsupport.",
# "sn":"abcdefgh",
# "idx":1
# }
音频拼接.py
from pydub import AudioSegment
import zzzzzz常用方法.获取文件夹下的所有文件名 as a
# 路径
root_files_list = a.file_name(r"F:\桌面\6-python车间\029-百度AI语音合成-小说文字转音频\video")
print(root_files_list)
files_list = []
for i,j in root_files_list.items():
# print(i) # .\\video\\
# print(j) # ['1.mp3', '2.mp3', '3.mp3']
for k in j:
files_list.append(i + '\\' + k)
print(files_list)
# locals() 函数会以字典类型返回当前位置的全部局部变量,相当于就是存放所有变量的表吧,我们可以在这个表里面创建一个字典的key,然后再把他声明为对象
prepare_data = locals()
# 但这里如果导入的文件名有不是mp3后缀的,则会报错,测试时应保证仅有需要拼接的mp3,或者在前面文件名获取的模块进行过滤
# 使用AudioSegment时,需要先设置好ffmpeg的环境变量
output_music = 0
for i in range(len(files_list)):
prepare_data['input_music_' + str(i)] = AudioSegment.from_mp3(files_list[i])
output_music += prepare_data['input_music_' + str(i)]
output_music.export(".\\output_video\\output_music.mp3", format="mp3")
获取文件夹下的所有文件名.py
import os
def file_name(file_dir):
# files_list = []
root_files_list = {}
for root, dirs, files in os.walk(file_dir):
#print(root) # 当前目录路径
#print(dirs) # 当前路径下所有子目录
#print(files) # 当前路径下所有非目录子文件
root_files_list['{}'.format(root)] = files
#返回地址与地址所对应的非目录子文件关系的字典
return root_files_list
# 类似于:{'F:\\桌面\\6-python车间\\029-百度AI语音合成-小说文字转音频\\video': ['1.mp3', '2.mp3', '3.mp3']}
效果展示
蔬菜包我也放到了我的百度云了:蔬菜包
链接:https://pan.baidu.com/s/1Mrwe9AognHgqKURNztwtzQ
提取码:a9xv
那么本次的分享就到这里了,喜欢的话麻烦点赞关注一下;不喜欢的话可以去看下小编的其他文章,肯定有喜欢的;都不喜欢的话可以点个关注,万一以后有喜欢的呢(๑•̀ㅂ•́)و✧
你点了吗◔ ‸◔?
php文本转语音mp3api源代码,小说文本转音频(百度AI语音合成接口)相关推荐
- MS-TTS/Edge-TTS免费文本转语音,一键合成导出MP3音频
原文:MS-TTS/Edge-TTS免费文本转语音,一键合成导出MP3音频_治廷君 注意:本工具完全免费,所以不提供任何售后服务及咨询,有问题请看教程或阅读下方文档自行解决,关于BUG,公众号后台回复 ...
- 基于百度AI语音合成,使用python编写的语音朗读工具
最近要考研,要阅读大量的书籍,希望读PDF文档的时候,能滑动一段文字后,电脑能自动读出声,这样就懒得自己读了. 因为电脑上的各种软件太过拉胯,所以自己写了一个在电脑上滑动取词的有声阅读. 如果需要的话 ...
- 【百度AI语音合成】会员到访门店语音提醒
每次会员到访都需要.会员自主结账或找导购才能被发现.或者需要一个人员站在门口,并且对会员都全部了解,才能对会员到访进行更好服务的接待. 小帅为了免去这些操作呢.就想到了百度AI.语音合成.再结合第三方 ...
- html识别文字转语音,万能君工具箱v1.8 - 基于百度AI实现语音转文字/文字转语音/文字识别OCR/翻译...
一.需求分析 1.音频转文字:目前市面上的音频转文字大多收费.音频转文字的需求是:上传一段音频,直接识别成文字,对于会议记录的比较好使,注意不是实时的语音识别. 2.文字转语音:转的语音不要太生硬. ...
- 基于 Azure 的认知服务将文本合成语音
基于 Azure 的认知服务将文本合成语音 Intro 前几天发了一个 .NET 20 周年祝福视频,语音是通过 Azure 的认知服务合成的, 下面就来介绍一下如何将使用 Azure 的认识服务实现 ...
- cordova语音通话_如何在Cordova中将文本转换为语音(语音合成)
本文概述 语音合成是计算机生成的人类语音模拟.它用于将书面信息转换为更方便的听觉信息, 尤其是对于移动应用程序(如启用语音的电子邮件和统一消息传递).作为使用Javascript创建混合应用程序的开发 ...
- 免费文本转语音的方法
这里我们使用的微软的文本转语音服务,它完全免费.免费.免费,重要的事情说三遍.而且声音非常像真人,还有很多种声音可以选择,甚至可以配置情绪.话不多说,上方法: 打开chrome应用商店,下载油猴插件, ...
- python 科大讯飞 文本转语音接口 + QT简单界面
文本转语音 前提 源码 解释 缺陷 打包 由于是实验做的,且有点赶,也就没有怎么整理和疏通,只要能运行就行了.所以仅供借鉴,问题肯定很多,在这只是记录一下所学. 前提 首先你需要注册科大讯飞AI开放平 ...
- 基于百度AI的内容审核平台+Jsoup网络爬虫开发的一个自动审核小说程序(以纵横中文网为例)
这个程序是我的毕业设计所设计的一个程序,由于时间原因,可能有些地方或者细节没有考虑清楚,请各位多多包涵 最后的源代码工程我已经上传,有需要的可以自取,希望可以帮助到大家 程序简介 此程序使用Java语 ...
最新文章
- 【Android 应用开发】 ActionBar 样式详解 -- 样式 主题 简介 Actionbar 的 icon logo 标题 菜单样式修改
- 浅谈Java的Fork/Join并发框架
- Linux检查镜像,Shell脚本实现检测Cygwin最快的镜像站点
- Taro+react开发(60) 第三方icon使用
- cogs1799 [国家集训队2012]tree(伍一鸣)
- attilax.java 注解的本质and 使用最佳实践(3)O7
- 在Kali中安装foremost
- 科学计算机壁纸,Nature大盘点:2020年最佳科学影像,每一张都是壁纸,每一张都是历史...
- 网站、手机验证码开发(手机注册验证)
- ADL平台上传数据前的准备工作
- ubuntu 更换桌面为 KDE
- python 实现usn读取记录
- 电子计算机的加减乘除叫做什么,计算机中加减乘除叫什么键
- javascript getElementByID,getElementsByName,getElementsByTagName的区别
- 英语不好,能不能学软件编程?不懂英文能学编程吗
- 网易服务器修改权限等级,网易七鱼客服管理_七鱼客服管理人员权限设置_企业服务汇...
- python提取word表格里的内容_python读取word表格 python中如何将word表格内的内容进行替换...
- 语音及多模态语音数据集总结
- 前端七十二变之vue单页面项目实战
- java毕业设计宠物之家Mybatis+系统+数据库+调试部署