机器人对话系统和机器人对话系统的控制方法与流程

文档序号:17652073发布日期:2019-05-15 21:31阅读:286来源:国知局
机器人对话系统和机器人对话系统的控制方法与流程

本发明涉及与使用者进行交流的同时提供服务的机器人的对话系统。



背景技术:

近年来,存在于与人类相同的空间中、提供各种服务的服务机器人得到广泛开发。开发服务机器人所进行的服务的人(以下称为服务开发者)往往利用服务机器人制造商提供的开发环境和脚本(scenario)生成工具来进行开发。

针对熟悉服务机器人的服务开发者,提供更低等级的api。而针对不熟悉服务机器人的服务开发者,提供可通过简单的语言或gui来表达服务的脚本生成工具。对于服务机器人的普及,服务开发的难易是重要的因素。

另一方面,存在服务机器人因语音识别错误而误解用户意图并因基于其行动而对用户造成较大不便的可能性。服务机器人要进行遵从服务开发者的意图的行动,并且还要以尽可能地不造成这种不便状况的方式行动。

例如在专利文献1中公开了根据对话内容推测状况并输出该状况的自动对话生成方法。

例如专利文献2中公开了推测用户或代理人(agent)的状态来生成符合状态的应答文字的对话文字生成方法。

现有技术文献

专利文献

专利文献1:日本特开2006-172280号公报

专利文献2:国际公开第2014/073612号公报

专利文献3:国际公开第2014/073613号公报



技术实现要素:

发明要解决的课题

在不熟悉服务机器人的服务开发者利用脚本生成工具进行服务开发的情况下,难以充分地预想到服务机器人错误地识别用户意图、对用户造成不便的情况。

例如,服务机器人因听错用户要引导去的地点而引导到错误的地点会对用户造成较大的负担。此外,即使注意到对用户造成负担的情况,也难以利用脚本生成工具来实现避免用户负担的服务机器人脚本。

在上述专利文献1中虽然公开了输出根据对话内容推测的状况的自动对话生成方法,但并没有提供对比服务机器人进行的对话的内容与机器人所处的环境的状况来采取合适的行动的方法。

此外,专利文献2虽然推测用户或代理人的内部状态来进行应答文字的生成,但并没有提供基于服务机器人要获取的信息和服务机器人所处的环境的状况来进行行动的控制的方法。

因此,本发明鉴于上述问题点而提出,以基于服务机器人所处的环境来控制服务机器人的行动为目的。

用于解决课题的技术方案

本发明为一种机器人对话系统,包括:能够与使用者进行对话的机器人,其具有处理器和储存装置;控制所述机器人的对话服务器,其具有处理器和存储装置;和连接所述对话服务器与所述机器人的网络,所述机器人包括:通过语音信息来与所述使用者进行对话的语音信息对话部;接收移动目的地并使机器人移动至该移动目的地的移动装置;和控制部,其将所述语音信息对话部接收到的发言内容和基于发言内容计算出的置信度发送至所述对话服务器,并从所述对话服务器接收对应于该发言内容的行动来控制所述语音信息对话部和所述移动装置,所述对话服务器包括:相应于发言内容预先设定了要使所述机器人执行的行动的脚本信息;相应于所述行动的种类预先设定了所述机器人的行动成本的成本信息;保存所述机器人的状态的状态信息;从所述机器人接收所述发言内容和所述置信度来决定要使所述机器人执行的行动并向所述机器人发出指令的机器人控制部;和基于所述成本信息和所述状态信息计算所述机器人的行动成本的成本计算部,所述机器人控制部在所述状态信息中保存与从所述机器人接收到的发言内容对应的行动和置信度,选择所述状态信息中的置信度最高的行动作为新行动,使所述成本计算部计算在所述机器人的当前状态下执行新行动时的成本,并且选择去除了置信度最高的行动后的候选的组合作为新行动的候选,使所述成本计算部计算在所述机器人的当前状态下执行新行动的候选时的成本,选择所述成本最小的行动或行动的候选作为新行动。

发明效果

通过本发明,可生成如下脚本:在服务机器人基于误解了用户意图的判断而采取行动之前,自动地进行减少该行动可能导致的成本的其它行动。由此,能够基于服务机器人所处的环境来控制服务机器人的行动。此外,由于基于服务开发者生成的脚本自动地生成可减少成本的脚本,因此能够抑制对用户造成的负担,能够提供抑制用户不满的服务机器人。

附图说明

图1为表示本发明的实施例、表示移动机器人的对话系统的一个例子的图。

图2为表示本发明的实施例、表示服务机器人的结构的一个例子的框图。

图3为表示本发明的实施例、表示服务机器人的主程序的一个例子的流程图。

图4为表示本发明的实施例、表示服务机器人的语音识别程序的一个例子的流程图。

图5为表示本发明的实施例、表示服务机器人的语音合成程序的一个例子的流程图。

图6为表示本发明的实施例、表示服务机器人的移动程序的一个例子的流程图。

图7为表示本发明的实施例、表示机器人对话服务器的结构的一个例子的框图。

图8为表示本发明的实施例、表示机器人控制程序的一个例子的流程图。

图9为表示本发明的实施例、表示成本计算程序的一个例子的流程图。

图10a为表示本发明的实施例、表示状态表的一个例子的图。

图10b为表示本发明的实施例、表示状态表的一个例子的图。

图11为表示本发明的实施例、表示脚本生成装置的结构的一个例子的框图。

图12为表示本发明的实施例、表示由脚本生成装置生成的主脚本的一个例子的框图。

图13a为表示本发明的实施例、表示由脚本生成装置生成的副脚本的一个例子的框图。

图13b为表示本发明的实施例、表示由脚本生成装置生成的副脚本的一个例子的框图。

图14为表示本发明的实施例、表示成本表的一个例子的图。

图15为表示本发明的实施例、表示脚本生成程序的一个例子的流程图。

图16为表示本发明的实施例、表示脚本生成装置提供的用户界面的一个例子的图。

图17为表示本发明的实施例、表示脚本的一个例子的图。

具体实施方式

以下基于附图对本发明的实施方式进行说明。

图1为表示本发明的实施例、表示移动机器人的对话系统的一个例子的图。

在本实施例中,作为进行服务的环境包括通路11a、通路11b、阶梯12、厕所13a、厕所13b。服务机器人20a、服务机器人20b和机器人对话服务器30配置在上述环境中,向用户(使用者)40提供规定的服务。

机器人对话服务器30连接到设置在开发环境1内设置的脚本生成装置50。脚本生成装置50由服务开发者60使用。服务机器人20a、20b与机器人对话服务器30通过无线ip网络15连接,机器人对话服务器30与脚本生成装置50通过有线ip网络(省略图示)连接,为可进行数据传输的状态。

图2为表示服务机器人20的结构的一个例子的框图。此外,由于服务机器人20a、20b为相同的结构,因此以下使用记号20进行说明。

总线210与存储装置220、cpu221、nif(networkinterface,网络接口)222、麦克风223、扬声器224、摄像机225、lidar(lightdetectionandranging,光探测与测距装置)226、移动装置227相互连接,中继数据信号,因此可使用通用pc中所用的规格(pcie等)。

存储装置220保存后述的程序和数据,因此可使用dram、hdd或ssd等。

cpu221按照程序来控制存储装置220、nif222、麦克风223、扬声器224、摄像机225、lidar226、移动装置227,因此可使用通用cpu(例如sh-4处理器)或芯片控制器。

nif222为进行与其它装置的通信的网络接口,因此可使用通用的扩展坞。

麦克风223收录服务机器人20周围的语音,例如可使用电容麦克风和a/d转换器。扬声器224将电信号变换成语音。

摄像机225为拍摄服务机器人20周围的图像的装置。例如包含ccd和透镜等而构成。

lidar226为发射可见光等电磁波并通过测量其反射波来测量到观测平面上各方向的障碍物(或物体)的距离的装置。移动装置227包含用于在环境内移动的动力和驱动装置。

