From 0ffbf1935c9d091cce22a5583275ac0902f7a693 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Thu, 02 Jul 2026 03:04:51 +0800
Subject: [PATCH] Add Cantonese language model support
---
privatevoice.src/internal/model/registry.go | 41 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 41 insertions(+), 0 deletions(-)
diff --git a/privatevoice.src/internal/model/registry.go b/privatevoice.src/internal/model/registry.go
index 5da545f..641adc4 100644
--- a/privatevoice.src/internal/model/registry.go
+++ b/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
}
--
Gitblit v1.9.3