用于人机交互的通信方法
技术领域
本发明涉及通信技术领域,具体涉及用于人机交互的通信方法。
背景技术
人机交互过程中,用户所使用的智能设备会通过服务器与机器产生交互,如:用户通过智能设备控制机器的动作、行动路径等。同时,机器也需要与服务器进行数据和命名的交互。
例如,对于用户通过语音输入的内容,需要先通过将语音识别为文字,然后通过自然语言理解模块的处理,识别到用户意图,进而根据用户意图在相应的服务模块中处理后得到对用户输入的响应。因此,人机交互过程中,需要多次在联网设备间传输信息,如何保持同一条信息的原子性、可追踪性,和信息传递过程中的可靠性,是人机交互过程面临的新问题。
另外,用户通过智能终端语音输入的内容,也需要进行上述处理后,才能获得相应的输出。另外,用户通过智能终端发出的对机器的直接控制命令,需要由服务器转发给机器。因此,人机交互过程中,用户通过智能终端直接发出命令,此时服务器承担单纯的转发功能;用户通过语音输入需求时,服务器需要通过一系列处理方可在相应的服务模块获得对用户输入的响应(动作、语言、表情等多种响应方式)。
因此,人机交互过程中,机器与服务器及用户智能设备与服务器间的数据和命令交互虽然可以以现有的网络通信协议为基础,但是由于这一具体的使用场景有自身特定的需求,现有的通讯方式很难较好地适配人机交互这一具体场景。
发明内容
针对现有技术中的缺陷,本发明提供的用于人机交互的通信方法,通过制定新的通讯方式提出了适用于人机交互的通信方法,以保证人机交互更加高效地进行。
本发明提供了一种用于人机交互的通信方法,包括:
智能终端确定待发送信息的意图类型,其中,所述意图类型包括控制命令和其它意图,
将确定的意图类型写入TCP报文的参数部分中的第一数据位,将所述待发送信息写入TCP报文的数据部分,并添加TCP报头得到IP报文的数据部分,
生成IP报头,得到完整的IP报文并发送给到目标服务器;
所述目标服务器解析IP报文,从所述参数部分的第一数据位中获取所述意图类型,从所述数据部分获取待发送消息,
若所述意图类型为控制命令,则将所述待发送信息转发给机器人,
若所述意图类型为其它意图,则处理所述待发送信息获得对用户输入的响应信息,将所述响应信息发送给机器人。
本发明通过在智能终端发送的交互信息中加入信息对应的意图类型,使得服务器能够在收到交互信息后快速的根据意图类型将信息发送给对应对象,进行下一步处理,以保证人机交互更加高效地进行;最大限度的利用了TCP协议格式,兼容当前的网络协议,同时步增加信息发送量。
优选地,在生成IP报文前还包括:
智能终端根据所述待发送信息的输入源确定所述待发送信息的命令类型,所述命令类型包括语音输入和终端输入;
将确定的命令类型写入TCP报文的参数部分中的第二数据位;
还包括:
所述目标服务器从所述参数部分的第二数据位中获取所述命令类型,
若所述命令类型为语音输入,则通过自动语音识别将用户的语音输入转换为文字,通过自然语言理解分析所述文字包含的内容和用户意图,
若所述命令类型为终端输入,则直接根据用户意图进行相应操作。
优选地,在生成IP报文前还包括:
根据待发送信息的来源确定所述待发送信息的信息类型,所述信息类型包括:语音信息、语音转化而来的文本信息、语义分析后的意图或命令、来自智能终端的命令,
将确定的信息类型写入TCP报文的参数部分中的第三数据位和第四数据位;
还包括:
所述目标服务器从所述参数部分中的第三数据位和第四数据位中获取所述信息类型,
根据信息类型调用服务器中不同的处理模块。
优选地,所述生成IP报头,包括:根据所述信息类型确定目标服务器的IP地址,生成IP报头。
优选地,在生成IP报文前还包括:
智能终端确定所述待发送信息是否为紧急信息,并确定紧急级别,
若为紧急信息,将TCP报文的参数部分中的紧急数据位置1,并使用三位数据位和URG位标注紧急级别,
若不是紧急信息,将TCP报文的参数部分中的紧急数据位置0;
还包括:
所述目标服务器从所述TCP报文中的紧急数据位确定所述待发送信息的是否为紧急信息,
若为紧急信息,则从所述TCP报文中获取紧急级别,根据所述紧急级别确定处理信息的优先级。
优选地,在生成IP报文前还包括:
智能终端确定所述待发送信息需要调用的服务类型,
将确定的需要调用的服务类型写入TCP报文的参数部分中的服务标识位;
还包括:
所述目标服务器从所述TCP报文中的服务标识位确定所述待发送信息的需要调用的服务类型,并调用所述服务类型相应的处理模块。
优选地,还包括:
所述目标服务器根据智能终端接收到的TCP报文中的消息内容识别用户意图,并判断是否需要补充信息,若需要,对所述消息内容进行标记,并根据识别的用户意图生成追问语句,所述追问语句携带有补充标识,将所述追问语句反馈给智能终端;
所述智能终端在接收到所述追问语句后,将下一条待发送消息的TCP报文中参数部分的补充标志位置1后再发送给所述目标服务器;
所述目标服务器获取所述参数部分中的补充标志位的值,若所述补充标志位的值为1,则通过槽填充的方式从消息内容中提取相关信息并对之前标记的消息内容进行补充。
优选地,在生成IP报文前还包括:
智能终端将校验码写入TCP报文的参数部分中的校验位;
还包括:
所述目标服务器根据所述TCP报文中参数部分的校验位校验所述参数部分的数据。
附图说明
图1为本发明实施例所提供的一种用于人机交互的通信方法的流程图;
图2为本发明实施例所提供的一种用于人机交互的通信方法中使用的网络通信协议;
图3为本发明实施例所提供的一种用于人机交互的通信方法的优选实施例的流程图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
如图1所示,本实施例提供了一种用于人机交互的通信方法,包括:
步骤S1,智能终端确定待发送信息的意图类型,其中,所述意图类型包括控制命令和其它意图,将确定的意图类型写入TCP报文的参数部分中的第一数据位,将所述待发送信息写入TCP报文的数据部分,并添加TCP报头得到IP报文的数据部分,生成IP报头,得到完整的IP报文并发送给到目标服务器;
如图2所示,本实施例中,TCP报文的参数部分为TCP报文数据部分的前四个字节,每个字节包含8位数据,参数部分第一字节的第7位(即第一数据位)用于标识意图类型,例如“1”表示对机器的控制命令,“0”表示其它意图。当然,根据具体发送信息的要求,可以调节参数部分占用的字节数量,以及每个参数的具体位置。TCP报文数据部分的其余字节用于存储该条消息需要传递的消息内容。
步骤S2,所述目标服务器解析IP报文,从所述参数部分的第一数据位中获取所述意图类型,从所述数据部分获取待发送消息,若所述意图类型为控制命令,则将所述待发送信息转发给机器人,若所述意图类型为其它意图,则处理所述待发送信息获得对用户输入的响应信息,将所述响应信息发送给机器人。
本实施例通过在智能终端发送的交互信息中加入信息对应的意图类型,使得服务器能够在收到交互信息后快速的根据意图类型将信息发送给对应对象,进行下一步处理,以保证人机交互更加高效地进行;最大限度的利用了TCP协议格式,兼容当前的网络协议,同时步增加信息发送量。
在上述实施例的基础上,在生成IP报文前,步骤S1还包括:智能终端根据所述待发送信息的输入源确定所述待发送信息的命令类型,所述命令类型包括语音输入和终端输入;将确定的命令类型写入TCP报文的参数部分中的第二数据位。
相应的,步骤S2还包括:所述目标服务器从所述参数部分的第二数据位中获取所述命令类型,若所述命令类型为语音输入,则通过自动语音识别将用户的语音输入转换为文字,通过自然语言理解分析所述文字包含的内容和用户意图,若所述命令类型为终端输入,则不需要进行前述的各种分析过程,直接根据用户意图进行相应操作。其中,用户意图为该条消息中数据部分的消息内容。其中,终端输入是指该命令或意图是用户通过终端直接输入的。
其中,参数部分第一字节第6位(即第二数据位)表示待发送消息的命令类型,“0”表示待发送消息是通过语音输入的,“1”表示待发送消息是通过智能终端直接输入的命令。通过在智能终端发送的交互信息中加入信息对应的命令类型,使得服务器能够在收到交互信息后快速的根据命令类型对信息作出不同的处理,以保证人机交互更加高效地进行。
在上述实施例的基础上,在生成IP报文前,步骤S1还包括:根据待发送信息的来源确定所述待发送信息的信息类型,将确定的信息类型写入TCP报文的参数部分中的第三数据位和第四数据位。其中,所述信息类型包括:语音信息、语音转化而来的文本信息、语义分析后的意图或命令、来自智能终端的命令。
相应的,步骤S2还包括:所述目标服务器从所述参数部分中的第三数据位和第四数据位中获取所述信息类型,根据信息类型调用服务器中不同的处理模块。例如:处理语音信息时需要调用自动语音识别模块,处理文本信息需要调用自然语言理解模块进行分析,语义分析后的意图或命令需要调用与意图或命令对应的功能模块,来自智能终端的命令直接转发给机器人。
其中,参数部分第一字节第4、5两个位(即第三数据位和第四数据位)表示待发送消息的命令类型。通过在智能终端发送的交互信息中加入待发送信息对应的信息类型,使得服务器能够在收到交互信息后快速地根据信息类型调用合适的服务器和处理模块,以保证人机交互更加高效地进行。
在实际应用中,不同的处理模块会布置在不同的服务器中,在上述实施例的基础上,步骤S1中的所述生成IP报头,包括:根据所述信息类型确定目标服务器的IP地址,生成IP报头。例如:将语音信息发送给负责ASR(自动语音识别)的服务器、将语音转化未来的文本转发给负责自然语言理解的服务器、将各种命令或用户需要转发到负责相应服务模块的服务器,当服务模块与自然语言理解在同一服务器,也可以通过设置方便地在本地进行消息的传递。
在上述实施例的基础上,在生成IP报文前步骤S1还包括:智能终端确定所述待发送信息是否为紧急信息,并确定紧急级别,若为紧急信息,将TCP报文的参数部分中的紧急数据位置1,并使用三位数据位和URG位标注紧急级别,若不是紧急信息,将TCP报文的参数部分中的紧急数据位置0。
相应的,步骤S2还包括:所述目标服务器从所述TCP报文中的紧急数据位确定所述待发送信息的是否为紧急信息,若为紧急信息,则从所述TCP报文中获取紧急级别,根据所述紧急级别确定处理信息的优先级。
其中,参数部分第一字节第0位为紧急数据位,用于标识紧急位是否有效。如果第0位=1,则紧急位有效,TCP报头中的URG与参数部分第一字节第1-3位共同标识消息的紧急级别,则URG位+数据字段的1-3位表示当前消息的紧急级别。TCP报头中的紧急指针仍然标识TCP紧急字段的最后一个字节的序号。相当于复用并拓展了URG字段的定义,如果第0位=0,则URG位表示的含义不变,参数部分第一字节第1-3位全部为0。通过定义的多级紧急级别,可以让服务器按照紧急级别,优先处理紧急信息。
在上述实施例的基础上,在生成IP报文前,所述步骤S1还包括:智能终端确定所述待发送信息需要调用的服务类型,将确定的需要调用的服务类型写入TCP报文的参数部分中的服务标识位。
其中,服务类型具体可包括:闹钟提醒、音乐服务、新闻播放、知识检索、机器训练、天气查询、用户陪伴(闲聊)、预定服务(包括订餐、订票、购物、订房等)、机器控制命令等。
其中,TCP报文中参数部分的第二个字节定义为服务标识位,用以描述本消息需要调用的服务。
相应的,所述步骤S2还包括:所述目标服务器从所述TCP报文中的服务标识位确定所述待发送信息的需要调用的服务类型,并调用所述服务类型相应的处理模块。
如图2所示,本实施提供的方法还包括以下步骤:
步骤S101,所述目标服务器根据智能终端接收到的TCP报文中的消息内容识别用户意图,并判断是否需要补充信息,若需要,对所述消息内容进行标记,并根据识别的用户意图生成追问语句,所述追问语句携带有补充标识,将所述追问语句反馈给智能终端。
其中,被标记的消息会存储在服务器中,直到完成缺失信息的补全后再进行后续的处理,如进行意图识别等处理、调用相应的功能模块等。一旦缺失信息补全后,即可消除标记。
步骤S102,所述智能终端在接收到所述追问语句后,将下一条待发送消息的TCP报文中参数部分的补充标志位置1后再发送给所述目标服务器。
其中,TCP报文中参数部分的第三个字节的第0位为补充标志位,“0”表示是否该信息不是补充信息,“1”表示该消息为补充消息。其中,第三个字节的第1-7位表示本次通信意图。
步骤S103,所述目标服务器获取所述参数部分中的补充标志位的值,若所述补充标志位的值为1,则通过槽填充的方式从消息内容中提取相关信息并对之前标记的消息内容进行补充,若提取不到相关信息,则判断用户并未反馈补充信息,根据所述参数部分的其它数据位的信息,对消息内容进行处理。
其中,一旦缺失信息补全后,即可消除服务器中被标记的消息的标识,则后续不会再发送相应的追问语句。若一次追问无法补全缺失消息,或用户根本就未给出补充内容,则服务器会继续发送追问语句,直到完成补全或者达到预设的追问次数,在满足上述其中之一的条件时,消除服务器中被标记的消息的标识,结束此次追问任务。
其中,还可以通过第三个字节的第1-7位获取本次通信的通信意图,将此次通信意图与被标记的消息中的通信意图进行比较,快速确认是否为需要的补充消息。
通过在交互消息中添加补充标识位,帮助服务器快速判断此消息是否是补充消息,而不需要对每条消息都进行前后文的关联检索,提高了多轮会话的处理效率。当补充标志位标志这条信息为补充信息时,不需要经过自然语言理解,直接通过槽填充的方式从文字中提取相关的信息即可,如果提取不到所需的信息,则判断用户并未反馈补充信息,按之前的方式进行自然语言理解去分析用户输入和用户意图,即表示是开始了新一轮的对话。
例如,用户通过智能终端输入语音“我需要购买去北京的机票”,智能终端按上述方式生成消息发送到服务器;服务器在接收到该消息后,根据TCP报文的参数部分第一字节第6位获知该信息的命令类型为语音输入,则通过自动语音识别将用户的语音输入转换为文字,通过自然语言理解分析所述文字包含的内容和用户意图,并根据分析结果得知缺失信息,则将该消息标记为待补充消息,并生成追问语句“要订哪一天的航班?”反馈给智能终端;用户根据追问语句给出补充消息,如“明天”,智能终端会将明天这条消息发送给服务器,这条消息的补充标志位置“1”;服务器在收到“明天”这条消息后,会查验补充标志位,发现是“1”,则进行直接获取之前被标记的“我需要购买去北京的机票”这条信息,对相应缺失的时间进行补全。
其中,服务器根据第一字节第6位的数据获知为语音输入之后,需要进行语音识别,实际上,自动语音识别及后续的自然语言理解服务等功能模块可能是部署在别的服务器上。因此,与机器端进行信息交互的服务器中存储有记录各个功能模块所在的服务器地址的查询表,服务器可以通过查询表表获知部署有所需功能模块的服务器地址,进而将信息进行加工转发,并接收来自相应服务器的处理后的结果。本实施例中的负责与机器人链接交互信息的服务器根据自身存储的查询表和收到的信息类型确定信息下一步该如何转发,提高了信息转发效率。
在上述实施例的基础上,在生成IP报文前,所述步骤S1还包括:智能终端根据所述待发送信息确定是否期望后继信息,并确定本次通信意图,若有后继信息,将TCP报文的参数部分中的后继数据位置1,将所述本次通信意图写入TCP报文的参数部分中的消息意图数据位,若无后继信息,将TCP报文的参数部分中的后继数据位置0。
其中,TCP报文中参数部分的第三个字节的第0位为后继数据位,表示是否期望后继信息。第三个字节的第1-7位表示本次通信意图。
相应地,所述步骤S2还包括:所述目标服务器从所述TCP报文中获取后继数据位,若所述后继数据位为1,则获取上一次通信的消息意图,通过判断上次通信的意图与本次通信意图是否相同,确定本次消息是否包含上次通信缺失的信息。
例如:当用户提交预定服务但是未给足够的信息时,后继数据位应被置1。负责自然语言理解的服务器收到后继数据位为1的消息时,查找第三个字节第1-7位的信息,确认上一次通信的消息意图,通过判断上次通信的意图与本次通信意图是否相同,确定本次消息是否包含上次通信缺失的信息。
在上述实施例的基础上,在生成IP报文前。所述步骤S1还包括:智能终端将校验码写入TCP报文的参数部分中的校验位。其中,TCP报文中参数部分的第四字节为用于标识其之前的三个字节中有效的校验位。
相应地,所述步骤S2还包括:所述目标服务器根据所述TCP报文中参数部分的校验位校验所述参数部分的数据。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。