存储装置220中加载了控制服务机器人20的主程序231、将来自麦克风223的语音变换成文本的语音识别程序232、将文本数据变换成语音并从扬声器224输出的语音合成程序233、控制移动装置227使服务机器人20移动的移动程序234,由cpu221执行。

cpu221通过按照各功能部的程序来处理,作为提供规定功能的功能部而运行。例如,cpu221通过按照语音识别程序232进行处理来起到语音识别部的功能。针对其他程序也相同。进一步地,cpu221也作为提供各程序执行的多个处理的各自的功能的功能部而运行。计算机和计算机系统为包含这些功能部的装置和系统。

实现服务机器人20的各功能的程序、表格等信息可保存在存储子系统或在非易失性半导体存储器、硬盘驱动器、ssd(solidstatedrive,固态硬盘)等存储设备,或者在ic卡、sd卡、dvd等计算机可读取的非临时性数据存储介质中。

此外,也可将语音识别程序232与语音合成程序233合并作为语音信息对话部。

图3为表示服务机器人20的主程序231的一个例子的流程图。此外,以下的说明中,以程序为处理的主体进行了说明,也可将服务机器人20更换为处理的主体。

主程序231在服务机器人20起动时执行,在分别起动语音识别程序232、语音合成程序233和移动程序234后结束(s101~s105)。

图4为表示服务机器人20执行的语音识别程序232的一个例子的流程图。

语音识别程序232从麦克风223获取语音(s202)。

语音识别程序232对获取的语音进行语音识别(s203)。关于语音识别程序232的语音识别处理,由于可采用众所周知或公开的技术,因此不进行详述。

语音识别程序232将作为语音识别结果的文本和置信度作为服务机器人20的事件(语音识别事件)通过nif222发送到机器人对话服务器30(s204)。此外,关于语音识别的结果的置信度的计算,由于可采用众所周知或公开的技术,因此本例不进行详述。

语音识别程序232如果满足规定的结束条件则结束处理((s2305)s305),如果并非如此,则返回步骤s202反复上述处理。此外,所述结束条件例如为服务机器人20的电源切断或休眠等。

通过上述处理,服务机器人20将从用户40接收到的发言变换成文字发送至机器人对话服务器30。

图5为表示由服务机器人20执行的语音合成程序233的一个例子的流程图。

语音合成程序233通过nif222从机器人对话服务器30接收文字(s302)。

接着,语音合成程序233合成所接收到的文本的语音(s303)。关于语音合成程序233的语音合成处理,由于可采用众所周知或公开的技术,因此本例不进行详述。

接着,语音合成程序233将合成的语音从扬声器224输出(s304)。

语音合成程序233如果满足规定的结束条件则结束处理,如果并非如此,则返回步骤s302反复上述处理(s305)。此外,规定的结束条件例如为服务机器人20的电源切断或休眠等。

通过上述处理,服务机器人20将从机器人对话服务器30接收到的文本变换成语音并从麦克风扬声器224输出,与用户40进行对话。

图6为表示服务机器人20执行的移动程序234的一个例子的流程图。

移动程序234通过nif222从机器人对话服务器30接收文本,设定接收到的文本中记载的目的地(s402)。从机器人对话服务器30接收到的文本上可附加识别变换成语音的文本与设定目的地的文本的信息。或者,服务机器人20也可从机器人对话服务器30接收语音变换命令和目的地设定命令,识别文本的变换。

移动程序234将向目的地的移动命令发送到移动装置227。移动程序234反复步骤s403的处理,直到移动完成(s403、s404)。

移动程序234在移动装置227的移动结束后,通过nif222将移动完成事件发送至机器人对话服务器30(s405)。

移动程序234如果满足规定的结束条件则结束处理,如果并非如此,则返回步骤s402反复上述处理(s406)。此外,规定的结束条件例如为服务机器人20的电源切断或休眠等。

通过上述处理,服务机器人20将从机器人对话服务器30接收到的文本设定为目的地,通过移动装置227移动到所指定的目的地。

图7为表示机器人对话服务器30的结构的一个例子的框图。

总线310与存储装置320、cpu321、nif322相互连接并中继数据信号,因此可使用通用pc中使用的规格(pcie等)。

