#5575 使用omniVoice本地配音,视频经常出现某一句话没声音,或者断音等情况,或者第一个字没读 第二个字才可以读,这是什么情况呢?音色我能确定没问题的,我在别的软件用完全没问题。

23.247* Posted at: 3 hours ago

使用omniVoice本地配音,视频经常出现某一句话没声音,或者断音等情况,或者第一个字没读 第二个字才可以读,这是什么情况呢?
音色我能确定没问题的,我在别的软件用完全没问题。

3 Replies

这种情况通常是由于 omniVoice 的参考音频截取时长不符合要求字幕时间轴过短/不连续 导致的。omniVoice 要求每句参考音频(从原视频截取的对齐片段)时长在 3-10 秒 之间,且必须包含完整的发音开头。当某条字幕时长低于 3 秒时,截取到的片段可能只有尾声或无声音(开头缺失),从而产生静音或断音。

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

  1. 强制控制字幕时长在 3-10 秒

    • 打开 菜单 → 工具 → 高级选项 → 语音识别参数
    • 最长语音持续(秒) 设为 6(或 10
    • 最短语音持续(毫秒) 设为 3000(即 3 秒)
    • 勾选 合并过短字幕到邻近合并过短字幕
  2. 禁用 LLM 重新断句

    • 在主界面 ASR Channel 下拉框附近,确保 不勾选 LLM 重新断句(保持默认断句)。LLM 断句会重划分时间轴,导致参考音频错位。
  3. 降低配音并发数(防服务崩溃)

    • 进入 高级选项 → 字幕配音调整
    • 并发配音线程数 设为 1(omniVoice 本地服务对并发敏感,单线程最稳定)
  4. 开启人声背景分离(提升参考音频纯净度)

    • 在主界面点击 设置更多参数勾选 分离人声背景声
    • 如果不希望重嵌入背景,可取消勾选 嵌入背景
  5. 确保参考音频文件存放在正确目录

    • 所有自定义参考音频(非 clone 模式)必须为 .wav 格式,时长 3-10 秒,放到 软件目录/f5-tts/ 下,并在 菜单 → TTS 设置 → 设置参考音频 中配置。

如果问题依旧:

  • 请提供 logs/ 文件夹下对应日期的日志文件(复制最后 30 行报错部分),并说明 omniVoice 服务的版本号,以便进一步分析。

请查阅相关文档:

'E:/win-pyvideotrans-v4.03-0626/tmp/17384/e7010d6233/video_concat.txt', '-c', 'copy', 'E:/win-pyvideotrans-v4.03-0626/tmp/17384/e7010d6233/merged_video.mp4']
[DEBUG] 清理视频慢速中生成的视频片段,共删除了 13 个文件。
[DEBUG] [SpeedRate] 新视频生成完毕,总时长: 72633ms
[DEBUG] [Audio] 开始对齐拼接...
[DEBUG] [Audio-Sync] Line=1 | 当前音频时长:current_slot_audio_len=3960, 槽位时长:slot_duration=4900, 音频变短末尾需补静音 940ms | Timeline: 0 -> 4900
[DEBUG] [Audio-Sync] Line=2 | 当前音频时长:current_slot_audio_len=4120, 槽位时长:slot_duration=5333, 音频变短末尾需补静音 1213ms | Timeline: 4900 -> 10233
[DEBUG] [Audio-Sync] Line=3 | 当前音频时长:current_slot_audio_len=3640, 槽位时长:slot_duration=5066, 音频变短末尾需补静音 1426ms | Timeline: 10233 -> 15299
[DEBUG] [Audio-Sync] Line=4 | 当前音频时长:current_slot_audio_len=3320, 槽位时长:slot_duration=4766, 音频变短末尾需补静音 1446ms | Timeline: 15299 -> 20065
[DEBUG] [Audio-Sync] Line=5 | 当前音频时长:current_slot_audio_len=2520, 槽位时长:slot_duration=5866, 音频变短末尾需补静音 3346ms | Timeline: 20065 -> 25931
[DEBUG] [Audio-Sync] Line=6 | 当前音频时长:current_slot_audio_len=4840, 槽位时长:slot_duration=5500, 音频变短末尾需补静音 660ms | Timeline: 25931 -> 31431
[DEBUG] [Audio-Sync] Line=7 | 当前音频时长:current_slot_audio_len=3800, 槽位时长:slot_duration=5433, 音频变短末尾需补静音 1633ms | Timeline: 31431 -> 36864
[DEBUG] [Audio-Sync] Line=8 | 当前音频时长:current_slot_audio_len=4200, 槽位时长:slot_duration=5033, 音频变短末尾需补静音 833ms | Timeline: 36864 -> 41897
[DEBUG] [Audio-Sync] Line=9 | 当前音频时长:current_slot_audio_len=3760, 槽位时长:slot_duration=5566, 音频变短末尾需补静音 1806ms | Timeline: 41897 -> 47463
[DEBUG] [Audio-Sync] Line=10 | 当前音频时长:current_slot_audio_len=5120, 槽位时长:slot_duration=7600, 音频变短末尾需补静音 2480ms | Timeline: 47463 -> 55063
[DEBUG] [Audio-Sync] Line=11 | 当前音频时长:current_slot_audio_len=3880, 槽位时长:slot_duration=5233, 音频变短末尾需补静音 1353ms | Timeline: 55063 -> 60296
[DEBUG] [Audio-Sync] Line=12 | 当前音频时长:current_slot_audio_len=4640, 槽位时长:slot_duration=5833, 音频变短末尾需补静音 1193ms | Timeline: 60296 -> 66129
[DEBUG] [Audio-Sync] Line=13 | 当前音频时长:current_slot_audio_len=5200, 槽位时长:slot_duration=6500, 音频变短末尾需补静音 1300ms | Timeline: 66129 -> 72629
[DEBUG] [Audio-Concat] 最终音频已生成: E:/win-pyvideotrans-v4.03-0626/tmp/17384/e7010d6233/target.wav

