发明内容
本发明实施例提供了一种语音处理方法、***和终端,能够得到各种侧重不同的搜索结果
第一方面,提供了一种语音处理方法,包括:
将语音发送至多个NLP引擎,以使所述多个NLP引擎分别对所述语音进行识别,以获取识别结果;
接收来自于所述多个NLP引擎的识别结果;
根据来自于所述多个NLP引擎的识别结果,确定一个或多个识别结果并向用户输出所述一个或多个识别结果。
结合第一方面,在第一方面的第一种可能的实现方式中,所述根据来自于所述多个NLP引擎的识别结果,确定一个或多个识别结果,包括:
根据所述多个NLP引擎的识别结果,对所述多个NLP引擎中的每一个NLP引擎进行打分,以获取所述每一个NLP引擎的本次识别得分;
根据所述每一个NLP引擎的本次识别得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定所述一个或多个识别结果以及输出次序。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述每一个NLP引擎的本次识别得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定所述一个或多个识别结果以及输出次序,包括:
根据所述每一个NLP引擎的本次识别得分、所述每一个NLP引擎的历史得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定所述一个或多个识别结果以及输出次序。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述确定所述一个或多个识别结果并向用户输出所述一个或多个识别结果以及输出次序,包括:
根据所述每一个NLP引擎的本次识别得分、所述每一个NLP引擎的历史得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,选择来自于不同的NLP引擎的识别结果,并以按照引擎交叉排序的方式确定所述来自于不同的NLP引擎的识别结果的输出次序。
结合第一方面的第二种可能的实现方式或第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:
根据所述每一个NLP引擎的本次识别得分,对所述每一个NLP引擎的历史总得分进行修正,以得到所述每一个NLP引擎的最新得分。
结合第一方面的第二种可能的实现方式、第三种可能的实现方式或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述方法还包括:
根据用户针对输出的识别结果的选择输入,对所述输出的识别结果对应的NLP引擎的历史得分进行修正,以得到所述输出的识别结果对应的NLP引擎的最新得分。
结合第一方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式、第四种可能的实现方式或第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述对所述多个NLP引擎中的每一个NLP引擎进行打分,包括:
根据所述每一个NLP引擎的响应时间、给出的识别结果的多少或识别结果的离散程度,对所述多个NLP引擎中的每一个NLP引擎进行打分。
结合第一方面、第一方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式、第四种可能的实现方式、第五种可能的实现方式或第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述将语音发送至多个NLP引擎,包括:
通过代理服务器将所述语音发送至所述多个NLP引擎。
结合第一方面、第一方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式、第四种可能的实现方式、第五种可能的实现方式、第六种可能的实现方式或第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述将语音发送至多个NLP引擎之前,所述方法还包括:
根据NLP引擎集合中每一个NLP引擎的历史得分,从所述NLP引擎集合中确定所述多个NLP引擎。
第二方面,提供了一种终端,包括:
发送单元,用于将语音发送至多个NLP引擎,以使所述多个NLP引擎分别对所述语音进行识别,以获取识别结果;
接收单元,用于接收来自于所述多个NLP引擎的识别结果;
第一确定单元,用于根据来自于所述多个NLP引擎的识别结果,确定一个或多个识别结果;
输出单元,用于向用户输出所述一个或多个识别结果。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第一确定单元包括:
打分子单元,用于根据所述多个NLP引擎的识别结果,对所述多个NLP引擎中的每一个NLP引擎进行打分,以获取所述每一个NLP引擎的本次识别得分;
确定子单元,用于根据所述每一个NLP引擎的本次识别得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定所述一个或多个识别结果的输出次序。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述确定子单元具体用于:
根据所述每一个NLP引擎的本次识别得分、所述每一个NLP引擎的历史得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定所述一个或多个识别结果的输出次序。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述确定子单元具体用于:根据所述每一个NLP引擎的本次识别得分、所述每一个NLP引擎的历史得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,选择来自于不同NLP引擎的识别结果,以及以按照引擎交叉排序的方式确定所述来自于不同的NLP引擎的识别结果的输出次序。
结合第二方面的第二种可能的实现方式或第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述终端还包括:
第一修正单元,用于根据所述每一个NLP引擎的本次识别得分,对所述每一个NLP引擎的历史总得分进行修正,以得到所述每一个NLP引擎的最新得分。
结合第二方面的第二种可能的实现方式、第三种可能的实现方式或第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述终端还包括:
第二修正单元,用于根据用户针对输出的识别结果的选择输入,对所述输出的识别结果对应的NLP引擎的历史得分进行修正,以得到所述输出的识别结果对应的NLP引擎的最新得分。
结合第二方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式、第四种可能的实现方式或第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述打分子单元具体用于:
根据所述每一个NLP引擎的响应时间、给出的识别结果的多少或识别结果的离散程度,对所述多个NLP引擎中的每一个NLP引擎进行打分。
结合第二方面、第二方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式、第四种可能的实现方式、第五种可能的实现方式或第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述发送单元具体用于:
通过代理服务器将所述语音发送至所述多个NLP引擎。
结合第二方面、第二方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式、第四种可能的实现方式、第五种可能的实现方式、第六种可能的实现方式或第七种可能的实现方式,在第二方面的第八种可能的实现方式中,所述终端还包括:
第二确定单元,用于根据NLP引擎集合中每一个NLP引擎的历史得分,从所述NLP引擎集合中确定所述多个NLP引擎。
第三方面,提供了一种语音处理***,其特征在于,包括如第二方面或第二方面中任一种可能的实现方式中所述的终端;以及多个引擎,分别用于根据对所述终端发送的语音进行识别,以获取识别结果,并将所述识别结果发送至所述终端。
结合第三方面,在第三方面的第一种可能的实现方式中,所述语音处理***,还包括:代理服务器,用于接收所述终端发送的语音,并将所述语音转发至所述多个引擎。
因此,在本发明实施例中,通过向语音发送至多个NLP引擎,以使所述多个NLP引擎分别对所述语音进行识别,以获取识别结果;接收来自于所述多个NLP引擎的识别结果;根据来自于所述多个NLP引擎的识别结果,确定一个或多个识别结果并向用户输出所述一个或多个识别结果,可以使得多个NLP引擎为用户的一段语音进行处理,可以利用到多个厂商的技术,从而可以得到各种侧重不同的搜索结果。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明的技术方案,可以应用于各种通信***,例如:GSM,码分多址(CDMA,CodeDivisionMultipleAccess)***,宽带码分多址(WCDMA,WidebandCodeDivisionMultipleAccessWireless),通用分组无线业务(GPRS,GeneralPacketRadioService),长期演进(LTE,LongTermEvolution)等。
终端(Terminal),也可称之为用户设备(UserEquipment,简称“UE”),可以经无线接入网(例如,RadioAccessNetwork,简称“RAN”)与一个或多个核心网进行通信。
图1示出了根据本发明实施例的语音处理方法100的示意性流程图。如图1所示,该方法100包括:
S110,将语音发送至多个NLP引擎,以使所述多个NLP引擎分别对该语音进行识别,以获取识别结果,其中,该语音可以为终端对用户的话语进行录制而得到的一段录音片段流;
S120,接收来自于该多个NLP引擎的识别结果;
S130,根据来自于该多个NLP引擎的识别结果,确定一个或多个识别结果并向用户输出所述一个或多个识别结果。
具体地说,终端在获取了一个录音片段流之后,可以将该一个录音片段流发送至多个NLP引擎,其中,终端可以直接将该录音片段流发送至多个NLP引擎,也可以通过代理服务器将该录音片段流发送至多个NLP引擎;该多个NLP引擎中的每一个NLP引擎在收到终端发送的录音片段流之后,可以对该录音片段流进行识别,并获取一个或多个识别结果;终端在接收到来自于多个NLP引擎的识别结果之后,从该多个NLP引擎发送的识别结果中,选择一个或多个识别结果向用户输出(例如,通过显示器或扬声器向用户输出),以供用户选择,其中,向用户输出的识别结果可以来自于一个NLP引擎,也可以是来自于多个NLP引擎。
在本发明实施例中,NLP引擎接收到终端发送的语音之后,可以对语音进行识别,以获取一个或多个识别结果,并对自己获取的每一个识别结果进行打分,NLP引擎在获取到识别结果以及对每一个识别结果进行打分之后,可以将获取到的识别结果以及每一个识别结果的分数发送给终端。
在本发明实施例中,S130中根据来自于该多个NLP引擎的识别结果,确定一个或多个识别结果,可以包括:根据该多个NLP引擎的识别结果,对该多个NLP引擎中的每一个NLP引擎进行打分,获取该每一个NLP引擎的本次识别得分;以及根据该每一个NLP引擎的本次识别得分以及该每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定一个或多个识别结果以及输出次序。
在本发明实施例中,在接收到来自于多个NLP引擎中的每一个NLP引擎的识别结果之后,可以对该NLP引擎的本次识别进行打分,其中,可以根据该每一个NLP引擎的响应时间、给出的识别结果的多少或识别结果的离散程度,对该多个NLP引擎中的每一个NLP引擎的本次识别进行打分,然后,可以根据该每一个NLP引擎的本次识别得分以及该每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定一个或多个识别结果并向用户输出该一个或多个识别结果。
在本发明实施例中,可以将本次识别得分高的NLP引擎的所有识别结果排序在本次识别得分低的NLP引擎的所有识别结果的前面;也可以根据终端对NLP引擎的本次识别打的分以及根据NLP引擎针对各自的每一个识别结果所提供的分数,交叉的向用户输出各个NLP引擎全部的识别结果或排序靠前的识别结果,例如,假设共有两个NLP引擎,可以将此次识别得分为第一的NLP引擎的识别结果中分数最高的识别结果排在第一位,将此次识别得分为第二的NLP引擎识别结果中分数最高的识别结果排在第二位,将将此次识别得分为第一的NLP引擎的识别结果中分数第二高的识别结果排在第三位,将此次识别得分为第二的NLP引擎识别结果中分数第二高的识别结果排在第四位,依次类推,其中,各个识别结果的分数是相应的引擎提供的。
本发明实施例中,在每次识别的打分过程中,响应时间短的NLP引擎的分数高于响应时间短的NLP引擎的分数,给出的识别结果多的NLP引擎的分数高于给出的识别结果少的NLP引擎的分数,给出的识别结果的离散程度高的NLP引擎的分数高于给出的识别结果的离散程度低的NLP引擎的分数。在本发明实施例中,如果考虑每一个NLP引擎的响应时间、给出的识别结果的多少或识别结果的离散程度中的多个因素,则可以为每一种因素设置一个分数比例,例如,假设针对此次打分总分为10分,则响应时间、给出的识别结果的多少、识别结果的离散程度所占的分值可以分别为3分、3分和4分,当然,也可以是别的比值,该分数比值可以由用户自己设定,例如,如果用户比较看重响应时间,则可以为响应时间设定更高的分数比值。
在本发明实施例中,给出的识别结果的离散程度是指NLP引擎对其各自的识别结果所打的分数的相近程度,其中,分数越相近则离散程度越低,而分数相差越远则离散程度较高。
在本发明实施例中,可以针对响应时间设定一个阈值,如果某一NLP引擎的响应时间小于该阈值的话,可以将该NLP引擎的本次识别得分设定为正分,如果在该时间阈值到期的时候,还没收到另一NLP引擎的识别结果,则可以直接将该NLP引擎的本次识别得分设定为0分或负分,然后可以不等该另一NLP引擎发送识别结果,直接向用户输出已收到的NLP引擎的识别结果,如果后续再接收到该另一NLP引擎的识别结果时,则直接放弃该另一NLP引擎发送过来的识别结果,即意味着说,对某一NLP引擎的本次识别的打分的过程可以在接收到该NLP引擎发送的识别结果之前进行。从而,终端不用等到收到所有NLP引擎的识别结果后,再向用户输出识别结果,减少了用户的等待时间。当然,若设定了时间阈值,则可以根据时间阈值内接收到的识别结果对应的NLP引擎的具体响应时间、给出的识别结果的多少或识别结果的离散程度对NLP引擎进行打分。
在本发明实施例中,终端在接收到来自于多个NLP引擎的识别结果,可以针对此次识别结果,根据接收到的识别结果对该多个NLP引擎中的每一个引擎进行打分,然后,可以根据此次识别得分修正对应的NLP引擎的历史得分,例如,可以将此次识别打分累积到相应的NLP引擎的历史得分,然后根据每一个NLP引擎的最新得分以及该多个NLP引擎针对各自的每一个识别结果所提供的分数,向该用户输出可供用户选择的识别结果。在本发明实施例中,可以将总得分高的NLP引擎的所有识别结果排序在总得分低的NLP引擎的所有识别结果的前面;也可以通过交叉排序各个NLP引擎的识别结果的方式向用户输出可供用户选择的识别结果,例如,假设共有两个NLP引擎,可以将总得分为第一的NLP引擎的识别结果中分数最高的识别结果排在第一位,将总得分为第二的NLP引擎识别结果中分数最高的识别结果排在第二位,将将总得分为第一的NLP引擎的识别结果中分数第二高的识别结果排在第三位,将总得分为第二的NLP引擎识别结果中分数第二高的识别结果排在第四位,依次类推,其中,各个识别结果的分数是相应的引擎提供的。
在本发明实施例中,也可以直接根据NLP引擎的此次识别得分、NLP引擎的历史得分以及每一个引擎针对各自的每一个识别结果所提供的分数直接选择向用户输出的识别结果,而非通过对NLP引擎的历史得分进行修正,根据修正后的最新得分再向用户输出识别结果。例如,由于用户的响应时间超过预定阈值而在打分过程中直接将某一NLP引擎的此次识别得分置为0,就算该NLP引擎的历史得分很高,由于此次的识别结果得分较低,则可以直接放弃该NLP引擎的识别结果,或者由于某一NLP引擎的离散程度过低,而使该NLP引擎的此次识别结果得分过低,就算该NLP引擎的历史得分很高,也可以将该NLP引擎的识别结果排在所有NLP引擎的后面。其中,终端可以在选择了需要输出的识别结果之后,再对每一个NLP引擎的历史得分进行修正,以供后续使用。
在本发明实施例中,可以只向用户输出最佳的识别结果,该最佳的识别结果可以是最新得分最高的NLP引擎中的具有最高的分数的识别结果,在本发明实施例中,也可以按序输出全部的识别结果,也可以按序输出排序比较靠前位的识别结果。具体可以根据用户自己的设定进行识别结果的选择输出。
在本发明实施例中,该方法100还可以包括:
根据用户针对输出的识别结果的选择输入,修正该输出的识别结果对应的NLP引擎的历史得分,以获取该输出的识别结果对应的NLP引擎的最新得分。
具体地说,如果输出的是一个识别结果,用户可以针对该识别结果向终端输入自己的满意度或者是否接受该识别结果,然后,终端可以根据针对该识别结果的选择输入,修正该输出的识别结果对应的NLP引擎的历史得分以得到最新得分,例如,用户接受该识别结果,则可以为该识别结果对应的NLP引擎进行加分,如果用户拒绝该识别结果,可以为该识别结果对应的NLP引擎进行减分。如果向用户输出的是多个识别结果,则可以对该用户最终选择使用识别结果对应的NLP引擎进行加分,而对其它NLP引擎进行减分或者不加分。
在本发明实施例中,如图3所示,在S110中将语音发送至多个NLP引擎之前,该方法100还包括:
S150,根据NLP引擎集合中每一个NLP引擎的历史得分,从该NLP引擎集合中确定该多个NLP引擎。
具体地说,终端可以根据NLP引擎集合中的每一个NLP引擎的历史得分,选择将要进行语音识别的NLP引擎,例如,可以选择历史得分排在前两位的NLP引擎或者选择历史得分高于预定阈值的NLP引擎。
因此,在本发明实施例中,通过向将语音发送至多个NLP引擎,以使所述多个NLP引擎分别对所述语音进行识别,以获取识别结果;接收来自于所述多个NLP引擎的识别结果;根据来自于所述多个NLP引擎的识别结果,确定一个或多个识别结果并用用户输出所述一个或多个识别结果,可以使得多个NLP引擎为用户的一段语音进行处理,可以利用到多个厂商的技术,从而可以得到各种侧重不同的搜索结果。更进一步地,通过对所述多个NLP引擎中的每一个NLP引擎进行打分,根据所述每一个NLP引擎的所得的本次识别得分以及每一个NLP引擎针对各自的每一个识别结果所提供的分数,向所述用户输出可供用户选择的识别结果,可以实现对引擎的筛选,做到优中选优。
以上已结合图1描述了根据本发明实施例的语音处理方法,以下将结合图2至图4描述根据本发明实施例的终端。
图2是根据本发明实施例的终端200的示意性框图。如图2所示,该终端200包括:
发送单元210,用于将语音发送至多个NLP引擎,以使所述多个NLP引擎分别对所述语音进行识别,以获取识别结果;
接收单元220,用于接收来自于所述多个NLP引擎的识别结果;
第一确定单元230,用于根据来自于所述多个NLP引擎的识别结果,确定一个或多个识别结果;
输出单元240,向用户输出所述一个或多个识别结果。
可选地,如图3所示,所述第一确定单元230包括:
打分子单元232,用于根据所述多个NLP引擎的识别结果,对所述多个NLP引擎中的每一个NLP引擎进行打分,以获取所述每一个NLP引擎的本次识别得分;
确定子单元236,用于根据所述每一个NLP引擎的本次识别得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定所述一个或多个识别结果以及输出次序。
可选地,所述确定子单元236具体用于:
根据所述每一个NLP引擎的本次识别得分、所述每一个NLP引擎的历史得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定所述一个或多个识别结果以及输出次序。
可选地,所述确定子单元236具体用于:根据所述每一个NLP引擎的本次识别得分、所述每一个NLP引擎的历史得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定一个最佳的识别结果,以及所述输出单元240,具体用于向所述用户输出所述一个最佳的识别结果;
或者,所述确定子单元236,具体用于根据所述每一个NLP引擎的本次识别得分、所述每一个NLP引擎的历史得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,选择来自于不同的NLP引擎的识别结果,以及按照引擎交叉排序的方式确定所述来自于不同的NLP引擎的识别结果的输出次序。
可选地,如图3所示,所述终端200还包括:
第一修正单元250,用于根据所述每一个NLP引擎的本次识别得分,对所述每一个NLP引擎的历史总得分进行修正,以得到所述每一个NLP引擎的最新得分。
可选地,如图4所示,所述终端200还包括:
第二修正单元260,用于根据用户针对输出的识别结果的选择输入,对所述输出的识别结果对应的NLP引擎的历史得分进行修正,以得到所述输出的识别结果对应的NLP引擎的最新得分。
可选地,所述打分子单元232具体用于:根据所述每一个NLP引擎的响应时间、给出的识别结果的多少或识别结果的离散程度,对所述多个NLP引擎中的每一个NLP引擎进行打分。
可选地,所述发送单元210具体用于:
通过代理服务器将所述语音发送至所述多个NLP引擎。
可选地,如图3所示,所述终端200还包括:
第二确定单元270,用于根据NLP引擎集合中每一个NLP引擎的历史得分,从所述NLP引擎集合中确定所述多个NLP引擎。
应理解,根据本发明实施例的终端200可对应于本发明实施例中的语音处理方法100中的终端,并且终端200中的各个单元的上述和其它操作和/或功能分别为了实现图1的方法100的相应流程,为了简洁,在此不再赘述。
因此,在本发明实施例中,通过向语音发送至多个NLP引擎,以使所述多个NLP引擎分别对所述语音进行识别,以获取识别结果;接收来自于所述多个NLP引擎的识别结果;根据来自于所述多个NLP引擎的识别结果,选择一个或多个识别结果并向用户输出所述一个或多个识别结果,可以使得多个NLP引擎为用户的一段语音进行处理,可以利用到多个厂商的技术,从而可以得到各种侧重不同的搜索结果。更进一步地,通过对所述多个NLP引擎中的每一个NLP引擎进行打分,根据所述每一个NLP引擎的所得的本次识别得分以及每一个NLP引擎针对各自的每一个识别结果所提供的分数,向所述用户输出可供用户选择的识别结果,可以实现对引擎的筛选,做到优中选优。
图4是根据本发明实施例的终端300的示意性框图。如图4所示,该终端300包括:存储器310、接收器320、发送器330、处理器340、总线350,输出装置360,其中,存储器310、接收器320、发送器330、处理器340和输出装置360通过总线350连接。
其中,存储器310存储一组程序代码,且处理器330用于调用存储器310存储的程序代码,执行以下操作:
将语音通过发送器330发送至多个NLP引擎,以使所述多个NLP引擎分别对所述语音进行识别,以获取识别结果;
通过接收器320接收来自于所述多个NLP引擎的识别结果;
根据来自于所述多个NLP引擎的识别结果,确定一个或多个识别结果,通过输出装置360向用户输出该一个或多个识别结果。例如,通过显示器将该一个或多个识别结果呈现给用户,或通过扬声器将该一个或多个识别结果提供给用户。
可选地,处理器340用于调用存储器310存储的程序代码,具体执行以下操作:
根据所述多个NLP引擎的识别结果,对所述多个NLP引擎中的每一个NLP引擎进行打分,以获取所述每一个NLP引擎的本次识别得分;
根据所述每一个NLP引擎的本次识别得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定该一个或多个识别结果以及输出次序。
可选地,处理器340用于调用存储器310存储的程序代码,具体执行以下操作:
根据所述每一个NLP引擎的本次识别得分、所述每一个NLP引擎的历史得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定该一个或多个识别结果以及输出次序。
可选地,处理器340用于调用存储器310存储的程序代码,具体执行以下操作:
根据所述每一个NLP引擎的本次识别得分、所述每一个NLP引擎的历史得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定一个最佳的识别结果,并通过输出装置360向所述用户输出该最佳的识别结果;或者
根据所述每一个NLP引擎的本次识别得分、所述每一个NLP引擎的历史得分以及所述每一个NLP引擎针对各自的每一个识别结果所提供的分数,选择来自于不同的NLP引擎的识别结果,并以按照引擎交叉排序的方式确定所述自于不同的NLP引擎的识别结果的输出次序。
可选地,处理器340用于调用存储器310存储的程序代码,还执行以下操作:
根据所述每一个NLP引擎的本次识别得分,对所述每一个NLP引擎的历史总得分进行修正,以得到所述每一个NLP引擎的最新得分。
可选地,处理器340用于调用存储器310存储的程序代码,还执行以下操作:
根据用户针对输出的识别结果的选择输入,对所述输出的识别结果对应的NLP引擎的历史得分进行修正,以得到所述输出的识别结果对应的NLP引擎的最新得分。
可选地,处理器340用于调用存储器310存储的程序代码,具体执行以下操作:
根据所述每一个NLP引擎的响应时间、给出的识别结果的多少或识别结果的离散程度,对所述多个NLP引擎中的每一个NLP引擎进行打分。
可选地,处理器340用于调用存储器310存储的程序代码,具体执行以下操作:
通过代理服务器将所述语音发送至所述多个NLP引擎。
可选地,处理器340用于调用存储器310存储的程序代码,还执行以下操作:
根据NLP引擎集合中每一个NLP引擎的历史得分,从所述NLP引擎集合中确定所述多个NLP引擎。
应理解,根据本发明实施例的终端300可对应于本发明实施例中的语音处理方法100中的终端,并且终端300中的各个单元的上述和其它操作和/或功能分别为了实现图1的方法100的相应流程,为了简洁,在此不再赘述。
因此,在本发明实施例中,通过向将语音发送至多个NLP引擎,以使所述多个NLP引擎分别对所述语音进行识别,以获取识别结果;接收来自于所述多个NLP引擎的识别结果;根据来自于所述多个NLP引擎的识别结果,向用户输出可供用户选择的识别结果,可以使得多个NLP引擎为用户的一段语音进行处理,可以利用到多个厂商的技术,从而可以得到各种侧重不同的搜索结果。更进一步地,通过对所述多个NLP引擎中的每一个NLP引擎进行打分,根据所述每一个NLP引擎的所得的本次识别得分以及每一个NLP引擎针对各自的每一个识别结果所提供的分数,向所述用户输出可供用户选择的识别结果,可以实现对引擎的筛选,做到优中选优。
图5是根据本发明实施例的语音处理***400的示意性框图。如图5所示,该***400包括终端410,以及多个引擎420。
所述终端410,用于将语音发送至多个NLP引擎,以使所述多个NLP引擎分别对所述语音进行识别,以获取识别结果;接收来自于所述多个NLP引擎的识别结果;根据来自于所述多个NLP引擎的识别结果,确定一个或多个识别结果,并向用户输出该一个或多个识别结果。
所述多个NLP引擎420,分别用于根据对所述终端发送的语音进行识别,以获取识别结果,并将获取的识别结果发送至所述终端。
可选地,如图5所示,该***400还包括:
代理服务器430,用于接收所述终端发送的语音,并将所述语音转发至所述多个引擎。
应理解,根据本发明实施例的终端410可对应于本发明实施例中的终端200或300,为了简洁,在此不再赘述。还应理解,虽然图中示出了三个NLP引擎,但发明实施例并不限定NLP引擎的个数,只要本发明实施例的语音处理***包括两个或两个以上的引擎即可。
因此,在本发明实施例中,通过向将语音发送至多个NLP引擎,以使所述多个NLP引擎分别对所述语音进行识别,以获取识别结果;接收来自于所述多个NLP引擎的识别结果;根据来自于所述多个NLP引擎的识别结果,向用户输出可供用户选择的识别结果,可以使得多个NLP引擎为用户的一段语音进行处理,可以利用到多个厂商的技术,从而可以得到各种侧重不同的搜索结果。更进一步地,通过对所述多个NLP引擎中的每一个NLP引擎进行打分,根据所述每一个NLP引擎的所得的本次识别得分以及每一个NLP引擎针对各自的每一个识别结果所提供的分数,确定一个或多个识别结果,并向用户输出该一个或多个识别结果,可以实现对引擎的筛选,做到优中选优。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或步骤可以用硬件、处理器执行的软件程序,或者二者的结合来实施。软件程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内。