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

基于CTCAttention架构的参考文本相关发音错误检测模型

2022-08-10 19:11:35 来源:中国专利 TAG:

基于ctcattention架构的参考文本相关发音错误检测模型
技术领域
1.本发明涉及信息技术领域,特别涉及一种基于ctcattention架构的参考文本相关发音错误检测模型。


背景技术:

2.发音错误检测技术全称为发音错误检测与诊断技术,是使用计算机自动对语音音段层面的发音准确度进行评价的技术,也是计算机辅助语音训练技术的重要组成部分。在深度学习技术广泛运用到语音识别(asr)及发音错误检测任务上前,基于传统语音识别技术与机器学习技术的发音错误检测方法已经得到了深入的研究与应用。在深度学习技术广泛运用于语音识别领域后,先后出现了多种基于深层神经网络(dnn)的语音识别模型。目前,面向普通话的发音错误检测公开研究主要集中在运用传统机器学习算法针对普通话的声韵母、声调及儿化音进行细粒度的评分。目前进行面向普通话的发音错误检测研究,主要的困难在于缺乏对应的公开数据集。相比于语音识别数据集,语音评测数据集由于需要专家标注,建设成本很高,故公开的语音评测数据集很少,很多时候研究者选择在私有的数据集上进行实验。现有针对深度学习技术在我国汉语普通话语音评测方面的研究还处于初步阶段,几乎没有与普通话水平测试相关的公开数据集,针对普通话口语评测的研究近年来也颇为罕见。从现有的面向普通话的发音错误检测研究来看,zhang等人提出的基于ctc/attention的端到端普通话发音错误检测模型没有考虑到使用参考文本信息,模型基于bilstm,而没有考虑使用transformer等新的模型结构。lo等提出的利用重复参考文本进行数据增广的发音错误检测模型让一个音频编码器与一个参考文本编码器共享一个解码器,这种思路仅将文本编码器用于数据增广,并没有将文本编码器与音频编码器的输出进行融合,模型于推理阶段时只使用音频编码器,因而并不能充分运用参考文本的信息。综上国内外在mdd任务中运用transformer/conformer结构的研究不多,同时尚未见到结合transformer/conformer结构、融合多编码器特征及ctc/attention架构的mdd模型及相关研究。


技术实现要素:

3.本发明所要解决的技术问题是提供一种基于ctcattention架构的参考文本相关发音错误检测模型,建立了针对普通话水平测试短文朗读题型的普通话语音评测数据集psc-reading,在采用transformer实现音频编码器时,相对于作为基线的cnn-rnn-ctc及cnn-rnn-ctc-text-dep发音错误检测模型获得了显著的性能提升。
4.为实现上述目的,本发明提供以下的技术方案:
5.该基于ctcattention架构的参考文本相关发音错误检测模型在基于ctc/attention架构的单编码器端到端发音错误检测模型的基础上,添加了一个基于双向lstm的参考文本编码器,随后利用点乘注意力融合音频编码器与参考文本编码器的特征表示,随后将融合后的注意力上下文特征与原始的音频编码器的特征按帧拼接,同时作为ctc全
连接层与解码器的输入,该模型可以使用基于transformer/conformer的音频编码器,以及基于transformer的解码器,该基于ctcattention架构的参考文本相关发音错误检测模型的计算方法如下:
6.将模型输入的fbank等语音特征序列记为x=x1,

,xn′
,音频编码器的输出记为则音频编码器可以表示为
7.ha=audioencoder(x)#(1)
8.式(1)中的输入x与输出ha单调对齐,如果音频编码器没有利用cnn等结构进行下采样,则有n=n

,即编码器的输入输出序列一一对应;否则根据音频编码器下采样的比例,x中的连续数帧对应到ha的一帧。
9.将模型输入的参考文本序列记为s=s1,

