深受 Neuro-sama 启发

[!WARNING] 注意: 我们没有发行任何与本项目关联的加密货币或代币,请注意判断资讯并谨慎行事。

[!NOTE]

我们有一个专门的组织 @proj-airi 用于所有从 Project AIRI 诞生的子项目,快来看看吧!

RAG(检索增强生成)、记忆系统、嵌入式数据库、图标、Live2D 实用工具等等!

[!TIP] 我们在 Crowdin 上有翻译项目。如果你发现翻译不准确,欢迎在上面参与翻译并贡献修正。 Crowdin | Agile localization for tech companies

你是否梦想过拥有一个赛博生命(赛博 waifu、数字桌宠),或者能与你玩耍和交谈的数字伴侣?

借助现代大型语言模型的力量,像是 ChatGPT 和著名的 Claude 所能带来的,想要 LLM(大语言模型)和我们角色扮演、聊天已经超简单了,每个人都能上手。而像 Character.ai(又称 c.ai) 和 JanitorAI 这样的平台,以及本地应用如 SillyTavern(又称酒馆),已经是基于聊天或文字冒险游戏体验的相当不错的解决方案。

但是,如何赋予它们玩游戏的能力呢?让它们能看到你正在编写的代码?不仅能一边聊天一边玩游戏,也可以看视频,还能做很多其他事情?

你可能已经知道 Neuro-sama,她目前是最好的能够玩游戏、聊天并与你和参与者(在VTuber社区中)互动的 AI VTuber / 伴侣,有些人也称这种存在为”数字人”。可惜的是,她并不开源,当她从直播中下线后,你就无法与她互动了。

因此,这个项目 AIRI,在这里提供了另一种可能性:让你轻松拥有自己的数字生命、赛博生命,随时随地。

我们发布的 DevLog & 近期更新

这个项目有什么特别?

与其他 AI 和 LLM 驱动的 VTuber 开源项目不同,アイリ VTuber 从开始开发的第一天开始就支持多种 Web 技术,涵盖诸如 WebGPU、WebAudio、Web Workers、WebAssembly、WebSocket 等已经广泛应用或仍在大量实验的 API。

[!TIP] 担心使用 Web 技术会导致性能下降吗?

不用担心,浏览器版本旨在展示我们在浏览器和 webview 里能做到什么,但不会完全依赖它。AIRI 的桌面版默认可用 NVIDIA CUDA 和 Apple Metal(多亏了 HuggingFace 与可爱的 candle 项目),且无需复杂的依赖管理。考虑到取舍,我们在图形、布局、动画和 WIP 插件系统上部分使用了 Web 技术,方便大家集成。

这意味着 アイリ VTuber 能够在现代浏览器和设备上运行,甚至能够在移动设备上运行(已经完成了 PWA 支持),这为我们(贡献者们)带来了更多的可能性,让我们得以更进一步构建和扩展 アイリ VTuber 的外部功能,而与此同时也不失配置的灵活性——可以有选择地在不同设备上启用会需要 TCP 连接或其他非 Web 技术的功能,例如连接到 Discord 的语音频道一起开黑,或是和朋友们一起玩 Minecraft(我的世界)、Factorio(异星工厂)。

[!NOTE]

アイリ VTuber 仍处于早期开发阶段,我们欢迎优秀的开发者加入我们,一起将它变为现实。

即使不熟悉 Vue.js、TypeScript 和所需的其他开发工具也没关系,我们也欢迎艺术家、设计师、运营策划的加入,你甚至可以成为第一个用 アイリ VTuber 直播的博主。

如果你使用的是 React、 Svelte,甚至 Solid 也没关系,您可以自己创建一个子目录,添加您希望在 アイリ VTuber 中看到的功能,或者想实验的功能。

我们非常期待以下领域的朋友加入:

  • Live2D 模型师
  • VRM 模型师
  • VRChat 模型设计师
  • 计算机视觉(CV)
  • 强化学习(RL)
  • 语音识别
  • 语音合成
  • ONNX 推理运行时
  • Transformers.js
  • vLLM
  • WebGPU
  • Three.js
  • WebXR (也可以看看我们在 @moeru-ai 组织下另外的这个项目)

如果你已经感兴趣了,为什么不来这里和大家打个招呼呢?Would like to join part of us to build AIRI?

当前进度

目前已经能做到:

  • 大脑
    • 玩 Minecraft
    • 玩 Factorio(进行中,但已提供 PoC 和 demo)
    • 在 Telegram 聊天
    • 在 Discord 聊天
    • 记忆
      • [x] 纯浏览器内数据库支持(DuckDB WASM pglite)
      • Alaya 记忆层(施工中)
    • 纯浏览器的本地推理(基于 WebGPU)
  • 耳朵
    • 浏览器音频输入
    • Discord 音频输入
    • 客户端语音识别
    • 客户端说话检测
  • 嘴巴
  • 身体
    • VRM 支持
      • 控制 VRM 模型
    • VRM 模型动画
      • 自动眨眼
      • 自动看
      • 空闲眼睛移动
    • Live2D 支持
      • 控制 Live2D 模型
    • Live2D 模型动画
      • 自动眨眼
      • 自动看
      • 空闲眼睛移动

