自动语音识别技术在十多年之前还难登大雅之堂,但现在它正成为人们和主要计算设备之间进行交互的主要手段。
据麻省理工学院报道,该院的研究人员已成功开发出了自动语音识别的低功耗专用芯片。通常人们在手机上启用一次语音识别软件需要消耗1瓦左右的电量,而这款新芯片只需消耗0.2到10毫瓦的电量;当然,具体的能耗大小和需要识别的单词数量有关。
在实际应用中,这可能意味着节约90%到99%的电量,从而使得语音控制可应用到相对简单的电子设备中;包括电容量有限而需要从其所处环境中吸取能量的设备,以及几个月才进行电池充电的设备。这些设备是构成“物联网”(internet of things,IoT)的技术基础。物联网的构想是,交通工具、电器装置、土木工程建筑、生产设备、甚至家禽等都会装上传感器,这些传感器会直接将相关信息发送给联网的服务器,并由后者来协助完成维护保养和任务调度。
“语音输入会成为很多可穿戴应用和智能设备顺理成章的一个接口。”麻省理工学院研究人员表示,“这些设备的小型化必然要求提供不同于触摸和键盘的交互方式。和在云端进行这类语音操作相比,把语音功能嵌入到这些设备中可以降低能耗,这很关键。”
“我认为我们不是为某一特定应用而开发的这门技术。”研究人员补充道,“我们已经努力将这些基础的功能做到位了,希望能让系统设计者可以更好地进行设计取舍,这是采用现有的硬件或者软件加速技术做不到的。”
研究人员在上周(2017年2月5-9日)举行的国际固态电路会议(International Solid-State Circuits Conference)上发表了关于这款新芯片的论文。
1
电路唤醒
和其它最先进的人工智能系统一样,当今性能最好的语音识别系统都基于神经网络,即根据人脑建模的简单信息处理器构建而成的虚拟网络系统。该芯片的很多电路都围绕着尽可能高效地实现语音识别网络而设计。
但是,即便是最节能的语音识别系统,如果持续不中断地运行,也会很快耗光设备的电量。针对这种情况,该芯片也包含了一个简单的“语音活动检测”(voice activity detection)电路来监听环境中的噪声,以甄别其中是否有人类语音;如果检测到语音,芯片就会激活更大更复杂的语音识别电路。
实际上,出于实验目的,研究人员设计的芯片有三个不同的语音活动检测电路;它们的复杂程度不同,因而能耗也不一样。哪种电路最节能与使用环境相关,但是在模拟的各种环境测试中,三种电路里最复杂电路所在的芯片总体表现最好。虽然这种电路自身的能耗接近最简单电路的三倍,但是它的误检率要低得多;简单电路经常误激活整个芯片,导致整体能耗更高。
一个典型的神经网络由数千个处理“节点”构成。每个节点只能进行简单的计算,但节点之间紧密联结。在常用于语音识别的神经网络中,节点按层组织。语音数据通过底层输入神经网络,这一层的节点对数据进行处理并送入下一层节点,以此类推。顶层的输出指明语音数据是某个特定语音的概率。
语音识别网络体积太大,不能载入到芯片的内存里,问题就来了:从芯片外存储器中读取数据到芯片中比从芯片自己的存储中读取数据更耗能。针对这一问题,麻省理工学院的研究人员的设计致力于使芯片从芯片外存储器读取的数据量最少。
2
带宽管理
神经网络中的一个节点可能从多个节点接受数据,也可能会把数据传给多个节点。节点之间的这种多向联结都有自己的权重值。一个联结的权重值表示从这个联结来的数据在数据接受节点进行计算时的重要性。减少芯片内存带宽的第一步就是压缩每个节点相关的权重值。数据只有放到芯片里后才会进行解压。
芯片还利用了语音识别的一个特有性质:一波又一波的数据必须通过网络。进入的音频信号都被分成多个10毫秒的增量数据,每一个增量数据都必须单独进行评估。这种芯片每一次只载入神经网络的一个节点,但这个节点要传递32个连续的10毫秒增量数据。
如果一个节点有12个输出,那么这32个传递数据便会得到384个输出值,存放在芯片内存中。当要将这些输出传给下一层的节点时,每个输出值都必然和其它11个值一起进行传输,每层都会做类似的处理。因此,该芯片也要求具备一定规模的片上内存电路来进行中间计算。芯片每次只从芯片外存储器中读取一个压缩节点,这样就保持了较低的能耗需求。
“对下一代的移动设备和可穿戴设备而言,实现语音识别的超低功耗很关键。”研究人员表示,“这是因为手表、耳塞式耳机和眼镜这类设备小型化趋势明显,需要不再依赖触摸屏的用户接口。语音是和这类设备进行交互的顺理成章的方式。”