Skip to content

About

愿景是打造离线Android端侧workbuddy:语音识别 / 翻译 / TTS / 端侧大模型全本地推理,数据不出设备 · On-device Android workbuddy: offline ASR, translation, TTS & LLM via ONNX Runtime, zero cloud

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

Repository files navigation

端侧离线工作搭子(localbuddy-android)

项目目标:做一个完全端侧离线的 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(扫描增强)

一、功能特性

APP 首页

首页就是一个融合型对话框:文本对话智能体与语音通话智能体共用同一个对话框,不用跳转页面。 应用栏左侧汉堡键拉出侧边抽屉(屏宽 80%):里面有「新建任务」和历史记录, 点「新建任务」直接开一段新对话(旧会话自动进历史);应用栏右上角的电话图标一键激活 / 退出语音通话模式(豆包式入口)。 输入框是豆包式两段卡片:未聚焦是紧凑单行,点击展开后上面是多行输入区、下面一行操作按钮 (按住说话的语音键、⚡快速/精致选择、+ 上传文档、圆形发送键)。 对话框上方是其余 6 个智能体的小卡片(只显示图标与名称,点一下进入对应功能页), 一旦开始对话 / 通话就整块收起,从抽屉开新任务后才重新出现。 全程无登录、无联网,所有推理都在本机完成。

下列 8 个智能体均已上线(前两个已融合进首页对话框,其余 6 个由首页卡片进入)。

1. 文本对话

以文字直接提问的端侧大模型问答。支持「深度思考 / 不思考」两种模式:不思考直接出正文、响应更快;深度思考先展开推理链(界面实时可见、思考过程可折叠)再作答,适合推理与复杂问题。可上传 txt / Word / PDF / 图片,提问时自动从文档里检索相关段落作答。回复按 Markdown 渲染(标题、列表、代码块、表格等),会话自动保存在本机,可随时从「历史」回看并继续追问。

文本对话

2. 语音通话

像打电话一样的纯语音交互:点开始后直接说话,说完停顿一下即被识别,回答以内置音色的语音播出。半双工(对方说话时先听完),识别、对话与语音合成全部在本机完成。

语音通话

3. 录音翻译

会议、课堂或面对面交谈时一键开始录音,边录边转写成文字并同步翻译成目标语言,结束后可用端侧大模型一键生成纪要。适合需要留档又不便把录音传到云端的场合。

录音翻译

4. 本地视频字幕

导入手机里的本地视频,离线生成字幕并给出内容总结与要点提取。外语课程录播、会议录像都能在本地完成,视频本身不会离开设备。

本地视频字幕

5. 跨语沟通

多人、多语言场景下的实时沟通助手:按说话人分别转写并互译,双方用各自语言说话即可看懂对方的译文,适合跨境交流、涉外接待等面对面场景。

跨语沟通

6. 实时视频听音

以悬浮窗形式实时显示正在播放内容(含系统内录音频)的字幕,支持 50 种语言。视频不出设备,边播边出字幕。

实时视频听音

7. 全能扫描

文档扫描:自动边缘检测 + 透视矫正,把拍歪的纸质文件修正成规整的扫描件,为后续识别与翻译做准备。

全能扫描

8. 文档识别翻译

txt / Word / PDF / 图片的离线识别与翻译,支持格式还原导出,全程本地解析,适合合同、说明书等不便外传的文件。

文档识别翻译

研发状态

全部能力均在纯端侧离线运行,受端侧算力限制,各智能体的完成度如下:

名称 状态 待办
文本对话智能体 基本可用级 待集成 RAG 能力
语音通话智能体 demo 演示级 纯端侧语音回复间隔时间较大,尚未达到流畅级别,效率待提升或替换为实时模型
录音翻译智能体 基本可用级 语速较快时仍面临效率问题,尤其是翻译效率较低,效率待提升
本地视频字幕智能体 高度可用级 暂无
跨语沟通智能体 基本可用级 纯端侧语音翻译复述间隔较大,效率待提升或替换为实时模型
实时视频听音智能体 demo 演示级 正常说话语速纯端侧跟不上,只能暂停或缓速才能使用,效率待优化
全能扫描智能体 基本可用级 能扫描常见文件,需要支持更多场景
文档识别翻译智能体 demo 演示级 对文档格式还原能力基本没有,待想方案解决