[DEBUG] [最终视频合成]copy模式,无需重新编码:
['-y', '-progress', 'compose1782911010.339263.txt', '-i', 'novoice.mp4', '-i', 'will_embed.m4a', '-map', '0:v', '-map', '1:a', '-c:v', 'copy', '-c:a', 'copy', '-movflags', '+faststart', '-r', '30.0', '-fps_mode', 'cfr', '-shortest', 'laste_target.mp4']
[DEBUG] runffmpeg:cmd=['ffmpeg', '-hide_banner', '-nostdin', '-ignore_unknown', '-threads', '0', '-y', '-progress', 'compose1782911010.339263.txt', '-i', 'novoice.mp4', '-i', 'will_embed.m4a', '-map', '0:v', '-map', '1:a', '-c:v', 'copy', '-c:a', 'copy', '-movflags', '+faststart', '-r', '30.0', '-fps_mode', 'cfr', '-shortest', 'laste_target.mp4']

根据您的日志可以看到,每一句配音音频的时长都明显短于预期的槽位时长,导致软件在每句末尾填充了大量静音(例如 Line=5 补了 3346ms 静音),这是您听到断音、无声或第一个字丢失的根本原因——omniVoice 生成的音频片段过短(甚至可能只生成了空白或极短音节),而非软件对齐问题。

请按以下顺序排查:

1. 强制限制字幕时长在 3-10 秒(最关键)

当前日志中的字幕槽位在 4~7 秒之间,但截取参考音频时若原视频对应片段时长过短(<3s),omniVoice 会输出异常短音频。

  • 进入 高级选项 → 语音识别参数
  • 最短语音持续毫秒 设为 3000
  • 最长语音持续秒 设为 6~10
  • 勾选 合并过短字幕到邻近合并过短字幕
  • 必须关闭 LLM 重新断句(保持默认断句)

2. 降低配音并发,避免服务过载

omniVoice 本地服务对并发敏感,高并发可能导致部分请求丢失或返回不完整音频。

  • 高级选项 → 字幕配音调整
  • 并发配音线程数 设为 1
  • 配音后暂停秒 设为 2~3

3. 启用“分离人声背景声”

确保参考音频纯净,避免背景噪声干扰克隆。

  • 主界面点击 设置更多参数,勾选 分离人声背景声(可不勾选“嵌入背景”)

4. 检查 omniVoice 服务自身日志

打开 omniVoice 的控制台或日志,确认对每句请求是否返回了正确的音频长度。若服务端提示“参考音频时长不足”或“音频为空”,需优化原视频中的语音截取。

如果以上仍无效,请尝试切换至 Qwen-TTS(本地内置) 并选择 clone 角色,看是否也存在同样断音。若 Qwen-TTS 正常,则问题定位于 omniVoice 服务的模型或接口兼容性。

请提供 omniVoice 服务的版本号及其控制台最后 20 行日志,以便进一步分析。
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