# 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) - [ ] 项目基础框架搭建 - [ ] ONNX Runtime 集成 - [ ] 单语言(中文)识别 demo - [ ] 基础命令行界面 ### Phase 2 - 核心功能(v0.5.0) - [ ] 多语言支持(中英) - [ ] Electron GUI 界面 - [ ] 实时识别功能 - [ ] 剪贴板输出 ### Phase 3 - 完善功能(v1.0.0) - [ ] 键盘模拟输入 - [ ] 批量文件转写 - [ ] 配置管理界面 - [ ] 安装包打包分发 ### Phase 4 - 增强功能(v1.5.0+) - [ ] 更多语种支持 - [ ] 说话人分离 - [ ] 自定义热词 - [ ] 插件系统 --- ## 7. 风险评估 | 风险 | 概率 | 影响 | 应对措施 | |------|------|------|----------| | ONNX 模型性能不足 | 中 | 高 | 准备量化模型,优化推理管线 | | 跨平台音频采集兼容性问题 | 高 | 中 | 备选方案:Web Audio API + Electron | | 模型文件过大 | 中 | 中 | 提供模型下载器,按需下载 | | 键盘模拟被安全软件拦截 | 低 | 高 | 提供白名单引导,备用剪贴板方案 | --- ## 8. 附录 ### 8.1 参考资料 - [ONNX Runtime](https://onnxruntime.ai/) - [SenseVoice Model](https://github.com/FunAudioLLM/SenseVoice) - [Whisper ONNX](https://github.com/guillaumekln/faster-whisper) - [Electron 文档](https://www.electronjs.org/docs) ### 8.2 竞品分析 | 产品 | 优势 | 劣势 | |------|------|------| | 讯飞输入法 | 识别精度高 | 需联网,隐私顾虑 | | 谷歌语音输入 | 多语言支持好 | 需 Chrome,依赖云端 | | Whisper Desktop | 本地运行 | 性能开销大,界面简陋 | --- **文档状态**: 初稿 **下次更新**: 待技术评审后更新