,sm,文本编码器隐状态序列记为文本编码器分数隐状态序列记为则文本编码器可以表示为
10.h
t
,h
ts
=textencoder(s)#(2)
11.h
ts
由h
t
线性变换而来,维度与ha相同。随后利用注意力机制,将双编码器输出的隐状态序列融合,即可得到融合后的隐状态序列h=h1,...,hn:
12.h=attention(ha,h
ts
,h
t
)#(3)
13.其中ha、h
ts
、h
t
分别作为注意力计算时的查询向量(query vector)、键向量(key vector)和值向量(value vector)。随后,基于注意力解码器与ctc全连接层,对以上得到的隐状态进行基于自回归的ctc注意力联合解码,即可得到最终的音素识别结果序列
[0014][0015]
最终利用needleman-wunsch算法,对齐并比较参考文本音素序列c
ref
与识别结果得到发音错误检测结果。
[0016]
式(1)中所述的音频编码器使用transformer与conformer结构。在使用transformer与conformer结构时,与cnn-rnn结构同样在模型的输入端使用cnn层进行特征下采样,从而提升模型计算速度。音频编码器的输入x是80维的fbank特征。音频编码器输出的隐状态序列ha中每一帧的维度就是音频编码器的模型维度为d
audioenc
,与注意力解码器的维度d
dec
均为256。此处音频编码器使用transformer或者conformer结构时,其层数均为6层。
[0017]
式(2)中所述的文本编码器基于双向lstm,实现全局信息建模,以下介绍其前向计算过程。
[0018]
独热向量(one-hot vector)形式的参考文本音素序列s=s1,

,sm的维度较高、信息密度较低,利用音素嵌入层(phoneme embedding)即可将其映射为维度更低的稠密向量表示e=e1,...,em:
[0019]
e=phonemeembedding(s)#(5)
[0020]
嵌入后ei的维度d
textemb
为64。随后使用维度d
textenc
为256的双向lstm神经网络对e进行编码,得到文本编码器隐状态序列h
t

[0021]ht
=bilstm(e)#(6)
[0022]
由于使用了双向lstm网络,h
t
中的每帧的维度是2d
textenc
=512,不一定与音频编码器隐状态的维度d
audioenc
相同。因为点乘注意力机制要求查询向量与键向量的维度一致,所以此处使用一个线性变换改变h
t
的维度,得到文本编码器分数隐状态序列h
ts[27]

