edit | blame | history | raw

2026-06-30 Windows 预览版

用户目标

2.1.38 为基线,启动一个 Windows 技术预览版分支,先验证应用能在 Windows 上启动、录音、中文识别,并把识别文字上屏;不影响现有 macOS 分支和上架线。

当前起点

  • 基线 tag: v2.1.38-build20260629.2014-diagnostic
  • 基线 commit: 9d4f977
  • 新分支: codex/windows-preview-2.1.38
  • 新 worktree: /Users/ar/Projects/PrivateVoice/.worktrees/windows-preview-2.1.38

已完成事项

  • 2.1.38 tag 创建隔离 Windows preview worktree。
  • 运行 Windows cgo 交叉编译,确认项目可以生成 Windows x64 可执行文件。
  • 新增稳定脚本 privatevoice.src/scripts/build-windows-preview.sh,生成完整 Windows preview 目录和 zip。
  • 新增 privatevoice.src/scripts/QA-WINDOWS-PREVIEW.ps1,打进预览包,用于 Windows 真机启动 App、提示完成一次听写,并收集进程、日志、配置和 QA 结果。
  • 增强 QA-WINDOWS-PREVIEW.ps1:脚本会自动创建并打开 Notepad 目标文件 qa-target.txt,要求测试者把识别结果输入并保存,然后采集 qa-target-dictation-text.txt 作为上屏证据。
  • 新增 privatevoice.src/scripts/verify-windows-qa-evidence.sh,用于验证 Windows 返回的 qa-evidence-*.zip 是否同时证明启动、引擎就绪、录音、识别、上屏和 Windows 系统信息。
  • 增强 QA-WINDOWS-PREVIEW.ps1:收集 WebView2 Runtime 注册表信息到 webview2-runtime.txt,收集音频端点清单到 audio-endpoints.txt,帮助定位 Windows 启动或录音失败原因。
  • Windows preview 包含:
  • PrivateVoice Dictation.exe
  • onnxruntime.dll
  • sherpa-onnx-c-api.dll
  • sherpa-onnx-cxx-api.dll
  • RUN-WINDOWS-QA.cmd
  • QA-WINDOWS-PREVIEW.ps1
  • README-WINDOWS-PREVIEW.txt
  • 新增 privatevoice.src/scripts/RUN-WINDOWS-QA.cmd,作为 Windows 用户可双击运行的 QA 启动器,内部调用 QA-WINDOWS-PREVIEW.ps1 并保留退出提示。
  • Windows build 下只开放 SenseVoice,其他模型仍可见但置灰禁用,避免用户在 PC 上选择未验证模型。
  • 新增 Windows build capability 测试。
  • 新增 CODEGRAPH.md,记录核心平台入口、Windows preview 范围和标准验证命令。
  • 更新 CHANGELOG.md,说明 Windows 技术预览边界。

代码变更

  • privatevoice.src/internal/model/build_capabilities.go
  • privatevoice.src/internal/model/build_capabilities_default.go
  • privatevoice.src/internal/model/build_capabilities_monterey.go
  • privatevoice.src/internal/model/build_capabilities_windows.go
  • privatevoice.src/services/engine_service.go
  • privatevoice.src/services/engine_service_qwen3_default_test.go
  • privatevoice.src/services/engine_service_windows_test.go
  • privatevoice.src/frontend/src/components/settings/LanguagePage.svelte
  • privatevoice.src/frontend/src/lib/i18n/zh.json
  • privatevoice.src/frontend/src/lib/i18n/en.json
  • privatevoice.src/scripts/build-windows-preview.sh
  • privatevoice.src/scripts/RUN-WINDOWS-QA.cmd
  • privatevoice.src/scripts/QA-WINDOWS-PREVIEW.ps1
  • privatevoice.src/scripts/verify-windows-qa-evidence.sh
  • CODEGRAPH.md
  • CHANGELOG.md

