Skip to content

Repository files navigation

AIGC
ContentProducer ContentPropagator Label ProduceID PropagateID ReservedCode1 ReservedCode2
001191110102MAD55U9H0F10002
001191110102MAD55U9H0F10002
1
649aedf3-3b58-4f9e-8c80-f93d85d3e4c3
649aedf3-3b58-4f9e-8c80-f93d85d3e4c3
d49e0698-df03-4c45-b51c-972d85cf2cf2
d49e0698-df03-4c45-b51c-972d85cf2cf2

VoiceToDo - 全离线语音待办事项应用

一个基于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发布的最新轻量级模型,高效且准确

支持的ASR模型

模型名称 大小 最低内存要求 描述
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 多语言语音识别模型

模型安装指南

方法一:通过应用内下载(推荐)

  1. 启动应用,点击右上角的"模型管理"按钮
  2. 在模型列表中选择你想要下载的模型
  3. 点击"下载"按钮,等待下载完成
  4. 下载完成后,点击"设为当前模型"即可使用

方法二:手动放置模型文件

1. 准备模型文件

  • LLM模型: 下载GGUF格式的模型文件(如 gemma3-4b-it-q4_k_m.gguf
  • ASR模型: 下载Sherpa-ONNX的ZIP压缩包(如 sherpa-onnx-zipformer-zh-2024-03-28.zip

2. 放置模型文件

将下载的模型文件放置到以下目录:

Android/data/com.voicetodo/files/models/

3. 解压ASR模型

使用文件管理器将ASR模型ZIP文件解压到同一目录下:

Android/data/com.voicetodo/files/models/sherpa-onnx-zipformer-zh-2024-03-28/

4. 配置模型路径

  1. 启动应用,进入"设置"界面
  2. 在"模型配置"部分,设置对应的模型路径:
    • LLM模型路径: files/models/gemma3-4b-it-q4_k_m.gguf
    • ASR模型路径: files/models/sherpa-onnx-zipformer-zh-2024-03-28/
  3. 点击"保存配置"并重启应用

方法三:预置模型到APK(开发人员使用)

  1. 将模型文件放置到 app/src/main/assets/models/ 目录
  2. PreferencesManager.kt 中配置默认模型路径:
    fun getDefaultLlmModelPath(): String {
        return "assets/models/gemma3-4b-it-q4_k_m.gguf"
    }
  3. 重新编译APK

编译和运行

环境要求

  • Android Studio Hedgehog | 2023.1.1 或更高版本
  • JDK 17 或更高版本
  • Android SDK 34 或更高版本
  • NDK 25.2.9519653 或更高版本

编译步骤

  1. 克隆项目到本地:

    git clone <repository-url>
    cd VoiceToDo
  2. 打开Android Studio,导入项目

  3. 等待Gradle同步完成

  4. 配置NDK:

    • 打开 File > Project Structure > SDK Location
    • 确保"Android NDK location"已正确配置
  5. 连接Android设备或启动模拟器

  6. 点击"Run"按钮编译并运行应用

构建APK

# 构建调试版本
./gradlew assembleDebug

# 构建发布版本
./gradlew assembleRelease

生成的APK文件位于:app/build/outputs/apk/debug/app-debug.apk

使用说明

基本使用流程

  1. 启动应用: 首次启动需要配置模型路径
  2. 开始录音: 长按底部的录音按钮开始说话
  3. 实时转写: 屏幕上方会实时显示语音转写结果
  4. 完成录音: 松开按钮结束录音
  5. 处理结果: 应用会自动将语音转写结果发送给大语言模型处理
  6. 查看结果: 处理完成后会显示摘要和待办事项列表
  7. 管理待办: 可以勾选完成的待办事项,或查看历史记录

高级功能

  • 历史记录: 点击右上角的"历史"按钮查看所有语音记录
  • 模型管理: 点击右上角的"模型管理"按钮下载和切换模型
  • 设置: 在模型管理界面可以调整推理参数和识别设置

注意事项

内存管理

  • 大语言模型需要大量内存,建议在高端设备上运行较大的模型
  • 同时运行多个应用可能导致内存不足,建议关闭其他后台应用
  • 应用在后台运行时会自动释放部分资源以节省内存

存储管理

  • 模型文件较大,建议在WiFi环境下下载
  • 可以在模型管理界面删除不需要的模型以释放空间
  • 应用会自动清理下载失败的临时文件

性能优化

  • 首次加载模型可能需要较长时间,请耐心等待
  • 语音识别和模型推理过程中会消耗较多电量
  • 建议在充电时进行长时间的语音输入

权限说明

应用需要以下权限:

  • 录音权限: 用于采集用户语音输入
  • 存储权限: 用于保存模型文件和应用数据
  • 网络权限: 仅用于下载模型文件,应用运行时不需要网络
  • 前台服务权限: 用于在后台进行语音识别和模型推理

常见问题

Q: 应用崩溃或无响应

A: 请尝试以下解决方法:

  1. 检查设备内存是否充足,关闭其他后台应用
  2. 尝试切换到更小的模型(如Llama 3.2 3B)
  3. 清除应用缓存:设置 > 应用 > VoiceToDo > 存储 > 清除缓存
  4. 重新安装应用

Q: 语音识别不准确

A: 可以尝试:

  1. 在安静的环境下录音
  2. 调整说话语速,清晰发音
  3. 切换到更适合的ASR模型
  4. 在设置中提高识别灵敏度

Q: 模型推理速度慢

A: 可以尝试:

  1. 切换到更小的模型
  2. 在设置中降低MaxTokens和Temperature参数
  3. 关闭其他后台应用
  4. 使用性能模式运行设备

技术架构

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   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

联系方式

如有问题或建议,请通过以下方式联系:


版本: 1.0.0
更新日期: 2026年06月08日

AI生成·星辰超级智能体 生成时间: 2026-06-08 16:55:27

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages