李宏毅NLP-3-语音识别part2-LAS

发布于:2025-04-14 ⋅ 阅读:(27) ⋅ 点赞:(0)

语音识别part2——LAS

在这里插入图片描述

Listen

在这里插入图片描述
Listen主要功能是提取内容信息,去除说话人差异和噪声 。编码器(Encoder)结构,输入是声学特征,经过 Encoder 处理后,输出为高级表示,这些高级表示可用于后续语音识别等任务 。

encoder有多种实现方式:

  • RNN
  • 1D CNN
  • self-attention

在这里插入图片描述

在这里插入图片描述
神经网络在语音处理等序列数据任务中应用的要点:

高层滤波器特性
“Filters in higher layer can consider longer sequence” ,意思是在卷积神经网络(CNN)中,高层的滤波器能够考虑更长的序列信息。随着网络层数加深,滤波器感受野增大,可捕捉更广泛的上下文信息 。比如在语音识别中,能整合更长语音片段的特征,提升对复杂语音模式的理解 。

网络组合方式
“CNN+RNN is common” ,指出将卷积神经网络(CNN)和循环神经网络(RNN)结合使用是常见做法。CNN擅长提取局部特征,RNN擅长处理序列的时序信息,二者结合能兼顾语音数据的局部模式提取和整体时序关联建模 ,在语音识别、自然语言处理等领域广泛应用 。

现在更流行的趋势是使用self-attention

在这里插入图片描述
自注意力机制能让模型在处理序列数据时,根据不同位置元素间的关联程度分配注意力权重,捕捉长距离依赖关系 。比如在语音识别中,可有效关注语音前后文信息,理解语义 。

在这里插入图片描述

为了降低输入的向量,语音处理中回加入下采样(Down Sampling),下采样方法包含:

Pyramid RNN(金字塔循环神经网络 )

  • 来源:由Chan等人在ICASSP’16(国际声学、语音和信号处理会议,2016年 )提出。
  • 结构特点:输入为声学特征 x 1 x^1 x1 x 2 x^2 x2 x 3 x^3 x3 x 4 x^4 x4 ,通过多层循环神经网络处理,下层的输出作为上层的输入,呈金字塔式结构。随着层数增加,时间维度上的信息被逐步聚合,最终输出 h 1 h^1 h1 h 2 h^2 h2 ,实现对语音特征的下采样 。

Pooling over time(时间池化 )

  • 来源:由Bahdanau等人在ICASSP’16提出。
  • 结构特点:同样以 x 1 x^1 x1 x 2 x^2 x2 x 3 x^3 x3 x 4 x^4 x4作为声学特征输入,通过时间维度上的池化操作(如最大池化、平均池化等 ),对输入特征进行降采样处理,减少时间维度上的信息冗余,输出 h 1 h^1 h1 h 2 h^2 h2 。 图中展示的两种方法都是为了在语音处理中有效减少数据量,同时保留关键特征信息 。

在这里插入图片描述

Time - delay DNN (TDNN,时延深度神经网络 )

  • 来源:由Peddinti等人在INTERSPEECH’15(国际语音通信协会年会,2015年 )提出。
  • 结构特点:图中显示多个绿色模块(代表网络层 )通过黑色箭头连接到一个中心点。TDNN通过在时间维度上设置延迟,能够捕捉语音信号在不同时间步的局部上下文信息,有效处理语音的时序特征,实现对语音特征的下采样 。扩张卷积神经网络(Dilated CNN)与之概念相同,都通过特殊方式扩大感受野来处理序列数据 。

Truncated Self - attention(截断自注意力 )

  • 来源:出自Yeh等人在arXiv’19上的研究。
  • 结构特点:输入为声学特征 x 1 x^1 x1 x 2 x^2 x2 x 3 x^3 x3 x 4 x^4 x4 ,经过一个浅蓝色模块(代表截断自注意力层 )处理,输出为 h 1 h^1 h1 h 2 h^2 h2 h 3 h^3 h3 h 4 h^4 h4 。截断自注意力机制在自注意力基础上,限制注意力计算范围,减少计算量,同时能捕捉语音序列中的重要关联信息,达到下采样目的 。

Attention

在这里插入图片描述
注意力机制(Attention)中的点积注意力(Dot - product Attention) :

  • 点积注意力计算:详细展示点积注意力计算过程。输入为特征 h h h z z z ,分别经过权重矩阵 W h W^h Wh W z W^z Wz线性变换后,进行点积操作(图中圆圈表示 ),得到注意力权重 α \alpha α 。该计算方式出自Chan等人在ICASSP’16(国际声学、语音和信号处理会议,2016年 )的研究 。
  • 作用:点积注意力通过这种计算方式,衡量不同特征间关联程度,为后续任务分配注意力权重,在语音识别、自然语言处理等领域用于聚焦关键信息 。

