现在的语音识别处理器集成了更多功能,它们的精确度也更高,并有更好的开发工具支持,这使得在消费电子产品中添加语音I/O变得相对容易。在用语音控制家庭环境照明便是一个具有市场潜力的消费应用。
语音识别的类型
语音识别(有时也被称为声音识别或VR)技术可分成三大类:与说话人无关(SI)的识别技术、与说话人相关(SD)的识别技术和语音确认(SV)技术。每种技术都有各自的优点,适用于不同的应用。采用SI技术的产品要求无需对使用者进行培训便可使用的语音指令。
例如,与说话人无关(SI)的识别技术通常最适合用于照明控制器。就像我们用名字来引起他人的注意一样,用一个被称为“触发(trigger)”的SI指令来激活照明控制器也是一个不错的方法。照明控制器被激活后,它可以接受多个指令。
集成了语音识别功能的产品通常需要一种方法,以让使用者知道它们已经听到指令并准备接受下一个指示。也就是说,它们必须让使用者知道该产品已在控制流程之中。由于控制流程十分简单,照明控制器将用一个短音作为应答,这可缩短使用者与控制器的交互时间,而且如果发生误启动也不会导致太大问题。
由于语音是人类的天生交流方式,所以语音识别功能可以增加产品的易用性,此外它还延伸了使用者的物理控制范围。例如,一个语音控制的照明开关即可提供此类价值。或许使用者正坐着看电视,而照明开关不在伸手可及的范围内,或者环境太暗,看不到照明开关,此时借助一个简单的语音指令就能方便地解决这些难题。
图1:一个典型的具语音识别功能的电灯控制器将采用本流程图中显示的步骤进行操作。 |
设计考虑
因为语音识别建立在概率函数的基础上,所以设计者必须在接受指令(包含在识别指令集合中)和拒绝指令(不包含在识别指令集合中)的重要性之间做出折衷。例如,如果该产品必须反应非常灵敏,且偶尔发生误接受(误启动)也不会酿成大问题,则应用开发者可能倾向于接受指令更重要些。而其它一些应用则不允许误启动,如声控烤箱或照明控制器。
背景噪声是语音识别的克星。检测和识别均要求信噪比(SNR)在合理的范围之内(约为3:1或更高)。如果应用条件允许,最好使用定向麦克风或近讲麦克风来降低噪声。
成本也是一个考虑因素。当最终使用者购买产品时,产品价格已经是原始制造成本的4到5倍。幸运的是,目前市场上提供的高集成度语音处理器包含了所必需的麦克风前置放大器、模数转换器(ADC)、数字滤波器、内核处理器、数模转换器(DAC)和数学运算引擎。
这些处理器同样捆绑了从文本输入到与说话人无关(T2SI)的识别及合成技术。这些芯片也可充当各种消费产品功能的主控制器,而且其价位对消费电子产品来说颇具竞争力。这使得产品在增加语音功能的同时,只增加很少成本,或不增加成本。
照明控制器的设计原理
这些优异的性能使VR照明控制器非常具有吸引力,同时还有助于解决该应用中的语音识别挑战。在家庭环境中,远距离识别一个指令意味着要排除人说话、电视、音乐、碗碟碰撞和撞门等背景噪声的影响。此外,这类应用也必须能适应不同性别的成人和孩子。
语音识别输出的信号完整性只跟经过处理的信号一样,因此适当的麦克风电路设计是最基本的。麦克风电路的设计应使得麦克风、偏置电阻和前置放大级的组合电路可以充分利用ADC的输出位数,即尽可能利用ADC的输出位数来达到最佳分辨率,并且不饱和。另外,设计还应考虑到人们轻声或大声说话时的可能功率范围,以及照明控制器可能被使用的距离范围(通常最大约为10英尺)。
最好把照明控制器设置成避免误启动,(在嘈杂的环境中,使用者有时可能不得不重复发出指令),利用Quick T2SI工具的设置可实现这点。保持指令集的规模尽可能小,对尽量减少错误指令带来的误操作十分重要,特别是在嘈杂的环境(如在家中)。为使指令之间的差异最大,T2SI指令在声音和长度方面应尽可能地不同。
最后,照明控制器的逻辑流程必须简单、自然,方便使用。为避免使用者混淆,应尽可能减少从引起照明控制器的注意到进入活跃指令集状态的控制步骤。活跃指令集应一直包含触发字的复本,因而使使用者可以在任何时候重建自己在该流程中的位置。触发字应该很易于地与照明控制功能关联起来,而活跃指令必须是照明控制最常用的。图1对设计将要用到的流程进行了说明。
图2:Sensory公司的VR stamp是一个低成本的模块,可通过加入语音识别系统所必需的基本功能和组件来简化设计。 |
硬件设计
为简化照明控制器的开发,本例中使用了Sensory公司的VR Stamp。VR Stamp是一个包含Sensory RSC-4128微处理器、音频电路分立电容和麦克风前置放大器、3.58MHz晶振、复位电路及用于存储程序代码的128KB闪存的低成本模块。
VR Stamp还带有128KB的串行EEPROM存储器,但在照明控制器应用中没有用到它(见图2)。VR Stamp工具套件包括VR Stamp、集成开发环境(IDE)、Quick T2SI、FluentChip库(具有各种语音识别和合成功能,包括T2SI)、VR Stamp编程板和支持文件。
在这个由语音激活的照明控制器电路中,VR Stamp模块接受使用者发出的语音指令,然后提供控制信号来打/关灯,并通过设置占空比来调节想要的电灯亮度(图3)。
该电路由120V、60Hz的交流线电源供电。变压器(T1)和二极管桥(D1)完成从交流到直流的转换和整流。RSC-4128工作在2.4到3.6V的范围内。稳压器(U1)向VR Stamp模块提供稳定的3.3V电源。3300Ω的电阻(R1)将交流线性电流降低到几个毫安,以使RSC-4128能够检测电压何时出现过零点。
内部二极管的作用是防止芯片因输入电压过高而损坏。两端交流开关元件/三端双向可控硅开关元件对(U2/Q2)在输出端(P2)控制交流线电流。为滤除VDD上的低频纹波,必须使用100µF的电容(C3),因为不稳定的VDD将会耦合到音频电路中,并将降低语音识别的精确度。
用于语音识别输入的麦克风(MK1)和用于声音输出的扬声器(LS1),实现该应用的功能模块。这是一个被来用为电灯供电的经典电路。通过延迟启动,该电路还可以减弱灯的亮度。本设计实现了4个照明开关亮度级别,其中“最亮”和“关灯”分别采用100%和0%的占空比, “中等亮”和“暗”分别采用大约50%和10%的占空比。
在设计带有语音识别功能的PCB时,设计者应该记住两个设计原则:
1.保持模拟电源和模拟地的稳定 应利用稳压器使电源信号和地信号尽可能保持稳定。应合理设计PCB布局和走线,以使所有的模拟电源和模拟地信号与数字地分开。模拟电源和模拟地应分别连接到主电源和主接地上 (对于本应用为稳压器)。这种连接方式通常被称为“星形接地”。把稳压器放在尽可能接近VR Stamp的MIC _ RET引脚的地方,并对所有电源和地信号使用粗的电线和PCB走线。
2. 麦克风连线尽量短,并带屏蔽保护 使PCB上所有模拟走线尽可能短是一种好的设计方法。特别是,从麦克风的正输入端到VR Stamp的主音频信号路径应该尽可能短。高阻抗音频信号的振幅仅为几毫伏的峰峰值。为避免来自数字噪声和电磁干扰(EMI)的天线效应,必须使用屏蔽线缆连接麦克风与该电路。
VR Stamp被设计用来利用廉价的全向驻极体麦克风提供出色的识别性能。本应用中选用了松下公司的WM-64PKT,但也可以使用许多其它制造商和其它型号的产品。虽然驻极体麦克风要求一个外部电源驱动内部FET缓冲器,但被偏置后,它们也可作为电流源使用。此外,偏置电流控制整个麦克风的灵敏度。在这个调光开关中,采用了灵敏度为-44dB的麦克风。如果采用不同灵敏度的麦克风,则应按下面的公式修改麦克风的偏置电阻(R4):
其中Sensitivity是你想要的麦克风灵敏度(在麦克风规格中以-dB为单位),R是麦克风阻抗,RS是对获得给定灵敏度所需的麦克风偏置电阻(R4)。
麦克风的布局也是VR设计成功的关键因素,应记住三个重要的设计原则。
1. 埋入式安装 麦克风元件应放在尽可能接近安装面的地方,而且应充分固定在塑料壳体上。在麦克风元件和塑料壳体之间不能有任何空隙。
2. 无障碍物且孔足够大 为避免影响识别效果,须保证在麦克风元件前面的区域内没有任何障碍物。麦克风前面的外壳的开孔直径至少为5mm。如果必需在麦克风前加上塑料表面,应使之尽可能薄,如果可以的话,最好不超过0.7mm。
3. 隔离 为避免因操作或震动产品而产生的听觉噪声被麦克风“获取”,麦克风与壳体之间应该进行隔音。
图3:由语音激活的照明控制电路中的VR stamp模块接收使用者口头指令,提供开/关灯控制信号,并设置灯的亮度。 |
软件设计
Sensory公司的VR Stamp可以运行利用FluentChip技术固件工具和库所开发的程序。FluentChip程序是利用VR Stamp工具套件所包含的IDE工具所创建和管理的。一个程序包含一个或多个代码模块(可以使用汇编语言或C语言编写)及其它程序资源,包括面向T2SI识别指令集和SX语音提示的目标数据文件。
T2SI触发及指令集是采用Quick T2SI(一个基于Windows的SI识别指令集创建工具)创建的。为使用这个基于图形使用者界面(GUI)的工具,设计者只需把待识别的字或短语键入到文本框中,按下“Build”按钮,一个定制的SI集合就创建好了。注意的是,应把触发字输入到触发字文本框中,把指令输入到指令文本框中。
可以利用PC对这些字和短语进行测试,也可以把它们下载到VR Stamp中进行测试。如果一些字难以识别或易于产生混淆,设计者应调节识别字和短语的发音,并马上重新测试。Quick T2SI工具也可创建可以链接到任何T2SI应用的目标文件。
应把Quick T2SI工具中的“Out of Vocabulary Sensitivity”项设置成“Reject More”或“Reject Most”以减少误启动。应该对T2SI字进行了仔细选择,以便VR能很容易地区分它们,而且这些字对使用者来说是很自然的。例如,“on”和“off”就不应列入T2SI字,因为两者的发音太相似,很易于引起混淆。
如“power”等较长的字是更好的选择。此外,可以把这个单独的字用作开/关灯的开关。而其它的指令词,“dimmer low”、“dimmer medium”、“dimmer high”和“light switch”都足够长,差别很大,不太可能引起混淆。