Ariver
2026-06-02 3fbceec8de833416bf1ae049f959f222c3f1a4a0
privatevoice.src/internal/config/config.go
File was renamed from VoiceSnapGo/internal/config/config.go
@@ -4,6 +4,7 @@
   "encoding/json"
   "os"
   "voicesnap/internal/logger"
   "voicesnap/internal/model"
   "voicesnap/internal/paths"
)
@@ -23,6 +24,7 @@
   DeviceName               string `json:"DeviceName,omitempty"`
   IndicatorX               int    `json:"IndicatorX,omitempty"`
   IndicatorY               int    `json:"IndicatorY,omitempty"`
   SelectedModelID          string `json:"SelectedModelID,omitempty"`
   ModelDownloadUrl         string `json:"ModelDownloadUrl"`
   FallbackModelDownloadUrl string `json:"FallbackModelDownloadUrl"`
}
@@ -36,6 +38,7 @@
      SoundFeedback:            true,
      HideDockIcon:             true,
      CopyToClipboard:          true,
      SelectedModelID:          model.DefaultModelID,
      ModelDownloadUrl:         "http://www.maikami.com/voicesnap/sensevoice.zip",
      FallbackModelDownloadUrl: "https://modelscope.cn/models/sherpa-onnx/sherpa-onnx-sense-voice-zh-en-ja-ko-yue/resolve/master/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2024-07-17.tar.bz2",
   }
@@ -63,6 +66,11 @@
      return nil, err
   }
   cfg.HotkeyMode = NormalizeHotkeyMode(cfg.HotkeyMode)
   selectedModelID := cfg.SelectedModelID
   cfg.SelectedModelID = model.NormalizeModelID(cfg.SelectedModelID)
   if selectedModelID != "" && selectedModelID != cfg.SelectedModelID {
      logger.Info("Unknown SelectedModelID %q, falling back to %q", selectedModelID, cfg.SelectedModelID)
   }
   return cfg, nil
}