前记
你平时在商场看到的语音助手,看起来非常的简单,其实,这个小小语音助手的背后,是一个非常的复杂的技术支撑。从前端到后端的技术依次是:前端语音降噪技术,高效的音频编解码技术,蓝牙双模技术,DMA协议移植技术。手机侧音频编解码技术,降噪技术,语音识别技术。丰富的娱乐和使用资源(地图,音乐,音频等)。整个流程下来,是一个复杂的工程。想把整个产业链玩起来,真不是一个公司能够玩起来的,需要的是产业上很多公司的共同努力。
终端设备的难点
- 前端降噪技术
前端降噪技术,这里面一般是软件算法实现的,一般包括,单麦克,双麦克,多麦克降噪算法,消回声算法,AGC算法等。这三个的使用是一个配合的过程。具体设置什么参数,怎么适配,这个跟产品的特性是强相关的。有这方面疑问的同学可以多多交流。
- 音频编码技术
由于蓝牙spp和ble的带宽都无法传输没有压缩的音频,还有就是无法对无线传输的质量做一个比较高的保证。因此,音频传输一定需要编解码的。在DMA长录音中,音频编解码常用的只有两种:SBC和OPOS。由于SBC是比较老的编解码算法,无论压缩比还是压缩质量,都无法和opus相比,所以,想要你的语音助手听的清楚,目前主流的都是opus编码。opus是一个开源的编解码技术,它无论是压缩比,抗抖动性能,还是音质的还原度,都是在目前的同类音频编解码中绝无仅有的。
opus唯一的不足之处就是消耗的MIPS比较高,假如你想把它移植到耳机或者类似耳机的小平台上,还是需要花费很多功夫的,很多芯片都是因为无法移植opus或者移植的opus无法优化,造成音频编解码效率特别低或者无法使用。这个当初我们也是摸索了好久,做了大量的算法优化才做的比较好的。
- 蓝牙双模支持
DMA语音这块,虽然是spp和ble都可以使用。假如你想在苹果上使用,只能使用ble,因为apple是不给第三方公司开发spp接口的。但是,假如你想在android上使用ble的话,由于android厂商太分散,每家做的ble都差距很大,会造成很多兼容性问题。这个也就是为什么目前主流的方案都是 android + spp apple +ble的模式,这个就要求你的芯片支持蓝牙和ble双模了。目前的绝大多数耳机芯片,双模支持的比较好的的确很少。这点我们也走了不少弯路,才后面找到了一个合适的芯片来做个这个东西。 - 低成本的技术
做产品呢,都是为了赚钱。所以,成本是广大设备商首先考虑的重点。为了能够做DMA+小度的方案,很多公司使用了两颗以上的主芯片。成本就需要5美金以上,这个价格就决定了产品无法大范围的商用。基于此,我们把所有的东西都放到了一个芯片中,一个产品一个芯片搞定,这个极大的降低了成本。不过,也是花费了很多精力的。毕竟,把所有的东西放到一个芯片中,这个对软件工程师的水平是一个极大的考验。
后台app的技术难点
高效的语音识别技术
前面的所有一切的努力,最后都是为了进行语音识别。国内做语音识别的厂家很多,为什么我们选择百度呢?主要有几个原因,百度是ai这块国内投入最大,投入最早,商用范围最广的互联网公司。他们的语音识别技术做的特别好,并且还广泛开发给第三方厂家。所以说,选择百度。也是我们经过很多实际考察做出的选择。后来等产品做出来了,也证明了我们的选择当初是对的。广泛的消费内容
语音识别技术,假如没有后面的内容作支撑,只是客户问几个小问题的话,估计没啥吸引力了。所以,app的内容多少是该产品成败的关键。百度在这块可以说是下了血本的。地图,音乐,有声读物,基本上把主流的厂商都签了合同的。可以调用QQ音乐,可以调用喜马拉雅等。这些资源,真不是一般厂商能够调动的。