一种语音识别方法及其相关设备
技术领域
本申请涉及人工智能
技术领域
,尤其涉及一种语音识别方法及其相关设备。背景技术
随着语音识别技术的发展,语音识别技术的应用场景越来越广泛。例如,语音识别技术可以应用在语音输入法、语音助手、听见会议系统等等。
然而,因相关语音识别技术存在缺陷,使得基于该相关语音识别技术的语音识别过程具有较差的实时性。
发明内容
本申请实施例的主要目的在于提供一种语音识别方法及其相关设备,能够有效地提高语音识别的实时性。
本申请实施例提供了一种语音识别方法,所述方法包括:
获取当前语音段和所述当前语音段对应的参考语音;其中,所述参考语音的采集时间晚于所述当前语音段的采集时间;
依据待使用状态数据和所述当前语音段对应的参考语音,对所述当前语音段进行编码处理,得到所述当前语音段的语音编码和所述当前语音段的编码状态数据;
对所述当前语音段的语音编码进行解码处理,得到所述当前语音段对应的语音文本,并利用所述当前语音段的编码状态数据,更新所述待使用状态数据。
在一种可能的实施方式中,所述语音编码的确定过程,包括:
分别对所述当前语音段和所述当前语音段对应的参考语音进行特征提取,得到所述当前语音段的语音特征和所述当前语音段对应的参考特征;
按照所述待使用状态数据,对所述当前语音段的语音特征进行正向编码,得到所述当前语音段的正向编码结果;
依据所述当前语音段对应的参考特征,对所述当前语音段的语音特征进行反向编码,得到所述当前语音段的反向编码结果;
将所述当前语音段的正向编码结果和所述当前语音段的反向编码结果进行拼接,得到所述当前语音段的语音编码。
在一种可能的实施方式中,所述反向编码结果的确定过程,包括:
对所述当前语音段对应的参考特征进行反向编码,得到所述当前语音段对应的反向初始状态数据;
按照所述当前语音段对应的反向初始状态数据,对所述当前语音段的语音特征进行反向编码,得到所述当前语音段的反向编码结果。
在一种可能的实施方式中,所述依据所述当前语音段对应的参考特征,对所述当前语音段的语音特征进行反向编码,得到所述当前语音段的反向编码结果,包括:
将所述当前语音段的语音特征和所述当前语音段对应的参考特征输入预先构建的简单回归单元SRU网络,得到所述SRU网络输出的所述当前语音段的反向编码结果。
在一种可能的实施方式中,所述编码状态数据的确定过程,包括:
对所述当前语音段进行特征提取,得到所述当前语音段的语音特征;
按照所述待使用状态数据,对所述当前语音段的语音特征进行正向编码,得到所述当前语音段的编码状态数据。
在一种可能的实施方式中,若所述当前语音段和所述当前语音段对应的参考语音是依据预设窗口尺寸进行采集的,且所述预设窗口参数包括识别窗口尺寸和参考窗口尺寸,则所述当前语音段和所述当前语音段对应的参考语音的采集过程,包括:
根据所述识别窗口尺寸,采集当前语音段;
根据所述参考窗口尺寸和所述当前语音段的采集结束时间点,确定所述参考数据采集时间段;
按照所述参考数据采集时间段,采集所述当前语音段对应的参考语音。
本申请实施例还提供了一种语音识别装置,包括:
语音获取单元,用于获取当前语音段和所述当前语音段对应的参考语音;其中,所述参考语音的采集时间晚于所述当前语音段的采集时间;
语音编码单元,用于依据待使用状态数据和所述当前语音段对应的参考语音,对所述当前语音段进行编码处理,得到所述当前语音段的语音编码和所述当前语音段的编码状态数据;
语音解码单元,用于对所述当前语音段的语音编码进行解码处理,得到所述当前语音段对应的语音文本;
数据更新单元,用于利用所述当前语音段的编码状态数据,更新所述待使用状态数据。
本申请实施例还提供了一种设备,所述设备包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行本申请实施例提供的语音识别方法的任一实施方式。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行本申请实施例提供的语音识别方法的任一实施方式。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行本申请实施例提供的语音识别方法的任一实施方式。
基于上述技术方案,本申请具有以下有益效果:
本申请提供的语音识别方法中,在获取到当前语音段和该当前语音段对应的参考语音之后,先依据待使用状态数据和该当前语音段对应的参考语音,对该当前语音段进行编码处理,得到该当前语音段的语音编码和该当前语音段的编码状态数据;再对该当前语音段的语音编码进行解码处理,得到该当前语音段对应的语音文本,并利用该当前语音段的编码状态数据,更新该待使用状态数据,以便在下一轮语音识别过程中能够使用更新后的待使用状态数据进行编码处理。
其中,因当前语音段用于表示由拾音设备从用户语音流中实时采集的语音数据,使得本申请提供的语音识别方法能够针对实时采集的语音数据进行实时地语音识别,从而能够实现边进行语音采集边进行语音识别的目的,如此能够有效地提高语音识别的实时性。
还因待使用状态数据能够准确地表征出当前语音段的历史语音信息,且该当前语音段对应的参考语音能够准确地表示出当前语音段的未来语音信息,使得参考该待使用状态数据和该参考语音(也就是,参考该当前语音段的上下文信息)确定的语音编码能够更准确地表示出该当前语音段携带的语音信息,如此有利于提高语音识别准确性。
又因待使用状态数据是在历史语音识别过程(也就是,针对该当前语音段对应的历史语音进行语音识别的过程)中已经计算过的,使得当前轮语音识别过程可以直接使用待使用状态数据即可,无需重新计算该待使用状态数据,如此能够有效地降低针对当前语音的语音识别耗时,从而能够有效地提高针对当前语音的语音识别效率,进而有利于提高语音识别的实时性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种语音识别方法的流程图;
图2为本申请实施例提供的一种用户语音流的分段采集示意图;
图3为本申请实施例提供的一种编码处理的示意图;
图4为本申请实施例提供的一种语音识别装置的结构示意图。
具体实施方式
发明人针对语音识别的研究中发现,对于一些语音识别技术(如,基于双向长短记忆网络(Bidirectional Long Short TermMemory,BLSTM)的语音识别方法等)来说,因这些语音识别技术只能针对具有整句语音文本(如,今天天气如何)的语音数据进行语音识别,使得这些语音识别技术只能等拾音设备采集完那些携带有整句语音文本的语音数据之后才能针对这些语音数据进行语音识别,使得这些语音识别技术的语音识别耗时不仅包括针对语音数据进行语音识别处理所消耗的处理时长,还包括采集具有整句语音文本的语音数据所消耗的等待时长,从而使得这些语音识别技术的语音识别耗时较长,导致基于这些语音识别技术的语音识别过程的实时性较差。
基于上述发现,为了解决背景技术部分的技术问题,本申请实施例提供了一种语音识别方法,该方法包括:获取当前语音段和该当前语音段对应的参考语音;依据待使用状态数据和该当前语音段对应的参考语音,对该当前语音段进行编码处理,得到该当前语音段的语音编码和该当前语音段的编码状态数据;对该当前语音段的语音编码进行解码处理,得到该当前语音段对应的语音文本,并利用该当前语音段的编码状态数据,更新该待使用状态数据。
可见,因当前语音段用于表示由拾音设备从用户语音流中实时采集的语音数据,使得本申请提供的语音识别方法能够针对实时采集的语音数据进行实时地语音识别,从而能够实现边进行语音采集边进行语音识别的目的,如此能够有效地避免因采集携带有整句语音文本的语音数据而产生的等待耗时,从而能够有效地提高语音识别的实时性。
还因待使用状态数据能够准确地表征出当前语音段的历史语音信息,且该当前语音段对应的参考语音能够准确地表示出当前语音段的未来语音信息,使得参考该待使用状态数据和该参考语音(也就是,参考该当前语音段的上下文信息)确定的语音编码能够更准确地表示出该当前语音段携带的语音信息,如此有利于提高语音识别准确性。另外,又因待使用状态数据是在历史语音识别过程(也就是,针对该当前语音段对应的历史语音进行语音识别的过程)中已经计算过的,使得当前轮语音识别过程可以直接使用待使用状态数据即可,无需重新计算该待使用状态数据,如此能够有效地降低针对当前语音的语音识别耗时,从而能够有效地提高针对当前语音的语音识别效率,进而有利于提高语音识别的实时性。
另外,本申请实施例不限定语音识别方法的执行主体,例如,本申请实施例提供的语音识别方法可以应用于终端设备或服务器等数据处理设备。其中,终端设备可以为智能手机、计算机、个人数字助理(Personal Digital Assitant,PDA)或平板电脑等。服务器可以为独立服务器、集群服务器或云服务器。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
方法实施例
参见图1,该图为本申请实施例提供的一种语音识别方法的流程图。
本申请实施例提供的语音识别方法,包括S1-S4:
S1:获取当前语音段和该当前语音段对应的参考语音。
其中,当前语音段用于表示由拾音设备(如,麦克风等)从用户语音流(如,携带有“今天天气如何”的用户语音流)中实时采集的语音数据(如,图2所示的第一语音片段、第二语音片段、……、第八语音片段)。另外,当前语音段可以包括Nc帧语音数据,且Nc为正整数。
当前语音段对应的参考语音用于表示针对当前语音段进行语音识别时所需参考的语音数据;而且该参考语音的采集时间晚于该当前语音段的采集时间,以使该参考语音用于表示该当前语音段的未来语音信息。也就是,当前语音段对应的参考语音可以包括该当前语音段对应的未来语音段。例如,若当前语音段为图2中“第一语音片段”,则该当前语音段对应的参考语音可以是图2中“第二语音片段”。
另外,当前语音段对应的参考语音可以包括Nr帧语音数据。其中,Nr为正整数。需要说明的是,本申请实施例不限定Nc与Nr之间的大小关系。
此外,本申请实施例不限定拾音设备针对当前语音段及其对应的参考语音的采集过程,例如,拾音设备可以按照预设窗口尺寸采集当前语音段和当前语音段对应的参考语音。
其中,预设窗口尺寸用于表示拾音设备从用户语音流中采集各种语音片段(如,当前语音段、当前语音段对应的参考语音)时所需使用的采集窗口大小。
另外,本申请实施例不限定预设窗口尺寸,例如,预设窗口尺寸可以包括识别窗口尺寸和参考窗口尺寸。其中,识别窗口尺寸用于表示拾音设备从用户语音流中实时采集需要进行语音识别处理的语音片段时所需使用的采集窗口大小。参考窗口大小用于表示拾音设备从用户语音流中采集作为参考信息的语音片段时所需使用的采集窗口大小。需要说明的是,本申请实施例不限定识别窗口尺寸和参考窗口尺寸之间的大小关系,例如,识别窗口尺寸可以等于参考窗口尺寸。
实际上,识别窗口尺寸能够控制拾音设备采集哪些需要进行语音识别处理的语音片段的等待时长,而且参考窗口尺寸能够控制未来语音信息的信息量,使得该识别窗口尺寸以及该参考窗口尺寸均能够影响语音识别过程中未来语音信息的处理耗时。基于此,为了更好地满足不同应用场景的实时性需求,可以根据待使用应用场景的实时性需求,设定识别窗口尺寸以及参考窗口尺寸。其中,待使用应用场景用于表示本申请实施例提供的语音识别方法的应用场景。
另外,本申请实施例不限定当前语音段及其对应的参考语音的采集过程,例如,在一种可能的实施方式下,若预设窗口尺寸包括识别窗口尺寸和参考窗口尺寸,则该采集过程具体可以包括步骤11-步骤13:
步骤11:根据识别窗口尺寸,采集当前语音段。
本申请实施例中,对于拾音设备来说,该拾音设备可以先依据识别窗口尺寸,确定语音流划分时长(如,图2中“d”);再按照该语音流划分时长对用户语音流进行实时地分段采集(如,图2中“第一语音片段”)并实时地发送给“语音识别方法”的执行设备,以使该“语音识别方法”的执行设备能够针对其接收的语音片段进行实时地语音识别处理。
例如,如图2所示,若识别窗口尺寸为d,且用户在第T时刻开始说话,则该拾音设备在第T+d时刻采集到第一语音片段之后,立即将其发送给“语音识别方法”的执行设备,以使该“语音识别方法”的执行设备能够针对该第一语音片段进行语音识别;该拾音设备在第T+2d时刻采集到第二语音片段之后,立即将其发送给“语音识别方法”的执行设备,以使该“语音识别方法”的执行设备能够针对该第二语音片段进行语音识别;……(以此类推);该拾音设备在第T+8d时刻采集到第八语音片段之后,立即将其发送给“语音识别方法”的执行设备,以使该“语音识别方法”的执行设备能够针对该第八语音片段进行语音识别。其中,d为正整数。
步骤12:根据参考窗口尺寸和当前语音段的采集结束时间点,确定参考数据采集时间段。
其中,参考数据采集时间段是指拾音设备采集当前语音段的未来语音信息时所需依据的时间段。另外,本申请实施例不限定参考数据采集时间段的确定方式,例如,若当前语音段的采集时间段为[Tstart,Tend],且参考窗口尺寸为D,则参考数据采集时间段可以是[Tend,Tend+D]。其中,Tstart表示拾音设备采集当前语音段的开始时间点;Tend表示拾音设备采集当前语音段的采集结束时间点(也就是,当前语音段的采集结束时间点);D为正整数。
步骤13:按照参考数据采集时间段,采集当前语音段对应的参考语音。
本申请实施例中,对于拾音设备来说,在获取到参考数据采集时间段之后,该拾音设备可以按照该参考数据采集时间段从用户语音流中进行语音数据采集,并将采集到的语音数据作为当前语音段对应的参考语音。
基于上述步骤11至步骤13的相关内容可知,拾音设备可以按照预设窗口尺寸从用户语音流中实时地采集当前语音段及其对应的参考语音,并实时地将当前语音段及其对应的参考语音分别发送给“语音识别方法”的执行设备,以使该“语音识别方法”的执行设备能够针对当前语音段进行实时地语音识别处理。
需要说明的是,本申请实施例不限定当前语音段及其对应的参考语音的发送时间,例如,为了进一步提高语音识别效率,在拾音设备采集到当前语音段之后,该拾音设备可以立即将该当前语音段发送给“语音识别方法”的执行设备,以使该“语音识别方法”的执行设备能够立即针对该当前语音段进行相应处理(如,特征提取、正向编码等处理),如此能够充分地利用该当前语音段对应的参考数据采集时间段(也就是,由拾音设备从用户语音流中采集该当前语音段对应的参考语音的时间段),从而能够有效地提高语音识别效率。
基于上述S1的相关内容可知,对于一些实时性需求比较高的应用场景(如,语音输入法、语音助手、听见会议系统等)来说,当用户开始说话时,拾音设备即可按照预设窗口尺寸对用户语音流进行实时地分段采集并实时地发送给“语音识别方法”的执行设备,以使该“语音识别方法”的执行设备能够针对其接收的语音片段进行实时地语音识别处理,如此能够实现边采集边语音识别的目的,如此能够有效地避免采集携带有整句语音文本的语音数据的等待耗时,从而能够有效地提高语音识别的实时性。
S2:依据待使用状态数据和当前语音段对应的参考语音,对该当前语音段进行编码处理,得到该当前语音段的语音编码和该当前语音段的编码状态数据。
待使用状态数据用于表示当前语音段的历史语音信息;而且,为了提高语音识别效率,待使用状态数据可以根据上一轮语音识别过程中产生的编码状态数据进行确定。
上一轮语音过程是指针对当前语音段的最近历史语音段进行语音识别的过程。其中,当前语音段的最近历史语音段的采集时间早于该当前语音段,而且该最近历史语音段的采集结束时间点与该当前语音段的采集开始时间点相邻。例如,若当前语音段为图2中“第二语音片段”,则该当前语音段的最近历史语音段可以是图2中“第一语音片段”。
基于上述两段内容可知,对于第j轮语音识别过程来说,若j=1,则在该第j轮语音识别过程中进行编码处理时所使用的待使用状态数据可以预先设定;若j≥2,则在该第j轮语音识别过程中进行编码处理所使用的待使用状态数据可以根据在第j-1轮语音识别过程中进行编码处理时所产生的编码状态数据确定。其中,第j轮语音识别过程是指针对用户语音流中第j个语音片段进行语音识别的过程;j为正整数。
当前语音段的语音编码用于表征该当前语音段携带的语音信息。
当前语音段的编码状态数据是指在对该当前语音段进行编码处理时所产生的编码状态数据(如,细胞状态数据和/或隐藏层状态数据)。
本申请实施例不限定S2中“编码处理”的实施方式(也就是,S2的实施方式),例如,在一种可能的实施方式中,为了提高编码效率,S2具体可以包括S21-S25:
S21:分别对当前语音段和该当前语音段对应的参考语音进行特征提取,得到该当前语音段的语音特征和该当前语音段对应的参考特征。
其中,当前语音段的语音特征是通过对当前语音段进行特征提取得到的,以使该语音特征用于表示该当前语音段携带的语音信息。例如,若当前语音段包括第Tstart帧语音数据至第Tstart+Nc-1帧语音数据,则该当前语音段的语音特征可以为
当前语音段对应的参考特征是通过对该当前语音段对应的参考语音进行特征提取得到的,以使该参考特征用于表示该参考语音携带的语音信息(也就是,该当前语音段的未来语音信息)。例如,若当前语音段对应的参考语音第Tstart+Nc帧语音数据至第Tstart+Nc+Nr-1帧语音数据,则当前语音段对应的参考特征可以为
另外,本申请实施例不限定S21中“特征提取”的实施方式,例如,可以采用现有的或者未来出现的任一种能够针对语音数据进行特征提取的方法(如,感知线性预测系数(Perceptual linear predictive,PLP)特征提取方法、梅尔倒谱系数(Mel frequencycepstrum coefficient,MFCC)特征提取方法、或FilterBank特征提取方法等)进行实施。
此外,本申请实施例不限定当前语音段的语音特征的获取时间与该当前语音段对应的参考特征的获取时间之间的关系,例如,因当前语音段的采集时间早于其对应的参考语音的采集时间,故为了提高语音识别效率,可以在拾音设备开始采集参考语音时,由“语音识别方法”的执行设备开始针对已采集好的该当前语音段进行特征提取,以使该当前语音段的语音特征的获取时间早于该当前语音段对应的参考特征的获取时间,如此能够有效地利用参考语音的采集时间段,从而有利于提高语音识别效率。
S22:按照待使用状态数据,对当前语音段的语音特征进行正向编码,得到该当前语音段的正向编码结果和该当前语音段的编码状态数据。
其中,当前语音段的正向编码结果是指针对该当前语音段进行正向编码得到的编码结果。例如,若利用正向编码网络针对该当前语音段进行正向编码时,则该当前语音段的正向编码结果可以是指由该正向编码网络输出的隐藏层状态数据。
另外,S22中“正向编码”是指按照一个语音特征序列的正方向排列顺序依次针对该语音特征序列中各个语音特征进行编码的过程。例如,对于语音特征序列来说,可以针对该语音特征序列中各个语音特征从前往后依次进行编码(也就是,依次针对 进行编码)。
此外,本申请实施例不限定S22中“正向编码”的实施方式,可以采用现有的或者未来出现的任一种能够针对语音数据进行正向编码处理的实施方式进行实施(例如,可以采用LSTM网络、或者采用BLSTM中正向编码网络进行实施)。
当前语音段的编码状态数据可以包括针对当前语音段进行正向编码时所产生的编码状态数据。为了便于理解,下面结合示例进行说明。
作为示例,若S22中“正向编码”是按照LSTM网络进行实施的,且当前语音段的语音特征为则该当前语音段的编码状态数据可以包括针对该当前语音段进行正向编码时所产生的细胞状态数据和/或针对该当前语音段进行正向编码时所产生的隐藏层状态数据其中,表示LSTM网络针对当前语音段中第l+1帧语音数据进行正向编码得到的细胞状态;表示LSTM网络针对当前语音段中第l+1帧语音数据进行正向编码得到的隐藏层状态(也就是,LSTM网络的输出数据)。l为非负整数,0≤l≤Nc-1,Nc为正整数。
本申请实施例不限定S22中“待使用状态数据”在正向编码过程中所起作用,例如,在利用LSTM网络针对当前语音段进行正向编码时,可以将该待使用状态数据作为该LSTM网络的初始状态数据(如,若待使用状态数据包括针对当前语音段的最近历史语音段中第Nc帧语音数据进行正向编码得到的细胞状态,则可以将该待使用状态数据作为该LSTM网络的细胞状态的初始化参数值),以便后续LSTM网络能够基于该待使用状态数据对当前语音段进行正向编码。
基于上述S22的相关内容可知,在获取到当前语音段的语音特征之后,可以参考待使用状态数据对当前语音段的语音特征进行正向编码,得到该当前语音段的正向编码结果以及编码状态数据,以便后续能够利用该正向编码结果确定该当前语音段的语音编码,并保存该当前语音段的编码状态数据,以便在下一轮语音识别过程中使用,以使在下一轮语音识别过程中无需针对历史语音数据进行编码处理,如此能够有效地降低语音识别的耗时,从而能够提高语音识别效率。
S23:依据当前语音段对应的参考特征,对该当前语音段的语音特征进行反向编码,得到该当前语音段的反向编码结果。
其中,当前语音段的反向编码结果是指针对该当前语音段进行反向编码得到的编码结果。例如,若利用反向编码网络针对该当前语音段进行反向编码时,则该当前语音段的反向编码结果可以是指由该反向编码网络输出的隐藏层状态数据。
另外,S22中“反向编码”是指按照一个语音特征序列的反方向排列顺序依次针对该语音特征序列中各个语音特征进行编码的过程。例如,对于语音特征序列来说,可以针对该语音特征序列中各个语音特征从后往前依次进行编码(也就是,依次针对 进行编码)。
此外,本申请实施例不限定S23中“反向编码”的实施方式,可以采用现有的或者未来出现的任一种能够针对语音数据进行正向编码处理的实施方式进行实施(例如,可以采用BLSTM中反向编码网络进行实施)。
另外,本申请实施例不限定S23的实施方式,例如,在一种可能的实施方式中,S23具体可以包括S231-S232:
S231:对当前语音段对应的参考特征进行反向编码,得到该当前语音段对应的反向初始状态数据。
其中,当前语音段对应的反向初始状态数据是指针对该当前语音段进行反向编码时所使用的编码状态数据(如,细胞状态数据和/或隐藏层状态数据)的初始化参数值。
另外,本申请实施例不限定“反向初始状态数据”的确定方式(也就是,S231的实施方式),例如,在一种可能的实施方式中,S231具体可以包括:先对当前语音段对应的参考特征进行反向编码,得到该参考特征对应的编码状态数据;再根据该参考特征对应的编码状态数据,确定该当前语音段对应的反向初始状态数据。
为了便于理解,下面结合示例进行说明。
作为示例,若在S231中利用反向编码网络(如,BLSTM中反向编码网络或者下文SRU网络)实现“反向编码”,且当前语音段对应的参考特征为则S231具体可以包括:先利用该反向编码网络针对进行反向编码,得到隐藏层状态数据和细胞状态数据再从上述两个状态数据中确定出该当前语音段对应的反向初始状态数据(例如,可以将参考语音中第1帧语音数据对应的编码状态数据(如,和/或)确定为该当前语音段对应的反向初始状态数据),以使该当前语音段对应的反向初始状态数据能够准确地表示出该当前语音段的未来语音信息。
S232:按照当前语音段对应的反向初始状态数据,对该当前语音段的语音特征进行反向编码,得到该当前语音段的反向编码结果。
作为示例,若在S232中利用反向编码网络(如,BLSTM中反向编码网络或者下文SRU网络)实现“反向编码”,则S232具体可以包括:利用当前语音段对应的反向初始状态数据(如,和/或),对该反向编码网络涉及的状态数据(如,隐藏层状态数据和/或细胞状态数据)进行初始化处理,得到状态数据初始化后的反向编码网络;在利用该状态数据初始化后的反向编码网络,对该当前语音段的语音特征进行反向编码,得到该当前语音段的反向编码结果
基于上述S231至S232的相关内容可知,在获取到当前语音段对应的语音特征以及参考特征之后,可以先对当前语音段对应的参考特征进行反向编码,得到该参考特征对应的反向编码数据(如,反向隐藏层状态数据和反向细胞状态数据);再根据该参考特征对应的反向编码数据,确定该当前语音段对应的反向初始状态数据,以使该反向初始状态数据能够准确地表示出该当前语音段的未来语音信息;最后,按照该反向初始状态数据,对该当前语音段的语音特征进行反向编码,得到该当前语音段的反向编码结果,以使该反向编码结果能够更准确地表示出该当前语音段携带的语音信息。
实际上,为了进一步提高S23中“反向编码”的编码效率,可以采用预先构建的简单回归单元(Simple Recurrent Unit,SRU)网络进行实施,也就是,S23具体可以为:将当前语音段的语音特征和该当前语音段对应的参考特征输入预先构建的SRU网络,得到该SRU网络输出的该当前语音段的反向编码结果。
其中,SRU网络可以利用公式(1)-(5)进行编码。
ft=σ(Wfxt+bf) (2)
rt=σ(Wrxt+br) (3)
ht=rt⊙g(ct)+(1-rt)⊙xt (5)
式中,ht表示在第t时刻SRU网络的输出数据;xt表示在第t时刻下SRU网络的输入数据;ct-1表示在第t-1时刻下SRU网络对应的网络细胞状态;σ、W、Wf、Wr均表示预先设定的参数值;g(·)表示激活函数。
基于上述公式(1)-(5)可知,计算ft和rt时只需关注在第t时刻SRU网络的输入数据xt即可,无需依赖前一时刻下SRU网络的输出数据ht-1,故ft和rt可以并行计算,如此有利于提高反向编码效率,从而有利于提高语音识别效率。
基于上述SRU网络的相关内容可知,在获取到当前语音段的语音特征和该当前语音段对应的参考特征之后,先将两者进行拼接得到拼接特征再将该拼接特征输入SRU网络,以使该SRU网络针对该拼接特征进行反向编码,得到并输出该拼接特征的反向编码结果最后,从该拼接特征的反向编码结果中提取出该当前语音段的反向编码结果
基于上述S23的相关内容可知,在获取到当前语音段的语音特征以及参考特征之后,可以参考该当前语音段的参考特征,对该当前语音段的语音特征进行反向编码,得到该当前语音段的反向编码结果,以使该反向编码结果是结合当前语音段携带的语音信息以及该当前语音段对应的参考语音携带的语音信息综合确定的,使得该方向编码结果更准确,如此有利于提高语音识别准确性。
S24:将当前语音段的正向编码结果和该当前语音段的反向编码结果进行拼接,得到该当前语音段的语音编码。
本申请实施例中,在获取到当前语音段的正向编码结果和该当前语音段的反向编码结果之后,可以将两者进行拼接,得到该当前语音段的语音编码
基于上述S2的相关内容可知,在获取到当前语音段之后,可以参考该当前语音段的历史语音信息(如,待使用状态数据)和该当前语音段的未来语音信息(如,当前语音段对应的参考语音),对该当前语音段进行编码处理(如图3所示的编码处理过程),得到该当前语音段的语音编码和该当前语音段的编码状态数据。
S3:对当前语音段的语音编码进行解码处理,得到该当前语音段对应的语音文本。
其中,当前语音段对应的语音文本用于表示该当前语音段携带的语音信息。
另外,本申请实施例不限定S3中“解码处理”的实施方式,例如,可以采用现有的或者未来出现的任一种能够针对语音编码进行解码处理的实施方式进行实施(例如,可以采用有限加权状态转换机(weighted finaite-state transducer,WFST)解码器、或者采用端到端语音识别模型中的解码(decoder)层进行实施)。
基于上述S3的相关内容可知,在获取到当前语音段的语音编码之后,可以直接对该语音编码进行解码处理,得到该当前语音段对应的语音文本,以使该语音文本能够准确地表示出该当前语音段携带的语音信息。
S4:利用当前语音段的编码状态数据,更新待使用状态数据。
本申请实施例中,在获取到当前语音段的编码状态数据之后,可以利用该当前语音段的编码状态数据,更新待使用状态数据(例如,若当前语音段的编码状态数据为则可以将待使用状态数据更新为该编码状态数据中最后一个状态数据),以使更新后的待使用状态数据能够准确地表示出当前语音段及其对应的历史语音段携带的语音信息,以便在下一轮语音识别过程中能够使用该当前语音段的编码状态数据针对该当前语音段的最近未来语音段进行编码处理(尤其是进行正向编码),以使在下一轮语音过程中无需针对其对应的历史语音数据进行编码处理,如此有利于提高语音识别效率,从而能够提高语音识别过程的实时性。
其中,当前语音段的最近未来语音段的采集时间晚于该当前语音段,而且该最近未来语音段的采集开始时间点与该当前语音段的采集结束时间点相邻。例如,若当前语音段为图2中“第二语音片段”,则该当前语音段的最近未来语音段(也就是,在下一轮语音识别过程中需要被语音识别的处理对象)可以是图2中“第三语音片段”。
需要说明的是,本申请实施例不限定S3和S4的执行顺序,例如,可以依次执行S3和S4,也可以依次执行S4和S3,还可以同时执行S3和S4。
基于上述S1至S3的相关内容可知,对于本申请实施例提供的语音识别方法来说,在获取到当前语音段和该当前语音段对应的参考语音之后,先依据待使用状态数据和该当前语音段对应的参考语音,对该当前语音段进行编码处理,得到该当前语音段的语音编码和该当前语音段的编码状态数据;再对该当前语音段的语音编码进行解码处理,得到该当前语音段对应的语音文本,并利用该当前语音段的编码状态数据,更新该待使用状态数据。
其中,因当前语音段用于表示由拾音设备从用户语音流中实时采集的语音数据,使得本申请提供的语音识别方法能够针对实时采集的语音数据进行实时地语音识别,从而能够实现边进行语音采集边进行语音识别的目的,如此能够有效地提高语音识别的实时性。
还因待使用状态数据能够准确地表征出当前语音段的历史语音信息,且该当前语音段对应的参考语音能够准确地表示出当前语音段的未来语音信息,使得参考该待使用状态数据和该参考语音(也就是,参考该当前语音段的上下文信息)确定的语音编码能够更准确地表示出该当前语音段携带的语音信息,如此有利于提高语音识别准确性。
又因待使用状态数据是在历史语音识别过程(也就是,针对该当前语音段对应的历史语音进行语音识别的过程)中已经计算过的,使得当前轮语音识别过程可以直接使用待使用状态数据即可,无需重新计算该待使用状态数据,如此能够有效地降低针对当前语音的语音识别耗时,从而能够有效地提高针对当前语音的语音识别效率,进而有利于提高语音识别的实时性。
基于上述方法实施例提供的语音识别方法,本申请实施例还提供了一种语音识别装置,下面结合附图进行解释和说明。
装置实施例
装置实施例对语音识别装置进行介绍,相关内容请参见上述方法实施例。
参见图4,该图为本申请实施例提供的一种语音识别装置的结构示意图。
本申请实施例提供的语音识别装置400,包括:
语音获取单元401,用于获取当前语音段和所述当前语音段对应的参考语音;其中,所述参考语音的采集时间晚于所述当前语音段的采集时间;
语音编码单元402,用于依据待使用状态数据和所述当前语音段对应的参考语音,对所述当前语音段进行编码处理,得到所述当前语音段的语音编码和所述当前语音段的编码状态数据;
语音解码单元403,用于对所述当前语音段的语音编码进行解码处理,得到所述当前语音段对应的语音文本;
数据更新单元404,用于利用所述当前语音段的编码状态数据,更新所述待使用状态数据。
在一种可能的实施方式中,所述语音编码单元402,包括:
第一提取子单元,用于分别对所述当前语音段和所述当前语音段对应的参考语音进行特征提取,得到所述当前语音段的语音特征和所述当前语音段对应的参考特征;
正向编码子单元,用于按照所述待使用状态数据,对所述当前语音段的语音特征进行正向编码,得到所述当前语音段的正向编码结果;
反向编码子单元,用于依据所述当前语音段对应的参考特征,对所述当前语音段的语音特征进行反向编码,得到所述当前语音段的反向编码结果;
编码拼接子单元,用于将所述当前语音段的正向编码结果和所述当前语音段的反向编码结果进行拼接,得到所述当前语音段的语音编码。
在一种可能的实施方式中,所述反向编码子单元,具体用于:
对所述当前语音段对应的参考特征进行反向编码,得到所述当前语音段对应的反向初始状态数据;
按照所述当前语音段对应的反向初始状态数据,对所述当前语音段的语音特征进行反向编码,得到所述当前语音段的反向编码结果。
在一种可能的实施方式中,所述反向编码子单元,具体用于:
将所述当前语音段的语音特征和所述当前语音段对应的参考特征输入预先构建的简单回归单元SRU网络,得到所述SRU网络输出的所述当前语音段的反向编码结果。
在一种可能的实施方式中,所述语音编码单元402,包括:
第二提取子单元,用于对所述当前语音段进行特征提取,得到所述当前语音段的语音特征;
状态确定子单元,用于按照所述待使用状态数据,对所述当前语音段的语音特征进行正向编码,得到所述当前语音段的编码状态数据。
在一种可能的实施方式中,若所述当前语音段和所述当前语音段对应的参考语音是依据预设窗口尺寸进行采集的,且所述预设窗口参数包括识别窗口尺寸和参考窗口尺寸,则所述当前语音段和所述当前语音段对应的参考语音的采集过程,包括:
根据所述识别窗口尺寸,采集当前语音段;
根据所述参考窗口尺寸和所述当前语音段的采集结束时间点,确定所述参考数据采集时间段;
按照所述参考数据采集时间段,采集所述当前语音段对应的参考语音。
进一步地,本申请实施例还提供了一种语音识别设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述语音识别方法的任一种实现方法。
进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述语音识别方法的任一种实现方法。
进一步地,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述语音识别方法的任一种实现方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本申请各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。