#4902 导入字幕后的配音不准确

95.85* Posted at: 17 hours ago

导入字幕后的配音不准确

14 Replies

配音不准确,最常见的原因是 目标语言与所选的配音角色不匹配,或 Edge-TTS 渠道被限流触发了静音/错误配音

请按以下步骤排查:

  1. 检查语言与角色匹配

    • 确认主界面 “目标语言” 已正确设置为你的目标语言(如中文英文)。
    • 选择 “配音渠道”(如 Edge-TTS)后,“配音角色” 列表中的角色名称一般是“中文-女声-XXX”或“en-US-XXX”格式。务必选择一个与目标语言对应的角色。如果角色语言和目标语言不匹配,合成结果通常是错误的。
  2. 解决 Edge-TTS 限流或静音问题

    • 现象:配音后大量静音或报错 403
    • 原因:微软免费 Edge-TTS 有并发限制。
    • 解决:点击菜单栏 工具 -> 选项 -> 高级选项,找到:

      • 并发配音线程数: 设为 1
      • 配音后暂停秒: 设为 5 秒。
      • 保存后重新执行。
  3. 检查声音克隆配置(如果选择了 clone 角色)

    • 现象:配音后音色完全不对或报错“配音全部失败”。
    • 解决

      • 确保参考音频(通常放置在软件根目录 f5-tts/ 文件夹内)时长在 3-10 秒,且格式为 .wav
      • 在软件选择角色时,必须填写完整的文件名(例如 1.wav)。
  4. 调整配音语速

    • 点击 “设置更多参数”,检查 “配音语速” 是否为 0。如果之前设置了较大数值(如 +50),请改回 0 再试。

若以上步骤均无效,请提供最新日志文件(位于软件目录 logs/ 文件夹内)的底部约30行内容,以便进一步分析。

原文:彼女は毎日、実の兄から暴力を受けていた。
配音后变成:彼女は毎日実の兄から暴力を受けていた 土砂物に遺液が混じるほどに

这是翻译输出混入了异常文本导致的。原文配音后多出一个无关句子“土砂物に遺液が混じるほどに”,说明翻译渠道在生成字幕时产生了错误的额外内容(幻觉),然后被配音渠道直接合成了。

排查步骤:

  1. 检查翻译结果
    找到输出目录(默认 _video_out/<视频名>-mp4/)下的目标语言字幕文件(如 zh-cn.srtja.srt),用文本编辑器打开,查看对应行是否包含后半句乱码。

    • 如果包含 → 翻译渠道问题
    • 如果不包含 → 继续检查TTS环节
  2. 如果是翻译渠道问题

    • 如果使用了AI翻译(如 ChatGPT/DeepSeek/本地大模型),请取消勾选“发送完整字幕” 并按行翻译。
    • 每批字幕行数减少(高级选项中设为 1~3),避免长上下文导致幻觉。
    • 更换为传统的微软翻译Google翻译免费渠道测试。
  3. 如果是TTS环节问题

    • 先用“批量为字幕配音”功能单独导入这个正确的SRT文件,指定同一配音角色,观察是否依然出现相同错误。
    • 如果依然出现,换用不同的配音角色或渠道(如 Edge-TTS 换为 Qwen-TTS)。
  4. 日志定位
    打开 logs/ 目录下最新日期的 .log 文件,搜索 “dubbing error” 或 “trans error”,可确认具体阶段。

如果仍无法解决,请提供日志底部30行内容。

什么配音渠道有日语配音且不用部署、免费

Edge-TTS 免费,无需部署,支持日语。选择 Edge-TTS 渠道,然后在“目标语言”选日语(ja),“配音角色”列表中会显示日语发音人(如 ja-JP-NanamiNeural 等),直接使用即可。如需本地模型(第一次需联网下载),也可选 Qwen3-TTS(本地内置),同样免费且支持日语。

日语配音还是与我上传的字幕不一致

