impressionyang
|
0068dda47f
|
feat: 重构菜单并添加使用说明
文件菜单:只保留重启(Ctrl+R)和退出(Ctrl+Q)
托盘菜单:增加重启选项(显示主窗口 / 重启 / 退出)
帮助菜单:增加使用说明(F1),包含基本功能、快捷键、使用流程、
配置说明、系统托盘、状态栏、常见问题等详细说明
|
2026-06-12 09:38:09 +08:00 |
|
impressionyang
|
835b9fcdd8
|
feat: 托盘图标使用 QStyle 标准图标切换状态
- 就绪/停止: SP_MediaStop (■)
- 录音/识别: SP_MediaPlay (▶)
避免自定义绘制导致的黑色方块问题,使用 Qt 原生支持的
系统标准图标,跨平台兼容性好。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-11 17:27:55 +08:00 |
|
impressionyang
|
3ccdff0828
|
fix: 修复 CapsLock 重复复位和托盘图标黑色方块
1. 重复复位: onHotkeyDeactivated() 中移除 simulateCapsLock(),
只保留 onRecognitionComplete() 中的复位调用,确保只复位一次。
无音频时也调用 simulateCapsLock() 复位。
2. 托盘图标黑色方块: 移除自定义 QPixmap 绘制(在某些平台/主题下
渲染为黑色方块),改用应用窗口图标 + QStyle::SP_ComputerIcon 回退。
状态变化通过 tooltip 文字指示,不再切换不同颜色的图标。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-11 17:14:10 +08:00 |
|
impressionyang
|
8425fb4a04
|
fix: 修复托盘图标/退出/卡顿 4 个问题
1. 关闭窗口无法退出: closeEvent 改为调用 doExit(),正常执行退出流程
2. 托盘右键无法退出: 统一使用 doExit() → qApp->quit(),与菜单/快捷键退出一致
3. 托盘图标更新慢: 6 个状态图标在 setupTrayIcon() 中预创建缓存,
updateTrayIcon() 只做 QMap 查找 + setIcon(),避免每次重建 QPixmap
4. 按键识别卡顿/误释放: simulateCapsLock() 在 XTest 模拟前后设置
CapsLockVoiceHotkey::ignoreEvents_ 标志,屏蔽 portal 的
Activated/Deactivated 回传信号,防止状态机被打断
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-11 16:01:00 +08:00 |
|
impressionyang
|
6bf22041f8
|
fix: 彻底修复 Windows 托盘图标不显示 + 添加版本编译时间日志
Windows 托盘修复:
- 设置 setQuitOnLastWindowClosed(false),关闭主窗口时不退出应用
- 关闭主窗口改为隐藏 (event->ignore()),托盘继续运行
- 托盘菜单"退出"调用 qApp->quit() 真正退出
- 图标简化为 16x16 QImage ARGB32 + 纯色圆,确保 Windows 兼容
- 先设置图标再 trayIcon_->show()
- 添加托盘气泡通知
日志增强:
- 启动日志显示版本号 (v0.1.0)
- 打印编译时间 (__DATE__ __TIME__),方便确认二进制是否更新
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-11 15:39:00 +08:00 |
|
|
|
4836a82cad
|
feat: 添加系统托盘图标,实时指示语音录制状态
托盘图标根据状态变色:绿色(就绪)、黄色(等待确认)、红色(录音中)、
橙色(识别中)。支持双击托盘显示/隐藏主窗口,右键托盘菜单显示窗口和退出。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-11 15:20:09 +08:00 |
|
|
|
6f55ec5780
|
feat: 添加状态栏显示模型名称和加载状态
主窗口底部状态栏实时显示模型加载状态:
- 已就绪:绿色显示"模型已就绪: <文件名>"
- 路径为空:红色显示"⚠️ 模型路径未设置"
- 加载失败:橙色显示"⚠️ 模型加载失败: <文件名>"
Application 新增 modelLoading 信号和 modelPath() 方法,
配置变化时自动刷新状态栏显示。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-05-13 14:19:12 +08:00 |
|
|
|
ef97b962c3
|
refactor: 全局共享 STT 模型,避免重复加载
将 SenseVoiceEngine 提升为 Application 级别的全局单例,应用启动时
异步加载一次模型,实时语音识别、文件转写和快捷键语音输入共享同一实例。
- Application 创建并管理全局 SenseVoiceEngine,启动时加载模型
- STTTestPage、FileTranscribePage、VoiceInputService 不再各自
创建引擎,改为接收全局实例
- 移除各模块中冗余的 loadModel/loadModelAsync/unloadModel 调用
- 模型未加载时提供友好的等待提示,而非加载失败的错误弹窗
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-05-13 14:10:31 +08:00 |
|
|
|
baec3482a7
|
feat: 集成语音输入服务到主窗口和设置页面
主窗口新增 VoiceInputService 生命周期管理,支持通过配置页面
的开关动态启停 CapsLock 语音输入功能,窗口关闭时自动清理。
设置页面新增两个复选框:
- 调试录音:保存每次识别的原始音频到临时文件夹
- 快捷语音:启用 CapsLock 长按语音输入
转写页面和 STT 测试页面同步配置中的调试音频开关到引擎。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-05-13 11:13:15 +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 |
|