在这里插入图片描述
注意力机制(Attention)中的加法注意力(Additive Attention) :

  • 加法注意力计算:详细展示加法注意力计算过程。输入为特征 h h h z z z ,分别经过权重矩阵 W h W^h Wh W z W^z Wz线性变换后,将变换结果相加,再经过 t a n h tanh tanh激活函数处理,最后通过权重矩阵 W W W得到注意力权重 α \alpha α 。该计算方式出自Chorowski等人在NIPS’15(神经信息处理系统大会,2015年 )的研究 。

Spell

在这里插入图片描述展示了语音识别中“Spell”(解码 )环节的过程:

  • 输入与特征提取:底部蓝色模块是输入,经“Encoder”(编码器 )处理后得到特征表示 h 1 h^1 h1 h 2 h^2 h2 h 3 h^3 h3 h 4 h^4 h4
  • 注意力权重计算:这些特征经过注意力机制计算,得到注意力权重 α 0 1 \alpha_0^1 α01 α 0 2 \alpha_0^2 α02 α 0 3 \alpha_0^3 α03 α 0 4 \alpha_0^4 α04 ,再通过“softmax”函数处理,得到归一化后的权重 α ^ 0 1 \hat{\alpha}_0^1 α^01 α ^ 0 2 \hat{\alpha}_0^2 α^02 α ^ 0 3 \hat{\alpha}_0^3 α^03 α ^ 0 4 \hat{\alpha}_0^4 α^04 ,图中示例为0.5、0.5、0.0、0.0 。
  • 上下文向量计算:根据归一化权重计算上下文向量 c 0 c^0 c0 ,公式为 c 0 = ∑ α ^ 0 t h t c^0 = \sum \hat{\alpha}_0^t h^t c0=α^0tht ,示例中 c 0 = 0.5 h 1 + 0.5 h 2 c^0 = 0.5h^1 + 0.5h^2 c0=0.5h1+0.5h2
  • 循环神经网络输入与处理 c 0 c^0 c0作为循环神经网络(RNN)的输入,与隐藏状态 z 0 z^0 z0结合,得到新的隐藏状态 z 1 z^1 z1
  • 输出与预测:基于新的隐藏状态 z 1 z^1 z1 ,生成所有标记(tokens)上的概率分布,图中“Size V”表示分布的维度(词汇表大小 ),示例给出了标记a、b、c、d等的概率值,用于预测最终的语音识别结果 。

在这里插入图片描述

  • 输入与特征提取:依旧是底部蓝色模块作为输入,经“Encoder”(编码器 )得到特征表示 h 1 h^1 h1 h 2 h^2 h2 h 3 h^3 h3 h 4 h^4 h4
  • 注意力权重计算:这些特征经注意力机制计算出权重 α 1 1 \alpha_1^1 α11 α 1 2 \alpha_1^2 α12 α 1 3 \alpha_1^3 α13 α 1 4 \alpha_1^4 α14 ,再通过“softmax”函数得到归一化权重 α ^ 1 1 \hat{\alpha}_1^1 α^11 α ^ 1 2 \hat{\alpha}_1^2 α^12 α ^ 1 3 \hat{\alpha}_1^3 α^13 α ^ 1 4 \hat{\alpha}_1^4 α^14 ,图中示例为0.0、0.3、0.6、0.1 。
  • 上下文向量计算:根据归一化权重计算新的上下文向量 c 1 c^1 c1 ,公式为 c 1 = ∑ α ^ 1 t h t c^1 = \sum \hat{\alpha}_1^t h^t c1=α^1tht ,示例中 c 1 = 0.3 h 2 + 0.6 h 3 + 0.1 h 4 c^1 = 0.3h^2 + 0.6h^3 + 0.1h^4 c1=0.3h2+0.6h3+0.1h4 c 1 c^1 c1用红色方框特别标出 。
  • 循环神经网络迭代 c 1 c^1 c1作为RNN新的输入,与隐藏状态 z 1 z^1 z1结合得到 z 2 z^2 z2
  • 输出与预测:基于 z 2 z^2 z2生成所有标记(tokens)上的概率分布,“Size V”表示分布维度(词汇表大小 ),通过取概率最大值(“max” )确定预测结果 。