问题很可能在于软件在配音时,并没有直接使用你上传的字幕文本,而是先对它进行了翻译或重新处理,然后合成了错误的语音。
请按以下步骤排查和解决:

  1. 确认上传的字幕被正确识别为“源字幕”而非“目标字幕”

    • 如果你要配音的语言(日语)就是视频原始语言,且不需要翻译
      在配音功能的设置界面中,不选中任何翻译渠道(或选择“无/不翻译”),确保播放语言的“发音语言”设置为日语。
      然后将你准备的日语 SRT 字幕放置在 _video_out/视频名-mp4/ 文件夹内,重命名为 ja.srt
      软件会直接使用该字幕进行配音,不会再次翻译。
  2. 检查是否使用了“翻译渠道”

    • 如果目标语言仍然选择了其他语言,或者你勾选了某个翻译渠道,软件会将你上传的字幕翻译后再配音,这就会产生不一致。
    • 解决方法:删除或清空翻译渠道选择(如设为“无”),配音目标语言与你的字幕语言保持一致。
  3. 试用“批量为字幕配音”单独测试

    • 打开软件左侧的【批量为字幕配音】功能。
    • 直接导入你的日语 SRT 字幕文件。
    • 选择 Edge-TTS 日语角色,点击开始。
    • 如果此功能输出正确,说明之前是在翻译环节出了问题;如果仍错误,说明是 TTS 渠道本身或参考音频路径问题。
  4. 确认 Edge-TTS 角色与字幕语言一致

    • 在“配音角色”列表中,必须选择日语发音人(例如 ja-JP-NanamiNeural)。
    • 勿选英文或其他语言角色,否则会音色不匹配或输出为其他语言。
  5. 检查日志

    • 打开 logs 文件夹下最新日志,搜索 trans resultdubbing text,看看实际送给 TTS 引擎的文本是什么。如果日志显示与你的字幕不一致,就是翻译环节中招。

如果以上步骤仍无法解决,请复制日志底部 30 行内容,我帮你进一步分析。


Application started at 2026-06-03 14:20:57