存储装置320保存后述的程序和数据,因此可使用dram、hdd或ssd。

cpu321按照程序来控制存储装置320、nif322,因此可使用通用cpu(例如sh-4处理器)或芯片控制器。

nif322为与其它装置进行通信的网络接口,可使用通用的扩展坞。

存储装置220中加载了控制服务机器人20的机器人控制程序331和计算与服务机器人20的行动相关的成本的成本计算程序332,通过cpu321执行。

此外,存储装置220中保存了状态表(状态信息)341、成本表342和脚本343作为上述程序使用的数据。

cpu321通过按照各功能部的程序进行处理,作为提供规定功能的功能部而运行。例如,cpu321通过按照机器人控制程序331进行处理来起到机器人控制部的功能。针对其他程序也相同。进一步,cpu321也作为提供各程序执行的多个处理的各自的功能的功能部而运行。计算机和计算机系统为包含这些功能部的装置和系统。

实现机器人对话服务器30的各功能的程序、表格等信息可保存在存储子系统,或者在非易失性半导体存储器、硬盘驱动器、ssd(solidstatedrive,固态硬盘)等存储设备,或者在ic卡、sd卡、dvd等计算机可读取的非临时性数据存储介质中。

图8为表示机器人控制程序331的一个例子的流程图。其中,以下的说明中,以程序为处理的主体进行了说明,也可将机器人对话服务器30更换为处理的主体。

首先,机器人控制程序331从服务机器人20接收事件(文本)(s502)。

机器人控制程序331在服务机器人20的语音识别程序232发来的语音识别事件的情况下,将从服务机器人20接收到的语音识别结果(文本和置信度)写入状态表341(s503、s505)。机器人控制程序331生成状态表341并将接收到的文本(发言内容)保存在候选值3412中,将置信度保存在置信度3413中。

机器人控制程序331在接收到服务机器人20的移动程序234发出的移动结束事件的情况下,将该移动结果(移动结束事件)写入状态表341中(s504、s505)。

接着,机器人控制程序331执行步骤s506~s510的循环(r循环)处理。

机器人控制程序331参照脚本343针对以当前位置为开始状态的所有状态转移规则,判断接收到的事件是否匹配(s507)。

机器人控制程序331在接收到的事件匹配状态转移规则的情况下,将当前状态更新为该状态转移规则的转移目标状态,执行该状态中记录的动作(s508)。

机器人控制程序331在动作为say的情况下,向服务机器人20的语音合成程序233发生文本。此外,机器人控制程序331在动作内容为moveto的情况下,向服务机器人20的移动程序234发生文本(s509)。此外,机器人控制程序331在动作内容为成本计算的情况下,调用后述的成本计算程序332。

机器人控制程序331如果满足规定的结束条件则结束处理,如果并非如此,则返回步骤s506重复上述处理(s510)。此外,规定的结束条件例如为机器人对话服务器30的电源切断或休眠等。

通过上述处理,机器人对话服务器30基于从服务机器人20接收到的事件决定动作,将包含动作内容的文本发送到服务机器人20,进行服务机器人20的控制。

图9为表示成本计算程序332的一个例子的流程图。

首先,成本计算程序332执行步骤s602~s604的循环(x循环),针对状态表341(图10a、参考图10b)中的各项目名3411的每个种类中候选值3412的组合,计算置信度r(3413)和差异成本c。

成本计算程序332在针对状态表341的各项目名3411完成差异成本c和置信度r的计算后,进入步骤s605,如果并非如此,则返回步骤s602,重复上述处理(s604)。

成本计算332求出各项目名3411的各候选值3412的置信度的乘积作为语音识别结果的置信度r。

例如,在图10(a)中,置信度r(目的=引导、位置=厕所)=0.95×0.7=0.665。

例如,在图10(b)中,置信度r(目的=概要、位置=进餐)=0.7×0.5=0.35。

差异成本c为实施各项目名3411的候选值3412的组合时状态表341的差异成本的期望值cavg。差异成本的期望值cavg通过下式计算。下式的x为各项目名3411的候选值3412的组合的集合。

