郑乐一 赵永根 浙江大学附属儿童医院 信息科 (浙江 杭州 310006)
内容提要: 文章的主要内容是语音识别与控制。控制系统是基于单片机及其他外围器件与电路,模拟多种医院医疗设备、患者病房服务设备、机电、电子、测控等器件,使其能在语音指令下工作。具体组成由语音识别软件、单片机系统、语音芯片等组成的语音识别与控制、语音播放综合系统。试验表明该系统能基本达到人机交流与控制的目的。
生活中,人们通过语言互相交流。用机器和人之间通过语言进行交流,这是人们的一个梦想,语音技术是机器领域中未来发展的一个方向。人与机器交流的过程是最好的信息交换手段,人与机器语音对话可使控制效率提高,其综合应用前景非常好。语音识别技术的内容比较多,包括信号处理、模式识别、听与说机制、人工智能等。语音识别分为独立与连续语音识别系统、特定语音识别和非特定语音识别。其中,独立字词发声比较容易识别,连续句因字词之间因无停顿,识别检测比较困难[1]。
汉语有近千个左右音节,若不考虑声调,约有数百个音节。汉语每个字的音节是由声母和韵母组成,韵母决定了声音的声调变化。
汉语具有独特的四声调特性,即汉语的每个字都有四种不同的声调,同一个字在不同的上下文语境中又会有不同的韵律特征。
在实际汉语语音环境中,常把声母根据后续韵母的不同再细分,并把韵母根据声调的变化也继续细分[2]。
在汉语语音识别环境中,语音识别单元的选取与英文不同。英文系统一般采用音素做识别单元,而汉语一般采用音节做识别单元。基于音节的构成的模型库不是非常庞大,因此即使在大词汇量的语音识别系统中,也可以采用音节作为语音识别单元。
本系统基本上实现了语音识别和控制为目的的设计要求,同时具有语音播音功能,使系统具有了基本人机对话能力。
本系统设计是用语音控制单片机实现功能的一个系统,该系统以少量的语音指令达到了控制单片机与其外围器件功能。系统由软件和硬件两部分构成。
软件部分:用delphi开发的语音识别和串口通讯软件组成,串口通讯部分使用了spcomm控件;另外是微软语音开发引擎,该引擎集成了语音合成、识别、训练等功能,拥有微软自己开发的语音库,经过训练后的语音识别精度比较高。
硬件部分:由串/并转接口;语音芯片、双向模拟开关、麦克风、扬声器等组成;再由发光二极管模拟显示外围器件功能[3]。
该系统是由软硬件结合方式进行一般的语音识别,通过串/并行口通信,实行对单片机控制。实现发光二极管发亮,语音输出,实现控制计算机外围设备的目的,达到人机对话智能化要求。存储语音芯片里的语音会永久保存。本系统若经过延伸应用范围会非常广泛。
微软中提供了语音引擎是需安装过的。即需要经过配置和语音训练,为了能准确识别语音,让它先熟悉你的声音。
语音引擎的调用类似于自动化服务器。①从文字到语音,SpVoice的功能是把文字转化为语音。②从语音到文字,SpSharedRecoContext的功能是实现语音输入[4]。
对语音识别引擎,在语音属性控制面板上有相关选项,来进行配置,如语音属性图。
此外还须对麦克风进行配置,使得麦克风能正常工作,如麦克风向导图。
为了提高语音识别的认知率,是要对语音引擎进行反复训练,提高识别效率,如测试安放位置图。同时在操作过程中注意背景噪音的问题。见图1~3。
在系统中使用Delphi语言, 这是一种方便、快捷的应用程序开发工具,是在微软系统图形用户界面中进行编程操作,是目前较好的一类编辑器。
需要注意的是Delphi不带串口通信控件,若使用Delphi实现通信目的,是要利用控件,或使用API函数,或调用其他串口通信程序来达到。见图4。
控制软件主程序
#include "declare.h"
图1. 语音属性对话框
系统由单片机控制及语音模块、二极管发光功能模块、串口通信模块组成。并在单片机和语音芯片中间设计一个双向模拟开关,这样语音芯片的相关引脚才能正常工作[5]。
发光二极管是代替外设功能的应用,由单片机控制。若接继电器接到二极管,就可以扩展其功能,达到单片机控制外设功能的目的。串行口通信部分由转接口和LM485芯片组成。
图2. 调整音量
图3. 测试安放位置
图4. 控制流程图
图7. 发光二极管功能模块电路图
图8. 通信模块电路
图9. 系统工作流程图
图5. 语音芯片的A口操作模式和地址模式的功能表
图6. 单片机控制放音模块的电路
由单片机、双向开关、语音芯片组成。单片机P1口连接语音芯片的A口,下表是语音芯片的A口操作模式和地址模式的功能表。见图5。
本系统选择的是地址工作模式。
首先,对语音芯片录语音信息,在仿真器中,打开语音芯片的相应地址(A口地址),然后,调节REC引脚高低电平,进行录音和放音系统试验调整,直至达到要求止。见图6。
经语音识别后,再经由单片机控制其他外围器件的功能,若换用继电器件或其他数字开关取代发光二极管,相应就可以控制其他弱电设备和一般强电设备,达到利用语音控制某些医疗设备、患者服务设备和装置、机电与电子设备、测控类仪器的目的。电路见图7。
单片机接到串口发送的数据时,单片机程序响应,开始判断传过来的数据,并与存储的数据进行比较,当符合响应要求的时候,单片机相应控制口应为高电平,此时语音芯片的相应口为低电平,则放送的是录音地址口的语音,且相应二极管导通发亮;当识别出信号是“否”的时候,单片机另一相应控制口为高电平时,此时语音芯片放送的是另一相应地址的语音,且相对应二极管将导通发亮。电路见图8[6]。
见图9。
由单片机语音控制其他外围机器,包括各种医疗设备、患者服务设备、机电、电子、测控等器件,能让它在人们语音指令下工作,是研究者希望达到的目的,本语音控制系统的测试结果基本达到了初始设计要求。即可实现用单片机控制、语音识别、发光二极管模拟机器功能的目的[7]。
在实际中若用相关器件或者数字开关取代发光二极管,即可控制相应的弱电设备和一般的强电设备工作。