From 4e7591ebb1294f611e7b85082be55313dd53820f Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 03 Jun 2026 13:25:19 +0800
Subject: [PATCH] Implement Round 3 Moonshine English model

---
 privatevoice.src/internal/config/config.go |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/privatevoice.src/internal/config/config.go b/privatevoice.src/internal/config/config.go
index 473bf25..e3e15c8 100755
--- a/privatevoice.src/internal/config/config.go
+++ b/privatevoice.src/internal/config/config.go
@@ -9,10 +9,12 @@
 )
 
 const (
-	HotkeyModeTap      = "tap"
-	HotkeyModeHold     = "hold"
-	LanguageModeAuto   = "auto"
-	LanguageModeManual = "manual"
+	HotkeyModeTap            = "tap"
+	HotkeyModeHold           = "hold"
+	LanguageModeAuto         = "auto"
+	LanguageModeManual       = "manual"
+	ModelSelectionModeAuto   = "auto"
+	ModelSelectionModeManual = "manual"
 )
 
 // Config holds the application configuration, compatible with the WPF version's config.json.
@@ -27,6 +29,7 @@
 	IndicatorX               int    `json:"IndicatorX,omitempty"`
 	IndicatorY               int    `json:"IndicatorY,omitempty"`
 	SelectedModelID          string `json:"SelectedModelID,omitempty"`
+	ModelSelectionMode       string `json:"ModelSelectionMode,omitempty"`
 	LanguageMode             string `json:"LanguageMode,omitempty"`
 	LanguageID               string `json:"LanguageID,omitempty"`
 	ModelDownloadUrl         string `json:"ModelDownloadUrl"`
@@ -43,6 +46,7 @@
 		HideDockIcon:             true,
 		CopyToClipboard:          true,
 		SelectedModelID:          model.DefaultModelID,
+		ModelSelectionMode:       ModelSelectionModeAuto,
 		LanguageMode:             LanguageModeAuto,
 		LanguageID:               model.DefaultLanguageID,
 		ModelDownloadUrl:         "http://www.maikami.com/voicesnap/sensevoice.zip",
@@ -73,6 +77,7 @@
 	}
 	cfg.HotkeyMode = NormalizeHotkeyMode(cfg.HotkeyMode)
 	cfg.LanguageMode = NormalizeLanguageMode(cfg.LanguageMode)
+	cfg.ModelSelectionMode = NormalizeModelSelectionMode(cfg.ModelSelectionMode)
 	languageID := cfg.LanguageID
 	cfg.LanguageID = model.NormalizeLanguageID(cfg.LanguageID)
 	if languageID != "" && languageID != cfg.LanguageID {
@@ -95,6 +100,15 @@
 	}
 }
 
+func NormalizeModelSelectionMode(mode string) string {
+	switch mode {
+	case ModelSelectionModeAuto, ModelSelectionModeManual:
+		return mode
+	default:
+		return ModelSelectionModeAuto
+	}
+}
+
 func NormalizeHotkeyMode(mode string) string {
 	switch mode {
 	case HotkeyModeTap, HotkeyModeHold:

--
Gitblit v1.9.3