目前在我国的普通高校中已开展机器人的设计研究[1],但在高职院校中机器人的设计研究仍处于空白状态。当然这与高职院校的培养目标有些相悖,但作为高职院校的计算机专业,可以参与部分的设计工作。本文将就机器人中的语音部分的设计过程进行阐述。语言是人们传递信息的重要方法,在很早以前人们就构想过,如果我们能够不需要遥控器、键盘等而能够直接跟机器人对话,机器人也同样能以语音回复我们,实现人机语音交流,该有多好!随着科学技术的发展,语音机器人已经能用软件技术实现人们的愿望。
一、语音机器人之软件程序设计
(一)程序流程设计
要让语音机器人实现人机互动,就要先设计一套合理的人机对话程序。人与人之间对话的流程可描述为:人与人开始对话→开始提出一个问题→对方反应问题→开始第二轮对话。根据人与人对话的模式,人机对话流程如图1所示。
(二)功能模块设计
为了实现以上的程序流程,需将以上的功能划分为数个模块,以模块的方式完成程序流程[2]。程序模块如图2所示:假设语音机器人接受到一段对话,它会在语音识别库中找寻声音波段较相近的例子,缩小问题理解的范围。语音机器人从该句子中提取关键词,根据该关键词理解句子。机器人根据关键词的理解,得出可信度的判断:若可信度低,则给出语音错误的提示;如果可信度高,则根据关键词生成的问题理解给出相应的回复。语音机器人给出生成的句子,完成第一轮对话。
(三)语音机器人软件程序模块设计要点
1.问题领域判断所谓的问题领域判断,就是指机器人识别出句子以后,需根据关键词检索,得到数个关键词,然后根据关键词词汇的组合寻找与之相关的问题库。机器人找到相关的问题领域,就能缩小问题判断的范围。2.问题理解判断所谓的问题理解,就是指机器人针对关键词进行判断,找到可以理解的句子。比如人们问机器人:“你的姓名是什么?”它会针对关键词进行判断,得到自己能够理解的句子。3.关键词的检索所谓关键词,是指人们进行对话时,句子中的关键词汇。语音机器人理解的并非是整个句子,而是不同的关键词。比如说,人们问机器人“你的姓名是什么?”语音机器人判断的关键词为“你”“姓名”,它针对这两个词在语音库中进行检索,找到语音库中与之最相近的句子。关键词的设计能够简化机器人对句子的判断。4.问题可信度判断机器人在用关键词判断句子时,会将接受到的句子与语音库中的句子进行比较,给出一个可信度的评估。如果语音库内所有句子的评估指数都不合格,程序将会给出一个“不能理解句子”的提示;如果语音库中有评估指数高的句子,将根据评估指数最高的句子给出相应的回答。
(四)语言素材设计
1.建立语音识别库语音识别库中,样本是否全面,决定语音机器人智能的程度。要建立一个语音识别库,需根据性别、年龄段、录音环境等生成语音脚本,然后用数据库的方法管理建立的语音脚本。2.声学模型的建立所谓的声学模型的建立,是在语音识别库建立的基础上建立语音模型,比如建立成年男性声音的模型、女性声音的模型、未成年人声音的模型。通过声学模型的建立,机器人能更精准的理解每个句子的意思[3]。
二、语音机器人之软件程序设计的实现
语音机器人程序设计,要靠软件的方式完成。可设计语音机器人的软件很多,现使用SpeechSDK软件为例说明语音机器人软件程序调计实现的方法。SpeechSDK是微软公司开发出的声音识别系统,人们只要下载微软公司提供的语音识别库,就能使用语音合成引擎完成语音识别与语音输出的功能。程序员只要应用该软件设计出语音机器人程序应用的方法,就能得到一套语音机器人。
(一)程序模块流程化实现
如果用SpeechSDK软件来实现语音机器人程序模块运行流程,程序实现的步骤如表1所示。
(二)语音识别功能的实现
SpeechSDK软件语音识别的功能实现如下:初始化COM平台;完成以上模块流程化中序号1的工作;创建语音接口规则,完成序号2、3的工作;接受语音对话,分析接受的语音,完成序号4、5的工作;如果该轮对话没有接束,回到步骤4,直到完成该轮对话结果,直到下一轮对话开始,如果对话全部结束,则循环中止,直到下一轮对话开始[4]。语音识别流程图如图3所示。
(三)程序语言编程的实现
使用SpeechSDK软件编程,可完成语音机器人的程序设计[5]。现以创建一个独占型语音识别引擎与创建命令识别上下文的程序句子为例,说明该软件的编程方法。创建独占型语音识别引擎程序命令:M_pRecognizerCocreatelnstance(CLSL)_SphprocRecognizer);创建命令识别上下文命令:M_pRecognizer->CreateRecoContext(&m_pRecoCtxt);SpeechSDK软件能使用多种语言调用数据库,只要XML能识别该种语言,就能实现语音机器人软件程序设计工作。以上为使用Visualc++6.0语言编写的创建独占型语音识别引擎程序命令与创建命令识别上下文命令的程序,该实例能说明语音机器人程序设计可实现的方式[6]。随着社会的发展,人们希望能用语音的方式与机器人对话,本文说明语音机器人之软件程序设计与实现的方法,该种方法能使用这种方法能初步实现人们的人机对话需求。作为高职计算机专业而言,机器人的语音设计只是机器人设计的一部分,通过这样的一个设计可以使学生对软件设计过程有个总体的认识,这样的程序实现也可增强学生学习兴趣,为学生更深层次的研究打下良好基础。
作者:王黎明 单位:阜新高等专科学校