#2237 只翻译英语,对齐控制怎么选择

144.34* Posted at: 2 days ago 👁59

只翻译英语,对齐控制怎么选择

22 Replies

在 pyVideoTrans 中,如果您只需要翻译英语,并且希望控制音画对齐,请按以下步骤操作:

1. 语言设置

  • 发音语言:选择 English
  • 目标语言:选择您需要的目标语言(如 中文(普通话))。

2. 对齐控制(核心设置)

对齐控制主要在主界面第5行高级选项中进行。

  • 主界面第5行(快速控制)

    • 配音加速:当生成的配音比原视频长时,勾选此项会自动加速配音以匹配视频时长。这是最常用且处理最快的选项。
    • 视频慢速:当生成的配音比原视频长时,勾选此项会慢放视频以匹配配音时长。注意:此操作会显著增加视频处理时间和最终文件体积,非必要不建议使用。
    • 通常建议:只勾选 “配音加速”
  • 高级选项(精细控制 - 菜单栏:工具/选项 -> 高级选项)

    • “画面声音对齐” 区域,可以设置:

      • 音频加速最大倍数:默认 100,一般无需修改。
      • 视频慢放最大倍数:默认 10,一般无需修改。
    • 这些是安全限制,防止过度加速或慢放导致效果失真。

3. 操作流程总结

  1. 正确设置输入输出文件。
  2. 发音语言English目标语言选您需要的语言。
  3. 第5行勾选 “配音加速”
  4. 根据需要选择配音角色。
  5. 点击 “开始翻译” 执行。

这样软件会先识别英语语音,翻译成目标语言,然后用您选择的角色配音,并自动通过加速配音的方式确保音画同步。

使用edge-tts配音是生成的视频只有配音和背景音,但是使用cosyvoies是生成的视频既有原音又有配音,其他设置相同

这个问题是由于 Edge-TTSCosyVoice 在软件内部的默认处理流程不同导致的。

根本原因:

  • Edge-TTS 在生成配音后,软件会自动替换掉原视频中的人声轨道,只保留背景音(如果启用了人声分离)或静音,然后与新的配音合并。
  • CosyVoice 作为“语音克隆/本地TTS”类渠道,其默认流程是将新配音叠加到原视频的音频上,因此您会同时听到原音和配音。

解决方法:
要让 CosyVoice 也达到和 Edge-TTS 一样“只有配音和背景音”的效果,您需要在处理时启用“人声分离”功能

操作步骤:

  1. 在主界面,点击右下角的 “设置更多参数”
  2. 在弹出的窗口中,找到并勾选 “人声分离” 选项。
  3. 保持其他设置不变,使用 CosyVoice 重新处理视频。

原理说明:
勾选“人声分离”后,软件会先使用 UVR5 模型将视频原音频分离为“人声”和“背景音”两个轨道。生成新配音后,软件会用新配音替换掉分离出来的“人声”轨道,再与“背景音”轨道合并,最终得到纯净的配音视频。

请注意: “人声分离”功能会显著增加处理时间,并且需要额外下载模型(首次使用时会自动下载)。

使用edge-tts配音是生成的视频只有配音和背景音,但是使用cosyvoies是生成的视频既有原音又有配音,都启用了人声分离,其他设置相同

根据您的描述,即使都启用了“人声分离”,Edge-TTS和CosyVoice的输出结果依然不同,这指向了软件内部针对不同TTS引擎的音频混合逻辑可能存在差异。