在这里插入图片描述

  • 输入与特征提取:底部蓝色模块作为输入,经“Encoder”(编码器 )得到特征表示 h 1 h^1 h1 h 2 h^2 h2 h 3 h^3 h3 h 4 h^4 h4
  • 注意力机制:这些特征通过注意力机制,为后续解码提供加权信息 。
  • 循环神经网络迭代:展示了循环神经网络隐藏状态的迭代过程,从 z 0 z^0 z0开始,依次结合上下文向量 c 0 c^0 c0 c 1 c^1 c1 c 2 c^2 c2 c 3 c^3 c3 ,得到 z 1 z^1 z1 z 2 z^2 z2 z 3 z^3 z3 z 4 z^4 z4
  • 输出与预测:基于各隐藏状态生成所有标记(tokens)上的概率分布,“Size V”表示分布维度(词汇表大小 )。通过取概率最大值(“max” )逐步确定预测结果,图中示例依次预测出“c”“a”“t” ,最终识别结果为“cat” 。

在这里插入图片描述
这张图用于说明束搜索(Beam Search)算法,为便于理解做了简化假设,假设词汇表中只有两个标记(tokens),即 V = 2 V = 2 V=2 ,分别用A和B表示 。
路径对比

  • 红色路径(Greedy Decoding,贪婪解码 ):每一步都选择当前概率最高的标记。但从全局看,这种策略可能无法得到最优解。图中红色箭头指示其选择路径,每一步只关注当下最大概率,未考虑后续整体情况 。
  • 绿色路径:代表全局最优路径。通过综合考虑后续步骤,选择能使最终结果概率最高的路径,图中绿色箭头指示其选择路径 。

概率与选择
图中不同节点间连线上标注的数字(如0.4、0.6、0.9 )表示选择相应路径的概率。在束搜索中,会根据设定的束宽,保留每一步概率较高的若干路径继续搜索,而非像贪婪解码只选当前最优,以此提升找到全局最优解的可能性。 但是实践中无法计算所有的线路。

在这里插入图片描述
上方文字“Keep B best pathes at each step”说明算法在每一步会保留B条最佳路径 ,这里设定束宽“B (Beam size) = 2” ,即每一步保留两条最优路径继续搜索

  • 从起始节点开始,每一步根据概率等因素评估各路径优劣,保留概率最高的两条路径(用绿色箭头表示 )继续延伸搜索,舍弃其他路径(用橙色箭头表示 ) 。通过这种方式,在平衡计算量的同时,更有可能找到全局最优解,避免像贪婪解码那样陷入局部最优 。

Train

在这里插入图片描述
这张图展示了语音识别模型的训练过程,涉及Teacher Forcing(教师强制 )机制:

  • 输入与特征提取:底部蓝色模块为输入,经“Encoder”(编码器 )处理后得到特征表示 h 1 h^1 h1 h 2 h^2 h2 h 3 h^3 h3 h 4 h^4 h4
  • 注意力权重计算:这些特征通过注意力机制计算出权重 α 1 1 \alpha_1^1 α11 α 1 2 \alpha_1^2 α12 α 1 3 \alpha_1^3 α13 α 1 4 \alpha_1^4 α14 ,再经“softmax”函数得到归一化权重 α ^ 1 1 \hat{\alpha}_1^1 α^11 α ^ 1 2 \hat{\alpha}_1^2 α^12 α ^ 1 3 \hat{\alpha}_1^3 α^13 α ^ 1 4 \hat{\alpha}_1^4 α^14 ,图中示例值为0.0、0.3、0.6、0.1 。
  • 上下文向量计算:根据归一化权重计算上下文向量 c 1 c^1 c1 ,公式为 c 1 = ∑ α ^ 1 t h t c^1 = \sum \hat{\alpha}_1^t h^t c1=α^1tht
  • 循环神经网络迭代 c 1 c^1 c1与隐藏状态 z 0 z^0 z0结合,得到新隐藏状态 z 1 z^1 z1
  • 输出与损失计算:基于 z 1 z^1 z1生成所有标记(tokens)上的概率分布,“Size V”表示分布维度(词汇表大小 )。通过“max”操作确定预测结果。真实值用独热向量(One - hot vector)表示,与预测概率分布通过交叉熵(Cross entropy)计算损失 p ( a ) p(a) p(a)
  • Teacher Forcing机制在训练循环神经网络时,不使用上一时刻的预测值作为下一时刻的输入,而是直接使用真实的标签值作为输入。这样能让模型在训练时学习到更准确的映射关系,加快收敛速度,避免错误累积,但可能导致模型在测试时对错误预测的鲁棒性较差

