面向 华为 Mate 60 / HarmonyOS 等 Android 设备的离线中文语音助手。语音识别在手机上完成,大模型推理可本地运行或通过 电脑 Ollama 远程调用,适合校园网、热点或蒲公英组网场景。
当前版本:3.1.4(versionCode 26)
| 模块 | 说明 |
|---|---|
| 离线语音识别 | Vosk 中文大模型 cn-0.22,支持从 zip 导入 |
| 智能命令 | 时间、日期、手电筒、音量、打开应用、计算等 |
| 结尾词防误触 | 命令以「完毕」结尾才执行(可开关) |
| 唤醒词 | 默认「贾克斯」(可切换直接命令模式) |
| 电脑 Ollama | 手机只传文字,电脑 GPU 跑 qwen2.5:7b 等模型 |
| 本地大模型 | 可选 Qwen2.5 0.5B GGUF(内存占用大,易 OOM) |
| 离线知识库 RAG | 导入 txt/md,本地检索增强回答 |
| 声纹验证 | Sherpa-ONNX 说话人识别(导入音频注册) |
| 微信通知摘要 | 可选 NotificationListener 读取通知 |
| 蓝牙麦克风 | 支持 FreeBuds 等耳机 |
从 Releases 下载 OfflineVoiceAssistant-v3.1.4-slim-*.apk,或自行构建(见 构建说明)。
- 安装 APK,授予 麦克风、通知 权限
- 在 App 内选择并导入 Vosk 中文模型 zip(约 1.3GB,解压后一次性使用)
- 推荐开启 「使用电脑 Ollama」,按 远程 Ollama 与组网 配置
- 点击 开始聆听,说:
贾克斯,现在几点完毕
# 在电脑上(需管理员 PowerShell 添加防火墙规则)
powershell -ExecutionPolicy Bypass -File scripts/start-ollama-lan.ps1手机 App 填写:
- 地址:
http://<电脑IP>:11434(蒲公英示例:http://172.16.2.109:11434) - 模型:
qwen2.5:7b
| 文档 | 内容 |
|---|---|
| 安装与使用 | 权限、模型导入、聆听流程、常见问题 |
| 远程 Ollama 与组网 | 热点、校园网、蒲公英、防火墙 |
| 构建说明 | Gradle 构建 slim/full 包 |
| 架构与功能 | 模块结构、数据流、技术栈 |
| 声纹注册 | 导入音频注册与验证 |
| 语音命令参考 | 唤醒词、结尾词、命令列表 |
| GitHub 发布指南 | 推送到 GitHub、打 Release |
OfflineVoiceAssistant/
├── app/src/main/java/com/offline/voiceassistant/
│ ├── MainActivity.kt # 主界面
│ ├── VoiceAssistantService.kt # 前台聆听服务
│ ├── VoiceprintEnrollActivity.kt # 声纹注册(导入音频)
│ ├── speech/ # Vosk 识别、音频采集
│ ├── nlp/ # 唤醒词、结尾词、命令解析
│ ├── llm/ # 本地 GGUF + 远程 Ollama
│ ├── speaker/ # Sherpa 声纹引擎
│ ├── rag/ # 离线知识库
│ └── action/ # 系统动作执行
├── scripts/ # 模型下载、Ollama 启动、打包
└── docs/ # 使用与开发文档
- Kotlin + Android SDK 34,最低 API 26,仅 arm64-v8a
- Vosk 离线 ASR
- llama.cpp(JNI)本地 GGUF 推理
- Ollama HTTP API 远程大模型
- Sherpa-ONNX 声纹嵌入
- SQLite 知识库
- JDK 17
- Android SDK + NDK 26(可用项目内
scripts/install-android-sdk.py或 Android Studio) - Windows 下推荐 PowerShell 执行
scripts/中的模型下载脚本
详见 docs/构建说明.md。
- 语音识别默认在 手机本地 完成
- 使用「电脑 Ollama」时,仅将 识别后的文字 通过局域网 HTTP 发往你的电脑
- 不上传语音到第三方云服务(除非你自行配置公网穿透)
- Vosk — 离线语音识别
- llama.cpp — 本地 LLM 推理
- Ollama — 本地/远程大模型服务
- sherpa-onnx — 说话人识别