Skip to content
/ VITS-MNN Public

TTS System VITS Android Ver, powered by alibaba-MNN engine.

License

Notifications You must be signed in to change notification settings

Voine/VITS-MNN

Repository files navigation

VITS-MNN

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

⚡ 本地编译指南

Clone with submodules

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

Build for Android

📦 建议使用 Android Studio 进行工程编译,用 IDE 打开根目录即可

# From project root
./gradlew assembleRelease

🛁 Git LFS

本工程的一些文件如 .mnn .onnx ,使用 lfs 进行存储,需要按照如下方式拉代码:

git lfs install
git lfs pull

To track files (if contributing):

git lfs track "*.mnn"

🛠️ Submodule 依赖

Library Path
MNN third_party/MNN

💡 关于 - 自制模型替换 -

  1. 如果你需要替换自己的模型尝试验证,首先需要参考 VITS-fast-fine-tuning 内的说明进行训练得到桌面端模型, 作者基于 VITS-uma-genshin-honkai 模型进行了验证,其他的 VITS 仓库模型暂未验证
  2. 将你的 pth 模型转换成 onnx, onnx 导出脚本在 script
  3. 使用 MNN Convert 将所有模块的 onnx 模型转成 mnn
  4. 放到 assets/mnn 内,如果你的模型名字有变化,则需要修改 VoiceViewModel.kt 内关于模型路径加载的部分。

💡 关于 - third_party -

目前在 third_party 内的 MNN 仅是为了提供头文件


📋 工程大体结构

├── app/
├──── src/main/                 
│           ├── assets                    # mnn vits model
│           ├── java/ChineseCleaners      # Text preprocess code
├── MNN_Vits                              # VITS infer code
├── third_party                           # provide hpp


💡 类似仓库


🙌 鸣谢

本工程基于以下前辈们的贡献做了一些微不足道的搬砖工作,也希望能为后续在端智能推理捣鼓的小伙伴提供一些参考。


免责声明

本项目仅供学习交流使用,禁止用于商业用途,作者纯为爱发电搞着玩的。

严禁将此项目用于一切违反《中华人民共和国宪法》,《中华人民共和国刑法》,《中华人民共和国治安管理处罚法》和《中华人民共和国民法典》之用途。

严禁用于任何政治相关用途。