CN112634878A - 语音识别后处理方法和系统及相关设备 - Google Patents
语音识别后处理方法和系统及相关设备 Download PDFInfo
- Publication number
- CN112634878A CN112634878A CN202011476615.3A CN202011476615A CN112634878A CN 112634878 A CN112634878 A CN 112634878A CN 202011476615 A CN202011476615 A CN 202011476615A CN 112634878 A CN112634878 A CN 112634878A
- Authority
- CN
- China
- Prior art keywords
- speech
- word
- language model
- sentence
- bert
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012805 post-processing Methods 0.000 title claims abstract description 20
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 48
- 238000012549 training Methods 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 24
- 230000011218 segmentation Effects 0.000 claims description 23
- 239000013598 vector Substances 0.000 claims description 12
- 230000015654 memory Effects 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 2
- 238000012360 testing method Methods 0.000 abstract description 5
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000000873 masking effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 241000590419 Polygonia interrogationis Species 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- 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
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
-
- 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
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/19—Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
-
- 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/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种语音识别后处理方法和系统及相关设备。所述方法包括:从语音识别系统针对输入语音进行第一次解码产生的词图lattice中,提取前N个最好的识别结果N‑best lists;使用训练好的带有词性的BERT双向语言模型对N‑best lists进行重打分;从N‑best lists中选择得分最高的结果作为最终的识别结果。本发明对N‑best lists进行重打分时,通过使用带有词性的BERT双向语言模型,能够同时利用上下文信息,还可以利用到上下文的词性信息,从而可以进一步提升语音识别系统的性能。
Description
技术领域
本发明涉及语音识别技术领域,具体涉及一种语音识别后处理方法和系统及相关设备。
背景技术
语音识别是一门交叉学科。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。一个语音识别系统主要由声学模型、语言模型、发音词典构成。其中语言模型目前大致可分成三类:基于规则的语言模型,基于统计的语言模型,基于神经网络的语言模型。而目前基于统计的N-gram语言模型被普遍应用在语音识别中,它假设任意一个词出现的概率最多只同它前面N-1个词有关。所以,N-gram语言模型可以利用的上文信息受到N大小的限制。理论上N越大,它可以利用更多的上文信息。但是N越大,该模型的数据稀疏问题就越严重。为了解决数据稀疏问题,许多相关的平滑算法也相继被提出:拉普拉斯平滑、内插法、回溯法。如今,基于神经网络的语言模型得到广泛的关注。在此基础上,人们提出了双向语言模型,基于注意力机制的语言模型等等。如何将基于神经网络的语言模型应用到语音识别系统中来进一步提升系统的性能,是目前重要的研究方向。
发明内容
本发明的目的在于提供一种语音识别后处理方法和系统及相关设备,以提升语音识别系统的性能。
为实现上述发明目的,本发明采用如下技术方案。
本发明第一方面,提供一种语音识别后处理方法,包括:从语音识别系统针对输入语音进行第一次解码产生的词图lattice中,提取前N个最好的识别结果N-best lists;使用训练好的带有词性的BERT(Bidirectional Encoder Representation fromTransformers,基于Transformer的双向编码器表征)双向语言模型对N-best lists进行重打分;从N-best lists中选择得分最高的结果作为最终的识别结果。
一种可能的实现方式中,所述方法还包括预先训练带有词性的BERT双向语言模型的训练步骤,该训练步骤具体包括:对训练用的文本语料进行预处理;通过分词工具进行分词和词性标注,获取文本语料中的词组和对应的词性,然后利用B、I、E、S四个标签与词性进行组合,对各词组的词性进行进一步分配;将文本语料的文本信息和词性信息进行相同的掩膜处理;对掩膜处理后的文本信息的词向量和词性信息的词向量进行平均加权求和,然后输入到网络中训练得到带有词性的BERT双向语言模型;其中,在训练BERT双向语言模型过程中,禁用预测下一句NSP任务,仅保留通过掩膜方式训练语言模型的Mask LM任务。
一种可能的实现方式中,所述使用训练好的带有词性的BERT双向语言模型对N-best lists进行重打分,包括:对N-best lists中的每个结果所组成的句子,通过分词工具求出句子中每个词的词性,然后利用B、I、E、S四个标签与词性进行组合来进一步划分出每个字的词性;采用基于滑动窗口的输入样本方式和逐字掩膜的编码方式,对每个句子构造输入样本并进行编码处理,然后输入到BERT双向语言模型;经由BERT双向语言模型计算得出每个句子的概率和得分,完成对N-best lists的重打分。
一种可能的实现方式中,所述的采用基于滑动窗口的输入样本方式和逐字掩膜的编码方式,对每个句子构造输入样本并进行编码处理,然后输入到BERT双向语言模型,包括:设置长度为max_length=2M的滑动窗口,M为正整数;如果句子的长度不超过max_length,则对整个句子采用逐字掩膜的方式构造输入样本,进行编码处理后,构造成一个batch,输入到BERT双向语言模型;如果句子的长度超过max_length,则通过从句子的开头以步长M向后移动滑动窗口,依次提取每个滑动窗口内的句子内容,如果当前滑动窗口内的所有字都是首次被处理,则从第一个字开始采用逐字掩膜的方式构造输入样本,如果当前滑动窗口内的前M个字已在之前的滑动窗口内被处理,则从第M+1个字开始采用逐字掩膜的方式构造输入样本,最后对该句子的全部输入样本进行编码处理后构造成一个batch,输入到BERT双向语言模型。
一种可能的实现方式中,所述的经由BERT双向语言模型计算得出每个句子的概率和得分,包括:由BERT双向语言模型计算得到每个句子中各个掩膜位置的文字在上下文约束情况下出现的概率值,记为:
P(w1|(w2,w3,...,wL)),P(w2|(w1,w3,...,wL)),···,P(wL|(w1,w2,...,wL-1))
其中,w1,w2,w3,...,wL分别表示该句子中的L个字;
将该句子用S表示,该句子的长度用L表示,该句子的概率值用P(S)表示,该句子的得分用score(S)表示,则计算得出该句子的概率值和得分分别为:
P(S)=P(w1|(w2,w3,...,wL))P(w2|(w1,w3,...,wL))···P(wL|(w1,w2,...,wL-1));
score(S)=log P(S)=log P(w1|(w2,w3,...,wL))+···+log P(wL|(w2,w3,...,wL-1))。
本发明第二方面,提供一种语音识别后处理系统,包括:提取模块,用于从语音识别系统针对输入语音进行第一次解码产生的词图lattice中,提取前N个最好的识别结果N-best lists;重打分模块,用于使用训练好的带有词性的BERT双向语言模型对N-bestlists进行重打分;从N-best lists中选择得分最高的结果作为最终的识别结果。
一种可能的实现方式中,所述系统还包括用于预先训练带有词性的BERT双向语言模型的训练模块,该训练模块具体用于:对训练用的文本语料进行预处理;通过分词工具进行分词和词性标注,获取文本语料中的词组和对应的词性,然后利用B、I、E、S四个标签与词性进行组合,对各词组的词性进行进一步分配;将文本语料的文本信息和词性信息进行相同的掩膜处理;对掩膜处理后的文本信息的词向量和词性信息的词向量进行平均加权求和,然后输入到网络中训练得到带有词性的BERT双向语言模型;其中,在训练BERT双向语言模型过程中,禁用预测下一句NSP任务,仅保留通过掩膜方式训练语言模型的Mask LM任务。
一种可能的实现方式中,所述重打分模块具体用于:对N-best lists中的每个结果所组成的句子,通过分词工具求出句子中每个词的词性,然后利用B、I、E、S四个标签与词性进行组合来进一步划分出每个字的词性;采用基于滑动窗口的输入样本方式和逐字掩膜的编码方式,对每个句子构造输入样本并进行编码处理,然后输入到BERT双向语言模型;经由BERT双向语言模型计算得出每个句子的概率和得分,完成对N-best lists的重打分。
本发明第三方面,提供一种计算机设备,包括处理器和存储器,所述存储器中存储有程序,所述程序包括计算机执行指令,当所述计算机设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算机设备执行如第一方面所述的语音识别后处理方法。
本发明第四方面,提供一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括计算机执行指令,所述计算机执行指令当被计算机设备执行时,使所述计算机设备执行如第一方面所述的语音识别后处理方法。
本发明通过采用以上技术方案,取得了以下技术效果:
本发明对N-best lists进行重打分时,通过使用BERT双向语言模型,能够同时利用上下文信息,提升语音识别系统的性能。同时,在BERT双向语言模型中使用了基于注意力的机制,可以利用上下文相关度更高的信息。从而,克服了一般RNN语言模型在重打分时只能利用上文信息的缺点,比如两个不同的句子中有两个字上文的信息相同,在对这两个字预测时,只利用上文信息,这两个字的预测是一样的,但是在不同的下文信息约束时,这两个字就会有不同的且更合理的预测结果。
并且,本发明通过使用带有词性的BERT双向语言模型,由于加入了词性,在预测某个字的时候,不仅仅可以利用到上下文的文字信息,还可以利用到上下文的词性信息,来更准确预测当前词,因为可以通过词语中的某个字已知的词性,直接约束与其相邻文字的词性划分。同时,对于一些词表之外的词(OOV)而言,虽然从文本信息上来看,它们都统一看成同一个字符处理的,但是通过加入文本信息后,这些词表之外的词会通过词性特征来进一步约束。
如上,通过在基于BERT双向语言模型中加入中文的词性信息,然后通过训练的语言模型对语音识别中第一次解码产生的N-best Lists重打分,选择得分最高的结果作为最终的识别结果,可以有效提升语音识别系统的性能。
在进一步的实施方式中,本发明还采用基于滑动窗口的输入样本方式,结合逐字掩膜的编码方式,进行输入编码,使得BERT双向语言模型对于重打分任务可以不受句子的长度所困扰。
在更进一步的实施方式中,本发明还通过批(batch)处理操作,即输入和输出时都进行批处理操作,来有效的加快语言模型打分的速度。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种语音识别后处理方法的流程图;
图2是本发明实施例提供的一种语音识别后处理方法的原理图;
图3是本发明实施例带有词性的BERT双向语言模型的训练流程图;
图4是本发明实施例使用BERT双向语言模型进行重打分的流程图;
图5是本发明实施例中输入样本的编码阶段的流程图;
图6是本发明实施例中输出概率的解码阶段的流程图;
图7是本发明实施例提供的一种语音识别后处理系统的结构图;
图8是本发明实施例提供的一种计算机设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解本发明,首先对语音识别后处理一般流程进行说明如下。
在语音识别任务中,将一句语音输入到语音识别系统,通过声学模型、语言模型、发音词典共同作用,可以生成对应音频识别结果的词图(lattice)。lattice本质上是一个有向无环图,图上的每个节点代表一个词的结束时间点,每条边代表一个可能的词,以及该词发生的声学得分和语言模型得分。语音识别中一般采用lattice来保存识别的候选路径,每条候选路径表示一种候选的识别结果。在实际的语音识别系统中,最优路径不一定与实际字序列匹配,一般希望能够得到得分最靠前的多条候选路径,即N-best lists,中文含义是,前N个最好的识别结果。可以从语音识别系统第一次解码产生的lattice中,提取出对应语音音频的前N个最好的识别结果(N-best lists)。
然后,可以利用新的语言模型对N-best lists中的这N个结果进行二次解码即重打分排序,以选择打分最高的结果作为最终的识别结果。目前人们普遍使用循环神经网络(RNN)语言模型和长短时记忆神经网络(LSTM)语言模型来进行语言模型的重打分操作。即单纯通过文本语料训练LSTM语言模型,然后用训练好的语言模型对N-best lists分别进行重打分,最后选择出得分最高的句子作为最终的识别结果。但采用RNN、LSTM等语言模型来进行重打分,只能利用上文信息,不能同时利用上下文信息,最终效果不够好。
请参考图1和图2,本发明的一个实施例,提供一种语音识别后处理方法,用来提升语音识别系统的性能。该方法包括以下步骤:
S1、从语音识别系统针对输入语音进行第一次解码产生的词图lattice中,提取前N个最好的识别结果,即N-best lists;
S2、使用训练好的带有词性的BERT(Bidirectional Encoder Representationfrom Transformers,基于Transformer的双向编码器表征)双向语言模型对N-best lists进行重打分;
S3、从N-best lists中选择得分最高的结果作为最终的识别结果。
该方法关键在于,预先训练好带有词性的BERT双向语言模型,应用到语音识别系统中,使用该模型对从语音识别系统第一次解码中产生的N-best lists进行重打分排序的操作,最后选择出得分最高的结果作为最终的识别结果。
本发明方法,主要包括两个部分,首先是训练好带有词性的BERT双向语言模型,然后将该模型应用到语音识别系统中进行重打分操作。下面分别对两个部分进行详细说明。
一、训练带有词性的BERT双向语言模型。
流程如图3所示,包括以下步骤。
1.1.预处理用于训练BERT双向语言模型的文本语料。
可选的,使用去除标点的数据训练BERT双向语言模型,这样训练的BERT双向语言模型就可以直接进行重打分任务。文本语料的预处理流程如下:
(1)首先在网络上例如公共网站上收集语料;
(2)然后去除语料中的非法字符;
(3)以句号、分号、感叹号、省略号、问号对文本语料进行行划分,使得每行代表着一句话;
(4)最后消除文本语料中的所有标点。
1.2.只使用Mask LM的训练方式。
由于预测下一句(NSP,Next Sentence Prediction)的任务与重打分的任务没有关系,所以在继续训练BERT双向语言模型时,可以不用NSP任务,只保留保留原始训练BERT双向语言模型中的Mask LM任务。Mask LM任务是指,通过掩膜(Mask)方式训练语言模型(LM,Language Model)的任务。
1.3.BERT双向语言模型中加入词性信息。
(1)首先通过分词工具例如结巴分词工具,对预处理后的文本语料进行分词和词性标注,求得文本语料中的词组和对应的词性。
(2)然后利用B、I、E、S四个标签与词性进行组合,对词组的词性进行进一步分配,即,进一步划分出每个字的词性,将词性和分词序列合并,或者说,在词性序列中加入分词信息。
B、I、E、S四个标签的含义如下:当一个词组的长度大于一时,用标签B表示对应词性的开始部分,标签I表示词性的中间部分,标签E表示词性的结束部分;标签S则是一个词组只有一个汉字时词性添加的标签,表示该词是单独的汉字组成的,词性直接与S组合,代表该字的词性。
举例:
词‘拿起’是动词(V),用‘BV,EV’分别来表示两个汉字对应的词性标签;
词‘打’是动词(V),且是单独一个汉字组成,用‘SV’表示汉字对应的词性标签;
词‘长江大桥’是名词(N),用‘BN,IN,IN,EN’分别来表示四个汉字对应的词性标签。
(3)将语料的文本信息和词性信息进行相同的掩膜处理,同时,被掩膜的文本作为对应样本的标签,这样就构造成了训练的输入样本。
所述掩膜处理,是指对文本中某个位置上的文字和对应的词性同时使用‘[MASK]’这个标志进行替换,被替换的文字作为这段文本信息的标签信息,通过这种处理构造用于训练语言模型的输入样本。
(4)把掩膜后的文本信息的词向量和词性信息的词向量进行平均加权求和,来训练得到带有词性的BERT双向语言模型。
二、使用BERT双向语言模型进行重打分。
2.0首先介绍一般的计算公式。
用S表示一句长度为L的句子(即句子包括L个字),用P(S)代表该语句的概率值。对于一般的单向的语言模型,P(S)通过下面公式计算:
P(S)=P(w1)P(w2|(w1))P(w3|(w1,w2))···P(wL|(w1,w2,...,wL-1))。
而本发明中使用BERT双向语言模型,则修改P(S)的计算公式如下:
P(S)=P(w1|(w2,w3,...,wL))P(w2|(w1,w3,...,wL))···P(wL|(w1,w2,...,wL-1));
其中,P(w1|(w2,w3,...,wL)),P(w2|(w1,w3,...,wL)),···,P(wL|(w1,w2,...,wL-1))表示句子中各个掩膜位置的文字在上下文约束情况下出现的概率值,w1,w2,w3,...,wL分别表示该句子中的L个字。
最后用score(S)代表该句子的得分,计算公式如下:
score(S)=log P(S)=log P(w1|(w2,w3,...,wL))+···+log P(wL|(w2,w3,...,wL-1))。
2.1获取音频对应的N-best lists识别结果。
(1)首先,输入语音音频例如内容只含有一句话的语音音频,到基于Kaldi的语音识别系统中。
(2)获取语音识别系统对输入语音进行第一次解码产生的lattice,可通过Kaldi工具,从lattice获取对应音频的N-best lists。N为正整数,具体取值根据实际需要确定。假设令N=300,即300-best lists,这样将得到对应音频的300个候选识别结果。N-bestlists中包括N条识别结果,每条识别结果对应形成一个句子,或者也可是说,N-best lists中包括N个句子。后续重打分操作的目的就是对N个识别结果或者说句子进行打分,以便选择出得分最高的识别结果。
2.2.使用带有词性的BERT双向语言模型对N-best lists进行重打分。
重打分操作的流程如图4所示,包括如下两个阶段。
(1)基于滑动窗口的输入样本的编码阶段:
首先,对N-best lists中的每个句子,通过分词工具例如结巴分词工具,求出句子中每个词的词性,然后再利用B、I、E、S四个标签与词性进行组合来进一步划分出每个字的词性,其中,B代表一个词性的开始,I代表一个词性的中间部分,E代表一个词性的结束部分,S代表这个词是单独的汉字组成的,词性直接与S组合,代表该字的词性。
然后,对词性标签信息和文本信息进行对应相同的处理操作,即,采用基于滑动窗口的输入样本方式和逐字掩膜的编码方式,对每个句子构造输入样本并进行编码处理,然后输入到BERT双向语言模型。
如图5所示,具体步骤如下:
因为BERT双向语言模型需要每次输入固定长度的文本,加入令输入文本的最大长度max_length=100,这样对于句子长度不大于max_length的,可以直接向模型中输入。句子长度大于max_length的,则采用基于滑动窗口的输入方式。
用Si表示300个候选结果(句子),即S1,S2,...,S300。再使用训练好的BERT双向语言模型,计算每个结果的概率和得分,即P(Si)和score(Si)。其中,对于每一个P(Si)的计算,使用逐字掩膜的方法。
对于一个长度为L的句子,如果长度不超过max_length,可以对整个句子采用逐字掩膜的方式构造输入样本,即:先掩膜句子中的第一个字,即将第一个字作为标签,然后用掩膜符号“[MASK]”在句子中替换它,这样就构造了一个BERT双向语言模型的输入样本Input(Si,1),然后,对句子中的L个字分别进行相同的操作,分别构造出输入样本Input(Si,2),...,Input(Si,L)。将L个输入样本一起经过编码处理,组成一个batch(批),一起输入到BERT双向语言模型。
对于长度大于max_length的句子,设置一个长度大小size为2M的滑动窗口,M为正整数。可以令2M=max_length,例如等于100,则M=50。然后,可从句子的开头以步长M向后移动滑动窗口,依次提取每个滑动窗口内的句子内容。若M=50,则每次向后滑动50步,即每次保留50个上文文字信息。
未开始滑动的第一个滑动窗口内,所有字都是首次被处理,则可以从第一个字开始采用逐字掩膜的方式构造输入样本。如果是滑动之后的滑动窗口,当前滑动窗口内的文本前M(例如50)个字的条件概率是上个时刻在前一滑动窗口已经计算过的,所以对于当前滑动窗口内的文字,不需要从第一个位置逐字掩膜计算,而是从第M+1(例如51)个字进行逐字掩膜计算。最后,对该句子的全部输入样本进行编码处理后构造成一个batch,输入到BERT双向语言模型。
(2)输出的概率解码阶段。
本阶段的流程如图6所示。
因为删除了NSP任务,所以BERT双向语言模型仅仅在BERT模型后加了一层softmax层。经过softmax层的归一化处理,可以将BERT模型对掩膜位置的预测结果转化为字典中所有元素被预测的概率值。用vi表示发音字典中第i个元素,表示BERT双向语言模型对发音字典中元素vi的预测结果,则表示被掩膜位置被预测成vi的概率。
令Prob_list表示softmax层的输出结果,idv表示文字v对应发音字典中的位置索引。则句子Si中vj的概率计算如下:
所以,通过最后的softmax层后,对于被掩膜的文字,可以直接通过该字在字典中的位置id分别解码计算出该字在上下文约束的情况下出现的概率,记长度为L的句子中各个字的概率分别为:P(w1|(w2,w3,...,wL)),···,P(wL|(w1,w2,...,wL-1))。
然后,就可以分别计算出各个句子的概率P(S)和得分score(S):
P(S)=P(w1|(w2,w3,...,wL))P(w2|(w1,w3,...,wL))···P(wL|(w1,w2,...,wL-1));
score(S)=log P(S)=log P(w1|(w2,w3,...,wL))+···+log P(wL|(w2,w3,...,wL-1))。
于是得到所有句子的分数如score(S1),score(S2),...,score(S300)。
最后,从全部句子的得分中选择得分最大的句子,作为最终语音识别系统的识别结果。
以上,对本发明的语音识别后处理方法进行了详细说明。
为便于实施本发明,本发明实施例还提供相应的系统和设备。
请参考图7,本发明的一个实施例,提供一种语音识别后处理系统,包括:
提取模块71,用于从语音识别系统针对输入语音进行第一次解码产生的词图lattice中,提取前N个最好的识别结果N-best lists;
重打分模块72,用于使用训练好的带有词性的BERT双向语言模型对N-best lists进行重打分;从N-best lists中选择得分最高的结果作为最终的识别结果。
进一步的,该系统还包括用于预先训练带有词性的BERT双向语言模型的训练模块73,该训练模块73具体用于:
对训练用的文本语料进行预处理;
通过分词工具进行分词和词性标注,获取文本语料中的词组和对应的词性,然后利用B、I、E、S四个标签与词性进行组合,对各词组的词性进行进一步分配;
将文本语料的文本信息和词性信息进行相同的掩膜处理;
对掩膜处理后的文本信息的词向量和词性信息的词向量进行平均加权求和,然后输入到网络中训练得到带有词性的BERT双向语言模型;
其中,在训练BERT双向语言模型过程中,禁用预测下一句NSP任务,仅保留通过掩膜方式训练语言模型的Mask LM任务。
进一步的,所述重打分模块72可具体用于:
对N-best lists中的每个结果所组成的句子,通过分词工具求出句子中每个词的词性,然后利用B、I、E、S四个标签与词性进行组合来进一步划分出每个字的词性;采用基于滑动窗口的输入样本方式和逐字掩膜的编码方式,对每个句子构造输入样本并进行编码处理,然后输入到BERT双向语言模型;经由BERT双向语言模型计算得出每个句子的概率和得分,完成对N-best lists的重打分。
请参考图8,本发明的一个实施例,还提供一种计算机设备,包括处理器81和存储器82,所述存储器82中存储有程序,所述程序包括计算机执行指令,当所述计算机设备80运行时,所述处理器81执行所述存储器82存储的所述计算机执行指令,以使所述计算机设备80执行如前文所述的语音识别后处理方法。
本发明的一个实施例,还提供一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括计算机执行指令,所述计算机执行指令当被计算机设备执行时,使所述计算机设备执行如前文所述的语音识别后处理方法。
综上,本发明实施例公开了一种语音识别后处理方法和系统及相关设备。本发明通过采用如上技术方案,取得了如下技术效果:
本发明对N-best lists进行重打分时,通过使用BERT双向语言模型,能够同时利用上下文信息,提升语音识别系统的性能。同时,在BERT双向语言模型中使用了基于注意力的机制,可以利用上下文相关度更高的信息。从而,克服了一般RNN语言模型在重打分时只能利用上文信息的缺点,比如两个不同的句子中有两个字上文的信息相同,在对这两个字预测时,只利用上文信息,这两个字的预测是一样的,但是在不同的下文信息约束时,这两个字就会有不同的且更合理的预测结果。
并且,本发明通过使用带有词性到BERT双向语言模型,由于加入了词性,在预测某个字的时候,不仅仅可以利用到上下文的文字信息,还可以利用到上下文的词性信息,来更准确预测当前词,因为可以通过词语中的某个字已知的词性,直接约束与其相邻文字的词性划分。同时,对于一些词表之外的词(OOV)而言,虽然从文本信息上来看,它们都统一看成同一个字符处理的,但是通过加入文本信息后,这些词表之外的词会通过词性特征来进一步约束。
如上,通过在基于BERT双向语言模型中加入中文的词性信息,然后通过训练的语言模型对语音识别中第一次解码产生的N-best Lists重打分,选择得分最高的结果作为最终的识别结果,可以有效提升语音识别系统的性能。
在进一步的实施方式中,本发明还采用基于滑动窗口的输入样本方式,结合逐字掩膜的编码方式,进行输入编码,使得BERT双向语言模型对于重打分任务可以不受句子的长度所困扰。
在更进一步的实施方式中,本发明还通过批(batch)处理操作,即输入和输出时都进行批处理操作,来有效的加快语言模型打分的速度。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
上述实施例仅用以说明本发明的技术方案,而非对其限制;本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种语音识别后处理方法,其特征在于,包括:
从语音识别系统针对输入语音进行第一次解码产生的词图lattice中,提取前N个最好的识别结果N-bestlists;
使用训练好的带有词性的BERT双向语言模型对N-best lists进行重打分;
从N-bestlists中选择得分最高的结果作为最终的识别结果。
2.根据权利要求1所述的方法,其特征在于,还包括预先训练带有词性的BERT双向语言模型的训练步骤,该训练步骤具体包括:
对训练用的文本语料进行预处理;
通过分词工具进行分词和词性标注,获取文本语料中的词组和对应的词性,然后利用B、I、E、S四个标签与词性进行组合,对各词组的词性进行进一步分配;
将文本语料的文本信息和词性信息进行相同的掩膜处理;
对掩膜处理后的文本信息的词向量和对应词性信息的词向量进行平均加权求和,训练得到带有词性的BERT双向语言模型;
其中,在训练BERT双向语言模型过程中,禁用预测下一句NSP任务,仅保留通过掩膜方式训练语言模型的Mask LM任务。
3.根据权利要求1或2所述的方法,其特征在于,所述使用训练好的带有词性的BERT双向语言模型对N-bestlists进行重打分,包括:
对N-bestlists中的每个结果所组成的句子,通过分词工具求出句子中每个词的词性,然后利用B、I、E、S四个标签与词性进行组合来进一步划分出每个字的词性;
采用基于滑动窗口的输入样本方式和逐字掩膜的编码方式,对每个句子构造输入样本并进行编码处理,然后输入到BERT双向语言模型;
经由BERT双向语言模型计算得出每个句子的概率和得分,完成对N-best lists的重打分。
4.根据权利要求3所述的方法,其特征在于,所述的采用基于滑动窗口的输入样本方式和逐字掩膜的编码方式,对每个句子构造输入样本并进行编码处理,然后输入到BERT双向语言模型,包括:
设置长度为max_length=2M的滑动窗口,M为正整数;
如果句子的长度不超过max_length,则对整个句子采用逐字掩膜的方式构造输入样本,进行编码处理后,构造成一个batch,输入到BERT双向语言模型;
如果句子的长度超过max_length,则通过从句子的开头以步长M向后移动滑动窗口,依次提取每个滑动窗口内的句子内容,如果当前滑动窗口内的所有字都是首次被处理,则从第一个字开始采用逐字掩膜的方式构造输入样本,如果当前滑动窗口内的前M个字已在之前的滑动窗口内被处理,则从第M+1个字开始采用逐字掩膜的方式构造输入样本,最后对该句子的全部输入样本进行编码处理后构造成一个batch,输入到BERT双向语言模型。
5.根据权利要求3所述的方法,其特征在于,所述的经由BERT双向语言模型计算得出每个句子的概率和得分,包括:
由BERT双向语言模型计算得到每个句子中各个掩膜位置的文字在上下文约束情况下出现的概率值,记为:
P(w1|(w2,w3,...,wL)),P(w2|(w1,w3,...,wL)),···,P(wL|(w1,w2,...,wL-1))
其中,w1,w2,w3,...,wL分别表示该句子中的L个字;
将该句子用S表示,该句子的长度用L表示,该句子的概率值用P(S)表示,该句子的得分用score(S)表示,则计算得出该句子的概率值和得分分别为:
P(S)=P(w1|(w2,w3,...,wL))P(w2|(w1,w3,...,wL))···P(wL|(w1,w2,...,wL-1));
score(S)=logP(S)=logP(w1|(w2,w3,...,wL))+···+logP(wL|(w2,w3,...,wL-1))。
6.一种语音识别后处理系统,其特征在于,包括:
提取模块,用于从语音识别系统针对输入语音进行第一次解码产生的词图lattice中,提取前N个最好的识别结果N-bestlists;
重打分模块,用于使用训练好的带有词性的BERT双向语言模型对N-best lists进行重打分;从N-bestlists中选择得分最高的结果作为最终的识别结果。
7.根据权利要求6所述的系统,其特征在于,还包括用于预先训练带有词性的BERT双向语言模型的训练模块,该训练模块具体用于:
对训练用的文本语料进行预处理;
通过分词工具进行分词和词性标注,获取文本语料中的词组和对应的词性,然后利用B、I、E、S四个标签与词性进行组合,对各词组的词性进行进一步分配;
将文本语料的文本信息和词性信息进行相同的掩膜处理;
对掩膜处理后的文本信息的词向量和词性信息的词向量进行平均加权求和,然后输入到网络中训练得到带有词性的BERT双向语言模型;
其中,在训练BERT双向语言模型过程中,禁用预测下一句NSP任务,仅保留通过掩膜方式训练语言模型的Mask LM任务。
8.根据权利要求6或7所述的系统,其特征在于,所述重打分模块具体用于:
对N-bestlists中的每个结果所组成的句子,通过分词工具求出句子中每个词的词性,然后利用B、I、E、S四个标签与词性进行组合来进一步划分出每个字的词性;采用基于滑动窗口的输入样本方式和逐字掩膜的编码方式,对每个句子构造输入样本并进行编码处理,然后输入到BERT双向语言模型;经由BERT双向语言模型计算得出每个句子的概率和得分,完成对N-bestlists的重打分。
9.一种计算机设备,包括处理器和存储器,所述存储器中存储有程序,所述程序包括计算机执行指令,当所述计算机设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算机设备执行如权利要求1所述的语音识别后处理方法。
10.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括计算机执行指令,所述计算机执行指令当被计算机设备执行时,使所述计算机设备执行如权利要求1所述的语音识别后处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011476615.3A CN112634878B (zh) | 2020-12-15 | 2020-12-15 | 语音识别后处理方法和系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011476615.3A CN112634878B (zh) | 2020-12-15 | 2020-12-15 | 语音识别后处理方法和系统及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112634878A true CN112634878A (zh) | 2021-04-09 |
CN112634878B CN112634878B (zh) | 2024-05-17 |
Family
ID=75313019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011476615.3A Active CN112634878B (zh) | 2020-12-15 | 2020-12-15 | 语音识别后处理方法和系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112634878B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024027855A1 (zh) * | 2022-08-03 | 2024-02-08 | 顺丰科技有限公司 | 客服语音识别方法、装置、设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992648A (zh) * | 2019-04-10 | 2019-07-09 | 北京神州泰岳软件股份有限公司 | 基于词迁徙学习的深度文本匹配方法及装置 |
CN110083710A (zh) * | 2019-04-30 | 2019-08-02 | 北京工业大学 | 一种基于循环神经网络与潜变量结构的词语定义生成方法 |
CN110489750A (zh) * | 2019-08-12 | 2019-11-22 | 昆明理工大学 | 基于双向lstm-crf的缅甸语分词及词性标注方法及装置 |
CN110852087A (zh) * | 2019-09-23 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 中文纠错方法和装置、存储介质及电子装置 |
CN111062217A (zh) * | 2019-12-19 | 2020-04-24 | 江苏满运软件科技有限公司 | 语言信息的处理方法、装置、存储介质及电子设备 |
CN111554275A (zh) * | 2020-05-15 | 2020-08-18 | 深圳前海微众银行股份有限公司 | 语音识别方法、装置、设备及计算机可读存储介质 |
US20200302127A1 (en) * | 2018-02-08 | 2020-09-24 | Tencent Technology (Shenzhen) Company Limited | Machine translation method, device, and computer-readable storage medium |
-
2020
- 2020-12-15 CN CN202011476615.3A patent/CN112634878B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200302127A1 (en) * | 2018-02-08 | 2020-09-24 | Tencent Technology (Shenzhen) Company Limited | Machine translation method, device, and computer-readable storage medium |
CN109992648A (zh) * | 2019-04-10 | 2019-07-09 | 北京神州泰岳软件股份有限公司 | 基于词迁徙学习的深度文本匹配方法及装置 |
CN110083710A (zh) * | 2019-04-30 | 2019-08-02 | 北京工业大学 | 一种基于循环神经网络与潜变量结构的词语定义生成方法 |
CN110489750A (zh) * | 2019-08-12 | 2019-11-22 | 昆明理工大学 | 基于双向lstm-crf的缅甸语分词及词性标注方法及装置 |
CN110852087A (zh) * | 2019-09-23 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 中文纠错方法和装置、存储介质及电子装置 |
CN111062217A (zh) * | 2019-12-19 | 2020-04-24 | 江苏满运软件科技有限公司 | 语言信息的处理方法、装置、存储介质及电子设备 |
CN111554275A (zh) * | 2020-05-15 | 2020-08-18 | 深圳前海微众银行股份有限公司 | 语音识别方法、装置、设备及计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024027855A1 (zh) * | 2022-08-03 | 2024-02-08 | 顺丰科技有限公司 | 客服语音识别方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112634878B (zh) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110135457B (zh) | 基于自编码器融合文档信息的事件触发词抽取方法及系统 | |
CN111480197B (zh) | 语音识别系统 | |
CN111557029B (zh) | 用于训练多语言语音识别网络的方法和系统以及用于执行多语言语音识别的语音识别系统 | |
US8185376B2 (en) | Identifying language origin of words | |
CN109979429A (zh) | 一种tts的方法及系统 | |
CN111339750B (zh) | 去除停用语并预测句子边界的口语文本处理方法 | |
KR101997783B1 (ko) | 품사 분포와 양방향 LSTM CRFs를 이용한 음절 단위 형태소 분석기 및 분석 방법 | |
CN114580382A (zh) | 文本纠错方法以及装置 | |
CN112016320A (zh) | 基于数据增强的英文标点符号添加方法和系统及设备 | |
CN109410949B (zh) | 基于加权有限状态转换器的文本内容添加标点方法 | |
CN114153971B (zh) | 一种含错中文文本纠错识别分类设备 | |
CN116127952A (zh) | 一种多粒度中文文本纠错方法和装置 | |
CN113268576B (zh) | 一种基于深度学习的部门语义信息抽取的方法及装置 | |
CN113190656A (zh) | 一种基于多标注框架与融合特征的中文命名实体抽取方法 | |
CN115310448A (zh) | 一种基于bert和字词向量结合的中文命名实体识别方法 | |
CN115510863A (zh) | 一种面向问句匹配任务的数据增强方法 | |
CN113051887A (zh) | 一种公告信息元素抽取方法、系统及装置 | |
Nuţu et al. | Deep learning for automatic diacritics restoration in Romanian | |
CN114927177A (zh) | 一种融合中文医疗领域特征的医疗实体识别方法及系统 | |
CN117877460A (zh) | 语音合成方法、装置、语音合成模型训练方法、装置 | |
CN112069816A (zh) | 中文标点符号添加方法和系统及设备 | |
CN112634878B (zh) | 语音识别后处理方法和系统及相关设备 | |
CN112989839A (zh) | 一种基于关键词特征嵌入语言模型的意图识别方法及系统 | |
CN113139050B (zh) | 基于命名实体识别附加标签和先验知识的文本摘要生成方法 | |
CN115240712A (zh) | 一种基于多模态的情感分类方法、装置、设备及存储介质 |
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 |