Paraformer(Parallel Transformer)非自回归端到端语音系统需要解决两个问题:
采用一个预测器(Predictor)来预测文字个数并通过Continuous integrate-and-fire (CIF)机制来抽取文字对应的声学隐变量
Paraformerr的组成:Encoder(编码器),Predictor(预测器),Sampler(采样器),Decoder(解码器),loss function。
- Encoder(编码器),把声学特征转变成固定维度的稠密向量.
- Predictor(预测器),预测文字个数
N
′
N^{‘}
E
a
E_a
- Sampler(采样器),通过采样,将声学特征向量与目标文字向量变换成含有语义信息的特征向量,配合双向的Decoder来增强模型对于上下文的建模能力;采用Glangcing LM增强非自回归的上下文建模能力.
- Decoder(解码器),把向量转变成目标文字
Encoder
采用SAN-M结构,对于语音建模来说,全局建模和局部建模都极为关键,所以标准的Self-attention层增加了局部建模模块Memory Block,从而增加Self-attention的局部建模能力。
Decoder
离线和流式系统采用不同结构。离线识别使用双向SAN-M,流式识别采用单向的SAN-M,并结合基于SCAMA的流式注意力机制来实现。SCAMA流式注意力机制原理如上图所示,首先针对语音特征进行分chunk操作,送入encoder建模后进入predictor分别预测每个chunk的输出token数目。Decoder在接受到token数目和隐层表征后,来基于SCAMA流式注意力机制预测每个chunk的输出。
Predictor
E
a
E_a
Ea作为decoder的输入。即将encoder预测输出送入函数,将每帧的预测输出转化为一个0-1之间的概率分布,连续给集合的概率得到一个域限门值 β,根据 β 输出一个token。
Continuous Integrate-and-Fire(CIF)来产生声学embedding
E
a
E_a
Ea。CIF是软单调对齐,被用来做流式语音识别。CIF累积权重
α
α并整合隐藏表示H,直到累积的权重达到给定阈值β,这表明已经达到了声学边界.在训练过程中,将权值α按目标长度进行缩放,在训练过程中,将权值α按目标长度进行缩放,使声学嵌入的数量
E
a
E_a
Ea与目标嵌入的数量
E
E_c
α
α产生
E
a
E_a
Ea进行推理。因此,在训练和推理之间可能存在不匹配,导致预测器的精度下降。由于NAR模型比流模型对预测器精度更敏感,我们建议使用动态阈值β代替预定义阈值来减少不匹配。动态阈值机制表述为:
β
=
Σ
=
1
T
α
t
⌈
Σ
t
=
1
T
α
t
⌉
beta=frac{Sigma_{t=1}^Talpha_t}{lceil Sigma_{t=1}^Talpha_trceil}
β=⌈Σt=1Tαt⌉Σt=1Tαt
训练的时候额外采用平均绝对就差MAE Loss来使得预测的概率和等于整个输出的token数目。推理的时候采用门限值 β 为1,也就是累积到1的时候输出一个token,来预测整条语音的输出字数。
举例如下图,
α
α从左到右,0.3+0.5+0.3=1.1>1,于是fire一个token。
E
α
1
=
0.3
∗
H
1
+
0.5
∗
H
2
+
0.2
∗
3
E_{alpha 1}=0.3*H1+0.5*H2+0.2*h3
Eα1=0.3∗H1+0.5∗H2+0.2∗h3。由于还剩0.1的值没有用,于是0.1用于下一个token计算。同理,
E
α
2
=
0.1
∗
H
3
+
0.6
∗
H
4
+
0.3
∗
H
5
E_{alpha 2}=0.1*H3+0.6*H4+0.3*H5
Eα2=0.1∗H3+0.6∗H4+0.3∗H5,
E
α
3
=
0.1
∗
H
5
+
0.9
∗
H
6
E_{alpha 3}=0.1*H5+0.9*H6
Eα3=0.1∗H5+0.9∗H6。
E
α
4
=
0.2
∗
H
7
+
0.6
∗
H
8
E_{alpha 4} =0.2*H7+0.6*H8
Eα4=0.2∗H7+0.6∗H8. 共fire了4次,也就是4个
E
α
E_alpha
Eα
。
Sampler
第一个是自回归Decoder,即当前时刻依赖前一时刻的输出;
第二个是标准的单轮迭代的非自回归端到端Decoder,使用独立建模方式;
第三个是 MLM,它是多轮迭代非自回归常采用的方式,将某些时刻替换成mask,利用周边的token预测mask的位置,并通过多轮迭代的方式提升预测精度。
第四个是Paraformer采用的建模方式,通过GLM浏览语言模型对隐层表征和grand truth的label进行采样,预测隐层表征对应输出的token来提升token的内部建模能力,从而减少Paraformer中的替换错误。
其中,
G
L
M
(
Y
,
Y
′
)
GLM(Y, Y^{‘})
E
E_c
Ec和
E
a
E_a
G
L
M
(
Y
,
Y
′
)
GLM(Y, Y^{‘})
G
L
M
(
Y
,
Y
′
)
=
S
a
m
p
l
e
r
(
E
∣
E
a
,
E
,
⌈
λ
(
Y
,
Y
′
)
⌉
)
GLM(Y,Y^{‘})=Sampler(E_s|E_a,E_c,lceil lambda d(Y,Y^{‘}) rceil)
GLM(Y,Y′)=Sampler(Es∣Ea,Ec,⌈λd(Y,Y′)⌉)
(
X
,
Y
)
(X,Y)
(X,Y),
X
X
X表示语音,有
T
T
T帧,
Y
Y
Y表示文字,有
N
N
X
X
H
H
N
′
N^{‘}
E
a
E_a
Ea。输入
E
a
E_a
Ea和
H
H
Y
′
Y^{‘}
Y′,这是第一次解码,主要为了得到预测的结果并通过Sampler模块来采样,这时梯度并不回传(其实代码里是可选择的)。Sampler 采样
E
a
E_a
Ea和目标
E
c
E_c
Ec来产生
E
E_s
Es,需要依据
Y
′
Y^{‘}
Y′和
Y
Y
E
s
E_s
Es和
H
H
H来预测最终的结果
Y
′
′
Y^{”}
Y
′
′
Y^{”}
N
′
N^{‘}
Y
′
′
Y^{”}
Y′′ 用来采样负例并计算MWER, 通过目标长度N和预测的
N
′
N^{‘}
N′来计算MAE(平均绝对误差)。MWER(最小化词错误率)和MAE通过CE(交叉熵)联合训练。
E
a
E_a
Ea和
H
H
H来预测
Y
′
Y^{‘}
Y′。
loss
https://zhuanlan.zhihu.com/p/649558283
https://zhuanlan.zhihu.com/p/637849790
https://arxiv.org/abs/2206.08317
原文地址:https://blog.csdn.net/philosophyatmath/article/details/134694106
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_19611.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!