FunASR 概述

FunASR 是一个开源的语音识别工具包,旨在缩小学术研究与工业应用之间的差距。它提供了在大规模工业语料库上训练的模型,包括 ParaformerFSMN-VADCT-Transformer 模型。这些模型支持创建高精度、高效的语音识别系统,适用于多种实际场景,包括商业和工业用途。


FunASR的主要模块:
  1. Paraformer:专为非自回归语音识别设计的核心模块。
  2. 时间戳预测器:确保无需额外的混合模型即可进行准确的时间戳预测。
  3. 热词自定义:允许用户优先识别特定的关键词(热词),以提高识别准确性。
  4. 语音活动检测(VAD):通过检测语音的开始和结束,帮助模型专注于相关语音片段。
  5. 文本后处理:使用 CT-Transformer 模型清理语音转录内容,添加标点并去除语音不流畅部分。

FunASR 框架概述

在这里插入图片描述

FunASR 的整体框架旨在简化语音识别模型的学术研究和工业部署。该框架由三个关键部分组成:


1. ModelScope (模型库)

  • FunASR 通过 ModelScope 管理和使用模型,其中托管了关键的语音识别模型,例如:
    • Paraformer:非自回归的端到端语音识别模型。
    • FSMN-VAD:用于语音活动检测 (VAD) 的模型。
    • CT-Transformer:处理语音转录任务,如标点符号和不流畅检测的模型。
  • ModelScope 中的模型是训练和部署语音识别系统的基础。

2. 实验管道 (Exp. Pipeline)

  • FunASR 提供了两个不同的 基于 Pytorch 的管道 用于进行实验:
    • 学术管道 (run.sh):该管道适合希望从零开始训练模型的用户,流程借鉴了 ESPNET 的多阶段过程:
      • 阶段 0:数据准备。
      • 阶段 1:特征提取。
      • 阶段 2:词典生成。
      • 阶段 3 和 4:模型训练。
      • 阶段 5:模型推理与评分。
    • 工业管道 (infer.sh 和 finetune.sh):该管道优化了预训练模型的部署,用户可以轻松使用:
      • infer.sh:用于在新数据上运行推理。
      • finetune.sh:用于在新数据集上微调预训练模型。
  • 这些管道设计简洁高效,用户只需指定模型名称和数据集即可进行实验。

3. 运行时环境 (Runtime)

  • FunASR 提供了一个简单易用的运行时环境,用于在实际应用中部署语音识别模型。该运行时支持多种硬件平台,包括:
    • CPU
    • GPU
    • Android
    • iOS
  • 支持的后端包括:
    • Libtorch
    • ONNX
    • TensorRT
  • 此外,FunASR 使用 AMP 量化 来加速推理过程,确保在不降低精度的情况下优化性能。

关键特点

  • 易用性:FunASR 的管道设计简单易用,使研究人员和行业专家能够轻松部署和微调模型。
  • 灵活性:FunASR 支持多种硬件环境,并提供灵活的运行时选项,适用于各种应用场景。
  • 性能优化:使用 AMP 量化技术确保推理时间优化,提升了在生产环境中的性能,同时保持了识别准确性。

这一框架使 FunASR 成为学术和工业语音识别应用的多功能工具,具有灵活性、易于部署和性能优化的特点。

在这里插入图片描述

1. Paraformer 模型

Paraformer (Fig. 2(a)) 是一个 非自回归 (NAR) 的端到端语音识别模型,通过消除多次解码过程,提高了语音识别的效率。它设计用于在保持高准确性的同时,实现更快的推理速度和更低的延迟。

关键组件:
  • 预测器 (Predictor):从输入的语音信号生成声学嵌入,捕捉核心信息。
  • 采样器 (Sampler):在训练过程中,采样器模块将目标嵌入整合到声学嵌入中,生成语义嵌入,捕捉词元之间的依赖性。推理过程中,采样器处于非活动状态,从而实现更快的单次推理。
改进功能:

Paraformer 模型包含以下功能:

  • 时间戳预测:确保精确的语音时间对齐。
  • 热词自定义:允许在识别过程中优先处理特定关键词,提高召回率和准确性。

2. 时间戳预测

准确的时间戳预测 Fig.2(b)是自动语音识别 (ASR) 系统的一个重要功能。FunASR 通过将时间戳预测直接集成到 Paraformer 模型中,无需传统的强制对齐 (FA) 混合模型。