在这里插入图片描述
为什么使用教师强制(Teacher Forcing):

  • 训练方式:展示了循环神经网络训练时,隐藏状态从 z 0 z^0 z0转变到 z 1 z^1 z1 ,输入为 c 0 c^0 c0 c 1 c^1 c1 。这里使用真实标签(标注“correct” )作为输入,即Teacher Forcing机制 。上方橙色模块代表输出,其中一个输出旁标注问号“?” ,表示模型预测不确定 。蓝色对话框“那我也要睡啦”被划掉,暗示这种方式避免模型因错误累积而“消极怠工” 。
  • 训练方式:同样是隐藏状态从 z 0 z^0 z0 z 1 z^1 z1 ,输入为 c 0 c^0 c0 c 1 c^1 c1 ,且使用真实标签(标注“correct” )。蓝色对话框“那我先講…”表示模型使用正确标签信息进行训练 ,另一个对话框“你要輸出c你要先講,好嗎?” ,进一步强调使用真实标签能让模型更好学习正确输出 。
  • 对比说明:中间箭头标注“training” ,表示从左侧情况向右侧情况的训练转变,强调Teacher Forcing机制在训练中为模型提供准确信息,避免错误累积,使模型能更有效地学习正确映射关系

在这里插入图片描述
在这里插入图片描述

围绕注意力机制,介绍了不同的注意力计算和应用方式:

  • 左图:出自Bahdanau等人在ICLR’15的研究。展示了注意力机制的一种结构, z t z^t zt z t + 1 z^{t + 1} zt+1为隐藏状态, c t c^t ct是上下文向量,注意力机制(绿色模块)通过虚线箭头与其他模块相连,计算注意力权重并影响隐藏状态更新和输出 。
  • 右图:出自Luong等人在EMNLP’15的研究。结构上, z t z^t zt z t + 1 z^{t + 1} zt+1 c t c^t ct c t + 1 c^{t + 1} ct+1作用类似,但注意力机制与各模块连接方式有别,体现不同的注意力计算和应用思路 。
  • 二者都要:出自Chan等人在ICASSP’16的研究,是前两者结合(图中“我全都要!” )。综合了不同注意力机制的优势,展示了更复杂的信息交互,隐藏状态 z t z^t zt z t + 1 z^{t + 1} zt+1 ,上下文向量 c t c^t ct ,注意力机制模块(绿色 )之间通过虚线箭头紧密连接,体现多方面信息整合用于计算注意力权重,为后续任务提供支持 。

在这里插入图片描述
这张图介绍了位置感知注意力(Location - aware attention)机制:

  • 生成第一个标记(token) :输入特征 h 1 h^1 h1 h 2 h^2 h2 h 3 h^3 h3 h 4 h^4 h4 ,通过注意力机制计算得到注意力权重 α 0 1 \alpha_0^1 α01 α 0 2 \alpha_0^2 α02 α 0 3 \alpha_0^3 α03 α 0 4 \alpha_0^4 α04 ,经“softmax”函数得到归一化权重 α ^ 0 1 \hat{\alpha}_0^1 α^01 α ^ 0 2 \hat{\alpha}_0^2 α^02 α ^ 0 3 \hat{\alpha}_0^3 α^03 α ^ 0 4 \hat{\alpha}_0^4 α^04 。这些权重用于计算“process history” ,最终生成第一个标记 。
  • 生成第二个标记 :输入特征仍为 h 1 h^1 h1 h 2 h^2 h2 h 3 h^3 h3 h 4 h^4 h4 ,结合之前的隐藏状态 z 1 z^1 z1 ,通过“match”操作计算注意力权重 α 1 2 \alpha_1^2 α12 ,用于生成第二个标记 。
  • 来源:该机制出自Chorowski等人在NIPS’15(神经信息处理系统大会,2015年 )的研究 。
  • 特点位置感知注意力机制在计算注意力权重时,会考虑输入序列的位置信息,使得模型在生成标记时能更好地捕捉序列中不同位置的特征依赖关系,提升模型在处理序列数据(如语音识别、自然语言处理 )时的性能

Performance

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • aaa 和 triple a
  • LAS能学到复杂的输入和输出

在这里插入图片描述

  • 闽南语(台语)语音识别及翻译
  • 不用考虑背景音乐,音效

Limitation

在这里插入图片描述
LAS(Listen, Attend and Spell)模型的局限性:
- LAS模型需听完整个输入语音后,才输出第一个标记(token) 。这意味着在处理语音时,无法即时反馈识别结果,存在延迟。
- 用户期望的是在线语音识别,即能实时、逐字地看到语音识别结果,而LAS模型的处理方式无法满足这一需求 。


网站公告

今日签到

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