用于实现电视终端语音游戏的交互方法与流程

文档序号:24064416发布日期:2021-02-26 12:27阅读:48来源:国知局
用于实现电视终端语音游戏的交互方法与流程

[0001]
本发明涉及电视终端领域,具体来说涉及一种用于实现电视终端语音游戏的交互方法。


背景技术:

[0002]
为了提高人机互动性,现有的电视终端通常都具有语音游戏,例如:“20个问题”、猜人物、猜角色、猜品牌等,下面对每个语音游戏的大致玩法做一个简单介绍。
[0003]“20个问题”:用户在心中想一件实物,系统通过提问20个问题,系统根据用户的回答,确定猜测出用户心中想的东西具体是什么。猜人物:指的是通过对用户提问,猜测用户心中所想的具体人物的名字,例如刘德华、万茜等娱乐圈明星,如姚明等体育圈明星等。猜角色:指的是通过对用户提问,猜测用户心中所想的具体角色的名字,例如哪吒、孙悟空、光头强等动漫角色。猜品牌:指的是通过对用户提问,猜测用户心中所想的具体品牌的品牌名字,例如长虹、华为等品牌。
[0004]
现有技术中,实现上述语音游戏的大致原理是:根据用户对提问的回答,筛选出符合用户回答对应属性的猜测目标,进而实现对用户心中所想目标的猜测。但是,实践发现,其针对同一目标的猜测,所提的问题及顺序均是相同的,使得互联网电视终端人机交互功能不够完善,其趣味性、娱乐性不足,用户体验较差。


技术实现要素:

