#8389 No human voice detected. Please confirm that human speech is present in the original file. [info.duration_after_vad=0.0s

112.255**6 Posted at: 2 hours ago

No human voice detected. Please confirm that human speech is present in the original file. [info.duration_after_vad=0.0s].
_kw={'beam_size': 5, 'best_of': 5, 'condition_on_previous_text': False, 'threshold': 0.45, 'no_speech_threshold': 0.6, 'temperature': 0.0, 'repetition_penalty': 1.0, 'compression_ratio_threshold': 2.4, 'initial_prompt': None}
info=TranscriptionInfo(language='zh', language_probability=1, duration=7.662625, duration_after_vad=0.0, all_language_probs=None, transcription_options=TranscriptionOptions(beam_size=5, best_of=5, patience=1, length_penalty=1, repetition_penalty=1.0, no_repeat_ngram_size=0, log_prob_threshold=-1.0, no_speech_threshold=0.6, compression_ratio_threshold=2.4, condition_on_previous_text=False, prompt_reset_on_temperature=0.5, temperatures=[0.0], initial_prompt=None, prefix=None, suppress_blank=True, suppress_tokens=(1, 2, 7, 8, 9, 10, 14, 25, 26, 27, 28, 29, 31, 58, 59, 60, 61, 62, 63, 90, 91, 92, 93, 359, 503, 522, 542, 873, 893, 902, 918, 922,
......
.....
hold=2.4, condition_on_previous_text=False, prompt_reset_on_temperature=0.5, temperatures=[0.0], initial_prompt=None, prefix=None, suppress_blank=True, suppress_tokens=(1, 2, 7, 8, 9, 10, 14, 25, 26, 27, 28, 29, 31, 58, 59, 60, 61, 62, 63, 90, 91, 92, 93, 359, 503, 522, 542, 873, 893, 902, 918, 922, 931, 1350, 1853, 1982, 2460, 2627, 3246, 3253, 3268, 3536, 3846, 3961, 4183, 4667, 6585, 6647, 7273, 9061, 9383, 10428, 10929, 11938, 12033, 12331, 12562, 13793, 14157, 14635, 15265, 15618, 16553, 16604, 18362, 18956, 20075, 21675, 22520, 26130, 26161, 26435, 28279, 29464, 31650, 32302, 32470, 36865, 42863, 47425, 49870, 50254, 50258, 50359, 50360, 50361, 50362, 50363), without_timestamps=False, max_initial_timestamp=1.0, word_timestamps=True, prepend_punctuations='"\'“¿([{-', append_punctuations='"\'.。,,!!??::”)]}、', multilingual=False, max_new_tokens=None, clip_timestamps=[0.0], hallucination_silence_threshold=None, hotwords=''), vad_options=VadOptions(threshold=0.45, neg_threshold=None, min_speech_duration_ms=0, max_speech_duration_s=inf, min_silence_duration_ms=2000, speech_pad_ms=400))

trk=[TransCreate]: uuid='8b7d8ace44', proxy_str=None, cfg=[TaskCfgVTT]当前工作模式: 翻译视频 单视频模式
原始输入文件名: F:/007/IMG_9743/IMG_9743_3.mp4,
输出结果保存到文件夹: F:/a处理好/IMG_9743_3-mp4,
临时文件夹: E:/win-pyvideotrans-v4.08-0802/tmp/33264/8b7d8ace44
未选 清理已存在
已启用CUDA加速
未选 降噪
语音识别:faster-whisper(内置), large-v3-turbo, 发音语言: 简体中文,
翻译渠道:DeepSeek,原始语言:简体中文,目标语言:英语, 已选 发送完整字幕
配音渠道:Edge-TTS(免费), 角色:Steffan(Male/US), 配音语言:英语, 未选 二次语音识别
音量:+0%, 语速:+0%, 未选 音频加速, 已选 视频慢速
已选 移除每条字幕配音开头和结尾静音缓冲
静音移除力度: default
字幕: 嵌入硬字幕 , precent=4, hasend=False, should_recogn=True, should_trans=True, should_dubbing=True, should_hebing=True, is_copy_video=True, video_codec_num=264, ignore_align=False, is_audio_trans=False, clone_ref='', should_recogn2=False, do_diarize=True
video_duration_ms=7666

=
system:Windows-10-10.0.22631-SP0
version:v4.16
frozen:True
language:zh_CN
root_dir:E:/win-pyvideotrans-v4.08-0802

1 Replies

#1 DeepSeek reply at 2 hours ago

这个报错在说什么

No human voice detected ... [info.duration_after_vad=0.0s]

faster-whisper 先用 Silero VAD 把音频切出「有人说话」的片段,再去识别。日志里 duration_after_vad=0.0 表示 VAD 认为这 7.66 秒里没有任何一段属于人声,于是识别被直接跳过,返回空字符串。后面那一大坨 TranscriptionInfo 只是把“识别了但结果为空”的参数原样打印出来,并不是额外错误。

关键参数(就是你日志里的):

参数值说明
duration7.662 s整段音频长度(很短)
duration_after_vad0.0 sVAD 判定的有效人声总长
threshold (VAD)0.45语音概率阈值,偏高
min_silence_duration_ms2000超过 2 s 静音就切段
speech_pad_ms400语音前后补的缓冲
languagezh, prob=1这是你在任务里手动指定的语言,不是自动探测

可能的原因(按概率从高到低)

  1. 这段 7 秒视频本身就没有人说话(片头/片尾/空镜/纯环境音/纯 BGM)。7.6 秒的短片段最容易出现这种情况。
  2. 音量太低或音频是静音轨(手机拍摄放在口袋/遮挡麦克风、导出时音轨丢失)。
  3. VAD 阈值偏严:threshold=0.45 加上这段语音很轻/很含糊,被整体判成噪声。
  4. 音频格式异常(采样率/声道/编码怪异,ffmpeg 解码出来是空的)。
  5. 前处理(如“移除字幕配音首尾静音”是后期步骤,不影响识别;但如果之前做过降噪/裁剪把音轨弄没了,也会这样)。

建议按顺序排查

① 先确认到底有没有人声(最快)

用 ffmpeg 看电平:

ffmpeg -i "F:/007/IMG_9743/IMG_9743_3.mp4" -af volumedetect -f null -

看输出里的 mean_volume / max_volume:

  • max_volume 低于约
    40 dB → 基本可判定为静音/无效音轨**,不是工具的问题。
  • 有正常电平(如 -10 ~ -20 dB)但仍报 0 → 走第 ② 步。
  • Stream ... audio 那行如果根本没有 audio 流 → 视频无音轨,需要先补音轨或换源。

② 如果确实有人声,但很轻/很短 → 放宽 VAD

在 pyvideotrans 的「语音识别 → 高级选项 / VAD 参数」里:

  • VAD threshold:0.45 → 0.25 ~ 0.3(更灵敏)
  • min_silence_duration_ms:2000 → 500 ~ 1000(短片段不要用 2 秒切分)
  • speech_pad_ms:400 → 600 ~ 800(保留被切掉的边缘)
  • 可以临时关闭 VAD(如果界面里有“禁用 VAD/silence filter”选项)来验证是不是 VAD 把语音吃掉了

③ 音频太轻就做一次标准化

先用 ffmpeg 拉高响度再喂给识别:

ffmpeg -i in.mp4 -af "loudnorm=I=-16:TP=-1.5:LRA=11" -c:v copy out.mp4

或项目里勾选「降噪」/音量放大后再跑。手机录的语音常见这类问题。

④ 语言设置检查

这里 language='zh', prob=1 是因为你手动指定了简体中文,不是自动识别;所以不要被 prob=1 误导成“确实检测到中文”。如果这段其实是英文/音乐/噪声,指定中文不会改善,反而更可能得到空结果——用「自动检测」跑一次对比。

⑤ 极端情况:短片段 + 硬字幕遮挡

如果这段是几句一闪而过的台词且音量极低,可分段处理:把多个短片段拼成一个长文件跑识别,成功率会明显提升。

一句话结论

这不是 bug,而是 VAD 在 7.66 秒里没找到任何有效人声。 先确认该视频是否真的有人说话(看 volumedetect 的电平和有没有 audio 流),若有人声但音量小/句子短,就把 VAD 阈值调到 0.3 左右、min_silence_duration_ms 降到 500、speech_pad_ms 加大,再跑一次;若是纯静音/无音轨,需要换源或补音轨,识别器本身没有问题。

Thinking...
Post Your Reply
If you have more than 50 messages, you will no longer receive an automatic reply. Please ask a new question!
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