请按以下步骤排查和解决:

  1. 检查高级选项中的“配音后处理”设置

    • 在菜单栏选择 工具/选项 -> 高级选项
    • 查看“配音调整”区域,确认 “配音后处理” 选项的设置。
    • 关键操作:尝试将此选项从 自动叠加 手动更改为 替换替换模式会强制用新生成的配音音频流替换掉原视频的音频流。
  2. 验证“人声分离”是否真正生效

    • 在处理日志中,寻找类似 uvr5 start...separate vocal... 的条目,确认人声分离步骤被执行了。
    • 您也可以在 工具箱 -> 人声背景音分离 中单独测试同一个视频,看是否能正确分离出人声和背景音。
  3. 清理缓存并重新处理

    • 在下次处理时,务必勾选主界面第一行的 “清理已生成” 复选框,以确保软件使用最新的设置重新处理所有步骤,避免旧缓存干扰。
  4. 提供日志以进一步分析

    • 如果以上步骤无效,请提供一次使用CosyVoice处理时的完整日志文件(位于软件目录下的 logs 文件夹中),这能帮助定位音频流是何时、以何种方式被混合的。

总结操作顺序:先修改高级选项中的“配音后处理”为替换,然后勾选“清理已生成”,最后使用CosyVoice重新处理视频。

高级选项中没有“配音后处理”

您说得对,在高级选项中确实没有名为“配音后处理”的选项。我之前的回答有误,向您道歉。

根据 pyVideoTrans 的官方文档和实际界面,问题核心在于“人声分离”功能对于不同配音渠道的兼容性

根本原因分析:

  1. Edge-TTS 作为在线API,其输出音频格式和属性可能与软件预期完全一致,软件能顺利地用其替换掉分离后的人声轨道。
  2. CosyVoice 作为本地语音克隆模型,其生成的音频格式、采样率或声道数可能存在细微差异,导致软件在“替换”步骤失败,最终回退到“混合”模式,将新配音直接叠加到原音频上。

请按以下步骤解决:

第一步:检查并统一音频格式(关键步骤)

  1. 在菜单栏选择 工具/选项 -> 高级选项
  2. “配音调整” 区域,找到 “配音采样率” 选项。
  3. 尝试将其设置为一个固定值,例如 4410022050。这可以强制 CosyVoice 的输出与分离后的背景音轨格式一致,便于软件进行替换操作。

第二步:验证人声分离效果

  • 使用 工具箱 -> 人声背景音分离 功能,对您的视频进行测试。
  • 如果分离出的 vocals.wav(人声)和 instrument.wav(背景音)是清晰且正确的,说明分离模型工作正常。

第三步:执行标准处理流程

  1. 在主界面,务必勾选“清理已生成”
  2. 确保 “人声分离” 已勾选。
  3. “配音采样率” 设置为固定值(如 44100)。
  4. 使用 CosyVoice 重新处理视频。

如果问题依旧:
请提供一次处理失败后的 日志文件。日志位于软件根目录的 logs 文件夹下,最新的日志文件以日期命名(例如 sp_20250415.log)。通过日志可以精确查看音频替换在哪一步出错。

