MCPcopy Create free account
hub / github.com/Voine/ChatWaifu_Mobile

github.com/Voine/ChatWaifu_Mobile @v2.0.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.0.3 ↗ · + Follow
11,617 symbols 19,270 edges 742 files 1,691 documented · 15% updated 3y agov2.0.3 · 2023-06-19★ 1,41118 open issues

Browse by type

Functions 9,439 Types & classes 2,178
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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/

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 8,285
Class 1,687
Function 1,154
Enum 483
Interface 8

Languages

C++95%
Kotlin4%
C1%
Java1%

Modules by API surface

VITS/src/main/cpp/ncnn/x86_64/include/glslang/Include/Types.h263 symbols
VITS/src/main/cpp/ncnn/x86/include/glslang/Include/Types.h263 symbols
VITS/src/main/cpp/ncnn/armeabi-v7a/include/glslang/Include/Types.h263 symbols
VITS/src/main/cpp/ncnn/arm64-v8a/include/glslang/Include/Types.h263 symbols
VITS/src/main/cpp/ncnn/x86_64/include/glslang/MachineIndependent/localintermediate.h213 symbols
VITS/src/main/cpp/ncnn/x86/include/glslang/MachineIndependent/localintermediate.h213 symbols
VITS/src/main/cpp/ncnn/armeabi-v7a/include/glslang/MachineIndependent/localintermediate.h213 symbols
VITS/src/main/cpp/ncnn/arm64-v8a/include/glslang/MachineIndependent/localintermediate.h213 symbols
Live2D/src/SDKRoot/OpenGL/thirdParty/stb/stb_image.h208 symbols
VITS/src/main/cpp/ncnn/x86_64/include/glslang/Include/intermediate.h173 symbols
VITS/src/main/cpp/ncnn/x86/include/glslang/Include/intermediate.h173 symbols
VITS/src/main/cpp/ncnn/armeabi-v7a/include/glslang/Include/intermediate.h173 symbols

For agents

$ claude mcp add ChatWaifu_Mobile \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page