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.
PaddleSpeech/demos/text_to_speech/README_cn.md

127 lines
4.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

(简体中文|[English](./README.md))
# 语音合成
## 介绍
语音合成是一种自然语言建模过程,其将文本转换为语音以进行音频演示。
这个 demo 是一个从给定文本生成音频的实现,它可以通过使用 `PaddleSpeech` 的单个命令或 python 中的几行代码来实现。
## 使用方法
### 1. 安装
请看 https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/install_cn.md 。
你可以从easymediumhard三中方式中选择一种方式安装。
### 2. 准备输入
这个 demo 的输入是通过参数传递的特定语言的文本。
### 3. 使用方法
- 命令行 (推荐使用)
- 中文
默认的声学模型是 `Fastspeech2`,默认的声码器是 `Parallel WaveGAN`.
```bash
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!"
```
- 中文,使用 `SpeedySpeech` 作为声学模型
```bash
paddlespeech tts --am speedyspeech_csmsc --input "你好,欢迎使用百度飞桨深度学习框架!"
```
- 中文, 多说话人
你可以改变 `spk_id`
```bash
paddlespeech tts --am fastspeech2_aishell3 --voc pwgan_aishell3 --input "你好,欢迎使用百度飞桨深度学习框架!" --spk_id 0
```
- 英文
```bash
paddlespeech tts --am fastspeech2_ljspeech --voc pwgan_ljspeech --lang en --input "hello world"
```
- 英文,多说话人
你可以改变 `spk_id`
```bash
paddlespeech tts --am fastspeech2_vctk --voc pwgan_vctk --input "hello, boys" --lang en --spk_id 0
```
使用方法:
```bash
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`。
输出:
```bash
[2021-12-09 20:49:58,955] [ INFO] [log.py] [L57] - Wave file has been generated: output.wav
```
- Python API
```python
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))
```
输出:
```bash
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