本发明涉及人工智能领域,尤其涉及一种语音与文本匹配的方法及装置、设备和计算机可读介质。
背景技术:
随着语音技术的发展,现有越来越多的场景中自动识别语音命令。例如,用户可以在一些游戏中,用户可以通过语音输入,从而使游戏人物执行某一些游戏技能。
然而目前在对用户语音和文字进行匹配时,一般只是通过简单的正则匹配或者改写等,来“套”用户的语音输入,然后得到对应的意图。当匹配和改写都没有命中的时候,一般就返回“我没能理解,请再说一般”之类的兜底话术。
中国语言本身博大精深千变万化,再加上各地的口音不尽相同,即使是同一句话,识别的结果也可能完全不同。因此,通过正则匹配或者改写的方法,得到的数据十分有限,很难可以真正匹配上识别的结果。就会导致设备不断地向用户提问,问用户究竟想做什么。语音交互游戏的流畅度差,用户体验不好。
技术实现要素:
本发明实施例提供一种语音与文本匹配的方法、装置、设备及计算机可读介质,以解决或缓解现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种语音与文本匹配的方法,包括:
对接收的语音信号进行识别,获取语音识别文本;
将语音识别文本与多项候选文本进行第一匹配;
当第一匹配不成功时,将语音识别文本与多项候选文本进行拼音的第二匹配。
在一种实施方式中,所述方法还包括:
当第一匹配或拼音的第二匹配成功时,输出匹配到的候选文本。
在一种实施方式中,所述方法还包括:
当拼音的第二匹配不成功时,计算语音识别文本和多项候选文本的句子向量相似度,输出句子向量相似度最大的候选文本选项。
在一种实施方式中,所述将语音识别文本与多项候选文本逐个进行拼音的第二匹配,包括:
将语音识别文本和多项候选文本都转化为拼音;
计算语音识别文本和多项候选文本的拼音的相似度;
获取相似度最大的候选文本,当所述候选文本大于设定阈值时,则作为匹配的候选文本进行输出。
在一种实施方式中,所述计算语音识别文本和候选文本的各个选项的拼音的相似度,采用以下公式进行计算:
在一种实施方式中,所述计算语音识别文本和多项候选文本的句子向量相似度,输出句子向量相似度最大的候选文本选项,包括:
将语音识别文本和多项候选文本进行分词操作;
获取分词后的每个词语的词向量;
将语音识别文本的词向量进行相加,获得语音识别文本的句子向量,以及将每项候选文本的词向量相加,分别获取各项候选文本的句子向量;
计算语音识别文本的句子向量和各项候选文本的矩形向量的余弦相似度,获取余弦相似度最大的候选文本。
第二方面,本发明实施例提供了一种语音与文本匹配的装置,包括:
识别模块,用于对接收的语音信号进行识别,获取语音识别文本;
第一匹配模块,用于将语音识别文本与多项候选文本进行第一匹配;
第二匹配模块,用于当第一匹配不成功时,将语音识别文本与多项候选文本进行拼音的第二匹配。
在一种实施方式中,该装置还包括:
输出模块,用于当第一匹配或拼音的第二匹配成功时,输出匹配到的候选文本。
在一种实施方式中,该装置还包括:
向量匹配模块,用于当拼音的第二匹配不成功时,计算语音识别文本和多项候选文本的句子向量相似度,输出句子向量相似度最大的候选文本选项。
在一种实施方式中,所述第二匹配模块包括:
转化子模块,用于将语音识别文本和多项候选文本都转化为拼音;
拼音相似度计算子模块,用于计算语音识别文本和多项候选文本的拼音的相似度;
匹配子模块,用于获取相似度最大的候选文本,当所述候选文本大于设定阈值时,则作为匹配的候选文本进行输出。
在一种实施方式中,所述拼音相似度计算子模块在计算语音识别文本和多项候选文本的拼音相似度时,具体采用以下公式:
在一种实施方式中,所述向量匹配模块包括:
分词子模块,用于将语音识别文本和多项候选文本进行分词操作;
词向量获取子模块,用于获取分词后的每个词语的词向量;
句子向量获取子模块,用于将语音识别文本的词向量进行相加,获得语音识别文本的句子向量,以及将每项候选文本的词向量相加,分别获取各项候选文本的句子向量;
向量相似度计算子模块,用于计算语音识别文本的句子向量和各项候选文本的矩形向量的余弦相似度,获取余弦相似度最大的候选文本。
第三方面,在一个可能的设计中,语音与文本匹配的装置的结构中包括处理器和存储器,所述存储器用于存储支持语音与文本匹配的装置执行上述第一方面中语音与文本匹配的方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述语音与文本匹配的装置还可以包括通信接口,用于语音与文本匹配的装置与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种计算机可读介质,用于存储语音与文本匹配的装置所用的计算机软件指令,其包括用于执行上述第一方面的语音与文本匹配的方法所涉及的程序。
本发明实施例通过依次进行精确匹配、拼音模糊匹配,可以加快匹配的速度,提高语音交互过程的流畅度。
进一步地,通过句子向量匹配可以在精确匹配和拼音模糊匹配失败的情况下进行语义相似匹配,从而可以更加准确的匹配到用户的真实意图。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1为本发明一实施例的语音与文本匹配的方法的流程图;
图2为本发明一实施例的步骤s130的具体流程图;
图3为本发明另一实施例的语音与文本匹配的方法的流程图;
图4为本发明另一实施例的步骤s140的具体流程图;
图5为本发明一实施例的语音和文本匹配方法的整体流程图;
图6为本发明一实施例的语音与文本匹配的装置的连接框图;
图7为本发明一实施例的第二匹配模块的连接框图;
图8为本发明另一实施例的语音与文本匹配的装置的连接框图;
图9为本发明另一实施例的语音与文本匹配的装置的连接框图;
图10为本发明一实施例的向量匹配模块的连接框图;
图11为本发明另一实施例的语音与文本匹配的设备框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。本发明实施例主要提供了一种通语音与文本匹配的的方法及装置,下面分别通过以下实施例进行技术方案的展开描述。
本发明提供了一种语音与文本匹配的方法和装置,以下详细介绍本发明实施例的语音与文本匹配的方法和装置的具体处理流程和原理。
如图1所示,其为本发明实施例的语音与文本匹配的方法的流程图。本发明实施例的语音与文本匹配的方法可以包括以下步骤:
s110:对接收的语音信号进行识别,获取语音识别文本。
比如,在一个游戏过程的语音识别的场景中时,可以通过识别用户的语音指令,以控制当前游戏人物发动相应的技能。比如,用户输入的语音为“我要冲撞对方”,则对用户的输入的语音进行识别,并转化为相应的文本信息。
s120:将语音识别文本与多项候选文本进行第一匹配。
在一种实施方式中,所述第一匹配可以为精确匹配模式,所述精确匹配的条件可以包括:候选文本在语音识别文本中具有相同的内容。在一种示例中,精确匹配可以采用python代码实现,例如:
forkinselect_list:
ifkinquery:
returnk;
其中,query代表语音识别文本,k表示候选文本。如果能够在语音识别文本中匹配到候选文本,则匹配成功。
比如,当前的游戏人物的技能选项包括:冲撞、火焰拳、冰冻拳、树叶拳。当识别到的文本为“我要用冲撞打对方”,则将当前的选项逐个在识别文本中进行匹配,其中“冲撞”与识别文本能够精确匹配,则匹配成功。如果识别到的语音识别文本为“胡彦祖”,则无法匹配成功,精确匹配失败。
在一种实施方式中,当精确匹配成功时,输出匹配到的候选文本。
s130:当第一匹配不成功时,将语音识别文本与多项候选文本进行拼音的第二匹配。
在一种实施方式中,所述拼音的第二匹配可以为拼音模糊匹配。如图2所示,在一种实施方式中,所述将语音识别文本与多项候选文本逐个进行拼音的第二匹配,包括:
s131:将语音识别文本和多项候选文本都转化为拼音。
比如,语音识别文本为“胡彦祖”,候选文本分别为“冲撞”、“火焰拳”、“冰冻拳”和“树叶拳”,则分别转为为拼音为:“huyanzu”,候选文本分别为“chongzhuang”,“huoyanquan”,“bingdongquan”,“shuyequan”。
s132:计算语音识别文本和多项候选文本的拼音的相似度。
在一种实施方式中,当计算语音识别文本和候选文本的各个选项的拼音的相似度时,可以采用以下公式进行计算:
比如,对于“huyanzu”和“chongzhuang”这两者之间的最长公共序列为:“huan”,长度为4,即lcs(huyanzu,chongzhuang)=4,而“chongzhuang”的长度,即len(chongzhuang)=11,因此这两者的相似度为4/11=0.36。
同理,lcs(huyanzu,huoyanquan)=6,len(huoyanquan)=10,两者的相似度为6/10=0.6。
lcs(huyanzu,bingdongquan)=3,len(bingdongquan)=12,两者的相似度为3/12=0.25.
lcs(huyanzu,shuyequan)=5,len(shuyequan)=9,两者的相似度为:5/9=0.55。
s133:获取相似度最大的候选文本,当所述候选文本大于设定阈值时,则作为匹配的候选文本进行输出。
比如,“胡彦祖”和“火焰拳”的相似度最大,因此先将“火焰拳”挑选出来。然后,再判断两者之间的相似度是否大于设定的阈值。例如,可以将阈值设定为0.5。而由于这两者的相似度为0.6,因此匹配成功。
在一种实施方式中,当模糊拼音匹配成功时,将匹配到的候选文本输出。
如图3所示,在另一种实施例中,所述语音与文本匹配的方法还包括步骤:
s140:当拼音的第二匹配不成功时,计算语音识别文本和多项候选文本的句子向量相似度,输出句子向量相似度最大的候选文本选项。
比如,候选文本为“吃番茄”、“吃蛋糕”,语音识别文本为:“喂西红柿”。在精确匹配中,没有匹配上。在拼音模糊匹配中,“吃番茄”和“喂西红柿”的拼音为“chifanqie”和“weixihongshi”,最长公共子序列为”ini”,长度为3,选项长度为9。相似度为0.333。同样,“吃蛋糕”和“喂西红柿”的拼音相似度为3/9,也是0.333。两者都没有到达阈值0.5,则进行句子向量匹配。
如图4所示,在一种实施方式中,在计算语音识别文本和多项候选文本的句子向量相似度时,可以包括:
s141:将语音识别文本和多项候选文本进行分词操作。
首先进行分词操作,将候选文本划分为:“吃、番茄”,“吃、蛋糕”,将语音识别文本划分为“喂、西红柿”。
s142:获取分词后的每个词语的词向量。
所述词向量可以指词语的向量表示,即一个词语可以对应到一个向量。对于相似的词,其对应的词向量也相近。词向量计算有很多成熟的算法,有统计语言模型、神经网络概率语言模型、深度学习模型等,只要有大量的文本语料即可训练得到合适的词向量。在一种实施方式中,例如可以直接使用了百度ai开放平台的词向量表示,输出为1024维。
例如,若采用二维向量对上述的词语进行表示,则“吃”的词向量为(0.3,0),“番茄”的词向量为(0.3,0.5),“蛋糕”的词向量为(0.6,0.2),“喂”的词向量为(0.32,0.04),“西红柿”的词向量为(0.32,0.48)。
s143:将语音识别文本的词向量进行相加,获得语音识别文本的句子向量,以及将每项候选文本的词向量相加,分别获取各项候选文本的句子向量。
例如“吃番茄”的句子向量为(0.3+0.3,0+0.5)=(0.6,0.5)。
“吃蛋糕”的句子向量为(0.3+0.6,0+0.2)=(0.9.0.2)
“喂西红柿”的句子向量为(0.32+0.32,0.04+0.48)=(0.64,0.52)。
s144:计算语音识别文本的句子向量和各项候选文本的矩形向量的余弦相似度,获取余弦相似度最大的候选文本。
例如,计算“喂西红柿”和“吃番茄”的句子向量的相似度,两者的余弦相似度
而计算“喂西红柿”和“吃蛋糕”的句子向量的余弦相似度为
经过比较,“喂西红柿”和“吃番茄”的相似度更大,因此将“吃番茄”的候选文本输出。
如图5所示,其为本发明实施例的语音和文本匹配方法的整体流程图。首先,先接收用户的输入语音和候选文本。然后,先进精确匹配,当精确匹配成功时,输出匹配候选文本。如果精确匹配不成功,再进行拼音模糊匹配,当拼音模糊匹配成功时,输出匹配候选文本。如果拼音模糊匹配不成功,再进行句子向量匹配,最后输出匹配度最高的候选文本。
本发明实施例通过依次进行精确匹配、拼音模糊匹配,可以加快匹配的速度,提高语音交互过程的流畅度。
进一步地,通过句子向量匹配可以在精确匹配和拼音模糊匹配失败的情况下进行语义相似匹配,从而可以更加准确的匹配到用户的真实意图。
如图6所示,本发明在另一种实施例中,还提供了一种语音与文本匹配的装置,包括:
识别模块110,用于对接收的语音信号进行识别,获取语音识别文本;
第一匹配模块120,用于将语音识别文本与多项候选文本进行第一匹配;
第二匹配模块130,用于当第一匹配不成功时,将语音识别文本与多项候选文本进行拼音的第二匹配。
如图7所示,所述第二匹配模块130包括:
转化子模块131,用于将语音识别文本和多项候选文本都转化为拼音;
拼音相似度计算子模块132,用于计算语音识别文本和多项候选文本的拼音的相似度。
在一种实施方式中,所述拼音相似度计算子模块132在计算语音识别文本和多项候选文本的拼音相似度时,具体采用以下公式:
匹配子模块133,用于获取相似度最大的候选文本,当所述候选文本大于设定阈值时,则作为匹配的候选文本进行输出。
如图8所示,所述语音与文本匹配的装置还包括:
输出模块140,用于当第一匹配或拼音的第二匹配成功时,输出匹配到的候选文本。
如图9所示,所述语音与文本匹配的装置还包括:
向量匹配模块150,用于当拼音的第二匹配不成功时,计算语音识别文本和多项候选文本的句子向量相似度,输出句子向量相似度最大的候选文本选项。
如图10所示,所述向量匹配模块包括:
分词子模块151,用于将语音识别文本和多项候选文本进行分词操作;
词向量获取子模块152,用于获取分词后的每个词语的词向量;
句子向量获取子模块153,用于将语音识别文本的词向量进行相加,获得语音识别文本的句子向量,以及将每项候选文本的词向量相加,分别获取各项候选文本的句子向量;
向量相似度计算子模块154,用于计算语音识别文本的句子向量和各项候选文本的矩形向量的余弦相似度,获取余弦相似度最大的候选文本。
本实施例的语音与文本匹配的装置与上述实施例的语音与文本匹配的方法的原理类似,故不再赘述。
在另一个实施例中,本发明还提供一种语音与文本匹配的设备,如图11所示,该设备包括:存储器510和处理器520,存储器510内存储有可在处理器520上运行的计算机程序。所述处理器520执行所述计算机程序时实现上述实施例中的语音与文本匹配的方法。所述存储器510和处理器520的数量可以为一个或多个。
该设备还包括:
通信接口530,用于与外界设备进行通信,进行数据交互传输。
存储器510可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
如果存储器510、处理器520和通信接口530独立实现,则存储器510、处理器520和通信接口530可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(isa,industrystandardarchitecture)总线、外部设备互连(pci,peripheralcomponent)总线或扩展工业标准体系结构(eisa,extendedindustrystandardcomponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器510、处理器520及通信接口530集成在一块芯片上,则存储器510、处理器520及通信接口530可以通过内部接口完成相互间的通信。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
本发明实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质的更具体的示例至少(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式只读存储器(cdrom)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
在本发明实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于指令执行系统、输入法或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(radiofrequency,rf)等等,或者上述的任意合适的组合。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。