From 62f9a3b1e84455c32971272c03163ca543e2f68f Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 03 Jun 2026 14:44:26 +0800
Subject: [PATCH] Implement Round 4 Parakeet model selection

---
 privatevoice.src/internal/model/registry.go |   56 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/privatevoice.src/internal/model/registry.go b/privatevoice.src/internal/model/registry.go
index 8740133..3d305c3 100644
--- a/privatevoice.src/internal/model/registry.go
+++ b/privatevoice.src/internal/model/registry.go
@@ -6,8 +6,9 @@
 )
 
 const (
-	BackendSenseVoice = "sensevoice"
-	BackendMoonshine  = "moonshine"
+	BackendSenseVoice     = "sensevoice"
+	BackendMoonshine      = "moonshine"
+	BackendNemoTransducer = "nemo_transducer"
 )
 
 var modelProfiles = map[string]ModelProfile{
@@ -91,6 +92,44 @@
 		ProviderOrder: []string{"cpu"},
 		NumThreads:    4,
 	},
+	ParakeetModelID: {
+		ID:                   ParakeetModelID,
+		DisplayName:          "Parakeet English",
+		BackendKind:          BackendNemoTransducer,
+		Tier:                 "advanced",
+		SupportedLanguageIDs: []string{EnglishLanguageID},
+		RecommendedFor:       []string{EnglishLanguageID},
+		Description:          "高质量英文离线模型,适合英文长句、技术词和更高准确率需求。",
+		ApproxSize:           "约 478 MiB 下载包",
+		DownloadURLs: []string{
+			"https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-parakeet-unified-en-0.6b-int8-non-streaming.tar.bz2",
+		},
+		InstallDirName: "parakeet-en",
+		RequiredFiles: []RequiredFileRule{
+			{
+				Role:     "encoder",
+				AllOf:    []string{"encoder.int8.onnx"},
+				Required: true,
+			},
+			{
+				Role:     "decoder",
+				AllOf:    []string{"decoder.int8.onnx"},
+				Required: true,
+			},
+			{
+				Role:     "joiner",
+				AllOf:    []string{"joiner.int8.onnx"},
+				Required: true,
+			},
+			{
+				Role:     "tokens",
+				AllOf:    []string{"tokens.txt"},
+				Required: true,
+			},
+		},
+		ProviderOrder: []string{"cpu"},
+		NumThreads:    4,
+	},
 }
 
 var languageProfiles = map[string]LanguageProfile{
@@ -103,12 +142,13 @@
 		DefaultModelID: DefaultModelID,
 	},
 	EnglishLanguageID: {
-		ID:             EnglishLanguageID,
-		DisplayName:    "English",
-		NativeName:     "English",
-		UILocale:       "en",
-		SystemMatchers: []string{"en", "en-US", "en-GB", "en-AU", "en-CA"},
-		DefaultModelID: MoonshineModelID,
+		ID:              EnglishLanguageID,
+		DisplayName:     "English",
+		NativeName:      "English",
+		UILocale:        "en",
+		SystemMatchers:  []string{"en", "en-US", "en-GB", "en-AU", "en-CA"},
+		DefaultModelID:  MoonshineModelID,
+		UpgradeModelIDs: []string{ParakeetModelID},
 	},
 }
 

--
Gitblit v1.9.3