Ariver
2026-07-01 3803f0987d7fd38cbd754f3dc37caa29247c852c
CHANGELOG.md
@@ -1,5 +1,171 @@
# Changelog
## v2.1.38 (2026-06-29)
### 性能诊断
- **新增识别流水线性能日志**:为录音尾部等待、停止录音、语音检测、模型识别、文本后处理、历史写入、热键释放等待、粘贴和总耗时加入 `PERF` 分段日志。
- **新增 macOS 粘贴链路性能日志**:记录辅助权限检查、剪贴板快照、写入剪贴板、剪贴板校验和 Cmd+V 的耗时,用于判断慢感是否来自粘贴安全链路。
- **保持识别行为不变**:本版本只增加诊断日志,不调整首尾字保护、模型选择、识别参数或 UI 行为。
### 构建
- build: `20260629.2014`
- 说明: 本版本为性能回退排查诊断候选包,用于真实使用几天后分析慢在识别、尾部等待还是粘贴链路。
### Windows 技术预览
- **新增 Windows 预览构建脚本**:`privatevoice.src/scripts/build-windows-preview.sh` 可生成 Windows x64 预览目录和 zip。
- **内置 Windows 真机 QA 采集脚本**:预览包包含 `QA-WINDOWS-PREVIEW.ps1`,用于采集 WebView2 / 音频端点预检信息、启动 App、打开 Notepad 目标文件、提示完成一次听写,并收集日志和目标文本证据。
- **新增双击 QA 启动器**:预览包包含 `RUN-WINDOWS-QA.cmd`,便于 Windows 测试者直接启动 QA 流程。
- **新增 Windows QA 证据验证脚本**:`privatevoice.src/scripts/verify-windows-qa-evidence.sh` 可检查返回的 `qa-evidence-*.zip` 是否证明启动、引擎、录音、识别和上屏。
- **预览版只开放 SenseVoice**:Windows build 中其他模型仍可见但置灰禁用,避免用户选择尚未验证的模型导致启动或识别失败。
- **打包 sherpa/onnxruntime 运行时 DLL**:预览包包含 `onnxruntime.dll`、`sherpa-onnx-c-api.dll`、`sherpa-onnx-cxx-api.dll`。
- **交付边界**:该产物是 Windows 技术预览,不是已签名安装器,也未完成 Windows 10/11 真机 QA。
---
## v2.1.37 (2026-06-29)
### 双构建线
- **默认 macOS 14+ 构建继续支持 Qwen3-ASR**:主 `go.mod` 保持当前 sherpa-onnx 依赖线,中文高级模型能力不回退。
- **新增 Monterey 兼容构建线**:新增 `monterey_compat` 构建标签和 `go.monterey.mod`,使用 macOS 11 兼容的旧版 sherpa/onnxruntime。
- **兼容包中 Qwen3-ASR 置灰禁用**:Qwen3-ASR 不隐藏,仍显示在中文模型列表中,但标记为不可用并提示需要 macOS 14 或更高版本。
- **构建最低系统版本分离**:默认构建声明 macOS 14.0 起,Monterey 兼容脚本覆盖为 macOS 11.0 起。
### 构建
- build: `20260629.0059`
- 说明: 本版本为双构建线和 Monterey 兼容本地验证候选包。
---
## v2.1.36 (2026-06-28)
### 首尾字稳定性修复
- **Hold 模式首字保护扩展到所有模型**:按下热键后立即启动本地预采集,确认不是组合键后保留这段音频,降低 SenseVoice / Qwen3-ASR / Moonshine / Parakeet 等离线模型开头 1-2 个字丢失的概率。
- **松键尾部采集保护扩展到所有模型**:松开热键后默认继续采集约 300ms 再停止录音,降低最后 1-2 个字被截断的概率。
- **保留取消和组合键隔离**:组合键或过早释放仍会丢弃预采集音频,不进入识别流程。
### 构建
- build: `20260628.2354`
- 说明: 本版本为首尾字稳定性修复的本地验证候选包。
---
## v2.1.35 (2026-06-23)
### 输入配置页排版优化
- **语言选择改为紧凑网格**:输入页语言列表从拥挤的多行 segmented control 调整为响应式网格,避免单个语言孤立成行。
- **模型列表改为 grouped list**:识别模型从多张独立卡片调整为统一分组列表,用内部分割线表达层级。
- **当前模型状态减噪**:当前模型只保留一个主要状态表达,减少蓝框、badge、禁用按钮同时出现造成的视觉负担。
### 构建
- build: `20260623.1435`
- 说明: 本版本为输入配置页排版优化后的本地验收候选包。
---
## v2.1.34 (2026-06-23)
### 输入配置页签拆分
- **语言选择独立成输入页签**:设置窗口新增“输入”页签,集中承载输入语言和离线识别模型选择。
- **首页设置减负**:首页保留热键、输入设备、提示音、剪贴板、开机启动和 Dock 图标等通用设置,减少语言区域拥挤感。
- **保持配置结构不变**:本版本只做阶段 1 信息架构拆分,不新增每语言默认模型、备用模型或自动模型选择配置。
### 构建
- build: `20260623.1312`
- 说明: 本版本为输入配置页签拆分的本地验收候选包。
---
## v2.1.33 (2026-06-23)
### 首启下载状态修复
- **下载中不再误报失败**:首启模型下载过程中,如果后端仍广播 `need_model` 状态,界面会继续保持下载态;只有下载调用真正失败或后端明确返回 `error` 时才显示失败。
### 构建
- build: `20260623.1242`
- 说明: 本版本为首启下载状态修复的本地验收候选包,基于 `v2.1.32` 多语种扩展候选包继续修复。
---
## v2.1.32 (2026-06-23)
### 多语种扩展候选包
- **欧洲五语正式语言基础**:新增 French、German、Spanish、Italian、Portuguese 语言版本,并将 Parakeet TDT v3 作为默认离线模型候选。
- **日语 / 韩语正式语言基础**:新增 Japanese、Korean 语言版本,分别接入日语 Zipformer ReazonSpeech 和韩语 Zipformer 专项模型。
- **动态语言选择**:设置页语言列表改为由后端语言 profile 动态返回,避免继续硬编码中文 / English。
- **多语种模型校验**:新增 Parakeet TDT v3、日语 Zipformer、韩语 Zipformer 的模型文件校验和默认模型回退测试。
- **本地化基础**:新增 `fr`、`de`、`es`、`it`、`pt`、`ja`、`ko` locale 文件,暂以核心设置页文案和英文 fallback 支撑验收。
### 构建
- build: `20260623.0012`
- 说明: 本版本为多语种扩展本地验收候选包;Canary / Whisper benchmark、真实语音 QA 和完整人工翻译仍需发布前补齐。
---
## v2.1.31 (2026-06-14)
### X-ASR 实验修复
- **X-ASR 首字保护**:hold 模式在按下热键时立即开始预采集音频,确认不是组合键后再显示浮窗并进入正式录音,降低“你看看”等短句首字丢失概率。
- **组合键与短按隔离**:预采集阶段检测到组合键或用户过早松开热键时会丢弃音频,不进入识别流程。
- **X-ASR 开头上下文 padding**:X-ASR streaming session 首次接收音频时补 250ms 前置静音,提升贴近开头的短音节稳定性。
- **取消路径加固**:Escape 取消会停止实时字幕 session,并阻止同一次按住手势在 debounce 后重新启动录音;引擎不可用时仍允许已有录音释放/取消清理完成。
- **隔离范围**:首字保护能力仅由 X-ASR streaming engine 启用;SenseVoice、Qwen3-ASR、Moonshine、Parakeet 不启用预采集路径。
### 构建
- build: `20260614.2056`
- 说明: 本版本为 X-ASR 首字/尾字稳定性实验测试包,不是 App Store 正式上传包。
---
## v2.1.30 (2026-06-07)
### X-ASR 实验修复
- **X-ASR 尾句保护**:最终识别前追加 1.5 秒静音 padding,并保留 decode 过程中的最后一个非空结果,减少松开热键时最后一句丢失的问题。
- **录音中实时字幕**:X-ASR 录音时复用现有动态浮窗显示小号实时字幕;松开热键后浮窗切到“识别中/完成”,最终文本仍按原流程粘贴到目标 App。
- **流式 session 接口**:新增 streaming engine/session 抽象,当前只由 X-ASR 使用;SenseVoice、Qwen3-ASR、Moonshine、Parakeet 行为保持不变。
- **录音增量读取**:Recorder 支持安全读取新增 PCM 样本,用于低延迟字幕,不影响最终录音样本收集。
- **macOS 上屏安全同步**:同步正式上架线的剪贴板校验与代际保护,降低关闭“保留到剪贴板”时误粘旧内容的风险。
### 构建
- build: `20260613.2201`
- 说明: 本版本为 X-ASR 实时字幕与尾句修复实验候选包,不是 App Store 正式上传包。
---
## v2.1.29 (2026-06-07)
### 实验候选包
- **X-ASR 960ms 实验模型**:新增 `x-asr-zh-en-960ms` 实验模型 profile,用于评估中英混输和未来“边说边出字”方向。
- **macOS X-ASR streaming backend**:在 macOS 下接入 sherpa-onnx `OnlineRecognizer`,先复用现有“一段录音 -> 最终文本”听写流程验证模型效果,不改 live partial 上屏链路。
- **本地模型安装脚本**:新增 `scripts/install-x-asr-zh-en-960ms.sh`,只下载 Hugging Face `chunk-960ms-model` 所需四个文件,不把大模型放入 git。
- **回滚保护**:已创建 `codex/freeze-2.1.28-appstore-20260605.0353`,指向已上传成功的 2.1.28 App Store 源码基线。
### 构建
- build: `20260607.0147`
- 说明: 本版本为 X-ASR 技术实验候选包,不是 App Store 正式上传包。
---
## v2.1.28 (2026-06-04)
### 发布冻结