语音交互订餐的实现方法及相关装置与流程

文档序号:15389212发布日期:2018-09-08 00:56阅读:193来源:国知局

本发明涉及计算机应用领域,具体而言,涉及一种语音交互订餐的实现方法及相关装置。



背景技术:

为了方便顾客点餐,提高点餐效率,人们做了不少有益的尝试,除了传统的电话点餐外,出现了通过点餐网站点餐。随着智能手机、移动互联网的发展,又出现了手机应用程序(application,app)点餐。目前,超过90%的用户通过操作手机app进行外卖订餐和外卖订单状态查询,然而,手机app的点餐方式对用户来说,需要其暂停当前在做的事情,去app上选择餐厅、菜品,查询订单状态,完成点餐和查询,操作不便、浪费时间。而语音交互方式的点餐,只需用户交互几句话,即可完成点餐,用户不需暂停其正在做的事情,给用户带来了便利。

利用手机在图形用户界面(graphicaluserinterface,gui)上进行点餐,即是用户在界面上将某餐厅的美食加入购物车,而后进行结算和支付,这样进行下单,在这个过程中,用户的每个界面点击事件,即是向前端服务器发送请求,前端服务器再向订餐服务器发送相应请求,订餐服务器通过对数据存储服务器进行处理,将数据返回前端服务器,最后前端服务器将选购信息呈现在界面上,这样完成点餐。语音交互方式的点餐,用户的每次交互,即是向电子设备发送请求,电子设备收集到用户的语音信息,再向语音处理服务器发送请求,语音处理服务器对语音信息进行识别后,再向订餐服务器发送订餐请求,这样完成点餐。图形用户界面点餐方式下,点餐交互的连续性和一致性主要是通过前端服务器呈现相关界面来完成,但是语音交互点餐交互的连续性和一致性问题难以解决。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种语音交互订餐的实现方法及相关装置,以解决语音交互场景下订餐步骤不连续和交互信息不一致的问题。

本发明实施例提供一种语音交互订餐的实现方法,应用于订餐服务器,所述方法包括:接收订餐请求,所述订餐请求包括用户标识、会话标识、意图槽值和表征所述会话是否为新会话的状态标识;当所述状态标识表征所述会话为新会话时,依据所述会话标识建立缓存,并将基本信息加入所述缓存中;当所述状态标识表征所述会话不是新会话时,则先取出所述会话标识对应的缓存信息,并利用所述缓存信息进行逻辑处理得到相关信息,将所述相关信息存入所述会话标识对应的缓存中。

本发明实施例还提供一种语音交互订餐的实现装置,应用于订餐服务器,所述装置包括:接收单元,用于接收订餐请求,所述订餐请求包括用户标识、会话标识、意图槽值和表征所述会话是否为新会话的状态标识;缓存建立单元,用于当所述状态标识表征所述会话为新会话时,依据所述会话标识建立缓存,并将基本信息加入所述缓存中;当所述状态标识表征所述会话不是新会话时,则先取出所述会话标识对应的缓存信息,并利用所述缓存信息进行逻辑处理得到相关信息,将所述相关信息存入所述会话标识对应的缓存中。

本发明实施例还提供一种计算机设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上所述的语音交互订餐的实现方法。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的语音交互订餐的实现方法。

与现有技术相比,本发明实施例提供的语音交互订餐的实现方法及相关装置,应用于订餐服务器,订餐服务器可以通过语音服务器与电子设备通信,用户通过电子设备发起语音,语音服务器识别出语音及意图,并向订餐服务器发送订餐请求,订餐服务器接收订餐请求,并依据订餐请求中的会话标识建立缓存,并将如用户标识的基本信息加入到缓存中;在后面同一个会话下的每次交互,均先取出缓存信息,再将利用缓存信息处理得到的相关信息存入该会话标识的缓存,以便在需要生成订单时直接根据缓存内的相关信息生成订单。这样就将一次会话的多次交互关联起来,实现多次交互信息的连续性和一致性,完成下单,即实现了语音交互方式的订餐。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的订餐服务器、语音服务器与电子设备的交互示意图。

