VALL-E 项目介绍
VALL-E 是一个基于 PyTorch 的项目,目标是实现语音合成的创新方式。这个项目是对 VALL-E 方法的非官方实现,使用了 EnCodec 分词器。这种方法的目标是通过代码化语音,达到高质量的语音生成。
项目背景
VALL-E 基于神经网络模型,主要应用在文本到语音(Text-to-Speech, TTS)的合成中。这种技术被认为能够在无需大量样例的情况下进行出色的语音生成,因而被称为零样本文本到语音合成器(Zero-Shot Text-to-Speech Synthesizer)。
如何开始
尽管 VALL-E 的一些模型目前尚未发布,但用户可以通过简单的安装步骤和示例代码来开始使用或试验。
系统要求
由于 VALL-E 的训练部分依赖于 DeepSpeed 框架,用户需要使用 DeepSpeed 已经测试过的 GPU,并需要事先安装好 CUDA 或 ROCm 编译器。
安装步骤
用户可以通过以下两种方式之一来安装 VALL-E:
-
使用 pip 命令:
pip install git+https://github.com/enhuiz/vall-e
-
克隆项目源码:
git clone --recurse-submodules https://github.com/enhuiz/vall-e.git
注意,代码已在 Python 3.10.7 环境下进行测试。
训练模型
要训练自己的语音合成模型,用户需遵循以下步骤:
-
准备数据:将音频文件放置在一个文件夹中,确保音频文件是
.wav
格式,文本文件是.normalized.txt
格式。 -
数据量化:对数据进行量化处理:
python -m vall_e.emb.qnt data/your_data
-
生成音素:基于文本生成音素:
python -m vall_e.emb.g2p data/your_data
-
配置训练参数:通过参考示例配置文件来设置自己的训练参数并存储在
config/your_data/
目录下。 -
开始训练:选择合适的训练脚本开始训练过程:
python -m vall_e.train yaml=config/your_data/ar_or_nar.yml
训练过程中,用户可以随时通过命令行退出,检查点会自动保存。
模型导出和合成语音
训练完成后,模型需要导出到特定路径以便进一步使用:
python -m vall_e.export zoo/ar_or_nar.pt yaml=config/your_data/ar_or_nar.yml
进行语音合成:
python -m vall_e <text> <ref_path> <out_path> --ar-ckpt zoo/ar.pt --nar-ckpt zoo/nar.pt
剩余工作及注意事项
项目仍在进行中,目前许多功能已经实现,如音频从令牌中解码、NAR 模型实现等,未来将引入更多的预训练模型和演示。
此外,使用 EnCodec 技术需要遵循 CC-BY-NC 4.0 许可协议。
引用
项目相关的重要文献有:
@article{wang2023neural,
title={Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers},
author={Wang, Chengyi, et al.},
journal={arXiv preprint arXiv:2301.02111},
year={2023}
}
@article{defossez2022highfi,
title={High Fidelity Neural Audio Compression},
author={Défossez, Alexandre, et al.},
journal={arXiv preprint arXiv:2210.13438},
year={2022}
}
VALL-E 项目努力为文本到语音领域提供新的解决方案,使得高保真语音生成成为可能,并推动此领域的持续发展。