[DEBUG] 上次缓存的角色:Keita(Male/JP),字幕嵌入类型:0,发音语言:日语,目标语言:日语,目标语言代码:ja,模型:large-v3-turbo,TTS渠道[0]
[INFO] 可以使用 huggingface.co
[DEBUG] NVIDIA_GPU_NUMS=1
[DEBUG] Found 1 GPUs, cost=2s
[DEBUG] process_max_gpu=1,is_multi_gpus=False
[DEBUG] Concurrent task_nums=1, process_max_cpu=0
[DEBUG] 返回缓存的编解码器 Windows-264: h264_nvenc
[DEBUG] start 9 jobs
[DEBUG] 返回缓存的编解码器 Windows-265: hevc_nvenc
进步 QwenttsLocal 1 config.TEMP_DIR='A:/BaiduNetdiskDownload/py/tmp/21376'
进步 QwenttsLocal 2 config.TEMP_DIR='A:/BaiduNetdiskDownload/py/tmp/21376'
[DEBUG] 开始语音合成:渠道1
2026-06-03 14:21:09,680 - modelscope - WARNING - We can not confirm the cached file is for revision: master
2026-06-03 14:21:09,682 - modelscope - WARNING - We can not confirm the cached file is for revision: master
QwenttsLocal _exec
[DEBUG] [新进程任务 开始:Qwen3-TTS]
[DEBUG] 任务参数:kwargs={'queue_tts_file': 'A:/BaiduNetdiskDownload/py/tmp/21376/None/queusk
.6827033.json', 'language': 'Japanese', 'logs_file': 'A:/BaiduNetdiskDownload/py/tmp/21376/None/qwen3sk
.6827033.log', 'defaulelang': 'zh', 'is_cuda': False, 'model_name': '1.7B', 'roledict': {'No': 'No', 'clone': 'clone', '桜の花が咲くたびに、こんな気持ちになるのはいつ頃からだっけ.wav': {'ref_wav': '桜の花が咲くたびに、こんな気持ちになるのはいつ頃からだっけ.wav', 'ref_text': '桜の花が咲くたびに、こんな気持ちになるのはいつ頃からだっけ'}, 'Vivian': 'Vivian', 'Serena': 'Serena', 'Uncle_fu': 'Uncle_fu', 'Dylan': 'Dylan', 'Eric': 'Eric', 'Ryan': 'Ryan', 'Aiden': 'Aiden', 'Ono_anna': 'Ono_anna', 'Sohee': 'Sohee'}, 'prompt': ''}
[DEBUG] CPU进程池:max_workers=4
[CRITICAL] please run uv sync --extra qwentts
[ERROR] Qwen3-TTS,please run uv sync --extra qwentts
Traceback (most recent call last):
File "videotrans\configure\base.py", line 253, in _new_process
videotsk
.excsk
: please run uv sync --extra qwentts

Logging error

Traceback (most recent call last):
File "videotrans\configure\base.py", line 253, in _new_process
videotsk
.excsk
: please run uv sync --extra qwentts

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "logging\__init__.py", line 1103, in emit
AttributeError: 'NoneType' object has no attribute 'write'
Call stack:
File "videotrans\util\ListenVoice.py", line 16, in run
File "videotrans\tts\__init__.py", line 184, in run
File "videotrans\tts\_base.py", line 92, in run
File "videotrans\tts\_qwenttslocal.py", line 50, in _exec
File "videotrans\configure\base.py", line 266, in _new_process
File "logging\__init__.py", line 1512, in exception
File "logging\__init__.py", line 1506, in error
File "logging\__init__.py", line 1624, in _log
File "logging\__init__.py", line 1634, in handle
File "logging\__init__.py", line 1696, in callHandlers
File "logging\__init__.py", line 968, in handle
File "logging\__init__.py", line 1108, in emit
Message: 'Qwen3-TTS,please run uv sync --extra qwentts '
Arguments: ()
[DEBUG] [新进程任务 结束:Qwen3-TTS],耗时8.053542613983154s
[DEBUG] 新进程执行结束结束timeout=8

问题根源已从日志确认:你选的 Qwen3-TTS(本地)渠道因缺少运行时依赖而配音失败,而非字幕不一致。错误提示 please run uv sync --extra qwentts 说明该渠道在打包版中未完整集成。

解决方案(二选一):

1. 立即生效:切换为 Edge-TTS(免费、无需部署、支持日语)

  • 在主界面将“配音渠道”改为 Edge-TTS(免费)
  • 目标语言 设为 日语
  • 配音角色 选一个日语发音人(如 ja-JP-NanamiNeural
  • 此时配音将通过微软在线服务直接合成日语语音,无需任何额外配置

2. 保留 Qwen3-TTS(需补装依赖,仅适用于源码部署版)

  • 如果你是从源码 uv 启动的(不是双击 sp.exe),请在终端执行:

    uv sync --extra qwentts
  • 如果你是 Windows 打包版用户,此方法无效,请使用方案1。

补充检查:换用 Edge-TTS 后,如果仍出现文本不一致,请检查你上传的字幕文件本身是否有误。可通过“批量为字幕配音”功能单独导入该字幕,指定 Edge-TTS 日语角色测试,若输出正确则说明原流程没问题。

请先按方案1尝试,如仍有问题请提供新的日志。

你说的方法都试过了,还是错

理解,切换到 Edge-TTS 后问题依旧,说明问题不在 TTS 渠道本身,而在于 翻译渠道仍然在处理你的字幕,即软件在配音前把原日文字幕又翻译了一遍(比如译成了中文再合成中文语音),所以你听到的文本不同。

请按以下步骤强制跳过翻译,直接使用你上传的字幕配音:

  1. 在主界面“翻译视频或音频”中

    • 将“翻译渠道”选择为 “无”“不翻译”(如果列表中无此选项,则改为 “微软翻译”“Google翻译” 后,手动清空发音语言和目标语言使两者相同)。
    • 必须确保发音语言=日语,目标语言=日语,这样软件不会进行翻译。
    • 如果仍有翻译选项处于选中状态,先取消所有翻译渠道的勾选(或设为无效值)。
  2. 使用“批量为字幕配音”功能独立测试(最可靠)

    • 点击左侧工具栏中的 “批量为字幕配音”
    • 点击“导入字幕”,选择你准备好的日语 .srt 文件。
    • 将目标语言选为 日语
    • 配音渠道选 Edge-TTS,角色选一个日语发音人。
    • 点击“开始执行”。
    • 若此功能输出的配音与你的字幕完全一致,说明原“视频翻译”功能中仍启动了翻译通道。
    • 若此功能输出的也与字幕不一致,请检查你的 .srt 文件本身是否有隐藏乱码或编码问题(尝试用记事本另存为 UTF-8 编码)。
  3. 检查字幕文件和路径

    • 如果你仍想用“翻译视频或音频”功能直接使用已有字幕,需将日语字幕文件重命名为 ja.srt,放入视频输出目录下的 _video_out/<视频名>-mp4/ 文件夹内(注意后缀 -mp4)。
    • 软件检测到已有 ja.srt 会跳过 ASR 和翻译,直接使用它进行配音。

请先尝试步骤2,如果结果仍然不一致,请提供新的日志(切换 Edge-TTS 后最新产生的 .log 文件底部30行),我才能确认实际送去合成的文本内容。

下载 2.6G 的 v4.01 完整包,这个应是补丁包覆盖,缺失qwen-tts依赖。

视频名称1.mp4,字幕名称ja.srt,然后放在一个_video_out文件夹里,对吗?

路径不对,正确位置是:
在视频所在目录下先创建 _video_out 文件夹,再在里面创建 1-mp4 文件夹,然后将 ja.srt 放入 _video_out/1-mp4/ 内。
即:原本视频目录/_video_out/1-mp4/ja.srt

另外,开发者已确认你用的是补丁包覆盖,缺失 Qwen3-TTS 依赖。虽然你已换用 Edge-TTS,但补丁包可能还有其他文件不完整导致行为异常。建议你重新下载 v4.01 完整包(约 2.6G)解压到纯英文路径,然后再次测试。

若完整包后仍不对,请用“批量为字幕配音”单独测试你的 ja.srt 文件,排除翻译环节干扰,并贴出新日志。

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. Dondate: ko-fi.com/jianchang512

Related resource