From 605a6b2b280c0b2d555f0e2fad56b289361ce29c Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Sun, 07 Jun 2026 11:28:52 +0800
Subject: [PATCH] Add X-ASR live captions
---
privatevoice.src/internal/model/registry.go | 101 +++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 94 insertions(+), 7 deletions(-)
diff --git a/privatevoice.src/internal/model/registry.go b/privatevoice.src/internal/model/registry.go
index 3d305c3..8e30239 100644
--- a/privatevoice.src/internal/model/registry.go
+++ b/privatevoice.src/internal/model/registry.go
@@ -9,6 +9,8 @@
BackendSenseVoice = "sensevoice"
BackendMoonshine = "moonshine"
BackendNemoTransducer = "nemo_transducer"
+ BackendQwen3ASR = "qwen3_asr"
+ BackendXASRStreaming = "x_asr_streaming"
)
var modelProfiles = map[string]ModelProfile{
@@ -130,16 +132,101 @@
ProviderOrder: []string{"cpu"},
NumThreads: 4,
},
+ Qwen3ASRModelID: {
+ ID: Qwen3ASRModelID,
+ DisplayName: "Qwen3-ASR",
+ BackendKind: BackendQwen3ASR,
+ Tier: "advanced",
+ SupportedLanguageIDs: []string{DefaultLanguageID, "zh-Hans", "zh-Hant", "yue"},
+ RecommendedFor: []string{DefaultLanguageID},
+ Description: "高质量中文离线模型,适合中文长句、技术词和中英混输准确率需求。",
+ ApproxSize: "约 838 MiB 下载包,解压后约 1.9 GiB",
+ DownloadURLs: []string{
+ "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-qwen3-asr-0.6B-int8-2026-03-25.tar.bz2",
+ },
+ InstallDirName: "qwen3-asr-0.6b",
+ RequiredFiles: []RequiredFileRule{
+ {
+ Role: "conv_frontend",
+ AllOf: []string{"conv_frontend.onnx"},
+ Required: true,
+ },
+ {
+ Role: "encoder",
+ AllOf: []string{"encoder.int8.onnx"},
+ Required: true,
+ },
+ {
+ Role: "decoder",
+ AllOf: []string{"decoder.int8.onnx"},
+ Required: true,
+ },
+ {
+ Role: "tokenizer",
+ AllOf: []string{"tokenizer"},
+ Required: true,
+ Directory: true,
+ },
+ {
+ Role: "tokenizer_merges",
+ AllOf: []string{"tokenizer/merges.txt"},
+ Required: true,
+ },
+ {
+ Role: "tokenizer_vocab",
+ AllOf: []string{"tokenizer/vocab.json"},
+ Required: true,
+ },
+ },
+ ProviderOrder: []string{"cpu"},
+ NumThreads: 4,
+ },
+ XASRZhEn960ModelID: {
+ ID: XASRZhEn960ModelID,
+ DisplayName: "X-ASR zh-en 960ms",
+ BackendKind: BackendXASRStreaming,
+ Tier: "experimental",
+ SupportedLanguageIDs: []string{DefaultLanguageID, "zh-Hans", "zh-Hant", "yue", EnglishLanguageID},
+ RecommendedFor: []string{DefaultLanguageID, EnglishLanguageID},
+ Description: "实验性中英流式模型,适合评估中英混输和未来边说边出字体验。",
+ ApproxSize: "单个 960 ms 模型目录约 586 MiB",
+ InstallDirName: "x-asr-zh-en-960ms",
+ RequiredFiles: []RequiredFileRule{
+ {
+ Role: "encoder",
+ AllOf: []string{"encoder-960ms.onnx"},
+ Required: true,
+ },
+ {
+ Role: "decoder",
+ AllOf: []string{"decoder-960ms.onnx"},
+ Required: true,
+ },
+ {
+ Role: "joiner",
+ AllOf: []string{"joiner-960ms.onnx"},
+ Required: true,
+ },
+ {
+ Role: "tokens",
+ AllOf: []string{"tokens.txt"},
+ Required: true,
+ },
+ },
+ ProviderOrder: []string{"cpu"},
+ NumThreads: 1,
+ },
}
var languageProfiles = map[string]LanguageProfile{
DefaultLanguageID: {
- ID: DefaultLanguageID,
- DisplayName: "Chinese",
- NativeName: "中文",
- UILocale: "zh",
- SystemMatchers: []string{"zh", "zh-CN", "zh-Hans", "zh-Hant"},
- DefaultModelID: DefaultModelID,
+ ID: DefaultLanguageID,
+ DisplayName: "Chinese",
+ NativeName: "中文",
+ UILocale: "zh",
+ SystemMatchers: []string{"zh", "zh-CN", "zh-Hans", "zh-Hant"},
+ DefaultModelID: DefaultModelID,
+ UpgradeModelIDs: []string{Qwen3ASRModelID, XASRZhEn960ModelID},
},
EnglishLanguageID: {
ID: EnglishLanguageID,
@@ -148,7 +235,7 @@
UILocale: "en",
SystemMatchers: []string{"en", "en-US", "en-GB", "en-AU", "en-CA"},
DefaultModelID: MoonshineModelID,
- UpgradeModelIDs: []string{ParakeetModelID},
+ UpgradeModelIDs: []string{ParakeetModelID, XASRZhEn960ModelID},
},
}
--
Gitblit v1.9.3