[0023]hts
=w
kvht
#(7)
[0024]
得到的h
ts
序列中每帧的维度是d
audioenc
,与相同。
[0025]
采用以上技术方案的有益效果是:该基于ctcattention架构的参考文本相关发音错误检测模型在现有的数种文本相关发音错误检测模型的基础上,结合在语音识别任务中得到广泛应用的transformer模型、conformer模型及ctc/attention端到端语音识别框架,提出了一种基于transformer/conformer、双编码器及ctc/attention多任务学习框架的文本相关发音错误检测框架。实验显示,在psc朗读评测任务上,采用transformer时的该改进模型的性能相比于基线模型有较大的提升。
附图说明
[0026]
下面结合附图对本发明的具体实施方式作进一步详细的描述。
[0027]
图1是基于语音识别技术的发音错误检测框架图;
[0028]
图2是基于ctcattention架构的参考文本相关发音错误检测模型图;
[0029]
图3是基于点乘注意力的多编码器隐状态融合图;
[0030]
图4是psc-reading数据集的标注样例图。
具体实施方式
[0031]
下面结合附图详细说明本发明基于ctcattention架构的参考文本相关发音错误检测模型的优选实施方式。
[0032]
图1、图2、图3和图4出示本发明基于ctcattention架构的参考文本相关发音错误检测模型的具体实施方式:
[0033]
该基于ctcattention架构的参考文本相关发音错误检测模型的发音错误检测研究在基于语音识别技术的发音错误检测框架上进行,该框架的整体结构如图1所示。在基于语音识别技术的发音错误检测框架中,待评测的音频首先被输入基于语音识别技术的音素识别模块,得到相应的音素识别结果。随后音素识别结果序列与参考文本同时输入发音错误检测模块,得到待评测语音的发音错误检测结果。发音错误检测模块通过使用序列对齐算法将音素识别结果序列与正确音素序列进行对齐与比较,从而找到待评测音频中的发音错误。needleman-wunsch算法是生物信息学、发音错误检测领域中常用的序列对齐算法。该模型在发音错误检测模块中使用的对齐算法是levenshtein对齐算法,它是needleman-wunsch算法针对字符串编辑距离计算的特化版本,将needleman-wunsch算法中对序列间不匹配字符的惩罚值设定为对所有字符都一致的固定值。该模型使用的levenshtein对齐算
法实现来自于kaldi提供的align-text工具,通过它即可批量进行音素序列对齐。发音错误检测模块输入的参考文本序列应当与音素识别模块输出的音素识别结果采用一致的建模单元,从而能够准确地使用needleman-wunsch算法进行序列比较与对齐,因此在该模型提出的方法中,用于评测的参考该模型需要转换为以音素为单元的序列。由此可见,音素识别模块能否准确识别待评测音频,是影响基于语音识别技术的发音错误检测系统性能的关键因素。
[0034]
基于ctc的语音识别模型与基于注意力的语音识别模型(也就是las)各有其优点与缺点。基于ctc的语音识别模型依赖于ctc的条件独立性假设以实现输入输出序列间的对齐,一方面有很好的序列单向对齐效果,但是另一方面因此无法建模输出序列的前后依赖关系,导致其往往需要外接语言模型来达成较为理想的识别性能。基于注意力的语音识别模型利用注意力实现输入输出序列间的对齐,从而摆脱了ctc的条件独立性假设,解码器端可以实现输出序列的前后依赖建模,无需外接语言模型就可以取得较好的识别性能,但是注意力机制的灵活性让模型训练较为困难。面对这一情况,watanabe等人提出了利用多任务学习(multi-tasklearning)框架改进las模型,将ctc集成到las模型中,从而能够同时利用两种端到端语音识别模型优点的混合ctc/attention架构(hybrid ctc/attentionarchitecture)。这一改进的las模型利用ctc的单向对齐特性来减少输入输出序列间的错误对齐,在模型训练时通过多任务学习机制为las的编码器端进行了正则化以加快收敛,在模型推理解码时通过ctc/注意力机制的联合解码提升识别的准确率,从而得到了广泛的应用。
[0035]
该基于ctc/attention架构的参考文本相关发音错误检测模型在基于ctc/attention架构的单编码器端到端发音错误检测模型的基础上,添加了一个基于双向lstm的参考文本编码器,随后利用点乘注意力融合音频编码器与参考文本编码器的特征表示,随后将融合后的注意力上下文特征与原始的音频编码器的特征按帧拼接,同时作为ctc全连接层与解码器的输入。该模型可以使用基于transformer/conformer的音频编码器,以及基于transformer的解码器。该模型的整体结构如图2所示,以下介绍模型的计算过程。
[0036]
将模型输入的fbank等语音特征序列记为x=x1,

,xn′
,音频编码器的输出记为,则音频编码器可以表示为
[0037]
ha=audioencoder(x)#(1)
[0038]
式(1)中的输入x与输出ha单调对齐,如果音频编码器没有利用cnn等结构进行下采样,则有n=n

,即编码器的输入输出序列一一对应;否则根据音频编码器下采样的比例,x中的连续数帧对应到ha的一帧。
[0039]
将模型输入的参考文本序列记为s=s1,

