#4987 TaskCfgVTT(uuid='faee3044f2', name='D:/kkUcXE.mp4', dirname='D:/', noextname='kkUcXE', basename='kkUcXE.mp4', ext='mp4',

104.160* Posted at: 6 hours ago

non-negative timestamp expected:Traceback (most recent call last):
File "videotrans\process\stt_fun.py", line 239, in faster_whisper
File "faster_whisper\transcribe.py", line 460, in transcribe
File "faster_whisper\utils.py", line 123, in format_timestamp
AssertionError: non-negative timestamp expected
语音识别阶段出错:faster-whisper(本地), 翻译字幕阶段出错: Google(免费), 配音阶段出错:Edge-TTS(免费)
Traceback (most recent call last):
File "videotrans\task\only_one.py", line 47, in run
File "videotrans\task\trans_create.py", line 322, in recogn
File "videotrans\recognition\__init__.py", line 190, in run
File "videotrans\recognition\_base.py", line 94, in run
File "videotrans\recognition\_whisper.py", line 36, in _exec
File "videotrans\recognition\_whisper.py", line 109, in _faster
File "videotrans\configure\base.py", line 253, in _new_process
videotrans.configure.excepts.VideoTransError: non-negative timestamp expected:Traceback (most recent call last):
File "videotrans\process\stt_fun.py", line 239, in faster_whisper
File "faster_whisper\transcribe.py", line 460, in transcribe
File "faster_whisper\utils.py", line 123, in format_timestamp
AssertionError: non-negative timestamp expected
TaskCfgVTT(uuid='faee3044f2', name='D:/kkUcXE.mp4', dirname='D:/', noextname='kkUcXE', basename='kkUcXE.mp4', ext='mp4', target_dir='E:/kkUcXE-mp4', cache_folder='D:/BaiduNetdiskDownload/win-pyvideotrans-v4.01-0602/tmp/10704/faee3044f2', is_cuda=True, source_language='简体中文', source_language_code='zh-cn', source_sub='E:/kkUcXE-mp4/zh-cn.srt', source_wav='D:/BaiduNetdiskDownload/win-pyvideotrans-v4.01-0602/tmp/10704/faee3044f2/zh-cn.wav', source_wav_output='E:/kkUcXE-mp4/zh-cn.m4a', target_language='英语', target_language_code='en', target_sub='E:/kkUcXE-mp4/en.srt', target_wav='D:/BaiduNetdiskDownload/win-pyvideotrans-v4.01-0602/tmp/10704/faee3044f2/target.wav', target_wav_output='E:/kkUcXE-mp4/en.m4a', translate_type=0, tts_type=0, volume='+0%', pitch='+0Hz', voice_rate='+20%', voice_role='Steffan(Male/US)', voice_autorate=True, video_autorate=True, remove_silent_mid=False, align_sub_audio=True, detect_language='zh-cn', recogn_type=0, model_name='distil-large-v3', shibie_audio=None, remove_noise=False, enable_diariz=False, nums_diariz=0, rephrase=0, fix_punc=False, subtitle_language=None, app_mode='biaozhun', subtitles='', targetdir_mp4='E:/kkUcXE-mp4/kkUcXE.mp4', novoice_mp4='D:/BaiduNetdiskDownload/win-pyvideotrans-v4.01-0602/tmp/10704/faee3044f2/novoice.mp4', is_separate=False, embed_bgm=True, instrument=None, vocal='D:/BaiduNetdiskDownload/win-pyvideotrans-v4.01-0602/tmp/10704/faee3044f2/vocal.wav', clear_cache=False, background_music='', subtitle_type=1, only_out_mp4=False, recogn2pass=False, output_srt=0, copysrt_rawvideo=False, loop_backaudio=1, backaudio_volume=0.8)


=
system:Windows-10-10.0.19045-SP0
version:v4.01
frozen:True
language:zh
root_dir:D:/BaiduNetdiskDownload/win-pyvideotrans-v4.01-0602

5 Replies

non-negative timestamp expected 错误表明 Whisper 模型在处理音频时遇到了负的时间戳,通常是由于模型与音频语言不匹配或 VAD 参数不当导致的。

核心原因:你使用了 distil-large-v3 模型,该模型 只支持英语(英文)发音,但你的视频原始语言选择了“简体中文”,导致模型无法正确解析中文语音,输出异常时间戳。