图2为本发明第一实施例提供的订餐服务器、语音服务器和电子设备的信令交互示意图。

图3为本发明第一实施例提供的语音交互订餐的实现方法。

图4为本发明第二实施例提供的语音交互订餐的实现方法。

图5为本发明第三实施例提供的计算机设备的结构示意图。

图6为本发明第三实施例提供的语音交互订餐的实现装置的模块图。

图标:10-订餐服务器;20-电子设备;30-语音服务器;40-计算机设备;101-处理器;102-存储器;103-总线;104-通信接口;200-语音交互订餐的实现装置;201-接收单元;202-缓存建立单元;203-时间配置单元;204-清除单元;205-结束提示单元。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

请参考图1,是本发明实施例提供的订餐服务器10、语音服务器30与电子设备20的交互示意图。订餐服务器10可以通过语音服务器30与一个或多个电子设备20进行语音交互,一个或多个电子设备20向语音服务器30发送语音,语音服务器30将电子设备20发送的语音识别并解析后发送至订餐服务器10,订餐服务器10对语音服务器30的请求进行处理,并将结果返回语音服务器30,语音服务器30将信息再反馈给电子设备20,由电子设备20播放给用户,从而对用户提供基于语音交互的订餐功能。

本实施例中,所述电子设备20可以是,智能音箱、智能头盔等智能语音设备,也可以是智能手机、个人电脑(personalcomputer,pc)、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)等具有语音输入/输出功能的智能移动设备。所述电子设备20可以通过麦克风进行信息采集,并将采集的语音信息传输至语音服务器30。所述电子设备20的操作系统可以是,但不限于,安卓(android)系统、ios(iphoneoperatingsystem)系统、windowsphone系统、windows系统等。所述订餐服务器10用于提供订餐服务以及对用户订餐过程中的信息进行存储,订餐服务器10可以是,但不限于,网络服务器、数据库服务器、云端服务器等。所述语音服务器30可以是具有语音识别功能的服务器。

本发明实施例中,所述电子设备20通过麦克风进行语音信息采集,并将采集的语音信息传输至语音服务器30,语音服务器30将电子设备20发送的语音识别后,将识别后的信息发送至订餐服务器10,从而建立电子设备20、语音服务器30以及订餐服务器10之间的数据通信。语音服务器30还向订餐服务器10发送针对一次点餐事件的唯一会话标识,其中,一次点餐事件也可以称为一个会话,会话是指一个电子设备20与利用语音服务器30与订餐服务器10进行通讯的过程,比如从开始点餐到语音选择或确认某个餐厅或美食,再到点餐完成的整个信息交互的过程。以实现订餐服务器10对一个会话的多条交互信息进行存储,便于依据多个交互信息生成订单,下面进行详细描述。

第一实施例

请参考图2,是本发明第一实施例提供的订餐服务器10、语音服务器30和电子设备20的信令交互示意图。本实施例示出了电子设备20和订餐服务器10之间进行两次交互而完成订餐的情况,当然,在其他具体实施方式中,还包括更多次数的交互的情况,其信令交互过程的方法原理与本实施例相同。

具体的,首先用户向电子设备20说话以输入第一用户语音,电子设备20可以向语音服务器30发送该第一用户语音,该第一用户语音中带有唤醒词,以唤醒存储在语音服务器30的应用程序(如饿了么、百度外卖)。

语音服务器30接收到音频形式的第一用户语音后,对第一用户语音进行识别,获得文本形式的语音信息,再根据预先在语音服务器30上设置的语法规则对语音信息进行意图识别,以获得意图信息,该意图信息可以反映用户的订餐意图。所述第一用户语音可以通过带唤醒词的语音来唤醒存储在语音服务器30的应用程序,可以为带意图的唤醒或不带意图的唤醒,但是必须带有唤醒词,以便唤醒某个应用程序。例如,不带意图的第一用户语音可以是“打开饿了么/百度外卖”,带意图的第一用户语音可以是“我要吃饿了么/百度外卖的鱼香肉丝”,其意图信息为“我要吃”和“鱼香肉丝”,唤醒词为“饿了么/百度外卖”。语音服务器30识别出唤醒词“饿了么/百度外卖”后,就向“饿了么/百度外卖”应用程序发送请求,其具体执行的程序步骤如下。