,sm,文本编码器隐状态序列记为,文本编码器分数隐状态序列记为,则文本编码器可以表示为
[0040]ht
,h
ts
=textencoder(s)#(2)
[0041]hts
由h
t
线性变换而来,维度与ha相同。随后利用注意力机制,将双编码器输出的隐状态序列融合,即可得到融合后的隐状态序列h=h1,...,hn:
[0042]
h=attention(ha,h
ts
,h
t
)#(3)
[0043]
其中ha、h
ts
、h
t
分别作为注意力计算时的查询向量(query vector)、键向量(key vector)和值向量(value vector)。随后,基于注意力解码器与ctc全连接层,对以上得到的隐状态进行基于自回归的ctc注意力联合解码,即可得到最终的音素识别结果序列
[0044][0045]
最终利用needleman-wunsch算法,对齐并比较参考文本音素序列c
ref
与识别结果得到发音错误检测结果。
[0046]
式(1)中所述的音频编码器使用transformer与conformer结构。在使用transformer与conformer结构时,与cnn-rnn结构同样在模型的输入端使用cnn层进行特征下采样,从而提升模型计算速度。音频编码器的输入x是80维的fbank特征。音频编码器输出的隐状态序列ha中每一帧的维度就是音频编码器的模型维度为d
audioenc
,与注意力解码器的维度d
dec
均为256。此处音频编码器使用transformer或者conformer结构时,其层数均为6层。
[0047]
式(2)中所述的文本编码器基于双向lstm,实现全局信息建模,以下介绍其前向计算过程。
[0048]
独热向量(one-hot vector)形式的参考文本音素序列s=s1,

,sm的维度较高、信息密度较低,利用音素嵌入层(phoneme embedding)即可将其映射为维度更低的稠密向量表示e=e1,...,em:
[0049]
e=phonemeembedding(s)#(5)
[0050]
嵌入后ei的维度d
textemb
为64。随后使用维度d
textenc
为256的双向lstm神经网络对e进行编码,得到文本编码器隐状态序列h
t

[0051]ht
=bilstm(e)#(6)
[0052]
由于使用了双向lstm网络,h
t
中的每帧的维度是2d
textenc
=512,不一定与音频编码器隐状态的维度d
audioenc
相同。因为点乘注意力机制要求查询向量与键向量的维度一致,所以此处使用一个线性变换改变h
t
的维度,得到文本编码器分数隐状态序列h
ts[27]

[0053]hts
=w
kvht
#(7)
[0054]
得到的h
ts
序列中每帧的维度是d
audioenc
,与相同。
[0055]
该模型采用点乘注意力算法进行双编码器的特征融合,如式(3)所述,将音频编码器的输出作为注意力计算时的查询向量(query vector),而将文本编码器的输出及分别作为注意力计算时的键向量(key vector)和值向量(value vector),整体计算流程如图3所示。
[0056]
点乘注意力机制通过向量点乘的方式计算注意力分数(attention score):
[0057]
dotproductattentionscore(q,k)=qk
t
#(8)
[0058]
使用式(7)计算与间的注意力分数,并使用softmax函数对计算得到的注意
力分数进行归一化,即得到归一化后的注意力权重a
ij

