You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.3 KiB
4.3 KiB
(简体中文|English)
语音合成
介绍
语音合成是一种自然语言建模过程,其将文本转换为语音以进行音频演示。
这个 demo 是一个从给定文本生成音频的实现,它可以通过使用 PaddleSpeech
的单个命令或 python 中的几行代码来实现。
使用方法
1. 安装
请看 https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/install_cn.md 。
你可以从easy,medium,hard三中方式中选择一种方式安装。
2. 准备输入
这个 demo 的输入是通过参数传递的特定语言的文本。
3. 使用方法
-
命令行 (推荐使用)
-
中文
默认的声学模型是
Fastspeech2
,默认的声码器是Parallel WaveGAN
.paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!"
-
中文,使用
SpeedySpeech
作为声学模型paddlespeech tts --am speedyspeech_csmsc --input "你好,欢迎使用百度飞桨深度学习框架!"
-
中文, 多说话人
你可以改变
spk_id
。paddlespeech tts --am fastspeech2_aishell3 --voc pwgan_aishell3 --input "你好,欢迎使用百度飞桨深度学习框架!" --spk_id 0
-
英文
paddlespeech tts --am fastspeech2_ljspeech --voc pwgan_ljspeech --lang en --input "hello world"
-
英文,多说话人
你可以改变
spk_id
。paddlespeech tts --am fastspeech2_vctk --voc pwgan_vctk --input "hello, boys" --lang en --spk_id 0
使用方法:
paddlespeech tts --help
参数:
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
。
输出:
[2021-12-09 20:49:58,955] [ INFO] [log.py] [L57] - Wave file has been generated: output.wav
-
-
Python API
import paddle from paddlespeech.cli 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()) print('Wave file has been generated: {}'.format(wav_file))
输出:
Wave file has been generated: output.wav
4. 预训练模型
以下是 PaddleSpeech 提供的可以被命令行和 python API 使用的预训练模型列表:
-
声学模型
模型 语言 speedyspeech_csmsc zh fastspeech2_csmsc zh fastspeech2_aishell3 zh fastspeech2_ljspeech en fastspeech2_vctk en -
声码器
模型 语言 pwgan_csmsc zh pwgan_aishell3 zh pwgan_ljspeech en pwgan_vctk en mb_melgan_csmsc zh