语音服务器30将电子设备20发送的音频形式的第一用户语音识别为文本形式的语音信息,再根据用户预设的语法规则,对文本形式的语音信息进行意图识别,将识别出的信息称为意图槽值,例如,可用slots表示。第一用户语音中识别出的信息包括第一意图槽值。

电子设备20向语音服务器30发送语音时,可以发送用户标识(如user_id),语音服务器30还会配置会话标识(如session_id)和状态标识,每一个会话均有一个唯一的会话标识,该会话为用户在一次点餐事件中的所有交互信息,例如,图2中的电子设备20与语音服务器30和订餐服务器10的交互即为一个会话。唯一的会话标识的确定方式可以是:电子设备20向语音服务器30发送语音时,同时发送用户标识(user_id),语音服务器30在被唤醒时会针对该订餐信息生成一个session_id,在此会话没有结束时,只要接收对应该user_id的电子设备20发送的用户语音时,则会给解析该用户语音得到的订餐信息添加相同的session_id。本实施例中,所述状态标识为is_new=true或is_new=false,在语音服务器30对应的程序被唤醒时,is_new=true,也可以理解为在新创建一个session_id时,配置is_new=true;在会话没有结束时,接收对应该user_id的电子设备20发送的用户语音时,is_new=false。

语音服务器30向订餐服务器10发送第一订餐请求,该第一订餐请求包括用户标识、第一意图槽值、会话标识和状态标识。本实施例中,所述第一订餐请求中的状态标识为is_new=true,即该会话标识为一个新的会话标识,订餐服务器10会对该会话标识建立一个新会话。后文将详细描述,在此不再赘述。

订餐服务器10接收到第一订餐请求后,可以依据第一意图槽值调用对应的接口,并生成订餐提示信息;如果语音服务器30发送的订餐请求中不含意图槽值,则生成提示用户发送餐厅名、食物名等具有订餐意图的订餐提示信息,以提示用户说出订餐意图,如“我要吃鸡排”。

例如,如果第一用户语音为“帮我再来一单饿了么/百度外卖”,识别出的意图信息为“再来一单”,与此对应的订餐意图为再来一单;如果第一用户语音为“我要吃饿了么/百度外卖的***”,识别出的意图信息为“我要吃”,与此对应的订餐意图为按照用户指定的***订餐;如果第一用户语音为“我的饿了么/百度外卖高频***”,识别出的意图信息为“高频”,与此对应的订餐意图为按照用户对***的历史订餐频次订餐;如果第一用户语音为“帮我随便来一单饿了么/百度外卖”,识别出的意图信息为“随便”,与此对应的订餐意图为随机来一单;如果第一用户语音为“附近的人都在吃什么”,识别出的意图信息为“附近”,与此对应的订餐意图为按照附近用户的订餐频次订餐。

订餐服务器10预先存储有意图槽值与订餐意图的对应关系,解析出意图槽值slots中的key,并与相应的分支进行匹配。

第一订餐请求中含有意图槽值,订餐服务器10生成订餐提示信息的方式可以是:

当通过意图槽值确定为“再来一单”意图时,其对应的查找方式为查找用户最近一次订单,订餐服务器10会先调用eos(elemeordersystem)的历史订单接口,获得用户的所有历史订单,再根据历史订单查找距离当前时间最近的一个订单,或者,根据历史订单查找距离当前时间最近且订餐时间位于当前时间所在订餐时间段的订单,并依据该订单生成订餐提示信息。进一步地,将订餐提示信息发送至语音服务器30。例如,可以将一天24小时划分为多个订餐时间段,假设当前时间是中午十二点,位于中午12点-中午1点的订餐时间段,用户在当天早上订餐,订单为a,用户也在前一天中午12点半订餐,订单为b,当用户想再来一单时,订餐服务器10可以查找距离当天中午十二点最近的订单即订单a,也可以查找距离当前时间最近且订餐时间位于当前时间所在的订餐时间段(中午12点-中午1点)的订单即订单b。

