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

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

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

1. 循环神经网络(RNN)

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

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

其中:

  • xtx_txt​ 是时刻 ttt 的输入向量
  • hth_tht​ 是时刻 ttt 的隐藏状态
  • yty_tyt​ 是时刻 ttt 的输出
  • WWW 和 bbb 是可训练参数
  • σ\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​[ht−1​,xt​]+bi​)
ft=σ(Wf[ht−1,xt]+bf)f_t = \sigma(W_f[h_{t-1}, x_t] + b_f)ft​=σ(Wf​[ht−1​,xt​]+bf​)
ot=σ(Wo[ht−1,xt]+bo)o_t = \sigma(W_o[h_{t-1}, x_t] + b_o)ot​=σ(Wo​[ht−1​,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​[ht−1​,xt​]+bC​)
Ct=ft⊙Ct−1+it⊙C~tC_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_tCt​=ft​⊙Ct−1​+it​⊙C~t​
ht=ot⊙tanh⁡(Ct)h_t = o_t \odot \tanh(C_t)ht​=ot​⊙tanh(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​[ht−1​,xt​])
rt=σ(Wr[ht−1,xt])r_t = \sigma(W_r[h_{t-1}, x_t])rt​=σ(Wr​[ht−1​,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[ht−1​⊙rt​,xt​])
ht=(1−zt)⊙ht−1+zt⊙h~th_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_tht​=(1−zt​)⊙ht−1​+zt​⊙h~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=0∑M−1​n=0∑N−1​xi+m,j+n​⋅wm,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​)

其中:

  • QQQ、KKK、VVV 分别是查询、键、值矩阵
  • 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或注意力机制实现端到端语音识别。


微信公众号

今日签到

点亮在社区的每一天
去签到