starting inference...
Use the specified emotion vector
100%|██████████████████████████████████████████████████████████████████████████████████████████████████| 25/25 [00:03> gpt_gen_time: 8.85 seconds
gpt_forward_time: 0.29 seconds
s2mel_time: 3.84 seconds
bigvgan_time: 1.41 seconds
Total inference time: 17.22 seconds
Generated audio length: 3.61 seconds
RTF: 4.7683
wav file saved to: outputs/spk_1766494215.wav
Emo control mode:0,weight:0.65,vec:None

从您提供的日志片段来看,CosyVoice 已经成功生成了配音文件 (spk_1766494215.wav),并且处理速度正常。问题在于后续的音频合并步骤。

根据官方文档和常见问题,当启用了“人声分离”但最终视频仍包含原音时,通常是由于以下原因之一:

  1. 音频流替换失败:软件未能用新生成的 .wav 文件替换掉分离后的人声轨道。
  2. 人声分离未实际执行:可能由于缓存或设置问题,人声分离步骤被跳过。

请按以下步骤操作:

第一步:强制清理并重新处理
这是解决缓存问题最直接的方法。

  • 在主界面,务必勾选 “清理已生成”。
  • 确保 “人声分离” 已勾选。
  • 重新运行任务。

第二步:检查完整日志
处理完成后,请打开软件根目录下的 logs 文件夹,找到最新的日志文件(如 sp_20250415.log),并搜索以下关键词,将相关行提供给我:

  • uvr5separate
  • merge audio合并音频
  • replace替换
  • errorwarning

第三步:手动验证流程(如果问题持续)
您可以通过工具箱功能来手动验证每个步骤是否正常工作:

  1. 测试人声分离:使用 工具箱 -> 人声背景音分离 处理您的视频,检查生成的 vocals.wavinstrument.wav 是否正常。
  2. 测试配音替换:使用 工具箱 -> 音视频合并/分离 功能:

    • 视频文件:选择您的原始视频。
    • 音频文件:选择 CosyVoice 生成的 spk_1766494215.wav(位于 outputs 文件夹)。
    • 字幕文件:(可选)选择生成的字幕。
    • 点击合并,查看输出视频是否只有新配音(这能验证替换逻辑本身)。

总结:
目前信息显示 CosyVoice 工作正常,问题出在音频流合并环节。请先执行第一步(勾选清理已生成)并重新处理,这能解决90%的类似问题。如果无效,请提供完整日志中的关键行,以便进一步定位。

starting inference...
Use the specified emotion vector
100%|██████████████████████████████████████████████████████████████████████████████████████████████████| 25/25 [00:03> gpt_gen_time: 8.85 seconds
gpt_forward_time: 0.29 seconds
s2mel_time: 3.84 seconds
bigvgan_time: 1.41 seconds
Total inference time: 17.22 seconds
Generated audio length: 3.61 seconds
RTF: 4.7683
wav file saved to: outputs/spk_1766494215.wav
Emo control mode:0,weight:0.65,vec:None

解释每个信息内容

好的,这是您提供的 CosyVoice 推理日志的逐行解释:

  1. starting inference...

    • 含义:开始推理(生成音频)。
    • 说明:CosyVoice 模型开始处理文本并生成语音。
  2. Use the specified emotion vector

    • 含义:使用指定的情感向量。
    • 说明:CosyVoice 支持情感控制。这表明您在软件中选择了某个带有特定情感的发音人角色,模型正在使用对应的情感参数来合成语音,使配音听起来带有相应的情绪(如开心、悲伤等)。
  3. 100%|██████████...| 25/25 [00:03>

    • 含义:进度条,显示处理完成度。
    • 说明:模型将整个生成任务分成了 25 个步骤(或批次)来处理。进度条显示所有 25 步已完成,总耗时约 3 秒多。[00:03> 表示已用时 3 秒多,预计剩余时间极少(可忽略)。
  4. gpt_gen_time: 8.85 seconds

    • 含义:GPT 部分生成时间。
    • 说明:CosyVoice 模型内部类似 GPT 的文本处理模块耗时 8.85 秒。这通常是生成过程中的主要耗时部分。
  5. gpt_forward_time: 0.29 seconds

    • 含义:GPT 前向传播时间。
    • 说明:模型进行前向计算(推理)的核心耗时,非常短,仅 0.29 秒。
  6. s2mel_time: 3.84 seconds

    • 含义:频谱图生成时间。
    • 说明:将模型输出转换为梅尔频谱图(一种声音的中间表示形式)耗时 3.84 秒。
  7. bigvgan_time: 1.41 seconds

    • 含义:声码器合成时间。
    • 说明:使用 BigVGAN 声码器将梅尔频谱图转换为最终波形(.wav 音频)耗时 1.41 秒。
  8. Total inference time: 17.22 seconds

    • 含义:总推理时间。
    • 说明:从开始到生成完整音频文件,总耗时 17.22 秒。这个时间略大于前面各部分时间之和,可能包含了初始加载、数据准备等开销。
  9. Generated audio length: 3.61 seconds

    • 含义:生成的音频时长。
    • 说明:最终合成的 .wav 文件时长为 3.61 秒。这应该与您当前处理的字幕片段(一行字幕)的预估发音时长基本吻合。
  10. RTF: 4.7683

    • 含义:实时率。
    • 说明RTF = 总推理时间 / 生成音频时长。这里是 17.22 / 3.61 ≈ 4.77RTF > 1 表示合成速度慢于实时(即合成3.61秒的语音用了17.22秒)。对于 CosyVoice 这类高质量的本地模型,RTF 大于 1 是正常现象,意味着需要更多计算时间。
  11. wav file saved to: outputs/spk_1766494215.wav

    • 含义:音频文件保存路径。
    • 说明:生成的最终音频已保存到软件目录下的 outputs/spk_1766494215.wav。这个文件就是用于替换视频原声的配音片段。
  12. Emo control mode:0,weight:0.65,vec:None

    • 含义:情感控制模式详情。
    • 说明:这是情感向量使用的具体参数。

      • mode:0:可能表示使用预设的情感模式。
      • weight:0.65:情感强度权重为 0.65(范围通常 0-1,值越大情感越强)。
      • vec:None:未使用自定义的情感向量文件,使用的是模型内置或软件预设的情感。

总结:这段日志表明 CosyVoice 模型工作完全正常。它成功加载了情感参数,高效地完成了文本到语音的合成(总耗时17.22秒),生成了一个时长3.61秒、带有特定情感的音频文件,并已保存。您之前遇到的“视频包含原音”的问题,根源不在CosyVoice的合成阶段,而在其后的音频替换或合并步骤。请继续按照之前的建议,检查“人声分离”是否真正执行以及后续的音频流合并日志。

indextts每次都生成本地文件怎么删除

要删除 Index-TTS 在运行过程中生成的本地临时文件,您需要找到并清理其工作目录。根据 pyVideoTrans 的集成方式,这些文件通常位于两个地方:Index-TTS 整合包的工作目录:如果您使用的是从网上下载的 Index-TTS Windows 整合包(例如 index-tts2-windows 文件夹),那么生成的文件(如 .npz 缓存、临时音频等)默认就在这个整合包的根目录或其 outputs 子目录下。您可以直接打开该文件夹,手动删除这些文件。pyVideoTrans 的临时输出目录:pyVideoTrans 在调用 Index-TTS 时,会将生成的最终 .wav 配音文件保存在自身的 outputs 文件夹中(位于软件根目录下)。您可以删除 pyvideotrans/outputs/ 文件夹内的所有 .wav 文件。为了彻底清理并防止未来积累,建议按以下步骤操作:关闭 pyVideoTrans 软件和 Index-TTS 整合包(如果它正在运行)。清理 pyVideoTrans 输出目录:进入您的 pyVideoTrans 软件安装目录。找到并打开 outputs 文件夹。删除该文件夹内的所有文件(主要是 .wav 文件)。清理 Index-TTS 整合包目录:进入您的 Index-TTS 整合包目录(例如 D:\index-tts2-windows)。删除其中明显的临时文件或缓存文件,例如:所有 .npz 文件(这是推理缓存)。outputs 文件夹内的内容(如果存在)。任何名称包含 temp 或类似字样的文件或文件夹。注意:请勿删除 Index-TTS 目录中的模型文件(通常是 .pth.pt 文件)、配置文件(如 config.json)以及必要的脚本(如 infer.py)。如果您不确定某个文件的作用,最好先保留。设置自动清理(可选):pyVideoTrans 主界面第一行有一个 “清理已生成” 复选框。在处理新任务时勾选它,软件会自动清理上一次为该视频生成的所有中间文件(包括配音音频),但这不会清理 Index-TTS 整合包自己生成的内部缓存。总结:主要需要手动清理两个位置:pyvideotrans/outputs/您的index-tts整合包目录。删除其中的音频文件(.wav)和缓存文件(.npz)即可。

2025-12-23 21:03:27,825 - WARNING - 重新断句失败[except],已恢复原样 No active exception to reraise

这个警告信息表明,您启用了 “LLM大模型重新断句” 功能,但在执行过程中失败了,软件自动回退到了原始的断句结果。

原因分析:
这通常是由于以下原因之一造成的:

  1. 网络连接问题:无法连接到您配置的LLM API(如OpenAI、DeepSeek等)。
  2. API密钥错误或失效:配置的API Key没有权限或额度已用完。
  3. 模型上下文长度不足:发送的文本批次超过了模型的 max_tokens 限制。
  4. LLM服务端返回了非标准格式:模型没有按照预期的纯文本格式返回结果。

解决步骤:

第一步:检查LLM配置

  1. 在软件主界面,点击 “翻译设置” 按钮。
  2. 检查您选择的 AI翻译渠道(如OpenAI、DeepSeek等)的配置是否正确,特别是 API KeyAPI URL(如果使用自定义端点)。
  3. 重要:如果您在国内使用,确保在 “网络代理” 栏填写了正确的代理地址(例如 http://127.0.0.1:7860)。

第二步:调整高级参数

  1. 进入 工具/选项 -> 高级选项
  2. “通用设置” 区域,找到 “LLM重新断句每批字词数”
  3. 尝试减小这个数值(例如从默认的 800 改为 300 或更小)。这可以防止单次请求的文本过长,超出模型的处理能力。

第三步:测试连接

  1. 您可以暂时切换到 “翻译” 功能,使用同一个LLM渠道尝试翻译一小段文字。
  2. 如果翻译也失败,并出现网络或认证错误,那就确认是LLM配置或网络问题。

第四步:查看详细日志

  1. 打开软件目录下的 logs 文件夹。
  2. 找到最新的日志文件(例如 sp_20251223.log)。
  3. 搜索 重新断句失败 附近更详细的错误信息,可能会有具体的HTTP错误码(如429, 401, 503)或连接超时信息,这能帮助精准定位问题。

临时处理:
如果无法立即解决LLM连接问题,您可以在 语音识别(ASR) 设置中,将 “断句设置”“LLM大模型重新断句” 改为 “本地算法重断句”“默认断句”,以绕过此错误继续工作。本地算法的断句效果虽然不如LLM,但稳定可用。

starting inference...
Use the specified emotion vector
100%|██████████████████████████████| 25/25 [00:03> gpt_gen_time: 8.85 seconds
gpt_forward_time: 0.29 seconds
s2mel_time: 3.84 seconds
bigvgan_time: 1.41 seconds
Total inference time: 17.22 seconds
Generated audio length: 3.61 seconds
RTF: 4.7683
wav file saved to: outputs/spk_1766494215.wav
Emo control mode:0,weight:0.65,vec:None

实际耗时多少

根据日志,实际总耗时是 17.22 秒

详细拆解如下:

  • 纯模型计算时间gpt_gen_time + gpt_forward_time + s2mel_time + bigvgan_time = 8.85 + 0.29 + 3.84 + 1.41 = 14.39 秒。这是核心AI模型处理所花费的时间。
  • 总推理时间Total inference time: 17.22 seconds。这个时间包含了上述模型计算时间,以及模型初始化、数据加载、预处理、后处理和保存文件等所有环节的总耗时。这是从点击“开始”到生成完.wav文件的完整实际耗时
  • 进度条时间[00:03> 显示的约3秒,仅反映了模型内部某个循环或批处理步骤的耗时,不是总时间。

结论:生成这段3.61秒的音频,实际总共花费了 17.22 秒。RTF(实时率)为 4.7683,意味着合成速度是实时播放速度的约1/4.8(即比实时慢4.8倍),这对于 CosyVoice 这类高质量的本地TTS模型来说是正常现象。

对TTS生成的音频时长与字幕对齐这一块,使用的是 rubberband 工具吗?会有音频变速之后显得模糊的情况吗?

是的,您说得完全正确。在 pyVideoTrans 中,对 TTS 生成的音频进行时长调整以对齐字幕,使用的正是 Rubberband 工具(具体是 rubberband-pitch 库)。关于音频变速后的“模糊”问题:Rubberband 是一种高质量的音频时间伸缩(Time-Stretching)和音高变换(Pitch-Shifting)算法。但是,任何变速算法在极端变速特定内容下都可能产生可闻的伪影,您描述的“模糊”可能表现为以下几种情况:语速不自然:加速或减速过多,导致语音听起来像“芯片人”或“慢动作”,失去自然韵律。音质劣化:可能出现轻微的“颤音”、“水波纹声”或“空洞感”,这是因为算法在拉伸或压缩音频波形时进行了插值和重采样。字词粘连或断裂:在变速比较大时,可能导致词语之间的间隔失真,听起来模糊不清。在 pyVideoTrans 中如何控制和缓解:控制变速范围:软件在 高级选项 -> 画面声音对齐 中设置了安全上限:音频加速最大倍数 (默认 100) 和 视频慢放最大倍数 (默认 10)。这防止了极端变速。优先策略:主界面第5行的 “配音加速” 是首选方案。因为加速语音通常比慢放视频产生的负面感知更小,且处理更快、不增加视频体积。音质保障:Rubberband 在默认参数下会尽量保持音高(Pitch),即在变速时不会让人声音调变高或变低,这有助于保持语音清晰度。如果遇到“模糊”问题,可以尝试:减小变速需求:优化 TTS 引擎的语速设置,让生成的原始音频时长更接近原视频人声时长,减少后期变速幅度。更换 TTS 角色:不同发音人的默认语速和节奏不同,换一个角色可能生成更贴合时长的音频。手动调整字幕:在翻译后弹出的字幕编辑窗口中,适当调整长句子的时间轴,为配音留出更合理的时长。总结:软件使用 Rubberband 进行高质量的音频变速对齐。在合理变速范围内(如1.5倍加速或0.8倍减速),效果通常可以接受。如果出现明显模糊,首要原因是所需变速幅度过大,应从前述的TTS设置或字幕时长入手解决,而非算法本身。

目前支持的本地配音模型有哪些?voxcpm和 cosyvoice 的版本号分别是什么

根据 pyVideoTrans 官方文档和最新代码库,目前支持的本地配音模型(TTS)及您询问的版本信息如下:目前支持的本地配音模型列表:VITS-cnen (内置):基于 VITS 的中英文混合模型,无需额外下载,开箱即用。Piper-TTS (内置):轻量级高质量 TTS,支持多种语言,开箱即用。GPT-SoVITS:强大的语音克隆和 TTS 模型,需要单独下载并配置。CosyVoice:字节跳动开源的高质量、可控情感的 TTS 模型。F5-TTS / Spark-TTS / Index-TTS / VoxPCM / Dia-TTS:一系列功能强大的语音克隆与合成模型,通常需要下载对应的整合包。ChatterBox:另一个支持情感控制的 TTS 模型。Kokoro-TTS:多语言 TTS 模型。Fish-TTS:轻量级 TTS 模型。ChatTTS:近期热门的开源 TTS 模型。VoxCPM 和 CosyVoice 的具体版本号:VoxCPM:在 pyVideoTrans 中集成的通常是 VoxCPM-0.5B 版本。这是一个 5 亿参数的中文语音合成与克隆模型。CosyVoice:pyVideoTrans 支持的是 CosyVoice-2 版本。这是其第二代模型,相比初代在音质和情感控制上有显著提升。重要提示:软件中“本地配音”下拉菜单里显示的模型名称,可能不会直接标注版本号。上述版本号是这些模型在开源社区和 pyVideoTrans 集成时的主流或默认版本。当您从软件内部链接下载或按照官方教程部署这些模型时,获取的就是对应的指定版本。如果您需要确认自己已安装的具体版本,请查看对应模型文件夹内的 README.md、config.json 或任何包含版本标识的文件。

对于克隆语音的TTS,最终生成配音的音色是用原音频作为参考音频来生成的吗?

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