Modify typesetting, test=doc

pull/1427/head
lizi 4 years ago
parent 06e8bdf0d7
commit 5e34cdbd6e

@ -6,7 +6,7 @@
* LJSpeech (英文单发音人)
* VCTK (英文多发音人)
PaddleSpeech的TTS模型具有以下映射关系
PaddleSpeech TTS 模型具有以下映射关系:
* tts0 - Tactron2
* tts1 - TransformerTTS
@ -25,7 +25,7 @@ PaddleSpeech的TTS模型具有以下映射关系
让我们以 FastSpeech2 + Parallel WaveGAN 和 CSMSC 数据集 为例. [examples/csmsc](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/csmsc)
### 用CSMSC数据集训练Parallel WaveGAN
### 用 CSMSC 数据集训练 Parallel WaveGAN
- 进入目录
```bash
@ -55,27 +55,27 @@ PaddleSpeech的TTS模型具有以下映射关系
source path.sh
```
**在你开始做任何事情之前,必须先做这步**
`MAIN_ROOT` 设置为项目目录. 使用 `fastspeech2` 模型作为 `MODEL`.
`MAIN_ROOT` 设置为项目目录. 使用 `fastspeech2` 模型作为 `MODEL`
- 运行
```bash
bash run.sh
```
这只是一个演示,请确保源数据已经准备好,并且在下一个 `步骤` 之前每个 `步骤` 都运行正常.
这只是一个演示,请确保源数据已经准备好,并且在下一个 `步骤` 之前每个 `步骤` 都运行正常
`run.sh` 中主要包括以下步骤:
- 设置路径。
- 预处理数据集,
- 训练模型。
- 从`metadata.jsonl`中合成波形
- 从 `metadata.jsonl` 中合成波形
- 从文本文件合成波形。(在声学模型中)
- 使用静态模型进行推理。(可选)
有关更多详细信息请参见examples中的`README.md`
有关更多详细信息,请参见 examples 中的 `README.md`
## TTS流水线
本节介绍如何使用TTS提供的预训练模型并对其进行推理。
## TTS 流水线
本节介绍如何使用 TTS 提供的预训练模型,并对其进行推理。
TTS中的预训练模型在压缩包中提供。将其解压缩以获得如下文件夹
**Acoustic Models:**
@ -99,13 +99,13 @@ checkpoint_name
- `default.yaml` 存储用于训练模型的配置。
- `snapshot_iter_*.pdz` 是检查点文件,其中`*`是它经过训练的步骤。
- `*_stats.npy` 是特征的统计文件,如果它在训练前已被标准化。
- `phone_id_map.txt` 是音素到音素ID的映射关系。
- `tone_id_map.txt` 是在训练声学模型之前分割音调和拼音时音调到音调ID的映射关系。例如在csmsc/speedyspeech的示例中
- `spk_id_map.txt` 是多speaker声学模型中speaker到spk_ids的映射关系。
- `phone_id_map.txt` 是音素到音素 ID 的映射关系。
- `tone_id_map.txt` 是在训练声学模型之前分割音调和拼音时,音调到音调 ID 的映射关系。(例如在 csmsc/speedyspeech 的示例中)
- `spk_id_map.txt` 是多发音人声学模型中`发音人`到`spk_ids`的映射关系。
下面的示例代码显示了如何使用模型进行预测。
### Acoustic Models声学模型文本到频谱图
下面的代码显示了如何使用“FastSpeech2”模型。加载预训练模型后使用它和normalizer对象构建预测对象然后使用`fastspeech2_inferencet(phone_ids)`生成频谱图,频谱图可进一步用于使用声码器合成原始音频。
### Acoustic Models 声学模型(文本到频谱图)
下面的代码显示了如何使用 `FastSpeech2` 模型。加载预训练模型后,使用它和 normalizer 对象构建预测对象,然后使用 `fastspeech2_inferencet(phone_ids)` 生成频谱图,频谱图可进一步用于使用声码器合成原始音频。
```python
from pathlib import Path
@ -163,7 +163,7 @@ for part_phone_ids in phone_ids:
```
### Vcoder声码器谱图到波形
下面的代码显示了如何使用` Parallel WaveGAN` 模型。像上面的例子一样加载预训练模型后使用它和normalizer对象构建预测对象然后使用 `pwg_inference(mel)`生成原始音频wav格式
下面的代码显示了如何使用 `Parallel WaveGAN` 模型。像上面的例子一样,加载预训练模型后,使用它和 normalizer 对象构建预测对象,然后使用 `pwg_inference(mel)` 生成原始音频( wav 格式)。
```python
from pathlib import Path

@ -1,15 +1,14 @@
# 用CSMSC数据集训练FastSpeech2模型
This example contains code used to train a [Fastspeech2](https://arxiv.org/abs/2006.04558) model with [Chinese Standard Mandarin Speech Copus](https://www.data-baker.com/open_source.html).
# 用 CSMSC 数据集训练 FastSpeech2 模型
本用例包含用于训练 [Fastspeech2](https://arxiv.org/abs/2006.04558) 模型的代码,使用 [Chinese Standard Mandarin Speech Copus](https://www.data-baker.com/open_source.html)数据集。
本用例包含用于训练 [Fastspeech2](https://arxiv.org/abs/2006.04558) 模型的代码,使用 [Chinese Standard Mandarin Speech Copus](https://www.data-baker.com/open_source.html) 数据集。
## 数据集
### 下载并解压
从 [官方网站](https://test.data-baker.com/data/index/source)下载数据集
从 [官方网站](https://test.data-baker.com/data/index/source) 下载数据集
### 获取MFA结果并解压
我们使用 [MFA](https://github.com/MontrealCorpusTools/Montreal-Forced-Aligner) 去获得 fastspeech2 的音素持续时间。
你们可以从这里下载 [baker_alignment_tone.tar.gz](https://paddlespeech.bj.bcebos.com/MFA/BZNSYP/with_tone/baker_alignment_tone.tar.gz), 或参考 [mfa example](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/other/mfa) 训练你自己的模型of our repo.
你们可以从这里下载 [baker_alignment_tone.tar.gz](https://paddlespeech.bj.bcebos.com/MFA/BZNSYP/with_tone/baker_alignment_tone.tar.gz), 或参考 [mfa example](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/other/mfa) 训练你自己的模型
## 开始
假设数据集的路径是 `~/datasets/BZNSYP`.
@ -20,13 +19,13 @@ This example contains code used to train a [Fastspeech2](https://arxiv.org/abs/2
2. 对数据集进行预处理。
3. 训练模型
4. 合成波形
- 从 `metadata.jsonl`合成波形。
- 从 `metadata.jsonl` 合成波形。
- 从文本文件合成波形。
5. 使用静态模型进行推理。
```bash
./run.sh
```
您可以选择要运行的一系列阶段,或者将 `stage` 设置为 `stop-stage`以仅使用一个阶段,例如,运行以下命令只会预处理数据集。
您可以选择要运行的一系列阶段,或者将 `stage` 设置为 `stop-stage` 以仅使用一个阶段,例如,运行以下命令只会预处理数据集。
```bash
./run.sh --stage 0 --stop-stage 0
```
@ -34,7 +33,7 @@ This example contains code used to train a [Fastspeech2](https://arxiv.org/abs/2
```bash
./local/preprocess.sh ${conf_path}
```
当它完成时。将在当前目录中创建`dump`文件夹。转储文件夹的结构如下所示。
当它完成时。将在当前目录中创建 `dump` 文件夹。转储文件夹的结构如下所示。
```text
dump
@ -53,17 +52,16 @@ dump
├── raw
└── speech_stats.npy
```
The dataset is split into 3 parts, namely `train`, `dev`, and` test`, each of which contains a `norm` and `raw` subfolder. The raw folder contains speech、pitch and energy features of each utterance, while the norm folder contains normalized ones. The statistics used to normalize features are computed from the training set, which is located in `dump/train/*_stats.npy`.
数据集分为三个部分,即`train`、`dev`和`test`,每个部分都包含一个`norm`和`raw`子文件夹。原始文件夹包含每个话语的语音、音调和能量特征,而`norm`文件夹包含规范化的特征。用于规范化特征的统计数据是从`dump/train/*_stats.npy`中的训练集计算出来的。
数据集分为三个部分,即 `train` `dev` `test` ,每个部分都包含一个 `norm` `raw` 子文件夹。原始文件夹包含每个话语的语音、音调和能量特征,而 `norm` 文件夹包含规范化的特征。用于规范化特征的统计数据是从 `dump/train/*_stats.npy` 中的训练集计算出来的。
此外,还有一个`metadata.jsonl` 在每个子文件夹中。它是一个类似表格的文件包含音素、文本长度、语音长度、持续时间、语音特征路径、音调特征路径、能量特征路径、说话人和每个话语的id。
此外,还有一个 `metadata.jsonl` 在每个子文件夹中。它是一个类似表格的文件,包含音素、文本长度、语音长度、持续时间、语音特征路径、音调特征路径、能量特征路径、说话人和每个话语的 id。
### 模型训练
```bash
CUDA_VISIBLE_DEVICES=${gpus} ./local/train.sh ${conf_path} ${train_output_path}
```
`./local/train.sh` calls `${BIN_DIR}/train.py`.
`./local/train.sh` 调用 `${BIN_DIR}/train.py`
以下是完整的帮助信息。
```text
@ -91,15 +89,15 @@ optional arguments:
--voice-cloning VOICE_CLONING
whether training voice cloning model.
```
1. `--config` 是一个yaml格式的配置文件用于覆盖默认配置位于 `conf/default.yaml`.
2. `--train-metadata``--dev-metadata` 应为`dump`文件夹中`train`和`dev`下的规范化元数据文件
3. `--output-dir` 是保存结果的目录。 检查点保存在此目录中的 `checkpoints/`目录下。
4. `--ngpu` 要使用的GPU数如果ngpu==0则使用cpu。
1. `--config` 是一个 yaml 格式的配置文件,用于覆盖默认配置,位于 `conf/default.yaml`.
2. `--train-metadata``--dev-metadata` 应为 `dump` 文件夹中 `train` `dev` 下的规范化元数据文件
3. `--output-dir` 是保存结果的目录。 检查点保存在此目录中的 `checkpoints/` 目录下。
4. `--ngpu` 要使用的 GPU 数,如果 ngpu==0则使用 cpu
5. `--phones-dict` 是音素词汇表文件的路径。
### 合成
我们使用 [parallel wavegan](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/csmsc/voc1) 作为神经声码器vocoder
从 [pwg_baker_ckpt_0.4.zip](https://paddlespeech.bj.bcebos.com/Parakeet/released_models/pwgan/pwg_baker_ckpt_0.4.zip) 下载预训练的parallel wavegan模型并将其解压。
从 [pwg_baker_ckpt_0.4.zip](https://paddlespeech.bj.bcebos.com/Parakeet/released_models/pwgan/pwg_baker_ckpt_0.4.zip) 下载预训练的 parallel wavegan 模型并将其解压。
```bash
unzip pwg_baker_ckpt_0.4.zip
@ -214,25 +212,25 @@ optional arguments:
output dir.
```
1. `--am` 声学模型格式是否符合 {model_name}_{dataset}
2. `--am_config`, `--am_checkpoint`, `--am_stat``--phones_dict` 是声学模型的参数对应于fastspeech2预训练模型中的4个文件。
2. `--am_config`, `--am_checkpoint`, `--am_stat``--phones_dict` 是声学模型的参数,对应于 fastspeech2 预训练模型中的 4 个文件。
3. `--voc` 声码器(vocoder)格式是否符合 {model_name}_{dataset}
4. `--voc_config`, `--voc_checkpoint`, `--voc_stat` 是声码器的参数对应于parallel wavegan预训练模型中的3个文件。
5. `--lang` 对应模型的语言可以是 `zh``en`.
6. `--test_metadata` 应为`dump`文件夹中`test`下的规范化元数据文件、
4. `--voc_config`, `--voc_checkpoint`, `--voc_stat` 是声码器的参数,对应于 parallel wavegan 预训练模型中的 3 个文件。
5. `--lang` 对应模型的语言可以是 `zh``en`
6. `--test_metadata` 应为 `dump` 文件夹中 `test` 下的规范化元数据文件、
7. `--text` 是文本文件,其中包含要合成的句子。
8. `--output_dir` 是保存合成音频文件的目录。
9. `--ngpu` 要使用的GPU数如果ngpu==0则使用cpu。
9. `--ngpu` 要使用的GPU数如果 ngpu==0则使用 cpu
### 推理
在合成之后,我们将在`${train_output_path}/inference`中得到fastspeech2和pwgan的静态模型
`./local/inference.sh` 调用 `${BIN_DIR}/inference.py`为fastspeech2+pwgan综合提供了一个paddle静态模型推理示例。
在合成之后,我们将在 `${train_output_path}/inference` 中得到 fastspeech2 pwgan 的静态模型
`./local/inference.sh` 调用 `${BIN_DIR}/inference.py` fastspeech2 + pwgan 综合提供了一个 paddle 静态模型推理示例。
```bash
CUDA_VISIBLE_DEVICES=${gpus} ./local/inference.sh ${train_output_path}
```
## 预训练模型
预先训练的FastSpeech2模型在音频边缘没有空白音频
预先训练的 FastSpeech2 模型,在音频边缘没有空白音频:
- [fastspeech2_nosil_baker_ckpt_0.4.zip](https://paddlespeech.bj.bcebos.com/Parakeet/released_models/fastspeech2/fastspeech2_nosil_baker_ckpt_0.4.zip)
- [fastspeech2_conformer_baker_ckpt_0.5.zip](https://paddlespeech.bj.bcebos.com/Parakeet/released_models/fastspeech2/fastspeech2_conformer_baker_ckpt_0.5.zip)
@ -246,12 +244,12 @@ conformer| 2(gpu) x 76000|1.0675|0.56103|0.035869|0.31553|0.15509|
FastSpeech2检查点包含下列文件。
```text
fastspeech2_nosil_baker_ckpt_0.4
├── default.yaml # 用于训练fastspeech2的默认配置
├── phone_id_map.txt # 训练fastspeech2时的音素词汇文件
├── default.yaml # 用于训练 fastspeech2 的默认配置
├── phone_id_map.txt # 训练 fastspeech2 时的音素词汇文件
├── snapshot_iter_76000.pdz # 模型参数和优化器状态
└── speech_stats.npy # 训练fastspeech2时用于规范化频谱图的统计数据
└── speech_stats.npy # 训练 fastspeech2 时用于规范化频谱图的统计数据
```
您可以使用以下脚本通过使用预训练的fastspeech2和并行wavegan模型为 `${BIN_DIR}/../sentences.txt` 合成句子
您可以使用以下脚本通过使用预训练的 fastspeech2 和 parallel wavegan 模型为 `${BIN_DIR}/../sentences.txt` 合成句子
```bash
source path.sh

Loading…
Cancel
Save