语音识别核心模型的数学原理和公式

发布于:2025-07-11 ⋅ 阅读:(15) ⋅ 点赞:(0)

在语音识别中,深度学习模型通过对声学特征的分层学习来实现语音到文本的转换。以下是几个核心模型的数学原理和公式:

1. 循环神经网络(RNN)

RNN通过隐藏状态的循环传递捕获序列依赖关系:

ht=σ(Whhht−1+Wxhxt+bh)h_t = \sigma(W_{hh}h_{t-1} + W_{xh}x_t + b_h)ht=σ(Whhht1+Wxhxt+bh)
yt=Whyht+byy_t = W_{hy}h_t + b_yyt=Whyht+by

其中:

  • xtx_txt 是时刻 ttt 的输入向量
  • hth_tht 是时刻 ttt 的隐藏状态
  • yty_tyt 是时刻 ttt 的输出
  • WWWbbb 是可训练参数
  • σ\sigmaσ 是激活函数(如tanh或ReLU)

2. 长短期记忆网络(LSTM)

LSTM通过门控机制解决RNN的梯度消失问题:

it=σ(Wi[ht−1,xt]+bi)i_t = \sigma(W_i[h_{t-1}, x_t] + b_i)it=σ(Wi[ht1,xt]+bi)
ft=σ(Wf[ht−1,xt]+bf)f_t = \sigma(W_f[h_{t-1}, x_t] + b_f)ft=σ(Wf[ht1,xt]+bf)
ot=σ(Wo[ht−1,xt]+bo)o_t = \sigma(W_o[h_{t-1}, x_t] + b_o)ot=σ(Wo[ht1,xt]+bo)
C~t=tanh⁡(WC[ht−1,xt]+bC)\tilde{C}_t = \tanh(W_C[h_{t-1}, x_t] + b_C)C~t=tanh(WC[ht1,xt]+bC)
Ct=ft⊙Ct−1+it⊙C~tC_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_tCt=ftCt1+itC~t
ht=ot⊙tanh⁡(Ct)h_t = o_t \odot \tanh(C_t)ht=ottanh(Ct)

其中包含:

  • 输入门 iti_tit:控制新信息的流入
  • 遗忘门 ftf_tft:控制历史信息的保留
  • 输出门 oto_tot:控制当前状态的输出
  • 细胞状态 CtC_tCt:长期记忆通道

3. 门控循环单元(GRU)

GRU是LSTM的简化变体,合并了细胞状态和隐藏状态:

zt=σ(Wz[ht−1,xt])z_t = \sigma(W_z[h_{t-1}, x_t])zt=σ(Wz[ht1,xt])
rt=σ(Wr[ht−1,xt])r_t = \sigma(W_r[h_{t-1}, x_t])rt=σ(Wr[ht1,xt])
h~t=tanh⁡(W[ht−1⊙rt,xt])\tilde{h}_t = \tanh(W[h_{t-1} \odot r_t, x_t])h~t=tanh(W[ht1rt,xt])
ht=(1−zt)⊙ht−1+zt⊙h~th_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_tht=(1zt)ht1+zth~t

其中:

  • 更新门 ztz_tzt:控制历史信息和当前输入的融合比例
  • 重置门 rtr_trt:控制忽略历史状态的程度

4. 卷积神经网络(CNN)

CNN通过卷积操作提取局部特征:

yi,j=∑m=0M−1∑n=0N−1xi+m,j+n⋅wm,n+by_{i,j} = \sum_{m=0}^{M-1}\sum_{n=0}^{N-1} x_{i+m,j+n} \cdot w_{m,n} + byi,j=m=0M1n=0N1xi+m,j+nwm,n+b

其中:

  • xxx 是输入特征图
  • www 是卷积核权重
  • bbb 是偏置
  • M×NM \times NM×N 是卷积核大小

5. Transformer模型

Transformer完全基于注意力机制,其核心是多头自注意力:

Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}(\frac{QK^T}{\sqrt{d_k}})VAttention(Q,K,V)=softmax(dk QKT)V
MultiHead(Q,K,V)=Concat(head1,...,headh)WO\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^OMultiHead(Q,K,V)=Concat(head1,...,headh)WO
where headi=Attention(QWiQ,KWiK,VWiV)\text{where head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)where headi=Attention(QWiQ,KWiK,VWiV)

其中:

  • QQQKKKVVV 分别是查询、键、值矩阵
  • dkd_kdk 是键向量的维度
  • hhh 是注意力头的数量

端到端语音识别模型

在端到端架构中,CTC(Connectionist Temporal Classification)损失函数被广泛用于处理时序对齐问题:

LCTC(y,π)=−log⁡P(π∣x)\mathcal{L}_{CTC}(y, \pi) = -\log P(\pi|x)LCTC(y,π)=logP(πx)

其中:

  • xxx 是输入特征序列
  • yyy 是预测的标签序列
  • π\piπ 是对齐路径
  • P(π∣x)P(\pi|x)P(πx) 是给定输入下路径的概率

这些模型通常结合使用,例如CNN提取声学特征,RNN/LSTM/GRU建模时序依赖,Transformer捕获长距离关联,最终通过CTC或注意力机制实现端到端语音识别。