Files
blumia 0fa0bcb44a fix(gui): stop quitting when the last window closes; add device and verify
Accepting the settings dialog quit the app: with a tray-resident program
"last window closed" must not mean "quit", but QApplication's default
made it so, and on first run the dialog is the only window. Disable
quitOnLastWindowClosed. Also fix listOutputDevices hanging forever
(its callbacks never signalled the PulseAudio main loop), enlarge the
caption window's close button, and add capture-device selection
(enumerated sinks, settings combo, --list-devices/--device) plus model
integrity verification (size + sha256 in the registry, --verify-model and
a "校验完整性" button).

点「确定」后程序自己退出:本程序常驻托盘,"最后一个窗口关闭"不该等于退出,
但 QApplication 默认如此,而首次启动时设置对话框正是唯一窗口。已关闭该默认
行为。同时修复 listOutputDevices 永久卡死(回调没有 signal 主循环)、放大
字幕窗关闭按钮,并新增采集设备选择与模型完整性校验(注册表含 size/sha256,
提供 --verify-model 与设置里的「校验完整性」按钮)。
2026-10-12 17:03:20 +08:00

168 lines
6.3 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"version": 1,
"comment": "live-caption 的模型注册表。新增模型 = 在这里加一条,不需要改代码。",
"models": [
{
"id": "qwen3-asr-0.6b-q8",
"name": "Qwen3-ASR 0.6B(通用,52 语言)",
"backend": "llama-cpp",
"languages": [
"zh",
"en",
"ja",
"ko",
"fr",
"de",
"es",
"ru",
"ar",
"auto"
],
"license": "Apache-2.0",
"note": "973MB,准确率高、语言最全、自带语言识别;但每步成本随句子增长(CPU 约为流式后端的 35 倍)",
"files": {
"model": {
"name": "Qwen3-ASR-0.6B-Q8_0.gguf",
"url": "https://hf-mirror.com/ggml-org/Qwen3-ASR-0.6B-GGUF/resolve/main/Qwen3-ASR-0.6B-Q8_0.gguf",
"size": 804749248,
"sha256": "bca259818b50ca7c4c05e9bdb35a5dc04fa039653a6d6f3f0f331f96f6aa1971"
},
"mmproj": {
"name": "mmproj-Qwen3-ASR-0.6B-Q8_0.gguf",
"url": "https://hf-mirror.com/ggml-org/Qwen3-ASR-0.6B-GGUF/resolve/main/mmproj-Qwen3-ASR-0.6B-Q8_0.gguf",
"size": 214392480,
"sha256": "41a342b5e4c514e968cb756de6cd1b7be39eff43c44c57a2ef5fc6522e36603d"
}
},
"options": {}
},
{
"id": "zipformer-zh-2025",
"name": "中文流式(k2-fsa 官方 2025-06-30)",
"backend": "sherpa-online",
"languages": [
"zh"
],
"license": "Apache-2.0",
"note": "154MB,实测中文逐字正确;首个字幕 0.48s,约 0.10 核·秒/秒音频",
"files": {
"encoder": {
"name": "encoder.int8.onnx",
"url": "https://hf-mirror.com/csukuangfj/sherpa-onnx-streaming-zipformer-zh-int8-2025-06-30/resolve/main/encoder.int8.onnx",
"size": 161141793,
"sha256": "5ac51e27981bb4dab01bb9be4958453ba50c3b61c063ddda0eab23fd3671aa4f"
},
"decoder": {
"name": "decoder.onnx",
"url": "https://hf-mirror.com/csukuangfj/sherpa-onnx-streaming-zipformer-zh-int8-2025-06-30/resolve/main/decoder.onnx",
"size": 5165083,
"sha256": "06522ad63cec0fdf6809f4e1db9bb4f7d710c34582e3b35db62ac60eccafac7e"
},
"joiner": {
"name": "joiner.int8.onnx",
"url": "https://hf-mirror.com/csukuangfj/sherpa-onnx-streaming-zipformer-zh-int8-2025-06-30/resolve/main/joiner.int8.onnx",
"size": 1033416,
"sha256": "b34584dc6f561089e1d747fedebb3765f2caa72c927ef54d7ca55e5ae40a814b"
},
"tokens": {
"name": "tokens.txt",
"url": "https://hf-mirror.com/csukuangfj/sherpa-onnx-streaming-zipformer-zh-int8-2025-06-30/resolve/main/tokens.txt",
"size": 20628,
"sha256": "6193c7ea1c96d0d9a1e9652789b40d13a8a913b434a5451e93158f5a09fd6652"
}
},
"options": {}
},
{
"id": "xasr-zh-en-480",
"name": "中英流式(X-ASR-zh-en, 480ms)",
"backend": "sherpa-online",
"languages": [
"zh",
"en"
],
"license": "Apache-2.0",
"note": "587MB,实测中英准确率与 Qwen3-ASR 持平;首个字幕 1.44s",
"files": {
"encoder": {
"name": "encoder-480ms.onnx",
"url": "https://hf-mirror.com/GilgameshWind/X-ASR-zh-en/resolve/main/deployment/models/chunk-480ms-model/encoder-480ms.onnx",
"size": 592968361,
"sha256": "0c3454033d249081df124ddcd7adaf3deca07d0b999b26f2ee5d2475d37abc74"
},
"decoder": {
"name": "decoder-480ms.onnx",
"url": "https://hf-mirror.com/GilgameshWind/X-ASR-zh-en/resolve/main/deployment/models/chunk-480ms-model/decoder-480ms.onnx",
"size": 11309084,
"sha256": "3658368d274a5d5fd39a7ac20c46bed0ad9cfea1f0feddef30d5d89797c1f499"
},
"joiner": {
"name": "joiner-480ms.onnx",
"url": "https://hf-mirror.com/GilgameshWind/X-ASR-zh-en/resolve/main/deployment/models/chunk-480ms-model/joiner-480ms.onnx",
"size": 10260467,
"sha256": "03781c98165a2385024c9cecdd2b6b13310d81db23a62c7da420782c2915cf81"
},
"tokens": {
"name": "tokens.txt",
"url": "https://hf-mirror.com/GilgameshWind/X-ASR-zh-en/resolve/main/deployment/models/chunk-480ms-model/tokens.txt",
"size": 58806,
"sha256": "b818a60878b9aae978cbb8ad594acbd403d76d1af2e31ef4197c84e2dbdba27c"
}
},
"options": {}
},
{
"id": "nemotron35-560ms",
"name": "多语言流式(Nemotron 3.5, 560ms, 含日语)",
"backend": "sherpa-online",
"languages": [
"en",
"ja",
"ko",
"vi",
"ru",
"ar",
"hi",
"fr",
"de",
"es",
"it",
"pt",
"nl",
"tr",
"uk",
"zh"
],
"license": "OpenMDW-1.1",
"note": "651MB,40 种语言 + 内置语言识别;实测中英日都可用但都有瑕疵",
"optionsHint": "language",
"files": {
"encoder": {
"name": "encoder.int8.onnx",
"url": "https://hf-mirror.com/csukuangfj2/sherpa-onnx-nemotron-3.5-asr-streaming-0.6b-560ms-int8-2026-06-11/resolve/main/encoder.int8.onnx",
"size": 657601403,
"sha256": "012e9321373af99021415e0b0eb3ec827b4be3153be6f30d9b448fe65e896e68"
},
"decoder": {
"name": "decoder.int8.onnx",
"url": "https://hf-mirror.com/csukuangfj2/sherpa-onnx-nemotron-3.5-asr-streaming-0.6b-560ms-int8-2026-06-11/resolve/main/decoder.int8.onnx",
"size": 14978075,
"sha256": "19f9c98fc6d0a2c33a65a43b36fdb2e914c26c0aa9764be3aebc502a1e982fb0"
},
"joiner": {
"name": "joiner.int8.onnx",
"url": "https://hf-mirror.com/csukuangfj2/sherpa-onnx-nemotron-3.5-asr-streaming-0.6b-560ms-int8-2026-06-11/resolve/main/joiner.int8.onnx",
"size": 9504438,
"sha256": "4101c7c679a0bc30483794b27a059e34e79232aa2068d78d51231a22c8b0d7ce"
},
"tokens": {
"name": "tokens.txt",
"url": "https://hf-mirror.com/csukuangfj2/sherpa-onnx-nemotron-3.5-asr-streaming-0.6b-560ms-int8-2026-06-11/resolve/main/tokens.txt",
"size": 131440,
"sha256": "729cc103155bafa785f9cd45746cd41cabe97eab7182fc04d594129587958f8a"
}
},
"options": {}
}
]
}