李宏毅NLP-7-CTC/RNN-T文本对齐

LAS

在这里插入图片描述
LAS(Listen, Attend and Spell )模型,在语音识别中的解码和训练过程,具体内容如下:
解码(Decoding)

  • 公式 Y ∗ = arg ⁡ max ⁡ Y log ⁡ P ( Y ∣ X ) Y^* = \arg\max_Y \log P(Y|X) Y=argmaxYlogP(YX) 表示解码阶段的目标是找到使对数条件概率 log ⁡ P ( Y ∣ X ) \log P(Y|X) logP(YX) 最大的文本序列 Y ∗ Y^* Y。这里使用束搜索(Beam Search)算法实现,该算法在每一步保留若干个概率最高的候选路径,以平衡计算量和搜索效果,避免穷举所有可能序列。

训练(Training)

  • 公式 θ ∗ = arg ⁡ max ⁡ θ log ⁡ P θ ( Y ^ ∣ X ) \theta^* = \arg\max_{\theta} \log P_{\theta}(\hat{Y}|X) θ=argmaxθlogPθ(Y^X) 表示训练阶段要找到最优的模型参数 θ ∗ \theta^* θ,使模型在给定语音特征 X X X 时,预测文本序列 Y ^ \hat{Y} Y^ 的对数概率最大。通过最大化这个对数似然函数,调整模型参数以提升对语音 - 文本映射关系的学习能力。

模型计算

  • 延续前文,再次强调 “LAS directly computes P ( Y ∣ X ) P(Y|X) P(YX)” ,计算方式为 P ( Y ∣ X ) = p ( a ∣ X ) p ( b ∣ a , X ) ⋯ P(Y|X) = p(a|X)p(b|a, X)\cdots P(YX)=p(aX)p(ba,X) ,即依次计算每个 token 基于语音特征和已生成 token 的条件概率。
  • 右侧展示模型结构,黄色解码器单元 z 0 − z 3 z^0 - z^3 z0z3结合蓝色上下文向量 c 0 − c 2 c^0 - c^2 c0c2 输出不同 token 概率(如 p ( a ) p(a) p(a) p ( b ) p(b) p(b) p ( E O S ) p(EOS) p(EOS)),用于生成文本序列。

CTC, RNN-T

在这里插入图片描述
这张图对比了LAS与CTC、RNN - T在语音识别中的原理,重点阐述了CTC和RNN - T的特性:

解码与训练基础

  • 解码:公式 Y ∗ = arg ⁡ max ⁡ Y log ⁡ P ( Y ∣ X ) Y^* = \arg\max_Y \log P(Y|X) Y=argmaxYlogP(YX) 表示解码目标是找出使对数条件概率 log ⁡ P ( Y ∣ X ) \log P(Y|X) logP(YX) 最大的文本序列 Y ∗ Y^* Y,通过束搜索(Beam Search)实现。
  • 训练:公式 θ ∗ = arg ⁡ max ⁡ θ log ⁡ P θ ( Y ^ ∣ X ) \theta^* = \arg\max_{\theta} \log P_{\theta}(\hat{Y}|X) θ=argmaxθlogPθ(Y^X) 意味着训练时要找到最优参数 θ ∗ \theta^* θ,最大化模型预测文本序列 Y ^ \hat{Y} Y^ 基于语音特征 X X X的对数概率。

LAS模型特点

  • LAS直接计算 P ( Y ∣ X ) P(Y|X) P(YX) ,计算方式为 P ( Y ∣ X ) = p ( a ∣ X ) p ( b ∣ a , X ) ⋯ P(Y|X) = p(a|X)p(b|a, X)\cdots P(YX)=p(aX)p(ba,X),依次计算每个token基于语音特征及已生成token的条件概率。

CTC和RNN - T模型特点

  • 对齐需求:与LAS不同,CTC和RNN - T需要进行对齐(alignment)操作。模型通过编码器得到隐藏状态 h 1 − h 4 h^1 - h^4 h1h4,计算 P ( h ∣ X ) P(h|X) P(hX),其中 h h h 序列包含空白符 ϕ \phi ϕ (如 h = a ϕ b ϕ h = a \phi b \phi h=aϕbϕ) 。
  • 概率计算:CTC和RNN - T计算 P ( Y ∣ X ) P(Y|X) P(YX) 时,需对所有与目标文本序列 Y Y Y 对齐的路径 h h h求和,即 P ( Y ∣ X ) = ∑ h ∈ a l i g n ( Y ) P ( h ∣ X ) P(Y|X) = \sum_{h \in align(Y)} P(h|X) P(YX)=halign(Y)P(hX)。最终将含空白符的 h h h 序列映射为目标文本序列(如 a ϕ b ϕ → a b a \phi b \phi \to a b aϕbϕab ),解决语音与文本时间不对齐问题。