[0059][0060]
其中与向维度大小相同,均为d
audioenc
。通过计算注意力权重a
ij
,就实现了待评测音频与参考
[0061]
文本间的软性对齐。随后通过求加权平均值的方法,计算得到注意力上下文向量cj:
[0062][0063]
最后将注意力上下文向量cj与音频编码器输出的隐状态向量相拼接,即得到解码器的第j步输入的融合后的隐状态向量h
′j:
[0064][0065]
式(6)中的隐状态序列拼接操作引入了残差连接
[43]
,使得音频编码器端的信息能够无阻碍地传递到解码器端,在训练模型时有助于加快深层模型的收敛。此时h
′j的维度是2d
textenc
d
audioenc
=768,而解码器的维度d
dec
与音频编码器维度同样为256,故此处使用一个线性变换将其降维,得到注意力层最终输出的融合隐状态hj:
[0066]hj
=w
attctxh′j#(12)
[0067]
于是最终输出的h=h1,...,hn,其每一帧hj的维度均为256,与d
dec
相同。混合ctc/attention架构的las模型在训练时以如下的多任务损失函数作为目标函数:
[0068][0069]
其中是ctc损失函数,作用于模型的编码器端;是las模型解码器端的损失函数,此处使用交叉熵损失函数;λ是模型训练时ctc的权重,0≤λ≤1。
[0070]
式(4)描述了通过结合ctc与注意力,实现联合解码,最终得到音素识别结果的过程。语音识别的解码是根据一定的搜索策略,在语音识别的模型输出中找到最可能的识别结果的过程。传统情况下,基于ctc的语音识别采用贪婪搜索(greedy search)解码或者前缀束搜索(prefix beam search)解码算法,而基于注意力机制的seq2seq类模型采用基于自回归的束搜索(beam search)解码算法。该模型使用watanabe提出的ctc/attention单次联合解码(joint ctc/attention one-pass decoding)算法实现ctc与注意力的直接联合解码,该单次联合解码算法相比于基于ctc重打分(rescoring)的联合解码算法有着更快的解码速度与更低的识别错误率。以下介绍该联合解码算法。
[0071]
ctc/attention单次联合解码算法的核心是单次束搜索算法:
[0072][0073]
是最终选取的最佳解码路径序列。l
max
是候选序列最长长度,l
max
决定了算法内部进行路径扩展的最大迭代次数,设置这一参数可以避免出现因为没有解码出终结符《eos》导致算法无法正常终止的情况。该算法通过维护一个大小为束宽度(beam width)的队列,在解码过程中通过比较候选路径分数,动态剔除队列中分数最低的路径,从而提升解码效
率。单次束搜索算法具体的算法描述参见watanabe的论文,以下介绍该算法如何在解码时将ctc与注意力机制进行融合。
[0074]
单次束搜索算法在分数α(p,x)的计算过程中同时纳入注意力与ctc分数:
[0075]
α(p,x)=λα
ctc
(p,x) (1-λ)α
attention
(p,x)#(15)
[0076]
其中α
ctc
(p,x)是解码时候选解码路径序列的ctc分数,α
attention
(p,x)是通过注意力解码器获得的序列分数,λ是解码时ctc的权重,0≤λ≤1。α
attention
(p,x)在解码过程中通过解码器迭代计算得到,以下介绍α
ctc
(p,x)的计算过程。
[0077]
通过将注意力融合后的隐状态序列h输入ctc全连接层,即可计算得到ctc总体分数(ctc logits)
[0078]hctc
=softmax(w
ctc
h b
ctc
)#(16)
[0079]
所谓的ctc logits,就是与输入音频特征xi及音频编码器输出逐帧对应的音素类别概率分布向量序列,例如就是在第i帧处的概率分布。将ctc logits直接用于基于自回归的注意力解码算法中较为困难,但是可以基于h
ctc
计算当前缀符号为p时的ctc前缀概率p
ctc
(p,

|x),也就是当输入音频特征为x时,所有前缀为p的序列的概率之和:
[0080][0081]
其中q表示历史序列,表示序列字符集。p
ctc
(p,q|x)在解码过程中通过ctc前向算法(forward algorithm)基于h
ctc
计算得到[8]。利用p
ctc
(p,

|x),就可以进一步计算注意力解码器在进行自回归解码时,当前待选序列的ctc分数α
ctc
(p,x)
[42]

