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/modelselection/selection_test.go | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/privatevoice.src/internal/modelselection/selection_test.go b/privatevoice.src/internal/modelselection/selection_test.go
index cd0fbc2..409a0fc 100644
--- a/privatevoice.src/internal/modelselection/selection_test.go
+++ b/privatevoice.src/internal/modelselection/selection_test.go
@@ -67,6 +67,42 @@
}
}
+func TestResolveManualUsesQwen3ASRForChinese(t *testing.T) {
+ cfg := config.Default()
+ cfg.LanguageMode = config.LanguageModeAuto
+ cfg.ModelSelectionMode = config.ModelSelectionModeManual
+ cfg.SelectedModelID = model.Qwen3ASRModelID
+
+ current := Resolve(cfg, fakeDetector{locale: "zh-CN"})
+ if current.ModelID != model.Qwen3ASRModelID {
+ t.Fatalf("model id = %q, want manual selected %q", current.ModelID, model.Qwen3ASRModelID)
+ }
+}
+
+func TestResolveManualUsesXASRForChinese(t *testing.T) {
+ cfg := config.Default()
+ cfg.LanguageMode = config.LanguageModeAuto
+ cfg.ModelSelectionMode = config.ModelSelectionModeManual
+ cfg.SelectedModelID = model.XASRZhEn960ModelID
+
+ current := Resolve(cfg, fakeDetector{locale: "zh-CN"})
+ if current.ModelID != model.XASRZhEn960ModelID {
+ t.Fatalf("model id = %q, want manual selected %q", current.ModelID, model.XASRZhEn960ModelID)
+ }
+}
+
+func TestResolveManualUsesXASRForEnglish(t *testing.T) {
+ cfg := config.Default()
+ cfg.LanguageMode = config.LanguageModeAuto
+ cfg.ModelSelectionMode = config.ModelSelectionModeManual
+ cfg.SelectedModelID = model.XASRZhEn960ModelID
+
+ current := Resolve(cfg, fakeDetector{locale: "en-US"})
+ if current.ModelID != model.XASRZhEn960ModelID {
+ t.Fatalf("model id = %q, want manual selected %q", current.ModelID, model.XASRZhEn960ModelID)
+ }
+}
+
func TestResolveManualModelFallsBackWhenLanguageIncompatible(t *testing.T) {
cfg := config.Default()
cfg.LanguageMode = config.LanguageModeAuto
@@ -82,6 +118,21 @@
}
}
+func TestResolveManualQwen3ASRFallsBackForEnglish(t *testing.T) {
+ cfg := config.Default()
+ cfg.LanguageMode = config.LanguageModeAuto
+ cfg.ModelSelectionMode = config.ModelSelectionModeManual
+ cfg.SelectedModelID = model.Qwen3ASRModelID
+
+ current := Resolve(cfg, fakeDetector{locale: "en-US"})
+ if current.ModelID != model.MoonshineModelID {
+ t.Fatalf("model id = %q, want English default %q", current.ModelID, model.MoonshineModelID)
+ }
+ if current.FallbackReason == "" {
+ t.Fatal("expected fallback reason")
+ }
+}
+
func TestResolveInvalidManualFallsBackToLanguageDefault(t *testing.T) {
cfg := config.Default()
cfg.LanguageMode = config.LanguageModeAuto
--
Gitblit v1.9.3