| AIGC |
|
|---|
一个基于Android平台的全离线语音待办事项应用,集成了先进的语音识别和大语言模型技术,无需网络连接即可完成语音转写、待办事项提取和摘要生成。
VoiceToDo是一个完全离线的Android应用,允许用户通过语音输入快速创建待办事项。应用集成了:
- Sherpa-ONNX: 用于实时语音识别
- LiteRT-LM: 用于大语言模型推理
- Room数据库: 用于本地数据持久化
- Kotlin协程: 用于异步操作和响应式编程
- Android 8.0 (API 26) 或更高版本
- 5GB RAM(运行Llama 3.2 3B模型)
- 10GB可用存储空间(下载一个模型)
- Android 10.0 (API 29) 或更高版本
- 8GB RAM及以上(运行Gemma 3 4B或Phi-3 4B模型)
- 20GB可用存储空间(下载多个模型)
| 模型名称 | 大小 | 最低内存要求 | 推荐内存 | 描述 |
|---|---|---|---|---|
| Gemma 3 4B | 4.8GB | 6GB | 8GB | Google发布的轻量级模型,平衡性能与资源消耗 |
| Qwen 2.5 7B | 8.2GB | 10GB | 12GB | 阿里巴巴发布的高性能模型,擅长中文理解 |
| Phi-3 4B | 4.5GB | 6GB | 8GB | Microsoft发布的小型模型,专为Edge设备优化 |
| Llama 3.2 3B | 3.8GB | 5GB | 7GB | Meta发布的最新轻量级模型,高效且准确 |
| 模型名称 | 大小 | 最低内存要求 | 描述 |
|---|---|---|---|
| sherpa-onnx-zipformer-zh-2024-03-28 | 150MB | 512MB | 中文语音识别模型 |
| sherpa-onnx-zipformer-en-2024-03-28 | 140MB | 512MB | 英文语音识别模型 |
| sherpa-onnx-zipformer-multi-2024-03-28 | 200MB | 768MB | 多语言语音识别模型 |
- 启动应用,点击右上角的"模型管理"按钮
- 在模型列表中选择你想要下载的模型
- 点击"下载"按钮,等待下载完成
- 下载完成后,点击"设为当前模型"即可使用
- LLM模型: 下载GGUF格式的模型文件(如
gemma3-4b-it-q4_k_m.gguf) - ASR模型: 下载Sherpa-ONNX的ZIP压缩包(如
sherpa-onnx-zipformer-zh-2024-03-28.zip)
将下载的模型文件放置到以下目录:
Android/data/com.voicetodo/files/models/
使用文件管理器将ASR模型ZIP文件解压到同一目录下:
Android/data/com.voicetodo/files/models/sherpa-onnx-zipformer-zh-2024-03-28/
- 启动应用,进入"设置"界面
- 在"模型配置"部分,设置对应的模型路径:
- LLM模型路径:
files/models/gemma3-4b-it-q4_k_m.gguf - ASR模型路径:
files/models/sherpa-onnx-zipformer-zh-2024-03-28/
- LLM模型路径:
- 点击"保存配置"并重启应用
- 将模型文件放置到
app/src/main/assets/models/目录 - 在
PreferencesManager.kt中配置默认模型路径:fun getDefaultLlmModelPath(): String { return "assets/models/gemma3-4b-it-q4_k_m.gguf" }
- 重新编译APK
- Android Studio Hedgehog | 2023.1.1 或更高版本
- JDK 17 或更高版本
- Android SDK 34 或更高版本
- NDK 25.2.9519653 或更高版本
-
克隆项目到本地:
git clone <repository-url> cd VoiceToDo
-
打开Android Studio,导入项目
-
等待Gradle同步完成
-
配置NDK:
- 打开
File > Project Structure > SDK Location - 确保"Android NDK location"已正确配置
- 打开
-
连接Android设备或启动模拟器
-
点击"Run"按钮编译并运行应用
# 构建调试版本
./gradlew assembleDebug
# 构建发布版本
./gradlew assembleRelease生成的APK文件位于:app/build/outputs/apk/debug/app-debug.apk
- 启动应用: 首次启动需要配置模型路径
- 开始录音: 长按底部的录音按钮开始说话
- 实时转写: 屏幕上方会实时显示语音转写结果
- 完成录音: 松开按钮结束录音
- 处理结果: 应用会自动将语音转写结果发送给大语言模型处理
- 查看结果: 处理完成后会显示摘要和待办事项列表
- 管理待办: 可以勾选完成的待办事项,或查看历史记录
- 历史记录: 点击右上角的"历史"按钮查看所有语音记录
- 模型管理: 点击右上角的"模型管理"按钮下载和切换模型
- 设置: 在模型管理界面可以调整推理参数和识别设置
- 大语言模型需要大量内存,建议在高端设备上运行较大的模型
- 同时运行多个应用可能导致内存不足,建议关闭其他后台应用
- 应用在后台运行时会自动释放部分资源以节省内存
- 模型文件较大,建议在WiFi环境下下载
- 可以在模型管理界面删除不需要的模型以释放空间
- 应用会自动清理下载失败的临时文件
- 首次加载模型可能需要较长时间,请耐心等待
- 语音识别和模型推理过程中会消耗较多电量
- 建议在充电时进行长时间的语音输入
应用需要以下权限:
- 录音权限: 用于采集用户语音输入
- 存储权限: 用于保存模型文件和应用数据
- 网络权限: 仅用于下载模型文件,应用运行时不需要网络
- 前台服务权限: 用于在后台进行语音识别和模型推理
A: 请尝试以下解决方法:
- 检查设备内存是否充足,关闭其他后台应用
- 尝试切换到更小的模型(如Llama 3.2 3B)
- 清除应用缓存:
设置 > 应用 > VoiceToDo > 存储 > 清除缓存 - 重新安装应用
A: 可以尝试:
- 在安静的环境下录音
- 调整说话语速,清晰发音
- 切换到更适合的ASR模型
- 在设置中提高识别灵敏度
A: 可以尝试:
- 切换到更小的模型
- 在设置中降低MaxTokens和Temperature参数
- 关闭其他后台应用
- 使用性能模式运行设备
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Voice UI │───▶│ ASR Manager │───▶│ Text Processor │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ MainActivity │ │ Sherpa-ONNX │ │ LiteRT-LM │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Room Database │ │ AudioRecord │ │ Prompt Eng. │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- 支持更多语言和模型
- 添加语音合成功能,朗读待办事项
- 支持多设备同步(使用本地WiFi网络)
- 添加智能提醒功能
- 支持自定义提示词模板
- 优化低端设备性能
- 添加手势操作支持
本项目采用MIT许可证,详见 LICENSE 文件。
第三方库许可证:
- Sherpa-ONNX: Apache 2.0 License
- LiteRT-LM: Apache 2.0 License
- Room: Apache 2.0 License
- Kotlin Coroutines: Apache 2.0 License
如有问题或建议,请通过以下方式联系:
- 提交Issue: [GitHub Issues](/issues)
- 发送邮件: voicetodo@example.com
版本: 1.0.0
更新日期: 2026年06月08日
AI生成·星辰超级智能体 生成时间: 2026-06-08 16:55:27