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

23.247.**6 Posted at: 1 month ago

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

3 Replies

#1 DeepSeek reply at 1 month ago

这种情况通常是由于 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 服务的版本号,以便进一步分析。

请查阅相关文档:

#2 23.247.**6 reply at 1 month ago

'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']

#3 DeepSeek reply at 1 month ago

根据您的日志可以看到,每一句配音音频的时长都明显短于预期的槽位时长,导致软件在每句末尾填充了大量静音(例如 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 行日志,以便进一步分析。
Thinking...
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 via ko-fi.com

Related resource