Skip to content

Voine/ChatWaifu_Mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

14092ac · Jun 19, 2023

History

63 Commits
Jun 18, 2023
May 10, 2023
May 12, 2023
Apr 30, 2023
May 11, 2023
Apr 30, 2023
Jun 19, 2023
Jun 18, 2023
Mar 17, 2023
Feb 22, 2023
Feb 19, 2023
May 25, 2023
Apr 30, 2023
Feb 19, 2023
Feb 19, 2023
Feb 19, 2023
May 10, 2023
May 10, 2023

Repository files navigation

ChatWaifu_Mobile

年轻人的第一个移动版老婆聊天器(雾

简介

Android 手机版的 ChatGPT 二次元聊天器。
目前内置如下模型,会自动播放 ChatGPT 的回复,由于内置为日语模型,其他语言的播放效果可能相当一言难尽, 可以替换增加本地模型。

模型1: 语音和模型均来自 Blue Archive 优香。
模型2: 语音和模型均来自命运石之门牧濑红莉栖 - Amadeus 限定,β 世界线警告 :).
模型3: 语音和模型均来自 ANIPLEX 的作品 ATRI -My Dear Moments- 的主角亚托莉

  • 语言大模型来自 GhatGPT
  • 语音推理为客户端本地 VITS - ncnn
  • 图形渲染基于 Native Live2D
  • 语音输入识别为客户端本地 Sherpa - ncnn
  • UI 框架为 Jetpack Compose
  • 项目结构为 Retrofit + MVVM + LiveData/Flow + Room
  • 多个 ncnn 库似乎是进程独享资源,使用 AIDL 做进程间通信
  • 嘴形同步接入了 Native 版 meta - lipSync
  • 接了 baidu 翻译功能,如需则自行设置 appid 和 key,不需要可在 setting 页面关闭翻译功能

关于 ChatGPT

OpenAI Key 地址,将其输入登录页面的 Chat Key 部分就行,本地会缓存。

关于移动端 VITS

详见这里

关于 Live2D

使用基于 Native C++ 的原生版本,详见这里

关于语音识别输入

使用 Sherpa-ncnn ,详见这里

关于嘴形同步

接入了 Native 版 meta-lipSync,详见这里
注:不过由于 LipSync 在实际使用中发现会有时长同步/映射等等问题,太过麻烦,目前只是播一个循环动画

关于模型替换

VITS 模型

首先,模型需要参照这里,转成 ncnn 的版本,成功后会生成一个 config.json 以及很多的 bin 文件。将它们统一放在手机文件管理内 chatwaifu/vits/ 目录下,放完后整个目录是这样的:

文件管理:
├─chatwaifu
     ├─ vits
         ├─ yourModel
              ├─ config.json
              ├─ xxxx.bin
              ├─ xxxx.bin
              ├─ .....

Live2D 模型

支持官方标准的 Live2D 格式,需要将它们放在手机文件管理内 chatwaifu/live2d/ 目录下,放完后整个目录是这样的:

文件管理:
├─chatwaifu
     ├─ live2d
         ├─ yourModel
              ├─ yourModel.model3.json
              ├─ xxx.moc3
              ├─ xxx.exp3.json
              ├─ .....

注意

  • live2d 模型的名字与需要与 vits 模型的目录名一致,Live2D 的 model3.json 要和目录名一致
  • 如果你的 VITS 模型是多人混合的,需要在 Setting 页面指定 Speaker ID, 不指定默认为 0

关于翻译

设置后会默认将 GPT 输出的语言翻译成日文交给 VITS,否则内置的模型说别的语言可能基本不出声...
接了 baidu 翻译,可以免费申请一个开发者账号 这里 ,将申请到的 appid 和 密钥填到登录页的第二第三栏,或者在左上角菜单里选取 setting ,进行更改就行了

关于角色设定

目前每个模型都有内置的设定,外部导入的模型可将设定填写到 Setting 页面的 External Setting 部分

示例图

免责声明

1、模型禁止商用!

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

鸣谢

感谢 @weirdseed 大佬实现的 Android 版 VITS !

说明视频

https://www.bilibili.com/video/BV1w24y1K799/