FunASR 概述
FunASR 概述
FunASR 是一个开源的语音识别工具包,旨在缩小学术研究与工业应用之间的差距。它提供了在大规模工业语料库上训练的模型,包括 Paraformer、FSMN-VAD 和 CT-Transformer 模型。这些模型支持创建高精度、高效的语音识别系统,适用于多种实际场景,包括商业和工业用途。
FunASR的主要模块:
- Paraformer:专为非自回归语音识别设计的核心模块。
- 时间戳预测器:确保无需额外的混合模型即可进行准确的时间戳预测。
- 热词自定义:允许用户优先识别特定的关键词(热词),以提高识别准确性。
- 语音活动检测(VAD):通过检测语音的开始和结束,帮助模型专注于相关语音片段。
- 文本后处理:使用 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:用于在新数据集上微调预训练模型。
- 学术管道 (run.sh):该管道适合希望从零开始训练模型的用户,流程借鉴了 ESPNET 的多阶段过程:
- 这些管道设计简洁高效,用户只需指定模型名称和数据集即可进行实验。
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) 混合模型。
关键增强:
- 转置卷积层:对编码器输出进行上采样,提高时间分辨率。
- CIF 机制:连续积分与发射机制 (CIF) 根据帧持续时间生成时间戳,并调整音频中的静音部分。
引入了一个转置卷积层和 LSTM 层来对编码器输出进行上采样,并通过后处理 CIF 权重 α2 来生成时间戳。我们将两帧之间的部分视为前一个词元的持续时间,并根据 α2 标记出静音部分。此外,FunASR 还发布了一个类似强制对齐的模型,称为 TP-Aligner,它包含一个较小的编码器和时间戳预测器。该模型以语音和对应的转录文本作为输入来生成时间戳。
评估:

- 在 AISHELL 数据集上,Paraformer-TP 相较于传统 FA 模型的表现更优,累计平均偏移 (AAS) 从 80.1 ms 降至 71.0 ms。
- 在工业数据集上的测试也显示了类似的结果,进一步证明了 FunASR 时间戳预测的鲁棒性。
3. 热词自定义
热词自定义 Fig. 2©功能允许用户在语音识别过程中优先处理特定词汇(热词),以提高这些关键术语的召回率和准确性。
关键增强:
- 热词嵌入器 (Hotword Embedder):通过 LSTM 层生成上下文感知的热词嵌入。
- 多头注意力 (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 领域 | 486 | 204 |
| 通用领域 | 1308 | 231 |
表 3 展示了热词自定义任务的评估结果,评估指标为字符错误率 (CER)、召回率 ®、精确率 § 和 F1 分数。实验中对比了不使用热词和使用热词的性能表现。
| 数据集 | 热词 | CER | R | P | F1 |
|---|---|---|---|---|---|
| AISHELL 热词子测试 | 未使用 | 10.01 | 16 | 100 | 27 |
| 使用 | 4.55 | 74 | 100 | 85 | |
| 工业 AI 领域 | 未使用 | 7.96 | 70 | 98 | 82 |
| 使用 | 6.31 | 89 | 98 | 93 | |
| 工业通用领域 | 未使用 | 9.47 | 67 | 100 | 80 |
| 使用 | 8.75 | 80 | 98 | 88 |
为了评估 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%,其推理速度明显快于 BLSTM 和 Full-Transformer 模型。
6. 实验结果
6.1 ASR 性能评估

FunASR 的性能在多个基准数据集上进行了评估,包括 AISHELL、AISHELL-2 和 WenetSpeech。结果显示,FunASR 的 Paraformer 模型性能与基线 Conformer 模型相当,甚至更优。
关键结果:
- Paraformer-large 模型在 AISHELL 测试集上的 CER 为 1.95%,在 AISHELL-2 和 WenetSpeech 测试集上分别为 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 的运行时性能在 Libtorch 和 ONNX 后端上进行了评估,使用了 AMP 量化 技术以优化性能。

关键结果:
- 使用 Int8 量化 后,推理速度提升了 40%,而识别准确性没有明显下降。
- 在不同量化方法下,字符错误率 (CER) 保持在 1.95%,显示了量化对性能的显著提升。
8. 结论
FunASR 是一个高效的语音识别工具包,旨在缩小学术研究与工业应用之间的差距。通过提供 Paraformer-large、FSMN-VAD 和 CT-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 越低,表示语音识别系统的性能越好。
更多推荐
所有评论(0)