【式1】

对于状态表341的差异成本c,是针对实施最大置信度argmaxr的候选值3412的组合时的状态表341与实施该组合时的状态表341的差异,由成本计算程序332根据成本表342中记录的成本的总和来计算。

此外,最大置信度argmaxr表示状态表341的置信度3413中使每个项目名3411为最大的值。

此外,机器人对话服务器30为服务机器人20的每个会话(连接)生成状态表341,状态表341的差异例如可为状态表341的上次值与当前值的差。

例如,在图10(a)中,每个项目名3411的最大置信度argmaxr的候选值3412的组合为“目的=引导,位置=厕所”,此时的差异成本(目的=引导,位置=厕所)c=0。即,在图14的成本表541中,由于位置=position相同,目的=say(发言的内容)相同,因此没有差异。

另一方面,在图10(a)中,对于目的和位置,在执行图10(b)的组合的情况下,差异成本c(目的=概要,位置=进餐)=100+1=101。在图14的成本表541中,由于位置=position不同,因此成本5412=100,由于目的=say(发言的内容)不同,因此成本5412=1。

例如在图10(b)中,最大置信度的候选值3412的组合为“目的=概要,位置=进餐”,此时差异成本c(目的=概要,位置=厕所)=1。在图14的成本表541中,由于位置=position相同,仅目的=say(发言的内容)不同,因此成本5412=1。

期望值成本cexp可如下式所示作为最大置信度argmaxr之外的成本之和来计算出(s605)。

【式2】

成本计算程序332判断期望值成本大于规定的阈值,将该结果作为本程序的结果返回(s606)。此外,成本计算程序332也可不进行期望值成本cexp与阈值的比较,而是针对目的与位置的组合,将与当前状态表341的差异成本c的计算结果输出到机器人控制程序331。

通过上述处理,成本计算程序332计算出反映服务机器人20的状态的状态表341、成本c和置信度r,进一步地计算出期望值成本cexp。然后,成本计算程序332向机器人控制程序331通知期望值成本cexp是否超过规定阈值(或者目的和位置的组合与当前状态表341的差异成本c的计算结果)。

此外,成本计算程序332也可将服务机器人20基于脚本343向用户40说话时的语句的文本差异(例如作为语句的字符串的距离)或内容差异(例如将语句映射到语义空间时的距离等)为基准来计算成本。

此外,作为语句的文本,也可使用基于编辑距离(也称为莱文斯坦距离)的距离。编辑距离的计算通过众所周知或公开的方法进行即可。具体地可如下地计算。

l(a,b)=min(s(a,b)+i(a,b)+d(a,b))

其中s(a,b)、i(a,b)、d(a,b)分别为将a变成b的文字替换成本、文字插入成本、文字删除成本。

此外,作为内容的差异,例如将基于从语句提取出的特征(单词、单词序列、词性等)的多维特征向量映射到预先定义的多维空间。然后,可使用该空间中每个文字的距离(直线距离等)。

图10a为表示图10b的状态表341的一个例子的图。

状态表341包含项目名3411、候选值3412、置信度3413的栏,保存表示服务机器人20的状态的信息。此外,分别针对每个服务机器人20a、20b为每个会话生成状态表341。

对于项目名3411,候选值3412表示项目名3411可取的值,置信度3413为表示项目名3411确信为该候选值3412的程度的数值。

状态表341中,服务机器人20掌握的自身状态和通过与用户40的对话等得到的用户状态与置信度3413一起保存。此外,如上所述,为各服务机器人20a、20b的每个会话生成状态表341。

图11为表示脚本生成装置50的结构的一个例子的框图。

总线510与存储装置520、cpu521、nif522、显示屏523、键盘524、鼠标525相互连接,中继数据信号,因此可使用通用pc中所用的规格(pcie等)。

存储装置520保存后述的程序和数据,因此可使用dram、hdd或ssd等。

cpu521按照程序来控制存储装置520、nif522,因此可使用通用cpu(例如sh-4处理器)或芯片控制器。

