项目目标:做一个完全端侧离线的 WorkBuddy。
把 WorkBuddy 那种「一个对话框调度一切」的体验,整套搬到手机上,不联网、不走云、不需要账号—— 语音识别、机器翻译、语音合成、OCR 与大语言模型全部跑在本机, 音视频、文档、识别结果与生成内容自始至终不离开设备。
目标形态是:一个离线 AI 同事,随时语音通话、随时文本对话,顺手把文档扫描、字幕听译、 跨语种沟通这些活一并干了,断网、飞行模式、野外作业时照样可用。
- 语言:Kotlin + Jetpack Compose(Material 3)
- 最低系统:Android 8.0(API 26),目标 / 编译 SDK:API 36
- 推理:ONNX Runtime Android 1.26(主力)+ PyTorch Mobile Lite 2.1(辅助)+ OpenCV 4.9(扫描增强)
首页就是一个融合型对话框:文本对话智能体与语音通话智能体共用同一个对话框,不用跳转页面。 应用栏左侧汉堡键拉出侧边抽屉(屏宽 80%):里面有「新建任务」和历史记录, 点「新建任务」直接开一段新对话(旧会话自动进历史);应用栏右上角的电话图标一键激活 / 退出语音通话模式(豆包式入口)。 输入框是豆包式两段卡片:未聚焦是紧凑单行,点击展开后上面是多行输入区、下面一行操作按钮 (按住说话的语音键、⚡快速/精致选择、+ 上传文档、圆形发送键)。 对话框上方是其余 6 个智能体的小卡片(只显示图标与名称,点一下进入对应功能页), 一旦开始对话 / 通话就整块收起,从抽屉开新任务后才重新出现。 全程无登录、无联网,所有推理都在本机完成。
下列 8 个智能体均已上线(前两个已融合进首页对话框,其余 6 个由首页卡片进入)。
以文字直接提问的端侧大模型问答。支持「深度思考 / 不思考」两种模式:不思考直接出正文、响应更快;深度思考先展开推理链(界面实时可见、思考过程可折叠)再作答,适合推理与复杂问题。可上传 txt / Word / PDF / 图片,提问时自动从文档里检索相关段落作答。回复按 Markdown 渲染(标题、列表、代码块、表格等),会话自动保存在本机,可随时从「历史」回看并继续追问。
像打电话一样的纯语音交互:点开始后直接说话,说完停顿一下即被识别,回答以内置音色的语音播出。半双工(对方说话时先听完),识别、对话与语音合成全部在本机完成。
会议、课堂或面对面交谈时一键开始录音,边录边转写成文字并同步翻译成目标语言,结束后可用端侧大模型一键生成纪要。适合需要留档又不便把录音传到云端的场合。
导入手机里的本地视频,离线生成字幕并给出内容总结与要点提取。外语课程录播、会议录像都能在本地完成,视频本身不会离开设备。
多人、多语言场景下的实时沟通助手:按说话人分别转写并互译,双方用各自语言说话即可看懂对方的译文,适合跨境交流、涉外接待等面对面场景。
以悬浮窗形式实时显示正在播放内容(含系统内录音频)的字幕,支持 50 种语言。视频不出设备,边播边出字幕。
文档扫描:自动边缘检测 + 透视矫正,把拍歪的纸质文件修正成规整的扫描件,为后续识别与翻译做准备。
txt / Word / PDF / 图片的离线识别与翻译,支持格式还原导出,全程本地解析,适合合同、说明书等不便外传的文件。
全部能力均在纯端侧离线运行,受端侧算力限制,各智能体的完成度如下:
| 名称 | 状态 | 待办 |
|---|---|---|
| 文本对话智能体 | 基本可用级 | 待集成 RAG 能力 |
| 语音通话智能体 | demo 演示级 | 纯端侧语音回复间隔时间较大,尚未达到流畅级别,效率待提升或替换为实时模型 |
| 录音翻译智能体 | 基本可用级 | 语速较快时仍面临效率问题,尤其是翻译效率较低,效率待提升 |
| 本地视频字幕智能体 | 高度可用级 | 暂无 |
| 跨语沟通智能体 | 基本可用级 | 纯端侧语音翻译复述间隔较大,效率待提升或替换为实时模型 |
| 实时视频听音智能体 | demo 演示级 | 正常说话语速纯端侧跟不上,只能暂停或缓速才能使用,效率待优化 |
| 全能扫描智能体 | 基本可用级 | 能扫描常见文件,需要支持更多场景 |
| 文档识别翻译智能体 | demo 演示级 | 对文档格式还原能力基本没有,待想方案解决 |
云端 AI 助手(WorkBuddy 等)已经在验证一件事:人想要的不是一堆按钮,而是一个能办事的对话框—— 说一句话或打一行字,工具链自己串起来把结果端回来。
但这些能力默认建立在一个前提上:数据要上传到云端。而这个前提在很多场景里直接失效:
| 场景 | 为什么云端方案用不了 |
|---|---|
| 涉密 / 内网办公 | 会议录音、合同文档、源代码一律不许出网,连申请通道都没有 |
| 医疗、政法、金融 | 病历、卷宗、客户资料受合规约束,出境 / 上云都要审计 |
| 野外、海上、地下、飞行中 | 根本没有网络,或者只有极不稳定的窄带链路 |
| 个人隐私 | 不想让家里的对话录音、证件扫描件在系统之外留痕 |
| 成本与延迟 | 长音频、长视频上云按量计费,还要等往返时延 |
localbuddy-android 的目标就是把 WorkBuddy 的形态原样搬到端侧: 保留「一个对话框调度一切」的交互,把「云端推理」换成「本机推理」,把「数据出设备」换成「数据永不出设备」。
| 维度 | 现在(已落地) | 目标(离线 WorkBuddy) |
|---|---|---|
| 入口 | 首页对话框已融合文本对话 + 语音通话 | 对话框成为唯一入口,其他智能体逐步退化成被对话调用的能力 |
| 任务编排 | 用户自己点进某个智能体 | 由主对话理解意图后自动分派给智能体,并串起多步流程 |
| 上下文 | 文本对话与语音通话各自维护会话 | 统一的会话记忆:打字、说话、扫描件、文档都在同一段上下文里 |
| 工具使用 | 文档扫描 / 字幕 / 听译需手动进页 | 对话可直接发起「扫这份合同并总结第三条」「给这段视频加字幕」 |
| 能力扩展 | 8 个内置智能体 | 本地工具协议化:日历、备忘、表单、设备控制等在端侧可插拔接入 |
| 性能约束 | 端侧模型有限,语音链路仍有间隔 | 依赖端侧实时模型与 NPU 加速(NNAPI)逐步逼近流畅对话 |
- 永远不必联网:任何功能在飞行模式下都必须可用,联网只能作为可选增强,不能成为必要条件。
- 数据永不离开设备:所有模型、缓存、会话历史都存在本机
filesDir;不埋点、不上报、无账号体系。 - 能力可核验:端侧模型的上限要如实标注(见「研发状态」表),不夸大、不用云端能力冒充离线效果。
- 近期:统一会话记忆(文本 / 语音共享上下文)、把 6 个小卡片能力接入对话的工具调用。
- 中期:多步任务编排与结果回传;用 NNAPI 与更快的实时模型压低语音链路间隔。
- 长期:端侧工具开放协议,让第三方本地能力也能被这一个离线对话框调度。
不想编译的话,直接下载预编译安装包即可(模型已内置,装完即可离线使用):
- 文件:
localbuddy.apk - 链接:https://pan.baidu.com/s/1NKrzKWp8pXWF9BFE48X4GA?pwd=66qg
- 提取码:
66qg
安装要求:Android 8.0(API 26)及以上、arm64 设备;安装时需在系统设置中允许「未知来源应用」安装。首次启动会把内置模型解包到应用目录,耗时数分钟且需要较多存储空间,建议在网络与电量充足时完成。
模型文件不在仓库里(总量约 4GB)。下载 assets.zip 后解压,把里面的目录放到 app/src/main/assets/ 下:
- 文件:
assets.zip - 链接:https://pan.baidu.com/s/1APbhSQ7OZHqSB5UzO5aMHg?pwd=kmvt
- 提取码:
kmvt
asr/ 语音识别 mt/ 机器翻译 llm/ 端侧大模型
tts/ 语音合成 ocr/ 文字识别 vad/ 语音端点检测
目录结构与注意事项见 app/src/main/assets/README.md。
没有模型也能编译安装,只是对应能力不可用。
./gradlew :app:assembleDebug # 打调试包
./gradlew :app:installDebug # 直接安装到连接的设备
./gradlew :app:assembleRelease # 打发布包
./gradlew :app:bundleRelease # 打 AAB(上架 Google Play)环境:JDK 11+,Android Studio 最新稳定版(AGP 8.13)。国内网络已配置阿里云 Maven 镜像。
app/src/main/java/com/example/localbuddy/
├── MainActivity.kt 应用入口、路由、智能体清单
├── HomeChatScreen.kt 首页融合对话框(文本对话 / 语音通话 + 智能体小卡片)
├── SettingsScreen.kt 设置(主题 / NPU 加速)
├── TextChatAgent.kt 文本对话(首页复用其 ViewModel 与气泡)
├── VoiceCallAgent.kt 语音通话(首页复用其 ViewModel 与通话控件)
├── SpeechMT*.kt 录音翻译
├── VideoSubtitle.kt 本地视频字幕
├── CrossLangAgent.kt 跨语沟通
├── ListenSubtitle.kt 实时视频听音
├── DocTransAgent.kt 文档识别翻译
├── DocTextReader.kt txt / Word / PDF 文本抽取
├── MarkdownText.kt Markdown 渲染(对话、纪要等复用)
├── LlmEngine.kt 端侧大模型推理
├── TtsEngine.kt 语音合成
├── scan/ 全能扫描(OpenCV + CameraX)
└── ... VAD、音频 IO、分词器、文档解析等
本项目代码采用 Apache License 2.0 授权,可自由使用、修改与二次分发(需保留协议声明与署名)。
提醒:若要上架应用市场,应用内的第三方模型与依赖(ONNX Runtime、PyTorch Mobile、OpenCV 等) 各自遵循其上游许可,请一并遵守;国内上架还需自备软件著作权、App 备案与隐私政策等材料。
如果这个项目对你有帮助,欢迎点个 Star ⭐








