状态: 规划中(2026-08) 目标: 跑通纯本地的"视频知识提取 → 笔记"最小闭环,验证 sherpa-onnx ASR 与 paddle-ocr OCR 在 Tauri + Rust 栈下的可行性与质量。 关联: 需求池 v0.1.0 · PRD · 技术调研([ ] 已归档)
在不依赖系统音频/屏幕捕获、不依赖云端 LLM 的前提下,验证三件事:
- 本地 ASR 可用:sherpa-onnx 对中文音频文件转写,质量可接受
- 本地 OCR 可用:paddle-ocr 对关键帧图片识别文字,质量可接受
- 本地拼接成笔记:转写 + OCR 纯规则拼接为 Markdown 笔记初稿,并可落入笔记模块编辑
本阶段不做:系统音频捕获(WASAPI)、屏幕捕获、流式实时转写、间隔重复闪卡、AI 问答。这些是 v0.2.0+ 的内容。
| REQ | 内容 | 验收要点 |
|---|---|---|
| REQ-006 | Tauri 2 骨架 + SQLite 数据层 | 应用可启动;SQLite 建表;IPC command 可调 |
| REQ-001 | 本地 ASR(文件输入) | 选音频文件 → 返回转写文本;SenseVoice/Paraformer int8 |
| REQ-002 | 本地 OCR(图片输入) | 选图片 → 返回识别文字 + 位置 |
| REQ-003 | 内容本地拼接 | 转写+OCR 按规则拼成 Markdown 初稿(无 LLM) |
| REQ-004 | 笔记基本功能 | 笔记 CRUD + Markdown 渲染 + 搜索 |
| REQ-005 | 课堂助手 ↔ 笔记联动 | 拼接结果一键创建/追加为笔记 |
| 模块 | 方案 |
|---|---|
| 桌面壳 | Tauri 2 + React + TS(Vite) |
| ASR | sherpa-onnx crate:OfflineRecognizer + SenseVoice-Small int8(或 Paraformer);VAD 用 Silero |
| OCR | paddle-ocr-rs:PP-OCRv5 det + rec ONNX |
| 拼接 | Rust 纯函数:按时间戳/段落合并转写段与 OCR 块 → Markdown |
| 数据 | SQLite(rusqlite):notes / transcripts / ocr_blocks / sessions 表 |
| 模型 | 首次启动下载脚本拉取(不入库):SenseVoice int8 + PP-OCRv5 ONNX |
- 应用启动,首页可选"导入音频转写""导入图片 OCR"
- 一段 1 分钟中文音频 → 转写文本正确率主观可接受
- 一张含文字截图 → OCR 返回文字
- 拼接产物为结构化 Markdown,可预览
- 一键落入笔记后可编辑、可搜索
-
cargo test全绿(拼接纯逻辑有单测)
| 步骤 | 内容 |
|---|---|
| M1 | Tauri 骨架 + SQLite + IPC 通道(REQ-006) |
| M2 | 本地 ASR command + 模型下载(REQ-001) |
| M3 | 本地 OCR command + 模型(REQ-002) |
| M4 | 拼接纯逻辑 + 单测(REQ-003) |
| M5 | 笔记 CRUD + 渲染 + 搜索(REQ-004) |
| M6 | 联动 + 端到端验证(REQ-005) |
- sherpa-onnx crate 在 Windows MSVC 工具链下的构建稳定性(首次编译下载预编译库)
- paddle-ocr-rs 模型获取与 API 稳定性(备选:sherpa-onnx OCR / RapidOCR)
- 模型下载体积与首次启动体验(需下载进度提示)
- 中文 ASR 实际 CER(需自建样本评测,不依赖厂商宣传口径)