一、背景
自动语音识别(Automatic Speech Recognition,ASR)技术是一种将人的语音转换为文本的技术。通过语音信号处理和模式识别让机器自动识别和理解人类口述的语,让机器通过识别和理解过程把语音信号转变为相应的文本或命令的能力。语音识别是一门涉及面很广的交叉学科,它与声学、语音学、语言学、信息理论、模式识别理论以及神经生物学等学科都有非常密切的关系。
简单来说,就是一段音频文件转换成文本输出:
图1 语音识别技术
目前,语音识别技术已相对成熟,各大厂也开源多个语音识别项目,且针对语音项目类衍生出语音识别、语音翻译、语音合成、标点恢复等多个子应用,且大部分开源模型已发布。为探究语音识别能力应用的可行性,本研究基于目前开源的4项语音识别项目:(1) 百度-PaddleSpeech,(2) 阿里-MMSpeech,(3) 阿里-Paraformer,(4) openai-whisper,测试4种开源项目语音识别技术在1000份语音样本下的识别准确率和响应时间,并研究其底层算法原理。
二、研究目标
2.1、技术目标
- 完成语音识别技术测试
- 字符级识别准确率达到85%以上,响应时间gpu下0.5s/语音文本
三、数据准备
采用开源中文音频数据1034份,音频数据格式为mp3,且每一份都有对应的真实文本信息。音频数据大多为10s以内的短音频数据,数据内容分为简单的主谓宾语句、人名、数字、短语等等,具体示例如下:
图2 音频测试数据
图3 音频测试数据真实文本信息
四、技术研究
4.1、语音识别测试
基于PaddleSpeech、MMSpeech、Paraformer、whisper对1034份音频数据进行测试,测试结果如下:
算法/模型 | 字符级准确率 | 字段级准确率 | 单条时间 | 显存占用 |
paddlespeech | 79.77% | 26.69% | 2-5s(cpu) | - |
mmspeech-large | 72.26% | 26.21% | 1-3s(gpu) | 4245MiB |
mmspeech-base | 73.02% | 22.44% | 1-3s(gpu) | 2583MiB |
paraformer | 84.07% | 41.78% | 0.5-1s(cpu) | - |
paraformer(VAD+PUNC) | 85.39% | 44.39% | 0.5-2s(cpu) 0.1-0.2s(gpu) | 2700MiB |
whisper_large_v2 | 73.52% | 28.34% | 15-20s(gpu) 50-100s(cpu) | 11000MiB |
表1 各模型语音识别效果
上表中,large代表大模型,base代表基础模型,VAD和PUNC代表对标点模型进行自由组合。测试结果显示,Paraformer算法无论从准确率指标还是响应时间及显存占用指标来看,都是最优的,且采用VAD、PUNC对模型进行优化能达到更好的效果。因此,本研究对Paraformer算法展开进行研究。
4.2、算法介绍
Paraformer是一种高效的非自回归端到端语音识别框架。本项目为Paraformer中文通用语音识别模型,采用工业级数万小时的标注音频进行模型训练,保证了模型的通用识别效果。模型可以被应用于语音输入法、语音导航、智能会议纪要等场景。
图4 Paraformer模型结构
Paraformer模型结构如上图所示,由 Encoder、Predictor、Sampler、Decoder 与 Loss function 五部分组成。Encoder可以采用不同的网络结构,例如self-attention,conformer,SAN-M等。Predictor 为两层FFN,预测目标文字个数以及抽取目标文字对应的声学向量。Sampler 为无可学习参数模块,依据输入的声学向量和目标向量,生产含有语义的特征向量。Decoder 结构与自回归模型类似,为双向建模(自回归为单向建模)。Loss function 部分,除了交叉熵(CE)与 MWER 区分性优化目标,还包括了 Predictor 优化目标 MAE。
其核心点主要有:
- Predictor 模块:基于 Continuous integrate-and-fire (CIF) 的 预测器 (Predictor) 来抽取目标文字对应的声学特征向量,可以更加准确的预测语音中目标文字个数。
- Sampler:通过采样,将声学特征向量与目标文字向量变换成含有语义信息的特征向量,配合双向的 Decoder 来增强模型对于上下文的建模能力。
- 基于负样本采样的 MWER 训练准则。
Predictor 模块
非自回归模型的一个核心问题是如何预测模型中 Decoder 需要输出的文字数目,以及如何为 Decoder 提供输入特征向量。之前关于非自回归的工作主要是采用 CTC 来进行预测字符数目以及输入向量。Paraformer 里我们采用基于2层 DNN 的 Predictor 网络。输出为0~1之间的浮点数,输出值累加来预测目标文字个数,通过 CIF 机制抽取声学特征向量(下图为CIF过程示例)。训练过程中采用 MAE 来监督 Predictor 模块学习。
图5 CIF过程示例
Sampler 模块
非自回归模型的另一个核心问题是如何增强模型对上下文建模能力,现有的通用的单轮自回归模型 (vanilla-NAR) 为了高效计算效率,模型中 decoder 去除了显式的 Dependency 建模,从而在处理同音替换错误的能力会弱很多。从图2也可以看出 vanilla-NAR 相比于自回归(AR)的端到端语音识别系统在替换错误(substitution)上会明显增多。针对这个问题,Paraformer 借鉴来机器翻译里 GLM 工作,通过 Samper 模块来增强 Decoder 对于预测目标文字内在的 Dependency 的建模。Sampler 模块在解码时不工作,因此不会影响模型推理效率。数学模型如下:
图6 计算公式
五、总结
本文对中文语音识别技术进行研究,测试了百度、阿里、openai目前最新开源项目的语音识别能力,探究了实时语音识别应用的可能性。通过测试报告的形式测试了各开源模型对于中文音频的识别准确率及识别时间,并基于效果较好的Paraformer算法进行了研究。测试显示,对于短时间音频,识别时间和识别准确率达到研究目标设定值,对于实时语音识别具有一定的研究价值。
由于,所采用的测试数据为开源短时间音频文件,且音频内容部分存在特定名词和人名,导致识别准确率为85%左右,没有达到项目介绍的95%以上。这一部分与测试模型有关,一部分与测试数据有关。目前,模型训练相关部分已开源,通过大量特定场景数据进行个性化训练优化模型是一个可行的方案,但所需特定场景下的音频数据的获取及多少数据量能使模型达到最优是下阶段需试验验证的方向。
相关有语音研究兴趣的小伙伴可以私信我哦!
六、相关资料
- Paraformer论文