[0005]
本发明旨在解决现有的电视终端上语音游戏的趣味性和娱乐性不足的问题,提出一种用于实现电视终端语音游戏的交互方法。
[0006]
本发明解决上述技术问题所采用的技术方案是:用于实现电视终端语音游戏的交互方法,包括以下步骤:
[0007]
步骤1、获取原始数据,确定原始数据中各猜测对象的多个属性及对应的属性值;
[0008]
步骤2、生成游戏策略,包括以下步骤:
[0009]
步骤a、将同一个属性下,具有相同属性值的猜测对象组织成一个列表形式,对列表进行属性划分;
[0010]
步骤b、遍历猜测对象的所有属性,对每一个属性进行属性划分,计算每个属性的划分度及提问属性值,所述划分度和提问属性值根据对应属性划分后的两部分猜测对象的数量确定;
[0011]
步骤c、按各属性的划分度由小至大对各属性进行排序,从其中的第一个属性、第二个属性、最后一个属性以及一个随机属性中随机选择一个属性作为提问属性,并确定所述提问属性的提问属性值;
[0012]
步骤d、生成提问属性在用户回答“是的”、“不是的”和“不知道”的情况下的过滤数据;
[0013]
步骤e、在每一次收到用户回答后,根据收到的用户回答将对应过滤数据中的各猜
测对象作为全部猜测对象,进入步骤b;
[0014]
步骤3、将生成的游戏策略缓存至数据维护中心,根据提问属性值设计提问话术,当收到用户开始进行语音游戏的信号后,进入步骤4;
[0015]
步骤4、根据收到的用户回答及历史回答信息从数据维护中心获得提问属性及提问属性值,并结合对应的提问话术对用户进行提问;
[0016]
步骤5、根据收到的用户回答及历史回答信息,判断是否达到游戏轮次上限,若是,则进入步骤6,否则进入步骤4;
[0017]
步骤6、根据游戏策略中的过滤数据生成猜测结果,并播报所述猜测结果。
[0018]
进一步的,假设根据属性值划分后的两部分的猜测对象列表分别为part1和part2,所述属性的划分度的计算公式为:
[0019]
seg_ratio=1.0-min(len(part1),len(part2))/max(len(part1),len(part2))
[0020]
式中,seg_ratio为划分度,len()表示列表长度,min()表示求两个数中最小值,max()表示求两个数中最大值。
[0021]
进一步的,所述提问属性值为min(len(part1),len(part2))对应的提问属性值。
[0022]
进一步的,所述步骤6之后还包括:
[0023]
询问用户是否需要进行下一轮游戏,若用户回答是,则进入步骤4,否则,语音游戏结束。
[0024]
进一步的,所述原始数据通过电视终端播放日志、爬虫方式爬取百度百科、爬取维基百科和/或微博平台获取。
[0025]
本发明的有益效果是:本发明所述的用于实现电视终端语音游戏的交互方法,在设计游戏策略时,根据属性的划分度随机选择提问属性并进行提问,增加了提问的随机性,即使用户心中所想的目标一样,电视终端在每次猜测时也会生成不同的提问属性,有效丰富了用户的交互体验,增加了语音游戏的趣味性和娱乐性。
附图说明
[0026]
图1为本发明实施例所述的用于实现电视终端语音游戏的交互系统的结构示意图;
[0027]
图2为本发明实施例所述的用于实现电视终端语音游戏的交互方法的一种流程示意图;
[0028]
图3为本发明实施例所述的用于实现电视终端语音游戏的交互方法的另一种结构示意图。
具体实施方式
[0029]
下面将结合附图对本发明的实施方式进行详细描述。
[0030]
本发明所述的用于实现电视终端语音游戏的交互方法,包括以下步骤:
[0031]
步骤1、获取原始数据,确定原始数据中各猜测对象的多个属性及对应的属性值;
[0032]
步骤2、生成游戏策略,包括以下步骤:
[0033]
步骤a、将同一个属性下,具有相同属性值的猜测对象组织成一个列表形式,对列表进行属性划分;
[0034]
步骤b、遍历猜测对象的所有属性,对每一个属性进行属性划分,计算每个属性的划分度及提问属性值,所述划分度和提问属性值根据对应属性划分后的两部分猜测对象的数量确定;
[0035]
步骤c、按各属性的划分度由小至大对各属性进行排序,从其中的第一个属性、第二个属性、最后一个属性以及一个随机属性中随机选择一个属性作为提问属性,并确定所述提问属性的提问属性值;
[0036]
步骤d、生成提问属性在用户回答“是的”、“不是的”和“不知道”的情况下的过滤数据;
[0037]
步骤e、在每一次收到用户回答后,根据收到的用户回答将对应过滤数据中的各猜测对象作为全部猜测对象,进入步骤b;
[0038]
步骤3、将生成的游戏策略缓存至数据维护中心,根据提问属性值设计提问话术,当收到用户开始进行语音游戏的信号后,进入步骤4;
[0039]
步骤4、根据收到的用户回答及历史回答信息从数据维护中心获得提问属性及提问属性值,并结合对应的提问话术对用户进行提问;
[0040]
步骤5、根据收到的用户回答及历史回答信息,判断是否达到游戏轮次上限,若是,则进入步骤6,否则进入步骤4;
[0041]
步骤6、根据游戏策略中的过滤数据生成猜测结果,并播报所述猜测结果。
[0042]
具体而言,实现上述用于实现电视终端语音游戏的交互方法的系统结构如图1所示,其中,用户语音交互中心主要负责语音交互、语音解析,将控制中心返回的结果进行智能播报;逻辑控制中心主要负责维护整个的控制逻辑(包括开始游戏,结束游戏);数据维护中心主要负责维护数据,包括用户数据、游戏策略(原始及中间)数据;游戏策略中心主要负责游戏策略,生成游戏所需的问题及答案。
[0043]
首先,获取原始数据,原始数据可以通过电视终端播放日志、爬虫方式爬取百度百科、爬取维基百科和/或微博平台等方式获取。获取原始数据后可以通过数据清洗的方式确定原始数据中各猜测对象的多个属性及对应的属性值;如下表:
[0044]
objectnameattr1attr2

