检查ChangElog文件以具有最新修改的全局概述! ?
├── custom_architectures
│ ├── tacotron2_arch.py : Tacotron-2 synthesizer architecture
│ └── waveglow_arch.py : WaveGlow vocoder architecture
├── custom_layers
├── custom_train_objects
│ ├── losses
│ │ └── tacotron_loss.py : custom Tacotron2 loss
├── example_outputs : some pre-computed audios (cf the ` text_to_speech ` notebook)
├── loggers
├── models
│ ├── encoder : the ` AudioEncoder ` is used as speaker encoder for the SV2TTS model *
│ ├── tts
│ │ ├── sv2tts_tacotron2.py : SV2TTS main class
│ │ ├── tacotron2.py : Tacotron2 main class
│ │ ├── vocoder.py : main functions for complete inference
│ │ └── waveglow.py : WaveGlow main class (both pytorch and tensorflow)
├── pretrained_models
├── unitests
├── utils
├── example_fine_tuning.ipynb
├── example_sv2tts.ipynb
├── example_tacotron2.ipynb
├── example_waveglow.ipynb
└── text_to_speech.ipynb检查主要项目以获取有关未扩展的模块 /结构 /主类的更多信息。
*检查编码器项目以获取有关models/encoder模块的更多信息
models.tts ):| 特征 | fuction / class | 描述 |
|---|---|---|
| 文本到语音 | tts | 用所需的模型对文本执行TTS |
| 溪流 | tts_stream | 在输入的文本上执行TTS |
| TTS记录器 | loggers.TTSLogger | 将logging日志转换为声音并播放 |
text_to_speech笔记本提供了tts功能的具体演示
可用体系结构:
Synthesizer :SV2TTS )Vocoder :SV2TTS模型通过使用部分转移学习程序(有关详细信息,请参见下文),从验证的Tacotron2模型中微调,这加快了训练的速度。
| 姓名 | 语言 | 数据集 | 合成器 | Vocoder | 扬声器编码器 | 培训师 | 权重 |
|---|---|---|---|---|---|---|---|
| 预处理_tacotron2 | en | ljspeech | Tacotron2 | WaveGlow | / | Nvidia | Google Drive |
| tacotron2_siwis | fr | 西威斯人 | Tacotron2 | WaveGlow | / | 我 | Google Drive |
| SV2TTS_TACOTRON2_256 | fr | Siwis,Voxforge,commonVoice | SV2TTSTacotron2 | WaveGlow | Google Drive | 我 | Google Drive |
| sv2tts_siwis | fr | Siwis,Voxforge,commonVoice | SV2TTSTacotron2 | WaveGlow | Google Drive | 我 | Google Drive |
| SV2TTS_TACOTRON2_256_V2 | fr | Siwis,Voxforge,commonVoice | SV2TTSTacotron2 | WaveGlow | Google Drive | 我 | Google Drive |
| SV2TTS_SIWIS_V2 | fr | 西威斯人 | SV2TTSTacotron2 | WaveGlow | Google Drive | 我 | Google Drive |
模型必须在pretrained_models/ Directory中解开!
重要说明: torch hub上可用的NVIDIA型号需要与pytorch配置正确的兼容GPU。这就是为什么在预期的keras检查点中提供两个模型的原因?
sv2tts_siwis型号是SIWIS (单扬声器)数据集中的sv2tts_tacotron2_256的微调版本。与简单地训练单扬声器模型相比,单扬声器数据集上的多扬声器进行微调倾向于提高稳定性,并产生更语气的声音。
该链接可用Google COLAB演示!
您还可以在example_outputs/或直接在COLAB笔记本中找到某些音频;)
检查本安装指南以获取分步说明!
您可能必须安装ffmpeg进行音频加载 /保存。
Google Colab演示tensorflow 2.x中实现浪潮batch_size对vocoder inference支持SV2TTS重量similarity loss以测试单扬声器微调的新培训程序TTS (正在进行中) GE2E损失训练的编码器训练SV2TTS模型有多种启用multi-speaker语音综合的方法:
Embedding层嵌入的speaker ID 。然后在培训期间学习说话者嵌入。Speaker Encoder (SE)从参考扬声器中嵌入音频。这通常被称为zero-shot voice cloning ,因为它仅需要扬声器的样本(无需培训)即可。prompt-based策略,以通过提示控制演讲。SV2TTS体系结构自动语音克隆注意:在下一段中, encoder是指Tacotron Encoder部分,而SE则是指speaker encoder模型(下面详细介绍)。
Speaker Encoder-based Text-To-Speech灵感来自“从扬声器验证到文本到语音(SV2TTS)”的论文。作者提出了Tacotron-2架构的扩展,以包括有关说话者声音的信息。
这是建议程序的简短概述:
speaker verification模型。该模型基本上将来自扬声器的音频样本(5-10秒)作为输入,并在名为embedding的d尺寸矢量上编码。这种嵌入旨在捕获有关说话者声音的相关信息(例如, frequencies , rythm , pitch ,...)。Speaker Encoder (SE)将扬声器的声音编码为克隆。Tacotron-2编码器部分的输出相连,以使Decoder可以同时访问编码的文本和扬声器嵌入。目的是, Decoder将学会使用speaker embedding来复制其韵律 /语调 / ...以此说话者的声音阅读文本。
上述方法有一些局限性:
Speaker Encoder必须正确分开扬声器,并以有意义的方式为合成器编码声音。为了应对这些限制,建议的解决方案是进行2步培训:
CommonVoice数据库上训练低质量的多演讲者模型。这是音频最大的多语言数据库之一,以嘈杂 /可变质量音频为代价。因此,这不适合培训高质量的模型,而预处理仍然有助于获得可理解的音频。SE部分应该能够以有意义的方式区分说话者,并嵌入(用1-D矢量编码)。
本文中使用的模型是3层LSTM模型,其归一化层训练了GE2E损失。主要限制是,训练该模型确实很慢,并且在Corentinj Master论文中花了2周的时间在4 GPU(参见他的Github)中进行了2周
该项目提出了基于Convolutional Neural Networks (CNN)简单体系结构,与LSTM网络相比,训练速度要快得多。此外, euclidian距离已被使用,而不是cosine度量,该度量显示了更快的收敛速度。此外,还提出了基于自定义缓存的生成器来加快音频处理。这些修改允许在2-3小时内在单个RTX 3090 GPU上训练99%的精度模型!
为了避免从头开始训练SV2TTS模型,这是在单个GPU上完全不可能的,提出了一个新的partial transfer learning程序。
该过程采用具有略有不同体系结构的预训练模型,并转移所有常见的权重(如常规转移学习中)。对于具有不同重量形状的层,只有共同的部分被转移,而其余的重量则初始化为零。这将导致一个具有不同权重的新模型,以模仿原始模型的行为。
在SV2TTS体系结构中,扬声器嵌入将传递到Tacotron2 decoder的复发层。这会导致不同的输入形状,从而使层权重矩阵不同。部分转移学习允许对模型进行修改,从而复制原始单扬声器Tacotron2模型的行为!
联系人:
[email protected]这些项目的目的是支持和推进深度学习技术的教育和研究。为了促进这一点,所有相关的代码均可根据GNU Affero通用公共许可证(AGPL)V3提供,并补充了禁止商业用途的条款(CF许可文件)。
这些项目被以“免费软件”发布,使您可以自由使用,修改,部署和共享该软件,只要您遵守许可证的条款即可。虽然该软件是免费的,但它不是公共领域,并且保留了版权保护。许可条件旨在确保每个用户可以为自己的教育和研究项目使用并修改任何版本的代码。
如果您希望在专有的商业努力中使用此项目,则必须获得单独的许可证。有关此过程的更多详细信息,请直接与我联系。
对于我的保护,重要的是要注意,所有项目均以“基础”为基础可用,而没有任何任何形式的保证或条件,无论是明确的还是暗示的。但是,请随时报告有关存储库项目的问题,还是提出请求解决该问题?
如果您发现此项目对您的工作有用,请添加此引文以使其更具可见性! ?
@misc{yui-mhcp
author = {yui},
title = {A Deep Learning projects centralization},
year = {2021},
publisher = {GitHub},
howpublished = {url{https://github.com/yui-mhcp}}
}
该项目的代码是多个GitHub项目的混合物,具有完全可调节的Tacotron-2实现
dynamic decoder实现而启发的,该实现现在已经对其进行了优化和更新,以兼容Keras 3 。SV2TTS体系结构的灵感来自该存储库,具有较小的差异和优化。论文: