史政府

- 韵律转移工具包,即使您的培训DB是普通人的中立声音,您也可以使用它来产生时尚的演讲。
- 我们可以转移韩国方言(Kyongsang,Cheolla)和情感韵律以及中立的对话。
- 硬质体系是为了严格传递韵律,因此,参考音频的句子结构和目标句子更好地匹配。
- 柔软的Pittron追求自然的韵律转移,甚至参考音频和目标句子的内容都完全不同。
- 我们正在使用此项目发布的DB可以在Emotion_TTS上获得
- 音频样本可从http://jsh-tts.tistory.com/entry/pitchtron获得
- Pittertron纸:https://arxiv.org/abs/2005.10456
三个分支的差异
- 这里提供的所有三个分支都是用于韵律转移。
- 您可以产生所需风格,句子和声音的演讲。
- 参考音频的发言人可以是任何人,并且该人不必将其包括在培训数据中。
- 培训数据中必须包括目标扬声器(合成音频的声音)。
- 使用硬和柔软的音调龙,即使模型只接受了简单的,中立的语音训练,即使模型只训练了模型,也可以在“ kyongsang”方言,“ cheolla”方言和情感风格中合成。
- 另一方面,对于全球风格代币,您需要在培训时间期间需要的DB。
- 我提出了这个Pittron ,以便在韩国Kyongsang ANC Cheolla方言。
- 这些方言的DB非常有限,“音高轮廓”是自然参考它们的关键。许多其他倾斜的语言(日语),音调朗格格(中文)和情感说话风格也是如此。
| 时间分辨率 | 线性控制 | 人声范围调整 | 非平行引用 | 看不见的风格支持 | 维度分析要求 |
|---|
| GST | x | x | x | o | x | o |
| 软管体 | o | * | o | o | o | x |
| 坚硬的Pittron | o | o | o | ** | o | x |
- *:柔软的Pittron只要听起来很自然,就可以让您控制音调。如果它超出了目标扬声器的声音范围,它将被剪裁以发出自然的声音。
- **:硬螺旋桨允许有限的非平行引用。
- 有限的非平行:文本可能会有所不同,但是句子的结构必须匹配。
| 句子 |
|---|
| 参考 | “아니요지는그짝허고않아요” |
| 目标 | “그래요갸는친구허고같아요” |
- 时间分辨率:我们可以通过TimeStep来不同地控制样式吗?
- 线性控制:我可以准确地控制音高(注意)将要缩放的数量吗?我不必在嵌入空间上探索以确定输入变化时嵌入维度的比例变化吗?
- 人声范围调整:如果参考扬声器和目标扬声器的人声范围截然不同,我可以自然地在目标扬声器的声音范围内引用吗?
- 非平行引用:如果参考句子和目标句子不同,我可以自然合成它吗?
- 看不见的风格支持:如果所需的参考音频是训练中从未见过的样式,那么它可以自然地转移吗?
- 维度分析要求:我是否必须分析哪些令牌/维度控件哪些属性要控制此模型?
1。软螺旋桨
- 该分支提供了平行,有限的非并行和非并行句子的无监督韵律转移。
- 并行:参考音频句子和目标综合句子匹配。
- 有限的非平行:上面提到的。
- 非平行:参考音频句子和目标综合句子不必匹配。
- 类似于全球样式令牌,但是有几个优点。
- 对于在培训期间看不见的样式来说,这要变得更加健壮。
- 控制要容易得多。
- 您不必分析令牌或尺寸即可查看每个令牌的作用。
- 您可以扩展参考音频的音高范围,以适合目标扬声器的音频,以使性别间的转移更自然。
- 您还可以控制每个音素输入的音高
- 将参考音频的音高范围缩放为适合目标扬声器的音频,以使性别间的转移更加自然。
- 您对音高的控制并不是那么严格,以至于它只会扩展到听起来很自然的数量。
2。硬施龙
- 该分支提供了无监督和“有限的非平行”无监督韵律转移。
- 相反,节奏和音高与参考音频完全相同。
- 将参考音频的音高范围缩放为适合目标扬声器的音频,以使性别间的转移更加自然。
- 您对音高范围有严格的控制,即使它会导致不自然的声音,它也可以扩展。
3。全球样式令牌
- 全球样式令牌实现。全球样式令牌
- 与Pittertron不同,全球样式令牌倾向于仅适用于训练阶段的样式。
- 音高范围无法缩放,如果参考音频超出了目标扬声器的声音范围,则导致嘈杂的声音。
- 由于在训练过程中对新风格的态度并不强大,因此有时会以大声的能量或太长停顿产生语音。
为多演讲者韩语TTS运行的预处理步骤
python preprocess.py --dataset={following keywords}
按以下顺序运行它们。您可以根据您的需求选择退出某些零件。
- selvas_multispeaker_pron
- public_korean_pron
- Integrate_Dataset
- check_file_integrity
- generate_mel_f0
1。selvas_multispeaker_pron
- 每个扬声器下的RAW PCM到WAV_22050
- src:'{data_root}/{speaker}/raw/*。
- dst:'{data_root}/{speaker}/wav_22050/*。
- 带有25个顶部DB的修剪
- 数据拆分:对于每400个音频,进行评估且测试相同
- 使用phoneme *filelists/single_language_selvas/train_file_list_pron.txt生成元文件。
2。public_korean_pron
- 在哪里下载:서울말서울말발화말뭉치
- 将采样率定于22050 Hz(此DB具有不规则的SR)
- 带有前25 dB的修剪
- 来源:
- wav_16000/{扬声器}/*
- pron/{speaker}/t **。txt
- 从脚本中排除:
- 不包括用于解压缩和将WAV移至WAV_16000的脚本。您需要自己以这种形式做到这一点
- 在此DB中,所有扬声器的文本文件都是平等的,因此我将此共享脚本由文献手动分开。(其中包括缺少newline错误,所以我必须手动进行)
- 另外,G2P的脚本也不包括
- 该数据库中的其他错误是
1. Missing speaker: fy15, mw12
2. Wrong data format: mw13_t01_s11.wav, mw13_t01_s12.wav, mw02_t10_s08.wav
3. Overlapping files and naming mistakes: mv11_t07_s4' (==mv11_t07_s40), fy17_t15_s18(==fy17_t16_s01), fv18_t07_s63(==fv18_t07_s62)
- DST:wav_22050/{speeder}/*
3。integrate_dataset
- 我在两个韩国DBS上集成了。
- 这可以推广到有多种语言的多个DB的多语言TT。
- 因此,将与每个DB相关的语言代码附加到此步骤中创建的集成元文本文件。
- 如何
- 修改源文件列表('Train_file_lists','eval_file_lists','test_file_lists')和目标文件列表(target_train_file_list,target_eval_file_list,target_test_file_list)
- 您可能需要修改_integrate()方法以指定每个DB的语言代码。抱歉,它暂时硬编码了。
- 运行preprocess.py
python preprocess.py --dataset=integrate_dataset
4。check_file_integrity
- 此步骤将生成无法读取的WAV路径的元文件。
- 您可能想将它们从最终的filelists中删除或进行一些调查。它在你身上。此步骤不会从filelists中删除这些检测到的文件。
- 出局:alisional_merge_korean_pron _ {}。txt
5。generate_mel_f0(可选)
- 此步骤是可选的。此步骤提取培训功能并保存为文件。
- SRC:wav_22050/*。wav
- dst:mel/*。pt and f0/*。
6。用单扬声器DB初始化前几个时期
- 为单扬扬声器准备单独的火车,有效的案件
- 单言式培训和验证的文件也包括在多宣言filestrists中。
- 我用单扬声器DB尝试了最初的30个时代的培训,它有助于学习编码器折线的对准器。
如何训练?
1。命令
python train.py {program arguments}
2。程序参数
| 选项 | 强制的 | 目的 |
|---|
| -o | o | 目录路径保存检查点。 |
| -c | x | 预验证的检查点要加载的路径。 |
| -L | o | log目录删除张板的日志。 |
3。验证的模型
*预验证的模型对音素进行了训练。当您提供文本合成时,他们期望音素作为输入。
| 模型 | 预验证的检查站 | 匹配的超参数 |
|---|
| 软管体 | 软管体 | 配置 |
| 坚硬的Pittron | 坚硬的Pittron | 配置 |
| 全球样式令牌 | GST | 配置 |
| Waveglow Vocoder | 浪潮 | - |
如何合成?
1。软螺旋桨
python inferent_soft_pitchtron.py
2。硬施龙
python inference_hard_pitchtron.py
3。GST
python inference_gst_tts.py
尖端!
- 为了防止开裂的声音,参考音频声音范围需要缩放到目标扬声器的声音范围。
- 该部分是在我们的代码中实现的,但是目标扬声器的声音范围是通过仅采样10个音频并将Max-Min作为差异来计算的。
- 如果您使用更准确的统计信息在目标扬声器人声范围内,您的声音将会更好。
致谢
- 该材料基于工业技术创新计划下的贸易,工业与能源部(韩国Motie)支持的工作(第10080667号,开发会话言语综合技术,通过声音源多样性来表达机器人的情感和个性)。
- 我从这个很棒的家伙=> jeongpil_lee获得了有关素的帮助
- 该存储库是作者实施以下纸张=>(Pittertron)https://arxiv.org/abs/2005.10456
- 引用的存储库
| 贡献 | URL |
|---|
| tacotron2 | https://github.com/nvidia/tacotron2 |
| Mellotron | https://github.com/nvidia/mellotron |
| 浪潮 | https://github.com/nvidia/waveglow |
| 韩国文本处理 | https://github.com/keithito/tacotron |