{"record":{"id":"78c74fd2199c8f5c","repo":"RVC-Boss/GPT-SoVITS","slug":"language-is-not-supported-supported-zh-yue-j","errorCode":null,"errorMessage":"{language} is not supported. Supported: zh, yue, ja, en, ko, auto","messagePattern":"(.+?) is not supported\\. Supported: zh, yue, ja, en, ko, auto","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"tools/asr/funasr_asr.py","lineNumber":106,"sourceCode":"            local_dir=\"tools/asr/models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch\",\n        )\n        snapshot_download(\n            \"iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch\",\n            local_dir=\"tools/asr/models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch\",\n        )\n        model_revision = \"v2.0.4\"\n        vad_model_revision = punc_model_revision = \"v2.0.4\"\n    elif language == \"yue\":\n        path_asr = \"tools/asr/models/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online\"\n        snapshot_download(\n            \"iic/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online\",\n            local_dir=\"tools/asr/models/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online\",\n        )\n        path_vad = path_punc = None\n        vad_model_revision = punc_model_revision = \"\"\n        model_revision = \"master\"\n    else:\n        raise ValueError(f\"{language} is not supported. Supported: zh, yue, ja, en, ko, auto\")\n\n    if language in funasr_models:\n        return funasr_models[language]\n    else:\n        model = AutoModel(\n            model=path_asr,\n            model_revision=model_revision,\n            vad_model=path_vad,\n            vad_model_revision=vad_model_revision,\n            punc_model=path_punc,\n            punc_model_revision=punc_model_revision,\n        )\n        print(f\"FunASR 模型加载完成: {language.upper()}\")\n\n        funasr_models[language] = model\n        return model\n\n","sourceCodeStart":88,"sourceCodeEnd":124,"githubUrl":"https://github.com/RVC-Boss/GPT-SoVITS/blob/d523079fc05d9a8028d6085bffe4a2757c32abb6/tools/asr/funasr_asr.py#L88-L124","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"# before\nasr(files, language=\"en-US\")  # ValueError: en-US is not supported. Supported: zh, yue, ja, en, ko, auto\n\n# after\nlang_map = {\"en-us\": \"en\", \"zh-hans\": \"zh\", \"zh-hant\": \"zh\", \"yue\": \"yue\"}\nlanguage = lang_map.get(language.lower().replace(\"_\", \"-\"), language.lower())\nasr(files, language=language)","handlingStrategy":"validation","validationCode":"SUPPORTED = {\"zh\", \"yue\", \"ja\", \"en\", \"ko\", \"auto\"}\nlanguage = (language or \"auto\").lower()\nlanguage = {\"en-us\": \"en\", \"zh-cn\": \"zh\", \"zh-hans\": \"zh\", \"zh-hant\": \"zh\"}.get(language, language)\nif language not in SUPPORTED:\n    raise ValueError(f\"unsupported ASR language {language!r}; use faster_whisper for others\")","typeGuard":"def is_funasr_language(lang: str) -> bool:\n    return (lang or \"\").lower() in {\"zh\", \"yue\", \"ja\", \"en\", \"ko\", \"auto\"}","tryCatchPattern":null,"preventionTips":["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."],"tags":["asr","funasr","language-code","validation"],"backgroundTag":null,"analyzedSha":"d523079fc05d9a8028d6085bffe4a2757c32abb6","analyzedAt":"2026-08-15T01:06:46.402Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}