#4338 whisper语音识别问题

112.22* Posted at: 1 hour ago 👁23

英语视频里面 CHOCH BOS 这些词 会被识别成别的单词 要怎么解决

11 Replies

这是语音识别模型对特定词汇不敏感导致的,可通过添加热词优化提示词来提高识别准确率。

解决方案

  1. 启用热词功能
    在菜单 工具/选项高级选项语音识别参数 区域,找到 热词 输入框。
    将容易被误识的词(如 CHOCH, BOS)填入,多个词以英文逗号分隔,例如:

    CHOCH, BOS

    热词会告知模型这些词可能出现,从而优先匹配。

  2. 优化推理参数
    在同一 语音识别参数 区域调整:

    • 重复惩罚:适当增大(如 1.1),减少重复输出。
    • 文本压缩率:适当减小(如 0.5),降低模型幻觉。
      这两个参数有助于减少错误的识别结果。
  3. 选择更大的模型
    模型大小直接影响准确率。如果当前使用的是 tiny / base / small 模型,请切换至 large-v3(精度最高)。

    • 在语音识别渠道中选择 faster-whisper(本地),右侧模型下拉框选择 large-v3
    • 若显存不足,可尝试 large-v3-turbomedium
  4. 自定义提示词(可选)
    如果误识问题依然存在,可以在 高级选项Whisper模型提示词 中找到对应的 whisper模型英语提示词,添加一句引导,例如:

    The following words might appear: CHOCH, BOS.

    提示词可以帮助模型在识别时偏向这些词汇。

  5. 确保正确设置语言
    在“发音语言”下拉框中必须明确选择 英语,不要使用 auto,以确保加载正确的语言模型参数。

请查阅相关文档:

[DEBUG] [recognition]__init__:kwargs={'detect_language': 'en', 'audio_file': 'E:/sp/tmp/11800/56d53412e1/en.wav', 'cache_folder': 'E:/sp/tmp/11800/56d53412e1', 'model_name': 'large-v3-turbo', 'uuid': '56d53412e1', 'is_cuda': True, 'subtitle_type': 2, 'recogn_type': 0, 'max_speakers': -1, 'llm_post': False, 'recogn2pass': False}
[DEBUG] BaseRecogn 初始化

[DEBUG] GPU进程池:max_workers=1
[DEBUG] faster-whisper模式下,对large-v3-turbo模型返回的断句结果重新修正
怎么型返回的断句结果重新修正这么慢

断句修正慢是因为开启了“Whisper预分割音频”以及可能设置了较小的语音分割参数,导致模型对音频进行多次切割和重新组织,耗费大量时间。根据日志,已使用 large-v3-turbo 模型并开启 CUDA,但未看到明确的预分割设置,不过处理方法仍是按需调整。

解决方案:

  1. 禁用音频预分割
    进入 菜单 → 工具/选项 → 高级选项 → 语音识别参数,确保 Whisper预分割音频 处于未选中状态。预分割会将音频提前切割成极短片段并逐条发往模型,大幅增加处理次数。
  2. 优化 VAD 参数
    在同一区域调整以下值,减少不必要的切割:

    • 最长语音持续秒数:设为 6(默认,不宜过大,否则单次处理数据量增加)。
    • 最短语音持续毫秒:设为 10003000(单位毫秒),合并短语音,减少片段数量。
    • 静音分割毫秒:适当提高至 500,避免在微小静音处分割。
  3. 检查其他开销

    • 确认未启用 LLM重新断句(日志中 llm_post=False 表示已关闭,无需处理)。
    • 如果启用了 降噪说话人分离,临时关闭可加快速度。
  4. 模型选择与硬件

    • large-v3-turbo 虽然比 large-v3 快,但仍需较多显存/内存。若速度仍不理想,可降级至 medium 模型。
    • 确保 CUDA 加速生效(日志 is_cuda: True 表示已启用,检查 nvidia-smi 看是否实际调用)。

请查阅相关文档:

选择VAD里的两个选择有什么区别

软件内置的两种 VAD(语音活动检测)模型 sileroten-vad 均用于检测语音片段的起止位置,区别在于底层算法与适用场景。

  • silero:经典通用模型,广泛用于多种语言的语音检测,稳定性好,但对强噪声或语速快的场景可能不够敏感。
  • ten-vad:可能是针对中文或特定噪声环境优化的模型,有时在含背景音的语音分割上更精确。

若当前使用某一模型后出现切割不准(如漏掉短语音或误将噪音识别为语音),可尝试切换到另一个模型,对比效果。

请查阅相关文档:


Application started at 2026-04-29 18:05:12

