免费语音合成工具 PaddleSpeech 安装使用
安装环境
操作系统:windows 11
运行环境:Python 3.9.13
文档引用:https://gitcode.com/PaddlePaddle/PaddleSpeech/overview
源码方式安装
1 | git clone https://github.com/PaddlePaddle/PaddleSpeech.git |
安装成功
语音合成
首次运行需要下载资源,要等待1分钟左右(看自己的网速)
1 | paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav |
启动服务
启动服务
1 | paddlespeech_server start --config_file ./demos/speech_server/conf/application.yaml |
访问语音合成服务
1 | paddlespeech_client tts --server_ip 127.0.0.1 --port 8090 --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav |
访问音频分类服务paddlespeech_client cls --server_ip 127.0.0.1 --port 8090 --input input.wav
快速使用流式服务
开发者可以尝试 流式 ASR 和 流式 TTS 服务.
启动流式 ASR 服务
paddlespeech_server start –config_file ./demos/streaming_asr_server/conf/application.yaml
访问流式 ASR 服务
paddlespeech_client asr_online –server_ip 127.0.0.1 –port 8090 –input input_16k.wav
启动流式 TTS 服务
paddlespeech_server start –config_file ./demos/streaming_tts_server/conf/tts_online_application.yaml
访问流式 TTS 服务
paddlespeech_client tts_online –server_ip 127.0.0.1 –port 8092 –protocol http –input “您好,欢迎使用百度飞桨语音合成服务。” –output output.wav
web安装
后端环境安装
需要先安装 PaddleSpeech
1 | # 需要先安装 PaddleSpeech |
前端环境安装
前端依赖
node.js
,需要提前安装,确保 npm
可用,npm
测试版本 8.3.1
,建议下载官网稳定版的 node.js
如果因为网络问题,无法下载依赖库,可以参考 FAQ 部分,npm / yarn 下载速度慢问题
1 | cd PaddleSpeech\demos\speech_web\web_client |
启动服务
【注意】目前只支持 main.py
和 vc.py
两者中选择开启一个后端服务。
启动 main.py
后端服务
下载相关模型
只需手动下载语音指令所需模型即可,其他模型会自动下载。
1 | cd speech_server |
当前目录:PaddleSpeech\demos\speech_web
启动后端服务
1 | cd speech_server |
D:\WorkProject\tts\PaddleSpeech\demos\speech_web\speech_server
启动前端服务
1 | cd D:\WorkProject\tts\PaddleSpeech\demos\speech_web\web_client |
启动 vc.py
后端服务
下载相关模型和音频
下载相关模型和音频
1 | cd speech_server |
ERNIE-SAT 环境配置
ERNIE-SAT 体验依赖于 examples/aishell3_vctk/ernie_sat 的环境。参考 examples/aishell3_vctk/ernie_sat
下的 README.md
, 确保 examples/aishell3_vctk/ernie_sat
下 run.sh
相关示例代码有效。
运行好 examples/aishell3_vctk/ernie_sat
后,回到当前目录,创建环境:
1 | cd speech_server |
finetune 环境配置
finetune
需要解压 tools/aligner
中的 aishell3_model.zip
,finetune 过程需要使用到 tools/aligner/aishell3_model/meta.yaml
文件。
1 | cd speech_server/tools/aligner |
启动后端服务
1 | cd speech_server |
启动前端服务
1 | cd web_client |
默认配置下,前端配置的后台地址信息是 localhost
,确保后端服务器和打开页面的游览器在同一台机器上,不在一台机器的配置方式见下方的 FAQ:【后端如果部署在其它机器或者别的端口如何修改】
关于前端的一些说明
为了方便后期的维护,这里并没有给出打包好的 HTML 文件,而是 Vue3 的项目,使用 yarn dev --port 8011
的方式启动测试,方便大家debug,相当于是启动了一个前端服务器。
比如我们在本机启动的这个前端服务(运行 yarn dev --port 8011
),我们就可以通过在游览器中通过 http://localhost:8011
访问前端页面
如果我们在其它服务器上(例如:*.*.*.*
)启动这个前端服务(运行 yarn dev --port 8011
),我们就可以通过在游览器中访问 http://*.*.*.*:8011
访问前端页面
那前端跟后端是什么关系呢? 两个是独立的,只要前端能够通过代理访问到后端的接口,那就没有问题。你可以在 A 机器上部署后端服务,然后在 B 机器上部署前端服务。我们在 ./web_client/vite.config.js
中将 /api
映射到的是 http://localhost:8010
,你可以把它配置成任意你想要访问后端地址。
当前端在以 *.*.*.*
这类以 IP 地址形式的网页中访问时,由于游览器的安全限制,会禁止录音,需要重新配置游览器的安全策略, 可以看下面 FAQ 部分: [【前端以IP地址的形式访问,无法录音】]
FAQ
Q: 如何安装node.js
A: node.js的安装可以参考【菜鸟教程】, 确保 npm 可用
Q:后端如果部署在其它机器或者别的端口如何修改
A:后端的配置地址有分散在两个文件中
修改第一个文件 ./web_client/vite.config.js
1 | server: { |
修改第二个文件 ./web_client/src/api/API.js
( Websocket 代理配置失败,所以需要在这个文件中修改)
1 | // websocket (这里改成后端所在的接口) |
Q:前端以IP地址的形式访问,无法录音
A:这里主要是游览器安全策略的限制,需要配置游览器后重启。游览器修改配置可参考使用js-audio-recorder报浏览器不支持getUserMedia
chrome设置地址: chrome://flags/#unsafely-treat-insecure-origin-as-secure
Q: npm / yarn 配置淘宝镜像源
A: 配置淘宝镜像源,详细可以参考 【yarn npm 设置淘宝镜像】
1 | # npm 配置淘宝镜像源 |
参数说明
–am 参数列表
1 | speedyspeech_csmsc, |
–voc 参数列表
1 | pwgan_csmsc, |
生成shell
paddlespeech tts --am speedyspeech_csmsc --voc pwgan_csmsc --input "你好,欢迎使用百度飞桨深度学习框架!" --spk_id 0
参考资料
vue实现录音参考资料:https://blog.csdn.net/qq_41619796/article/details/107865602#t1
前端流式播放音频参考仓库: