Skip to content

Commit 79658a5

Browse files
committed
add ernie sat inference, test=tts
1 parent 803800f commit 79658a5

File tree

27 files changed

+2981
-20
lines changed

27 files changed

+2981
-20
lines changed

examples/aishell3/ernie_sat/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# ERNIE SAT with AISHELL3 dataset

examples/aishell3_vctk/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Mixed Chinese and English TTS with AISHELL3 and VCTK datasets
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# ERNIE SAT with AISHELL3 and VCTK dataset
140 KB
Loading

examples/ernie_sat/README.md

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
ERNIE-SAT 是可以同时处理中英文的跨语言的语音-语言跨模态大模型,其在语音编辑、个性化语音合成以及跨语言的语音合成等多个任务取得了领先效果。可以应用于语音编辑、个性化合成、语音克隆、同传翻译等一系列场景,该项目供研究使用。
2+
3+
## 模型框架
4+
ERNIE-SAT 中我们提出了两项创新:
5+
- 在预训练过程中将中英双语对应的音素作为输入,实现了跨语言、个性化的软音素映射
6+
- 采用语言和语音的联合掩码学习实现了语言和语音的对齐
7+
8+
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3lOXKJXE-1655380879339)(.meta/framework.png)]
9+
10+
## 使用说明
11+
12+
### 1.安装飞桨与环境依赖
13+
14+
- 本项目的代码基于 Paddle(version>=2.0)
15+
- 本项目开放提供加载 torch 版本的 vocoder 的功能
16+
- torch version>=1.8
17+
18+
- 安装 htk: 在[官方地址](https://htk.eng.cam.ac.uk/)注册完成后,即可进行下载较新版本的 htk (例如 3.4.1)。同时提供[历史版本 htk 下载地址](https://htk.eng.cam.ac.uk/ftp/software/)
19+
20+
- 1.注册账号,下载 htk
21+
- 2.解压 htk 文件,**放入项目根目录的 tools 文件夹中, 以 htk 文件夹名称放入**
22+
- 3.**注意**: 如果您下载的是 3.4.1 或者更高版本, 需要进入 HTKLib/HRec.c 文件中, **修改 1626 行和 1650 行**, 即把**以下两行的 dur<=0 都修改为 dur<0**,如下所示:
23+
```bash
24+
以htk3.4.1版本举例:
25+
(1)第1626行: if (dur<=0 && labid != splabid) HError(8522,"LatFromPaths: Align have dur<=0");
26+
修改为: if (dur<0 && labid != splabid) HError(8522,"LatFromPaths: Align have dur<0");
27+
28+
(2)1650行: if (dur<=0 && labid != splabid) HError(8522,"LatFromPaths: Align have dur<=0 ");
29+
修改为: if (dur<0 && labid != splabid) HError(8522,"LatFromPaths: Align have dur<0 ");
30+
```
31+
- 4.**编译**: 详情参见解压后的 htk 中的 README 文件(如果未编译, 则无法正常运行)
32+
33+
34+
35+
- 安装 ParallelWaveGAN: 参见[官方地址](https://github.com/kan-bayashi/ParallelWaveGAN):按照该官方链接的安装流程,直接在**项目的根目录下** git clone ParallelWaveGAN 项目并且安装相关依赖即可。
36+
37+
38+
- 安装其他依赖: **sox, libsndfile**
39+
40+
### 2.预训练模型
41+
预训练模型 ERNIE-SAT 的模型如下所示:
42+
- [ERNIE-SAT_ZH](https://paddlespeech.bj.bcebos.com/Parakeet/released_models/ernie_sat/old/model-ernie-sat-base-zh.tar.gz)
43+
- [ERNIE-SAT_EN](https://paddlespeech.bj.bcebos.com/Parakeet/released_models/ernie_sat/old/model-ernie-sat-base-en.tar.gz)
44+
- [ERNIE-SAT_ZH_and_EN](https://paddlespeech.bj.bcebos.com/Parakeet/released_models/ernie_sat/old/model-ernie-sat-base-en_zh.tar.gz)
45+
46+
47+
创建 pretrained_model 文件夹,下载上述 ERNIE-SAT 预训练模型并将其解压:
48+
```bash
49+
mkdir pretrained_model
50+
cd pretrained_model
51+
tar -zxvf model-ernie-sat-base-en.tar.gz
52+
tar -zxvf model-ernie-sat-base-zh.tar.gz
53+
tar -zxvf model-ernie-sat-base-en_zh.tar.gz
54+
```
55+
56+
### 3.下载
57+
58+
1. 本项目使用 parallel wavegan 作为声码器(vocoder):
59+
- [pwg_aishell3_ckpt_0.5.zip](https://paddlespeech.bj.bcebos.com/Parakeet/released_models/pwgan/pwg_aishell3_ckpt_0.5.zip)
60+
61+
创建 download 文件夹,下载上述预训练的声码器(vocoder)模型并将其解压:
62+
63+
```bash
64+
mkdir download
65+
cd download
66+
unzip pwg_aishell3_ckpt_0.5.zip
67+
```
68+
69+
2. 本项目使用 [FastSpeech2](https://arxiv.org/abs/2006.04558) 作为音素(phoneme)的持续时间预测器:
70+
- [fastspeech2_conformer_baker_ckpt_0.5.zip](https://paddlespeech.bj.bcebos.com/Parakeet/released_models/fastspeech2/fastspeech2_conformer_baker_ckpt_0.5.zip) 中文场景下使用
71+
- [fastspeech2_nosil_ljspeech_ckpt_0.5.zip](https://paddlespeech.bj.bcebos.com/Parakeet/released_models/fastspeech2/fastspeech2_nosil_ljspeech_ckpt_0.5.zip) 英文场景下使用
72+
73+
下载上述预训练的 fastspeech2 模型并将其解压:
74+
75+
```bash
76+
cd download
77+
unzip fastspeech2_conformer_baker_ckpt_0.5.zip
78+
unzip fastspeech2_nosil_ljspeech_ckpt_0.5.zip
79+
```
80+
81+
3. 本项目使用 HTK 获取输入音频和文本的对齐信息:
82+
83+
- [aligner.zip](https://paddlespeech.bj.bcebos.com/Parakeet/released_models/ernie_sat/old/aligner.zip)
84+
85+
下载上述文件到 tools 文件夹并将其解压:
86+
```bash
87+
cd tools
88+
unzip aligner.zip
89+
```
90+
91+
92+
### 4.推理
93+
94+
本项目当前开源了语音编辑、个性化语音合成、跨语言语音合成的推理代码,后续会逐步开源。
95+
注:当前英文场下的合成语音采用的声码器默认为 vctk_parallel_wavegan.v1.long, 可在[该链接](https://github.com/kan-bayashi/ParallelWaveGAN)中找到; 若 use_pt_vocoder 参数设置为 False,则英文场景下使用 paddle 版本的声码器。
96+
97+
我们提供特定音频文件, 以及其对应的文本、音素相关文件:
98+
- prompt_wav: 提供的音频文件
99+
- prompt/dev: 基于上述特定音频对应的文本、音素相关文件
100+
101+
102+
```text
103+
prompt_wav
104+
├── p299_096.wav # 样例语音文件1
105+
├── p243_313.wav # 样例语音文件2
106+
└── ...
107+
```
108+
109+
```text
110+
prompt/dev
111+
├── text # 样例语音对应文本
112+
├── wav.scp # 样例语音路径
113+
├── mfa_text # 样例语音对应音素
114+
├── mfa_start # 样例语音中各个音素的开始时间
115+
└── mfa_end # 样例语音中各个音素的结束时间
116+
```
117+
1. `--am` 声学模型格式符合 {model_name}_{dataset}
118+
2. `--am_config`, `--am_checkpoint`, `--am_stat``--phones_dict` 是声学模型的参数,对应于 fastspeech2 预训练模型中的 4 个文件。
119+
3. `--voc` 声码器(vocoder)格式是否符合 {model_name}_{dataset}
120+
4. `--voc_config`, `--voc_checkpoint`, `--voc_stat` 是声码器的参数,对应于 parallel wavegan 预训练模型中的 3 个文件。
121+
5. `--lang` 对应模型的语言可以是 `zh``en`
122+
6. `--ngpu` 要使用的 GPU 数,如果 ngpu==0,则使用 cpu。
123+
7. `--model_name` 模型名称
124+
8. `--uid` 特定提示(prompt)语音的 id
125+
9. `--new_str` 输入的文本(本次开源暂时先设置特定的文本)
126+
10. `--prefix` 特定音频对应的文本、音素相关文件的地址
127+
11. `--source_lang` , 源语言
128+
12. `--target_lang` , 目标语言
129+
13. `--output_name` , 合成语音名称
130+
14. `--task_name` , 任务名称, 包括:语音编辑任务、个性化语音合成任务、跨语言语音合成任务
131+
132+
运行以下脚本即可进行实验
133+
```shell
134+
./run_sedit_en.sh # 语音编辑任务(英文)
135+
./run_gen_en.sh # 个性化语音合成任务(英文)
136+
./run_clone_en_to_zh.sh # 跨语言语音合成任务(英文到中文的语音克隆)
137+
```

0 commit comments

Comments
 (0)