二、愿景:完全端侧离线的 WorkBuddy

2.1 要解决的到底是什么

云端 AI 助手(WorkBuddy 等)已经在验证一件事:人想要的不是一堆按钮,而是一个能办事的对话框—— 说一句话或打一行字,工具链自己串起来把结果端回来。

但这些能力默认建立在一个前提上:数据要上传到云端。而这个前提在很多场景里直接失效:

场景 为什么云端方案用不了
涉密 / 内网办公 会议录音、合同文档、源代码一律不许出网,连申请通道都没有
医疗、政法、金融 病历、卷宗、客户资料受合规约束,出境 / 上云都要审计
野外、海上、地下、飞行中 根本没有网络,或者只有极不稳定的窄带链路
个人隐私 不想让家里的对话录音、证件扫描件在系统之外留痕
成本与延迟 长音频、长视频上云按量计费,还要等往返时延

localbuddy-android 的目标就是把 WorkBuddy 的形态原样搬到端侧: 保留「一个对话框调度一切」的交互,把「云端推理」换成「本机推理」,把「数据出设备」换成「数据永不出设备」。

2.2 当前形态与目标形态的差距

维度 现在(已落地) 目标(离线 WorkBuddy)
入口 首页对话框已融合文本对话 + 语音通话 对话框成为唯一入口,其他智能体逐步退化成被对话调用的能力
任务编排 用户自己点进某个智能体 由主对话理解意图后自动分派给智能体,并串起多步流程
上下文 文本对话与语音通话各自维护会话 统一的会话记忆:打字、说话、扫描件、文档都在同一段上下文里
工具使用 文档扫描 / 字幕 / 听译需手动进页 对话可直接发起「扫这份合同并总结第三条」「给这段视频加字幕」
能力扩展 8 个内置智能体 本地工具协议化:日历、备忘、表单、设备控制等在端侧可插拔接入
性能约束 端侧模型有限,语音链路仍有间隔 依赖端侧实时模型与 NPU 加速(NNAPI)逐步逼近流畅对话

2.3 坚持的三条底线

  1. 永远不必联网:任何功能在飞行模式下都必须可用,联网只能作为可选增强,不能成为必要条件。
  2. 数据永不离开设备:所有模型、缓存、会话历史都存在本机 filesDir;不埋点、不上报、无账号体系。
  3. 能力可核验:端侧模型的上限要如实标注(见「研发状态」表),不夸大、不用云端能力冒充离线效果。

2.4 路线图(粗)

  • 近期:统一会话记忆(文本 / 语音共享上下文)、把 6 个小卡片能力接入对话的工具调用。
  • 中期:多步任务编排与结果回传;用 NNAPI 与更快的实时模型压低语音链路间隔。
  • 长期:端侧工具开放协议,让第三方本地能力也能被这一个离线对话框调度。

三、下载 APK 直接使用

不想编译的话,直接下载预编译安装包即可(模型已内置,装完即可离线使用):

安装要求:Android 8.0(API 26)及以上、arm64 设备;安装时需在系统设置中允许「未知来源应用」安装。首次启动会把内置模型解包到应用目录,耗时数分钟且需要较多存储空间,建议在网络与电量充足时完成。

四、准备模型(编译源码必做)

模型文件不在仓库里(总量约 4GB)。下载 assets.zip 后解压,把里面的目录放到 app/src/main/assets/ 下:

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 History

如果这个项目对你有帮助,欢迎点个 Star ⭐

Star History Chart

About

愿景是打造离线Android端侧workbuddy:语音识别 / 翻译 / TTS / 端侧大模型全本地推理,数据不出设备 · On-device Android workbuddy: offline ASR, translation, TTS & LLM via ONNX Runtime, zero cloud

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages