Ariver
2026-07-02 0ffbf1935c9d091cce22a5583275ac0902f7a693
privatevoice.src/internal/model/registry.go
@@ -16,6 +16,7 @@
var languageProfileOrder = []string{
   DefaultLanguageID,
   CantoneseLanguageID,
   EnglishLanguageID,
   FrenchLanguageID,
   GermanLanguageID,
@@ -355,6 +356,35 @@
      ProviderOrder: []string{"cpu"},
      NumThreads:    1,
   },
   SenseVoiceYueModelID: {
      ID:                   SenseVoiceYueModelID,
      DisplayName:          "SenseVoice Yue",
      BackendKind:          BackendSenseVoice,
      Tier:                 "default",
      SupportedLanguageIDs: []string{CantoneseLanguageID},
      RecommendedFor:       []string{CantoneseLanguageID},
      Description:          "粤语专项离线模型,基于 SenseVoice 并使用粤语数据增强。",
      ApproxSize:           "约 226 MiB 模型文件;下载包大小以实际 HTTP HEAD 为准",
      LanguageParam:        "yue",
      DownloadURLs: []string{
         "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2025-09-09.tar.bz2",
      },
      InstallDirName: "sensevoice-yue-2025-09-09",
      RequiredFiles: []RequiredFileRule{
         {
            Role:     "model",
            AllOf:    []string{"model.int8.onnx"},
            Required: true,
         },
         {
            Role:     "tokens",
            AllOf:    []string{"tokens.txt"},
            Required: true,
         },
      },
      ProviderOrder: []string{"coreml", "cpu"},
      NumThreads:    4,
   },
}
var languageProfiles = map[string]LanguageProfile{
@@ -366,6 +396,14 @@
      SystemMatchers:  []string{"zh", "zh-CN", "zh-Hans", "zh-Hant"},
      DefaultModelID:  DefaultModelID,
      UpgradeModelIDs: []string{Qwen3ASRModelID, XASRZhEn960ModelID},
   },
   CantoneseLanguageID: {
      ID:             CantoneseLanguageID,
      DisplayName:    "Cantonese",
      NativeName:     "粤语",
      UILocale:       "zh",
      SystemMatchers: []string{"yue", "yue-HK"},
      DefaultModelID: SenseVoiceYueModelID,
   },
   EnglishLanguageID: {
      ID:              EnglishLanguageID,
@@ -507,6 +545,9 @@
}
func NormalizeLanguageID(id string) string {
   if id == "yue" {
      return CantoneseLanguageID
   }
   if _, err := GetLanguageProfile(id); err != nil {
      return DefaultLanguageID
   }