nif522为进行与其它装置的通信的网络接口,因此可使用通用的扩展坞。

显示屏523为由平板显示屏等构成的输出装置。键盘524、鼠标525为输入装置。

存储装置520中加载了脚本生成程序531,由cpu521执行。此外,存储装置520中保存脚本生成程序531使用的成本表541和脚本542。此外,成本表541和脚本542与机器人对话服务器30的成本表342和脚本343为同样结构。

图12为表示由脚本生成这种50生成的主脚本550的一个例子的图。此外,图12的主脚本550和图13a、图13b的副脚本560被包含在脚本542(343)中。

主脚本550由状态转移图表示。状态转移图由多个状态与状态转移规则组成。状态转移规则由移动源状态、移动目的地状态和规则构成,在移动源状态中发生与规则一致的事件时转移到移动目的地状态。

图12的主脚本550表示由等待节点n10、对话节点n11、引导开始节点n12、引导结束通知节点n13、返回节点n14等5个节点构成的例子。对话节点n11可包含设定一系列处理的副脚本560。

主脚本550在待机节点n10中服务机器人20等待来自用户40的询问。服务机器人20接收来自用户40的发言,执行语音识别,机器人控制程序331根据发言的内容转移到状态的转移目标(转移目标状态)。例如,语音识别的结果为“请引导到厕所”的情况下,机器人控制程序331基于规定的规则(s52),转移到引导开始节点n12,向服务机器人20发出指令,就用户40引导到厕所13a。

此外,语音识别的结果为“厕所在哪里”等询问的情况下,机器人控制程序331基于规定的规则(s51)转移到对话节点n11,向服务机器人20发出指令,通过语音合成将用户40引导到厕所13a的位置。对话节点n11中的语音识别的结果为用户40要求到厕所13a的引导的情况下,机器人控制程序331转移到引导开始节点n12,向服务机器人20发出指令,将用户40引导到厕所13a(s54)。

服务机器人20在至目的地的引导结束后,向机器人对话服务器30发送引导结束通知,机器人控制程序331转移到引导结束通知节点n13。机器人控制程序331在规定时间内未接收到来自用户40的询问的情况下,超时(s56)并转移到返回节点n14。在返回节点n14,机器人控制程序331使服务机器人20移动到规定位置,结束返回(s57),返回待机节点n10。

此外,在对话节点n11中,在规定时间内未接收到来自用户40的询问的情况下,超时(s55)并转移到待机节点n10。

图13a、图13b为表示由脚本生成装置50生成的副脚本560的一个例子的图。

副脚本560定义了主脚本550中对话节点n11的处理内容。图13a表示编辑后的副脚本560的一个例子。图13b表示通过脚本生成程序531在对话结束节点之前增加成本计算节点的例子。

图13a为定义图12所示的对话节点n11的详细处理的副脚本560,表示服务开发者60完成编辑后状态。

副脚本560由判断对话的目的是否为引导的判断节点n112、在对话的目的并非引导时询问目的的询问节点n113、判断是否知道用户40询问的位置的判断节点n114、在位置不明时向用户40询问位置的询问节点n115、和对话结束节点n120构成。

判断节点n112中,如果语音识别的结果为引导并且有与位置相关的语音识别结果,则机器人控制程序331从脚本343选择与语音识别结果相应的位置和动作。在目的未知的情况下,进入询问节点n113,向服务机器人20发出指令来询问目的。

判断节点114中,如果确定语音识别结果的位置,则机器人控制程序331进入对话结束节点n120,使服务机器人20执行与语音识别结果相应的位置和动作。

另一方面,如果语音识别结果不确定,机器人控制程序331进入询问节点n115,向服务机器人20发出指令来询问位置。

机器人控制程序331通过执行上述副脚本560的处理,直到目的和位置确定,从而能够确定与语音识别结果相应的位置和动作,并使服务机器人20来执行。

图13b表示通过脚本生成程序531的处理对图13a所示的副脚本560自动地增加成本计算节点的例子。副脚本生成程序531依次搜索副脚本560的节点,搜索出对话结束节点n120。

