智能语音对话机器人系统架构
智能语音机器人交互时序流程
智能语音机器人呼叫流程的交互时序流程(以呼入为例),如图2所示,主要流程为:
1.客户拨打电话给智能语音机器人。
2.智能语音机器人接听电话后,呼叫中心平台调用业务流程管理接口,启动并初始化对话流程状态图。
业务对话流程管理模块初始化对话流程状态图后,发送开场白话术给呼叫中心。
呼叫中心平台接受到开场白话术,根据配置选择进行TTS语音合成或者直接播放录制好的录音,并进行放音操作通知客户。
客户收到开场白语音后同样做出相应的语音回复,开始进行对话流程。
呼叫中心平台收到客户的回复语音后通过MRCP协议调用ASR服务进行语音识别。
呼叫中心收到ASR返回的文字结果后,通过HTTP协议调用业务流程对话管理接口进行对话状态更新。
业务流程对话管理接收到呼叫中心传来的请求信息后,调用语义解析模块进行语义解析,并根据语义解析的结果选择话术返回给呼叫中心平台并更新对话状态。
呼叫中心收到当前话术,根据配置选择进行TTS语音合成或者直接播放录制好的录音,并进行放音操作通知客户。
10.根据配置好的业务流程状态图,重复6-9步骤,直至呼叫对话流程结束。
11.业务对话流程结束后,呼叫中心通知ASR服务结束当前的语音转写时间请求。最终通知业务流程对话管理模块挂机操作,并向呼叫管理平台上报呼叫结果。
智能语音对话机器人模块介绍
1.语音识别ASR
语音识别能够将用户的语音转换成文字。针对语音识别应用中面临的方言口音、背景噪声等问题,在实际业务系统中所收集的涵盖不同方言和不同类型背景噪声的海量语音数据的基础上通过先进的区分训练方法进行语音建模,能够使语音识别在复杂应用场景下均有良好的效果表现。
模型优化包括声学模型优化和语言模型优化。由于声学模型训练需要大量的数据(客户的标注数据不足以训练声学模型),并且同时需要音频及对应的标注文本,声学训练又是一个高计算的任务,需要多台高性能服务器及GPU构成的硬件系统,所以给客户做声学优化不可行。语言模型优化相对声学模型优化,其生成模型方式及硬件要求,可在利用客户标注数据进行,以下是语言模型优化的流程:
语言模型优化主要分为需求评估、数据准备、模型训练、测试评估、迭代优化五个部分,其中标绿框表示不一定能做(有时候拿不到客户的样本数据),标蓝框表示第一次优化工作需要做的。
2.前端语音处理
前端语音处理,利用信号处理的方法对说话人的语音进行检测、降噪等预处理,以便得到最适合识别引擎处理的语音,其主要功能包括端点检测VAD、流式语音智能断句和噪音消除。
语音端点检测是对输入的音频流进行分析,确定客户说话的起点和终止点的处理过程。一旦检测到客户开始说话,语音开始流向识别引擎,直到检测到客户说话结束。这种方式能够使得识别引擎在客户说话的同时开始进行识别处理,做到最大限度的即时处理。
n 端点检测过程:
基于语音信号的特征,用能量,过零率,熵 (entropy) , 音高 (pitch) 等参数以及它们的衍生参数,来判断信号流中的语音/非语音信号。
在信号流中检测到语音信号后,判断此处是否是语句的开始或结束点。在商用语音系统中,由于信号的多变的背景和自然对话模式而更容易使得句中有停顿(非语音),特别是在爆发声母前总会有无声间隙。因此,这种开始/结束的判定尤为重要。
n 端点检测目的:
减少识别器的数据处理量。可以大量减少信号传输量及识别器的运算负载,对于语音对话的实时识别有重要作用。
拒绝非语音的信号。对非语音信号的识别不仅是一种资源浪费,而且有可能改变对话的状态,造成对用户的困扰。
在需要打断 (barge-in) 功能的系统中,语音的起始点是必须的。在端点检测找到语音的起始点时,系统将停止提示音的播放。完成打断功能。
随着语音识别应用的发展,越来越多的系统将打断功能作为一种方便有效的应用模式。而打断功能又直接依赖端点检测。端点检测对打断功能的影响发生在判断语音/非语音的过程出现错误时。表现在过于敏感的端点检测产生的语音信号的误警将产生错误的打断。例如,提示音被很强的背景噪音或其它人的讲话打断,是因为端点检测错误的将这些信号作为有效语音信号造成的。反之,如果端点检测漏过了事实上的语音部分,而没有检测到语音。系统会表现出没有反应,在用户讲话时还在播放提示音。 端点检测对识别系统的识别效果影响也很大。语音信号的起始点和结束点判断有误,有可能影响整个信号的完整性,在语句的开头或结尾漏掉一些有用的数据。当这种情况发生时,很可能对识别的准确度有特别大影响。不完全的信息会使识别率降低。
n 商用端点检测应具备的特性:
端点检测的精确度高。
更好的背景噪声和语音模型:使系统对背景噪声,其它说话人和非语音的声音有很好的拒绝功能。
默认的系统相关参数有很好的适用性,而在有需要的现实环境中,可以通过系统调节来适应通话环境,改善端点检测的效果。
对信道有自适应能力:在对话开始后能很快适应当前的信道特征,使得端点检测的准确度有进一步提高。
独特的识别服务器的反馈和非语音持续时间双重结束点判定功能,有效的改善了语音结束点的判定。特别是对较长的语句效果更加突出。
基于可靠的端点检测技术和智能反馈,智能打断功能不仅应该在一般的环境下工作出色,而且能有效的拒绝环境噪声,非语音的高强噪声(呼吸,关门等) 环境中其它人的声音。
流式语音智能断句
现有的语音处理方案是先用语音活动检测模块对语音进行断句,再将断开的语音进行自动语音识别。但是,在电话语音交互场景中,VAD面临着两个难题:
可以成功检测到最低能量的语音(灵敏度)。
如何在多变的复杂噪声环境下成功检测(漏检率和虚检率)。
漏检反应的是原本是语音但是没有检测出来,而虚检率反应的是不是语音信号而被检测成语音信号的概率。相对而言漏检是不可接受的,而虚检可以通过后端的ASR和NLP算法进一步过滤,但是虚检会带来系统资源利用率上升,以及造成响应不及时。
流式语音智能断句模块是主要由语音识别模块、信息流聚合模块、动态窗口设定模块、断句识别模块构成。其中,语音识别模块用于接收并识别语音实时流,并按照指定的频率输出带有时序的语音识别结果;信息流聚合模块用于对带有时序的语音识别结果进行优化处理,并整合经过优化处理后的带有时序的语音识别结果,以形成语音识别结果序列;动态窗口设定模块用于从语音识别结果序列中选择指定范围的文本,进而将指定范围的文本用于断句分析;断句识别模块用于分析指定范围的文本的语义,并根据语义确定是否进行断句。