Paraformer 语音识别原理

在这里插入图片描述
Paraformer(Parallel Transformer)非自回归端到端语音系统需要解决两个问题:

  1. 准确预测输出序列长度,送入预测语音信号判断包含多少文字。 如何从encoder 的输出中提取隐层表征,作为decoder的输入。

采用一个预测器(Predictor)来预测文字个数并通过Continuous integrate-and-fire (CIF)机制来抽取文字对应的声学隐变量

  1. 如何增强非自回归预测内部依赖的建模能力。

基于GLM的 Sampler模块来增强模型对上下文语义的建模

Paraformerr的组成:Encoder(编码器),Predictor(预测器),Sampler(采样器),Decoder(解码器),loss function。

  • Encoder(编码器),把声学特征转变成固定维度的稠密向量.
  • Predictor(预测器),预测文字个数 N ′ N^{'} N,实现语音和文本对齐,并通过Continuous integrate-and-fire (CIF)机制来抽取文字对应的声学隐变量 E a E_a Ea
  • 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

基于CIF来预测输出token的数目,并提取隐层表征 E a E_a Ea作为decoder的输入。即将encoder预测输出送入函数,将每帧的预测输出转化为一个0-1之间的概率分布,连续给集合的概率得到一个域限门值 β,根据 β 输出一个token。
Continuous Integrate-and-Fire(CIF)来产生声学embedding E a E_a Ea。CIF是软单调对齐,被用来做流式语音识别。CIF累积权重 α \alpha α并整合隐藏表示H,直到累积的权重达到给定阈值β,这表明已经达到了声学边界.在训练过程中,将权值α按目标长度进行缩放,在训练过程中,将权值α按目标长度进行缩放,使声学嵌入的数量 E a E_a Ea与目标嵌入的数量 E c E_c Ec相匹配,并直接使用权值 α \alpha α产生 E a E_a Ea进行推理。因此,在训练和推理之间可能存在不匹配,导致预测器的精度下降。由于NAR模型比流模型对预测器精度更敏感,我们建议使用动态阈值β代替预定义阈值来减少不匹配。动态阈值机制表述为:
β = Σ t = 1 T α t ⌈ Σ t = 1 T α t ⌉ \beta=\frac{\Sigma_{t=1}^T\alpha_t}{\lceil \Sigma_{t=1}^T\alpha_t\rceil} β=Σt=1TαtΣt=1Tαt
训练的时候额外采用平均绝对就差MAE Loss来使得预测的概率和等于整个输出的token数目。推理的时候采用门限值 β 为1,也就是累积到1的时候输出一个token,来预测整条语音的输出字数。

举例如下图, α \alpha α从左到右,0.3+0.5+0.3=1.1>1,于是fire一个token。 E α 1 = 0.3 ∗ H 1 + 0.5 ∗ H 2 + 0.2 ∗ h 3 E_{\alpha 1}=0.3*H1+0.5*H2+0.2*h3 Eα1=0.3H1+0.5H2+0.2h3。由于还剩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.1H3+0.6H4+0.3H5, E α 3 = 0.1 ∗ H 5 + 0.9 ∗ H 6 E_{\alpha 3}=0.1*H5+0.9*H6 Eα3=0.1H5+0.9H6 E α 4 = 0.2 ∗ H 7 + 0.6 ∗ H 8 E_{\alpha 4} =0.2*H7+0.6*H8 Eα4=0.2H7+0.6H8. 共fire了4次,也就是4个 E α E_\alpha Eα

在这里插入图片描述

Sampler

在这里插入图片描述

上图中展示了四种常见的建模方式:

第一个是自回归Decoder,即当前时刻依赖前一时刻的输出;
第二个是标准的单轮迭代的非自回归端到端Decoder,使用独立建模方式;
第三个是 MLM,它是多轮迭代非自回归常采用的方式,将某些时刻替换成mask,利用周边的token预测mask的位置,并通过多轮迭代的方式提升预测精度。
第四个是Paraformer采用的建模方式,通过GLM浏览语言模型对隐层表征和grand truth的label进行采样,预测隐层表征对应输出的token来提升token的内部建模能力,从而减少Paraformer中的替换错误。

假设输入 ( X , Y ) (X,Y) (X,Y), X X X表示语音,有 T T T帧, Y Y Y表示文字,有 N N N个文字。Encoder把输入 X X X映射到隐藏表示 H H H。 然后Predictor把隐藏表示映射为预测的文字个数 N ′ N^{'} N和对应的声学向量embedding E a E_a Ea。输入 E a E_a Ea H H H给Decoder,产生最后的预测 Y ′ Y^{'} Y,这是第一次解码,主要为了得到预测的结果并通过Sampler模块来采样,这时梯度并不回传(其实代码里是可选择的)。Sampler 采样 E a E_a Ea和目标 E c E_c Ec来产生 E s E_s Es,需要依据 Y ′ Y^{'} Y Y Y Y之间的距离。Decoder最后使用 E s E_s Es H H H来预测最终的结果 Y ′ ′ Y^{''} Y′′,这时才会回传梯度。最后, Y ′ ′ Y^{''} Y′′用来采样负例并计算MWER, 通过目标长度N和预测的 N ′ N^{'} N来计算MAE。
最后, Y ′ ′ Y^{''} Y′′ 用来采样负例并计算MWER, 通过目标长度N和预测的 N ′ N^{'} N来计算MAE(平均绝对误差)。MWER(最小化词错误率)和MAE通过CE(交叉熵)联合训练。

推断时,Sampler模块可以去掉,只使用 E a E_a Ea H H H来预测 Y ′ Y^{'} Y

loss

基于负样本采样的MWER训练准则。

https://zhuanlan.zhihu.com/p/649558283
https://zhuanlan.zhihu.com/p/637849790
https://arxiv.org/abs/2206.08317

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

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

相关文章

GPT带我学Openpyxl操作Excel

注:以下文字大部分文字和代码由GPT生成 一、openpyxl详细介绍 Openpyxl是一个用于读取和编写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它允许您使用Python操作Excel文件,包括创建新的工作簿、读取和修改现有工作簿中的数据、设置单元格格式以及编…

vue中.sync修饰符与$emit(update:xxx)双向数据绑定

文章目录 一、单向数据流二、props父子传值2.1、父组件2.2、子组件2.3、优缺点2.3.1、优点2.3.2、缺点 三、.sync修饰符双向绑定3.1、父组件3.2、子组件3.3、优缺点3.3.1、优点3.3.2、缺点 3.4、[文档](https://v2.cn.vuejs.org/v2/guide/components-custom-events.html#sync-%…

WPF应用开发之附件管理

在我们之前的开发框架中,往往都是为了方便,对附件的管理都会进行一些简单的封装,目的是为了方便快速的使用,并达到统一界面的效果,本篇随笔介绍我们基于SqlSugar开发框架的WPF应用端,对于附件展示和控件的一…

文献速递:机器学习在超声波非破坏性评估中的合成和增强训练数据综述(第一部分)— (机器学习方法在超声波检测中的概述)

文献速递:机器学习在超声波非破坏性评估中的合成和增强训练数据综述(第一部分)— (机器学习方法在超声波检测中的概述) Title 题目 A review of synthetic and augmented training data for machine learning in ul…

浅谈STL中的分配器

分配器是STL中的六大部件之一,是各大容器能正常运作的关键,但是对于用户而言确是透明的,它似乎更像是一个幕后英雄,永远也不会走到舞台上来,观众几乎看不到它的身影,但是它又如此的重要。作为用户&#xff…

rest_framework_django 学习笔记二(视图路由)

rest_framework_django 学习笔记二(视图路由) rest_framwork_django学习笔记一(序列化器) 一、rest framework 中Request 与 Response 1、Request REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,二是REST Fame…

3D模型渲染导致电脑太卡怎么办?

在线工具推荐: 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 1、什么是3D渲染? 3D渲染是指通过计算机图形学技术将三维模型转化为二维图像的过程…

人工智能“排头兵”,探访福州多地 AI 智算实践

生成式 AI 在 2023 年再次引爆 IT 技术发展,福建作为数字中国的重要策源地,也是国家数字经济创新发展试验区,在人工智能方面拥有良好的产业基础和人才优势,同时近期出台的《福建省促进人工智能产业发展十条措施》,为福…

带键扫的LED专用驱动方案

一、基本概述 TM1650 是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路。内部集成有MCU输入输出控制数字接口、数据锁存器、LED 驱动、键盘扫描、辉度调节等电路。TM1650 性能稳定、质量可靠、抗干扰能力强,可适用于24 小时长期…

docker buildx跨架构构建笔记(x86_64构建下构建aarch64镜像)

docker buildx跨架构构建(x86_64构建aarch64镜像) 文章目录 docker buildx跨架构构建(x86_64构建aarch64镜像)简介第一步 先交叉编译一个aarch64的HelloWorld程序。准备一个用于跨架构的Dockerfile文件使用docker buildx命令构建aarch64架构的镜像。查看镜像具体详细信息&#…

Linux常用命令——vi命令

文章目录 vi的工作模式常用快捷键提示和技巧结论 Linux环境下的vi编辑器不仅以其强大的功能著称,也因其快捷键而闻名。这些快捷键可以显著提高编辑效率,是每个使用vi的人必须掌握的。下面将扩展介绍vi的一些常用快捷键。 vi的工作模式 vi主要有两种模式…

【机器学习】线性模型之逻辑回归

文章目录 逻辑回归Sigmoid 函数概率输出结果预测值与真实标签之间的并不匹配交叉熵逻辑回归模型 梯度下降逻辑回归模型求解编程求解sklearn 实现,并查看拟合指标 逻辑回归 逻辑回归是一种广义线性模型,形式上引入了 S i g m o i d Sigmoid Sigmoid 函数…

Windows10中在Visual Studio2017中VC++项目安装使用GoogleTest库

Windows10中在Visual Studio2017中VC项目安装使用GoogleTest库 在Windows10中VC程序中可以不用自己手动下载GoogleTest源代码,可以直接通过【项目】-> 【管理 NuGet 程序包】-> 【浏览】-> 搜索 googletest, 找到Microsoft.googletest.v140.wi…

物联网实训室虚拟仿真软件建设方案

一、概述 物联网实训室虚拟仿真软件旨在紧密围绕立德树人的根本任务,充分依托先进的数字技术,并对接物联网行业的发展趋势和人才需求。通过对比真实企业工作环境,融合创新创业教育基因,秉承虚拟仿真技术与教育教学深度融合的理念&…

流批一体历史背景及基础介绍

目录 一、历史背景1.BI系统2.传统大数据架构3.流式架构4.Lambda架构5.Kappa架构 二、流批一体与数据架构的关系数据分析型应用数据管道型应用 三、流与批的桥梁Dataflow模型四、Dataflow模型的本质一个基本点两个时间域三个子模型1.窗口模型2.触发器模型3. 增量计算模型 四个分…

Netty Review - 探索Pipeline的Inbound和Outbound

文章目录 概念Server CodeClient CodeInboundHandler和OutboundHandler的执行顺序在InboundHandler中不触发fire方法InboundHandler和OutboundHandler的执行顺序如果把OutboundHandler放在InboundHandler的后面,OutboundHandler会执行吗 概念 我们知道当boss线程监控…

自学MySql(一)

1.安装下载 下载网址 2、将mysql的bin目录添加到环境变量(可选) 3、使用一下命令测试

GAN:WGAN前作

WGAN前作:有原则的方法来训练GANs 论文:https://arxiv.org/abs/1701.04862 发表:ICLR 2017 本文是wgan三部曲的第一部。文中并没有引入新的算法,而是标是朝着完全理解生成对抗网络的训练动态过程迈进理论性的一步。 文中基本是…

文心一言 VS 讯飞星火 VS chatgpt (146)-- 算法导论12.2 1题

一、用go语言,假设一棵二叉搜索树中的结点在1到 1000 之间,现在想要查找数值为 363 的结点。下面序列中哪个不是查找过的序列? a.2,252,401,398,330,344,397,363。 b.9…

ps 透明印章制作

ps 透明印章制作 1、打开不透明印章2、抠出红色印章3、新建图层4、填充红色印章到新图层5、导出透明印章 1、打开不透明印章 打开ps软件,菜单栏选择 文件-打开 选择本地不透明印章 打开 2、抠出红色印章 ps菜单栏 选择 选择-色彩范围 点击色彩范围 色彩范围窗口 取…