随着AI、大数据越来越火,各大互联网公司对AR、VR等各种技术越来越重视,google、apple、讯飞都推出了自己的各种开放平台。恰巧3,4年前刚进公司的时候就做过语音相关的项目,所以又被拉来做AR了。
AR说起来其实很复杂,关键的核心技术其实是在语音语义的识别上,特别是对于中文来说,更为复杂。但是公司主要做的主要是将已经成熟的技术应用到我们现有的客户端业务中,所以相对来说容易了好多。
下面就从IOS角度来说一下,我们的整个开发过程和其中踩过的坑。
首先就是整个系统的架构了。整个语音识别、语义理解的流程很简单也很成熟:
我们一个个模块的来说:
1.用户语音输入,这个可以分为远场和近场。但是绝大多数IOS和Android客户端对远场的支持并不是太好,绝大多数都是智能音箱等智能设备支持的较好。
2.客户端录音并上传。可以采用两种方式:实时录音并上传,和录音完成后统一上传。两者各有优劣:前者实时性较好,可以在用户输入语音的同时来处理语音的识别。后者可以在录音完成后对录音文件进行大幅度的压缩,降低上传的数据量。压缩后的amr文件比原始的pcm源码的体积大小至少能少90%。
3.服务端识别文字。因为客户端上传有两种方式,因此服务端识别也有两种方式。对于实时录音的方案,需要实时的对语音片段进行识别,后续的语音片段获取后,对前面的语音片段的识别结果进行矫正,用户说一段话,可能会有10多次的交互过程。对于非实时录音的方案就简单很多,用户上传完压缩后的音频文件以后,服务端对整个文件进行解码和识别。
4.对文字进行语义理解。这部分很复杂,国外的厂商普遍不支持或者支持的不好,国内讯飞提供了一个语义理解的平台,但是,只是限于相对简单的几种场景。
后面几天,我着重写一下IOS客户端侧的实现。
网友评论