一种应用于对话场景的自动应答***和方法
技术领域
本发明属于电话通信技术领域,具体涉及为一种应用于对话场景的自动应答***和方法。
背景技术
企业与客户之间日常交流过程中,需要耗费大量人工成本与人员精力问题,营销服务人员各自知识经验不同,同时理解、表达、情绪、口语等特征,导致服务效果参差不齐,从而影响服务质量与结果。因此,诞生了智能语音,用以替代坐席和客户沟通。
目前,智能语音可以通过ASR(实时语音识别)与NLP(自然语言理解),实现机器实时理解人类声音语言,在客服、销售等场景进行AI智能沟通,对人类声音语言进行大规模语料训练,在指定场景下,可以得到识别质量较好的识别模型,语音网关模块将人类的声音实时发送到ASR中进行识别,得到文本形式的识别结果,用于关键字匹配,或者语义处理,得到预设的问题与答案,在以音频形式播放出来,以匹配人与机器的语音沟通。
虽然现有方案能支持语音网关模块与人类的语言沟通,但是基本以人与语音网关模块之间一问一答的形式为主,很难做到人类水平的插话交流,比较死板且不自然。针对访客的突然插话接入,语音网关模块若无动于衷,显得不礼貌,交流不友好,用户必须听完完整的语音网关模块预设话术,且在语音网关模块话术输出的时段内无法打断或提出疑问,在沟通上难以实现及时、快捷;另一方面,访客的插话打断,可能有更迫切的问题询问,若不及时切换到相关问题节点上,会浪费客户时间。综上所述,现有智能语音语音网关模块与人的语音交流方案在交互体验、沟通效率上仍有待提高。
发明内容
本发明的目的在于克服上述提到的缺陷和不足,而提供一种应用于对话场景的自动应答***。
本发明的另一目的在于,提供一种应用于对话场景的自动应答方法。
一种应用于对话场景的自动应答***,其特征在于,包括:客户端会话处理模块和AI会话引擎模块;
所述客户端会话处理模块,作为互动前向适配层,帮助场景对话前向内容识别与事件识别,包括客户端模块、语音网关模块;所述客户端模块,为具有语音通讯功能的移动电话、座机,或者是可文字沟通的社交工具;所述语音网关模块,根据拨号计划主动发起或者接听通话,在电话接通后将根据客户端模块产生的一系列动作给出相应的ESL事件下发到AI会话引擎模块,并从AI会话引擎模块接收并执行相应的动作;
所述AI会话引擎模块,记录及控制当前会话状态,以及结合语音网关模块传入的事件向对客户端会话处理模块下发不同的指令。
进一步,所述语音网关模块,将客户端模块的各种渠道的通信协议转化为统一的通信协议,并进行事件识别,其在一路接通的通话的生命周期内会产生如下几个核心事件:
1、SPEECH CONNET:在和客户端模块建立通讯连接后产生该事件;
2、SPEECH CHANNEL_ANSWER:客户端模块接听电话后产生该事件;
3、SPEECH CHANNEL_EXECUTE:开始向客户端模块播放一段语音时产生该事件;
4、SPEECH CHANNEL_EXECUTE_COMPLETE:语音播放完毕后产生该事件;
5、SPEECH ASR_START:监听到客户端模块的语音流传入后产生该事件;
6、SPEECH ASR_END:客户端语音流传输完毕后产生该事件,该事件携带客户的ASR结果,即语音翻译结果;
7、SPEECH HANGUP:任何一方主动挂断电话后产生该事件。
进一步,所述语音网关模块具备事件产生能力和ASR理解能力,将客户端模块传入的语音流转换为文字以事件的形式下发到AI会话引擎模块。
进一步,所述AI会话引擎模块,内设对话控制模块、树形的数据存储结构、普通知识库和***知识库;数据存储结构为话术的存储部件;普通知识库为普通知识的存储部件;***知识库为***知识的存储部件。
进一步,所述会话状态分为语音网关模块未在放音、语音网关模块放音中、语音网关模块暂停中、通话已结束;会话状态结合语音网关模块传入的事件可以产生的指令包含初始化、主动发起对话、对方说话内容、对方正在沉默、对方打断语音网关模块说话;
AI会话引擎模块的会话状态转移逻辑判断方案:
1、AI CONNET:语音网关模块传入的事件“SPEECH CONNET”到来时,产生初始化指令,发送到语音网关模块,此时不改变会话状态;
2、AI CHANNEL_ANSWER:语音网关模块传入的事件“SPEECH CHANNEL_ANSWER”到来时,产生对方说话内容的指令,发送到语音网关模块,此时将会话状态转移到语音网关模块未在放音;“SPEECH CHANNEL_ANSWER”结束后,执行话术,产生主动发起对话的指令;
3、AI CHANNEL_EXECUTE:语音网关模块传入的事件“SPEECH CHANNEL_EXECUTE”到来时;判断当前会话状态若为暂停中,则不改变状态,否则会话状态转移到语音网关模块放音中,并产生对方正在沉默的指令;
4、AI CHANNE_EXECUTE_COMPLETE:语音网关模块传入的事件“SPEECH CHANNEL_EXECUTE_COMPLETE”到来时,将会话状态转移到语音网关模块未在放音;
5、AI ASR_START:语音网关模块传入的事件“SPEECH ASR_END”到来时,若当前状态处于语音网关模块放音中则产生一个对方打断语音网关模块说话的指令;AI会话引擎模块根据语音识别模块识别的打断话语,判断是否应该暂停语音网关模块放音,并将会话状态转移到暂停中或不转移状态:若暂停语音网关模块放音,则将会话状态转移到暂停中,并产生一个对方正在说话的指令发送到语音网关模块,若不暂停语音网关模块放音,则不转移会话状态;
6、AI ASR_END:会话状态转移到暂停时,根据语音网关模块返回的事件判断是否应该挂机或者产生一个主动发起对话的指令,并转移会话状态位到通话已结束或语音网关模块放音中;
7、AI HANGUP:任何一方主动挂断电话后产生该事件;
一种应用上述***的的自动应答方法,包括以下步骤:
步骤1.客户端模块与语音网关模块建立双向建立双向通讯通路,产生事件“SPEECH CONNET”;
步骤2.AI会话引擎模块,产生事件“AI CONNET”,产生初始化指令,读取话术、读取知识库、加载全局歧义词库,并将初始化指令回通过语音网关模块回传给客户端模块;
步骤3.客户端模块接听电话,产生事件“SPEECH CHANNEL_ANSWER”,语音网关模块接收客户端模块传送过来的发言信息,并将发言信息发送给AI会话引擎模块,进行话术知识的匹配;AI会话引擎模块产生事件“AI CHANNEL_ANSWER”;
步骤3a:将发言信息进行歧义词的纠正;歧义纠正包括同音词的纠正和同义词的纠正;
步骤3b:根据当前发言信息的会话节点的进度,获取发言信息中的话术关键词,通过使用正则表达式技术对发言信息的会话内容匹配意向分支;
若发言信息匹配到意向分支后,根据树形的数据存储结构,获取到连接的下一个话术节点;话术节点可分为普通节点、调整节点;
普通节点:为回答用户的话术,执行步骤4,可以增加发送短信的动作标记;
跳转节点:分为以下动作:1.跳转到下一个主流程节点,继续为用户回答话术,执行步骤4;2.调整到指定主流程节点,为用户回答话术,执行步骤4;3.挂机动作,结束本次会话;4.发送短信,发送用户需求的短信;
收集完话术节点的反馈动作后,将动作发送给语音网关模块进行执行;
若没有匹配到意向分支,则进行知识库的匹配;知识库主要分为2类:
普通知识库,对用户的业务问题进行反馈,执行步骤4;
***知识库,细分为3类:1.无法应答处理:用户的问题无法检索到答案,此时,AI会话引擎模块执行预设的语音播放动作,执行步骤4;2.打断处理:在AI会话引擎模块反馈动作执行中,用户中途打断,AI引擎将停止正在执行的动作,执行步骤5;3.重复动作处理:在用户没有听清或没有理解反馈的动作,AI会话引擎模块将之前的动作再重复执行一遍;
步骤4.语音网关模块产生事件“SPEECH CHANNEL_EXECUTE”,AI会话引擎模块产生事件“AI CHANNEL_EXECUTE”:AI会话引擎模块判断一段发言信息是否接收完毕;当一段发言信息接收完毕,AI会话引擎模块产生发起对话指令,将匹配的话术发送到语音网关模块,将会话状态转移到语音网关模块放音中;语音网关模块开始向客户端模块播放一段匹配的话术语音;然后执行步骤3;
步骤5.话术语音播放时,若语音网关模块监听到客户端模块的语音流传入,语音网关模块对语音流进行噪音过滤后,传输至AI会话引擎模块进行打断词过滤的操作;即语音网关模块产生事件“SPEECH ASR_START”和“SPEECH ASR_END”;如果语音流全为过滤词,则AI会话引擎模块不产生新的动作;如果语音流不全为过滤词,则AI会话引擎模块执行打断操作,将打断指令发送给语音网关模块,语音网关模块停止话术语音的播放,即AI会话引擎模块产生事件“AI ASR_START”和“AI ASR_END”,同时,执行步骤3。
进一步,步骤4中,AI会话引擎模块判断一段发言信息是否接收完毕,采用以下方法:
AI会话引擎模块,进行会话采样,预设一段时间T内设置N个采样点;N为总采样点的个数,其为固定采样点个数n1和随机采样点个数n2之和,即N=n1+n2;固定采样点的采样时间为:xt1±t2,其中,x为不大于n1的正整数,t1=T/n1;t2由随机函数产生的时间间隔,且0<t2<t1;随机采样点个数n2在时间T内随机采集,0<n2≤n1/2;
当数据记录为有声状态时,此为有效采样点;当数据记录为无声状态时,此为无效采样点;当有效采样点占总采样点的个数N的一半以上时,则判断发言信息未接收完毕,否则判断发言信息接收完毕。
本发明目的,是利用一种利用AI相关技术,实现机器与真人互动场景,对话界面满足电话、网络语音、IM消息等场景。本发明可以帮助企业建立智能客服体系,以绝大部分重复互动工作由机器执行,在机器为客户提供产品介绍和服务引导互动服务同时,帮助企业对互动中过程重要数据收集,为后续大数据分析提供数据基础。
相比当前行业中的同类产品,本发明的检索知识快速;接入形式多样化,可语音、文字或语音文字混合三者模式,也可扩展其他业务转接渠道;相比常规的智能接入语音更加灵活,使用面更加广泛。
附图说明
图1是本***的结构框图;
图2是本发明的流程图;
图3是话术处理时序图。
具体实施方式
一种应用于对话场景的自动应答***,包括客户端会话处理模块和AI会话引擎模块。
所述客户端会话处理模块,作为互动前向适配层,帮助场景对话前向内容识别与事件识别,包括客户端模块、语音网关模块。
所述客户端模块,为具有语音通讯功能的移动电话、座机,或者是可文字沟通的微信、微信公众号等社交工具。
所述语音网关模块,根据拨号计划主动发起或者接听通话,在电话接通后将根据客户端模块产生的一系列动作给出相应的ESL(Event Socket Library)事件下发到AI会话引擎模块,并从AI会话引擎模块接收并执行相应的动作。
语音网关模块,将客户端模块的各种渠道的通信协议转化为统一的通信协议,并进行事件识别,其在一路接通的通话的生命周期内会产生如下几个核心事件:
1、SPEECH CONNET:在和客户端模块建立通讯连接后产生该事件;
2、SPEECH CHANNEL_ANSWER:客户端模块接听电话后产生该事件;
3、SPEECH CHANNEL_EXECUTE:开始向客户端模块播放一段语音时产生该事件;
4、SPEECH CHANNEL_EXECUTE_COMPLETE:语音播放完毕后产生该事件;
5、SPEECH ASR_START:监听到客户端模块的语音流传入后产生该事件;
6、SPEECH ASR_END:客户端语音流传输完毕后产生该事件,该事件携带客户的ASR结果,即语音翻译结果。
7、SPEECH HANGUP:任何一方主动挂断电话后产生该事件。
一般情况下这些事件的产生都是相对有序的,且SPEECH CHANNEL_EXECUT、SPEECHCHANNEL_EXECUTE_COMPLETE多是成对的形式先后出现,SPEECH ASR_START、SPEECH ASR_END也多是成对的形式先后出现。最后出现的事件为SPEECH HANGUP。
语音网关模块具备事件产生能力和ASR(Automatic Speech Recognition)理解能力,可以将客户端模块传入的语音流转换为文字以事件的形式下发到AI会话引擎模块。例如,语音网关模块集成了语音识别模块,该语音识别模块可采用科大讯飞公司的 Aitalk2.0、InterReco 2.0 等。
所述AI会话引擎模块,记录及控制当前会话状态,以及结合语音网关模块传入的事件向对客户端会话处理模块下发不同的指令,内设对话控制模块、树形的数据存储结构、普通知识库和***知识库。数据存储结构为话术的存储部件。普通知识库为普通知识的存储部件。***知识库为***知识的存储部件,方便根据对话的领域需求,增减该领域的专业知识。
其中会话状态分为语音网关模块未在放音、语音网关模块放音中、语音网关模块暂停中、通话已结束。会话状态结合语音网关模块传入的事件可以产生的指令包含初始化、主动发起对话、对方说话内容、对方正在沉默、对方打断语音网关模块说话。
AI会话引擎模块的会话状态转移逻辑判断方案:
1、AI CONNET:语音网关模块传入的事件“SPEECH CONNET”到来时,产生初始化指令,发送到语音网关模块,此时不改变会话状态;
2、AI CHANNEL_ANSWER:语音网关模块传入的事件“SPEECH CHANNEL_ANSWER”到来时,产生对方说话内容的指令,发送到语音网关模块,此时将会话状态转移到语音网关模块未在放音;“SPEECH CHANNEL_ANSWER”结束后,执行话术,产生主动发起对话的指令;
3、AI CHANNEL_EXECUTE:语音网关模块传入的事件“SPEECH CHANNEL_EXECUTE”到来时;判断当前会话状态若为暂停中,则不改变状态,否则会话状态转移到语音网关模块放音中,并产生对方正在沉默的指令;
4、AI CHANNE_EXECUTE_COMPLETE:语音网关模块传入的事件“SPEECH CHANNEL_EXECUTE_COMPLETE”到来时,将会话状态转移到语音网关模块未在放音;
5、AI ASR_START:语音网关模块传入的事件“SPEECH ASR_END”到来时,若当前状态处于语音网关模块放音中则产生一个对方打断语音网关模块说话的指令;AI会话引擎模块根据语音识别模块识别的打断话语,判断是否应该暂停语音网关模块放音,并将会话状态转移到暂停中或不转移状态:若暂停语音网关模块放音,则将会话状态转移到暂停中,并产生一个对方正在说话的指令发送到语音网关模块,若不暂停语音网关模块放音,则不转移会话状态;
6、AI ASR_END:会话状态转移到暂停时,根据语音网关模块返回的事件判断是否应该挂机或者产生一个主动发起对话的指令,并转移会话状态位到通话已结束或语音网关模块放音中;
7、AI HANGUP:任何一方主动挂断电话后产生该事件。
一种应用于对话场景的自动应答***和逻辑方法,包括以下步骤:
步骤1.客户端模块与语音网关模块建立双向建立双向通讯通路,产生事件“SPEECH CONNET”;
步骤2.AI会话引擎模块,产生事件“AI CONNET”,产生初始化指令,读取话术、读取知识库、加载全局歧义词库,并将初始化指令回通过语音网关模块回传给客户端模块。
步骤3.客户端模块接听电话,产生事件“SPEECH CHANNEL_ANSWER”,语音网关模块接收客户端模块传送过来的发言信息,并将发言信息发送给AI会话引擎模块,进行话术知识的匹配;AI会话引擎模块产生事件“AI CHANNEL_ANSWER”。
步骤3a:将发言信息进行歧义词的纠正。歧义纠正包括同音词的纠正和同义词的纠正。
步骤3b:根据当前发言信息的会话节点的进度,获取发言信息中的话术关键词,通过使用正则表达式技术对发言信息的会话内容匹配意向分支。
若发言信息匹配到意向分支后,根据树形的数据存储结构,获取到连接的下一个话术节点;话术节点可分为普通节点、调整节点。
普通节点:为回答用户的话术,执行步骤4,可以增加发送短信的动作标记。
跳转节点:分为以下动作:1.跳转到下一个主流程节点,继续为用户回答话术,执行步骤4;2.调整到指定主流程节点,为用户回答话术,执行步骤4;3.挂机动作,结束本次会话;4.发送短信,发送用户需求的短信。
收集完话术节点的反馈动作后,将动作发送给语音网关模块进行执行。
若没有匹配到意向分支,则进行知识库的匹配;知识库主要分为2类:
普通知识库,对用户的业务问题进行反馈,执行步骤4;
***知识库,细分为3类:1.无法应答处理:用户的问题无法检索到答案,此时,AI会话引擎模块执行预设的语音播放动作,执行步骤4;2.打断处理:在AI会话引擎模块反馈动作执行中,用户中途打断,AI引擎将停止正在执行的动作,执行步骤5;3.重复动作处理:在用户没有听清或没有理解反馈的动作,AI会话引擎模块将之前的动作再重复执行一遍。
步骤4.语音网关模块产生事件“SPEECH CHANNEL_EXECUTE”,AI会话引擎模块产生事件“AI CHANNEL_EXECUTE”:AI会话引擎模块判断一段发言信息是否接收完毕;当一段发言信息接收完毕,AI会话引擎模块产生发起对话指令,将匹配的话术发送到语音网关模块,将会话状态转移到语音网关模块放音中;语音网关模块开始向客户端模块播放一段匹配的话术语音;然后执行步骤3。
AI会话引擎模块判断一段发言信息是否接收完毕,采用以下方法:
AI会话引擎模块,进行会话采样,预设一段时间T内设置N个采样点;N为总采样点的个数,其为固定采样点个数n1和随机采样点个数n2之和,即N=n1+n2。固定采样点的采样时间为:xt1±t2,其中,x为不大于n1的正整数,t1=T/n1;t2由随机函数产生的时间间隔,且0<t2<t1;随机采样点个数n2在时间T内随机采集,0<n2≤n1/2。
当数据记录为有声状态时,此为有效采样点;当数据记录为无声状态时,此为无效采样点。当有效采样点占总采样点的个数N的一半以上时,则判断发言信息未接收完毕,否则判断发言信息接收完毕。
例如,预设一段时间30秒内设置35个采样点;固定采样点个数n1为30个,随机采样点个数n2为5个。固定采样点其在每秒的前后t2内采集,随机采样点在30秒内随机采集。
此方法充分保证了采样点的随机性和均衡性。有些用户说话具有节奏感,如果固定采样点之间的时间间隔为确定数值时,两者容易产生重叠,容易导致连续几个采样点落于有声点或无声点。因此,传统的固定采样点具有片面性。本方法将固定采用点落于每固定时间间隔点t1的前后t2内采集,将固定时间间隔点t1布设于整段时间间隔T,且相邻固定采集点的时间间隔都具有随机性。
同时,本方法还设置随机采样点,从而避免了时间开始点或者时间结束点无法采样的弊病。例如:由于第一个采样点在(t1±t2),而0<t2<t1,导致时间开始点无法采样。若t2=t1,会导致产生连续3个相邻固定采样点落于同一点的可能,增加了重叠率,故t2≠t1。同时,随机采样点随机增加了采样密度,增加了采样的还原度。
步骤5.话术语音播放时,若语音网关模块监听到客户端模块的语音流传入,语音网关模块对语音流进行噪音过滤后,传输至AI会话引擎模块进行打断词过滤的操作;即语音网关模块产生事件“SPEECH ASR_START”和“SPEECH ASR_END”;如果语音流全为过滤词,则AI会话引擎模块不产生新的动作;如果语音流不全为过滤词,则AI会话引擎模块执行打断操作,将打断指令发送给语音网关模块,语音网关模块停止话术语音的播放,即AI会话引擎模块产生事件“AI ASR_START”和“AI ASR_END”,同时,执行步骤3。过滤词,为没有实质含义的词语,例如:嗯、啊、好的。
本发明可对接电话、微信、微博、网页IM等任何沟通类工具,可适应多套沟通工具;仅需要扩展对接工具方式,底层的智能问答引擎无需做修改集合适应;一次配置即可适用于企业电话客服,微信客服等多渠道场景;快速扩充用户交互渠道和体验,简化企业维护成本;
为了提高***整体的响应速度,以及可能的海量并发请求,事件处理模块和语音网关模块之间的通讯架构采用目前业界性能优异的Netty网络框架搭建。
在语音沟通的打断处理上,本发明相比传统的初始方式上做的更加人性化,对常规沟通中比如“对的”、“好的”等不需要打断的回答情况作了识别,不进行打断。
相比传统的的训练方式,本发明提供了更多的训练信息;包括知识点的匹配类别,关键词,歧义词,其他匹配到的意向分支、知识点及优先选择的知识点是哪一个;提高了训机师训练话术是排查问题的效率;
对话方式灵活,主动发起对话,或接收服务对话,仅仅是简单修改,均应落于本技术方案的框架内。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。