✨ VITS Android 版, 推理框架基于 alibaba-MNN.
本工程提供了一个示例,基于 MNN 实现了离线推理版本的 VITS,目前仅适配了中文,在 VITS-uma-genshin-honkai 上进行了验证:
- 🏗 MNN :基于 MNN 推理框架实现 VITS 的整个推理流程,推理参考自 script 内的 onnx 推理代码。
- 🧠 如果你希望用效果更好一些的模型,可以尝试 Bert-VITS2-MNN,但本仓库版本模型体积会 更小,包内体积约50M。
整个过程在 Android 端全程 离线推理 无需任何联网服务.
此处提供一些中文音频示例:
Text | Character | Audio |
---|---|---|
舰长,好久不见。 | 琪亚娜 | 🔊 Play |
我的马呢?我的马没了! | 东海帝皇 | 🔊 Play |
愿风神护佑你。 | 芭芭拉 | 🔊 Play |
GIT_LFS_SKIP_SMUDGE=1 git clone --recurse-submodules git@github.com:Voine/VITS-MNN.git
# for windows powershell
$env:GIT_LFS_SKIP_SMUDGE=1; git clone --recurse-submodules git@github.com:Voine/VITS-MNN.git
cd VITS-MNN
If already cloned:
git submodule update --init --recursive
📦 建议使用 Android Studio 进行工程编译,用 IDE 打开根目录即可
# From project root
./gradlew assembleRelease
本工程的一些文件如 .mnn
.onnx
,使用 lfs 进行存储,需要按照如下方式拉代码:
git lfs install
git lfs pull
To track files (if contributing):
git lfs track "*.mnn"
Library | Path |
---|---|
MNN | third_party/MNN |
- 如果你需要替换自己的模型尝试验证,首先需要参考 VITS-fast-fine-tuning 内的说明进行训练得到桌面端模型, 作者基于 VITS-uma-genshin-honkai 模型进行了验证,其他的 VITS 仓库模型暂未验证
- 将你的 pth 模型转换成 onnx, onnx 导出脚本在 script
- 使用 MNN Convert 将所有模块的 onnx 模型转成 mnn
- 放到 assets/mnn 内,如果你的模型名字有变化,则需要修改 VoiceViewModel.kt 内关于模型路径加载的部分。
目前在 third_party 内的 MNN 仅是为了提供头文件
├── app/
├──── src/main/
│ ├── assets # mnn vits model
│ ├── java/ChineseCleaners # Text preprocess code
├── MNN_Vits # VITS infer code
├── third_party # provide hpp
本工程基于以下前辈们的贡献做了一些微不足道的搬砖工作,也希望能为后续在端智能推理捣鼓的小伙伴提供一些参考。
-
感谢 GGDDBB 提供的文本预处理相关的工作。