开发

开发本项目的详细指南请参阅 CONTRIBUTING.md

[!NOTE] 默认情况下 pnpm dev 会启动 Stage Web(浏览器版)的开发服务器;如果你想尝试桌面版,请先阅读 CONTRIBUTING.md 正确完成环境配置。

pnpm i
pnpm dev

网页版 (也就是 airi.moeru.ai 的版本)

pnpm dev

桌面版(也叫拓麻歌子,aka 电子宠物)

pnpm dev:tamagotchi

我们提供了拓麻歌子的 Nix 包。先启用 flakes,然后可以直接运行:

nix run github:moeru-ai/airi

文档站

pnpm dev:docs

发布

运行 bumpp 后,请记得在 Cargo.toml 中更新版本号:

npx bumpp --no-commit --no-tag

原生支持的 LLM API 服务来源列表(由 xsai 驱动)

从这个项目诞生的子项目

%%{ init: { 'flowchart': { 'curve': 'catmullRom' } } }%%

flowchart TD
  Core("Core")
  Unspeech("unspeech")
  DBDriver("@proj-airi/drizzle-duckdb-wasm")
  MemoryDriver("[WIP] Memory Alaya")
  DB1("@proj-airi/duckdb-wasm")
  SVRT("@proj-airi/server-runtime")
  Memory("Memory")
  STT("STT")
  Stage("Stage")
  StageUI("@proj-airi/stage-ui")
  UI("@proj-airi/ui")

  subgraph AIRI
    DB1 --> DBDriver --> MemoryDriver --> Memory --> Core
    UI --> StageUI --> Stage --> Core
    Core --> STT
    Core --> SVRT
  end

  subgraph UI_Components
    UI --> StageUI
    UITransitions("@proj-airi/ui-transitions") --> StageUI
    UILoadingScreens("@proj-airi/ui-loading-screens") --> StageUI
    FontCJK("@proj-airi/font-cjkfonts-allseto") --> StageUI
    FontXiaolai("@proj-airi/font-xiaolai") --> StageUI
  end

  subgraph Apps
    Stage --> StageWeb("@proj-airi/stage-web")
    Stage --> StageTamagotchi("@proj-airi/stage-tamagotchi")
    Core --> RealtimeAudio("@proj-airi/realtime-audio")
    Core --> PromptEngineering("@proj-airi/playground-prompt-engineering")
  end

  subgraph Server_Components
    Core --> ServerSDK("@proj-airi/server-sdk")
    ServerShared("@proj-airi/server-shared") --> SVRT
    ServerShared --> ServerSDK
  end

  STT -->|Speaking| Unspeech
  SVRT -->|Playing Factorio| F_AGENT
  SVRT -->|Playing Minecraft| MC_AGENT

  subgraph Factorio_Agent
    F_AGENT("Factorio Agent")
    F_API("Factorio RCON API")
    factorio-server("factorio-server")
    F_MOD1("autorio")

    F_AGENT --> F_API -.-> factorio-server
    F_MOD1 -.-> factorio-server
  end

  subgraph Minecraft_Agent
    MC_AGENT("Minecraft Agent")
    Mineflayer("Mineflayer")
    minecraft-server("minecraft-server")

    MC_AGENT --> Mineflayer -.-> minecraft-server
  end

  XSAI("xsAI") --> Core
  XSAI --> F_AGENT
  XSAI --> MC_AGENT

  Core --> TauriMCP("@proj-airi/tauri-plugin-mcp")
  Memory_PGVector("@proj-airi/memory-pgvector") --> Memory

  style Core fill:#f9d4d4,stroke:#333,stroke-width:1px
  style AIRI fill:#fcf7f7,stroke:#333,stroke-width:1px
  style UI fill:#d4f9d4,stroke:#333,stroke-width:1px
  style Stage fill:#d4f9d4,stroke:#333,stroke-width:1px
  style UI_Components fill:#d4f9d4,stroke:#333,stroke-width:1px
  style Server_Components fill:#d4e6f9,stroke:#333,stroke-width:1px
  style Apps fill:#d4d4f9,stroke:#333,stroke-width:1px
  style Factorio_Agent fill:#f9d4f2,stroke:#333,stroke-width:1px
  style Minecraft_Agent fill:#f9d4f2,stroke:#333,stroke-width:1px

  style DBDriver fill:#f9f9d4,stroke:#333,stroke-width:1px
  style MemoryDriver fill:#f9f9d4,stroke:#333,stroke-width:1px
  style DB1 fill:#f9f9d4,stroke:#333,stroke-width:1px
  style Memory fill:#f9f9d4,stroke:#333,stroke-width:1px
  style Memory_PGVector fill:#f9f9d4,stroke:#333,stroke-width:1px

同类项目

开源项目

非开源项目

  • https://clips.twitch.tv/WanderingCaringDeerDxCat-Qt55xtiGDSoNmDDr https://www.youtube.com/watch?v=8Giv5mupJNE
  • https://clips.twitch.tv/TriangularAthleticBunnySoonerLater-SXpBk1dFso21VcWD
  • https://www.youtube.com/@NOWA_Mirai

项目状态

Repobeats analytics image

鸣谢

Star History

Star History Chart

参考资料