导语
声音本来就是最天然的人机交互方式,但在之前漫长的时间里面,受限于语音识别,人工智能网络宽带等因素,并没有成为主流。但从2017年开始,AI、语音识别、网路应用、移动APP,这几样已经发展成熟,万事俱备,语音智能的应用正好趁着东风迅速发展起来,而且智能音箱表面看似乎只是一款音箱,但实际上有更战略性的作用,也就是说实际上是智能家庭的入口。
借助于物联网技术,智能音箱实际上成为了智能家庭连接互联网的网关,是家庭互联网交互的人机界面,正因为如此,我们可以看到几乎所有的互联网巨头都不遗余力的发展自己的智能音箱产品,因为谁抢占了智能家庭的入口,谁就可以把握先机,在此基础上布置本公司的家电产品生态链。
本文将通过拆解市面上已经有的一些产品来分析,然后对于语音子系统会有一个详细的案例。
智能音箱产品系统构成及工作中的信息流动
首先智能音箱区别于传统的AI产品。它不是一个孤立的存在,它们实质是一个互联网的智能终端。
先通过麦克风阵列时刻采集语音,然后对语音进行降噪等加工,然后做关键字识别,例如:homepad Hisiri或者 “天猫精灵”,“小爱同学”之类的关键词,一旦识别关键词之后,就会对后面采集到的语音数据进行压缩编码,通过互联网传到云端,云端的AI服务器具有强大的运算能力,对语音指令进行识别,然后根据指令来做相应的回复,例如传回语音回复,传回一首歌的流媒体数据,或者传回对家中联网的物联网终端的控制,例如开关空调等动作。智能音箱收到媒体流数据后进行解码驱动,扬声器播放语音回复,收到家电控制指令后通过WIFI,BT来转发到被控制的家电。所以这个工作的数据流还是很清晰的。
在产品架构上面,首先,这是一台嵌入式电脑,因为涉及到降噪等算法,以及流媒体编解码和播放功能,通常有一颗运算能力相当强劲的处理器内核,目前主流的ARM架构是四核或者八核的CORTEX-A7处理器,浮点的运算能力强劲,以及1G以上的ARM空间,外部搭配8G的EMMC或者NANDFLASH等闪存外设,用于存储应用的数据。外围则有两个主要的子系统,一个是语音处理子系统,一个是无线通信子系统。
无线通信子系统,辅助WIFI和BT通信,通过WIFI连接到无线AP和云端,或者在没有公网的情况下和无线局域网中的其他智能家电通过WIFI来交互。WIFI通信的吞吐量大,可以传大流量的流媒体数据是智能音箱的联网基础。蓝牙这一部分通常通过经典蓝牙作为手机和外设交互数据,通过BLEMESH或者传统的BLE一拖多的方式和家庭网关的其他智能设备交互。可以预见未来无限通信部分还可能引入ZIGBEE模式作为网关来连接ZIGBEE灯之类的智能家居产品。
语音子系统,又分为输入和输出两块,输入通常是一个麦克风阵列,用于拾取声音数据,输出通常是IIS/PCM接口的音频CODEC芯片,通过音频功效进行功率放大后驱动一个4欧、8欧尺寸扬声器,当然语音和机械结构高度相关,因此除了电子部分外,音腔的设备,麦克风的位置,阵列结构也是很重要的。
除了内核,无线,语音三个主要板块外,还有一些其他辅助性的外设,比如LED灯,指示和背景灯,8D卡存储,USB接口以及充电和电源管理系统。
在声学结构上面,在设计的时候要注意麦克风和扬声器的结构设计。
对于麦克风:
1) 人声能直达每个麦克,避免掩蔽效应,即产品正常使用场景下,保证声源的直达声(非反射声)到达每个麦克的机会是均等的,举例,麦克风震膜背对人的嘴巴就可能会形成掩蔽效应;
2) 声音到达麦克风的路径尽可能短、宽,要求谐振点频率在8KHz以上。对于紧贴面壳安装方式,要求声孔的深度(面壳进声孔外侧到MIC进声孔外侧的距离)小于1.5mm,声孔直径尽可能大(最小2mm)。如果麦克能直接在表面最好;
3) 声音路径内不要存在任何空腔,对于紧贴面壳安装方式,震膜和壳体内壁不要有缝隙;
4) 麦克风要远离干扰或震动(喇叭震动、结构转动震动)。对于震动,一般采用硅胶套进行减震密封处理,硅胶软硬度可根据实际结构形式进行匹配验证,一般要求尽可能软;
5) 对于驻极体麦克风,结构设计和生产过程中要考虑对麦克风的保护,避免挤压引发的麦克风一致性损失;
对于扬声器:
1) 喇叭的失真要小,100Hz-1kHz失真要小于10%,1kHz之后小于5%。一般喇叭在低频部分失真会较高,超过10%,建议加滤波器滤除低频成份。
2) 喇叭的结构设计要避免结构引发的失真,喇叭要进行减震处理,避免结构震动对麦克造成较大影响。
3) 喇叭腔体四周与其它机构件至少保留1mm的间距,振膜上方与机构件至少保留1.5mm的间隙,防止喇叭碰到结构件产生振动和异音。
4) 避免结构内声音传播,即喇叭的声音不能在结构内泄露到麦克,只能通过结构外的空气传播到麦克,建议喇叭和麦克风放在不同腔体内或选用性能好的密封材料对腔体内麦克部分进行密封;
语音子系统的框架结构如下图所示:
目前在开源硬件领域,有一些非常具有参考价值的实现,比如Respeaker就是一个注明的智能语音系统的开源实现。
Resepeker 2-MIC Array
这款麦克风阵列使用WM8960作为codec。
Resepeker 4-MIC Array
芯智汇AC108 高性能四通道数据转换器ADC,主要应用于智能语音远场麦克风阵列拾音,最多可级联16路麦克风。
AC108的SNR为108dB
Respeaker 6-MIC Array
芯智汇AC108 高性能四通道数据转换器ADC + AC101 DAC
Respeaker Core 2.0
Rockchip 瑞芯微RK3229单芯片方案,内部集成音频处理单元
除了上述麦克风阵列方案之外,还可以使用DSP方案来做语音处理,这里介绍一款专用的语音DSP方案,Realtek ALC5680.
上面可以看到此DSP芯片的参数以及硬件封装。
使用DSP 芯片可以将前级的音频输出做前期处理,从而大大减少了ARM处理器的负荷,在低功耗解决方案中是常用的配置。
在软件处理上面,当前有一些开源的实现可供参考:
GNU/Linux OS
speech algorithms
- DoA (Direction of Arrival)
- BF (Beam-Forming)
- AEC (Acoustic Echo Cancellation)
- KWD Keyword wake-up
- NS(Noise suppression)
- AGC (Automatic gain control)
基于Linux系统,有较多的语音处理算法。
在AI 上面,目前主要的生态系统有 Amazon Google DuerOS等。
AI Ecosystem
- Amazon Alexa
- Google Assistant
- DuerOS
- Etc.