Awesome
AutoRegressive-VITS
(WIP) text to speech using autoregressive transformer and VITS
Note
- 模型效果未完全验证,不一定会好,请谨慎踩坑,预训练模型还在练
- 从零训练需要海量数据(至少上千小时?)(类似valle、speartts、soundstorm)数据量少一定不会有好效果。。
- 由于vits+refenc在zeroshot方向局限性很大,因此本仓库不追求zeroshot,本仓库的目标是,在有一个大的lm的pretrain的情况下,借助自回归lm的力量,希望在对小数据finetune以后能有很好的韵律。
- 简单更新了一些初步的 合成samples
Todo
- 在原神数据上训练
- 收集更多中文开源数据训练(预计600H左右)训练并放出pretrain(x) --> out-of-distribution文本效果很差,例如读文言文 并且长句效果不好, 会抽风
- 添加word level bert 并repeat到phoneme level改善out-of-distribution效果
- 将同一spk的数据多条合并为一条音频 提高平均数据时长 改善长句合成效果稳定性
- 更换为RoPE相对位置编码改善长句合成效果稳定性?
- 编写finetune相关代码,增加sid支持
- 优化日语和英语文本前端,收集更多日、英数据(预计每种语言600H)训练并放出pretrain
structure
- decoder only text2semantic from SoundStorm
- VITS from VITS
- reference encoder from TransferTTS
Training pipeline
- jointly train S2 vits decoder and quantizer
- extract semantic tokens
- train S1 text to semantic
vits S2 training
- resample.py
- gen_phonemes.py
- extract_ssl_s2.py
- gen_filelist_s2.py
- train_s2.py
gpt S1 training
- extract_vq_s1.py
- gen_filelist_s1.py
- train_s1.py
Inference
- s1_infer.py/s2_infer.py (work in progress)
Pretrained models
- work in progress