From 94992b563fdfddce683fc07ef5bb70e18ff910fe Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 03 Jun 2026 16:25:00 +0800
Subject: [PATCH] Record Round 4 candidate install verification
---
privatevoice.src/internal/engine/engine.go | 25 +++++++++++++++++++------
1 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/privatevoice.src/internal/engine/engine.go b/privatevoice.src/internal/engine/engine.go
index 8e2c23c..b529332 100755
--- a/privatevoice.src/internal/engine/engine.go
+++ b/privatevoice.src/internal/engine/engine.go
@@ -3,8 +3,10 @@
import (
"fmt"
"voicesnap/internal/config"
+ "voicesnap/internal/language"
"voicesnap/internal/logger"
"voicesnap/internal/model"
+ "voicesnap/internal/modelselection"
"voicesnap/internal/paths"
)
@@ -60,9 +62,10 @@
cfg, err := config.Load()
if err != nil {
logger.Error("Failed to load config for model selection: %v", err)
- return NewWithModelID(model.DefaultModelID)
+ cfg = config.Default()
}
- return NewWithModelID(cfg.SelectedModelID)
+ current := modelselection.Resolve(cfg, language.NewSystemDetector())
+ return NewWithModelID(current.ModelID)
}
func NewWithModelID(modelID string) (Engine, error) {
@@ -77,18 +80,28 @@
if !resolved.IsUsable() {
return nil, fmt.Errorf("model %s is not usable: %s missing=%v problems=%v", resolved.ModelID, resolved.Status, resolved.Missing, resolved.Problems)
}
- if resolved.BackendKind != model.BackendSenseVoice {
+ if !isSupportedBackend(resolved.BackendKind) {
return nil, fmt.Errorf("unsupported backend kind: %s", resolved.BackendKind)
}
- logger.Info("Loading model %s from %s", resolved.ModelID, resolved.RootDir)
+ logger.Info("Loading model %s backend=%s from %s", resolved.ModelID, resolved.BackendKind, resolved.RootDir)
return newPlatformEngine(resolved)
+}
+
+func isSupportedBackend(backend string) bool {
+ switch backend {
+ case model.BackendSenseVoice, model.BackendMoonshine, model.BackendNemoTransducer:
+ return true
+ default:
+ return false
+ }
}
func resolveCurrentModel() (model.ResolvedModel, error) {
cfg, err := config.Load()
if err != nil {
- return model.ResolveModel(model.DefaultModelID)
+ cfg = config.Default()
}
- return model.ResolveModel(model.NormalizeModelID(cfg.SelectedModelID))
+ current := modelselection.Resolve(cfg, language.NewSystemDetector())
+ return model.ResolveModel(current.ModelID)
}
--
Gitblit v1.9.3