关键增强:
  1. 转置卷积层:对编码器输出进行上采样,提高时间分辨率。
  2. CIF 机制连续积分与发射机制 (CIF) 根据帧持续时间生成时间戳,并调整音频中的静音部分。

引入了一个转置卷积层和 LSTM 层来对编码器输出进行上采样,并通过后处理 CIF 权重 α2 来生成时间戳。我们将两帧之间的部分视为前一个词元的持续时间,并根据 α2 标记出静音部分。此外,FunASR 还发布了一个类似强制对齐的模型,称为 TP-Aligner,它包含一个较小的编码器和时间戳预测器。该模型以语音和对应的转录文本作为输入来生成时间戳。

评估:

在这里插入图片描述

  • AISHELL 数据集上,Paraformer-TP 相较于传统 FA 模型的表现更优,累计平均偏移 (AAS) 从 80.1 ms 降至 71.0 ms
  • 在工业数据集上的测试也显示了类似的结果,进一步证明了 FunASR 时间戳预测的鲁棒性。

3. 热词自定义

热词自定义 Fig. 2©功能允许用户在语音识别过程中优先处理特定词汇(热词),以提高这些关键术语的召回率和准确性。

关键增强:
  1. 热词嵌入器 (Hotword Embedder):通过 LSTM 层生成上下文感知的热词嵌入。
  2. 多头注意力 (Multi-head Attention):通过多头注意力机制捕捉热词与语音信号之间的关系,并将其整合到最终预测中。

Contextual Paraformer 提供了利用命名实体自定义热词的功能,从而增强了激励效果,并提高了召回率和准确性。在基础的 Paraformer 模型上添加了两个额外模块——热词嵌入器和解码器最后一层的多头注意力,如图 2© 所示。

使用热词,记作 w = w1, …, wn,作为输入传递给热词嵌入器 [29]。热词嵌入器由一个嵌入层和 LSTM 层组成,它将上下文热词作为输入,并通过 LSTM 的最后状态生成一个嵌入表示,记作 Eh。具体而言,热词首先传递到热词嵌入器,生成一系列隐藏状态。然后,使用最后的隐藏状态作为热词的嵌入,捕捉输入序列的上下文信息。

为了捕捉热词嵌入 Eh 和 FSMN 记忆块最后一层输出 Es′ 之间的关系采用了多头注意力模块。然后将 Es′ 和上下文注意力 Ec 进行连接。该操作形式化为公式 (1):

在这里插入图片描述

使用一维卷积层(Conv1d)来减少其维度,使其与隐藏状态 Es′ 的维度匹配,这作为后续层的输入。值得注意的是,除了这一修改之外,Contextual Paraformer 的其他流程与标准 Paraformer 相同。

评估:

表 2 展示了用于热词自定义任务的测试集。在训练过程中,热词是从每个训练批次的目标中随机生成的。对于推理阶段,用户可以通过向模型提供命名实体列表来指定热词。

数据集语音数量 (Utts)命名实体数量 (Named Entities)
AI 领域486204
通用领域1308231

表 3 展示了热词自定义任务的评估结果,评估指标为字符错误率 (CER)、召回率 ®、精确率 § 和 F1 分数。实验中对比了不使用热词和使用热词的性能表现。

数据集热词CERRPF1
AISHELL 热词子测试未使用10.011610027
使用4.557410085
工业 AI 领域未使用7.96709882
使用6.31899893
工业通用领域未使用9.476710080
使用8.75809888

为了评估 Contextual Paraformer 的热词自定义效果,从 AISHELL 测试集中采样了 235 个包含实体词汇的音频片段,测试集中包含 187 个命名实体。该数据集已上传至 ModelScope,相关的测试配方已在 FunASR 上公开。此外,还扩展了实验范围,涵盖了表 2 中所示的 AI 领域和通用领域的工业任务。

表 3 展示了关于热词自定义对 Contextual Paraformer 性能影响的实验结果。采用 CER 和 F1 分数作为评估指标。结果显示,在 AISHELL-1 命名实体子测试中,使用热词后,F1 分数提升了约 58%。此外,在工业定制任务中,平均提升约为 10%。

  • AISHELL 数据集上的测试中,使用热词后字符错误率 (CER) 从 10.01% 降至 4.55%,F1 值从 27 提升至 85
  • 在工业数据集上也取得了类似的改善,显示了热词自定义在领域特定任务中的显著优势。