脚本生成程序531在搜索出的对话结束节点n120之前增加成本计算节点n116,进一步地增加由成本计算节点n116调用的询问节点n117。

成本计算节点n116中,如上述图8所示地计算当前服务机器人20的状态和执行当前可选择的动作时的成本,根据差异成本c和期望值成本cexp,进行判断进入询问节点n117或对话结束节点n120的哪一个。

执行图13b的副脚本560的机器人控制程序331针对判断节点n114所确定的目的和位置,通过成本计算程序332计算出与表示当前服务机器人20的状态的状态表341(图10a、图10b)之间的差异成本c1。

即,执行图13b的副脚本560的机器人控制程序331分别针对状态表341的各项目名3411,选择置信度3413最高的候选值3412的组合,作为新行动。

例如,在语音识别结果为图10a的情况下,机器人控制程序331分别针对项目名3411为“目的”和“位置”的各项,从候选值3412中选择最高置信度的“概要”和“进餐”作为新行动的组合,在成本计算程序332中计算出与当前状态的差异成本c1。

成本计算程序332进一步地将除去置信度最高的候选值3412的候选值的组合选择作为新行动的候选,计算出与当前服务机器人20的状态的差异成本c2。此外,成本计算程序332可将多个候选值3412的组合作为行动的候选来计算多个差异成本c2。

机器人控制程序331将新行动的组合的差异成本c1与新行动的候选组合的差异成本c2进行比较,将差异成本较小一方作为新行动输出,从而能够减少服务机器人20的成本。

然后,机器人控制程序331进入对话结束节点n120,结束副脚本560的处理。

机器人控制程序331在没有差异成本小的候选的情况下,进入询问节点n117,向服务机器人20发出指令,通过语音对话询问位置或目的等新行动的候选。机器人控制程序331可通过语音对话从服务机器人20的使用者接收新行动的候选。

然后,机器人控制程序331反复上述判断节点n112~成本计算节点n116的处理,探索可减少成本的行动。

但机器人控制程序331禁止询问节点n117的执行超过规定次数(例如3次)的循环,将当前时刻所选择的行动选择作为新行动并进入对话结束节点n120,抑制询问节点n117的执行过多。

这样,机器人控制程序331从服务机器人20接收到语音识别结果的文本和置信度后,生成状态表341,保存与发言内容对应的候选值3412和置信度,选择置信度3413最高的候选值3412的组合作为新行动。

然后,成本计算程序332计算出当前服务机器人20的状态(位置等)与新行动的差异成本c1。此外,成本计算程序332将除去置信度最高的候选值3412的候选值的组合选择作为新行动的候选,并计算出与当前服务机器人20的状态的差异成本c。机器人控制程序331可将差异成本c1和差异成本c2中差异成本最小的行动选择作为新行动,向服务机器人20发出指令。

此外,作为差异成本c,成本计算程序332可基于服务机器人20的当前位置与新行动的目的地的距离来计算差异成本c。此外,作为差异成本c,成本计算程序332可基于服务机器人20a、20b个体差异来计算差异成本c。

此外,成本计算节点n116中,机器人控制程序331可将期望值成本cexp与规定阈值进行比较,来决定新行动。此外,流程图与状态转移图可容易地相互转换。

图14为表示成本表541(342)的一个例子的图。

成本表541包含成本种类5411和成本5412的栏。成本种类5411中,图中的“position”表示服务机器人20的位置差别,图中的“say”表示服务机器人20的发言的差别,图中的“robot”表示不同服务机器人20。

成本5412为表示执行各成本种类5411时的成本(处理负荷或处理所需的时间)的指标,为预先设定的值。

图15为表示脚本生成程序531的一个例子的流程图。该处理在生成的脚本542的各副脚本的对话结束前增加成本计算处理。

首先,脚本生成程序531判断是否从服务开发者60操作的键盘524接收到脚本542的编辑请求(s702)。脚本生成程序531在接收到编辑请求的情况下,基于接收到的内容,进行脚本542的编辑处理(s703)。

具体地,服务开发者60对主脚本和副脚本进行节点或弧的增加等编辑处理。