解决方案:

  1. 更换语音识别模型

    • faster-whisper(本地) 的模型从 distil-large-v3 改为 large-v3medium(它们支持多语言,包括中文)。
    • 或者改用对中文支持更好的渠道:qwen-asr(本地)阿里FunASR(本地)字节语音大模型极速版
  2. 调整 VAD 参数(高级选项)

    • 点击菜单 工具高级选项语音识别参数,进行如下设置:

      • 语音阈值:0.5
      • 最短语音持续毫秒:3000
      • 最长语音持续秒数:6
      • 静音分割持续毫秒:140500
    • 这有助于避免因 VAD 切分不当产生负时间戳。
  3. 清理缓存并重试

    • 勾选主界面左上角的 “清理已生成”,确保不使用之前的错误缓存。
  4. 检查音频文件

    • 确认输入视频 D:/kkUcXE.mp4 包含正常的人声音轨,没有静音或损坏。

更换模型后,翻译和配音阶段因依赖语音识别结果也会自动修复。如果问题依旧,请提供更换模型后的最新日志文件(logs/ 目录下)。

请查阅相关文档:

所有的模型给我介绍一下

faster-whisper(本地)和 openai-whisper(本地)提供的模型按大小和语言支持分类如下:

一、faster-whisper 模型

  • tiny:体积最小、速度最快,但准确率极低,不推荐用于正式任务。
  • tiny.en:仅支持英文,速度极快,适合纯英文快速测试。
  • base / base.en:基本模型,效果一般,速度尚可;.en 后缀仅限英文。
  • small / small.en:较小模型,平衡速度与准确率,适合资源受限场景。
  • medium / medium.en:中等模型,准确率明显提升,推荐在日常使用中尝试。
  • large-v3最佳推荐模型,准确率最高(尤其是 large-v3 版本),需要 10GB+ 显存(CUDA 加速)或 16GB+ 内存(CPU)。
  • large-v3-turbo:large-v3 的加速版,速度更快但精度略降。
  • distil-xxx(如 distil-large-v3):蒸馏模型,仅支持 英文,速度快、体积小,但语言受限。你之前的错误正是因使用 distil-large-v3 处理中文导致,请避免。

二、openai-whisper 模型
与 faster-whisper 模型名称一致(tiny 到 large-v3),但底层实现不同。openai-whisper 速度较慢,但某些场景下准确率可能略高。同样推荐 large-v3

三、其他本地 ASR 渠道

  • qwen-asr(本地):阿里巴巴模型,对中文语音支持极佳,首次使用需在线下载。
  • 阿里 FunASR(本地):同样针对中文优化,需选择 paraformer-zh 等模型。
  • 豆包语音大模型极速版字节语音识别:在线 API,对中文效果出色。

选择建议:

  • 中文视频:首选 qwen-asr(本地)阿里 FunASR;若用 Whisper,选 large-v3
  • 英文视频:可选用 distil-large-v3large-v3
  • 多语言/不确定:始终选 large-v3

请查阅相关文档:

为什么后很多匹配不对,已经开了声音和画面,

不同步的根本原因:不同语言表达同一意思时,音节数和语法结构不同,导致配音时长必然变化。例如一句2秒的中文翻译成英文后配音可能变成4秒,直接播放必然与画面和口型错位。

即使开启了音频加速/视频慢速,也仅能部分修正,无法完美对齐。要提高同步质量,请按以下顺序检查设置:

  1. 务必勾选「二次识别」:在主界面右上角。它会针对生成的配音音频重新语音转录,生成时间轴精确且简短的字幕,确保字幕与配音严格对齐。仅适用于嵌入单字幕(非双字幕)
  2. 确认是否同时启用了「音频加速」和「视频慢速」:两者可同时勾选,各负担一半时长差异,效果优于单独使用一个。
  3. 调整「配音语速」:在“设置更多参数”中,将配音语速设为+20+30,让配音整体加快,缩短时长。
  4. 移除配音前后静音:在高级选项 → 字幕配音调整中,勾选移除配音前后静音缓冲,可缩短每段配音的有效长度。
  5. 单视频交互模式:若只处理一个视频,在配音完成后会弹出编辑框,可在此试听并手动调整特定句子的配音或重新合成。

若以上仍不能满意,建议接受一定程度的同步偏差,这是自动化翻译配音的固有局限。人工精细调整效果最佳,但耗时较大。

请查阅相关文档:

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