refactor(vosk): share the medium and large language table

The medium and large entries carried the same 22-language table
verbatim. Hoist it into _BEST_AVAILABLE_LANGUAGES and give each entry a
dict() copy, so the two sizes keep independent mappings. Values are
unchanged (the old literals were asserted equal before the move).
This commit is contained in:
2026-11-06 19:29:21 +05:30
parent d5c000e58e
commit 4dddbf12fb
+30 -48
View File
@@ -196,6 +196,34 @@ SUPPORTED_LANGUAGES = {
}
# medium and large ship the same best-available table. Each entry gets a copy so
# no caller can change one size's languages through the other.
_BEST_AVAILABLE_LANGUAGES: dict[str, str] = {
"en-us": "vosk-model-en-us-0.22",
"en-in": "vosk-model-en-in-0.5",
"ar": "vosk-model-ar-0.22-linto-1.1.0",
"ca": "vosk-model-small-ca-0.4",
"zh": "vosk-model-cn-0.22",
"cs": "vosk-model-small-cs-0.4-rhasspy",
"nl": "vosk-model-nl-spraakherkenning-0.6",
"fr": "vosk-model-fr-0.22",
"de": "vosk-model-de-0.21",
"hi": "vosk-model-hi-0.22",
"it": "vosk-model-it-0.22",
"ja": "vosk-model-ja-0.22",
"ko": "vosk-model-small-ko-0.22",
"fa": "vosk-model-fa-0.42",
"pl": "vosk-model-small-pl-0.22",
"pt": "vosk-model-pt-fb-v0.1.1-pruned",
"ru": "vosk-model-ru-0.22",
"es": "vosk-model-es-0.42",
"sv": "vosk-model-small-sv-rhasspy-0.15",
"tr": "vosk-model-small-tr-0.3",
"uk": "vosk-model-uk-v3",
"vi": "vosk-model-vn-0.4",
}
# VOSK model metadata for display and download path resolution.
# When Alphacephei only ships a small model, medium/large point at that same
# zip so size selection never resolves to None (issue #550).
@@ -231,58 +259,12 @@ VOSK_MODEL_INFO = {
"medium": {
"size_mb": 1500,
"desc": "Balanced accuracy/speed",
"languages": {
"en-us": "vosk-model-en-us-0.22",
"en-in": "vosk-model-en-in-0.5",
"ar": "vosk-model-ar-0.22-linto-1.1.0",
"ca": "vosk-model-small-ca-0.4",
"zh": "vosk-model-cn-0.22",
"cs": "vosk-model-small-cs-0.4-rhasspy",
"nl": "vosk-model-nl-spraakherkenning-0.6",
"fr": "vosk-model-fr-0.22",
"de": "vosk-model-de-0.21",
"hi": "vosk-model-hi-0.22",
"it": "vosk-model-it-0.22",
"ja": "vosk-model-ja-0.22",
"ko": "vosk-model-small-ko-0.22",
"fa": "vosk-model-fa-0.42",
"pl": "vosk-model-small-pl-0.22",
"pt": "vosk-model-pt-fb-v0.1.1-pruned",
"ru": "vosk-model-ru-0.22",
"es": "vosk-model-es-0.42",
"sv": "vosk-model-small-sv-rhasspy-0.15",
"tr": "vosk-model-small-tr-0.3",
"uk": "vosk-model-uk-v3",
"vi": "vosk-model-vn-0.4",
},
"languages": dict(_BEST_AVAILABLE_LANGUAGES),
},
"large": {
"size_mb": 1500,
"desc": "Same as medium (best available)",
"languages": {
"en-us": "vosk-model-en-us-0.22",
"en-in": "vosk-model-en-in-0.5",
"ar": "vosk-model-ar-0.22-linto-1.1.0",
"ca": "vosk-model-small-ca-0.4",
"zh": "vosk-model-cn-0.22",
"cs": "vosk-model-small-cs-0.4-rhasspy",
"nl": "vosk-model-nl-spraakherkenning-0.6",
"fr": "vosk-model-fr-0.22",
"de": "vosk-model-de-0.21",
"hi": "vosk-model-hi-0.22",
"it": "vosk-model-it-0.22",
"ja": "vosk-model-ja-0.22",
"ko": "vosk-model-small-ko-0.22",
"fa": "vosk-model-fa-0.42",
"pl": "vosk-model-small-pl-0.22",
"pt": "vosk-model-pt-fb-v0.1.1-pruned",
"ru": "vosk-model-ru-0.22",
"es": "vosk-model-es-0.42",
"sv": "vosk-model-small-sv-rhasspy-0.15",
"tr": "vosk-model-small-tr-0.3",
"uk": "vosk-model-uk-v3",
"vi": "vosk-model-vn-0.4",
},
"languages": dict(_BEST_AVAILABLE_LANGUAGES),
},
}