4. 语音活动检测 (VAD)

语音活动检测 (VAD) 在 ASR 系统中用于识别有效语音片段,帮助系统忽略非语音部分(如背景噪音或静音)。

关键增强:
  • 基于 FSMN 的 VAD:FunASR 的 VAD 模型基于 FSMN 架构,使用单音素作为建模单位,捕捉丰富的语音信息。
  • 后处理技术:推理过程中应用了滑动窗口和阈值设置等技术,以增强系统的鲁棒性。
评估:

在这里插入图片描述

  • CER (字符错误率):衡量语音识别中的错误率。

  • Speech%:指示可用于 ASR 系统的有效语音片段的比例。

  • 会议数据 上,使用 VAD 后,字符错误率从 2.42% 降至 2.31%

  • 视频数据 上,VAD 将字符错误率从 27.87% 降至 25.34%,展示了该功能在不同领域中的有效性。


5. 文本后处理

文本后处理 在 FunASR 中负责生成可读的 ASR 转录文本,主要通过添加标点符号和去除不流畅语音来实现。

关键增强:
  • CT-Transformer:FunASR 中的 CT-Transformer 模型能够实时执行标点符号预测和不流畅检测。该模型动态丢弃不必要的历史记录,以减少计算复杂性,并确保部分输出能够以最小延迟进行处理。
评估:

在这里插入图片描述

  • CT-Transformer 模型在标点符号预测的 F1 值为 58.8%,不流畅检测的 F1 值为 70.5%,其推理速度明显快于 BLSTMFull-Transformer 模型。

6. 实验结果

6.1 ASR 性能评估

在这里插入图片描述

FunASR 的性能在多个基准数据集上进行了评估,包括 AISHELLAISHELL-2WenetSpeech。结果显示,FunASR 的 Paraformer 模型性能与基线 Conformer 模型相当,甚至更优。

关键结果:
  • Paraformer-large 模型在 AISHELL 测试集上的 CER 为 1.95%,在 AISHELL-2WenetSpeech 测试集上分别为 2.85%6.97%
  • 在推理速度方面,Paraformer 在 V100 GPU 上实现了 12 倍的推理速度提升,显著优于自回归模型。

此外,FunASR 支持对预训练模型进行自定义和微调。例如,通过在领域特定数据集(如 AISHELL物流领域 数据)上对 Paraformer-large 进行微调,模型在召回率和 CER 方面表现出显著提升。

微调结果:
  • AISHELL 数据集的 CER 从 1.95% 降至 1.78%
  • 物流领域 中,CER 从 13.1% 降至 12.6%,关键词召回率从 74.0% 提升至 96.0%

7. 运行时基准

FunASR 的运行时性能在 LibtorchONNX 后端上进行了评估,使用了 AMP 量化 技术以优化性能。
在这里插入图片描述

关键结果:
  • 使用 Int8 量化 后,推理速度提升了 40%,而识别准确性没有明显下降。
  • 在不同量化方法下,字符错误率 (CER) 保持在 1.95%,显示了量化对性能的显著提升。

8. 结论

FunASR 是一个高效的语音识别工具包,旨在缩小学术研究与工业应用之间的差距。通过提供 Paraformer-largeFSMN-VADCT-Transformer 等模型,FunASR 支持高精度、高效率的 ASR 系统在各个领域中的部署。

通过公开提供这些模型,FunASR 使研究人员和开发者能够在多种领域中构建并部署语音识别系统,从通用 ASR 到高度专业化的工业应用。

WER (Word Error Rate)

WER 是用于评估语音识别系统的一个关键指标,它衡量了识别结果与参考文本之间的差异。公式为:

WER=S+D+IN WER = \frac{S + D + I}{N} WER=NS+D+I

  • S: 替换错误 (substitutions)
  • D: 删除错误 (deletions)
  • I: 插入错误 (insertions)
  • N: 参考句中的单词总数

CER (Character Error Rate)

CER 与 WER 类似,但用于字符级别的错误计算:

CER=S+D+IN CER = \frac{S + D + I}{N} CER=NS+D+I

  • WER/CER 越低,表示语音识别系统的性能越好。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