0. 研究背景
我国地域广阔,每个地区都有自己独特的语言,比如在四川省和重庆市就是讲四川话,在广东讲粤语,潮汕语,客家话等等,每个地区讲的话的口音差别很大。那么我们很有必要研究一种ASR模型可以识别这些方言,把方言语音转写为简体中文。这次我们重点研究的是四川话语音识别模型Paraformer-large。
1. 为何选择Paraformer
Paraformer模型作为阿里巴巴达摩院开源的一款ASR模型,对中文环境友好,也有较为丰富的资源。当然阿里开源的Paraformer是使用了大量的普通话数据集训练的ASR模型,对于一些地方性的方言支持不是太好,比如这里的四川话。
Paraformer和SenseVoiceSmall相比有哪些优缺点呢,首先Paraformer开源的时间太长,我在公司中2023年的时候已经使用上了Paraformer模型,而当时SenseVoiceSmall模型还没推出。所以我认为Paraformer会更加成熟稳定,毕竟经历过几年时间的洗礼。而SenseVoiceSmall是2024年9月份才推出的,时间还不到一年,可能会存在更多未知的bug。那么下面列举一些Paraformer的优势吧。
Paraformer优势:
- 在FunASR框架中天然支持说话人分离,集成了cam++模型,而SenseVoiceSmall没有。
- Paraformer支持热词,有专门的热词模型,而SenseVoiceSmall不支持热词。
- Paraformer除了有offline模型,还有online模型,支持实时语音识别,而SenseVoiceSmall是非流式模型,不支持实时语音识别。
- Paraformer是单纯的ASR模型,而SenseVoiceSmall不是单纯的ASR模型,SenseVoiceSmall支持的功能更复杂,比如支持事件识别,情感识别,语种识别,往往我们不需要这些,我们只需要把语音信号转为文字就可以了,所以SenseVoiceSmall有些功能显得比较多余了。
Paraformer缺点:
5. 识别的准确率没有SenseVoiceSmall高,经过测试,Paraformer识别的准确率为88%,而SenseVoiceSmall在相同的数据集中测试准确率为90%。
6. Paraformer训练时模型学习能力要比SenseVoiceSmall要差。
7. 在阿里达摩院开源的预训练模型中对多语种的支持不好,如果要支持方言,需要自己训练。
现在讲完了Paraformer的优缺点,我们就在服务器中部署体验一下吧。
2. Linux服务器中部署服务
这里我租了一台云服务器,用于演示部署过程。
服务器配置为8核心CPU,16GB内存。
部署和演示过程可以看我的视频。
四川话语音识别Paraformer模型Linux服务器部署以及演示过程 | FunASR识别四川话
3. 四川话ASR模型训练情况介绍
本次训练是基于iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch训练的模型,使用了205小时47分钟的四川话数据集训练的。(别问我哪里来的数据集,购买的数据集)
这里推荐使用200小时以上的数据集训练,并且要保证你的数据集准确率,如果本身数据集就不准确的,那么训练出来的模型也会不准确。如果你是公司要做的模型训练,推荐你去购买数据标注公司的数据训练,你可以到 modelscope 中的数据集中搜索,找找看有没有开源的数据集。如果没有数据,那么是无法进行训练的。
这里我不单基于iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch进行训练,也基于Paraformer的其它模型训练过,比如seaco-paraformer模型,这个模型在FunASR中可以与cam++天然结合,实现区分说话人。
下面是我当前在本地电脑中有的训练好的模型:
其中上图中的paraformer-large-offline是开源到modelscop中了,有需要的同志们可以到modelscope中自行拉取模型,对应的地址为: https://modelscope.cn/models/lukeewin01/paraformer-large-sichuan-offline
当前开源的是训练了3轮次的模型,上面图片中的train_50是对应的训练了50轮次的模型。如果有公司业务需要四川话ASR模型,也欢迎找我测试一下。
4. 如何训练自己的模型
这个可以看我的博客,在我的博客中搜索“Paraformer”关键词找到对应的训练文章,只要你有数据集,你就可以训练出自己的模型了。
更多ASR内容欢迎关注我。