[0082][0083]
随后即可利用式(15)得到融合后的序列分数。
[0084]
综上,在输入的音频特征序列为x时,通过式(14)中的单次束搜索算法对融合后的隐状态序列h进行解码,即得到x的音素识别结果。
[0085]
该模型自建了普通话评测数据集psc-reading,它包括psc-reading-g1与psc-reading-24两个子集。在建立这些数据集时,我们参考了在英语发音错误检测领域得到广泛运用的l2-arctic数据集。本节介绍了这些普通话评测数据集建立的方法与细节,包括数据录制与数据标注。
[0086]
该模型使用一种与l2-arctic标注方法相似的praat textgrid格式对录制的音频数据进行人工标注,并针对本节建立的数据集的特点进行调整。psc-reading-g1与psc-reading-24使用相同的方法进行标注。标注完成的textgrid文件如图4所示。
[0087]
相比于简单地使用纯文本格式来标注每句话对应的抄本,使用pratt软件对语音进行textgrid格式的标注是一件复杂的工作。所以,为了提高标注数据的效率,我们利用公开的普通话评测系统辅助进行人工标注。我们使用云知声(unisound)提供的公开普通话语音评测对录制的音频数据进行音素、音节与句子层级的强制对齐,从而生成textgrid格式的机器标注。如果api返回的结果中包括音频中的发音错误,将其标注在textgrid中。随后,在机器标注的textgrid的基础上,由母语为汉语普通话、学历为大学本科及以上的标
注人员进行人工标注。在进行人工标注时,根据实际的音频对句子、音节与音素的边界进行精确的调整,同时标注正确发音、实际发音与发音错误类型。我们对数据集中的所有句子均进行人工标注,并通过交叉检查与规则检查确保人工标注的准确性。
[0088]
普通话包括21种声母与39种韵母。在这之外还有“y”,“w”两种并不发音的零声母,它们用于在“i”,“u”,
“ü”
开头的三类韵母前,起分隔音节的作用。我们使用数字1-5表示普通话的五种声调,并附在音节或韵母之后。在进行音素标注时,参考了常用的普通话语音识别数据集thchs-30提供的发音词典,将每个音节的韵母进行形态还原。举例而言,对于音节“niu2”,在将其转变成音素时,它的声母保持为“n”,但韵母还原为“iou2”而非“iu2”。韵母“i”在不同的声母后有不同的发音,所以我们将其细分为“i”,“ix”,“iy”,“iz”四种音素。为了简化儿化音的建模,在音节与音素层级上将儿化音视为一个简单的韵母,但是不标注它的声调,记为“er”。在将不包含声母,或者声母是零声母的音节转换为音素时,仅将其韵母计入,而将零声母忽略。所以音素层级的标注只包括普通话中发音的21种声母、39种韵母及声调。对于发音错误,采用与l2-arctic一致的标注方法,即使用一个三元组记录下该位置的正确发音、真实发音与发音错误类型。发音错误包括插入(ins.)、删除(del.)、替换三类(sub.),在标注中分别记为“a”,“d”和“s”。
[0089]
总的来说,psc-reading-g1数据集包括1200条音频,而psc-reading-24包括5733条音频,少量录制质量较差的音频已经被移除。psc-reading-24被随机划分为训练集、验证集与测试集,每个子集均保证说话人的男女性别比为1:1。在完整的psc-reading数据集中,训练集由psc-reading-g1数据集与psc-reading-24的训练集合并得到,而验证集与测试集即为psc-reading-24的验证集与测试集。psc-reading数据集的统计信息参见表1,数据集中发音错误的统计信息参见表2。
[0090]
表1 psc-reading数据集统计信息
[0091][0092]
表2 psc-reading数据集发音错误统计信息
[0093][0094]
以下将psc-reading数据集与部分现有的公开语音评测数据集进行比较,具体细节见表3,其中列出的所有数据集的录音环境均为安静的室内。根据表3中的信息可见,目前公开的语音评测数据集大多是针对第二语言习得领域而构建的,而本文构建的psc-reading数据集实际上是针对第一语言(母语)学习与评测这一场景。因此psc-reading的说话人本身就具有较高的语言水平,所以如表2中数据所示,录音中出现发音错误的频率较低。
[0095]
表3部分语音评测数据集信息对比
[0096][0097][0098]
以上的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
再多了解一些

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

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

相关文献