手机通话语音离线ASR识别商用和优化方向

发布于:2025-07-08 ⋅ 阅读:(19) ⋅ 点赞:(0)

手机通话语音离线ASR识别商用和优化方向

--本地AI电话机

上一篇:手机FunASR识别SIM卡通话占用内存和运行性能分析

下一篇:编写中。


  • 一、前

前面的篇章中,我们尝试了将FunASR的ONNX模型文件加载到Android应用中,实现手机本地不依赖服务器和网络的离线ASR语音识别。并将这个ASR能力应用到了手机麦克风、手机本地的历史通话录音、手机实时的SIM卡电话通话内容的解析上。

在实践中,我们发现针对实时语音流而言,手机性能很难快速实现对方说话内容的快速ASR识别。特别是一直说个不停的时候,很难快速解析出准确的文字内容。

同时,由于模型文件本身的原因,Android应用App加载和运算会占用相当大的内存空间,会影响手机流畅性的体验。

这样的话,在这样的场景和现状下,我们要如何去优化它,以期实现ASR语音的商用化目标,进而实现类似“小爱通话”以及通话语音质检的实际业务功能呢?本篇章中将针对这些问题进行一定程度的探讨。

体验和下载地址:

智能拨号器App:http://120.78.211.195:8060/Dialer.apk

拨号器SDK示例apphttp://120.78.211.195:8060/sdk/SdkDemo.apk

USB蓝牙配件购买路径(参考):https://item.taobao.com/item.htm?_u=pk10l4ccbcd&id=649368472986

  • 二、应用思路的转变

目前看来,当前选型的FunASR的模型文件对长句子、短句等响应流程和逻辑采用的是不同的模型和算法。但无论何种模型,对历史录音的ASR识别准确率都还是不错的。

这样的话,假设我们不直接用来做实时流的ASR转换,而是拿来做异步的通话历史录音的质检,基本上可以做到全检且不会太占用系统性能。

因此或许我们可以将ASR功能中通话语音质检的功能剥离出来,使用另外单独的App,将FunASR的so动态库和各模型文件打包成一个较大的apk。安装后自动拷贝对应的文件到【/sdcard/ade/】目录中,并自动手机通话录音目录下所有录音文件的ASR生成操作。

对于类似“小爱通话”这种需要快速根据对方说话内容进行上下文处理并反馈TTS应答的场景,或许可以选取FunASR的其它短句或长句的模型,进行更细一步的选型和校验。

同时,可以在局域网中部署ASR识别服务器,利用服务器中更高效的GPU和CPU体系,处理局域网内的各Android手机发出的ASR识别请求并反馈ASR解析结果。

当然也可以直接使用现有的各大厂商的ASR商用接口,实现类似“小爱通话”的响应式应答的业务。

  • 三、局域网统一部署和识别

说实在的,这个模式应该就跟现在市面上大多数ASR方案的“端+云”的模式进行语音识别模块,只是我们将“云”部分的内容部署到本地局域网中而已,网络跳数更少、带宽更高,一定程度上能提高ASR的响应速度。

在这个模式中,本地ASR通常采用轻量级的语音识别模型,能够处理简单的语音指令(如唤醒词、开灯/关灯等);而对于复杂的语音指令,则将语音信号上传至云端进行处理。

这样做法的好处是FunASR的模型文件只需要在局域网内保持一份,并且可以最大限度的利用服务器中更高配置的性能,并且系统架构扩展和迁移也很方便。缺点是引入了新的硬件和更高昂的费用。

  • 四、引入新的外部算法和模型

我们试过讯飞AIUI和阿里云和百度云的在线商用的ASR接口,它们在语音注入后的文字响应上确实要快速得多。基本会在1秒以内或左右就能反馈出来(一句话还没说完它已经输出了大半文字了)。

这种快速ASR响应对于AI对话来说是相当重要的。我们之前试的FunASR模型里面,好像没有办法获取得到这种0.5s响应周期的快速方案。现有【asr_online】中列举的模型,也要一句话说出后大约2s左右才会输出文字,极大的延长了交互式应答的响应时间,影响了体验效果。

或许有赖于后续的AI大模型的进一步完善。看看是否存在更快响应的ASR模型能够开源或免费接口,供后续进行对接和试用。

  • 五、总结

至此,本轮Android手机中应用App加载FunASR模型文件和ASR识别的工作暂且告一段落。与2023年末的版本相比,引入了【asr_online】和【punc】模型文件,通过增大App运行内存的方式,提高了ASR识别的响应速度并提高了识别的准确度。总体来说,也算基本达到了预期的效果,初步可以满足试用的需求。

有兴趣的朋友或友商可以自行下载应用App和ASR模型,体验通话和音质效果。


网站公告

今日签到

点亮在社区的每一天
去签到