接着,脚本生成程序531判断是否接收到脚本542的保存请求,在接收到的情况下,进入步骤s705,在未接收到的情况下,返回步骤s702反复上述处理(s704)。

脚本生成程序531在存在脚本542的保存请求的情况下,执行针对当前编辑中的主脚本所含的副脚本进行依次处理的循环(s循环)处理(s705~s710)、和针对各副脚本中所含的节点进行依次处理的循环(n循环)处理(s706~s709)。

脚本生成程序531判断当前处理中的节点是否为副脚本内的对话结束节点。如果是对话结束节点,则进入步骤s708,如果不是,则进入步骤s709,执行下一节点的处理。

脚本生成程序531在副脚本的对话结束节点(n)前增加成本计算处理的节点(s708)。

脚本生成程序531在副脚本的循环(s循环)处理和副脚本内的节点的循环(n循环)处理结束后,将步骤s711中编辑好的主脚本和副脚本保存到脚本542,结束处理。

通过上述处理编辑完成的副脚本内的对话结束节点前可由成本计算程序332进行成本计算。

图16为表示脚本生成装置50的脚本生成程序531为显示屏523上显示的用户界面5230的一个例子的图案。用户界面5230显示在脚本生成装置50的显示屏523上。

脚本生成程序531在用户界面5230的画面上部显示脚本(主脚本512),并显示画面下部的成本表541,可编辑脚本和成本表541。

用户界面5230的画面下部显示有保存按钮5231,通过点击该按钮,能够向脚本生成程序531指示脚本的保存请求。

图17为表示所生成的脚本343(542)的一个例子的图。脚本343(542)包含与图12所示的主脚本550对应的主脚本表3431和与图13a及图13b所示的副脚本560对应的副脚本表3435。

主脚本表3431在一个条目中包含保存服务机器人20转移前的位置(节点)的当前状态3432、保存服务机器人20转移目标的位置(节点)的转移目标状态3433、和保存使状态发生转移的规则的状态转移规则3434。

副脚本表3435在一个条目中包含保存服务机器人20的位置(节点)的状态3436、和保存服务机器人20的处理的动作3437。

服务机器人20可基于脚本343(542)执行图12的主脚本550和图13a以及图13b所示的副脚本560。

通过以上说明的结构来构成机器人对话系统,脚本生成程序531基于服务开发者生成的脚本自动地生成副脚本560,该副脚本560在服务机器人20基于误解了用户40的意图的语音识别结果进行行动之前,自动地获取减少预定行动可能产生的成本的行动。并且,机器人控制程序331通过执行获取减低成本的行动的副脚本560,能够提供减少用户40不满的服务机器人。

此外,本发明并不限定于上述的实施例,而是包含了各种变形例。例如,上述实施例是为了对本发明简单易懂地说明而详细地进行记载,并非限定必须具备所说明的全部的结构。此外,可将某实施例的结构的一部分替换成其它实施例的结构,或者可在某实施例中添加其它实施例的结构。另外,针对各实施例的结构的一部分,能够单独地或者组合地进行其它结构的追加、删除、替换的其中之一。

此外,上述的各结构、功能、处理部、处理单元等,其部分或者全部可通过例如使用集成电路来设计等以硬件实现。或者,上述的各结构和功能,也可通过处理器解释和执行实现各功能的程序从而以软件实现。实现各功能的程序、表格、文件等信息,可存储在存储器、硬盘、ssd(solidstatedrive,固态硬盘)等记录装置中,或者ic卡、sd卡、dvd等记录介质中。

此外,对于控制连线和信息连线,表示了说明中所需的部分,并不一定表示出产品中所有的控制连线和信息连线。实际上可以认为几乎全部的结构互相连接。

附图记号说明

10……移动机器人对话系统

20a、20b……服务机器人

30……机器人对话服务器

50……脚本生成装置

231……主程序

232……语音识别程序

233……语音合成程序

234……移动程序

331……机器人控制程序

332……成本计算程序

341……状态表

342、541……成本表

343、542……脚本

531……脚本生成程序。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1