当通过意图槽值确定为“我要吃***”意图时,对应的查找方式为查找***,例如,用户通过电子设备20输入“我要吃麦当劳”的语音,订餐服务器10会调用搜索的相关接口,搜索符合条件的餐厅,并根据餐厅推荐策略(例如,餐厅距离用户的远近),选取排名在前几位的餐厅并生成订餐提示语音,由电子设备20播放给用户供用户对推荐的餐厅进行选择。再例如,用户通过电子设备20输入“我要吃凉菜”的语音,订餐服务器10模糊匹配到“我要吃”后,订餐服务器10将“凉菜”作为关键字调用关键字搜索接口,搜索具有“凉菜”的餐厅,并根据餐厅推荐策略选取排名在前几位的餐厅生成订餐提示信息。

当通过意图槽值确定为“我的高频餐厅”意图时,对应的查找方式为按照用户对餐厅的订餐频次查找餐厅,订餐服务器10将调用大数据的接口,在订餐服务器10存储的该用户历史订单中查找就餐次数最多的前几家餐厅并生成订餐提示语音。进一步的,针对每一家餐厅,还可以根据菜品推荐策略选取排名在前几位的菜品,并根据查找的餐厅和选取的菜品生成相应的订餐提示语音。例如,用户通过电子设备20输入“我的高频餐厅是什么”,订餐服务器10语音服务器30模糊匹配到“我的高频餐厅”后,订餐服务器10将根据用户的id,调用大数据的接口,根据该用户的id识别出该用户后,在存储的该用户的历史订单中查找就餐频率最高的前几家餐厅并生成订餐提示信息,针对每一家餐厅,订餐服务器10还可以根据菜品推荐策略选取排名在前几位的菜品一并生成相应的订餐提示信息。其中,所述用户的id,可以是电子设备20的id,也可以是通过电子设备20登陆应用程序的用户id。

当通过意图槽值确定“随机来一单”意图时,对应的查找方式为按照价格查找餐厅,订餐服务器10先触发语音服务器30向电子设备20发送“您接受的价格范围是多少?”的语音,待用户通过电子设备20输入自己所接受的价格范围的语音后,订餐服务器10会调用搜索的首页列表接口,以价格为主要因素,及其他辅助因素(如餐厅与用户的距离远近),选取排名前几家的餐厅,针对每一家餐厅,订餐服务器10还可以做根据菜品推荐策略选取排名在前几位的菜品,根据选取的餐厅和相应菜品生成订餐提示信息。例如,用户通过电子设备20输入“请随机来一单”,订餐服务器10先触发订餐服务器10语音服务器30向电子设备20返回“您接受的价格范围是多少”的语音,用户通过电子设备20语音输入“20到30元之间”,订餐服务器10根据该价格,以及餐厅与用户的距离远近(还可以依据餐厅的评分等),选取排名前几家的餐厅。针对每一家餐厅,订餐服务器10还可以做根据菜品推荐策略选取排名在前几位的菜品,进一步,通过电子设备20向用户播放订餐提示语音来推荐餐厅和菜品信息。

当通过意图槽值确定“附近的人吃什么”意图时,对应的查找方式为按照附近用户的订餐频次查找,订餐服务器10将调用相应的接口,查找一定范围内(如定位用户当前位置,以用户当前位置为圆心,1千米为半径的范围)点餐频率最高的前几位餐厅,针对每一家餐厅,订餐服务器10还可以从所有菜品中查找点餐频率最高的前几个菜品,根据查找的餐厅和菜品生成相应的订餐提示信息。

若订餐请求中不含意图槽值,订餐服务器10可直接返回订餐提示信息,订餐提示信息主要包含播报信息及表征会话是否结束的状态标识等信息,此时的播报信息可为“您可以说我要吃鸡排”、“您需要吃什么”、“您需要吃哪家餐厅的菜品”等。

语音服务器30将订餐提示信息转换为订餐提示语音,并发送至电子设备20,并判断会话是否结束,如果会话结束,会话结束标识为is_end=true,语音服务器30删除会话相关数据;否则在多次交互过程中,语音服务器30发送的会话标识不变。

