Skip to content

weirdseed/Vits-Android-ncnn

Repository files navigation

vits Android部署

介绍

1.中日英cleaners基于MoeGoe项目二次开发

2.日语分词和声调基于OpenJtalkMecab日语分词库

3.英文g2p工具参考了eng_to_ipa

使用说明

一、确保手机有足够的空间,运行内存不小于1GB

二、下载发布页的apk文件并安装

三、功能介绍

文字转语音(tts)

  • 将模型文件下载之后解压放在手机/sdcard/Download文件夹下。

  • 点击加载配置(批准权限后),选择/sdcard/Download/[你的模型目录]/config.json加载配置文件。(示例:/sdcard/Download/模型/365_epochs/config.json)

  • 点击加载模型(批准权限后),选择/sdcard/Download/[你的模型目录]/*.bin加载模型文件。(示例:/sdcard/Download/模型/365_epochs/dec.ncnn.bin)

  • 输入文本,点击生成

  • 点击播放即可播放音频,点击导出即可将生成- 的音频导出,音频文件会保存在模型目录的上一级目录中

声线转换(vc)

  • 配置加载和模型加载同上

  • 点击录制声音将开启手机麦克风录制待转换的声音(请确保录音权限批准)或者点击加载音频将加载您要转换的音频(目前仅支持.wav格式)

  • 分别选择原讲话人和目标讲话人

  • 点击转换按钮即可将声音从原讲话人转换到目标讲话人

注意:

1、推理速度慢的话请手动增加线程数(默认为1),gpu选项可以选择不开启,由于Vulkan部分代码没有写,所以开启后反而更慢

2、本项目目前仅支持日语、中文和英文,所以确保输入支持的文本

四、(可选)自行编译教程

1.将代码下载到指定目录

git clone https://github.com/weirdseed/Vits-Android-ncnn.git

2.下载Vulkan版本ncnn库,或者自行到https://github.com/Tencent/ncnn/releases 下载,解压到项目的\app\src\main\cpp\目录下,(需更改目录名称为ncnn),目录结构如下

├─openjtalk.asset_manager_api
├─audio_process
├─fftpack
├─openjtalk.jpcommon
├─openjtalk.mecab
├─openjtalk.mecab2njd
├─openjtalk.mecab_api
├─ncnn
│  ├─arm64-v8a
│  ├─armeabi-v7a
│  ├─x86
│  └─x86_64
├─openjtalk.njd
├─openjtalk.njd2jpcommon
├─openjtalk.njd_set_accent_phrase
├─openjtalk.njd_set_accent_type
├─openjtalk.njd_set_digit
├─openjtalk.njd_set_long_vowel
├─openjtalk.njd_set_pronunciation
├─openjtalk.njd_set_unvoiced_vowel
├─openjtalk.text2mecab
└─vits

2.1 自行编译ncnn,请注意,ncnn默认的编译选项中rtti为关闭状态,需要的话自己手动打开,编译教程见链接

3、下载openjtalk字典文件解压到\src\main\assets文件夹,目录结构为

├─multi
├─open_jtalk_dic_utf_8-1.11
└─single

4、编译并运行项目

使用自己训练的模型

https://github.com/weirdseed/vits-ncnn-convert-tool

预览图

Screenshot_1674308191 Screenshot_1674308391

免责声明

1、模型禁止商用!

2、不可将本软件用作任何非法用途,后果自负

鸣谢

感谢CjangCjengh提供的模型还有Japanese cleaner,@nihui群主提供这么棒的框架,以及各位热心群友帮忙解决模型转换的各种问题