First searching GPU...
[DEBUG] 返回缓存的编解码器 Windows-264: h264_nvenc
[DEBUG] 返回缓存的编解码器 Windows-265: hevc_nvenc
NVIDIA_GPU_NUMS=1
Found 1 GPUs, cost=15s
start workers...
process_max_gpu=1
multi_gpus=False
Concurrent task_nums=1
process_max=4
start 9 jobs
ended workers
正在等待线程 PrepareVideo 结束...
正在等待线程 SpeechToText 结束...
正在等待线程 DiarizSpeaker 结束...
正在等待线程 TranslationSRT 结束...
正在等待线程 DubbingSrt 结束...
正在等待线程 SpeechToText2 结束...
正在等待线程 AlignVieoAudioSrt 结束...
正在等待线程 AssembVideoAudioSrt 结束...
正在等待线程 TaskDone 结束...
Successfully killed ffmpeg processes using taskkill


Application started at 2026-04-29 18:11:46

First searching GPU...
[DEBUG] 返回缓存的编解码器 Windows-264: h264_nvenc
[DEBUG] 返回缓存的编解码器 Windows-265: hevc_nvenc
NVIDIA_GPU_NUMS=1
Found 1 GPUs, cost=3s
start workers...
process_max_gpu=1
multi_gpus=False
Concurrent task_nums=1
process_max=1
start 9 jobs
ended workers
[DEBUG] 最终配置信息:self.cfg=TaskCfgVTT(is_cuda=True, uuid='56d53412e1', cache_folder='E:/sp/tmp/11800/56d53412e1', target_dir='G:/ICT翻译/ICT外汇侦察狙击手基础实战指南系列/ICT外汇侦察狙击手基础实战指南 - 3-mp4', source_language='英语', source_language_code='en', source_sub='G:/ICT翻译/ICT外汇侦察狙击手基础实战指南系列/ICT外汇侦察狙击手基础实战指南 - 3-mp4/en.srt', source_wav='E:/sp/tmp/11800/56d53412e1/en.wav', source_wav_output='G:/ICT翻译/ICT外汇侦察狙击手基础实战指南系列/ICT外汇侦察狙击手基础实战指南 - 3-mp4/en.m4a', target_language='简体中文', target_language_code='zh-cn', target_sub='G:/ICT翻译/ICT外汇侦察狙击手基础实战指南系列/ICT外汇侦察狙击手基础实战指南 - 3-mp4/zh-cn.srt', target_wav='E:/sp/tmp/11800/56d53412e1/target.wav', target_wav_output='G:/ICT翻译/ICT外汇侦察狙击手基础实战指南系列/ICT外汇侦察狙击手基础实战指南 - 3-mp4/zh-cn.m4a', name='G:/ICT/ICT外汇侦察狙击手基础实战指南系列/ICT外汇侦察狙击手基础实战指南 - 3.mp4', noextname='ICT外汇侦察狙击手基础实战指南 - 3', basename='ICT外汇侦察狙击手基础实战指南 - 3.mp4', ext='mp4', dirname='G:/ICT/ICT外汇侦察狙击手基础实战指南系列', shound_del_name=None, translate_type=4, tts_type=0, volume='+0%', pitch='+0Hz', voice_rate='+0%', voice_role='Yunjian(Male/CN)', voice_autorate=True, video_autorate=False, remove_silent_mid=False, align_sub_audio=True, detect_language='en', recogn_type=0, model_name='large-v3-turbo', 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='G:/ICT翻译/ICT外汇侦察狙击手基础实战指南系列/ICT外汇侦察狙击手基础实战指南 - 3-mp4/ICT外汇侦察狙击手基础实战指南 - 3.mp4', novoice_mp4='E:/sp/tmp/11800/56d53412e1/novoice.mp4', is_separate=False, embed_bgm=False, instrument=None, vocal=None, back_audio='', clear_cache=True, background_music=None, subtitle_type=2, only_out_mp4=False, recogn2pass=False, output_srt=0, copysrt_rawvideo=False)
[DEBUG] [FFMPEG-CMD]:
ffmpeg -hide_banner -nostdin -ignore_unknown -threads 0 -y -fflags +genpts -i G:/ICT/ICT外汇侦察狙击手基础实战指南系列/ICT外汇侦察狙击手基础实战指南 - 3.mp4 -an -c:v copy novoice.mp4

[DEBUG] [recognition]__init__:kwargs={'detect_language': 'en', 'audio_file': 'E:/sp/tmp/11800/56d53412e1/en.wav', 'cache_folder': 'E:/sp/tmp/11800/56d53412e1', 'model_name': 'large-v3-turbo', 'uuid': '56d53412e1', 'is_cuda': True, 'subtitle_type': 2, 'recogn_type': 0, 'max_speakers': -1, 'llm_post': False, 'recogn2pass': False}
[DEBUG] BaseRecogn 初始化

[DEBUG] GPU进程池:max_workers=1
[DEBUG] faster-whisper模式下,对large-v3-turbo模型返回的断句结果重新修正
用了这么长时间正常吗