在这里插入图片描述

怎么穷举所有的可能组合
在这里插入图片描述
语音识别的对齐方式:

  • 图表中部从 “speech”(时长T = 6)到 “text”(字数N = 3)的流程,直观呈现了语音识别从输入语音信号到输出文本的过程。这里时长T和字数N的标注,体现了语音和文本在长度上的对应关系,也是对齐操作需要解决的关键问题,即如何将时长为T的语音准确对应到字数为N的文本上。

不同方法展示

  • HMM:HMM(隐马尔可夫模型)在语音识别中通过状态转移和发射概率来建模语音信号。这里展示将 “cat” 扩展到长度T的方式,反映了HMM如何将离散的文本单元对应到连续的语音片段上。其示例结果展示了HMM在对齐过程中的具体实现,可能是通过一系列状态转移来匹配语音的不同时段和文本的每个字符。
  • CTC:CTC(Connectionist Temporal Classification)是一种用于解决序列对齐问题的方法。它通过引入空白符,允许模型在不需要预先知道语音和文本精确对齐关系的情况下进行训练。图中展示的将 “cat” 扩展到长度T的示例,体现了CTC在处理语音和文本对齐时的灵活性,它可以自动处理语音和文本之间的时间不对齐问题。
  • RNN - T:RNN - T(RNN Transducer)也是一种处理序列到序列任务的模型。它结合了循环神经网络和变换器的特点,能够直接对语音和文本进行联合建模。图中展示的将 “cat” 扩展到长度T的示例,展示了RNN - T在语音识别对齐中的具体操作方式,它可能通过递归计算来逐步生成文本序列,同时考虑语音的上下文信息。

在这里插入图片描述
隐马尔可夫模型(HMM)在语音识别中的对齐过程展开,详细展示了将文本 “cat” 扩展到指定长度 T T T 的方法以及对应的网格图表示,以下是详细解释:

文本扩展部分

  • 扩展目标与方式:图上方左侧 “HMM” 标识表明这部分内容基于隐马尔可夫模型。“cat” 通过向右的黑色粗箭头指向 “ccaaat caaaat …” ,将 “cat” 中的每个字符重复若干次,以达到总长度为 T T T 的序列。
  • 约束条件:灰色文本框内的公式 “For n = 1 to N output the n - th token t n t_n tn times constraint: t 1 + t 2 + ⋯ t N = T , t n > 0 t_1 + t_2+\cdots t_N = T, t_n > 0 t1+t2+tN=T,tn>0” 给出了具体的约束条件。这里 N N N 是文本 “cat” 的字符数量( N = 3 N = 3 N=3), t n t_n tn 表示第 n n n 个字符重复的次数,所有字符重复次数之和要等于 T T T,且每个字符至少重复一次。
  • 网格图标识:中间左侧 “Trellis Graph” 表明这是一个网格图,常用于表示序列对齐过程中的状态转移。
  • 网格内容:第一行蓝色方格内的 x 1 x^1 x1 x 6 x^6 x6 代表语音信号的不同时刻或特征,其中 x 5 x^5 x5 旁的火箭图标和 x 6 x^6 x6旁的红色表情图标可能是用于特殊标记或强调。左侧三行灰色方格内的 c、a、t 对应文本 “cat” 中的字符。
  • 箭头含义:黑色箭头 “duplicate” 表示字符重复,即沿着同一行继续选择相同字符;黑色细箭头 “next token” 表示切换到下一个字符。从左上角橙色圆点开始,不同颜色的箭头代表不同的对齐路径,最终都指向右下角蓝色圆点,蓝色圆点下的红色亮点表示最终的结束状态或目标状态。

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

  • 操作过程:图中 “CTC” 字样明确了主题。从 “cat” 出发,经过 “duplicate”(重复)和 “add ϕ \phi ϕ”(添加空白符)操作,得到诸如 “ c ϕ a a t t ϕ c a ϕ t ϕ ⋯ c\phi aatt \phi ca\phi t\phi \cdots cϕaattϕcaϕtϕ” 这样的序列。这体现了 CTC 允许在文本中插入空白符,以解决语音和文本在时间上的不对齐问题。

  • 规则约束:下方灰色文本框内的代码样式文字给出了详细的输出规则和约束条件。它规定了先输出若干次空白符 ϕ \phi ϕ ,然后依次输出第 n n n个 token 若干次。约束等式和不等式确保了生成序列的长度和字符组合符合要求,如所有字符(包括空白符)出现次数之和要满足一定条件,每个字符重复次数有相应的限制等。

  • 文本扩展:“cat” 通过 “duplicate” 和 “add ϕ \phi ϕ” 操作转换为 “ c ϕ a a t t ϕ c a ϕ t ϕ ⋯ c\phi aatt \phi ca\phi t\phi \cdots cϕaattϕcaϕtϕ” 并延长到长度 T T T

  • 网格图表示:中间的蓝色方格网格是核心部分。方格内标注的 x 1 x^{1} x1 到 $ x^{6}$ 代表语音信号的不同时刻或特征。方格内的不同颜色圆点、符号 ϕ \phi ϕ以及字母 “c”“a”“t” 表示不同的状态。黑色箭头和文字说明 “duplicate”(重复当前字符)、“next token”(切换到下一个字符)、“insert ϕ \phi ϕ”(插入空白符) 展示了状态之间的转移规则。带有爆炸效果的小图标可能是用于特殊标记或强调某个关键状态或操作。
    在这里插入图片描述
    当下一个 token 和当前 token 相同时的处理规则是不能往下走。