电子设备20接收到订餐提示语音后进行播读,用户根据订餐提示语音中所包含的餐厅名称、菜品名称、品类、价格等进行信息反馈,通过语音输入的方式向电子设备20输入第二用户语音,进一步点餐。电子设备20将第二用户语音发送至语音服务器30,所述第二用户语音可以包括用户从所述订餐提示语音选择或确认的餐厅信息和菜品信息。

语音服务器30接收到电子设备20发送的第二用户语音后,识别第二用户语音得到第二订餐信息,第二订餐信息可以包括用户选择的餐厅美食信息,也可以包括用户确认或换一个的餐厅美食信息。因为会话没有结束,那么第一次返回的信息中会话结束标识is_end=false,当语音服务器30解析出返回信息中会话结束标识为is_end=false,即会保留该次会话产生的所有数据信息,包括session_id。语音服务器30可以查看第二用户语音中是否已经有之前创建的session_id,本实施例中,由于session_id已经在接收第一用户语音时已经被创建,而第二用户语音和第一用户语音属于一个会话的两个交互信息,故解析第二用户语音得到第二订餐信息后,第二订餐信息配置有和第一订餐信息相同的session_id。对应的,其状态标识is_new为false。

语音服务器30向订餐服务器10发送第二订餐请求,第二订餐请求包括用户标识、第二意图槽值、session_id以及is_new=false,订餐服务器10根据session_id查找在接收第一订餐请求后已经创建的缓存,并将利用取出的相关缓存信息进行处理后的相关信息在存入缓存,即加入以session_id为key的value内,所述相关信息包括餐厅信息、美食信息、美食数量、规格等。

在其他具体实施方式中,还可以包括更多次数的语音交互,电子设备20还可以发送第三用户语音、第四用户语音、第n用户语音,直至会话结束。在一个会话下,每增加一次交互,订餐服务器10就会取出缓存中的信息,并利用对取出的信息进行处理,并将处理得到的信息存入以session_id为key的value内,以便进行下单。

订餐服务器10每次都会给语音服务器30反馈一个会话结束标识,该会话结束标识表示整个会话是否结束。当会话结束时,订餐服务器10会反馈给语音服务器30的会话结束标识为is_end=true。语音服务器30将订餐结束信息转换成订餐结束语音发送给电子设备20,电子设备20播读订餐结束语音,订餐结束语音可以是“已经帮您完成点餐,请耐心等待,欢迎下次选购”、“您已取消支付”、“您没有设置免密支付”、“您尚未登录,请至叮咚app进行登录”、“您尚未达到餐厅起送价,已为您取消了购物车,欢迎下次选购”、“已为您取消了订单,欢迎再次选购”、“以为您成功支付,订单详情,可至饿了么app查看,请耐心等待”等。语音服务器30解析出is_end为true后,删除对应该会话标记的相关数据,以便再次唤醒系统时,重新生成session_id。

订餐服务器10一方面对意图槽值进行处理,以调用对应的接口生成订餐提示信息,反馈给用户,实现语音交互;另一方面还将每次交互过程中生成的必要的下单信息存储到以session_id为key,json或dict变量为value的缓存中,以便进行下单。

请参考图3,是本发明第一实施例提供的语音交互订餐的实现方法。本发明实施例的语音交互订餐的实现方法应用于提供订餐服务的订餐服务器10中,语音交互订餐的实现方法包括:

步骤s11,接收订餐请求。

订餐请求包括用户标识、会话标识、意图槽值和状态标识。本实施例中,会话标识可以用session_id表示,所述状态标识可以是is_new=true或is_new=false。所述意图槽值为语音服务器30识别电子设备20的语音,并根据语义规则识别文本形式的语音信息而得到的。例如,用户语音为“我要吃饿了么/百度外卖的鱼香肉丝”,意图槽值slots为{

"want_eat":"我要吃",

"keyword":"鱼香肉丝",

"focus":"eleme",

"bizname":"饿了么"

}。

如果状态标识为is_new=true,表示session_ida是向该会话配置的新的会话标识,则执行步骤s121;如果状态标识是is_new=false,表示session_idb不是新的会话标识,则执行步骤s122。

