#4138 语音识别的整个流程是怎样的

103.172* Posted at: 3 hours ago 👁9

将中间的过程,步骤,每一步执行的什么,讲一下

3 Replies

语音识别的核心流程是将视频/音频中的语音转换为带时间轴的字幕文件(SRT格式)。在pyVideoTrans中,该流程主要分为以下几个步骤:

1. 音频提取与预处理

  • 执行操作:软件调用 ffmpeg 从输入的视频或音频文件中提取出原始音频流。
  • 关键步骤

    • 将音频统一转换为适合模型处理的格式(如16kHz采样率、单声道PCM)。
    • 如果勾选了“降噪”选项,会调用阿里模型对音频进行降噪处理。
    • 如果勾选了“分离人声背景声”,会先进行人声分离,仅使用分离后的人声进行后续识别。

2. 语音活动检测 (VAD) 与音频分割

  • 执行操作:使用选定的VAD模型(如 ten-vadsilero)分析音频,找出其中包含人声的片段。
  • 关键步骤

    • 根据“语音阈值”、“最短语音持续毫秒数”、“最长语音持续秒数”、“静音分割持续毫秒数”等参数,将连续的音频流切割成一个个独立的语音片段。
    • 此步骤决定了最终字幕的起止时间点和片段长度。

3. 语音转文本 (ASR模型推理)

  • 执行操作:将分割后的每个音频片段,送入选定的语音识别模型(如 faster-whisper-large-v3)进行推理。
  • 关键步骤

    • 模型将音频特征转换为对应的文本。
    • 此步骤受模型大小、是否启用CUDA加速以及“beam_size”、“best_of”等高级参数影响,直接决定识别的准确率。
    • 如果开启了“说话人分离”,会在此步骤后尝试为每段文本标注说话人标签。

4. 后处理与字幕生成

  • 执行操作:对模型输出的原始文本结果进行整理,生成最终的SRT字幕文件。
  • 关键步骤

    • 断句与合并:根据“合并过短字幕到邻近”等设置,调整字幕片段的起止时间和文本内容。
    • 标点恢复:如果勾选了“恢复标点”,会调用标点模型为文本添加标点符号。
    • 格式生成:将所有文本片段与其对应的时间轴信息组合,输出为标准SRT格式文件。

5. (可选)二次识别

  • 执行操作:此步骤并非语音识别的必经环节,而是在视频翻译流程中,完成配音后,为了确保新生成的字幕与配音精确对齐而进行的操作。
  • 关键步骤:对配音生成的音频文件再次执行上述1-4步的语音识别流程,生成与配音口型、时长完全匹配的新字幕。

请查阅相关文档:

LLM重新断句是处在什么环节

LLM重新断句是语音识别后处理环节中的一个可选步骤,用于优化字幕的断句效果。

所处环节: 在语音识别模型(如faster-whisper)完成音频转文本并生成初步字幕时间轴后,但在最终生成SRT字幕文件之前。

具体流程:

  1. 初步识别:语音识别模型输出原始的文本片段及其对应的时间戳。
  2. LLM重新断句:如果启用了此功能,软件会将一批(数量由“LLM重新断句每批字幕行数”控制)原始字幕文本(不含时间戳)发送给指定的AI大模型(如DeepSeek或ChatGPT)。
  3. 任务指令:要求AI模型根据上下文语义和语法,对这批文本进行重新划分,输出更符合阅读习惯、语义更完整的句子。
  4. 时间轴重映射:软件接收到AI返回的新句子后,需要将原有的、粗糙的时间戳信息(来自VAD分割)智能地映射到这些新句子上,生成新的、时间轴更合理的字幕片段。
  5. 生成最终字幕:经过重新断句和重映射时间轴后,形成最终的字幕文件。

主要目的: 解决单纯依靠VAD(语音活动检测)和声学模型分割产生的字幕可能存在的断句不合理、句子碎片化或过长的问题,从而提升字幕的可读性和专业性。

启用位置: 在“菜单-工具-高级选项-语音识别参数”中,有一个“rephrase”参数(在知识库的TaskCfgSTT配置类中有定义)。其值为:

  • 0:默认断句不处理。
  • 1:使用LLM重新断句。
  • 2:自动修正(可能使用其他规则)。

请查阅相关文档:

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