断句修正耗时较长通常是因为开启了“Whisper预分割音频”功能,它会将音频切成很多短片段再逐个识别,导致处理量大幅增加。结合你的日志,虽未直接体现该参数,但根据“对模型返回的断句结果重新修正”的日志提示,很可能启用了该选项。另外,rephrase 已设为 0,排除了 LLM 重新断句的开销。优化方案:关闭音频预分割:进入 菜单 → 工具/选项 → 高级选项 → 语音识别参数,确保 Whisper预分割音频 处于 未选中 状态。优化 VAD 切割参数(同一区域):最长语音持续秒数:设为 6~8 秒。最短语音持续毫秒:设为 1000~3000 毫秒(可减少碎片片段)。静音分割毫秒:设为 500 以上,避免在微小静音处过度切割。模型与硬件权衡:若仍慢,降级至 medium 或 small 模型,牺牲少量精度换取速度(你已经使用 large-v3-turbo,性能中等,但若显存/内存吃紧,也可能降速)。确认 CUDA 加速生效,任务管理器中查看 GPU 是否持续调用,而不是被降级为 CPU。初始加载耗时:第一次启动时 GPU 搜索耗时 15 秒属于正常现象,后续再处理会缩短至 3 秒,这不影响识别过程。做完以上调整后,断句修正时间会明显缩短。

还是没效果

断句修正慢有时并非 VAD 设置导致,而是GPU 实际上没有参与加速显存不足导致处理降级。请按以下步骤对症排查:

  1. 确认 GPU 是否真的在工作

    • 翻译任务运行时,打开任务管理器 → 性能 → GPU 标签,观察 Video EncodeCUDA 使用率是否持续高于 80%
    • 若持续在低使用率(<30%)甚至为 0,说明程序并未调用 GPU,而是用 CPU 硬算,速度会慢数倍。
  2. 检查 CUDA 环境版本

    • 本软件内置的 CUDA 版本为 12.8,要求 cuDNN ≥ 9.11。
    • 命令行输入 nvcc -V 查看当前 CUDA 版本,输入 nvidia-smi 确认显卡驱动支持。
    • 如果版本不符,需安装或更新 CUDA/cuDNN(参考文档:GPU 加速安装)。
  3. 降低显存占用,防止掉入 CPU 慢车道
    菜单 → 工具/选项 → 高级选项 → 语音识别参数 中调整以下项,牺牲少量精度换取速度:

    • CUDA数据类型:改为 int8(默认 float16 若显存不够会自动变慢)
    • beam_size:改为 1
    • best_of:改为 1
    • 启用上下文感知:改为 false
  4. 尝试更小的识别模型
    large-v3-turbo 对显存要求仍较高(建议 ≥ 6GB)。若显存 ≤ 4GB,可换用 mediumsmall 模型,速度会明显提升。
  5. 确认音频预分割已被彻底关闭

    • 确保 Whisper预分割音频未选中 状态。
    • 同时检查 最长语音持续秒数 设为 6~8最短语音持续毫秒 设为 1000~3000,减少切割后的片段总数。

如果执行以上步骤后 GPU 使用率仍无起色,请将任务运行时 nvidia-smi 的输出(或报错日志)提供出来,以便进一步定位。

请查阅相关文档:

C:\Users\21261>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:42:46_Pacific_Standard_Time_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0

CUDA 版本正确(12.8),但仍出现断句修正缓慢,问题大概率出在 GPU 实际未满载工作或显存不足导致处理降级。请立即执行以下硬核排查:实时监控 GPU 是否被调用 翻译任务运行期间,打开 CMD 输入 nvidia-smi -l 1(每秒刷新),观察 pyvideotranspython 进程的 GPU-Util 是否持续高于 80%。 若始终低于 30% 或为 0,说明虽勾选了 CUDA 加速,但因显存不足或内部参数错误,实际未使用 GPU 运算,仍在用 CPU 硬算(这会极慢)。确认主界面“CUDA加速”已勾选 不少用户以为高级选项里设置就能生效,实际必须勾选主界面顶部的 CUDA加速 复选框(位于“网络代理”上方)。 务必确认它处于 勾选 状态。降低显存峰值占用,强制走 GPU 快车道 在 菜单 → 工具/选项 → 高级选项 → 语音识别参数,调整以下项:CUDA数据类型:改为 int8(原 float16 在显存不够时会反复内存交换) beam_size:1 best_of:1 启用上下文感知:取消勾选(false) 修改后保存,重启任务。更换更小的模型 若显存 ≤ 6GB,large-v3-turbo 极易爆显存导致降级。在语音识别行将模型改为 medium 或 small,速度会成倍提升。终极验证:彻底关闭可能干扰的因素 关闭“降噪”、“说话人分离”、“二次识别”(你的日志已显示未启用,但要再确认)。 确保 Whisper预分割音频 已 取消 勾选。做完以上调整后,再次运行并观察 nvidia-smi,如果 GPU-Util 依然很低,请将 nvidia-smi 输出的截图和本次翻译日志打包发出来,以便进一步诊断。请查阅相关文档:GPU 加速安装与验证显存不足错误解决方法

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.

Related resource