You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署含60+克隆语音的YourTTS多语言模型时遇TypeError问题求助

解决YourTTS部署中的TypeError问题

问题场景

Windows本地部署含多克隆语音的多语言YourTTS模型,执行合成命令后触发错误:

File "C:\Users\Home\Environments\lib\site-packages\TTS\tts\utils\managers.py", line 194, in <setcomp>
speakers = sorted({x["name"] for x in embeddings.values()})
TypeError: 'int' object is not subscriptable

执行的合成命令:

python synthesize.py --text "This is a test sentence." --out_path "C:/Users/Home/OneDrive/Projects/Projects/QuranBeheld/scripts/coqui_TTS/nanonomad_models/output.wav" --model_path "c:/Users/Home/Environments/quranbeheld3.10.11/Lib/site-packages/TTS/nanonomad_models/checkpoint_1978000.pth" --config_path "c:/Users/Home/Environments/quranbeheld3.10.11/Lib/site-packages/TTS/nanonomad_models/config.json" --speakers_file_path "C:/Users/Home/OneDrive/Projects/Projects/QuranBeheld/scripts/coqui_TTS/nanonomad_models/speaker_ids.json" --speaker_idx "VCTK_johnw"

错误原因

代码期望embeddings.values()返回包含name字段的字典对象,但实际返回整数类型,无法通过x["name"]取值。核心问题是手动创建的speaker_ids.json格式不符合YourTTS要求,或config.json中speaker embedding配置路径错误。

解决步骤

  1. 修正speaker_ids.json格式
    YourTTS要求该文件为键值对结构,值需是包含name和embedding字段的字典,示例格式:

    {
      "VCTK_johnw": {
        "name": "VCTK_johnw",
        "embedding": [0.123, 0.456, ...]
      }
    }
    

    需从模型配套资源中获取正确的speaker embedding数据,禁止手动生成空或错误格式的文件。

  2. 检查config.json关键配置
    确认config.json中:

    • speaker_embedding_file指向正确的speaker embedding文件,格式需匹配
    • model_args.speaker_embedding_dim与模型训练时的维度一致
      避免路径错误导致加载的文件内容不符合预期。
  3. 验证文件路径与权限
    确保--speakers_file_path参数指向的路径正确,Windows系统注意使用/或转义\\作为路径分隔符,同时保证文件有可读权限。

  4. 对齐Coqui TTS版本
    安装模型说明文档指定的Coqui TTS版本,版本不兼容会导致数据解析逻辑不匹配,引发类型错误。

内容的提问来源于stack exchange,提问作者Ghulam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 21:55:12