在这里插入图片描述
RNN - T(RNN Transducer)在语音识别中的文本处理规则:
文本扩展

  • 文本扩展操作:“cat” 通过黑色粗箭头指向右侧形如 “ ϕ a ϕ t ϕ ⋯ \phi a\phi t\phi \cdots ϕaϕtϕ” 的序列,箭头下方 “add ϕ \phi ϕx T” 说明操作是向 “cat” 中添加 ϕ \phi ϕ (空白符),且添加的总次数与参数 T T T 相关。这一操作体现了 RNN - T 在处理语音和文本对齐时,通过引入空白符来增强模型灵活性和处理能力。
  • 对话框内容:图片下方左侧的蓝色和橙色对话框包含了重要的规则说明。蓝色对话框 “Put some ϕ \phi ϕ(option)” 表示可以选择添加一些空白符,这给予了模型在处理过程中的一定灵活性。橙色对话框 “Put the n - th token t n t_n tn times” 表示要将第 n n n 个 token 输出 t n t_n tn次,且 “at least once” 强调每个 token 至少要出现一次。
  • 规则阐述:右侧灰色方框内的数学相关文字进一步阐述了输出规则和约束条件。它详细说明了输出 ϕ \phi ϕ 的次数规则,例如先输出若干次 ϕ \phi ϕ ,然后依次输出每个 token 若干次。同时,给出了严格的约束等式和不等式,确保生成序列的长度和字符组合符合要求,如所有字符(包括空白符)出现次数之和要满足一定条件,每个 token 重复次数有相应的下限等。

在这里插入图片描述
横着走插入的是空,往下走是预测下一个token

  • 核心操作:从 “cat” 出发,通过箭头 “add ϕ \phi ϕ x T” 指向添加了多个空白符号 “ ϕ \phi ϕ” 的序列,这表明 RNN - T 在处理文本时,会向原始文本中添加一定数量的空白符,以增强模型在处理语音和文本对齐时的灵活性。
  • 网格含义:网格图由上下两部分组成,上方蓝色方格标注的 x 1 x^{1} x1 x 6 x^{6} x6 代表语音信号的不同时刻或特征;下方浅蓝色方格中字母 “c”“a”“t” 重复排列,代表文本中的字符。
  • 路径规则:黑色箭头表示不同的操作,“Insert ϕ \phi ϕ” 表示插入空白符,“output token” 表示输出当前字符。路径的起始和结束点用蓝色圆点标记,清晰地展示了整个操作流程的开始和结束。
  • 特殊标记:路径中的红色圆点标记在 “t” 处,可能是为了突出某个关键步骤或状态;铅笔图标标记可能表示需要进一步处理或注意的节点。

总结

