#2147 TaskCfg(cache_folder='H:/win-pyvideotrans-3.89/tmp/41692/1136f82be4', target_dir='h:/win-pyvideotrans-3.89/output/tts',

2600:1f14* Posted at: 21 hours ago 👁16

配音阶段出错:[GPT-SoVITS] 程序内部错误:'str' object does not support item assignment:
Traceback (most recent call last):
File "videotrans\task\job.py", line 224, in run
File "videotrans\task\_dubbing.py", line 48, in dubbing
File "videotrans\task\_dubbing.py", line 166, in _tts
TypeError: 'str' object does not support item assignment

TaskCfg(cache_folder='H:/win-pyvideotrans-3.89/tmp/41692/1136f82be4', target_dir='h:/win-pyvideotrans-3.89/output/tts', remove_noise=False, is_separate=False, detect_language=None, subtitle_language=None, source_language=None, target_language=None, source_language_code=None, target_language_code='en', source_sub=None, target_sub='H:/win-pyvideotrans-3.89/tmp/41692/20251219-164636.txt', source_wav=None, source_wav_output=None, target_wav='h:/win-pyvideotrans-3.89/output/tts/20251219-164636.wav', target_wav_output=None, subtitles=None, novoice_mp4=None, noextname='20251219-164636', shibie_audio=None, targetdir_mp4=None, instrument=None, vocal=None, back_audio=None, background_music=None, app_mode='biaozhun', subtitle_type=0, volume='+0%', pitch='+0Hz', voice_rate='+0%', voice_role='haimian.wav', copysrt_rawvideo=False, clear_cache=False, translate_type=None, tts_type=10, recogn_type=None, model_name=None, split_type=0, voice_autorate=True, video_autorate=False, cuda=False, name='H:/win-pyvideotrans-3.89/tmp/41692/20251219-164636.txt', basename='20251219-164636.txt', ext='txt', dirname='H:/win-pyvideotrans-3.89/tmp/41692', shound_del_name=None, uuid='1136f82be4', remove_silent_mid=False, align_sub_audio=False, enable_diariz=False, nums_diariz=0, rephrase=2, only_out_mp4=False)


=
system:Windows-10-10.0.19045-SP0
version:v3.89
frozen:True
language:zh
root_dir:H:/win-pyvideotrans-3.89

1 Replies

这个错误表明在使用 GPT-SoVITS 进行配音时,程序尝试修改一个字符串对象,但字符串是不可变的。根据错误堆栈和配置信息,问题很可能与 voice_role='haimian.wav' 这个设置有关。

核心原因:GPT-SoVITS 的 voice_role 参数应该是一个字典(包含参考音频路径和说话人名称等信息),但你提供的是一个字符串 'haimian.wav'。程序内部尝试对这个字符串进行字典式的赋值操作,导致了 'str' object does not support item assignment 错误。

解决方案

  1. 检查 GPT-SoVITS 配置

    • 在软件主界面,点击菜单栏的 工具 -> GPT-SoVITS
    • 确保你已经正确配置了 GPT-SoVITS 的 API 地址(通常是 http://127.0.0.1:9880)。
    • 在“参考音频”区域,确认你已经上传了 haimian.wav 或其他音频文件,并为其设置了“说话人名称”。
  2. 正确选择配音角色

    • 回到主翻译界面,在 第4行“配音” 下拉菜单中,选择 GPT-SoVITS
    • 在右侧的“角色”下拉菜单中,你应该能看到你在 GPT-SoVITS 工具中设置的“说话人名称”(例如“海绵”、“主播”等),而不是直接选择 .wav 文件
    • 选择对应的说话人名称作为配音角色。
  3. 重新处理

    • 完成以上设置后,重新执行翻译任务。
    • 如果之前生成了缓存,请确保勾选主界面 第1行“清理已生成” 选项。

如果问题依旧,请提供 H:/win-pyvideotrans-3.89/logs/ 目录下最新的日志文件,以便进一步分析。

Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Donate: https://ko-fi.com/jianchang512

Trending Questions