Files
voculinux/tests
Anay GarodiaandGitHub fbcd28d577 fix(vosk): add missing Italian and English-India entries to medium/large model tables (#551)
Fixes #550.

Root cause: VOSK_MODEL_INFO["medium"]["languages"] and
VOSK_MODEL_INFO["large"]["languages"] in vosk_model_info.py were missing
entries for "it" (Italian) and "en-in" (English-India), even though both
languages are present in the "small" table and VOSK actually publishes
bigger models for them (vosk-model-it-0.22, vosk-model-en-in-0.5 at
alphacephei.com/vosk/models).

When a user selected Italian + the medium (or large) VOSK model,
_init_vosk() built vosk_model_map["medium"] = None (via .get() on a
missing key), and _get_vosk_model_path() then called
os.path.join(MODELS_DIR, None), crashing with:

    join() argument must be str, bytes, or os.PathLike object, not 'NoneType'

before any download was even attempted. This matches the exact debug log
in the issue and the settings-dialog download flow the reporter exercised.

Fix:
- Add the missing "it"/"en-in" entries to the medium/large tables so all
  10 supported languages now resolve consistently across all three sizes.
- Add a guard in _get_vosk_model_path() that raises a clear ValueError
  ("No VOSK '<size>' model available for language '<lang>'...") instead of
  crashing deep inside os.path.join, so any future data gap fails loudly
  and helpfully rather than with a cryptic TypeError.
2026-07-19 22:53:07 -07:00
..