CN108305634B - 解码方法、解码器及存储介质 - Google Patents
解码方法、解码器及存储介质 Download PDFInfo
- Publication number
- CN108305634B CN108305634B CN201810020113.6A CN201810020113A CN108305634B CN 108305634 B CN108305634 B CN 108305634B CN 201810020113 A CN201810020113 A CN 201810020113A CN 108305634 B CN108305634 B CN 108305634B
- Authority
- CN
- China
- Prior art keywords
- language model
- state
- decoding
- companion
- token
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/14—Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/24—Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/48—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
- G10L25/69—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for evaluating synthetic or decoded voice signals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Artificial Intelligence (AREA)
- Machine Translation (AREA)
Abstract
本发明提供了一种解码方法、解码器及存储介质;方法包括:将原始语言模型拆分为低阶语言模型和差分语言模型,所述低阶语言模型的阶数低于所述源语言模型,所述差分语言模型为所述原始语言模型与所述低阶语言模型的差分;使用基于所述低阶语言模型形成的第一解码网络,对语音信号进行解码得到路径以及对应的评分,以及,使用基于所述差分语言模型形成的第二解码网络,对所述解码路径进行重评分;将满足评分条件的路径包括的输出符号作为识别结果输出。
Description
技术领域
本发明涉及计算机技术,尤其涉及自动语音识别技术的解码方法、解码器及存储介质。
背景技术
自动语音识别技术用于模拟的语音信号转换为计算机可以处理的文本,在语音拨号、电话订票、语音输入、翻译系统、语音导航等各种业务中得到广泛应用。
解码器作为自动语音识别系统的核心,用于在解码网络搜索语音信号的解码路径,输出最佳解码路径中串联的节点作为语音识别的结果,解码器直接影响自动语音识别系统的识别效率和精度。
相关技术提供的解码器,依赖于语言模型等知识源进行构建的解码空间汇中搜索解码路径,工业级别的语言模型的体积往往很大,在此基础上构建的解码空间的体积又在语言模型的基础上进一步放大,如果需要保证解码效率则需要在解码过程中需要部署大量的存储资源和计算资源,而工业应用中有限的资源制约了解码效率。
发明内容
本发明实施例提供一种解码方法、解码器及存储介质,能够以资源集约的方式实现语音信号的高效率解码。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种解码方法,包括:
将原始语言模型拆分为低阶语言模型和差分语言模型,所述低阶语言模型的阶数低于所述源语言模型,所述差分语言模型为所述原始语言模型与所述低阶语言模型的差分;
使用基于所述低阶语言模型形成的第一解码网络,对语音信号进行解码得到路径以及对应的评分,以及,
使用基于所述差分语言模型形成的第二解码网络,对所述解码路径进行重评分;
将满足评分条件的路径包括的输出符号作为识别结果输出。
上述方案中,还包括:当所述下一令牌的已有的伴生假设集合为空时,将假设集合链表加入到所述下一令牌的伴生假设集合中。
本发明实施例提供一种解码器,包括:
解码网络模块,将原始语言模型拆分为低阶语言模型和差分语言模型,所述低阶语言模型的阶数低于所述源语言模型,所述差分语言模型为所述原始语言模型与所述低阶语言模型的差分;
解码模块,用于使用基于所述低阶语言模型形成的第一解码网络,对语音信号进行解码得到路径以及对应的评分,以及,
所述解码模块,还用于使用基于所述差分语言模型形成的第二解码网络,对所述解码路径进行重评分;
将满足评分条件的路径包括的输出符号作为识别结果输出。
上述方案中,所述解码网络模块,还用于在加权有限状态转换器中融合所述低阶语言模型,通过融合得到所述第一解码网络,或者,
在加权有限状态转换器中融合所述低阶语言模型、发音词典和声学模型,通过融合得到所述第一解码网络。
上述方案中,所述解码模块,还用于针对所述语音信号的每个帧执行如下处理:
初始化所述第一解码网络中的令牌列表,以及,遍历在所述令牌列表中的令牌;
其中,针对当前所遍历的目标令牌执行如下处理:遍历所述第一解码网络中从所述目标令牌所对应状态出发的边,利用目标帧计算所遍历的边的声学模型评分和语言模型评分的加和,并作为所遍历的边的评分。
上述方案中,所述解码网络模块,还用于遍历在所述令牌列表中的令牌之前,
确定所述令牌列表中的令牌中当前时间点评分最优的令牌,根据所确定令牌设置的集束宽度计算出下次集束搜索时使用的集束宽度。
上述方案中,所述解码网络模块,还用于初始化所述令牌列表中第一个令牌的评分以及前序指针赋为空;
对所述第二解码网络进行哈希查找构造,将连接到所述第二解码网络的同一个状态的边用哈希的方式进行存储,其中,
所述第二解码网络的每个状态上的查找键为相应状态的输入符号,与所述键对应的值为连接相应状态的边、以及相应状态的跳转状态。
上述方案中,所述解码模块,还用于当所遍历的边的评分未超过评分阈值时,确定所遍历的边所对应状态的下一状态;
创建连接所述目标令牌所对应状态与所述下一状态之间的边,在所创建的边中记录所遍历的边的输入符号,输出符号、声学模型评分和语言模型评分,并且从所述目标令牌指向下一令牌;
其中,所述下一令牌在所述第二解码网络中对应的状态,是从所述第一解码网络中所遍历的边指向的下一个状态;遍历所述目标令牌的假设集合中的假设、以及遍历的每个假设的伴生假设集合。
上述方案中,所述解码模块,还用于在遍历所述目标令牌的假设集合中的假设、以及所遍历的每个假设的伴生假设集合的过程中,当所遍历的边对应的输出符号为空符号时,将所述目标令牌的假设集合中的假设,按照评分从小到大的顺序加入到预建立且赋值为空的假设集合链表。
上述方案中,所述解码模块,还用于在遍历所述目标令牌的假设集合中的假设、以及所遍历的每个假设的伴生假设集合的过程中,当所遍历的边对应的输出符号不为空符号时,在所述第二解码网络中定位用于进行重评分的状态、以及从所述重评分的状态出发的边,在所述第二解码网络中,扩展从所述重评分的状态出发的所有边,并在扩展的过程中形成用于存储伴生假设的假设集合链表。
上述方案中,所述解码模块,还用于当使用所述重评分状态的哈希表,查询到与输入符号对应的边与状态时,对应查询到的边指向的下一状态,生成相应的新伴生假设集合,且所述新伴生假设集合对应的状态赋值为所述查询到的边指向的下一状态,所述新伴生假设集合对应的前序指针为当前所遍历的伴生假设集合的输出符号;
计算所述新伴生假设集合的评分为以下评分的加和:当前所遍历的伴生假设集合的评分、当前所遍历的边的声学模型评分、当前所遍历的边的语言模型评分、以及所述查询到的边对应的语言模型评分;将所述新伴生假设集合中的伴生假设按照从小到大的顺序加入到预建立且赋值为空的所述假设集合链表。
上述方案中,所述解码模块,还用于当使用所述重评分状态的哈希表,查询输入符号对应的边与状态,且仅查询到相应的边时,将从所述重评分的状态的跳转状态指向所述查询到的边指向的下一状态;将所述目标令牌的假设集合替换为所述新伴生假设集合;计算所述新伴生假设集合的评分为以下评分的加和:当前所遍历的伴生假设集合的评分、当前所遍历的边的声学模型评分、当前所遍历的边的语言模型评分、以及所述查询到的边对应的语言模型评分。
上述方案中,所述解码模块,还用于当所述下一令牌的已有的伴生假设集合为空时,将假设集合链表加入到所述下一令牌的伴生假设集合中。
上述方案中,所述解码模块,还用于所述下一令牌的已有的伴生假设集合非空时,如果所述下一令牌中的伴生假设集合中存在假设集合,且所存在的假设集合的第一个伴生假设集合、与假设集合链表的第一个伴生假设集合的状态相同,将所存在的假设集合与所述假设集合链表中的伴生假设集合,按照评分从小到大的顺序进行归并,
如果所存在的假设集合的第一个伴生假设集合、与假设集合链表的第一个伴生假设集合的状态不同,将所述假设集合链表照伴生假设集合头部的评分顺序,插入到所述下一令牌的假设集合中。
上述方案中,所述解码模块,还用于当遍历所述目标令牌的假设集合中的假设、以及遍历的每个假设的伴生假设集合之后,将所述目标令牌移出所述令牌列表,将所述下一令牌加入所述令牌列表,直到所有的令牌都已经移出所述令牌列表。
上述方案中,所述解码模块,还用于查找评分最高的伴生假设集合,输出评分最高伴生假设集合对应的输出符号作为识别结果。
本发明实施例提供一种解码器,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,用于实现本发明实施例提供的解码方法。
本发明实施例提供一种存储介质,存储有可执行指令,所述可执行指令用于执行本发明实施例提供的解码方法。
本发明实施例具有以下有益效果:
通过将原始语言模型拆分进行两个阶段解码,两个阶段的解码与基于原始的模型直接构建的解码网络在识别精度能够达到一致,保证了解码精度;同时,使用低阶的语言模型形成的第一解码网络进行解码,使用差分语言模型的第二解码网络进行重评分,显著减小了解码网络的体积,节约了存储资源,进而提升了解码效率。
附图说明
图1A是本发明实施例提供的有限状态自动机的一个可选的结构示意图;
图1B是本发明实施例提供的加权有限状态自动机的一个可选的结构示意图;
图1C是本发明实施例提供的加权有限状态转换机的一个可选的结构示意图;
图2是本发明实施例提供的自动语音识别系统的一个可选的功能示意图;
图3是本发明实施例提供的自动语音识别系统100的一个可选的结构示意图;
图4是本发明实施例提供的解码器进行解码处理的一个可选的实现示意图;
图5是本发明实施例提供的自动语音识别系统的一个可选的硬件结构示意图;
图6是本发明实施例提供的解码方案的一个原理示意图;
图7是本发明实施例提供的解码方案的一个可选的原理示意图;
图8是本发明实施例提供的解码方案的一个可选的流程示意图;
图9A是本发明实施例提供的TLG解码网络的一个可选的结构示意图;
图9B是本发明实施例提供的TLG解码网络的一个可选的结构示意图;
图10是应用本发明实施例提供的解码方案的语音识别系统的可选的应用场景示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,根据本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本发明。
对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)自动语音识别(ASR,Automatic Speech Recognition),将人的语音转换为文本的技术,目标是让运行语音识别系统的设备能够听写出不同人所说出的连续语音所包括的文本。
2)有限状态自动机(FSA,Finite-State Automata),参见图1A,图1A是本发明实施例提供的有限状态自动机的一个可选的结构示意图,在有限状态自动机中,用节点(Node)表示状态(State),用加粗圆圈表示初始状态,双线圆圈表示终止状态,当一个状态既为初始状态也为终止状态时,用双粗线圆圈表示,非初始状态使用单细线圆圈表示。
通过称为令牌(Token)的数据结构来解码某时刻某个状态上的评分和信息,以令牌传递(Token Processing)的方式访问有限状态自动机,令牌(Token)从有限状态自动机由初始状态进入,通过输入状态的符号(即输入符号)发生转移到从而到达下一个状态,转移使用有方向的边(Arc,本文中也称为转移边或转移弧),表示状态之间的转移,当完成最后一个转移后令牌到达终止状态,令牌在从初始状态向终止状态传递的过程中,令牌中所记录的一连串的状态和边组成了路径(Path)。
3)加权有限状态自动机(WFSA,Finite-State Automata),也称为加权有限状态自动机,参见图1B,图1B是本发明实施例提供的加权有限状态自动机的一个可选的结构示意图,加权有限状态自动机在有限状态自动机的基础上,针对不同的转移设定表示概率的评分(也称为权重),一条路径的评分是路径所包括的所有转移的评分的加和。
4)加权有限状态转换机(WFST,Finite-State Transducer),参见图1C,图1C是本发明实施例提供的加权有限状态转换机的一个可选的结构示意图,加权有限状态自动机在加权有限状态自动机的基础上,每个转移既包括输入符号也包括输出符号,输入符号和输出符号使用“:”连接,WFST的一条路径的输出符号是路径中所有转移的输出符号的串联。
5)知识源,即解码器(Decoder)基于语音信号的特征序列解码得到识别结果时所需要的知识的来源,有如下几种基于WFST表示的知识源。
5.1)声学模型(AM,Acoustic Model),对声学、语音学、环境的变量、说话人性别、口音等的差异化的知识表示,包括基于隐马尔可夫模型(HMM,Hidden Markov Model)的声学模型,例如混合高斯-隐马尔科夫模型(GMM-HMM)和深度神经网络-隐马尔科夫模型(DNN-HMM)表示,隐马尔可夫模型是一个离散时域的加权有限状态自动机;当然,还可以包括端到端(End to End)的声学模型,例如连接时序分类-长短时记忆(CTC-LSTM)模型和注意力(Attention)模型。
声学模型的每个状态中表示语音单元(例如词、音节和音素等)的语音特征在该状态的概率分布,并通过状态与状态之间的转移连接成一个有序的状态序列,即得到一段语音信号所代表的语音单元的序列,假设W为语音单元的序列,记为:W={w1,w2,......,wn},声学模型概率P(O|W)表示W与观测序列O的匹配程度。
5.2)语言模型(LM,Language Model),本文中使用G表示,输入符合和输出符号相同,是语言结构(包括词语、句子之间的规律,例如语法、词语常用搭配等)的知识表示,语言模型概率P(W)用于表示语音单元的序列W在一段语音信号中出现的先验概率。
5.3)声学上下文因素模型,用C表示,也称为三音子模型,输入符号:上下文相关(Triphone,称为三音子),输出符号:音素(Monophnoe);表示从三音子到音素的对应关系。
5.4)发音词典,用L表示,输入符号:音素,输出符号:词;包含单词的集合及其发音。
6)字元集(Alphabet),是所有字元(Symbol,也称为符号)的集合,字元所构成的有限长度的词序列称为词串(String),词串的集合构成了语言,本文中将两个词串连接在一起的操作称为连接(Concatenate)。
7)解码网络(Search Space),也称为搜索空间,使用WFST融合的各种知识源,包括语言模型,还可以包括声学模型、声学上下文因素模型、发音词典中的至少一种,例如,L和G组成的单因素解码网络,记为LG;C、L和G组成的C-Level解码网络,记为CLG;使用隐马尔科夫模型(H)表示的CLG解码网络,记为HCLG;另外,对于端到端的声学模型(记为T)、发音词典和G形成的解码网络,本文中称为TLG解码网络。
解码器在解码网络进行搜索的目的是,针对采集的语音信号所提取的特征序列,在解码网络中寻找评分最高的路径也就是最优路径,最优路径中串联的转移的输出符号即词串W*,使得P(W*|O)取得最大值,W*作为语音信号的识别结果,其中,P(W*|O)表示为:
8)剪枝,即维比特剪枝搜索(Viter Beam Search),也称为束剪枝(Beam Pruning)或集束搜索(Beam Search),解码器在解码网络中搜索最佳路径时,在扩展路径的每个状态时,仅保留集束宽度(Beam Width)数量的节点,从而可以去除不必要的路径,由于不需要全路径搜索因此内存消耗得以减少,解码效率得以提升。
9)词图,解码器的解码过程,即是解码器在解码网络中进行基于令牌传递(TokenProcessing)的剪枝过程,在解码过程中,所有令牌(Token)经过的、且与终止状态能够连通的路径被记录下来,形成的有向无环(Directed Acyclic Graph)图为词图,词图的每个节点代表一个词的结束时间点,每条边代表一个可能的词,以及该词发生的声学评分和语言模型评分以及时间点等信息。
10)归并排序(MERGE-SORT),也称为归并,是一种有效的排序算法,采用分治法(Divide and Conquer)的一个典型的应用;将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。
归并过程的一个示例为:比较a[i]和b[j]的大小,若a[i]≤b[j],则将第一个有序表中的元素a[i]复制到r[k]中,并令i和k分别加上1;否则将第二个有序表中的元素b[j]复制到r[k]中,并令j和k分别加上1,如此循环下去,直到其中一个有序表取完,然后再将另一个有序表中剩余的元素复制到r中从下标k到下标t的单元;归并排序的算法通常用递归实现,先把待排序区间[s,t]以中点二分,接着把左边子区间排序,再把右边子区间排序,最后把左区间和右区间用一次归并操作合并成有序的区间[s,t]。
下面说明实现本发明实施例的用于进行自动语音识别的自动语音识别系统。
本发明实施例提供的自动语音识别系统用以进行孤立字(词)识别、关键词检出、以及连续语音识别。孤立字的识别对象为一个字、词或者是一个短语,对每个对象都训练一个模型并组合能够词汇表,如“我”、“你”、“他”等;关键词检出的识别对象为连续的语音信号,但只对该信号中的一段或者几段信号进行识别;连续语音识别则是对任意的一句话或者一段话进行识别。
在一些实施例中,根据对说话人的依赖程度,自动语音识别系统可以分为特定人和非特定人语音系统,其中,特定人自动语音识别系统的模型只针对一个人的语音数据进行训练,当用于识别其他人的语音时需要重新训练自动语音识别系统的模型。
在一些实施例中,根据识别词汇量的大小,自动语音识别系统可以分为小词汇量、中词汇量、大词汇量和无限词汇量自动语音识别系统。
在一些实施例中,根据语音设备和通道的差异,自动语音识别系统可以分为桌面(PC)自动语音识别系统、电话自动语音识别系统和嵌入式设备(如手机、平板电脑)自动语音识别系统。
参见图2,图2是本发明实施例提供的自动语音识别系统的一个可选的功能示意图,语音信号通过预处理,提取语音特征,通过预训练的模板库进行模式匹配,形成语音信号的识别结果。
在一些实施例中,对于不同的识别任务自动语音识别系统的结构会有所区别,但是根据图2,自动语音识别系统的基本技术和处理流程大致相同,下面就自动语音识别系统的示例性结构进行说明,可以理解,下文中所说明的自动语音识别系统仅仅是实现本发明实施例的示例,在图2示出的自动语音识别系统的功能示意图,可以预见自动语音识别系统的各种示例性结构。
参见图3,图3是本发明实施例提供的自动语音识别系统100的一个可选的结构示意图,涉及前端110和后端120两部分,前端110包括采样模/数(A/D)转换模块111、预处理模块112、特征提取模块113和特征处理模块114;后端120包括解码器121,还包括声学模型122和上下文相关123两个知识源,当然还可以包括其他类型的知识源,例如发音词典和语言模型。
采样模/数(A/D)转换模块111用于模拟形式的语音信号的采集,根据一定的采样频率(声音最高频率的2倍以上),将声音从物理状态转换为在时间上离散、在幅值上连续的模拟信号,通常,采用脉冲编码调制(PCM,Pulse Code Modulation)或均匀量化调制的方法,进行模/数(A/D)转换后所形成数字形式的语音信号。
预处理模块112用于对数字形式的语音信号进行预处理,涉及预加重、加窗、分帧、端点检测和滤波等处理;其中,预加重用以提升语音信号的高频部分,使语音信号的频谱平滑;加窗和分帧用以根据语音信号的时变的特点,以矩形窗或者汉明窗等形式的窗口,将语音信号分割为多个相互重叠的帧(Frame),例如分割为多个长度为20毫秒(ms)的帧且相邻帧具有10ms的重叠;端点检测用于找出语音信号的起始部分和结束部分,滤波用于去除语音信号的背景噪声;预处理后的语音信号由特征提取模块113按照一定的特征提取方法提取出最能够表现这段语音信号语音特征,按照时间序列构成语音信号的归一化的特征序列,并由特征处理模块114特征进行特征补偿、特征归一化以及形成动态特征。
语音特征从表现形式上可以包括时域特征和频域特征,从来源上可以包括基于人类发生机理的特征,如线性预测倒谱系数(LPCC,Linear Prediction CepstrumCoefficient),还包括基于人耳听觉感知的特征,例如Mel频率倒谱系数(MFCC,MelFrequency Cepstrum Coefficient),除了前述的静态的语音特征,还可包括对数能量或由静态特征计算一阶、二阶差分形成的动态特征并拼接形成的新的特征。
声学上下文、发音词典、声学模型和语言模型等知识源在基于WFST的网络中融和形成解码网络,其中声学模型是利用语音数据库训练得到,语言模型是利用语言数据库训练得到,训练声学模型和语言模型的过程是语音、语言学知识、信号处理技术、数据挖掘技术和统计建模方法的一个融合的过程,解码器121通过一定的搜索方式,搜索最佳路径,最佳路径中串联的一系列边的输出符号构成词串,词串作为语音信号的识别结果输出。
后端120利用解码器121进行解码,即在输入了语音信号的特征序列的情况下,在解码网络中搜索最佳路径:在t时刻,当解码网络的每个状态达到最佳分数,路径结束,而t+1时刻的结果则可由t时刻的结果求得,当达到最后时刻,将评分最高的状态向回追溯,可以得到最佳路径。
参见图4,图4是本发明实施例提供的解码器进行解码处理的一个可选的实现示意图,解码器用于将各种知识源如声学模型、发音词典、上下文元素以及语言模型进行整合为一个WFST,对输入的语音信号的特征序列进行搜索和匹配工作,直至搜索到包括输出概率最大的词串的路径作为识别结果。
解码器121的解码网络模块1211用于实现模型整合和模型优化,就模型整合来说,将上下文相关的声学模型、发音词典、声学上下文因素模型使用整合算法,整合为一个单一的WFST(下文中称为整合WFST)即解码网络,模型优化包括通过确定化演算法进行确定化操作、最小化演算法来进行最小化操作,减少识别时间和存储空间的占用率,从而提高识别效率。
就确定化操作(Determinization)来说,在确定化的整合WFST中,对于整合WFST的每个状态,每个输入符号最多只有一条边与该状态对应,这样产生的效果是,对于输入自动语音识别系统的语音信号的特征序列来说,由于在解码网络中去除重复的路径,在解码网络中只有一条路径与特征序列对应,从而减少解码的时间和空间消耗。
就最小化操作来(Minimization)说,最小化的整合WFST与最小化前的整合WFST是等价的,且在所有确定化的整合WFST中,最小化的整合WFST所包括的状态的数量、以及所包括的边的数量都是最少的。
解码器121的搜索模块1212用于在建立的解码网络中搜索最佳路径,涉及初始化、判断评分、路径的剪枝和回溯;就路径的剪枝来说,包括全局累计概率剪枝、语言模型剪枝和直方图剪枝等方式,通过裁剪不必要的路径,以避免路径数量的爆炸性增长。
继续对本发明实施例提供的自动语音识别系统的硬件结构进行说明,参见图5,图5是本发明实施例提供的自动语音识别系统的一个可选的硬件结构示意图,图5所示自动语音识别系统200可以包括:至少一个处理器210、至少一个通信总线240、用户接口230、至少一个网络接口220和存储器250。自动语音识别系统200中的各个组件通过通信总线240耦合在一起。可以理解,通信总线240用于实现这些组件之间的连接通信。通信总线240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为通信总线240。
其中,用户接口230可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。网络接口220可以包括标准的有线接口、无线接口;典型的,无线接口可以是WiFi接口。
可以理解,存储器250可以是高速RAM存储器,也可以是非易失的存储器(Non-Volatile Memory),例如至少一个磁盘存储器。存储器250还可以是至少一个远离处理器210的存储系统。
本发明实施例提供的应用于自动语音识别系统的方法可以应用于处理器210中,或者由处理器210。处理器210可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,应用于自动语音识别系统的解码方法中的不同操作可以通过处理器210中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器210可以是通用处理器、DSP或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器210可以实现或者执行本发明实施例应用于自动语音识别系统的方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所提供的应用于自动语音识别系统的解码方法,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。
作为自动语音识别系统的软件实施示例,自动语音识别系统的软件可以位于存储介质中,存储介质位于存储器250,存储器250中存储语音识别系统100的软件,自动语音识别系统100包括有解码器121,对于语音识别系统100的其他软件模块可以根据图3而理解,不再重复说明,处理器210读取存储器250中的可执行指令,结合其硬件完成本发明实施例提供的应用于自动语音识别系统的解码方法。
就解码器121来说,包括解码网络模块1211和解码模块1212,下面分别进行说明。
解码网络模块1211,用于将原始语言模型拆分为低阶语言模型和差分语言模型,所述低阶语言模型的阶数低于所述源语言模型,所述差分语言模型为所述原始语言模型与所述低阶语言模型的差分;
解码模块1212,用于使用基于所述低阶语言模型形成的第一解码网络,对语音信号进行解码得到路径以及对应的评分,以及,使用基于所述差分语言模型形成的第二解码网络,对所述解码路径进行重评分;将满足评分条件的路径包括的输出符号作为识别结果输出。
在一些实施例中,解码网络模块1211,还用于在加权有限状态转换器中融合所述低阶语言模型,通过融合得到所述第一解码网络,或者,在加权有限状态转换器中融合所述低阶语言模型、发音词典和声学模型,通过融合得到所述第一解码网络。
在一些实施例中,所述解码模块1212,还用于针对所述语音信号的每个帧执行如下处理,初始化所述第一解码网络中的令牌列表,以及,遍历在所述令牌列表中的令牌;其中针对当前所遍历的目标令牌执行如下处理:
遍历所述第一解码网络中从所述目标令牌所对应状态出发的边,利用目标帧(也即是当前所遍历的帧)计算所遍历的边的声学模型评分和语言模型评分的加和,并作为所遍历的边的评分。
在一些实施例中,所述解码网络模块1211,还用于遍历在所述令牌列表中的令牌之前,确定所述令牌列表中的令牌中当前时间点评分最优的令牌,根据所确定令牌设置的集束宽度计算出下次集束搜索时使用的集束宽度。
在一些实施例中,所述解码网络模块1211,还用于初始化所述令牌列表中第一个令牌的评分以及前序指针赋为空;对所述第二解码网络进行哈希查找构造,将连接到所述第二解码网络的同一个状态的边用哈希的方式进行存储,
其中,每个状态上的查找键为相应状态的输入符号,与所述键对应的值为连接相应状态的边、以及相应状态的跳转状态。
在一些实施例中,所述解码模块1212,还用于当所遍历的边的评分未超过评分阈值时,确定所遍历的边所对应状态的下一状态;创建所述目标令牌所对应状态与所述下一状态之间的边,在所述边中记录所遍历的边的输入符号,输出符号、声学模型评分和语言模型评分,并且从所述目标令牌指向下一令牌,也即是连接目标令牌在第一解码网络中指向的状态与下一令牌在第一解码网络中对应的状态;其中,所述下一令牌在所述第二解码网络中对应的状态,是从所遍历的边指向的下一个状态;遍历所述目标令牌的假设集合中的假设、以及遍历的每个假设的伴生假设集合。
在一些实施例中,所述解码模块1212,还用于在遍历所述目标令牌的假设集合中的假设、以及所遍历的每个假设的伴生假设集合的过程中,当所遍历的边对应的输出符号为空符号时,将所述目标令牌的假设集合中的假设,按照评分从小到大的顺序加入到预建立且赋值为空的假设集合链表。
在一些实施例中,所述解码模块1212,还用于在遍历所述目标令牌的假设集合中的假设、以及所遍历的每个假设的伴生假设集合的过程中,当所遍历的边对应的输出符号不为空符号时,在所述第二解码网络中定位用于进行重评分的状态、以及从所述重评分的状态出发的边,在所述第二解码网络中,扩展从所述重评分的状态出发的所有边,并在扩展的过程中形成用于存储伴生假设的假设集合链表。
在一些实施例中,所述解码模块1212,还用于当使用所述重评分状态的哈希表,查询到与输入符号对应的边与状态时,对应查询到的边指向的下一状态,生成相应的新伴生假设集合,且所述新伴生假设集合对应的状态赋值为所述查询到的边指向的下一状态,所述新伴生假设集合对应的前序指针为当前所遍历的伴生假设集合的输出符号;计算所述新伴生假设集合的评分为以下评分的加和:当前所遍历的伴生假设集合的评分、当前所遍历的边的声学模型评分、当前所遍历的边的语言模型评分、以及所述查询到的边对应的语言模型评分;将所述新伴生假设集合中的伴生假设按照从小到大的顺序加入到预建立且赋值为空的所述假设集合链表。
在一些实施例中,所述解码模块1212,还用于当使用所述重评分状态的哈希表,查询输入符号对应的边与状态,且仅查询到相应的边时,将从所述重评分的状态跳转的状态指向所述查询到的边指向的下一状态;将所述目标令牌的假设集合替换为所述新伴生假设集合;计算所述新伴生假设集合的评分为以下评分的加和:当前所遍历的伴生假设集合的评分、当前所遍历的边的声学模型评分、当前所遍历的边的语言模型评分、以及所述查询到的边对应的语言模型评分。
在一些实施例中,所述解码模块1212,还用于当所述下一令牌的已有的伴生假设集合为空时,将假设集合链表加入到所述下一令牌的伴生假设集合中。
在一些实施例中,所述解码模块1212,还用于所述下一令牌的已有的伴生假设集合非空时,如果所述下一令牌中的伴生假设集合中存在假设集合,且所存在的假设集合的第一个伴生假设集合、与假设集合链表的第一个伴生假设集合的状态相同,将所存在的假设集合与所述假设集合链表中的伴生假设集合,按照评分从小到大的顺序进行归并,如果所存在的假设集合的第一个伴生假设集合、与假设集合链表的第一个伴生假设集合的状态不同,将所述假设集合链表照伴生假设集合头部的评分顺序,插入到所述下一令牌的假设集合中。
在一些实施例中,所述解码模块1212,还用于当遍历所述目标令牌的假设集合中的假设、以及遍历的每个假设的伴生假设集合之后,将所述目标令牌移出所述令牌列表,将所述下一令牌加入所述令牌列表,直到所有的令牌都已经移出所述令牌列表。
在一些实施例中,所述解码模块1212,还用于查找评分最高的伴生假设集合,输出评分最高伴生假设集合对应的输出符号作为识别结果。
作为图5示出的自动语音识别系统的硬件实施示例,本发明实施例提供的自动语音识别系统的硬件平台的配置可以为:2个14核CPU(E5-2680v4),256G内存;磁盘阵列(Raid),2*300串行连接SCSI(SAS),6*800G固态存储器(SSD);2*40G网口(光口,多模),8*图形处理器(GPU),2.4GHz主频,GPU型号Tesla M40 24GB;当然,上述示出的搭载自动语音识别系统的硬件平台的配置仅为示例,根据需要可以灵活变换。
如前所述,在连续语音识别中,解码即是对于输入的语音信号的特征序列,计算具有最大后验概率的词序列的过程,因此,一个优良的解码算法应当满足:准确性,即有效利用各种知识,使识别结果尽可能准确;高效率,即尽快得到识别结果,理想情况是语音信号输入自动语音识别系统后立即输出识别结果;低消耗,即尽量找占用硬件资源,包括存储器和处理器。
参见图6,图6是本发明实施例提供的解码方案的一个原理示意图,自动语音识别系统中进行两阶段(2-PASS)解码,在阶段1利用HCLG解码网络解码得到包括多条候选的路径的词图(Lattice),在阶段2利用语言模型解码网络(记为G.fst)对阶段1的多条路径进行重评分(Rescoring),选取评分高的路径作为最佳路径,输出最佳路径的输出符号为语音信号的识别结果。
由于阶段1中利用WFST融合了工业级别的语言模型形成的HCLG解码网络,其体积会占用内存空间太大,因此无法在工业中应用;例如,针对2吉(G)字节的语言模型形成语言模型解码网络时,解码网络的体积将接近20G字节,无法应用到工业中语音信号的识别大规模并发的情况,并且因为解码网络的体积较大解码速度也会有明显的减缓。
首先,HCLG解码网络的自动语音识别系统上实现解码时,令牌在HCLG解码网络中传递的过程中,令牌上的假设的重评分存在的缺陷是,对每个令牌的伴生假设集合存在一个上限,由于这个上限是人为设定的,没有在大规模的实际工业级别的解码系统上应用过,即使根据实际工业应用的经验进行设置,仍然会不可避免地导致正确的识别结果的路径被剪枝的情况,影响解码的精度。
其次,对于语言模型解码网络的搜索过程,缺少实用的加速方案,由于在语言模型解码网络中的搜索是属于解码过程中耗时最大的部分,工业级别的应用中,需要对体积在数十GB甚至上百GB的语言模型生成对应的解码网络,而解码网络是在语言模型的基础上对语言结构的知识表示,其体积无疑会在语言模型的基础上进一步扩大;如果应用图6示出的解码方案,由于缺少针对业级别的语言模型生成相应解码网络的具体方案,会影响自动语音识别系统整体上的识别效率。
可见,本发明实施例通过图6示出的解码方案涉及以下几个方面的问题:
1)解码时,对每个令牌留存的伴生假设集合的数量有上限要求,直接影响解码的速度和效率;
2)解码时候没有针对阶段2使用的解码网络(扩展过程的优化加速,直接影响搜索的速度,进而影响解码效率;
3)针对传统HCLG网络提出的生成解码网络的方案,其体积太大而工业应用时内存资源是有限的,因而不具有工业实用价值。
参见图7和图8,图7是本发明实施例提供的解码方案的一个可选的原理示意图,图8是本发明实施例提供的解码方案的一个可选的流程示意图,在图7和图8中针对图6示出的解码方案存在的缺陷提供工业化实用的解决方案。
在操作11中,将原始语言模型拆分为低阶语言模型和差分语言模型,低阶语言模型的阶数低于源语言模型,差分语言模型为原始语言模型与低阶语言模型的差分。
在操作12中,使用基于低阶语言模型形成的第一解码网络,对语音信号进行解码得到路径以及对应的评分,以及,使用基于差分语言模型形成的第二解码网络,对解码路径进行重评分。
在操作13中,将满足评分条件的路径包括的输出符号作为识别结果输出。
在一些实施例中,对于第一解码网络基于这样的方式形成:在加权有限状态转换器中融合低阶语言模型,通过融合得到第一解码网络,或者,在加权有限状态转换器中融合低阶语言模型、发音词典和声学模型,通过融合得到第一解码网络。
在一些实施例中,使用基于低阶语言模型形成的第一解码网络,对语音信号进行解码得到路径以及对应的评分时,可以采用如下的实现:
针对语音信号的每个帧执行如下处理,初始化第一解码网络中的令牌列表,以及,遍历在令牌列表中的令牌,针对当前所遍历的目标令牌执行如下处理:遍历第一解码网络中从目标令牌所对应状态出发的边,利用目标帧(也就是当前所遍历的帧)计算所遍历的边的声学模型评分和语言模型评分的加和,并作为所遍历的边的评分。
在一些实施例中,遍历在令牌列表中的令牌之前,还可以确定令牌列表中的令牌中当前时间点评分最优的令牌,根据所确定的令牌中设置的集束宽度计算出下次集束搜索时使用的集束宽度。
在一些实施例中,初始化第一解码网络中的令牌列表时,可以采用如下的实现:初始化令牌列表中第一个令牌的评分以及前序指针赋为空;对第二解码网络进行哈希查找构造,将连接到第二解码网络的同一个状态的边用哈希的方式进行存储;其中,每个状态上的查找键为相应状态的输入符号,与键对应的值为连接相应状态的边、以及相应状态的跳转状态。
在一些实施例中,初始化第一解码网络中的令牌列表的过程中,当所遍历的边的评分未超过评分阈值时,确定所遍历的边所对应状态的下一状态;创建目标令牌所对应状态与下一状态之间的边,在创建的边中记录所遍历的边的输入符号,输出符号、声学模型评分和语言模型评分,并且从目标令牌指向下一令牌,也就是从目标令牌在第一解码网络中对应的状态,指向下一令牌在第一解码网络中对应的状态;其中,下一令牌在第二解码网络中对应的状态,是从所遍历的边指向的下一个状态;遍历目标令牌的假设集合中的假设、以及遍历的每个假设的伴生假设集合。
在一些实施例中,使用基于差分语言模型形成的第二解码网络,对解码路径进行重评分,根据连接对应的符号为空符号的情况,可以采用如下的实现:在遍历目标令牌的假设集合中的假设、以及所遍历的每个假设的伴生假设集合的过程中,当所遍历的边对应的输出符号为空符号时,将目标令牌的假设集合中的假设,按照评分从小到大的顺序加入到预建立且赋值为空的假设集合链表。
在一些实施例中,使用基于差分语言模型形成的第二解码网络时,根据连接对应的符号为非空符号的情况,可以采用如下的实现:对解码路径进行重评分,在遍历目标令牌的假设集合中的假设、以及所遍历的每个假设的伴生假设集合的过程中,当遍历的边对应的输出符号不为空符号时,在第二解码网络中定位用于进行重评分的状态、以及从重评分的状态出发的边,在第二解码网络中,扩展从重评分的状态出发的所有边,并在扩展的过程中形成用于存储伴生假设的假设集合链表。
在一些实施例中,在扩展的过程中形成用于存储伴生假设的链表的过程中,根据使用重评分状态的哈希表,是否查询到与输入符号对应的边与状态,可以采用如下的实现:
1)当使用重评分状态的哈希表,查询到与输入符号对应的边与状态时,对应查询到的边指向的下一状态,生成相应的新伴生假设集合,且新伴生假设集合对应的状态赋值为查询到的边指向的下一状态,新伴生假设集合对应的前序指针为当前所遍历的伴生假设集合的输出符号;计算新伴生假设集合的评分为以下评分的加和:当前所遍历的伴生假设集合的评分、当前所遍历的边的声学模型评分、当前所遍历的边的语言模型评分、以及查询到的边对应的语言模型评分;将新伴生假设集合中的伴生假设按照从小到大的顺序加入到预建立且赋值为空的假设集合链表;
2)当使用重评分状态的哈希表,查询输入符号对应的边与状态,且仅查询到相应的边时,将从重评分的状态跳转的状态指向查询到的边指向的下一状态;将目标令牌的假设集合替换为新伴生假设集合;计算新伴生假设集合的评分为以下评分的加和:当前所遍历的伴生假设集合的评分、当前所遍历的边的声学模型评分、当前所遍历的边的语言模型评分、以及查询到的边对应的语言模型评分。
在一些实施例中,根据对应当前所遍历令牌的下一令牌而言,根据下一令牌的已有的伴生假设集合是否为空的情况,对预先建立的伴生假设集合执行如下的处理:
1)当下一令牌的已有的伴生假设集合为空时,将假设集合链表加入到下一令牌的伴生假设集合中;
2)当下一令牌的已有的伴生假设集合非空时,根据下一令牌中的伴生假设集合中存在假设集合的不同情况,通过如下的方式处理假设集合链表:
2.1)如果下一令牌中的伴生假设集合中存在假设集合,且所存在的假设集合的第一个伴生假设集合、与假设集合链表的第一个伴生假设集合的状态相同,将所存在的假设集合与假设集合链表中的伴生假设集合,按照评分从小到大的顺序进行归并;
2.2)如果所存在的假设集合的第一个伴生假设集合、与假设集合链表的第一个伴生假设集合的状态不同,将假设集合链表照伴生假设集合头部的评分顺序,插入到下一令牌的假设集合中。
在一些实施例中,当遍历目标令牌的假设集合中的假设、以及遍历的每个假设的伴生假设集合之后,将目标令牌移出令牌列表,将下一令牌加入令牌列表,直到所有的令牌都已经移出令牌列表。
在一些实施例中,当将满足评分条件的路径包括的输出符号作为识别结果输出时,可以采用如下的实现:查找评分最高的伴生假设集合,输出评分最高伴生假设集合对应的输出符号作为识别结果。
继续说明本发明实施例提供的解码方案的算法实现过程,对所涉及的缩略语进行说明。
<eps>代表空符号;ilabel代表输入的符号;olabel代表输出的符号;hypslist是指解码时某个令牌上的假设集合;cohyp是指对应某个假设集合的经过重评分之后产生的伴生假设集合;令牌是记录解码时候某时刻某个状态上的评分(包括声学模型评分和语言模型评分)和信息的数据结构;arc,边。
在操作21中,初始化令牌列表,初始化内容包括初始化第一个令牌的评分为0.0,前序(back)指针赋为空(NULL),对G.fst进行哈希查找构造,将原来连接到同一个状态的多条边用哈希的方式进行存储:每个状态的查找键(Key)为输入符号(Input Label),值(Value)为从状态出发的边与跳转状态。
操作22中,帧(Frame)指针加1,处理已有的令牌(帧指针所指向的待处理的帧也称为当前帧、目标帧或待处理帧)。
在操作22.1中,遍历令牌列表中的令牌,找到当前时间点评分最优的令牌评分,根据当前搜索所设置的集束宽度计算出下次搜索需要剪枝的集束宽度。
在操作22.2中,再次遍历令牌列表。
在操作22.3中,假设遍历到了某个令牌,设其为令牌A(下面将当前所遍历到的令牌称为当前令牌、目标令牌或待处理令牌)。
在操作22.3.1中,找到令牌A在TLG.fst(也可以替换为动态解码网络)中对应的状态,设这个状态为state1。
在操作22.3.2中,依次遍历从这个状态state1出发的所有边,设这个边为arc1。
在操作22.3.3中,利用当前帧计算这个边arc1的声学模型评分ac_cost和语言模型评分graph_cost,将这个评分记录下来。
在操作22.3.4中,如果这个评分超过预先设定的剪枝值(也就是评分阈值),则放弃这条边转向遍历下一条边;如果这个评分没有超过剪枝值,那么就新建或在已有令牌列表中找到令牌B,这个令牌B在TLG.fst中对应的状态是arc1指向的下一个状态,设arc1指向的下一个状态为state2。
在操作22.3.5中,新建一个新的连接(Link)也即是边,这个连接记录了当前边arc1的输入符号,输出符号、声学模型评分和语言模型评分,并且从令牌A指向令牌B,也就是连接令牌A在TLG.fst中对应的状态与令牌B在TLG.fst中对应的状态。
在操作22.3.6中,从令牌A取出所有的假设集合,记为hyps,遍历令牌A的假设集合hyps中的假设。
在操作22.3.7假设当前遍历到的假设是假设hyp A,确保假设hyp A中的伴生假设集合是按照评分从小到大依次排序的。
在操作22.3.8中,新建一个记录多个伴生假设集合的链表,记为hyp A',开始时赋值为空。
在操作22.3.9中,遍历假设hyp A中的所有伴生假设集合,假设当前选中的伴生假设是伴生假设cohyp A。
在操作22.3.10中,如果边对应的输出符号olabel不为<eps>,则执行操作22.3.11至操作22.3.12.2。
在操作22.3.11中,在G2.fst中找到伴生假设cohyp A对应的状态,记为state A,定位到用于进行重评分的G.fst中的state A、以及G2.fst从状态state A开始出发的所有的边。
在操作22.3.12中,开始扩展G.fst中从状态stateA出发的所有边。
在操作22.3.12.1中,使用stateA上的哈希表,查询输入符号为olabel(即连接的输入符号)的边与状态;
如果只存在输入符号为olabel的边而不存在状态,则转到2.3.12.2继续执行;
如果存在输入符号为olabel的边以及状态,设查找到的边为arc2,查找到arc2指向的下一个状态,记为状态state A';生成一个新的伴生假设集合,记为伴生假设集合cohyp A',伴生假设集合cohyp A'对应的状态赋值为state A',伴生假设集合cohyp A'的前序指针为当前所遍历的伴生假设集合cohyp A的输出符号,伴生假设集合cohyp A'的评分为伴生假设集合cohyp A的评分、当前遍历的边(也就是令牌A在TLG.fst中所遍历的边)声学模型评分ac_cost、当前遍历的边(也就是当前所述查询到的边)的语言模型评分graph_cost、以及arc2对应的语言模型评分graph cost;
将这个新的伴生假设集合cohyp A'按照评分从小到大的顺序加入到假设集合hypA'中,转到操作22.3.14。
在操作22.3.12.2中,遍历arc2输入等于<eps>的边,将state A跳转到arc2指向下一个状态state A';伴生假设集合cohyp A被替换成伴生假设集合cohyp A',伴生假设集合cohyp A'的评分为:伴生假设集合cohyp A的评分、边arc1的ac_cost、边arc1的语言模型评分graph_cost、边arc2对应的graph cost的加和,cohyp A'对应的state为A';将伴生假设集合cohyp A换为伴生假设集合cohyp A',回到操作22.3.10递归执行操作22.3.10-操作22.3.12.2。
在操作22.3.13中,如果连接对应的输出符号olabel为<eps>,则执行2.3.13.1。
在操作22.3.13.1中,直接将伴生假设集合cohyp A按照评分从小到大的顺序加入到假设集合hyp A'中。
在操作22.3.14中,回到2.3.9继续遍历直到假设集合hyp A中的伴生假设集合已经全部被遍历。
在操作22.3.15中,对于经过上述过程生成好的假设集合hyp A',检查令牌B已有的假设集合,确保令牌B的假设集合是按照每个假设集合对应的评分最小的伴生假设集合评分从小到大排列的;
如果令牌B已有的伴生假设集合为空,直接将假设集合hyp A'加入到令牌B的伴生假设集合中;
如果令牌B的伴生假设集合非空,首先遍历令牌B的伴生假设集合,如果在令牌B中的伴生假设集合中存在某个假设集合hyp B,它的第一个伴生假设集合和假设集合hyp A'对应的第一个伴生假设集合的状态相同,则将假设集合hyp B与假设集合hyp A'中的伴生假设集合按照评分从小到大的顺序进行归并,若否则直接将假设集合hyp A'按照伴生假设集合头部(cohyp_head)评分顺序插入到令牌B的假设集合中去。
在操作22.3.16中,回到2.3.6继续执行2.3.6到2.3.15直到遍历完所有的假设集合。
在操作22.3.17中,将令牌A移出令牌列表,令牌B加入令牌列表,回到操作22.2继续执行2.2到2.3.16直到所有的令牌都已经移出令牌列表。
在操作22.4中,回到操作22执行操作22到操作22.4的所有步骤,直到所有帧都已经被遍历。
在操作22.5中,找到评分最高的伴生假设集合,输出这个伴生假设集合对应的输出符号,这些输出符号就是解码器的识别结果。
根据上述的算法实现过程不难看出:
首先,利用低阶语言模型生成解码网络,所生成的解码网络的体积会较根据原始语言模型生成的体积更小;此外,在解码时实时加上差分语言模型的评分,用这个评分对实时扩展的令牌进行重评分,这样可以保证每个令牌上记录的是经过原始语言模型重评分之后的更优的评分,从而加速解码速度,同时,能够得到与大模型语言模型同等精度的解码结果,在不影响解码精度的基础上显著提升了解码速度。
其次,通过分治的方案去解决每个令牌的伴生假设集合过多的时的快速的排序和归并,这样可以能够用到更多的伴生假设集合,使用哈希的方法去加速解码网络的边的扩展过程中的快速匹配。
再次,使用针对语言模型生成对应的语言模型解码网络(记为G.fst)的工具,解决开源工具(记为openfst)中生成大的解码网络的时候消耗内存过大的问题,可以使得用上百GB的语言模型解码识别成为可能,提高整个自动语音识别系统的准确率和实时性能。
由上可见,本发明实施例提供的解码方案使用到了分治的方案,对令牌中的伴生假设集合进行了分类归并,同时在语言模型解码网络进行扩展时,例如可以使用平方取中法(Mid-Square)的哈希进行搜索加速,即首先把Key计算平方(Key)^2,然后取(Key)^2的中间部分作为Key的值(Value),这样能够显著提高在语言模型搜索最佳路径的速度。
因此,本发明实施例提供的解码方案可以针对大的语言模型生成相应的语言模型并进行解码的方案,弥补实用的能够针对原始语言模型生成解码网络的方案的缺失,提供能够工业级别的高精度的大模型解决方案。
在一些实施例中,提供动态的解码器的替代前述解码器的解码方案,通过词典动态扩张解码的路径,然后用语言模型解码网络,对解码得到路径的进行动态重评分和剪枝;替代方案的优势在于不需要结合发音词典和语言模型以及语言模型生成TLG解码网络,只需要生成语言模型相应的解码网络,简化了解码的准备工作,并进一步降低了解码网络消耗的内存空间,
继续结合实现本发明实施例的一个图例进行说明,参见图9A至图9B,图9A是本发明实施例提供的TLG解码网络的一个可选的结构示意图,图9B是本发明实施例提供的TLG解码网络的一个可选的结构示意图,首先在TLG.fst中解码,解码得到的一条路径是0-1-2-4-6,路径的输出符号是“今天天气”,路径的评分是0+0.8+1.2=2.0;另外一条解码的路径是0-1-2-4-7,路径的输出符号是“今天天启”,路径评分为0+0.8+1.0=1.8,显然该路径比输出符号为“今天天气”路径更优。
经过G.fst重评分之后,天气的评分查出来是要新加一个0.1,最后路径评分是2.1分,天气的评分在G.fst中显示是0.4,所以要再加一个0.4,最后评分为1.8+0.4=2.2。
经过重评分之后,今天天气的评分2.1小于今天天启的评分2.2,于是最终输出的识别结果是“今天天气”。
参见图10,图10是应用本发明实施例提供的解码方案的语音识别系统的可选的应用场景示意图,对本发明实施例提供的实际应用场景的示例进行说明。
作为一个示例,本发明实施例提供的自动语音识别系统可以实施为终端(例如智能手机、平板电脑等)的离线识别方案,终端通过预先向云端获取语音识别的相关数据,依赖于终端的处理器和存储器进行不依赖于服务器的语音识别,例如各种APP中的语音输入。
作为另一个示例,本发明实施例提供的自动语音识别系统实施为云端语音识别识别的方案,应用到的产品是需要调用语音识别功能的相关场景,比如智能家居场景,语音输入转写,车载导航,智能音箱等,通过调用云端的语音识别能力完成场景应用,可以封装为语音识别APP,嵌入到各种APP中的语音识别引擎,为各种智能语音交互的场景提供有效的语音识别支撑。
综上所述,应用本发明实施例提供解码方案自动语音识别系统,能够提升相关技术提供的自动语音识别系统的识别精度,同时保持或提高已有的自动语音识别系统的识别速度;由于本发明实施例能够利用工业级别的语言模型生成的解码网络进行重评分,相较于相关技术无法针对工业级别的语言模型生成能够实用的解码网络,而相关技术用同样级别的语言模型生成TLG解码网络会十分巨大,不能实用;相较于在阶段1使用HCLG解码网络,在阶段1使用低阶的TLG解码网络的体积相较于HCLG解码网络的体积明显减小,二可以使用差分语言模型构建的解码网络进行重评分,使识别精度能够达到与在阶段1使用HCLG解码网络一致,由于TLG解码网络的体积明显小于HCLG解码网络,显著节约了内存空间,提升了解码效率,因此具有很好的工业实用价值。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (14)
1.一种解码方法,其特征在于,包括:
将原始语言模型拆分为低阶语言模型和差分语言模型,所述低阶语言模型的阶数低于源语言模型,所述差分语言模型为所述原始语言模型与所述低阶语言模型的差分;
针对语音信号的每个帧执行如下处理:
初始化第一解码网络中的令牌列表,遍历在所述令牌列表中的令牌;
其中,针对当前所遍历的目标令牌执行如下处理:
遍历所述第一解码网络中从所述目标令牌所对应状态出发的边,利用目标帧计算所遍历的边的声学模型评分和语言模型评分的加和,并作为所遍历的边的评分;
使用基于所述差分语言模型形成的第二解码网络,对解码路径进行重评分;
将满足评分条件的路径包括的输出符号作为识别结果输出。
2.根据权利要求1所述的解码方法,其特征在于,还包括:
在加权有限状态转换器中融合所述低阶语言模型,通过融合得到所述第一解码网络,或者,
在加权有限状态转换器中融合所述低阶语言模型、发音词典和声学模型,通过融合得到所述第一解码网络。
3.根据权利要求1所述的解码方法,其特征在于,还包括:
遍历在所述令牌列表中的令牌之前,
确定所述令牌列表中的令牌中当前时间点评分最优的令牌,根据所确定令牌设置的集束宽度计算出下次集束搜索时使用的集束宽度。
4.根据权利要求1所述的解码方法,其特征在于,所述初始化第一解码网络中的令牌列表,包括:
初始化所述令牌列表中第一个令牌的评分以及前序指针赋为空;
对所述第二解码网络进行哈希查找构造,将连接到所述第二解码网络的同一个状态的边用哈希的方式进行存储;
其中,所述第二解码网络的每个状态上的查找键为相应状态的输入符号,与所述键对应的值为连接相应状态的边、以及相应状态的跳转状态。
5.根据权利要求4所述的解码方法,其特征在于,还包括:
当所遍历的边的评分未超过评分阈值时,确定所遍历的边所对应状态的下一状态;
创建连接所述目标令牌所对应状态与所述下一状态之间的边,在所创建的边中记录所遍历的边的输入符号,输出符号、声学模型评分和语言模型评分,并且所创建的边从所述目标令牌指向下一令牌;
其中,所述下一令牌在所述第二解码网络中对应的状态,是从所述第一解码网络中所遍历的边指向的下一个状态;
遍历所述目标令牌的假设集合中的假设、以及遍历的每个假设的伴生假设集合。
6.根据权利要求5所述的解码方法,其特征在于,所述使用基于所述差分语言模型形成的第二解码网络,对解码路径进行重评分,包括:
在遍历所述目标令牌的假设集合中的假设、以及所遍历的每个假设的伴生假设集合的过程中,
当所遍历的边对应的输出符号为空符号时,将所述目标令牌的假设集合中的假设,按照评分从小到大的顺序加入到预建立且赋值为空的假设集合链表。
7.根据权利要求5所述的解码方法,其特征在于,所述使用基于所述差分语言模型形成的第二解码网络,对解码路径进行重评分,包括:
在遍历所述目标令牌的假设集合中的假设、以及所遍历的每个假设的伴生假设集合的过程中,
当所遍历的边对应的输出符号不为空符号时,在所述第二解码网络中定位用于进行重评分的状态、以及从所述重评分的状态出发的边,以及,
在所述第二解码网络中,扩展从所述重评分的状态出发的所有边,并在扩展的过程中形成用于存储伴生假设的假设集合链表。
8.根据权利要求7所述的解码方法,其特征在于,所述在扩展的过程中形成用于存储伴生假设的假设集合链表,包括:
当使用所述重评分的状态的哈希表,查询到与输入符号对应的边与状态时,
对应查询到的边指向的下一状态,生成相应的新伴生假设集合,且所述新伴生假设集合对应的状态赋值为所述查询到的边指向的下一状态,所述新伴生假设集合对应的前序指针为当前所遍历的伴生假设集合的输出符号;
计算所述新伴生假设集合的评分为以下评分的加和:当前所遍历的伴生假设集合的评分、当前所遍历的边的声学模型评分、当前所遍历的边的语言模型评分、以及所述查询到的边对应的语言模型评分;
将所述新伴生假设集合中的伴生假设按照从小到大的顺序加入到预建立且赋值为空的所述假设集合链表。
9.根据权利要求7所述的解码方法,其特征在于,所述在扩展的过程中形成用于存储伴生假设的假设集合链表,包括:
当使用所述重评分的状态的哈希表,查询输入符号对应的边与状态,且仅查询到相应的边时,
将从所述重评分的状态的跳转状态指向查询到的边指向的下一状态;
将所述目标令牌的假设集合替换为新伴生假设集合;
计算所述新伴生假设集合的评分为以下评分的加和:当前所遍历的伴生假设集合的评分、当前所遍历的边的声学模型评分、当前所遍历的边的语言模型评分、以及当前所查询到的边对应的语言模型评分。
10.根据权利要求5所述的解码方法,其特征在于,还包括:
当所述下一令牌的已有的伴生假设集合非空时,
如果所述下一令牌中的伴生假设集合中存在假设集合,且所存在的假设集合的第一个伴生假设集合、与假设集合链表的第一个伴生假设集合的状态相同,将所存在的假设集合与所述假设集合链表中的伴生假设集合,按照评分从小到大的顺序进行归并,
如果所存在的假设集合的第一个伴生假设集合、与假设集合链表的第一个伴生假设集合的状态不同,将所述假设集合链表照伴生假设集合头部的评分顺序,插入到所述下一令牌的假设集合中。
11.一种解码器,其特征在于,包括:
解码网络模块,将原始语言模型拆分为低阶语言模型和差分语言模型,所述低阶语言模型的阶数低于源语言模型,所述差分语言模型为所述原始语言模型与所述低阶语言模型的差分;
解码模块,用于针对语音信号的每个帧执行如下处理:初始化第一解码网络中的令牌列表,以及,
遍历在所述令牌列表中的令牌,针对当前所遍历的目标令牌执行如下处理:
遍历所述第一解码网络中从所述目标令牌所对应状态出发的边,利用目标帧计算所遍历的边的声学模型评分和语言模型评分的加和,并作为所遍历的边的评分;
所述解码模块,还用于使用基于所述差分语言模型形成的第二解码网络,对解码路径进行重评分;
将满足评分条件的路径包括的输出符号作为识别结果输出。
12.根据权利要求11所述的解码器,其特征在于,
所述解码网络模块,还用于在加权有限状态转换器中融合所述低阶语言模型,通过融合得到所述第一解码网络,或者,
在加权有限状态转换器中融合所述低阶语言模型、发音词典和声学模型,通过融合得到所述第一解码网络。
13.一种计算机可读存储介质,其特征在于,存储有可执行指令,所述可执行指令用于执行权利要求1至10任一项所述的解码方法。
14.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至10任一项所述的解码方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810020113.6A CN108305634B (zh) | 2018-01-09 | 2018-01-09 | 解码方法、解码器及存储介质 |
CN201910741739.0A CN110364171B (zh) | 2018-01-09 | 2018-01-09 | 一种语音识别方法、语音识别系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810020113.6A CN108305634B (zh) | 2018-01-09 | 2018-01-09 | 解码方法、解码器及存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910741739.0A Division CN110364171B (zh) | 2018-01-09 | 2018-01-09 | 一种语音识别方法、语音识别系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108305634A CN108305634A (zh) | 2018-07-20 |
CN108305634B true CN108305634B (zh) | 2020-10-16 |
Family
ID=62868393
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810020113.6A Active CN108305634B (zh) | 2018-01-09 | 2018-01-09 | 解码方法、解码器及存储介质 |
CN201910741739.0A Active CN110364171B (zh) | 2018-01-09 | 2018-01-09 | 一种语音识别方法、语音识别系统及存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910741739.0A Active CN110364171B (zh) | 2018-01-09 | 2018-01-09 | 一种语音识别方法、语音识别系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN108305634B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109087630B (zh) * | 2018-08-29 | 2020-09-15 | 深圳追一科技有限公司 | 语音识别的方法及相关装置 |
CN109274845A (zh) * | 2018-08-31 | 2019-01-25 | 平安科技(深圳)有限公司 | 智能语音自动回访方法、装置、计算机设备及存储介质 |
CN109492679A (zh) * | 2018-10-24 | 2019-03-19 | 杭州电子科技大学 | 基于注意力机制与联结时间分类损失的文字识别方法 |
CN109087645B (zh) * | 2018-10-24 | 2021-04-30 | 科大讯飞股份有限公司 | 一种解码网络生成方法、装置、设备及可读存储介质 |
CN110164421B (zh) * | 2018-12-14 | 2022-03-11 | 腾讯科技(深圳)有限公司 | 语音解码方法、装置及存储介质 |
CN110110294B (zh) * | 2019-03-26 | 2021-02-02 | 北京捷通华声科技股份有限公司 | 一种动态反向解码的方法、装置及可读存储介质 |
CN110428819B (zh) * | 2019-05-21 | 2020-11-24 | 腾讯科技(深圳)有限公司 | 解码网络生成方法、语音识别方法、装置、设备及介质 |
CN110120221A (zh) * | 2019-06-06 | 2019-08-13 | 上海蔚来汽车有限公司 | 用于车机系统的用户个性化离线语音识别方法及其系统 |
CN112071310B (zh) * | 2019-06-11 | 2024-05-07 | 北京地平线机器人技术研发有限公司 | 语音识别方法和装置、电子设备和存储介质 |
CN110502746B (zh) * | 2019-07-18 | 2021-04-09 | 北京捷通华声科技股份有限公司 | 一种在线域更新解码方法、装置、电子设备及存储介质 |
CN110808032B (zh) * | 2019-09-20 | 2023-12-22 | 平安科技(深圳)有限公司 | 一种语音识别方法、装置、计算机设备及存储介质 |
CN110610700B (zh) * | 2019-10-16 | 2022-01-14 | 科大讯飞股份有限公司 | 解码网络构建方法、语音识别方法、装置、设备及存储介质 |
CN110910885B (zh) * | 2019-12-12 | 2022-05-27 | 思必驰科技股份有限公司 | 基于解码网络的语音唤醒方法和装置 |
CN111816166A (zh) * | 2020-07-17 | 2020-10-23 | 字节跳动有限公司 | 声音识别方法、装置以及存储指令的计算机可读存储介质 |
CN111899576A (zh) * | 2020-07-23 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 发音测试应用的控制方法、装置、存储介质和电子设备 |
CN112562676B (zh) * | 2020-11-13 | 2023-12-29 | 北京捷通华声科技股份有限公司 | 一种语音解码方法、装置、设备及存储介质 |
CN112614023A (zh) * | 2020-12-25 | 2021-04-06 | 东北大学 | 电子合同的形式化安全验证方法 |
CN113096648A (zh) * | 2021-03-20 | 2021-07-09 | 杭州知存智能科技有限公司 | 用于语音识别的实时解码方法和装置 |
CN113823266A (zh) * | 2021-07-22 | 2021-12-21 | 腾讯科技(深圳)有限公司 | 关键词检测方法、装置、设备及存储介质 |
CN113707137B (zh) * | 2021-08-30 | 2024-02-20 | 普强时代(珠海横琴)信息技术有限公司 | 解码实现方法及装置 |
CN113763960B (zh) * | 2021-11-09 | 2022-04-26 | 深圳市友杰智新科技有限公司 | 模型输出的后处理方法、装置和计算机设备 |
CN114444462B (zh) * | 2022-01-26 | 2022-11-29 | 北京百度网讯科技有限公司 | 模型训练方法及人机交互方法、装置 |
CN114187902B (zh) * | 2022-01-28 | 2024-12-03 | 杭州一知智能科技有限公司 | 一种基于ac自动机热词增强的语音识别方法和系统 |
CN117357073B (zh) * | 2023-12-07 | 2024-04-05 | 北京清雷科技有限公司 | 基于gmm-hmm模型的睡眠分期方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101548285A (zh) * | 2007-10-04 | 2009-09-30 | 株式会社东芝 | 自动语音识别方法和设备 |
CN103065630A (zh) * | 2012-12-28 | 2013-04-24 | 安徽科大讯飞信息科技股份有限公司 | 用户个性化信息语音识别方法及系统 |
CN103871403A (zh) * | 2012-12-13 | 2014-06-18 | 北京百度网讯科技有限公司 | 建立语音识别模型的方法、语音识别方法及对应装置 |
US9224386B1 (en) * | 2012-06-22 | 2015-12-29 | Amazon Technologies, Inc. | Discriminative language model training using a confusion matrix |
JP2016102947A (ja) * | 2014-11-28 | 2016-06-02 | 株式会社東芝 | 生成装置、認識装置、生成方法およびプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982811B (zh) * | 2012-11-24 | 2015-01-14 | 安徽科大讯飞信息科技股份有限公司 | 一种基于实时解码的语音端点检测方法 |
CN103903619B (zh) * | 2012-12-28 | 2016-12-28 | 科大讯飞股份有限公司 | 一种提高语音识别准确率的方法及系统 |
CN105118501B (zh) * | 2015-09-07 | 2019-05-21 | 徐洋 | 语音识别的方法及系统 |
JP6727607B2 (ja) * | 2016-06-09 | 2020-07-22 | 国立研究開発法人情報通信研究機構 | 音声認識装置及びコンピュータプログラム |
-
2018
- 2018-01-09 CN CN201810020113.6A patent/CN108305634B/zh active Active
- 2018-01-09 CN CN201910741739.0A patent/CN110364171B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101548285A (zh) * | 2007-10-04 | 2009-09-30 | 株式会社东芝 | 自动语音识别方法和设备 |
US9224386B1 (en) * | 2012-06-22 | 2015-12-29 | Amazon Technologies, Inc. | Discriminative language model training using a confusion matrix |
CN103871403A (zh) * | 2012-12-13 | 2014-06-18 | 北京百度网讯科技有限公司 | 建立语音识别模型的方法、语音识别方法及对应装置 |
CN103065630A (zh) * | 2012-12-28 | 2013-04-24 | 安徽科大讯飞信息科技股份有限公司 | 用户个性化信息语音识别方法及系统 |
JP2016102947A (ja) * | 2014-11-28 | 2016-06-02 | 株式会社東芝 | 生成装置、認識装置、生成方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN110364171B (zh) | 2023-01-06 |
CN110364171A (zh) | 2019-10-22 |
CN108305634A (zh) | 2018-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108305634B (zh) | 解码方法、解码器及存储介质 | |
CN111933129B (zh) | 音频处理方法、语言模型的训练方法、装置及计算机设备 | |
CN110534095B (zh) | 语音识别方法、装置、设备以及计算机可读存储介质 | |
CN109410914B (zh) | 一种赣方言语音和方言点识别方法 | |
CN108711421B (zh) | 一种语音识别声学模型建立方法及装置和电子设备 | |
CN111429889A (zh) | 基于截断注意力的实时语音识别的方法、装置、设备以及计算机可读存储介质 | |
US20110077943A1 (en) | System for generating language model, method of generating language model, and program for language model generation | |
JPH08278794A (ja) | 音声認識装置および音声認識方法並びに音声翻訳装置 | |
CN109036471B (zh) | 语音端点检测方法及设备 | |
CN1402851A (zh) | 以自底向上方式将声调集成到汉语连续语音识别系统中的方向、装置和系统 | |
KR101424193B1 (ko) | 타 언어권 화자음성에 대한 음성인식 시스템의 성능 향상을위한 비직접적 데이터 기반 발음변이 모델링 시스템 및방법 | |
CN112562640B (zh) | 多语言语音识别方法、装置、系统及计算机可读存储介质 | |
US20050038647A1 (en) | Program product, method and system for detecting reduced speech | |
JP2002215187A (ja) | 音声認識方法及びその装置 | |
US20140142925A1 (en) | Self-organizing unit recognition for speech and other data series | |
JP4595415B2 (ja) | 音声検索システムおよび方法ならびにプログラム | |
JP3364631B2 (ja) | 統計的言語モデル生成装置及び音声認識装置 | |
JP2938865B1 (ja) | 音声認識装置 | |
JPH09134192A (ja) | 統計的言語モデル生成装置及び音声認識装置 | |
JP3494338B2 (ja) | 音声認識方法 | |
JP3439700B2 (ja) | 音響モデル学習装置、音響モデル変換装置及び音声認識装置 | |
Zgank | Cross-lingual speech recognition between languages from the same language family | |
JPH08314490A (ja) | ワードスポッティング型音声認識方法と装置 | |
CN110956954B (zh) | 一种语音识别模型训练方法、装置以及电子设备 | |
JP3818154B2 (ja) | 音声認識方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |