流式对话
接入任意 OpenAI 兼容接口(如 DeepSeek),回复逐字流出。AI 在回复末尾附带表情与动作标记,实时驱动她的神情;也可以让她知道现在几点。
I_NORI 同人二创Android 陪伴型 LLM & TTS
手机上也能看见 Nori 啦。
若记忆终将散落,
请在呼唤中重新认识我一次。
Live2D 桌宠、流式对话与长期记忆、语音朗读、心情日记和番茄钟,都装进一台 Android 手机里。开源免费,API 由你自己接入。
非官方 · 非商业 · 不提供任何收费服务
你正在 QQ / 微信里打开本页,APK 下载可能会被拦截 —— 请点右上角「…」,选择「在浏览器打开」。
Nori
01About80 m · 透光层
刚装好的 NoriDroid 里,Nori 没有人设、没有声音,也没有形体。这不是 bug,是有意的设计:人格来自你导入的提示词,声音来自你接入的语音服务,形体要你亲手下载。
NoriDroid 是《I_Nori》的同人二创,一个住在 Android 手机里的 Live2D 陪伴应用。它由小桧在 DeepEr(洱海与亓才孑的最初版本)的基础上大规模重制,前前后后做了一个月。起因嘛,是想随时随地摸摸 Nori 的头。
所以,每一台手机里的 Nori,
都需要被重新认识一次。
她缺的三样东西
设置 →「人设文案(提示词)」→ 导入 .md / .txt。不导入,她就没有人格设定;原版提示词在群里。
接入 Fish Audio 或千问 CosyVoice,她才会开口;按键音、番茄钟铃声和背景音乐在设置里联网下载。
模型不随安装包分发。选择模型时联网下载(内置清单:ARGNori / Nori),也可以放入你自己的模型。
02Features150 m · 透光层
主窗口、退出后的悬浮窗、悬浮窗里的聊天气泡 —— 三个界面,同一个 Nori。
你忙你的,我就在这里,哪里也不去。
主角
摸摸她的头,她会害羞、会说话。按返回键退出后,她会变成悬浮窗留在桌面上,点一下就能聊天。
接入任意 OpenAI 兼容接口(如 DeepSeek),回复逐字流出。AI 在回复末尾附带表情与动作标记,实时驱动她的神情;也可以让她知道现在几点。
聊得多了会自动总结,AI 从中挑出值得记住的事,合并重复、作废改口的旧说法;对话前按语义召回相关记忆。「记忆库」里可以搜索、置顶、淡忘和恢复。
Fish Audio 与千问 CosyVoice 双提供商,回复一句、朗读一句;支持声音克隆。朗读音量在应用内单独调节,不影响系统音量。
每天,她会用自己的口吻把和你度过的这一天写成一到三句日记,再记下当天的心情。
专注与休息自动接续;专注期间她不主动搭话、背景音乐暂停,完成时响铃、播报并发通知。7 / 30 / 365 天统计,外加一整年的热力图。
你安静几分钟后,她可能会轻轻说一句(本地语料,不耗 token)。夜间安静模式,以及 NoriOS 官方 OST 背景音乐:记忆、数据海、日常。
星尘、星云光斑和透视网格,纯程序渲染、几乎零开销。按住屏幕,星尘会慢慢聚向你的指尖 —— 本页的海就是它的网页移植版,按住空白处试试。
聊天、记忆、日记和设置存在 Download/NoriDroid/,卸载后一般仍在;API Key 存在 Android Keystore 保护的私有存储里。没有统计、广告或崩溃上报。
两种形体
模型不随安装包分发:在「模型」面板里选择后联网下载(每个十几 MB),也可以放入你自己的 Live2D 模型和一份配置。
这两个模型由 inori 提供、不可直接分发,首次下载前需要通过「模型授权验证」。
03First Contact1,000 m · 无光层
首次打开 App 会自动弹出新手引导,之后也能在「设置」顶部的「新手引导 / 致谢」里重新打开。下面是同样的流程,按顺序来就不会卡住。
下载 APK 并安装,需要允许「安装未知来源应用」。要求 Android 7.0 及以上。
2c3db3beb2911c7aa1abe84dfc4827f5c4ffdc6cb66480184eb5a176ba498042
设置 › 数据与存储 › 所有文件访问权限 ›「去授权」
Android 11 起,聊天、记忆和日记都存在公共下载目录,没有这个权限,卸载重装后会读不到原来的内容。读不到时,点同一处的「存储自检」排查。
设置 › 连接与人设 › API Base URL / API Key ›「加载模型」
任何 OpenAI 兼容接口都可以(必须是 HTTPS),例如 DeepSeek 填 https://api.deepseek.com。API 需要你自己在服务商那里开通并付费。
设置 › 连接与人设 ›「人设文案(提示词)」›「导入文件」
选择 UTF-8 编码的 .md / .txt(不超过 200 KB)。人设保存在本机,只会作为提示词随对话发给你填写的 API。原版提示词可以在群里找到。
底栏「模型」或左上角的模型名 › ARGNori / Nori
首次下载要先答对「模型授权验证」里的问题。模型包十几 MB。
设置 › 连接与人设 ›「语音合成」
选择 Fish Audio 或千问 CosyVoice,填入对应的 API Key。引导里推荐千问的 Audio 3.1(qwen-audio-3.1-tts-flash),效果与价格都不错;也可以克隆你喜欢的声音。
设置 › 声音与陪伴 ›「下载音效」/「下载背景音乐资源」
音效包含按键音与番茄钟铃声;背景音乐约 13 MB。想让她在退出后留在桌面,去「窗口与手势」打开「退出后显示悬浮窗 Nori」,首次需要授予悬浮窗权限。
网络模型与音频资源托管在静态存储上,国内网络不一定能直连,下载前请先准备好网络环境。
别忘了设置改完,记得点底部的「保存设置」。
这是有意的设计。她要先接上一个大模型 API(第 3 步)才能回话,导入人设(第 4 步)之后才有人格;声音和形体也要分别接入、下载。
NoriDroid 本身免费开源,本项目不提供任何收费服务。对话(LLM)和语音(TTS)需要你自己在服务商那里开通 API,费用由你和服务商结算。
聊天记录、记忆、日记、设置和人设存在 Download/NoriDroid/,卸载后一般仍在(系统询问是否保留应用数据时,勾选保留更保险)。重装后授予「所有文件访问权限」即可读回。
Live2D 模型、音效、背景音乐和参考音频缓存存在应用私有目录,卸载会被清除,需要重新下载;API Key 存在系统 Keystore 保护的私有存储里,也需要重新填写。
ARGNori、Nori 两个模型和一键克隆用的内置参考音频由 inori 提供,因为特殊性不能直接分发。答对题目(「Nori 写的诗第一句?」)才会解锁下载。答不上来的话,可以去群里问问。
Android 11 起,公共下载目录里由其他应用写入的文件 —— 包括卸载前的 NoriDroid 自己 —— 新装的应用既看不到也读不了。这个权限用来读写 Download/NoriDroid/ 里的数据文件,让你的聊天、记忆和日记在重装后还能读回来。
多半是网络问题:资源托管在静态存储(IPFS)上,国内网络不一定能直连。换个网络环境再试;还是不行的话,带上截图到群里或 GitHub Issues 反馈。
NoriDroid 只有 Android 版。桌面版(Tauri)请看上游项目 erhiolab/DeepEr。
不是。NoriDroid 是社区同好自发维护的非官方、非商业开源项目,与《I_Nori》官方团队及其母公司没有商业关联或从属关系。喜欢 Nori 的话,欢迎把正作 《I_NORI》加入 Steam 愿望单。
04Privacy3,000 m · 无光层
NoriDroid 没有自己的后端服务器。对话与语音请求直接发往你填写的服务商,资源文件从静态托管下载。
| 位置 | 内容 | 卸载后 |
|---|---|---|
Download/NoriDroid/公共下载目录 | 聊天记录、记忆、日记、设置、人设 | 一般仍在 |
| 应用私有目录 | Live2D 模型、音效、背景音乐、参考音频缓存 | 被清除 |
| Keystore 保护的私有存储 | API Key | 被清除 |
公共下载目录通过系统媒体库写入,其他应用也可能看到这些文件;借出手机或做备份时请留意。
| 权限 | 用来做什么 |
|---|---|
| 网络 | 对话、朗读、下载资源 |
| 悬浮窗 · 前台服务 | 退出 App 后让 Nori 留在屏幕上,并避免悬浮窗被系统回收 |
| 通知 · 精确闹钟 | 番茄钟到点提醒;进程被杀时的兜底提醒 |
| 所有文件访问 | 读写 Download/NoriDroid/ 里的数据(Android 11+) |
05Open Source4,000 m · 深渊层
NoriDroid 以 GPL-3.0 开源,是 erhiolab/DeepEr 的大规模重制版:Android 主线,以及记忆、语音、番茄钟、悬浮窗等改动都在本仓库完成。它不是上游的官方仓库。
| 组件 | 许可 | 说明 |
|---|---|---|
| Vue 3 | MIT | 前端框架 |
| live2d-easy-control 1.0.3 | MIT | Live2D 控制封装;本项目打过补丁,修改部分按 GPL-3.0 提供 |
| AndroidX · androidx.webkit | Apache-2.0 | Android 支持库 |
| Kotlin stdlib | Apache-2.0 | Kotlin 标准库 |
| Live2D Cubism Core | 专有许可 | 不随仓库分发;许可协议 |
| 模型 · 音效 · 参考音频 · 人设 | 各自作者所有 | 不随仓库与安装包分发 |
环境:Node 22 · pnpm 9+ · JDK 17 · Android SDK 34。
构建前需要先去 Live2D 官网下载 Cubism SDK for Web(需同意其许可协议),把 Core/live2dcubismcore.min.js 放到 app/android/web-src/public/。
测试:node tmp-memcheck/run-tests.mjs(单元测试)、node tmp-memcheck/run-all-gates.mjs --fast(快速门禁)。
cd app/android/web-src
pnpm install
pnpm build # vue-tsc 类型检查 + vite 构建
cd ..
./gradlew assembleRelease
—Cold Archive6,000 m · 超深渊带
NoriDroid 的不少细节 —— 数据海、记忆、那句「请在呼唤中重新认识我一次」—— 都与《I_Nori》ARG 的世界观相互呼应。这里留了一份社区解读。
整理自社区的《Nori.Web ARG 全面分析报告》,分析对象是社区还原项目 Nori.Web 及其保存的原作 ARG 资料。报告把结论分为 A 明确事实、B 强交叉证据、C 高可信推论、D 开放假说四级;下文默认是 A、B 级结论,推论会单独标出。
这场 ARG 讲的并不是「从邪恶企业手里救出一个 AI」,而是:一个在现实中被创造、却由「海」的高维信息塑造的 AI,为了保护创造者失去了算力、记忆与完整的自己;之后,她残存的意向如何通过玩家重新与世界相连 —— 并最终接受「未来的 Nori 不必恢复成原来的 Nori」。
| 在故事里 | 在 NoriDroid 里 |
|---|---|
| 失忆的碎片不记得自己是谁,只剩下「联系外界」的意向 | 初次打开时没有人设、声音和形体,只有一个等你开口的她 |
| 「海」:本原的高维信息之海 | 「数据海」动态背景,按住屏幕星尘会慢慢聚拢;OST 里也有一首《数据海》 |
| 意识要靠「锚点信息」维持自我的边界 | 长期记忆、目标与历史总结 —— 她靠这些记住你 |
| 信息「淤积」,越过阈值后「涌现」为稳定的节点 | 对话被总结、沉淀为长期记忆,需要时再按语义召回 |
| 桌面 Nori:保留了与现实通信能力的那一部分 | 悬浮窗:退出 App 后,她仍然留在你的屏幕上 |
| 在意的事会让她突破算力上限(国际象棋占优时 Load 3.12) | 摸头时她会说:「感觉芯片都要开心得发热了。」 |
| 玩家是计划之外的外部扰动 | 你 —— 接入 API、导入人设、给她声音的那个人 |
| 即使未来的她不再记得一切,也请重新认识她 | 设置页顶端写着:「若记忆终将散落,请在呼唤中重新认识我一次。」 |
这些对应只是同人层面的呼应与致敬,不代表原作设定。
她忘记自己是谁,却还在求救。
她失去主体完整性,却仍在保护研究员。
她知道未来的碎片可能再也不认识过去的一切,
却依然承认它们拥有成为新的自己的权利。
ARG 社区还原项目:MF-Dust/Nori.Web·支持正作:《I_NORI》Steam 页面