一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

语音识别解码方法、装置、存储介质及计算机设备与流程

2022-03-09 04:42:33 来源:中国专利 TAG:


1.本技术涉及语音信号处理技术领域,具体涉及一种语音识别解码方法、装置、存储介质及计算机设备。


背景技术:

2.语音识别是一种通过一定的技术手段将一段音频转换成其所对应的文字的技术。当前的语音识别技术主要分为两个部分:声学计算、解码。一段音频分割成一连串语音帧,逐帧提取其特征向量后,声学模型依据该特征向量计算出其声学后验;在声学模型输出的一连串声学后验中结合语言模型(即解码网络)进行解码,解码的过程中搜索出一条最匹配的输出序列,该序列即为识别结果。
3.连接时序分类(connectionist temporal classification,ctc)声学模型与传统的语音识别的声学模型相比,传统声学模型对于每一帧都会给出明确的声学后验,而ctc声学模型加入了一个空白音素(blank)状态,当某些帧的状态不能明确属于哪个音素状态时,用blank来表征这些状态不确定时的输出状态。
4.但是,目前的技术存在解码网络过大以及解码路径冗余的缺点。


技术实现要素:

5.本技术实施例提供一种语音识别解码方法、装置、存储介质及计算机设备,可以有效压缩解码网络,以及减少解码路径冗余。
6.一方面,提供一种语音识别解码方法,所述方法包括:
7.获取已构建完成的静态解码网络;
8.在对目标语音数据进行解码的过程中,根据所述静态解码网络中已经遍历过的节点和已经遍历过的节点的出弧,确定激活节点和激活弧,以得到包含所述激活节点和所述激活弧的动态解码网络;
9.当访问所述静态解码网络上的当前节点对应的第一激活节点时,控制所述第一激活节点进行一次blank弧的传播,所述blank弧用于标记空白音素;
10.当激活所述blank弧后,从所述第一激活节点出发沿所述blank弧进行传播时,新建第二激活节点,其中,所述第一激活节点与所述第二激活节点映射所述静态解码网络上的当前节点;
11.根据与所述第二激活节点存在映射关系的所述静态解码网络上的当前节点的实弧,对所述第二激活节点进行传播,所述实弧用于标记所述当前节点的输出状态;
12.遍历所述静态解码网络上的所有节点,若访问到所述静态解码网络上的终止节点,则在所述终止节点上进行blank弧自跳。
13.可选的,所述当访问所述静态解码网络上的当前节点对应的第一激活节点时,控制所述第一激活节点进行一次blank弧的传播,包括:
14.当访问所述静态解码网络上的当前节点对应的第一激活节点时,根据所述当前节
点的实弧所携带的信息进行传播;
15.在访问完所述当前节点的所有实弧后,控制所述第一激活节点进行一次blank弧的传播,且在所述第一激活节点上记录所述第一激活节点是否沿着所述blank弧进行传播;
16.若所述第一激活节点上存在blank弧,则控制所述第一激活节点在所述blank弧传播后再进行空弧传播。
17.可选的,所述根据与所述第二激活节点存在映射关系的所述静态解码网络上的所述当前节点的实弧,对所述第二激活节点进行传播,包括:
18.当对所述第二激活节点进行传播时,寻找与所述第二激活节点存在映射关系的所述静态解码网络上的所述当前节点;
19.遍历所述静态解码网络上的所述当前节点的所有出弧,若所述当前节点的出弧中存在实弧,则将所述第二激活节点上的信息沿着所述实弧向所述当前节点的后驱节点进行传播。
20.可选的,所述遍历所述静态解码网络上的所述当前节点的所有出弧时,还包括:
21.若所述当前节点的所有出弧为空弧,则对所述第二激活节点不进行传播。
22.可选的,所述若访问到所述静态解码网络上的终止节点,则在所述终止节点上进行blank弧自跳,包括:
23.若访问到所述静态解码网络上没有出弧的节点,则将所述没有出弧的节点确定为所述静态解码网络上的终止节点;
24.当激活与所述终止节点连接的blank弧后,将所述终止节点确定为所述与所述终止节点连接的blank弧的后驱节点,以实现在所述终止节点上进行blank弧自跳。
25.可选的,在所述新建第二激活节点之后,还包括:
26.在所述第二激活节点上记录所述第二激活节点是否由所述blank弧传播产生。
27.可选的,所述方法还包括:
28.直到所述动态解码网络中包含所述静态解码网络中已经遍历过的所述终止节点对应的激活节点时,完成对所述目标语音数据的解码;
29.根据所述动态解码网络中的激活节点和激活弧,确定解码路径;
30.根据所述解码路径生成所述目标语音数据对应的语音识别结果。
31.另一方面,提供一种语音识别解码装置,所述装置包括:
32.获取单元,用于获取已构建完成的静态解码网络;
33.确定单元,用于在对目标语音数据进行解码的过程中,根据所述静态解码网络中已经遍历过的节点和已经遍历过的节点的出弧,确定激活节点和激活弧,以得到包含所述激活节点和所述激活弧的动态解码网络;
34.第一传播单元,用于当访问所述静态解码网络上的当前节点对应的第一激活节点时,控制所述第一激活节点进行一次blank弧的传播,所述blank弧用于标记空白音素;
35.新建单元,用于当激活所述blank弧后,从所述第一激活节点出发沿所述blank弧进行传播时,新建第二激活节点,其中,所述第一激活节点与所述第二激活节点映射所述静态解码网络上的当前节点;
36.第二传播单元,用于根据与所述第二激活节点存在映射关系的所述静态解码网络上的当前节点的实弧,对所述第二激活节点进行传播,所述实弧用于标记所述当前节点的
输出状态;
37.处理单元,用于遍历所述静态解码网络上的所有节点,若访问到所述静态解码网络上的终止节点,则在所述终止节点上进行blank弧自跳。
38.另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的语音识别解码方法中的步骤。
39.另一方面,提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上任一实施例所述的语音识别解码方法中的步骤。
40.另一方面,提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如上任一实施例所述的语音识别解码方法中的步骤。
41.本技术实施例通过获取已构建完成的静态解码网络;在对目标语音数据进行解码的过程中,根据静态解码网络中已经遍历过的节点和已经遍历过的节点的出弧,确定激活节点和激活弧,以得到包含激活节点和激活弧的动态解码网络;当访问静态解码网络上的当前节点对应的第一激活节点时,控制第一激活节点进行一次blank弧的传播,blank弧用于标记空白音素;当激活blank弧后,从第一激活节点出发沿blank弧进行传播时,新建第二激活节点,其中,第一激活节点与第二激活节点映射静态解码网络上的当前节点;根据与第二激活节点存在映射关系的静态解码网络上的当前节点的实弧,对第二激活节点进行传播,实弧用于标记当前节点的输出状态;遍历静态解码网络上的所有节点,若访问到静态解码网络上的终止节点,则在终止节点上进行blank弧自跳。本技术实施例通过无需在静态解码网络中添加可选blank弧,只需在动态解码过程中在动态解码网络上添加blank弧,有效减小了静态解码网络的资源,可以有效压缩解码网络,且针对每个节点只需进行一次blank传播,大幅减少了解码路径冗余。
附图说明
42.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
43.图1为本技术实施例提供的静态解码网络示意图。
44.图2为ctc声学模型的静态解码网络示意图。
45.图3为ctc声学模型的另一静态解码网络示意图。
46.图4为本技术实施例提供的语音识别解码方法的流程示意图。
47.图5为本技术实施例提供的语音识别解码方法的第一应用场景示意图。
48.图6为本技术实施例提供的语音识别解码方法的第二应用场景示意图。
49.图7为本技术实施例提供的语音识别解码方法的第三应用场景示意图。
50.图8为本技术实施例提供的语音识别解码方法的第四应用场景示意图。
51.图9为本技术实施例提供的语音识别解码装置的结构示意图。
52.图10为本技术实施例提供的计算机设备的结构示意图。
具体实施方式
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.本技术实施例提供一种语音识别解码方法、装置、计算机设备和存储介质。具体地,本技术实施例的语音识别解码方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、智能电视、智能音箱、穿戴式智能设备、个人计算机(personal computer,pc)等设备,终端还可以包括客户端,该客户端可以是视频客户端、浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
55.本技术实施例可应用于人工智能、语音识别、智慧交通等各种场景。
56.首先,在对本技术实施例进行描述的过程中出现的部分名词或者术语作如下解释:
57.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
58.其中,语音处理技术(speech technology)的关键技术有自动语音识别技术(asr)和语音合成技术(tts)以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。
59.声学模型((acoustic model,am),对声学、语音学、环境的变量、说话人性别、口音等的差异化的知识表示,可以基于隐马尔可夫模型(hidden markov model,hmm)的声学模型,例如混合高斯一隐马尔科夫模型(gmm-hmm)和深度神经网络一隐马尔科夫模型((deep neural networks,dnn)-hmm)表示,隐马尔可夫模型是一个离散时域的加权有限状态自动机;当然,还可以是端到端(end to end)的声学模型,例如连接时序分类(connectionist temporal classification,ctc)模型、长短时记忆(long-short term memory,lstm)模型和注意力(attention)模型。
60.其中,ctc声学模型与传统的语音识别的声学模型相比,传统声学模型对于每一帧都会给出明确的声学后验,而ctc声学模型加入了一个blank状态,当某些帧的状态不能明确属于哪个音素状态时,用blank来表征这些状态不确定时的输出状态。
61.由于ctc声学模型的输出状态中加入了blank状态,因此在ctc声学模型对应的解
码网络中也需要加入blank状态才能进行序列搜索。而在解码的过程中,由于blank状态出现的位置具有一定的随机性,因此,在如图1所示的解码网络中无法确定包含blank状态弧的位置。在目前的技术方案中,选择在解码网络中blank状态所有可能出现的位置添加blank,即在解码网络中对每一个有输出状态的出弧都加入一个可选blank。具体添加方法如下:
62.(1)遍历已经构建完成的解码网络,在遍历的过程中检查节点的所有出弧,若存在出弧为实弧,其中,实弧表示弧上有状态,则进入步骤(2);否则遍历下一个节点。
63.例如,如图1所示,节点1的两条出弧上分别有状态state_x、state_y,则进入步骤(2)。
64.(2)对于上述实弧,在该实弧前插入可选blank弧,即一条blank弧、一条空弧,其中,在解码时信息可通过空弧直接传播到目标节点。
65.其中,空弧表示弧上不携带任何信息。blank弧表示弧上携带有空白音素的信息。
66.例如,如图2所示,对于输出状态为state_x的出弧,插入一个新节点4,在节点1上分别插入一条输出状态为blank的实弧、一条空弧,两条弧都连接到节点4上,将输出状态为state_x的出弧连接到节点4、2之间。对于输出状态为state_y的出弧,插入一个新节点5,在节点1上分别插入一条输出状态为blank的实弧、一条空弧,两条弧都连接到节点5上,将输出状态为state_y的出弧连接到节点5、3之间。
67.但是,目前的技术存在解码网络过大以及解码路径冗余的缺点。
68.相对于非ctc声学模型的解码网络,ctc声学模型的解码网络是在其基础上再添加可选blank弧。如图1所示的非ctc声学模型解码网络,将非ctc声学模型解码网络拓展为如图2所示的ctc声学模型解码网络时,对于图1上的一条实弧,需要添加一条blank弧、一条空弧和一个新节点,假设一个非ctc声学模型的解码网络中有100条实弧,则需要额外添加200条弧才能转化为ctc声学模型的解码网络,导致解码网络过大。
69.在如图2所示的解码网络上进行解码,当对节点1进行传播时,如图3所示,需要将节点1的信息分别通过两条blank弧传播。若一个节点上有n条实弧,则在该节点上会添加n条可选blank弧,在解码的过程中,当需要将该节点的信息往后传播时,信息可能会沿着n条blank弧传播,即在blank上传播n次,造成解码路径冗余。
70.因此,本技术提出了一种基于ctc模型的blank解码方法,无需在静态解码网络中添加可选blank弧,只需在动态解码过程中在动态解码网络上添加blank弧,以减小静态解码网络的资源,可以大规模压缩ctc模型的解码网络,此外,该解码方法在保证解码空间等价性的同时能够最大程度的减少解码路径冗余。
71.以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
72.本技术各实施例提供了一种语音识别解码方法,该方法可以由终端或服务器执行,也可以由终端和服务器共同执行;本技术实施例以语音识别解码方法由服务器执行为例来进行说明。
73.请参阅图4至图8,图4为本技术实施例提供的语音识别解码方法的流程示意图,图5至图8为本技术实施例提供的语音识别解码方法的应用场景示意图。该方法包括:
74.步骤410,获取已构建完成的静态解码网络。
75.例如,可以使用如图1所示的不添加可选blank的解码网络作为静态解码网络。
76.其中,静态解码网络的基本结构是一个有向图,有向图由节点和有向弧组成,有向弧上可以保存一个词条以及这个词条的声学模型信息和/或语言模型信息,声学模型信息一般表现为声学模型得分,语言模型信息一般表现为语言模型得分,语音识别就是根据输入的语音数据在这个有向图上寻找一条最优路径的过程。例如,该有向图中可以包括节点和连接各节点的有向弧,节点中包括一个起始节点和一个终止节点,起始节点表示了在基于该静态解码网络中的有向图对目标语音数据进行解码时的开始位置,而终止节点则表示了在基于该静态解码网络中的有向图对目标语音数据进行解码时的结束位置。
77.例如,有向图中可以采用节点表示音素,通过连接各节点的有向弧表示音素之间的连接关系。
78.例如,有向图中也可以采用有向弧表示音素,而节点是表达网络拓扑结构的一个必要元素,各个有向弧之间通过节点建立连接关系。例如,每个节点可以代表词的连接关系,即每个节点可以表示一个词的结束时间点,每条有向弧可以代表一个可能的词(音素),以及该词发生的声学评分和语言模型评分以及时间点等信息。
79.其中,有向图的一条路径中包括各节点和连接各节点的有向弧,此时各节点和连接各节点的有向弧所表示的词可以组成一句话。
80.其中,音素是根据语音的自然属性划分出来的最小语音单位。从声学性质来看,音素是从音质角度划分出来的最小语音单位。从生理性质来看,一个发音动作形成一个音素。
81.步骤420,在对目标语音数据进行解码的过程中,根据所述静态解码网络中已经遍历过的节点和已经遍历过的节点的出弧,确定激活节点和激活弧,以得到包含所述激活节点和所述激活弧的动态解码网络。
82.例如,在对目标语音数据进行解码的过程中,可以对待识别的目标语音数据进行特征提取处理,以得到该目标语音数据的特征序列。然后,针对该目标语音数据的特征序列在解码网络中寻找评分最高的路径作为解码路径,将该解码路径对应的词串作为该目标语音数据对应的语音识别结果。
83.例如,在对待识别的目标语音数据进行特征提取处理得到该目标语音数据的特征序列时,首先,可以根据一定的采样频率(比如声音最高频率的2倍以上),将目标语音数据中的语音从物理状态转换为在时间上离散、在幅值上连续的模拟信号,通过进行模/数(a/d)转换后所形成数字形式的语音信号。
84.例如,在进行特征提取之前,还可以对数字形式的语音信号进行预处理。比如进行预加重、加窗、分帧、端点检测和滤波等预处理。其中,预加重可以用于提升语音信号的高频部分,使语音信号的频谱平滑;加窗和分帧可以用于根据语音信号的时变的特点,以矩形窗或者汉明窗等形式的窗口,将语音信号分割为多个相互重叠的帧;端点检测可以用于找出语音信号的起始部分和结束部分,滤波可以用于去除语音信号的背景噪声。
85.然后,对预处理后的语音信号进行特征提取,以提取出该目标语音数据的语音特征,并按照时间序列构成该目标语音数据的归一化的特征序列。
86.其中,语音特征从表现形式上可以包括时域特征和频域特征,从来源上可以包括基于人类发生机理的特征,还包括基于人耳听觉感知的特征,除了前述的静态的语音特征,还可包括对数能量或由静态特征计算一阶、二阶差分形成的动态特征并拼接形成的新的特
征。
87.例如,将得到的该目标语音数据的特征序列输入解码器中,并基于解码器中预设的静态解码网络中的有向图对目标语音数据中的每帧语音数据进行解码。
88.例如,在解码的过程中,将已构建完成的解码网络称为静态解码网络,静态解码网络上已经遍历过的节点称为激活节点,静态解码网络上已经遍历过的出弧称为激活弧,激活节点与激活弧构成的拓扑结构称为动态解码网络。
89.其中,在解码的过程中,遍历已经构建完成的静态解码网络。
90.步骤430,当访问所述静态解码网络上的当前节点对应的第一激活节点时,控制所述第一激活节点进行一次blank弧的传播,所述blank弧用于标记空白音素。
91.可选的,所述当访问所述静态解码网络上的当前节点对应的第一激活节点时,控制所述第一激活节点进行一次blank弧的传播,包括:
92.当访问所述静态解码网络上的当前节点对应的第一激活节点时,根据所述当前节点的实弧所携带的信息进行传播;
93.在访问完所述当前节点的所有实弧后,控制所述第一激活节点进行一次blank弧的传播,且在所述第一激活节点上记录所述第一激活节点是否沿着所述blank弧进行传播;
94.若所述第一激活节点上存在blank弧,则控制所述第一激活节点在所述blank弧传播后再进行空弧传播。
95.例如,将所述静态解码网络上当前访问的节点称为当前节点。在访问静态解码网络上的当前节点时,可以在动态解码网络中生成与当前节点存在映射关系的第一激活节点,并将当前节点上携带的信息映射到第一激活节点上。
96.例如,使用如图1所示的不添加可选blank的解码网络作为静态解码网络,当前节点为节点1,与当前节点对应的第一激活节点为激活节点node1,当访问静态解码网络上节点1(当前节点)对应的激活节点node1(第一激活节点)时,该激活节点node1上的信息传播可以如图5所示:
97.(a)依据节点1的实弧所携带的信息进行传播;
98.(b)在访问完节点1的所有实弧state_x、state_y后,控制激活节点node1进行一次blank弧的传播,此时,在激活节点node1上记录下该激活节点node1是否沿着blank弧进行了传播;
99.(c)若激活节点node1上存在blank弧,则控制激活节点node1在blank弧传播后再进行空弧传播。
100.其中,若该激活节点node1未沿着blank弧进行传播,则返回false的标志位。若激活节点node1上存在blank弧,该激活节点node1沿着blank弧进行传播,则返回true的标志位,并在blank弧传播后再进行空弧传播。
101.例如,标志位可以理解为定义了一个变量,用于判断整个程序是否处于活动状态。这个变量被称为“标志”,充当了程序的交通信号灯,比如可让程序在标志为true时继续运行。
102.其中,目前的ctc需在静态解码网络中添加可选blank弧,在访问激活节点node1时,需要进行两次blank传播。而本技术实施例所提的解码方法在访问激活节点node1时,如图5所示,无需在静态解码网络中添加可选blank弧,只需在动态解码过程中在动态解码网
络上添加blank弧,有效减小了静态解码网络的资源,针对每个节点只需进行一次blank传播,大幅减少了冗余路径,且减少的幅度与节点的出弧成正比。
103.步骤440,当激活所述blank弧后,从所述第一激活节点出发沿所述blank弧进行传播时,新建第二激活节点,其中,所述第一激活节点与所述第二激活节点映射所述静态解码网络上的当前节点。
104.可选的,在所述新建第二激活节点之后,还包括:
105.在所述第二激活节点上记录所述第二激活节点是否由所述blank弧传播产生。
106.例如,如图6所示,当激活blank弧后,从激活节点node1(第一激活节点)出发沿着该blank弧进行传播时,新建一个激活节点node4(第二激活节点)。其中,第二激活节点(比如激活节点node4)为过渡节点,该blank弧为第一激活节点(比如激活节点node1)的出弧。
107.例如,如图6所示的激活节点node4,此时新建的激活节点node4仍然映射到静态解码网络的节点1。
108.如图7所示,激活节点node1、node4都映射到静态解码网络的节点1,在激活节点node4上记录下该激活节点node4是否由blank弧传播产生。
109.其中,激活可以理解为被访问;激活blank弧,可以理解为blank弧被访问。
110.例如,如图6或图7所示,动态解码网络中的激活节点node2为静态解码网络上的节点2对应的映射节点;动态解码网络中的激活节点node3为静态解码网络上的节点3对应的映射节点。
111.其中,由于该激活节点node4是节点1的映射节点,因此该激活节点node4上具有节点1的输出状态,比如节点1的输出状态为state_y、state_y,则对应的该激活节点node4上具有输出状态为state_y的出弧和输出状态为state_y的出弧。
112.步骤450,根据与所述第二激活节点存在映射关系的所述静态解码网络上的当前节点的实弧,对所述第二激活节点进行传播,所述实弧用于标记所述当前节点的输出状态。
113.可选的,所述根据与所述第二激活节点存在映射关系的所述静态解码网络上的所述当前节点的实弧,对所述第二激活节点进行传播,包括:
114.当对所述第二激活节点进行传播时,寻找与所述第二激活节点存在映射关系的所述静态解码网络上的所述当前节点;
115.遍历所述静态解码网络上的所述当前节点的所有出弧,若所述当前节点的出弧中存在实弧,则将所述第二激活节点上的信息沿着所述实弧向所述当前节点的后驱节点进行传播。
116.可选的,所述遍历所述静态解码网络上的所述当前节点的所有出弧时,还包括:
117.若所述当前节点的所有出弧为空弧,则对所述第二激活节点不进行传播。
118.例如,如图7所示,当对激活节点node4进行传播时,找到激活节点node4对应的静态解码网络上的映射节点,比如从步骤440可知激活节点node4的映射节点为节点1;因此,当沿着激活节点node4的出弧进行传播时,遍历静态解码网络上的节点1的所有出弧,若某条出弧为实弧(比如输出状态为state_y的出弧和输出状态为state_y的出弧),将激活节点node4上的信息沿着该实弧(比如输出状态为state_y的出弧和输出状态为state_y的出弧)进行传播,例如,激活节点node4上的信息沿着输出状态为state_x的出弧传播到与state_x的出弧对应的后驱节点(激活节点node2),激活节点node4上的信息沿着输出状态为state_
y的出弧传播到与state_y的出弧对应的后驱节点(激活节点node3)。若为空弧则不进行传播,即激活节点node4只进行实弧传播。
119.例如,请参阅图2和图7,在图2中,若节点1存在两条实弧,需要添加两条blank弧、两条空弧和两个新节点。而在本技术实施例中,如图7所示,针对存在两条实弧的节点1的解码过程,仅需在动态解码过程中新增1条blank弧和1个新节点,本案相对于图2所示的解码方式,可以大规模压缩ctc模型的解码网络。
120.步骤460,遍历所述静态解码网络上的所有节点,若访问到所述静态解码网络上的终止节点,则在所述终止节点上进行blank弧自跳。
121.可选的,所述若访问到所述静态解码网络上的终止节点,则在所述终止节点上进行blank弧自跳,包括:
122.若访问到所述静态解码网络上没有出弧的节点,则将所述没有出弧的节点确定为所述静态解码网络上的终止节点;
123.当激活与所述终止节点连接的blank弧后,将所述终止节点确定为所述与所述终止节点连接的blank弧的后驱节点,以实现在所述终止节点上进行blank弧自跳。
124.例如,遍历所述静态解码网络上的所有节点,每访问一个节点时,重复上述步骤410到步骤450的过程,当访问到终止节点时(例如静态解码网络上没有出弧的节点为终止节点),在终止节点上进行blank弧自跳,即当激活与终止节点连接的blank弧后,此blank弧的目标节点为该节点本身,等价原理如图8所示。至此,该原理图所示的解码网络与目前的ctc添加可选blank所得的解码网络,在解码空间上是完全等价;任何在目前的ctc解码网络上能得到的路径,在图8所示的原理图上都能得到。
125.如图8所示,若当前访问的是1号节点,则在动态解码网络上,该1号节点是当前节点1对应的第一激活节点,图8中的5号节点相当于第二激活节点。2号节点为1号节点的后驱节点。
126.例如,若当前访问的是2号节点,则在动态解码网络上,该2号节点是当前节点2对应的第一激活节点,图8中的6号节点相当于第二激活节点。3号节点为2号节点的后驱节点。
127.例如,若当前访问的是3号节点,则在动态解码网络上,该3号节点是当前节点3对应的第一激活节点,图8中的7号节点相当于第二激活节点。4号节点为3号节点的后驱节点。
128.例如,当访问到4号节点时,该4号节点在静态解码网络上没有出弧,因此该4号节点为终止节点,此时在动态解码网络中添加的blank弧的目标节点为该4号节点本身,相当于将作为终止节点的该4号节点确定为与该4号节点连接的blank弧的后驱节点,进而实现blank弧自跳。
129.可选的,所述方法还包括:
130.直到所述动态解码网络中包含所述静态解码网络中已经遍历过的所述终止节点对应的激活节点时,完成对所述目标语音数据的解码;
131.根据所述动态解码网络中的激活节点和激活弧,确定解码路径;
132.根据所述解码路径生成所述目标语音数据对应的语音识别结果。
133.例如,遍历所述静态解码网络上的所有节点,直到动态解码网络中包含静态解码网络中已经遍历过的终止节点对应的激活节点时,说明已完成对目标语音数据的解码,基于动态解码网络中的激活节点和激活弧确定解码路径。在得到解码路径后,可以确定解码
路径中包含的激活节点和激活节点之间的激活弧表示的音素,然后,根据各激活节点之间的顺序组合,得到待识别的目标语音数据的语音识别结果。
134.例如,如图8所示,动态解码网络中的有向图可以通过弧表示音素,以节点表示音素的连接关系,解码路径包括1号节点(起始节点)、5号节点、2号节点、6号节点、3号节点、7号节点和4号节点(终止节点),其中,1号节点与5号节点之间的弧表示空白音素,5号节点与2号节点之间的弧表示音素“a”;2号节点与6号节点之间的弧表示空白音素,6号节点与3号节点之间的弧表示音素“b”;3号节点与7号节点之间的弧表示空白音素,7号节点与4号节点之间的弧表示音素“c”;则根据该解码路径生成该目标语音数据对应的语音识别结果为“abc”。
135.其中,本技术实施例使得ctc模型的解码网络构建过程更加简洁,沿用传统的解码网络构建方法即可完成解码网络构建。本技术实施例在语音识别效果无损的前提下,解码网络可以压缩40%以上,识别过程中内存占用可以减少20%以上。
136.上述所有的技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
137.本技术实施例通过获取已构建完成的静态解码网络;在对目标语音数据进行解码的过程中,根据静态解码网络中已经遍历过的节点和已经遍历过的节点的出弧,确定激活节点和激活弧,以得到包含激活节点和激活弧的动态解码网络;当访问静态解码网络上的当前节点对应的第一激活节点时,控制第一激活节点进行一次blank弧的传播,blank弧用于标记空白音素;当激活blank弧后,从第一激活节点出发沿blank弧进行传播时,新建第二激活节点,其中,第一激活节点与第二激活节点映射静态解码网络上的当前节点;根据与第二激活节点存在映射关系的静态解码网络上的当前节点的实弧,对第二激活节点进行传播,实弧用于标记当前节点的输出状态;遍历静态解码网络上的所有节点,若访问到静态解码网络上的终止节点,则在终止节点上进行blank弧自跳。本技术实施例通过无需在静态解码网络中添加可选blank弧,只需在动态解码过程中在动态解码网络上添加blank弧,有效减小了静态解码网络的资源,可以有效压缩解码网络,且针对每个节点只需进行一次blank传播,大幅减少了解码路径冗余。
138.为便于更好的实施本技术实施例的语音识别解码方法,本技术实施例还提供一种语音识别解码装置。请参阅图9,图9为本技术实施例提供的语音识别解码装置的结构示意图。其中,该语音识别解码装置900可以包括:
139.获取单元901,用于获取已构建完成的静态解码网络;
140.确定单元902,用于在对目标语音数据进行解码的过程中,根据所述静态解码网络中已经遍历过的节点和已经遍历过的节点的出弧,确定激活节点和激活弧,以得到包含所述激活节点和所述激活弧的动态解码网络;
141.第一传播单元903,用于当访问所述静态解码网络上的当前节点对应的第一激活节点时,控制所述第一激活节点进行一次blank弧的传播,所述blank弧用于标记空白音素;
142.新建单元904,用于当激活所述blank弧后,从所述第一激活节点出发沿所述blank弧进行传播时,新建第二激活节点,其中,所述第一激活节点与所述第二激活节点映射所述静态解码网络上的当前节点;
143.第二传播单元905,用于根据与所述第二激活节点存在映射关系的所述静态解码
processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
162.可以理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
163.应理解,上述存储器为示例性但不是限制性说明,例如,本技术实施例中的存储器还可以是静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)以及直接内存总线随机存取存储器(direct rambus ram,drram)等等。也就是说,本技术实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
164.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
165.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
166.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
167.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
168.另外,在本技术实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
169.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
170.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献