fix: close file handles in from_local() config loading

Use context managers when reading config.json in VoxCPMModel.from_local()
and VoxCPM2Model.from_local() to prevent file descriptor leaks. Also add
explicit encoding="utf-8" to avoid locale-dependent decode errors.

Closes #235

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
sharziki
2026-04-11 00:01:14 -04:00
parent e4e049624c
commit fb46aad9a5
2 changed files with 4 additions and 2 deletions
+2 -1
View File
@@ -852,7 +852,8 @@ class VoxCPMModel(nn.Module):
device: str | None = None,
lora_config: LoRAConfig = None,
):
config = VoxCPMConfig.model_validate_json(open(os.path.join(path, "config.json")).read())
with open(os.path.join(path, "config.json"), "r", encoding="utf-8") as _cfg_f:
config = VoxCPMConfig.model_validate_json(_cfg_f.read())
tokenizer = LlamaTokenizerFast.from_pretrained(path)
audio_vae_config = getattr(config, "audio_vae_config", None)
audio_vae = AudioVAE(config=audio_vae_config) if audio_vae_config else AudioVAE()