impress_asr_input/PRD.md
impressionyang 7c51542918 Initial commit: Impress ASR Input 项目基础框架
功能:
- 基于 ONNX 的语音识别引擎
- 多语言支持(中文、英文、日语、韩语)
- 模型加载器(支持 SenseVoice/Whisper/Paraformer)
- 音频采集和处理模块(VAD、重采样、归一化)
- 文本输出模块(剪贴板)
- CLI 命令行工具
- Electron GUI 界面
- Windows x64 打包配置

文档:
- PRD 产品需求文档
- README 项目说明
- 开发指南
- Windows 构建指南

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-20 16:10:11 +08:00

8.8 KiB
Raw Permalink Blame History

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 - MVPv0.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 参考资料

8.2 竞品分析

产品 优势 劣势
讯飞输入法 识别精度高 需联网,隐私顾虑
谷歌语音输入 多语言支持好 需 Chrome依赖云端
Whisper Desktop 本地运行 性能开销大,界面简陋

文档状态: 初稿 下次更新: 待技术评审后更新