语音接口已经成为一个改变人机交互方式的全新切入点。这些系统如何工作?打造这样一款设备在硬件方面有什么要求?随着语音控制接口变得越来越普及,德州仪器(TI)的一位工程师对此技术进行了深入的了解,并分享了其对这项技术的认识和看法。
语音接口是什么?
语音识别技术自20世纪50年代起开始出现在我们身边。那时贝尔实验室的工程师创建了一款可以识别单个数字的系统。然而,语音识别只是完整语音接口技术的一部分。语音接口包含传统用户接口的所有方面:它能呈现信息并为用户提供一种操控方式。在语音接口中,操控或者甚至一些信息的呈现都将通过语音实现。在一些如按钮或显示屏等传统的用户接口上,也可能配置语音接口这一选项。
大部分人遇到的第一款语音接口设备很有可能是移动电话,或者是个人电脑上非常基础的将语言转换成文字的程序。然而,这些设备的运行都非常缓慢、识别不精确且可识别的词汇有限。
那是什么将语音识别从一种附属性功能变成了计算机世界炙手可热的技术呢?首先,如今的计算能力和算法性能都有显著的提高(如果你对隐马尔科夫模型有所了解,对此你会有更直观的认识)。其次,云技术和大数据分析的应用也改进了语音识别效果,并且提高了识别的速度和准确性。
为你的设备添加语音识别功能
一些人常常会对如何为项目添加某种语音接口存在疑问。实际上,TI供应几种不同的语音接口产品,包括ARM®处理器的Sitara™系列产品和C5000™ DSP系列产品,这些产品都具备语音处理的能力。两种系列的产品各有千秋,分别适用于不同的应用。
在选择DSP和ARM这两种解决方案时,考虑的关键因素在于这款设备能否或将如何利用云语音平台。当中有三种应用场景:第一种是离线,所有的处理过程都在本地设备上发生。第二种是在线,通过基于云端的语音处理设备,如亚马逊的Alexa,谷歌助手或IBM Watson;第三种是两者混合。
离线:车载语音控制
从目前的发展趋势来看,人们似乎希望所有事物都能够连接至互联网。然而,无论是出于成本考虑或是缺乏可靠的网络连接,在某些应用中,连接网络的意义其实不大。在现代的汽车应用中,许多娱乐信息系统就采用了离线语音接口系统。这些语音接口系统通常只能使用有限的命令集,如“拨打电话”、“播放音乐”和“提高或降低音量”。虽然传统处理器的语音识别算法取得了重大进展,但仍有不尽如人意之处。遇到这样的情况,例如C55xx等DSP可能够为系统提供最佳的性能。
在线:智能家庭中枢
关于语音接口的很多热议主要围绕于例如Google Home和亚马逊 Alexa等互联设备。由于亚马逊允许第三方进入其已配备Alex语音服务的语音处理生态系统,他们在这方面的发展备受瞩目。另外,如Microsoft Azur等其它的云服务也可以提供语音识别服务和类似功能。值得注意的是,这些设备的声音处理过程全部发生在云端。
是否值得为了这种便捷的集成而向语音服务供应商提供上行数据完全取决于用户。但是,云服务供应商承担了主要的工作,设备商需要做的很简单,实际上,由于接口的语音合成部分也发生在云端,Alexa只要完成最简单的功能,即播放并记录录音文件。既然不需要特别的信号处理功能,ARM处理器足以处理接口工作。这意味着,如果你的设备已配备ARM处理器,你就可能集成云计算语音接口。
事实上,关注Alexa等不能提供的服务也是非常重要的。Alexa不直接执行任何一种设备控制或云集成。驱动Alexa的许多“智能设备”都具备云计算功能,该功能由开发商提供,可以利用Alexa的语音处理能力将驱动输入至现有的云应用。例如,如果你告诉Alexa需要订一个披萨,你最喜爱的披萨店则需要为Alexa编制一项“技能”。该项技能是一个可以在你订披萨时定义工作内容的代码。当你每次订披萨时,Alexa都会调用该技能。该技能嵌入了可以为你下单的在线订购系统。同样,智能家居设备制造商必须执行Alexa如何与本地设备和在线服务相互作用的技能。亚马逊自带许多这样的技能,加上第三方开发者提供的技能,即便你没有开发任何技能,Alexa设备仍然可以非常有用。
混合:互联自动调温器
有时,即使没有连接互联网,我们也有保证设备的某些基础功能可以正常使用的需求。例如:在连不上网的时候,如果自动调温器不会自主调节温度,这就会是一个很麻烦的问题。为避免这种问题的发生 ,一个好的产品设计师会设计一些本地的声音处理功能,在功能上实现无缝衔接。为了实现此功能,系统必须具有DSP,例如用于本地语音处理的C55XX和用于将已连网的接口连接至云端的ARM处理器。
语音触发又是什么?
你也许已经注意到了,直到现在我们还没有提及新一代语音助手真正神奇的地方:那就是始终关注“触发词汇”。它们将如何追踪你在房间内任意位置所发出的声音,或是当设备播放音频时,又如何听到你的声音?实现这些其实并没有什么特别神奇的地方,只需要一些智能化软件。这类软件独立于云端的语音接口,也能在系统离线的状态下运行。
这个系统最易理解的部分就是“唤醒词汇”。唤醒词汇是一个简单的本地语音识别程序,通过持续性采样,在接收的音频信号中寻找单个词汇。由于大多数语音服务均乐意接受不含唤醒词汇的音频,因此该词汇不需要指定任何特殊的语音平台。因为实现这种功能的要求相对较低,所以通过利用Sphinx或KITT.AI等开源数据库在ARM处理器上即可完成操作。
为了听到你在房间内任意位置发出的声音,语音识别设备采用一个叫波束成型的流程。最重要的是,通过对比不同声音的到达时间和麦克风间的距离来确定声音的来源。一旦确认了目标声音的位置,设备就会采用如空间滤波等音频处理技术来进一步减少噪音并增强信号质量。波束成型的实现取决于麦克风的布局。真正实现360度识别则需要一个非线性麦克风阵列(通常是圆形)。对于壁挂式设备而言,仅需两个麦克风就能启用180度的空间辨别。
语音助手的最后一招是采用自动回波消除(AEC)。AEC在某种程度上类似于噪音消除耳机,但应用恰好相反。该算法是利用已知的音乐等输出音频信号来实现的。在噪音消除耳机利用这点来消除外部杂音,AEC消除了输出信号对输入信号在麦克风上的影响。该设备能忽略自身产生的音频,且无论扬声器播放何种内容,其都仍然能接收。实现AEC需要大量的计算,其中在DSP中效果最佳。
为了实施唤醒识别、波束成型和AEC等以上提及的所有功能,则要求ARM处理器配合DSP共同工作:DSP增强了所有的信号处理功能,而ARM处理器控制设备逻辑和接口。DSP可在执行输入数据管路方面发挥重要的作用,由此最大限度地减少处理的延迟,从而提供更好的用户体验。ARM可以自由运行如Linux等高级操作系统以控制其它设备。这样高级的功能全部发生在本地,若使用云服务,将只接收包含最终处理结果的单个语音文件。
结论
语音接口似乎已收获了超高的人气,并且将在未来很长一段时间内以不同形式出现在我们的生活中。尽管有多种不同的处理方式可以实现语音接口服务,但无论你的应用需要何种装置,TI都可以为你提供理想的选择。
|