固定点

  • Commit: abdb22f7391d4128a4f89d8b668781061aedf86d
  • Tag: v2.1.38-build20260629.2014-windows-preview
  • QA update commit: 58c6b963b81e07765d29cda9410399e9644c886f
  • QA update tag: v2.1.38-build20260629.2014-windows-preview-qa
  • QA target text commit: ac31349b32d89b2798cd20224fcdede91d6bfe05
  • QA target text tag: v2.1.38-build20260629.2014-windows-preview-qa-target
  • Evidence verifier commit: fdc5c43b2cf8ebc3d67099cfba9936c838281561
  • Evidence verifier tag: v2.1.38-build20260629.2014-windows-preview-evidence-verifier
  • Runtime preflight commit: 913b25529de9fb28fe9d212cc13492430db5a7c6
  • Runtime preflight tag: v2.1.38-build20260629.2014-windows-preview-preflight
  • QA launcher commit: 5b5cba7030b7f4dd519868fe310bb4fce893bf91
  • QA launcher tag: v2.1.38-build20260629.2014-windows-preview-qa-launcher

交付产物

  • Release 目录: /Users/ar/Projects/PrivateVoice/Release/PrivateVoice-Dictation-2.1.38-build20260629.2014-windows-preview/
  • Zip: PrivateVoice-Dictation-2.1.38-build20260629.2014-windows-amd64-preview.zip
  • SHA256: ad21649749ab4cea80bcbbebf16593b5ffb9c4535902bf5655435784764970c0
  • Manifest: RELEASE_MANIFEST.md

验证结论

  • ./scripts/build-windows-preview.sh: 通过。
  • go test ./...: 通过,存在既有 macOS linker version warnings。
  • GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ go test -exec=/usr/bin/true ./...: 通过。
  • unzip -t: 通过。
  • 静态检查确认 PrivateVoice Dictation.exePE32+ executable (GUI) x86-64, for MS Windows
  • zip 内容检查确认包含 QA-WINDOWS-PREVIEW.ps1
  • zip 内容检查确认 QA 脚本包含 qa-target.txtDICTATION_RESULT:qa-target-dictation-text.txt 证据采集逻辑。
  • 本机没有 pwsh / powershell,因此 PowerShell 脚本只能在 Windows 真机上做运行语法验证。
  • bash -n privatevoice.src/scripts/verify-windows-qa-evidence.sh: 通过。
  • 使用模拟 qa-evidence-pass.zip 运行 verify-windows-qa-evidence.sh: 输出 WINDOWS_QA_EVIDENCE_PASS
  • ./scripts/build-windows-preview.sh: 重新构建通过,包内 QA 脚本确认包含 WebView2 和音频端点采集逻辑。
  • unzip -t: 通过。
  • ./scripts/build-windows-preview.sh: 从 5b5cba7030b7f4dd519868fe310bb4fce893bf91 重新构建通过。
  • go test ./...: 通过,存在既有 macOS linker version warnings。
  • GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ go test -exec=/usr/bin/true ./...: 通过。
  • unzip -t: 通过,确认最终 zip 无压缩错误。
  • zip 内容检查确认包含 RUN-WINDOWS-QA.cmdQA-WINDOWS-PREVIEW.ps1README-WINDOWS-PREVIEW.txt
  • 静态检查确认最终包内 PrivateVoice Dictation.exePE32+ executable (GUI) x86-64, for MS Windows
  • 2026-07-01 用户在真实 PC 上完成测试并反馈“测试通过了完全正常”。
  • 测试机环境截图显示:Huawei MateBook 16s、Windows 11 家庭中文版 23H2、OS build 22631.6199、x64、13th Gen Intel Core i9-13900H、32 GB RAM。
  • 本轮 Windows runtime acceptance 以用户人工验收 PASS 记录;未收到自动 qa-evidence-*.zip,因此未运行真实日志证据验证脚本。
  • 2026-07-01 后续验证确认:微信 PC 也把 右 Alt 绑定为“发语音消息”,所以微信中先发出语音、随后文字出现的现象是外部快捷键冲突,不是 PrivateVoice 的识别或上屏 bug。

未决问题

  • 未收到自动 qa-evidence-*.zip,所以没有真实 PC 日志、qa-results.tsvqa-target-dictation-text.txt 的脚本化证据包。
  • 当前包未签名、不是安装器,Windows Defender / SmartScreen 拦截属于预期。

后续建议

  • Windows 用户在微信 PC 中使用时,应避免微信“发语音消息”和 PrivateVoice 触发键同为 右 Alt;可改微信快捷键或改 PrivateVoice 触发键。
  • 后续若继续做 Windows 方向,应优先补签名/安装器、SmartScreen 体验,以及真实 QA 证据包回收流程。