关于算法的详细描述,请参见我们的论文:
ERNIE-SAT: Speech and Text Joint Pretraining for Cross-Lingual Multi-Speaker Text-to-Speech
Xiaoran Fan, Chao Pang, Tian Yuan, He Bai, Renjie Zheng, Pengfei Zhu, Shuohuan Wang, Junkun Chen, Zeyu Chen, Liang Huang, Yu Sun, Hua Wu
Preprint November 2022
ERNIE-SAT 是可以同时处理中英文的跨语言的语音-语言跨模态大模型,其在语音编辑、个性化语音合成以及跨语言的语音合成等多个任务取得了领先效果。可以应用于语音编辑、个性化合成、语音克隆、同传翻译等一系列场景,该项目供研究使用。
ERNIE-SAT 中我们提出了两项创新:
本项目的代码基于 Paddle(version>=2.0)
本项目开放提供加载 torch 版本的 vocoder 的功能
安装 htk: 在官方地址注册完成后,即可进行下载较新版本的 htk (例如 3.4.1)。同时提供历史版本 htk 下载地址
以htk3.4.1版本举例:
(1)第1626行: if (dur<=0 && labid != splabid) HError(8522,"LatFromPaths: Align have dur<=0");
修改为: if (dur<0 && labid != splabid) HError(8522,"LatFromPaths: Align have dur<0");
(2)1650行: if (dur<=0 && labid != splabid) HError(8522,"LatFromPaths: Align have dur<=0 ");
修改为: if (dur<0 && labid != splabid) HError(8522,"LatFromPaths: Align have dur<0 ");
安装 ParallelWaveGAN: 参见官方地址:按照该官方链接的安装流程,直接在项目的根目录下 git clone ParallelWaveGAN 项目并且安装相关依赖即可。
安装其他依赖: sox, libsndfile等
预训练模型 ERNIE-SAT 的模型如下所示:
创建 pretrained_model 文件夹,下载上述 ERNIE-SAT 预训练模型并将其解压:
mkdir pretrained_model
cd pretrained_model
tar -zxvf model-ernie-sat-base-en.tar.gz
tar -zxvf model-ernie-sat-base-zh.tar.gz
tar -zxvf model-ernie-sat-base-en_zh.tar.gz
创建 download 文件夹,下载上述预训练的声码器(vocoder)模型并将其解压:
mkdir download
cd download
unzip pwg_aishell3_ckpt_0.5.zip
下载上述预训练的 fastspeech2 模型并将其解压
cd download
unzip fastspeech2_conformer_baker_ckpt_0.5.zip
unzip fastspeech2_nosil_ljspeech_ckpt_0.5.zip
本项目当前开源了语音编辑、个性化语音合成、跨语言语音合成的推理代码,后续会逐步开源。 注:当前英文场下的合成语音采用的声码器默认为 vctk_parallel_wavegan.v1.long, 可在该链接中找到; 若 use_pt_vocoder 参数设置为 False,则英文场景下使用 paddle 版本的声码器。
我们提供特定音频文件, 以及其对应的文本、音素相关文件:
prompt_wav
├── p299_096.wav # 样例语音文件1
├── p243_313.wav # 样例语音文件2
└── ...
prompt/dev
├── text # 样例语音对应文本
├── wav.scp # 样例语音路径
├── mfa_text # 样例语音对应音素
├── mfa_start # 样例语音中各个音素的开始时间
└── mfa_end # 样例语音中各个音素的结束时间
--am
声学模型格式符合 {model_name}_{dataset}--am_config
, --am_checkpoint
, --am_stat
和 --phones_dict
是声学模型的参数,对应于 fastspeech2 预训练模型中的 4 个文件。--voc
声码器(vocoder)格式是否符合 {model_name}_{dataset}--voc_config
, --voc_checkpoint
, --voc_stat
是声码器的参数,对应于 parallel wavegan 预训练模型中的 3 个文件。--lang
对应模型的语言可以是 zh
或 en
。--ngpu
要使用的 GPU 数,如果 ngpu==0,则使用 cpu。 --model_name
模型名称 --uid
特定提示(prompt)语音的 id --new_str
输入的文本(本次开源暂时先设置特定的文本) --prefix
特定音频对应的文本、音素相关文件的地址 --source_lang
, 源语言 --target_lang
, 目标语言 --output_name
, 合成语音名称 --task_name
, 任务名称, 包括:语音编辑任务、个性化语音合成任务、跨语言语音合成任务 --use_pt_vocoder
, 英文场景下是否使用 torch 版本的 vocoder, 默认情况下为 False; 设置为 False 则在英文场景下使用 paddle 版本 vocoder运行以下脚本即可进行实验
sh run_sedit_en.sh # 语音编辑任务(英文)
sh run_gen_en.sh # 个性化语音合成任务(英文)
sh run_clone_en_to_zh.sh # 跨语言语音合成任务(英文到中文的语音克隆)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。