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 与设置里的「校验完整性」按钮)。
This commit is contained in:
1 parent
a7a6f3e6b6
commit
0fa0bcb44a
19 files changed
+460
-55
No files matched your search
+81
-20
@@ -6,17 +6,32 @@
|
||||
"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"],
|
||||
"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"
|
||||
"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"
|
||||
"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": {}
|
||||
@@ -25,25 +40,35 @@
|
||||
"id": "zipformer-zh-2025",
|
||||
"name": "中文流式(k2-fsa 官方 2025-06-30)",
|
||||
"backend": "sherpa-online",
|
||||
"languages": ["zh"],
|
||||
"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"
|
||||
"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"
|
||||
"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"
|
||||
"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"
|
||||
"url": "https://hf-mirror.com/csukuangfj/sherpa-onnx-streaming-zipformer-zh-int8-2025-06-30/resolve/main/tokens.txt",
|
||||
"size": 20628,
|
||||
"sha256": "6193c7ea1c96d0d9a1e9652789b40d13a8a913b434a5451e93158f5a09fd6652"
|
||||
}
|
||||
},
|
||||
"options": {}
|
||||
@@ -52,25 +77,36 @@
|
||||
"id": "xasr-zh-en-480",
|
||||
"name": "中英流式(X-ASR-zh-en, 480ms)",
|
||||
"backend": "sherpa-online",
|
||||
"languages": ["zh", "en"],
|
||||
"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"
|
||||
"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"
|
||||
"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"
|
||||
"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"
|
||||
"url": "https://hf-mirror.com/GilgameshWind/X-ASR-zh-en/resolve/main/deployment/models/chunk-480ms-model/tokens.txt",
|
||||
"size": 58806,
|
||||
"sha256": "b818a60878b9aae978cbb8ad594acbd403d76d1af2e31ef4197c84e2dbdba27c"
|
||||
}
|
||||
},
|
||||
"options": {}
|
||||
@@ -79,29 +115,54 @@
|
||||
"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"],
|
||||
"languages": [
|
||||
"en",
|
||||
"ja",
|
||||
"ko",
|
||||
"vi",
|
||||
"ru",
|
||||
"ar",
|
||||
"hi",
|
||||
"fr",
|
||||
"de",
|
||||
"es",
|
||||
"it",
|
||||
"pt",
|
||||
"nl",
|
||||
"tr",
|
||||
"uk",
|
||||
"zh"
|
||||
],
|
||||
"license": "OpenMDW-1.1",
|
||||
"note": "651MB,40 种语言 + 内置语言识别;实测中英日都可用但都有瑕疵",
|
||||
"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"
|
||||
"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"
|
||||
"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"
|
||||
"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"
|
||||
"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": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user