Go to file
impressionyang 09074a71fe docs: 添加第三方依赖部署指南
详细说明各依赖库的下载来源、编译方法和验证步骤,
包含快速部署脚本。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-12 16:00:52 +08:00
cmake feat: 初始化 Impress Voice Input 项目 2026-05-12 15:53:05 +08:00
configs feat: 初始化 Impress Voice Input 项目 2026-05-12 15:53:05 +08:00
models feat: 初始化 Impress Voice Input 项目 2026-05-12 15:53:05 +08:00
src feat: 初始化 Impress Voice Input 项目 2026-05-12 15:53:05 +08:00
third_party docs: 添加第三方依赖部署指南 2026-05-12 16:00:52 +08:00
.gitignore feat: 初始化 Impress Voice Input 项目 2026-05-12 15:53:05 +08:00
CMakeLists.txt feat: 初始化 Impress Voice Input 项目 2026-05-12 15:53:05 +08:00
PRD.md feat: 初始化 Impress Voice Input 项目 2026-05-12 15:53:05 +08:00
README.md feat: 初始化 Impress Voice Input 项目 2026-05-12 15:53:05 +08:00
run.sh feat: 初始化 Impress Voice Input 项目 2026-05-12 15:53:05 +08:00

Impress Voice Input

基于 ONNX 的实时语音转文本输入法C++ 跨平台实现。

功能特性

  • 实时语音识别 — 麦克风采集,流式输出识别结果
  • 音频文件转写 — 支持 WAV/MP3/FLAC批量处理导出 TXT/SRT
  • 跨平台 GUI — Qt 6 构建,支持 Windows / macOS / Linux
  • 本地推理 — ONNX Runtime支持 CPU/GPU 加速
  • 可配置 — 模型路径、推理参数、快捷键均可自定义

项目结构

impress_voice_input/
├── CMakeLists.txt              # 构建配置
├── PRD.md                      # 产品需求文档
├── cmake/                      # CMake 模块
│   └── dependencies.cmake      # 依赖查找
├── src/
│   ├── main.cpp                # 入口
│   ├── app/                    # 应用层 (Application, ConfigManager)
│   ├── core/                   # 核心 (STTEngine, AudioProcessor, Decoder, Tokenizer)
│   ├── audio/                  # 音频 (AudioCapture, AudioDecoder, RingBuffer)
│   ├── ui/                     # GUI 页面与控件
│   │   ├── main_window.cpp     # 主窗口
│   │   ├── stt_test_page.cpp   # 实时识别页
│   │   ├── file_transcribe_page.cpp  # 文件转写页
│   │   ├── settings_page.cpp   # 配置页
│   │   └── widgets/            # 自定义控件
│   └── utils/                  # 工具类
├── configs/                    # 配置文件
├── models/                     # ONNX 模型存放目录
└── third_party/                # 第三方依赖

技术栈

组件 选型
GUI Qt 6
推理引擎 ONNX Runtime (C++ API)
音频采集 PortAudio
音频解码 dr_libs (dr_wav, dr_mp3, dr_flac)
构建系统 CMake 3.20+
配置存储 nlohmann/json

编译指南

前置依赖

  1. CMake >= 3.20
  2. Qt 6 >= 6.5
  3. ONNX Runtime C++ 库
  4. PortAudio
  5. C++17 兼容编译器 (GCC 9+ / Clang 10+ / MSVC 2019+)

第三方库准备

# 放入 third_party/ 目录
third_party/
├── onnxruntime/
│   ├── include/
│   └── lib/
├── portaudio/
│   ├── include/
│   └── lib/
├── dr_libs/
│   ├── dr_wav.h
│   ├── dr_mp3.h
│   └── dr_flac.h
└── nlohmann_json/
    └── json.hpp

编译

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc)

带测试编译

cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON
cmake --build . -j$(nproc)
ctest

运行

# 默认启动
./impress_voice_input

# 指定配置文件
./impress_voice_input --config /path/to/config.json

# 指定模型
./impress_voice_input --model /path/to/model.onnx

模型准备

支持以下 ONNX 格式模型:

  • Whisper (small/medium) — 多语言,高质量
  • Paraformer — 中文优化
  • 其他兼容 CTC 的 ASR 模型

.onnx 模型文件放入 models/ 目录,然后在配置页面设置路径。

当前状态

项目处于 骨架搭建阶段,核心功能已规划并创建框架代码:

  • 项目结构与 CMake 配置
  • 配置管理模块
  • STT 推理引擎框架 (ONNX 集成占位)
  • 音频采集/解码框架 (PortAudio/dr_libs 集成占位)
  • 三个 GUI 页面框架
  • 完整 ONNX 推理实现
  • 流式识别逻辑
  • 批量文件转写
  • 跨平台打包

License

MIT