一.前言
TTS技术在很多应用场景中都有广泛的应用,比如语音助手、电子书朗读、语音导航等。基于飞桨PaddleSpeech
开源模型库,本文提供语言合成在线体验应用并介绍部署教程。
二.在线体验
利用百度飞桨深度学习框架,我在飞桨平台部署了TTS语音合成在线应用,用户可以直接体验,可以自由选择声学模型和声码器,支持汉语、英语、汉英和粤语四种语言合成,合成500字仅需10s!前往体验
三.部署
PaddleSpeech支持通过命令行和Python API形式调用,上述的在线应用只提供了部分参数设置,接下来介绍通过Python API方式部署(注意,TTS语音合成使用CPU进行的话速度较慢,如果你本地机器没有GPU配置,可以使用百度飞桨平台提供的免费GPU环境)。
1.依赖安装
pip install paddle paddlespeech
# paddlespeech 依赖需要用到 nltk 包,但是有时会因为网络原因导致不好下载,此处手动下载一下放到百度服务器的包
wget https://paddlespeech.bj.bcebos.com/Parakeet/tools/nltk_data.tar.gz
# 解压到环境路径目录下
tar zxvf nltk_data.tar.gz
2.API调用
调用非常方便,只需要设置好参数就行,具体声学模型和声码器会自动下载
import paddle
from paddlespeech.cli.tts import TTSExecutor
tts_executor = TTSExecutor()
wav_file = tts_executor(
text='今天的天气不错啊',
output='output.wav',
am='fastspeech2_csmsc',
am_config=None,
am_ckpt=None,
am_stat=None,
spk_id=0,
phones_dict=None,
tones_dict=None,
speaker_dict=None,
voc='pwgan_csmsc',
voc_config=None,
voc_ckpt=None,
voc_stat=None,
lang='zh',
device=paddle.get_device())
具体参数:
input
(必须输入):用于合成音频的文本。am
:TTS 任务的声学模型, 默认值:fastspeech2_csmsc
。am_config
:声学模型的配置文件,若不设置则使用默认配置,默认值:None
。am_ckpt
:声学模型的参数文件,若不设置则下载预训练模型使用,默认值:None
。am_stat
:训练声学模型时用于正则化 mel 频谱图的均值标准差文件,默认值:None
。phones_dict
:音素词表文件, 默认值:None
。tones_dict
:声调词表文件, 默认值:None
。speaker_dict
:说话人词表文件, 默认值:None
。spk_id
:说话人 id, 默认值:0
。voc
:TTS 任务的声码器, 默认值:pwgan_csmsc
。voc_config
:声码器的配置文件,若不设置则使用默认配置,默认值:None
。voc_ckpt
:声码器的参数文件,若不设置则下载预训练模型使用,默认值:None
。voc_stat
:训练声码器时用于正则化 mel 频谱图的均值标准差文件,默认值:None
。lang
:TTS 任务的语言, 默认值:zh
。device
:执行预测的设备, 默认值:当前系统下 paddlepaddle 的默认 device。output
:输出音频的路径, 默认值:output.wav
。use_onnx
: 是否使用 ONNXRuntime 进行推理。fs
: 使用特定 ONNX 模型时的采样率。