impressionyang
|
ff7318efd6
|
perf: 预打开音频流,消除按键到录音 3-4s 延迟
根因: 每次按键时 Pa_OpenStream() + Pa_StartStream() 耗时 3-4s,
stop() 时又 Pa_CloseStream() + Pa_Terminate() 销毁流。
优化:
- AudioCapture::start() 复用已打开的流(参数匹配时跳过 OpenStream)
- AudioCapture::stop() 只 Pa_StopStream(),保留流
- 新增 stopAndClose() 彻底关闭流(析构和服务停止时使用)
- VoiceInputService::start() 时预打开音频流再立即 stop()
→ 后续 hotkey start() 只需 Pa_StartStream() (<100ms)
效果: 按键到录音延迟从 3-4s 降至 <100ms
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-11 16:26:20 +08:00 |
|
|
|
8c2e787a25
|
feat: 添加 Windows 交叉编译支持与 ONNX Runtime MinGW 兼容方案
- 新增 C API shim (ort_api_shim.h) 解决 MinGW 与 ONNX Runtime 的 SAL 注解/_stdcall 兼容性问题
- 新增轻量级 C++ 包装器 (ort_minimal) 替代 onnxruntime_cxx_api.h
- cmake/dependencies.cmake 支持 Windows/ Linux 平台自动识别依赖路径
- 修复音频采集 paNonInterleaved bug(指针被误解析为 float 导致 RMS=inf)
- 修复 Windows 热键和 UI 相关代码
- 添加 MinGW 交叉编译工具链配置
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-11 11:50:16 +08:00 |
|
|
|
dc4ebab47c
|
feat: 添加音频输入设备选择器与音频电平诊断
- audio_capture 启动时输出详细设备信息(名称、Host API、采样率)
- 录音停止时输出 RMS 电平和峰值,帮助诊断音频质量问题
- 设置页面新增音频输入设备下拉选择,支持从 PortAudio 设备列表中手动选择
- 语音输入服务使用配置的音频设备和采样率参数
- 检测 monitor/output 类型设备时发出警告,避免选错回环设备
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-05-13 15:16:56 +08:00 |
|
|
|
ecc79aaeb6
|
fix: 修复 PortAudio 无音频设备检测问题 + 初始化生命周期
1. 重新编译 PortAudio 启用 ALSA 支持(原先编译时未启用任何音频后端,
导致设备数为 0,Pa_GetDefaultInputDevice() 返回 -1)
2. 修复 getDeviceList() 中 Pa_Terminate/Pa_Initialize 顺序错误
(先 Terminate 再 Initialize 会导致状态异常)
3. 使用全局 gPaInitialized 标志管理 PortAudio 生命周期,
避免多次 start/stop 后重复初始化或意外终止
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-05-12 20:08:56 +08:00 |
|
|
|
6cb73b43a8
|
fix: 修复应用卡死的两个关键 bug
1. SenseVoiceEngine 死锁:loadModelSync/loadModelAsync 中调用
unloadModel() 获取 mutex 后立即调用 loadInWorker() 再次获取
同一非递归 mutex,导致死锁。改为内联清理逻辑。
2. PortAudio 回调内存分配:实时音频线程中 std::vector 分配
导致 Linux 系统卡顿。改为预分配固定大小缓冲区。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-05-12 19:54:05 +08:00 |
|
|
|
02e100b318
|
feat: 初始化 Impress Voice Input 项目
基于 ONNX 的实时语音转文本输入法,C++ 跨平台实现。
核心组件:
- Qt 6 跨平台 GUI(实时识别 / 文件转写 / 配置页面)
- ONNX Runtime 推理引擎(异步模型加载)
- PortAudio 音频采集
- dr_libs 音频文件解码
- JSON 配置管理(线程安全,自动持久化)
- 日志系统(控制台 + 文件输出)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-05-12 15:53:05 +08:00 |
|