一种基于知识图谱的智能厨房问答助手系统的制作方法
科技小知识20: 人工智能语音助手能解答各种生活问题,方便快捷。 #生活乐趣# #日常生活趣事# #生活琐事趣闻# #科技小知识#
本发明属于智能厨房的技术领域,尤其涉及一种基于知识图谱的智能厨房问答助手系统。
背景技术:
目前,随着人们生活水平的提高,人们对食物的要求越来越高,使得每餐“吃什么”“做什么”“如何做”“怎么做”变成了我们的一个大问题。同时越来越多的食品安全问题也促使人们回归厨房自己动手,做一顿健康可口、营养均衡的饭菜。此情景使得一个厨艺不精湛或者做菜经验较少的人急需一个智能厨房助手。
传统的纸质菜谱只能单纯的提供某道菜品的食材以及做法,提供的信息相对单调,用户在学习时候具有一定难度。
另外,现有的菜谱教学的app,诸如“下厨房”等,均是面向于搜索来实现信息检索的,其原理是通过搜索的方式来实现字符的比对,以此满足用户的需求。因此现有的产品的搜索功能不是很精准,难以处理较为复杂的数据,以至于最后提供给用户的信息可能达不到用户的要求,出现“答非所问”的情况;再者此类产品其教学方式仍然不能做到对用户的同步教学。所以目前还没有产品可以将智能搜索、智能推荐、智能问答结合到一起形成一个较为完善的系统。
技术实现要素:
基于以上现有技术的不足,本发明所解决的技术问题在于提供一种基于知识图谱的智能厨房问答助手系统,具有方便、精准的优点,并且能够根据用户的喜好自适应地发现满足用户用餐习惯的食谱信息。
为了解决上述技术问题,本发明通过以下技术方案来实现:本发明提供一种基于知识图谱的智能厨房问答助手系统,包括:
前端硬件部分,用于捕获用户的语音输入,并将语音数据传输至后端服务器;接受后端服务器的响应的数据,并进行数据的展示;
后端软件部分,与所述前端硬件部分连接,包括用于在后端服务器运行下的语音识别功能模块、基于知识图谱的问答功能模块、智能算法推荐模块。
进一步的,所述语音识别功能模块包括:
声学模型,采用卷积神经网络cnn和连接性时序分类ctc方法;
语言模型,使用统计语言模型,将拼音转换为最终的文本。
进一步的,所述语音识别功能模块的操作步骤如下:
第一步,采集数据,采集到的数据即为普通的wav格式的文件,将wav格式语音信号通过分帧加窗等操作转换为神经网络需要的二维频谱图像信号,即语谱图;
第二步,声学模型学习,将第一步中得到的语谱图结果输入到cnn卷积神经网络和ctc连接性时序分类;
第三步,通过语言模型输出最终的语音序列结果;
第四步,利用梯度下降的方式对上述的第一~三步骤进行前馈和反馈的迭代训练,直至损失收敛至不再变化。
进一步的,所述前端硬件部分采用基于安卓系统的平板电脑,通过基于安卓的编程,实现录音并将录音发送至后端服务器。
进一步的,所述后端软件部分的后端服务器采用apache服务器,采用django为web服务框架。
由上,本发明提供的一种基于知识图谱的智能厨房问答助手系统至少具有如下有益效果:
(1)实时语音播报做菜步骤:避免传统菜谱教学单一枯燥的教学方式,通过提供实时语音播报做菜步骤功能,用户能够做到做菜与小助手教学同步。
(2)通过输入的菜品名称,输出此菜谱名称的操作流程,进而可以选择实时播报做菜步骤:解决不知道如何做菜的问题。
(3)通过输入食材名称,输出此食材可以做成的菜品名称,进而给出菜品的菜谱以及做菜步骤:解决对给定的一种食材,而不知道可以做成什么菜或者不知道通过什么方式来做的问题。
(4)“猜你喜欢”,根据历史菜单生成推荐菜单:解决不知道吃什么菜的问题。
另外,本发明具有方便、精准的优点,并且能够根据用户的喜好自适应地发现满足用户用餐习惯的食谱信息。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下结合优选实施例,并配合附图,详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍。
图1为本发明的知识库示例的结构示意图;
图2为本发明的“水煮鱼”实体在知识库中逻辑存储结构示意图;
图3为本发明实现知识图谱问答流程示意图;
图4为本发明的整体方框图;
图5为本发明中语音识别功能模块的二维频谱图像信号图;
图6为本发明中语音识别功能模块的cnn结构图;
图7为本发明中语音识别功能模块的ctc模型图;
图8为本发明中整体流程图。
图中:1-前端硬件部分、2-后端软件部分、3-语音识别功能模块、4-基于知识图谱的问答功能模块、5-智能算法推荐模块、6-后端服务器。
具体实施方式
下面结合附图详细说明本发明的具体实施方式,其作为本说明书的一部分,通过实施例来说明本发明的原理,本发明的其他方面、特征及其优点通过该详细说明将会变得一目了然。在所参照的附图中,不同的图中相同或相似的部件使用相同的附图标号来表示。
本发明主要利用了基于深度学习的语音识别技术,基于知识图谱的问答技术、推荐、语音合成技术。以下为详细描述:
(1)首先需要将用户所说的语音转化为文字,所用到的技术为语音识别技术。以下为语音识别技术的概述:
语音识别技术:语音识别(automaticspeechrecognition,asr)所要解决的问题是让计算机能够"听懂"人类的语音,将语音转化成文本。语音识别是实现智能的人机交互的前沿阵地,是实现机器翻译,自然语言理解等的前提条件。
(2)通过以上的语音识别技术,我们可以得到用户说的语音转化后的文本内容,利用此文本内容,我们通过基于知识图谱的问答,理解用户讲的语音的语义。以下为知识图谱和基于知识图谱的问答技术的概述:
知识图谱:是结构化的语义知识库,用于迅速描述物理世界中的概念及其相互关系。知识图谱通过对错综复杂的文档的数据进行有效的加工、处理、整合,将其转化为简单、清晰的“(实体,关系,实体)”的三元组,最后聚合大量知识,从而实现知识的快速响应和推理。
如图1所示,可以看到,如果两个节点之间存在关系,他们就会被一条无向边连接在一起,那么这个节点,我们称为实体(entity),它们之间的这条边,我们称为关系(relationship)。知识图谱的基本单位为“头实体(entity)-关系(relationship)-尾实体(entity)”构成的三元组,这也是知识图谱的核心。其中:
实体:指的是具有可区别性且独立存在的某种事物,有头实体和尾实体之分。实体是知识图谱中的最基本元素,不同的实体间存在不同的关系。如图1中的“中国”、“北京”、“16410平方公里”等。
关系:关系是连接不同的实体,指代实体之间的联系。通过关系节点把知识图谱中的节点连接起来,形成一张大图。如图1中的“人口”、“首都”、“面积”等。
本发明使用索答菜谱本体信息作为知识库,其包含了50万个实体,每个菜谱包含菜名,食材,味道,烹饪时间等属性。例如对于菜名水煮鱼在知识库可以表述为:
如图2所示,对于水煮鱼实体在知识库的存储中可以有以下三元组:(水煮鱼,食材,草鱼…)、(水煮鱼,味道,麻辣)、(水煮鱼,难易度,一般)…
基于知识图谱的问答:知识库问答(knowledgebasequestionanswering,kbqa)即给定自然语言问题,通过对问句进行语义理解和解析,进而利用知识库进行查询、推理得出答案。如图3所示,对于问句:“水煮鱼属于什么菜系?”
通过对输入的问句进行分析,得到问句中涉及到的实体以及实体对应的关系,通过查询知识库获得该问句答案。对于以上问句“水煮鱼属于什么菜系?”通过提取问句中实体节点“水煮鱼”,关系为“菜系”,我们查询知识库找到三元组“(水煮鱼,菜系,川菜)”,便可以得到节点川菜为正确答案。此处我们使用基于深度学习的ar-smcnn模型和wrl-bilstm模型来实现基于知识图谱的问答,通过此模型,可以将语音转为后的文字进行实体的提取和关系的抽取,之后将实体和关系通过sparql查询语言查询知识库,得到最终的结果。
(3)问句经过基于知识图谱的问答解析后,我们可以得到用户所问问句的答案,进而通过语音的方式响应用户。整体流程为:利用了深度学习的语音识别技术,结合知识图谱搭建出一套语音处理自动问答系统模型,该模型能够对用户发出的语音进行数据获取及语音识别(asr),然后经过机器翻译(mt)得到文字数据,再经过知识图谱进行智能推理分析、推荐,得到的结果经过语音合成(tts)将文字转换成自然流畅的语言输出,从而使计算机具备能听会说、能理解会分析的能力,也使人机交互过程变得更精准更快捷。
如图4-8所示,本发明的基于知识图谱的智能厨房问答助手系统,包括:前端硬件部分1,用于捕获用户的语音输入,并将语音数据传输至后端服务器6;接受后端服务器6的响应的数据,并进行数据的展示;后端软件部分2,与所述前端硬件部分1连接,包括用于在后端服务器6运行下的语音识别功能模块3、基于知识图谱的问答功能模块4、智能算法推荐模块5。
其中,所述前端硬件部分1采用基于安卓系统的平板电脑,通过基于安卓的编程,实现录音并将录音发送至后端服务器6。
所述后端软件部分2的后端服务器6采用apache服务器,采用django为web服务框架。
在本实施例中,后端服务器响应的结果分为两种,一种是语音数据,一种是文本和图片数据。前端硬件需要对语音数据进行播放,对文本数据进行可视化展示。
在前端硬件端可以实时的监测用户的语音输入,通过系统监测预设的语音内容可以触发系统记录用户的语音输入,待检测到用户输入完成后,即将此次的语音内容发送至后端服务器中。服务器中首先通过语音识别技术将语音转化为文本。
具体的,所述语音识别功能模块3的算法如下:
对于上述公式,w表示文字序列,y表示语音输入,p(w|y)表示给定一条语音输入y,输出文字序列w的概率;p(y)表示的是出现这条语音的概率,相对于需要求解的文字序列参数w没有直接的关系,因此在求解时可以忽略;p(y|w)表示给定一个文字序列出现这条音频的概率,它是语音识别中的声学模型;p(w)表示出现这个文字序列的概率,它就是语音识别中的语言模型。
具体的,所述语音识别功能模块3包括:
声学模型,采用卷积神经网络cnn和连接性时序分类ctc(connectionisttemporalclassification)方法;避免通过传统方式需要进行复杂的序列标注工作。
语言模型,使用统计语言模型,将拼音转换为最终的文本。
具体的,所述语音识别功能模块3的操作步骤如下:
第一步,采集数据,采集到的数据即为普通的wav格式的文件,将wav格式语音信号通过分帧加窗等操作转换为神经网络需要的二维频谱图像信号,即语谱图;
第二步,声学模型学习,将第一步中得到的语谱图结果输入到cnn卷积神经网络和ctc连接性时序分类;其cnn网络结构类似于vgg的深层的卷积神经网络作为网络模型,并训练,此处通过keras和tensorflow框架实现;
其中,ctc主要对cnn的输出进行解码,因为在语音识别系统的声学模型输出中,往往包含了大量连续重复的符号,所以需要将连续相同的符号合并为同一个符号,然后再去除静音分隔标记符,得到最终实际的语音拼音符号序列。
第三步,通过语言模型输出最终的语音序列结果;
第四步,利用梯度下降的方式对上述的第一~三步骤进行前馈和反馈的迭代训练,直至损失收敛至不再变化。至此语音识别的模型训练完毕,利用训练好的模型可对前端硬件传到服务器的语音数据转换为文字。
基于知识图谱的问答功能模块4,通过语音识别将用户所说的语音转化为文本数据,之后通过基于知识图谱的问答来理解用户所描述的问句。如技术背景中描述对于一个问句,分析其中的实体和关系。对于一个问句例如“水煮鱼的难易程度怎么样?”对问句进行分析,提取实体为“水煮鱼”,提取关系为“难易度”,对此查询知识库,找到包含“水煮鱼”的实体,找到“难易度”的关系的三元组,即为(水煮鱼,难易度,一般),由此三元组可以得知:水煮鱼的难易程度为一般。
在本发明中对于实体的分析,用基于深度学习的ar-smcnn(attentiverecurrentneuralnetworkwithsimilaritymatrixbasedconvolutionalneuralnetwork)算法中的启发式方法来找到问题中的实体。对于问题中的关系的检测在本发明中选用wrl-bilstm(extractingword-levelandrelationshipnamelevelandliterallevelfeatureswithbilstm)算法模型。有了实体和关系后通过sparql语言查询知识库,得到问句答案。得到答案后将答案文本转为语音,服务器端将语音数据响应到前端硬件进行播放。
对基于知识图谱问答所涉及到的两个步骤,实体链接和关系抽取均需通过使用梯度下降方式训练至损失不再变化。训练完成后将得到的权重文件部署至服务器上对语音转化后的文本进行分析识别。本发明中,利用基于知识图谱的问答技术,建立原食材与菜谱之间的映射。如同看到“米、海苔、三文鱼”就能想到日本寿司,看到“鸡蛋、火腿、面包、沙拉酱”就能想到三明治一样。
本发明的整体工作流程:前端发送语音到服务器端,服务器接收语音后通过上述语音识别模型将语音转为文本格式,通过基于知识图谱的问答技术来解析用户说的问句语音的语义,生成查询语句到知识库中进行查询得到问句答案,并将答案合成语音返回给用户。
基于此过程本发明可以实现以下功能:
(一)实时播报做菜步骤:
此功能解决传统菜谱教学中只能简单提供做菜步骤介绍,而不能提供实时教学的缺陷。小助手可以以语音的形式让做菜的厨师与小助手的教学同步。具体表现形式为,在用户选定了某个菜品后,可以语音的形式选择是否开启同步教学模式。以西红柿鸡蛋为例,小助手会对不同时间的不同操作均以语音形式播报,如开始语音教学后,语音播报起锅烧火,开火10秒后语音播报放油两汤勺,15秒后语音播报倒入鸡蛋翻炒15秒……
具体实现方式为:在知识库构建存储时,菜谱对应的做菜步骤的三元组,例如:(西红柿鸡蛋,做菜步骤,0s起锅烧火;10s放油两汤勺;15s倒入鸡蛋翻炒…)如需获取具体的做菜步骤,只需通过查询知识库中菜谱对应的“做菜步骤”关系,对应的尾实体即可得到具体的做菜步骤。通过解析做菜步骤中的时间数据,根据相应时间生成相应的语音,响应到前端播放。
(二)通过输入的菜名,输出当前菜名的菜谱内容,进而可以给出指定菜品做菜步骤:
此功能解决不知道如何做菜的问题。通过语音的方式询问小助手,如“西红柿鸡蛋怎么做?”通过上述的语音识别技术,将语音翻译为文本,通过上述基于知识图谱的问答技术分析用户所问的问句语义,即为查询实体名为“西红柿”、关系名“做菜步骤”的三元组中的尾实体,其结果为具体菜品的做菜步骤。之后给出选项是否开启实时播报做菜步骤,如果开启则执行上述(一)中的实时播报做菜流程。
(三)通过输入食材名称,输出相关菜品名称,进而给出此菜品的具体做菜步骤:
此功能解决对给定的一种食材,而不知通过什么方式来做的问题。用户通过语音方式询问小助手,如“西红柿可以做什么菜?”通过上述的语音识别技术,将语音翻译为文本,并通过上述基于知识图谱的问答技术分析用户所问的问句语义,即为查询食材中包含“西红柿”的所有实体,其结果为所有可选的菜品。选择具体菜品,并给出选项,是否触发功能(一)的实时教学步骤。
(四)“猜你喜欢”,根据历史菜单生成推荐菜单:
此功能解决不知道吃什么菜的问题。通过记录用户选择的菜品历史记录,根据协同过滤算法通过对相似用户的选择进行推荐,生成当前用户可能喜欢的菜品列表,并推送给用户。用户可以选择具体菜品,并选择是否触发(一)中的实时教学功能。
综上所述,本发明采取软硬件结合的方式,前台向用户展示后台分析处理的数据,利用知识图谱,能够根据用户提供的信息精确地分析其喜好,为用户推荐出适合的菜谱,同时因为带有智能问答,系统能够准确理解用户想要表达的意思,快速准确地搜索用户想要的健康菜品,用户还能边听教程边做菜。
以上所述是本发明的优选实施方式而已,当然不能以此来限定本发明之权利范围,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和变动,这些改进和变动也视为本发明的保护范围。
网址:一种基于知识图谱的智能厨房问答助手系统的制作方法 https://www.yuejiaxmz.com/news/view/1252024
相关内容
基于知识图谱的健康膳食知识智能问答系统.pptx从0到1构建一个基于知识图谱的智能问答系统
一种基于智慧中控屏的人工智能厨房助手系统
一种基于智能厨房秤的菜单推荐方法和系统与流程
一种健康菜谱智能推荐系统的制作方法
一种基于语音识别的智能家居控制系统的制作方法
一种智能健康厨房系统的制作方法
基于事件和知识图谱的智能运维实践
一种基于物联网的智能语音识别控制系统及方法与流程
一种基于知识图谱的健康饮食推荐方法研究