VoiceFlow-TTS简介
VoiceFlow-TTS是一个基于整流流匹配(Rectified Flow Matching)的高效文本转语音(TTS)模型,由X-LANCE团队开发并在ICASSP 2024会议上发表。该模型通过创新的流匹配方法提高了TTS的效率,在保证语音质量的同时显著提升了生成速度。
项目资源
- GitHub仓库: X-LANCE/VoiceFlow-TTS
- 论文: VoiceFlow: Efficient Text-to-Speech with Rectified Flow Matching
- 项目主页: cantabile-kwok.github.io/VoiceFlow
环境配置
VoiceFlow-TTS基于Python 3.9开发,推荐使用conda创建虚拟环境:
conda create -n vflow python==3.9
conda activate vflow
pip install -r requirements.txt
此外还需要安装monotonic_align:
cd model/monotonic_align
python setup.py build_ext --inplace
数据准备
VoiceFlow-TTS使用Kaldi风格的数据组织方式。主要需要准备以下文件:
- wav.scp: 音频文件路径
- utts.list: 语音ID列表
- utt2spk: 语音到说话人的映射
- text: 文本内容
- phn_duration: 音素持续时间
对于LJSpeech数据集,项目提供了预处理好的数据。
准备好数据后,运行以下脚本提取Mel频谱:
bash extract_fbank.sh --stage 0 --stop_stage 2 --nj 16
模型训练
训练配置存储在configs/
目录下的YAML文件中。运行以下命令开始训练:
python train.py -c configs/${your_yaml} -m ${model_name}
训练过程中会自动保存检查点。
模型推理
使用以下命令进行推理:
python inference_dataset.py -c configs/${your_yaml} -m ${model_name} --EMA --solver euler -t 10
生成的Mel频谱将保存在synthetic_wav/${model_name}/tts_gt_spk/feats.scp
。
高级功能
VoiceFlow-TTS还包含一些实验性功能:
- 声音转换
- 似然估计
- 最优传输
- 不同的估计器架构
- 改进的对齐学习
详细信息可以参考项目README。
总结
VoiceFlow-TTS为TTS领域带来了新的思路和方法。通过本文的学习资料汇总,相信读者可以快速上手这个优秀的开源项目,并在此基础上进行进一步的研究和应用。欢迎大家star和fork该项目,为TTS技术的发展贡献力量! 🚀