一种松耦合人机交互系统及方法
技术领域
本发明涉及人机交互技术领域,特别涉及一种松耦合人机交互系统及方法。
背景技术
目前,为了实现更复杂的交互,人机交互系统上面集成了越来越多的工作节点。通常这些工作节点会有其状态和产生的数据发送到中心控制单元,再由中心控制单元分析整个系统的运行状态,并向各个工作节点发送控制指令。
但,随着工作节点的增加,在上述的工作模式下,系统的整体运行状态和速度将会变得难以估计,系统的复杂程度和负担势必也因工作节点的增加而急剧增加。
发明内容
为了解决背景技术中存在的技术问题,本发明提出了一种松耦合人机交互系统及方法,采用分布式架构,打破了传统人机交互中各工作节点需要通过中心控制节点紧耦合工作的模式。
本发明第一方面提供一种松耦合人机交互系统,包括总线网络和连入总线网络的至少一个工作节点,每一所述工作节点均包括控制单元、任务执行单元和数据传输单元。
所述控制单元与任务执行单元连接,用于根据用户意图指令任务执行单元执行任务。
所述任务执行单元与控制单元和数据传输单元连接,用于将自身工作节点在运行过程中产生的命令、消息和数据封装为命令流、消息流和数据流,并根据控制单元的指令订阅和接收其他工作节点的命令流、消息流和数据流。
所述数据传输单元与总线网络和任务执行单元连接,用于将其自身工作节点的命令流、消息流和数据流传输至总线网络,并根据任务执行单元的指令将从总线网络上订阅的其他工作节点的命令流、消息流和数据流传输给任务执行单元。
所述总线网络用于承载各工作节点的命令流、消息流和数据流。
进一步地,每一所述工作单元中还包括状态检查单元,所述状态检查单元与控制单元和数据传输单元连接,用于综合数据传输单元和控制单元的状态得到其自身工作节点应该处于的状态。
各个工作节点为人机交互任务中承担输入、输出、感知、数据处理、任务调度、资源提供中的一种或多种功能的节点。
具体地,工作节点包括麦克风节点、扬声器节点、语音合成器节点、摄像头节点、VAD节点、唤醒节点、语音识别节点、语音理解节点和外部资源提取节点中的一种或几种。
进一步地,所述松耦合人机交互系统还包括对话管理节点,用于使用统计或规则的方式,解析用户输入,确定用户意图,并产生用于交互的回复信息。
进一步地,所述松耦合人机交互系统还包括任务调度节点,用于需要整合多工作节点产生的数据、命令和消息时,进行统一的控制逻辑设计并对任务进行调度。
进一步地,各工作节点经由数据传输单元传输的命令流、消息流和数据流带有时间戳。
进一步地,所述状态检查单元具有智能时序判断模块,用于对其接受的命令流、消息流和数据流进行同步和时序判断。
本发明第二方面提供一种松耦合人机交互方法,包括如下步骤:
S101、将各工作节点在与运行过程中产生的命令、消息和数据分别封装为命令流、消息流和数据流;并将命令流、消息流和数据流连入总线网络;
S102、各工作节点按需订阅自身和/或其他工作节点的命令流、消息流和数据流的信息;
S103、对各工作节点基于自身状态和订阅的命令流、消息流和数据流状态进行控制逻辑设计。
进一步地,所述一种人机交互方法还包括,使用统计或规则的方式,解析用户输入,确定用户意图,指导各工作节点应订阅何种命令流、消息流或数据流,并产生用于交互的回复信息。
基于上述技术方案的公开,本发明提供的所述松耦合人机交互系统及方法通过总线网络来完成数据信息的传递和控制,属于松耦合的分布式架构,打破了传统人机交互中各工作节点需要通过中心控制节点紧耦合工作的模式;且人机交互系统各个工作节点之间的关系可以由每个工作节点观察到的部分状态决定,这样工作节点的新增、更改或配置就仅需对工作节点相关逻辑进行编程,减少了整个系统的复杂度,节点间耦合度更低;并且基于定制的逻辑处理可以免除系统的中央控制节点的限制,进一步提高系统的反应速度。
附图说明
图1为本发明提出的一种松耦合人机交互系统的结构框图;
图2为实施例一提出的一种松耦合人机交互方法的流程图。
具体实施方式
下面结合附图对本发明的实施例进行详述。
请参阅图1,本实施例提供一种松耦合人机交互系统,包括总线网络1和连入总线网络的多个工作节点2以及对话管理节点3和任务调度节点4。
所述对话管理节点3用于使用统计或规则的方式,解析用户输入,确定用户意图,并产生用于交互的回复信息。
所述任务调度节点4用于需要整合多工作节点产生的数据、命令和消息时,进行统一的控制逻辑设计并对任务进行调度。
每一所述工作节点2均包括控制单元21、任务执行单元22、数据传输单元23和状态检查单元24。
所述控制单元21与任务执行单元22连接,用于根据用户意图指令任务执行单元22执行任务;所述任务执行单元22与控制单元21和数据传输单元23连接,用于将自身工作节点在运行过程中产生的命令、消息和数据封装为命令流、消息流和数据流,并根据控制单元21的指令订阅和接收其他工作节点的命令流、消息流和数据流;所述数据传输单元23与总线网络1和任务执行单元22连接,用于将其自身工作节点的命令流、消息流和数据流传输至总线网络1,并根据任务执行单元22的指令将从总线网络1上订阅的其他工作节点的命令流、消息流和数据流传输给任务执行单元22;所述总线网络1用于承载各工作节点的命令流、消息流和数据流;所述状态检查单元24与控制单元21和数据传输单元23连接,用于综合数据传输单元23和控制单元21的状态得到其自身工作节点应该处于的状态。
各个工作节点为人机交互任务中承担输入、输出、感知、数据处理、任务调度、资源提供中的一种或多种功能的节点。具体地,工作节点包括麦克风节点、扬声器节点、语音合成器节点、摄像头节点、VAD节点、唤醒节点、语音识别节点、语音理解节点和外部资源提取节点中的一种或几种。
各工作节点经由数据传输单元传输的命令流、消息流和数据流带有时间戳。
所述状态检查单元24具有智能时序判断模块,用于对其接受的命令流、消息流和数据流进行同步和时序判断。
工作时,首先将各工作节点在与运行过程中产生的命令、消息和数据分别封装为命令流、消息流和数据流;并将命令流、消息流和数据流连入总线网络1;
使用统计或规则的方式,解析用户输入,确定用户意图,指导各工作节点应订阅何种命令流、消息流或数据流,并产生用于交互的回复信息;
各工作节点按需订阅自身和/或其他工作节点的命令流、消息流和数据流的信息;
对各工作节点基于自身状态和订阅的命令流、消息流和数据流状态进行控制逻辑设计。
实施例一
请参阅图2。
S101:将人机交互系统的各工作节点在运行过程中产生的命令、消息和数据分别封装为命令流、消息流和数据流,将命令流、消息流和数据流连入总线网络。
在步骤S101中,人机交互系统包括麦克风工作节点1101、VAD工作节点1102、语音识别和对话文本生成工作节点1103、语音合成工作节点1104、扬声器工作节点1105。
命令流包括停止录音1111、开始生成合成音1112、开始播放合成音1113等命令。
消息流包括麦克风开始录制1121、麦克风录制结束1122、扬声器播放开始1123、扬声器播放结束1124、语音合成开始1125、语音合成结束1126、对话文本生成完毕1127等消息。
数据流包含麦克风录制音频1131、扬声器需要播放的音频1132、语音合成的文本1133等数据。
S102:为人机交互系统的各节点按需订阅命令流、消息流和数据流消息。
在步骤S102中,
麦克风工作节点1101订阅停止录音1111命令、扬声器播放结束1124消息。
VAD工作节点1102订阅麦克风开始录制1121消息、麦克风录制音频1131数据。
语音识别和对话文本生成工作节点1105定制麦克风开始录制1121消息、麦克风录制结束1122消息、麦克风录制音频1131数据。
语音合成工作节点1104订阅开始生成合成音1112命令、语音合成的文本1133数据。
扬声器工作节点1103订阅开始播放合成音1113命令、扬声器需要播放的音频1132数据。
S103:对各节点基于自身状态和订阅的命令流、消息流和数据流状态进行控制逻辑设计。
在步骤S103中,设计各节点逻辑如下:
麦克风工作节点1101在系统开启或者接收到扬声器播放结束1124消息后开始录音,并生成麦克风录制音频1131数据,发出麦克风开始录制1121消息。
麦克风工作节点接收到停止录音1111命令后停止录音,发出麦克风录制结束1122消息。
VAD工作节点1102接收到麦克风开始录制1121消息后开始监控麦克风录制音频1131数据,在检测到语音停止时发送停止录音1111命令。
语音识别和对话文本生成工作节点1103收到麦克风开始录制1121消息后开始进行语音识别,并将结果存在节点内部,当收到麦克风录制结束1122消息后,停止语音识别。待语音识别结果完成后,进行对话文本生成。生成完成对话文本后,发出对话文本生成完毕1127消息,并将生成的对话文本以语音合成的文本1133数据形式发出。最后发出开始生成合成音1112命令。
语音合成工作节点1104收到开始生成合成音1112命令后,对语音合成的文本数据进行语音合成。合成结束后,发出语音合成结束1126消息,发出扬声器需要播放的音频1132数据,最后发出开始播放合成音1113命令。
扬声器工作节点1105接收到开始播放合成音1113命令后,将总线中的扬声器需要播放的音频1132数据播放出来。待播放结束后,发出扬声器播放结束1124消息。
该实施例1完成了一个简单的语音对话系统,在实施例中,整个系统不需要进行集中控制,即可完成整个交互操作。
实施例二(未图示)
S101:将人机交互系统的各工作节点在运行过程中产生的命令、消息和数据分别封装为命令流、消息流和数据流,将命令流、消息流和数据流连入总线网络。
在步骤S101中,人机交互系统包括麦克风工作节点、回声消除工作节点、VAD工作节点、语音识别和对话文本生成工作节点、语音合成工作节点、扬声器工作节点、知识资料库工作节点。
命令流包括开始生成合成音、开始播放合成音、知识获取等命令。
消息流包括扬声器播放开始、扬声器播放结束、语音合成开始、语音合成结束、对话文本生成完毕、检测到语音开始、检测到语音结束、检索到知识资料等消息。
数据流包含麦克风录制音频、回声消除后音频、扬声器需要播放的音频、语音合成的文本、检索请求、知识资料等数据。
S102:为人机交互系统的各节点按需订阅命令流、消息流和数据流消息。
在步骤S102中,麦克风工作节点不订阅消息。
回声消除工作节点订阅麦克风录制音频数据、扬声器需要播放的音频数据。
VAD工作节点订阅回声消除后音频数据。
语音识别和对话文本生成工作节点定制检测到语音开始消息、检测到语音结束消息、检索到知识资料消息、回声消除后音频数据、知识资料数据。
语音合成工作节点订阅开始生成合成音命令、语音合成的文本数据。
扬声器工作节点订阅开始播放合成音命令、扬声器需要播放的音频数据。
知识资料库工作节点订阅知识获取命令和检索请求数据。
S103:对各节点基于自身状态和订阅的命令流、消息流和数据流状态进行控制逻辑设计。
在步骤S103中,设计各节点逻辑如下:
麦克风工作节点始终开启录音,并生成麦克风录制音频数据;回声消除工作节点始终接受麦克风录制音频数据和扬声器需要播放的音频数据,并将麦克风录制音频数据中扬声器需要播放的音频数据消除掉,得到用户实际的声音,生成回声消除后音频数据;VAD工作节点始终监控回声消除后音频数据,在检测到语音开始时发送检测到语音开始消息,在检测到语音停止时发送检测到语音停止消息;语音识别和对话文本生成工作节点收到检测到语音开始消息后开始进行语音识别,并将结果存在节点内部,在收到语音停止消息后,停止语音识别。待语音识别结果完成后,根据识别内容发出知识获取命令和检索请求数据;语音识别和对话文本生成工作节点收到检索到知识资料消息后,根据知识资料数据进行对话文本生成。生成完成对话文本后,发出对话文本生成完毕消息,并将生成的对话文本以语音合成的文本数据形式发出。最后发出开始生成合成音命令;知识资料库工作节点收到知识获取命令后,根据检索请求数据进行知识检索,检索完成后,发出检索到知识资料消息,并将检索到的知识以知识资料数据形式发出;语音合成工作节点收到开始生成合成音命令后,将语音合成的文本数据读出,进行语音合成。合成结束后,发出语音合成结束消息,发出扬声器需要播放的音频数据,最后发出开始播放合成音命令;扬声器工作节点接收到开始播放合成音命令后,将总线中的扬声器需要播放的音频数据播放出来。待播放结束后,发出扬声器播放结束消息;扬声器工作节点在播放过程中,如果收到了检测到语音开始消息,则认为用户进行了打断操作,此时停止播放音频,并发出扬声器播放结束消息。
该实施例完成了一个可以支持用户打断、支持从外部知识库获取内容的语音对话系统。实施例二相比于实施例一增加了几个交互节点,整个系统变得更加实用;相关的修改和定制仅需要在增加的这几个节点进行即可,这也体现了该发明提供的松耦合人机交互系统及方法的优势。
综上,本发明提供的所述松耦合人机交互系统及方法通过总线网络来完成数据信息的传递和控制,属于松耦合的分布式架构,打破了传统人机交互中各工作节点需要通过中心控制节点紧耦合工作的模式;且人机交互系统各个工作节点之间的关系可以由每个工作节点观察到的部分状态决定,这样工作节点的新增、更改或配置就仅需对工作节点相关逻辑进行编程,减少了整个系统的复杂度,节点间耦合度更低;并且基于定制的逻辑处理可以免除系统的中央控制节点的限制,进一步提高系统的反应速度。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。