# teams **Repository Path**: wh86_admin/teams ## Basic Information - **Project Name**: teams - **Description**: 测试qingyu - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-11 - **Last Updated**: 2026-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FlashVoice **版本**:1.0.0 **状态**:已发布 一款极简 Android 速记工具,实现"录音 → 本地转写 → 保存"全流程自动化,数据完全离线、不离开设备。 --- ## 核心特性 | 特性 | 说明 | |------|------| | **通知栏触发** | 点击通知栏按钮随时开始录音(熄屏/亮屏均可) | | **本地离线转写** | Whisper base 模型 (~140MB) 内置,无需网络 | | **双模式转写** | 本地转写(默认)/ 服务端转写(可选,需 PC) | | **隐私优先** | 所有数据存储在设备本地,卸载即清理 | | **多格式支持** | 录音支持 AAC 和 WAV 格式 | --- ## 技术栈 | 模块 | 技术选型 | |------|---------| | 开发语言 | Kotlin 1.9.x | | UI 框架 | Jetpack Compose (BOM 2024.02) | | 架构 | MVVM + Clean Architecture | | 依赖注入 | Hilt 2.50 | | 数据库 | Room 2.6.x | | 本地转写 | Whisper.cpp (JNI/NDK) | | 服务端转写 | Faster-Whisper (Python/FastAPI) | | 最低 SDK | API 29 (Android 10) | | 目标 SDK | API 34 (Android 14) | --- ## 项目结构 ``` FlashVoice/ ├── mobile/ # Android 应用 │ ├── app/ # App 模块 (Compose + ViewModel + Room + UseCase) │ │ └── src/main/java/com/flashvoice/app/ │ │ ├── ui/ # 5个页面:Home, Records, Detail, Settings, Onboarding │ │ ├── domain/ # 纯 Kotlin 业务逻辑 (UseCase, Model, Repository 接口) │ │ ├── data/ # Room 数据库 + Repository 实现 │ │ ├── service/ # RecordingService 前台录音服务 │ │ └── whisper/ # Whisper JNI 封装层 │ └── whisper/ # Whisper.cpp NDK 源码 (submodule) │ ├── server/ # Python FastAPI 服务端 │ ├── transcribe_server.py # 多模型转写服务 │ └── requirements.txt │ ├── docs/ # 移动端设计文档 └── archived/ # 历史文档 ``` --- ## 录音流程 ``` 用户点击通知栏按钮 │ ▼ RecordingService.startRecording() │ ├── 检查麦克风权限 ├── 创建 WAV 文件 (16kHz, 16-bit PCM, Mono) └── 显示前台通知(持续运行) │ ▼ 录音中:AudioRecord 持续采样 → 文件实时写入 │ ▼ 用户点击停止 / 来电中断 │ ├── 更新 WAV 文件头 ├── 保存 Record 到 Room 数据库 └── 触发转写(本地 Whisper.cpp 或服务端) │ ▼ 转写完成 → 推送「转写完成」通知 ``` ### 录音状态机 ``` Idle → Recording → Transcribing → Completed ↓ Error ``` --- ## 服务端转写(可选) 当启用服务端转写时,手机将音频发送给 PC 上的 Faster-Whisper 服务处理,可利用 large-v3 模型获得更高速度和准确率。 | | 本地(base 模型) | PC 服务端(large-v3) | |--|-----------------|----------------------| | 1 分钟音频转写 | ~30 秒 | ~3-5 秒 | | 模型大小 | ~140MB | ~3GB | | 准确率 | 中等 | 显著提升 | ### 启动服务端 ```bash cd server pip install -r requirements.txt python transcribe_server.py ``` 服务默认监听 `0.0.0.0:8000`。 --- ## 打包构建 ### Android App ```bash cd mobile JAVA_HOME="C:/files/jdk/jdk-17.0.15" ANDROID_HOME="C:/files/android-sdk" ./gradlew assembleDebug ``` 输出:`mobile/app/build/outputs/apk/debug/app-debug.apk` --- ## 页面概览 | 页面 | 路由 | 功能 | |------|------|------| | OnboardingScreen | `/onboarding` | 首次引导(5页) | | HomeScreen | `/home` | 录音按钮、波形动画、计时器 | | RecordsScreen | `/records` | 录音列表、搜索、滑删 | | RecordDetailScreen | `/record/{id}` | 播放控制、完整转写文本 | | SettingsScreen | `/settings` | 服务端开关、模型选择、存储空间、关于 | --- ## 1.0.0 待完成项 以下功能在 1.0.0 代码中存在但尚未完成: | 功能 | 状态 | 说明 | |------|------|------| | 分享按钮 | TODO | RecordDetailScreen 中点击事件为空 | | 双击后盖触发 | 未实现 | MIUI "拍一拍" 手势预留 | | 服务端地址配置 | 硬编码 | IP `10.33.244.174:8000` 写死在代码中 | | 版本信息同步 | 未同步 | App 显示 1.0.0,架构文档为 v1.2 | --- ## 文档 - [FlashVoice 架构设计文档](./FlashVoice架构设计文档.md) - 完整架构规格 (v1.2) - [CLAUDE.md](./CLAUDE.md) - 开发指引