多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 引擎类型 MSC SDK 有几种引擎类型(ENGINE_TYPE),此文章中我们主要关注并介绍以下两种: * 在线引擎(TYPE_CLOUD),又称为云端模式,需要使用网络,速度稍慢,并产生一定流量,但有更好的识别和合成的效果,如更高的识别匹配度,更多的发音人等。 * 离线引擎(TYPE_LOCAL),又称为本地模式,不需要使用网络,且识别和合成的速度更快,但同时要求购买并使用对应的离线资源(下载对应离线功能的SDK包)。 需要说明的是,在线引擎下,结果返回速度基本决定于用户网络的带宽限制。如在合成或识别下,默认的音频格式为 16000 HZ 采样,16 bit 精度,单声道, raw pcm,Little-endian;在未压缩的情况下,为 16000 * 16 = 256000 bit/s(比特每秒)。此时,如果要听写上传,或下载合成到的音频,时长为 t 秒,用户网络带宽为 x mpbs(兆比特每秒),则需要时长为 256000 * t / ( x*(2^10)*(2^10) ),假设 t 为 10,x 为 1,则10秒的音频,在1M的带宽下的传输时间约为 2.44s。 特别是在识别时,主要网络数据交互在音频的上传过程,此时网络上行带宽决定了音频上传的快慢,影响语音云服务器收到音频的快慢,继而决定了结果返回的快慢。 针对网络带宽的影响结果问题,MSC SDK 在识别音频上传和合成音频下载时,都做了相应的优化: * 会话模式( ssm ),默认开启。只要 SDK 获取到一部份音频数据,就会开始上传到语音云服务器,而不是等到整段识别音频数据都获取到再上传。在实时的录制音频并进行识别时,此优化效果尤其明显:音频的录制需要时间,而 SDK 会利用这些时间,每录制到一小段音频,就开始上传到语音云服务器,且在有部份小分句(如有停顿的地方)的结果时,就会把结果返回给客户端。待音频录制完时,音频也已即将完成上传,此时,结果返回就更快,几乎能达到说完即得到结果的情况。更特别的,VAD(关于VAD的更多说明,参考《MSC Reference Manual.html》)生效的情况下,在应用层还未告知 SDK 已完成音频录制时,结果可能已返回。 * 音频压缩(aue),并默认开启。发送端对上下行的音频进行压缩(在客户端由 MSC SDK 自动压缩),压缩比约为 10:1,并在接收端解压还原(在客户端由 MSC SDK 自动解压),大大减少带宽占用,并减少网络交互的时间占用。