attrj

attrnobj1obj1attr1valueobj1attr2value

obj1attrjvalue

obj1attrnvalueobj2obj2attr1valueobj2attr2value

obj2attrjvalue

obj2attrjvalue
…ꢀꢀ…ꢀ…ꢀ
objiobjiattr1valueobjiattr2value

objiattrjvalue

objmattrnvalue
…ꢀꢀ…ꢀ…ꢀ
objmobjmattr1valueobjmattr2value

objmattrjvalue

objmattrnvalue
[0045]
其中,objectname表示要猜测的对象;attrj表示猜测对象的第j个属性;obji表示第i个猜测对象;objiattrjvalue表示第i个猜测对象的第j个属性的属性值;上表中,可能存在数据缺失的情况,例如obj2的attr2属性,可能通过原数据无法获得,此时将obj2attr2value置为“na(not available)”,表示无法获得。
[0046]
其中,属性指的是用来描述用户所想内容的抽象概念,例如人物的年龄、性别等属性;属性值指的是属性对应的具体值,例如人物的年龄是20岁、30岁,性别是男或女等;
[0047]
然后,生成游戏策略,如图3所示,具体方式如下:
[0048]
步骤a、记nodename=”root”,并将上述清洗后的数据,重新组织为如下形式,记为
nodedata:
[0049][0050]
其中,objr,objs,obju,objv,objx,objy分别表示第r、s、u、v、x、y个猜测对象。上述组织数据的含义为:将同一个属性下,具有相同属性值的猜测对象组织成一个列表形式。如“obj1attr2value”:[obj2,

,obju],表示obj2和obju等对象在attr2这个属性上具有相同的属性值obj1attr2value。
[0051]
将节点nodedata继续进行属性划分,直到无法再进行属性划分为止。
[0052]
步骤b、遍历所有属性,对每一个属性进行划分,得到每个属性的划分度及提问属性值,获得划分度和提问属性值的算法为:
[0053]
将nodedata根据属性值划分两部分,使得两部分的猜测对象个数越接近越好。假设根据属性值划分后的两部分的猜测对象列表分别为part1和part2,则该属性的划分度为seg_ratio=1.0-min(len(part1),len(part2))/max(len(part1),len(part2)),提问属性值为min(len(part1),len(part2))对应的属性值。其中min()表示求两个数中最小值,len()表示求列表长度。
[0054]
步骤c、对所有属性的划分度进行排序(逆序,即划分度的值越小排名越靠前);从中选择排名靠前的2个属性、排名最后的1个属性以及随机从所有属性中选1个属性总共4个属性;从选出的4个属性中,随机选择一个属性作为提问属性,选择其对应的从步骤b选出的属性值作为提问属性值,这里假设随机选出第p属性和对应的第1个属性值和第q个属性值,并记为:attrp,[attrpvalue1,attrpvalueq];
[0055]
步骤d、生成该提问属性及对应的提问属性值在用户回答“是的”、“不是的”和“不知道”的情况下的过滤数据;过滤后的数据分别记为:yes_branch_data,no_branch_data,unknown_branch_data。其中yes_branch_data的过滤方法为:用[attrpvalue1,attrpvalueq]和nodedata中的每一个属性求交集;no_branch_data的过滤方法为:用nodedata中的每一个属性和[attrpvalue1,attrpvalueq]和做差集;unknown_branch_data的过滤方法为,从nodedata中删除attrp属性。
[0056]
将上述生成的数据组织为如下形式:
[0057][0058]
其中nodename的命名具有特殊含义,’root1201’表示从用户开始玩游戏已经回答了四个问题了,其中第一个问题的答案为1,即回答“是的”,第二个问题的答案为2,即回答是“不知道”,第三个问题的答案为0,即回答是“不是的”,第四个问题的答案为1,即回答是“是的”,依次类推。
[0059]
在每一次收到用户回答后,根据收到的用户回答将对应过滤数据中的各猜测对象作为全部猜测对象,进入步骤b。即在每一次收到用户回答后,游戏策略均会根据用户的回答来筛选数据,并在筛选数据后重新生成新的提问属性,逻辑控制中心通过游戏策略来获取新的提问属性及对应的提问属性值来进行下一轮提问。其中,新的提问属性是根据属性的划分度随机生成的,即使用户心中所想的目标一样,电视终端在每次猜测时也会生成不同的提问属性,有效丰富了用户的交互体验,增加了语音游戏的趣味性和娱乐性。
[0060]
游戏策略生成后将其缓存至数据维护中心,并根据不同的提问属性及对应的提问属性值,设计不同的播报话术。其主要模式为:“他的attrp是attrpvalue1、attrpvalueq吗?”[0061]
参见图2,语音游戏开始:
[0062]
s1:电视终端通过麦克风接收用户语音,电视终端将数据上报至语音交互中心;
[0063]
s2:语音交互中心从数据维护中心读取用户语音;
[0064]
s3:语音交互中心将用户语音转化为文本(可采用第三方软件或自研软件),通过对文本进行语义处理(可采用第三方软件或自研软件),获得用户的意图;
[0065]
s4:语音交互中心将用户意图发送给逻辑控制中心;
[0066]
s5:逻辑控制中心根据用户意图,控制进入不同的意图解决方案;此时,若用户意图为玩语音游戏,则逻辑控制中心,进入游戏模式,并发送相关游戏开始指令给语音交互中心;
[0067]
s6:语音交互中心进行智能播报,询问用户是否准备好了开始玩游戏;
[0068]
s7:用户语音交互是否准备好了,如果准备好了,则进入s8,否则,进入s6;
[0069]
s8:逻辑控制中心开始发送请求给游戏策略中心;
[0070]
s9:游戏策略中心,根据用户历史问题及答案,从数据维护中心获得提问属性及对应的提问属性值,并返回相关数据给逻辑控制中心;
[0071]
s10:逻辑控制中心获得相关游戏策略结果,将结果发送给用户语音交互中心;
[0072]
s11:语音交互中心将结果进行组装,然后智能播报给用户;
[0073]
s12:用户进行问题回答;
[0074]
s13:逻辑控制中心根据用户回答及历史回答信息,判断是否到达游戏轮次上限;如果否,则进入s9,否则,进入s14;
[0075]
s14:逻辑控制中心发送请求给逻辑控制中心,请求给出猜测结果;
[0076]
s15:逻辑控制中心给出猜测结果至语音交互中心;
[0077]
s16:语音交互中心进行智能播报;
[0078]
s17:用户终端语音交互响应是否猜对;
[0079]
s18:语音交互中心将结果发往逻辑控制中心,逻辑控制中心将结果维护至数据维护中心;
[0080]
s19:逻辑控制中心向语音交互中心发出咨询指令,询问用户是否需要进行下一轮游戏;
[0081]
s20:若用户回答是,则进入s7;否则,进入s21;
[0082]
s21:结束。
[0083]
实施例
[0084]
现结合本发明的具体技术方案,以及在电视终端的应用,以猜人物为例,来阐述本发明的具体实施方式:
[0085]
step0:准备数据。通过电视终端播放日志、爬虫方式爬取百度百科、爬取维基百科、微博等平台数据,获得原始数据;
[0086]
step1:清洗数据,确定原始数据中各猜测对象的多个属性及对应的属性值;将数据清洗为如下的形式:
[0087][0088]
step2:通过策略中心相关策略,将生成的策略缓存至数据维护中心;根据策略中心相关问题属性设计相关话术,并维护至数据维护中心;
[0089]
step2-1:生成策略。
[0090]
step2-1-1:筛选提问属性。
[0091]
step2-1-1-1:记nodename=”root”,并将上述清洗后的数据,重新组织为如下形式(为方便表示,用id来代替人名),记为nodedata:
[0092][0093]
step2-1-1-2:判断节点nodedata是否可以继续进行属性划分,若是,则继续进行划分,否则,进入下一步骤;
[0094]
step2-1-1-3:遍历所有属性,对每一个属性进行划分,得到每个属性的划分度及提问属性值,获得划分度和提问属性值的算法为:
[0095]
将nodedata根据属性值划分两部分,使得两部分的猜测对象个数越接近越好。假设根据属性值划分后的两部分的猜测对象列表分别为part1和part2,则该属性的划分度为seg_ratio=1.0-min(len(part1),len(part2))/max(len(part1),len(part2)),提问属性值为min(len(part1),len(part2))对应的属性值。其中min()表示求两个数中最小值,len()表示求列表长度。
[0096]
代入数据计算每个属性及其对应的最优划分提问属性值:
[0097]
attrisiattri_seg_ratio职业演员1-2/4=0.5
性别男1-2/4=0.5名字首字母“l”、“w”1-3/3=0.0星座“天秤座”、“金牛座”、“双鱼座”1-3/3=0.0血型“ab”、“b”1-3/3=0.0
[0098]
step2-1-1-4:对所有属性的划分度进行排序(rank表示排序):
[0099]
attrisiattri_seg_ratiorank职业演员1-2/4=0.52性别男1-2/4=0.52名字首字母“l”、“w”1-3/3=0.01星座“天秤座”、“金牛座”、“双鱼座”1-3/3=0.01血型“ab”、“b”1-3/3=0.01
[0100]
step2-1-1-5:从中选择排名靠前的2个属性(名字首字母、星座)和排名最后的1个属性(性别),以及随机从所有属性中选1个属性(星座)总共4个属性;
[0101]
step2-1-1-6:从选出的4个属性中,随机选择一个属性(星座)作为提问属性,选择其对应的从step2-1-1-3选出的属性值(“天秤座”、“金牛座”、“双鱼座”)作为提问属性值。
[0102]
step2-1-1-7:生成提问属性及对应的提问属性值的三个答案分支的数据,即在用户回答“是的”,“不是的”,“不知道”的情况下的过滤数据,过滤后的数据分别记为:yes_branch_data,no_branch_data,unknown_branch_data。其中yes_branch_data的过滤方法为:用[attrpvalue1,attrpvalueq]和nodedata中的每一个属性求交集;no_branch_data的过滤方法为:用nodedata中的每一个属性和[attrpvalue1,attrpvalueq]和做差集;unknown_branch_data的过滤方法为,从nodedata中删除attrp属性。
[0103]
其中,在用户回答“是的”的情况下的过滤数据为:
[0104][0105]
在用户回答“不是的”的情况下的过滤数据为:
[0106][0107]
在用户回答“不知道”的情况下的过滤数据为:
[0108]
[0109]
step2-1-1-8:将上述生成的数据组织为如下形式:
[0110][0111]
step2-1-1-9:缓存上述数据至数据维护中心(此处数据维护中心以第三方redis缓存框架来实现数据的快速缓存以及后续的数据读取)
[0112]
step2-1-1-10:在每一次收到用户回答后,根据收到的用户回答将对应过滤数据中的各猜测对象作为全部猜测对象,进入步骤b。即在每一次收到用户回答后,游戏策略均会根据用户的回答来筛选数据,并在筛选数据后重新生成新的提问属性,逻辑控制中心通过游戏策略来获取新的提问属性及对应的提问属性值来进行下一轮提问。其中,新的提问属性是根据属性的划分度随机生成的,即使用户心中所想的目标一样,电视终端在每次猜测时也会生成不同的提问属性,有效丰富了用户的交互体验,增加了语音游戏的趣味性和娱乐性。
[0113]
step3:游戏策略生成后将其缓存至数据维护中心,随后根据提问属性值设计话术。例如:
[0114]“他的***是***中的一个吗?”[0115]“他的***是***吗?”[0116]“他是***吗?”[0117]
随后根据用户的语音命令来执行语音游戏,具体包括:
[0118]
step4:电视终端通过麦克风接收用户语音(例如:用户语音为“我好无聊,我要玩语音游戏”),电视终端通过互联网http请求将数据上报发往语音交互中心;
[0119]
step5:语音交互中心接收读取用户语音;
[0120]
step6:语音交互中心(利用讯飞等第三方服务语音处理服务)将用户语音转化为文本(“我要玩语音游戏”),通过对文本(利用讯飞、百度等第三方及自研的文本处理服务)进行文本处理,获得用户的意图(“玩语音游戏”);
[0121]
step7:语音交互中心将用户意图(“玩语音游戏”)发送给逻辑控制中心;
[0122]
step8:逻辑控制中心根据用户意图,控制进入不同的意图解决方案;此时,若用户意图为玩语音游戏,则逻辑控制中心,进入游戏模式,并发送相关游戏开始指令(例如“好的。我们的游戏包括猜人物、猜角色、猜品牌名,你可以用是的/不是的/不知道三种答案来回答我的问题,你准备好了吗?”)给语音交互中心;
[0123]
step9:语音交互中心进行智能播报(将“好的。我们的游戏包括猜人物、猜角色、猜品牌名,你可以用是的/不是的/不知道三种答案来回答我的问题,你准备好了吗?”播报给
用户),询问用户是否准备好了开始玩游戏;
[0124]
step10:用户语音交互回答是否准备好了,如果准备好了(用户回答“我准备好了”或“好了”等),则转step11,否则转step9;
[0125]
step11:逻辑控制中心开始发送http请求给游戏策略中心;
[0126]
step11-1:此处发送请求,采用如下组装数据:
[0127][0128]
在上述组装的数据中,gamestrategy为策略所需的参数。
[0129]
step12:游戏策略中心,根据用户历史问题及答案,从数据维护中心获得提问属性及对应的提问属性值,并返回相关数据给逻辑控制中心;
[0130]
step12-1:此处返回的相关数据为:
[0131][0132]
step13:逻辑控制中心获得相关游戏策略结果,将结果发送给用户语音交互中心;
[0133]
step14:语音交互中心将结果传送给语音交互中心智能播报给用户;
[0134]
step14-1:语音交互将以下数据发送给智能播报中心:
[0135][0136]
智能播报中心从数据维护中心获取对应话术(“他的***是**中的一个吗?”),组装结果为“他的星座是天秤座、金牛座、双鱼座中的一个吗”;
[0137]
step15:用户进行问题回答(如“是的”或者“不是的”或者“不知道”);
[0138]
step16:逻辑控制中心将相关数据发送给游戏策略中心,游戏策略中心根据用户回答,及历史回答信息,判断是否到达游戏轮次上限;如果否,则进入step12,否则进入step17;
[0139]
step17:游戏策略中心给出猜测结果并发送至逻辑控制中心;
[0140]
step17-1:此处组装的相关数据为:
[0141][0142]
step18:逻辑控制中心给出猜测结果至语音交互中心;
[0143][0144]
step19:语音交互中心进行智能播报(语音播报“他的名字是刘德华吗?”);
[0145]
step20:用户终端语音交互响应是否猜对(用户回答“是的”或者“不是的”);
[0146]
step21:语音交互中心将结果发往逻辑控制中心,逻辑控制中心将结果维护至数据中心;
[0147]
step22:逻辑控制中心向语音交互中心发出咨询指令,询问用户是否需要进行下一轮游戏(类似“本轮游戏到此结束,是否需要开始新一轮游戏?”);
[0148]
step23:若用户回答是,则进入step10;否则进入step24;
[0149]
step24:结束。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1