评测本地部署的语音识别模型
1 引言
最近,朋友给我发来了一段音频,想转录成文字,并使用大型润色文本。音频中的普通话带有一定的口音,并且讲解内容较为专业,所以一般的语音识别工具很难达到较高的识别率。
于是试用了两个大模型。Whisper 是目前最好的多语言语音识别技术(ASR),之前的文章已经介绍过它的原理和部署方法;FunAsr 是阿里巴巴智能计算研究院语音实验室在 ModelScope 上开源的深度学习语音识别模型,在海量数据上对中文进行了优化,可谓国产之光。本次评测的 ASR 均能在本地部署,之前测试使用效果都不错。
本次评测将针对相对困难的语音进行真人评估,看看语音识别哪家强。
2 安装及资源占用
2.1 使用说明
这里未使用音频切分降噪进行前处理,直接将音频放入模型进行识别。
2.2 测试环境
FunAsr 使用了 GPT-SoVITS 提供的 docker 镜像中的库和模型,镜像大小 7.09G,外加模型 1.4G。
识别命令如下:
1 | /usr/local/bin/python tools/asr/funasr_asr.py -i /opt/xieyan/tmp/audio/litao/ -o output/asr_opt/new_record.txt -s large -l zh -p float32 |
Whisper 使用的是 onerahmet/openai-whisper-asr-webservice:latest-gpu 镜像,含模型,约 11.5G。
启动 docker 镜像后,在浏览器 9000 端口打开,通过网页调用。
2.3 转换时长
- 音频长度约 75 分钟
- FunAsr 转换时间 2 分钟(含加载模型)
- Whisper 转换时间 4 分钟
3 识别效果评价
3.1 Whisper
3.2 FunAsr
3.2.1 人工翻译
3.2.2 人工翻译 +GPT-4 润色
3.3 总结
公平地讲,音频内容有点像文言文,使用了很多专业词汇。而在训练语料中,这样的文本比较少见,所以语音识别效果比较差。最近我收集了一些声优的视频来进行语音合成(仔细听声优每个字都吐得非常清晰),以及我自己录制 B 站视频,(我师范毕业时通过了普通话水平测试,而且在录制时也刻意注意了发音吐字语速),这样的音频识别实际能达到 95% 以上的准确率。
如果需要使用语音识别工具,对于中文来说,FunAsr 明显优于 Whisper(毕竟 Whisper 支持多种语言)。与手动输入相比,我觉得这种识别效果还可以接受。但是目前就大家的平均录音效果来看,处理时仍然需要人工干预。
实际上就是这样:我们普通人写不过 GPT,播音不如 TTS,画画不过 Stable Diffusion,做视频赶不上 Sora,最近出了太多太多工具,秒杀了我们之前努力的成果。但是还好我们也可以用,也许我们该重新定义“努力”。
(本文全文经 GPT 润色)
4 一些后处理方法
这里还有一些后处理方法,当使用各个 ASR 效果都不佳的情况下,如何使识别结果更好。
针对音素(拼音)各家识别效果都还可以,主要问题是对专业词汇的理解,有一些人名和不常见的专业术语可能并没有进入词汇库。在这种情况下,可以考虑使用自然语言大模型(简称 LLM)进行补充,具体方法如下:
- 多个 ASR 识别出结果给 LLM,让它来做合并。
- 人工校对后的结果制作成错误映射表,并与转换后的文字一起传给 LLM 进行校对。
- 将识别后的文本转换成音素表,然后发送给 LLM 进行转换成文字。