From d435cd4b9754de4a567261b1a877add3af977d9a Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Sun, 07 Jun 2026 01:41:26 +0800
Subject: [PATCH] Add X-ASR experimental backend

---
 privatevoice.src/internal/model/registry.go |   40 ++++++++++++++++++++++++++++++++++++++--
 1 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/privatevoice.src/internal/model/registry.go b/privatevoice.src/internal/model/registry.go
index f561172..8e30239 100644
--- a/privatevoice.src/internal/model/registry.go
+++ b/privatevoice.src/internal/model/registry.go
@@ -10,6 +10,7 @@
 	BackendMoonshine      = "moonshine"
 	BackendNemoTransducer = "nemo_transducer"
 	BackendQwen3ASR       = "qwen3_asr"
+	BackendXASRStreaming  = "x_asr_streaming"
 )
 
 var modelProfiles = map[string]ModelProfile{
@@ -180,6 +181,41 @@
 		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{
@@ -190,7 +226,7 @@
 		UILocale:        "zh",
 		SystemMatchers:  []string{"zh", "zh-CN", "zh-Hans", "zh-Hant"},
 		DefaultModelID:  DefaultModelID,
-		UpgradeModelIDs: []string{Qwen3ASRModelID},
+		UpgradeModelIDs: []string{Qwen3ASRModelID, XASRZhEn960ModelID},
 	},
 	EnglishLanguageID: {
 		ID:              EnglishLanguageID,
@@ -199,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