fix(gui): drop a dead setting, make the language list and tail toggle real

Three settings were only half-wired:

- autoPickByLanguage was saved but never read anywhere: delete it.
- showUnstableTail had a checkbox and a setter, but nothing ever called
  the setter, so the checkbox did nothing: apply it in applyAppearance
  and re-render from the cached text instead of blanking the caption.
- the language dropdown was hard-coded to auto/zh/en/ja while the registry
  declares up to 16 languages per model: build it from the selected
  model's own language list, with an ISO-code to display-name mapping
  (plus a unit test covering every code in the registry). The caption
  window's language pill now follows the setting too, instead of keeping
  whatever it showed at startup.

windowPos is not dead -- it stores the dragged window position -- so it stays.

三个「半死」设置:autoPickByLanguage 存了但从没被读取,直接删掉;showUnstableTail
有复选框也有 setter,但从来没人调用 setter(复选框点了没用),改为在 applyAppearance
里生效并用缓存文本重画;「识别语言」下拉原来硬编码 自动/中/英/日,而注册表里每个模型
声明了最多 16 种语言,改为按所选模型的语言动态生成,并补 ISO 码→显示名映射与单元测试。
字幕窗的语言标签也跟着设置走了(原来只在启动时读一次)。windowPos 不是死设置(它存的
是拖动后的位置),保留。
This commit is contained in:
blumia committed 2026-10-12 17:48:21 +08:00
1 parent 6c04071bb5
commit 898763eb74
12 files changed
+141 -26

No files matched your search

+3 -2
View File
@@ -65,8 +65,9 @@
也可以指定某个具体输出设备(如 HDMI);列不出来或没列全时见
[troubleshooting.md](troubleshooting.md)。
- **当前使用**:选择实际生效的模型(只列出**已安装**的)。
- **识别语言**:语言提示,多语言模型用它(例如 Nemotron 需要指定语言才不出错);
「自动检测」= 留空。目前提供 自动/中文/英文/日语。
- **识别语言**:语言提示,多语言模型用它(例如 Nemotron 必须指定语言,否则「自动」可能识别成别的语言);
「自动检测」= 留空。**候选项按所选模型支持的语言生成** —— 中文模型只给中文,Nemotron 给它的 16 种
语言,Qwen3-ASR 给常用语言。改完之后左上角的语言标签会同步更新。
- **下载源**:默认 `https://hf-mirror.com`(网络可达性最好的镜像);可改成其它镜像或官方源。
- **代理**:不使用 / 跟随系统 / 手动设置(主机、端口、用户名、密码)。
+1
View File
@@ -53,6 +53,7 @@ ctest --test-dir build --output-on-failure # 也可以单独跑 build/tests/t
| `tst_livepipeline.silenceEndsSegment` | 静音收束分段 |
| `tst_vad.quietSpeechIsDetected` | 噪声底用均值跟踪,把很轻的话音全判成静音 |
| `tst_transcript.*` | 输出解析与语言名映射 |
| `tst_transcript.isoCodeDisplayName` / `registryLanguagesAllHaveDisplayNames` | 设置里的语言提示用的是 ISO 码(`zh`/`uk`…),漏了显示名的话「识别语言」下拉会直接露出 `uk` 这种码 |
写测试的过程中还**抓到一个真 bug**:段恰好结束在 chunk 边界(没有待处理音频)时,`flush()` 只提交"已稳定"部分,最后几个词会被丢掉。已修(用完整文本 `lastRawFull_` 提交)。