Impress ASR Input - 产品需求文档 (PRD)
1. 文档信息
| 项目 |
内容 |
| 产品名称 |
Impress ASR Input |
| 版本 |
v1.0.0 |
| 创建日期 |
2026-05-15 |
| 技术栈 |
Node.js + ONNX Runtime |
2. 产品概述
2.1 产品定位
Impress ASR Input 是一款基于 Node.js 开发的桌面端语音识别输入工具,利用 ONNX 深度学习推理引擎实现高精度的多语言语音转文本功能。
2.2 核心价值
- 本地运行:无需联网,保护隐私,无 API 调用成本
- 多语言支持:支持中文、英文、日语、韩语等多种语言
- 低延迟:准实时识别,1 秒内完成短句识别
- 跨平台:支持 Windows、macOS、Linux 三大主流操作系统
3. 功能需求
3.1 核心功能
F1 - 语音采集
| 优先级 |
描述 |
| P0 |
支持系统默认麦克风音频采集 |
| P0 |
支持选择不同音频输入设备 |
| P1 |
支持音频参数配置(采样率、声道数) |
| P2 |
支持 USB 蓝牙耳机等外接设备 |
F2 - 语音识别引擎
| 优先级 |
描述 |
| P0 |
基于 ONNX Runtime 的本地推理 |
| P0 |
支持中文普通话识别 |
| P0 |
支持英文识别 |
| P1 |
支持中日英混合识别 |
| P1 |
支持语音端点检测(VAD) |
| P2 |
支持更多语种(日语、韩语等) |
F3 - 文本输出
| 优先级 |
描述 |
| P0 |
实时显示识别结果 |
| P0 |
支持文本复制到剪贴板 |
| P1 |
支持模拟键盘输入(全局热键触发) |
| P1 |
支持识别结果历史查看 |
| P2 |
支持导出为文本文件 |
F4 - 批量转写
| 优先级 |
描述 |
| P0 |
支持 WAV/MP3/FLAC格式音频文件导入 |
| P0 |
支持批量文件队列处理 |
| P1 |
支持输出 SRT/VTT字幕格式 |
| P1 |
支持说话人分离(多声道场景) |
| P2 |
支持进度显示和断点续转 |
3.2 辅助功能
F5 - 用户界面
| 优先级 |
描述 |
| P0 |
系统托盘图标常驻 |
| P0 |
简洁的控制面板(开始/停止/配置) |
| P1 |
识别实时波形可视化 |
| P1 |
深色/浅色主题切换 |
| P2 |
多语言界面(中/英) |
F6 - 配置管理
| 优先级 |
描述 |
| P0 |
模型文件路径配置 |
| P0 |
热键配置(开始/停止录音) |
| P1 |
识别语言选择 |
| P1 |
输出格式配置 |
| P2 |
配置文件导入/导出 |
4. 技术架构
4.1 整体架构
┌─────────────────────────────────────────────────────────────┐
│ 用户界面层 (UI Layer) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ 系统托盘 │ │ 控制面板 │ │ 识别结果展示窗口 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 业务逻辑层 (Business Layer) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ 音频采集 │ │ 识别引擎 │ │ 文本输出/模拟输入 │ │
│ │ 模块 │ │ 模块 │ │ 模块 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 核心引擎层 (Core Layer) │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ONNX Runtime 推理引擎 ││
│ │ ┌───────────┐ ┌───────────┐ ┌───────────────────┐ ││
│ │ │ 音频预处理 │ │ 声学模型 │ │ 语言模型/解码器 │ ││
│ │ └───────────┘ └───────────┘ └───────────────────┘ ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
4.2 技术选型
| 模块 |
技术方案 |
说明 |
| 运行时 |
Node.js 20+ |
LTS 版本,支持最新 ES 特性 |
| UI 框架 |
Electron |
跨平台桌面应用 |
| ONNX 推理 |
onnxruntime-node |
官方 Node.js 绑定 |
| 音频采集 |
node-audio |
跨平台音频 API |
| 键盘模拟 |
robotjs / @nut-tree/nut-js |
全局热键和文本输入 |
| 构建工具 |
Electron-Builder |
打包分发 |
4.3 模型选型
| 模型 |
来源 |
说明 |
| SenseVoice |
Alibaba DAMO |
多语言识别,高精度 |
| Whisper |
OpenAI |
开源多语言模型 |
| Paraformer |
Alibaba DAMO |
中文优化模型 |
推荐方案:优先采用 SenseVoice 或 Whisper 的 ONNX 量化版本(int8),平衡精度与性能。
5. 非功能需求
5.1 性能要求
| 指标 |
目标值 |
说明 |
| 首字延迟 |
< 500ms |
开始说话到第一个字出现的时间 |
| 短句识别 |
< 1s |
5 秒以内音频的完整识别时间 |
| CPU 占用 |
< 30% |
待机状态,单核占用 |
| 内存占用 |
< 500MB |
模型加载后基础内存 |
| 模型大小 |
< 300MB |
单语言模型,量化后 |
5.2 兼容性要求
| 平台 |
最低版本 |
说明 |
| Windows |
Windows 10 |
x64 架构 |
| macOS |
macOS 11+ |
Intel / Apple Silicon |
| Linux |
Ubuntu 20.04+ |
glibc 2.31+ |
5.3 安全要求
- 所有音频数据本地处理,不上传云端
- 不收集用户语音样本
- 配置文件不含敏感信息
6. 项目里程碑
Phase 1 - MVP(v0.1.0)
Phase 2 - 核心功能(v0.5.0)
Phase 3 - 完善功能(v1.0.0)
Phase 4 - 增强功能(v1.5.0+)
7. 风险评估
| 风险 |
概率 |
影响 |
应对措施 |
| ONNX 模型性能不足 |
中 |
高 |
准备量化模型,优化推理管线 |
| 跨平台音频采集兼容性问题 |
高 |
中 |
备选方案:Web Audio API + Electron |
| 模型文件过大 |
中 |
中 |
提供模型下载器,按需下载 |
| 键盘模拟被安全软件拦截 |
低 |
高 |
提供白名单引导,备用剪贴板方案 |
8. 附录
8.1 参考资料
8.2 竞品分析
| 产品 |
优势 |
劣势 |
| 讯飞输入法 |
识别精度高 |
需联网,隐私顾虑 |
| 谷歌语音输入 |
多语言支持好 |
需 Chrome,依赖云端 |
| Whisper Desktop |
本地运行 |
性能开销大,界面简陋 |
文档状态: 初稿
下次更新: 待技术评审后更新