AI手机-手机SIM卡通话内容
ASR识别和文字提取-(四、免费ASR方案)
本次预研的选型主要还是走开源库的线路,包括三个部分:
- 调用的应用程序入口和依赖库是否开源;
- 是否有可用、免费且识别率高的成熟模型库;
- 如果对效果不满意,是否能够自己训练或补充训练模型库。
针对ASR模型的能力,主要还是围绕文字识别、标点、语气、情绪、接口识别速度等方向来进行,但主要将文字识别功能的准确率和识别效率作为主要衡量指标。
由前文预研中,我们列举的内容:【ASR方案列表中常见有AWS、Miscrosoft、Skype、Facebook等,以及开源的cmusphinx、pocketsphinx-android、vosk-android等;国内常用的有腾讯、阿里、百度、小米、搜狗、科大讯飞等、以及开源的百度飞浆PaddleSpeech、阿里云FunASR等ASR算法和模型。】
按照从知乎FunASR中搜索的描述,不同模型和算法之间,在识别精度、推理效率、对长音频的支持,以及断句、标点符号标注等方面会存在一些差异,仅供参考。
引用地址:https://zhuanlan.zhihu.com/p/642363371
方案对比与选型
本篇章的编写,其实是为了智能拨号器中对通话语音进行实时语音质检,防范被非法用户利用进行诈骗、暴力催收、频繁的电话骚扰等非法用途而规划的功能。
因此,根据智能拨号器原有的架构扩展,关于通话语音ASR识别和语音质检功能的引入,就有以下几个考量侧重点:
- ASR部分我们可以交给线路运营商平台自己把控,也可以自己单独实现;但最好自己有一套并行工作做为备选方案。
- 在识别时效上可以选用非实时质检甚至是抽检的方案,但最好是实时全检;拨号器平台将只收集通话文字内容或通话摘要,不收集和存档通话语音数据。
- 在数据传输上,如果客户和通话内容归属于线路运营商,智能拨号器做为中间节点,理论上不应该将通话内容传输到第三方平台,但可以自己搭建ASR服务器高并发请求进行检测并反馈结果,也可以选择在终端进行ASR识别和提取。
- 应该要选免费的方案,即新的功能引入不应增加线路成本。识别过程应该是并行运算,即ASR识别不能影响线路的通话效果。
经过综合的衡量与初步评估,本次选出下述4个模型来进行筛选和对比,仅供参考:
编号 | 算法-模型 | 描述 |
01 | FunASR -- 离线-tiny模型 | 离线-tiny,社区强大更新快 |
02 | 讯飞AIUI | 讯飞AIUI的接口较为丰富 |
03 | 百度飞浆PaddleSpeech | 飞浆的自定义模型库较多 |
04 | vosk-android | vosk-model-small-cn-0.22,国外产品的对比 |
vosk-android
vosk开源模型的GitHub地址:
https://github.com/alphacep/vosk-api
vosk的中文模型只有42M和1.3G两种大小,模型下载地址如下:
FunASR
阿里巴巴团队的FunASR相关模型和文档可参考GitHub地址:
https://github.com/alibaba-damo-academy/FunASR/blob/main/docs/model_zoo/modelscope_models.md
其所有模型库的下载地址可参考:
开源协议:Apache License 2.0
预研过程中,我们参考了“FunASR安卓端侧离线版本2pass全模式”的开源库fawasr,GitHub地址:
https://github.com/SoonSYJ/fawasr
讯飞AIUI
讯飞AIUI的SDK下载地址可参考:
PaddleSpeech
百度飞浆语音方向的开源模型库PaddleSpeech的下载地址可参考:
https://github.com/PaddlePaddle/PaddleSpeech
总结
一顿操作下来,发现还是PaddlePaddle和FunASR对开源社区的贡献最大,网上随便一搜索,都能搜到很多前辈关于这两个方案做的示例应用的步骤和经验。此处简单汇总一下对上述算法和模型库的使用体验:
编号 | 算法-模型 | 评价 |
01 | vosk-android | 垃圾,识别率是个渣,模型库贼大 |
02 | AIUI | 不建议,它就没打算为开源社区出一点力 |
03 | FunASR | 识别效果尚可,迭代快 |
04 | PaddleSpeech | 声势挺猛的,文档比较齐全,没找到离线ASR的用法 |
另外,在具体使用上,这些模型库在本次需求方面还存在以下不足与缺陷:
- ASR识别的时间基本都为语音时长的二分之一,即一段话说话时长为20s、传入了所有语音数据后需要等待10s它才能返回识别后的文字。不利于实时结果响应。
- 全双工通话或双轨录音时,需要手动拆分为两个ASR模型实例,占用了双倍的运行内存(感觉它们都是为了整段语料文件服务一样,考虑了并发但为考虑实时场景如何减小内存占用)。
上一篇:AI手机-手机SIM卡通话内容的ASR识别和文字提取-ASR指标差异(在线、实时)
下一篇:没有了。