步骤s121,依据会话标识建立缓存,并将基本信息加入所述缓存中。

将会话标识session_ida作为key,将json或dict变量为value建立redis缓存。所述基本信息包括所述用户标识、经纬度、手机号、饿了么账号、登陆成功id等。

步骤s122,将不是新的会话对应的相关信息加入所述会话对应的缓存中。

因为交互请求中的is_new为false,session_idb不是新的会话标识,则redis中依据存储有以session_idb作为key的缓存。根据会话标识session_idb,找到该缓存的key/value程序结构,将相关信息存入对应的value中,如将用户选择的餐厅名、菜品名、菜品数量、规格等加入缓存中。

第二实施例

请参考图4,是本发明第二实施例提供的语音交互订餐的实现方法。本发明实施例的语音交互订餐的实现方法应用于提供订餐服务的订餐服务器10中,本实施例的语音交互订餐的实现方法与第一实施例的区别在于,还包括:

步骤s13,向语音服务器30发送结束标识。

当会话结束时,向语音服务器30发送的结束标识为标识is_end=true。本实施例中,当订餐服务器10接收到的订餐信息包括:取消订单、正确输入支付口令、取消支付、无免密支付、用户没有登录或尚未达到餐厅起送价但停止选购中的任意一个时,则订餐服务器10判断为会话结束,然后向语音服务器30发送结束标识is_end=true。语音服务器30解析出is_end=true,便删除对应该会话标记的相关数据,以便用户再次唤醒应用程序时,为会话分配新的session_id。

另外,会话结束时,订餐服务器10给语音服务器30的返回信息可以是“已经帮您完成点餐,请耐心等待,欢迎下次选购”、、“您已取消支付”、“您没有设置免密支付”、“您尚未登录,请至叮咚app进行登录”、“您尚未达到餐厅起送价,已为您取消了购物车,欢迎下次选购”、“已为您取消了订单,欢迎再次选购”、“以为您成功支付,订单详情,可至饿了么app查看,请耐心等待”等。

步骤s14,从建立缓存开始,经过所述过期时间后,删除所述缓存的数据。

在每个缓存被建立的时候还包括步骤:在建立缓存时,向所述缓存配置过期时间。

具体的,每个会话在订餐服务器10上缓存的信息,均存在被建立的时刻,可以在每个缓存被建立的时候设置合理的过期时间,例如3*60秒、5*60秒、10*60秒等。当经过过期时间后,缓存数据会自动被删除,这样减少redis服务器的压力,所述redis服务器属于订餐服务器10下的子服务器。优选的,所述过期时间为5*60秒。

每次交互过程中,订餐服务器10都会处理交互信息,并将相关信息存入缓存中,如将必要的下单信息存入缓存中。同时也会从缓存中取相应的信息,用来进行信息处理、反馈。如当用户说“确认餐厅”或选择了某个餐厅时,订餐服务器10就会将该餐厅id存入缓存中,并根据该餐厅id得到该餐厅的菜品信息,并进行菜品信息反馈,供用户选择菜品。因为在后面的缓解还要判断选购的美食的价格是否达到了餐厅的起送价,所以这里还需将餐厅的起送价信息存入缓存中。当用户说“确认美食”或者选择了某个美食时,如果该美食没有规格和属性,则返回美食数量提示信息,如果有规格和属性,返回属性和规格的提示信息,同样的将美食的数量、规格、属性信息存入缓存中,当进行下单时,再从缓存中取出相应的数据信息。例如会话标识session_id=123456,value={},当应用被唤起时,会存储相应的用户信息进value中,并建立缓存,设置过期时间,如cache_client.set(session_id,value,5*60),当用户确认餐厅24后,value[‘restaurant_id’]=24,value[‘delivery_price’]=20,后面需要餐厅id,即向缓存中获取,方式为value=cache_client.get(123456),根据餐厅id获取到餐厅的美食列表,并生成反馈信息播报,当用户确认美食或者选择某个美食后,将food_id,food_name存入缓存,即value[‘food_id’]=789,value[‘food_name’]=‘hahaha’,并再进行cache_client.set(session_id,value,5*60),美食数量、规格、属性信息的存储都一样,这样在下单需要的定位地址、收获地址、food_id,quantity等信息。