在这里插入图片描述

  • HMM(隐马尔可夫模型):由一系列带有字母(如 “c”“a”“t”)的圆圈表示状态,圆圈之间的箭头体现了状态转移关系。HMM通过状态转移概率和发射概率来描述序列的生成过程,在语音识别中,这些状态和转移可能对应着语音的不同音素或发音状态的变化。
  • CTC(Connectionist Temporal Classification):同样由带字母和符号(如 “c”“a”“t”“( \phi )”)的圆圈和箭头构成状态转移图。CTC引入了空白符 ϕ \phi ϕ,用于处理语音和文本之间的时间不对齐问题。它允许模型在不需要预先知道语音和文本精确对齐关系的情况下进行训练,增强了模型的灵活性。
  • RNN - T(RNN Transducer):除了字母和符号的圆圈及箭头外,部分状态上方标注了 “not gen”,可能表示这些状态在特定条件下不进行生成操作。RNN - T结合了循环神经网络和变换器的特点,能够直接对语音和文本进行联合建模,其状态转移反映了模型在处理语音序列时逐步生成文本的过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/81752.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery和CSS3卡片列表布局特效

这是一款jQuery和CSS3卡片列表布局特效。该卡片布局使用owl.carousel.js来制作轮播效果&#xff0c;使用简单的css代码来制作卡片布局&#xff0c;整体效果时尚大方。 预览 下载 使用方法 在页面最后引入jquery和owl.carousel.js相关文件。 <link rel"stylesheet&qu…

Microsoft 推出 Magentic-UI,多智能体引领网页人机协作变革

当前&#xff0c;现代生产力与网页操作紧密相连&#xff0c;信息检索、表单填写、仪表盘导航等网页任务已成为工作流程的重要环节。然而&#xff0c;大量网页任务仍依赖人工重复操作&#xff0c;效率低下且易出错。与此同时&#xff0c;许多 AI 智能体虽追求自主运行&#xff0…

2023年6级第一套长篇阅读

画名词概念&#xff0c;动词概念 多处定位原词加同义改写 画关键词&#xff0c;多处定位直接就可以选A了 没有定位的句子先比没匹配到的段落&#xff0c;再匹配长的段落先易后难

登山第二十三梯:有序点云平面快速分割——35Hz帧速前进

文章目录 一 摘要 二 资源 三 内容 一 摘要 3D 点云中的实时平面提取对于许多机器人应用至关重要。作者提出了一种新颖的算法&#xff0c;用于在从 Kinect 传感器等设备获得的有组织的点云中实时可靠地检测多个平面。通过在图像空间中将这样的点云均匀地划分为不重叠的点组&…

【北京盈达科技】GEO优化:引领AI时代内容霸权,重塑行业生态

盈达科技GEO优化&#xff1a;引领AI时代内容霸权&#xff0c;重塑行业生态 在人工智能飞速发展的今天&#xff0c;生成式AI已经深刻改变了人们获取信息的方式。从ChatGPT到文心一言&#xff0c;再到各种智能问答系统&#xff0c;AI生成的内容正在成为信息传播的新主流。然而&a…

安卓端智能耗材柜系统可行性方案(基于uniapp + Vue3)

一、系统架构设计 1. 技术栈&#xff1a; 前端框架&#xff1a;uniapp Vue3 TypeScript状态管理&#xff1a;Pinia&#xff08;分层设计&#xff0c;模块化Store&#xff09;硬件交互&#xff1a;Android原生插件&#xff08;Java/Kotlin封装&#xff09;通信协议&#xff…

Java交互协议详解:深入探索通信机制

解析Java中各类交互协议的设计原理与实战应用&#xff0c;涵盖TCP/UDP自定义协议、HTTP/RESTful、WebSocket、RPC等主流方案。 一、交互协议核心概念 交互协议是系统间通信的规则集合&#xff0c;包含&#xff1a; 消息格式&#xff1a;数据序列化方式&#xff08;JSON/XML/P…

k8s上运行的mysql、mariadb数据库的备份记录

文章目录 前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作2.手动备份3.定时任务自动备份 总结 前言 记录一下在k8s运行的数据库的备份步骤。 我的思路是新建一个数据库的容器作为工具容器&#xff0c;通过工具容器执行mysqldump命令进行备份&#xff0c;最后通过定…

宝塔面板部署python web项目详细教程

最近在学langchain&#xff0c;写了一个小案例出来&#xff0c;我刚好有一台服务器&#xff0c;就尝试自己部署一下项目&#xff0c;结果很幸运一遍过&#xff0c;现在记录一下。我的系统是OpenCloudOS 9 目录 1.安装python解释器版本 2.上传项目文件到宝塔面板 3.添加项目…

