RVC-Boss/GPT-SoVITS · error · ValueError
{language} is not supported. Supported: zh, yue, ja, en, ko,
Error message
{language} is not supported. Supported: zh, yue, ja, en, ko, auto What it means
ValueError at the bottom of the language-dispatch chain in FunASR-based transcription: funasr_asr.py hard-codes model configs for zh, ja, en, ko, yue and auto; any other language string falls through to the else and is rejected. It is a whitelist guard so callers get an explicit message instead of an obscure model-download failure.
Source
Thrown at tools/asr/funasr_asr.py:106
local_dir="tools/asr/models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch",
)
snapshot_download(
"iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
local_dir="tools/asr/models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
)
model_revision = "v2.0.4"
vad_model_revision = punc_model_revision = "v2.0.4"
elif language == "yue":
path_asr = "tools/asr/models/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online"
snapshot_download(
"iic/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online",
local_dir="tools/asr/models/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online",
)
path_vad = path_punc = None
vad_model_revision = punc_model_revision = ""
model_revision = "master"
else:
raise ValueError(f"{language} is not supported. Supported: zh, yue, ja, en, ko, auto")
if language in funasr_models:
return funasr_models[language]
else:
model = AutoModel(
model=path_asr,
model_revision=model_revision,
vad_model=path_vad,
vad_model_revision=vad_model_revision,
punc_model=path_punc,
punc_model_revision=punc_model_revision,
)
print(f"FunASR 模型加载完成: {language.upper()}")
funasr_models[language] = model
return model
View on GitHub (pinned to d523079fc0)
Solutions
- Use one of the exact supported codes: zh, yue, ja, en, ko, or auto.
- Normalize caller input: lowercase and map locale tags (en-US→en, zh-Hans→zh, yue/yue-Hant→yue) before calling.
- For unsupported languages, switch to a different ASR backend (faster_whisper supports more languages) instead of funasr.
- If extending the tool is acceptable, add a branch with the corresponding ModelScope model id.
Example fix
# before
asr(files, language="en-US") # ValueError: en-US is not supported. Supported: zh, yue, ja, en, ko, auto
# after
lang_map = {"en-us": "en", "zh-hans": "zh", "zh-hant": "zh", "yue": "yue"}
language = lang_map.get(language.lower().replace("_", "-"), language.lower())
asr(files, language=language) Defensive patterns
Strategy: validation
Validate before calling
SUPPORTED = {"zh", "yue", "ja", "en", "ko", "auto"}
language = (language or "auto").lower()
language = {"en-us": "en", "zh-cn": "zh", "zh-hans": "zh", "zh-hant": "zh"}.get(language, language)
if language not in SUPPORTED:
raise ValueError(f"unsupported ASR language {language!r}; use faster_whisper for others") Type guard
def is_funasr_language(lang: str) -> bool:
return (lang or "").lower() in {"zh", "yue", "ja", "en", "ko", "auto"} Prevention
- Send short codes (zh/yue/ja/en/ko/auto), not BCP-47 tags or uppercase.
- Normalize/alias-map language strings at your API boundary.
- Route unsupported languages to faster_whisper instead of funasr.
When it happens
Trigger: Calling the funasr ASR entry (asr() from tools/asr/funasr_asr.py) with language not in {zh, yue, ja, en, ko, auto} — e.g. 'zh-Hans', 'ZH', 'en-US', 'fr', 'cantones' typos.
Common situations: Passing BCP-47 locale codes instead of the short codes; uppercase from an auto-generated config; unsupported language genuinely requested; UI dropdown value not matching backend codes.
Related errors
- 参考音频在3~10秒范围外,请更换!
- prompt_text cannot be empty when using SoVITS_V3
- ref_audio_path cannot be empty, when the reference audio is
- {ref_audio_path} not exists
- 参考音频在3~10秒范围外,请更换!
AI-assisted analysis of RVC-Boss/GPT-SoVITS@d523079fc0 (2026-08-15).
Data as JSON: /api/errors/78c74fd2199c8f5c.
Report an issue: GitHub.