第三实施例

请参考图5,为本发明第三实施例提供的计算机设备40的结构示意图。本实施例中该计算机设备40为订餐服务器10,该计算机设备40包括处理器101,存储器102,总线103和通信接口104,所述处理器101、通信接口104和存储器102通过总线103连接;处理器101用于执行存储器102中存储的可执行模块,例如计算机程序。

其中,存储器102可能包含高速随机存取存储器(ram:randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口104(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接。

总线103可以是isa总线、pci总线或eisa总线等。图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器102用于存储程序,如图6所示的语音交互订餐的实现装置200。该语音交互订餐的实现装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器102中或固化在所述计算机设备40的操作系统(operatingsystem,os)中的软件功能模块。所述处理器101在接收到执行指令后,执行所述程序以实现本发明上述实施例揭示的语音交互订餐的实现方法。

处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该存储介质位于存储器102,处理器101读取存储器102中的信息,结合其硬件完成上述方法的步骤。

本实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器101执行时实现上述实施例揭示的语音交互订餐的实现方法。

请参考图6,为本发明第三实施例提供的语音交互订餐的实现装置200的模块图。所述语音交互订餐的实现装置200包括接收单元201、缓存建立单元202、时间配置单元203、清除单元204以及结束提示单元205。

所述接收单元201,用于接收订餐请求,所述订餐请求包括用户标识、会话标识、意图槽值和表征所述会话是否为新会话的状态标识。例如接收图2中的第一订餐请求和第二订餐请求。

本发明实施例中,所述接收单元201可以执行步骤s11。

所述缓存建立单元202,用于当所述状态标识表征所述会话为新会话时,依据所述会话标识建立缓存,并将基本信息加入所述缓存中;当所述状态标识表征所述会话不是新会话时,则先取出所述会话标识对应的缓存信息,并利用所述缓存信息进行逻辑处理得到相关信息,将所述相关信息存入所述会话标识对应的缓存中。

本发明实施例中,所述缓存建立单元202可以执行步骤s121和步骤s122。

时间配置单元203,用于在建立缓存时,向所述缓存配置过期时间。即在每次交互过程中建立的缓存,均为其设置一个过期时间,且每次设置的过去时间相同。

清除单元204,用于从建立缓存开始,经过所述过期时间后,删除所述缓存的数据。当经过过期时间后,产生的缓存数据将会被清除,这样减少了redis服务器的数据存储性能,提升了服务的响应速度。

本实施例中,所述清除单元204可以执行步骤s14。

结束提示单元205,用于向发送所述订餐请求的语音服务器返回的信息中包括会话结束标识。当会话结束时,向语音服务器30发送的结束标识为is_end=true。当语音服务器30解析到该信息时,就会将该会话数据清除,以便再次唤醒应用程序时,建立新的会话,分配的新的session_id。

本实施例中,所述结束提示单元205可以执行步骤s13。

综上所述,本发明实施例提供的语音交互订餐的实现方法及相关装置,应用于订餐服务器,订餐服务器可以通过语音服务器与电子设备通信,用户可以通过电子设备发起语音,通过语音服务器和订餐服务器实现利用语音的方式交互订餐,用户通过电子设备发起语音,语音服务器识别出语音及意图,并向订餐服务器发送订餐请求,订餐服务器接收订餐请求,并依据订餐请求中的会话标识建立缓存,并将如用户标识的基本信息加入到缓存中;在后面同一个会话下的每次交互,均先取出缓存信息,再将利用缓存信息处理得到的相关信息存入该会话标识的缓存,以便在需要生成订单时直接根据缓存内的相关信息生成订单。这样就将一次会话的多次交互关联起来,实现多次交互信息的连续性和一致性,完成下单,即实现了语音交互方式的订餐。还可以设置合理的过期时间,从建立缓存开始计时,经过过期时间后,订餐服务器除缓存数据,以减小缓存文件。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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