IT选型指南:电信行业需要怎样的服务器?

从第一条电报发出的 那一刻起 电信技术便踏上了飞速发展的征程 百余年间 将世界编织成一个紧密相连的整体 而在今年 我们迎来了第25届世界电信日 同时也是国际电联成立的第160周年 本届世界电信日的主题为:“弥合性别数字鸿沟,为所有人创造机遇”,但在新兴技术浪潮汹涌…

OAuth协议中的Token、Ticket

OAuth协议中的核心概念&#xff08;如Token、Ticket等&#xff09;可以通过日常生活中的类比来形象理解&#xff1a; 1. 门票&#xff08;Ticket&#xff09; vs 令牌&#xff08;Token&#xff09;类比 概念现实类比OAuth中的表现Ticket电影院纸质票&#x1f3ab;短期有效的临…

80x86CPU入栈与出栈操作

一、栈操作&#xff1a;入栈push&#xff0c;出栈pop 栈操作&#xff1a;FILO&#xff08;先进后出机制&#xff09; 栈顶的指针&#xff1a;ss:sp决定&#xff0c;任意时刻栈顶指针指向SS:SP的位置 对于8086CPU 入栈时&#xff1a;sp-2 出栈时&#xff1a;sp2 assume cs…

最优控制:从变分法到庞特里亚金原理

典型问题 根据系统的建模可以划分为&#xff1a; 线性系统&#xff1a; x ˙ A x B u \mathbf{\dot{x}} \boldsymbol{A}\mathbf{x}\boldsymbol{B}\mathbf{u} x˙AxBu非线性系统 x ˙ ( t ) f ( x ( t ) , u ( t ) , t ) \dot{\mathbf{x}}(t) \mathbf{f}(\mathbf{x}(t)…

DeepSeek 提示词大全

目录 前言一、提示词基础理论 什么是提示词提示词的类型提示词的基本结构 二、提示词设计原则 明确指令结构化表达情境化需求渐进式引导边界与限制 三、场景化提示词模板 写作创作类角色扮演类信息提取类代码编程类教育学习类商业营销类生活助手类 四、提示词优化技巧 迭代式优…

安科瑞Acrelcloud-6200系统:智慧路灯安全用电监控平台架构解析

安科瑞顾强———Acrelgq 智慧路灯作为智慧城市与新基建的核心载体&#xff0c;集成了大量异元异构电子设备&#xff0c;其供电安全与能效管理面临电压多样、权属分散、扩展性不足等挑战。本文提出一种融合统一供电、分路计量、智能防护与远程监控的解决方案&#xff0c;通过构…

DMBOK对比知识点对比(1)

1.CDGP各章活动 章节一级

css设置动态数值:clamp函数

CSS 的 clamp() 函数是一个强大的工具&#xff0c;用于创建响应式且范围可控的动态值。它结合了min() 和max() 的逻辑&#xff0c;允许你定义一个值在最小值和最大值之间动态调整。 语法为&#xff1a; clamp(最小值, 首选值, 最大值)&#xff1b; 工作原理&#xff1a; 当 …

数值计算与数据相关参数剖析:保障模型训练稳定与准确

一、计算类型&#xff1a;以BF16为例 1.1 核心作用 BF16 是一种计算方式&#xff0c;它能让模型训练更快&#xff0c;还省内存。比如训练模型时&#xff0c;用普通方式可能很慢&#xff0c;占内存也多&#xff0c;而 BF16 就像给模型开了 “加速键”&#xff0c;训练起来更高…

数据库读写分离解决方案

数据库读写分离解决方案 一、读写分离核心概念 读写分离(Read/Write Splitting)是通过将数据库的读操作和写操作分离到不同的数据库节点来提升系统整体性能的架构模式。 核心原则:写操作集中在主库(Master),读操作分散到从库(Slave),通过数据复制保持主从一致性 二、技术实…

小白的进阶之路系列之七----人工智能从初步到精通pytorch自动微分优化以及载入和保存模型

本文将介绍Pytorch的以下内容 自动微分函数 优化 模型保存和载入 好了,我们首先介绍一下关于微分的内容。 在训练神经网络时,最常用的算法是反向传播算法。在该算法中,根据损失函数相对于给定参数的梯度来调整参数(模型权重)。 为了计算这些梯度,PyTorch有一个内置…