ICASSP 2023丨基于 CTC 的模型改进,实现更强的模型结构

news2024/11/25 0:38:26

分享一篇网易智企易盾 AI Lab 团队在ICASSP 2023被收录的语音识别方向的论文《Improving CTC-based ASR Models with Gated Interplayer Collaboration(基于 CTC 的模型改进,实现更强的模型结构)》

论文地址:https://arxiv.org/abs/2205.12462

语音识别本质上是语音序列到文字序列的转化,而要完成这样的转化,一般会用到三类模型,CTC、Attention-based 和 RNN-transducer,它们在完成任务的时候采用了不同的路径:

  • CTC:基于神经网络模型,在训练过程中通过反向传播来更新模型参数以最小化损失函数。该算法引入了“空白符”来表示无意义字符或者间隔符号。CTC 适合处理输入输出长度相差较大的数据,如语音识别中将声学特征映射为文本

  • Attention-based:注意力机制,也是基于神经网络模型,并且使用一种称为“注意力”的技术来对输入进行加权汇聚。在每个时间步骤上,该模型会根据当前状态和所有输入计算出一个分布式权重向量,并将其应用于所有输入以产生一个加权平均值作为输出。这种方式可以使得模型更好地关注与当前预测相关的部分信息

  • RNN-transducer:转录器,这个算法结合了编码器-解码器框架和自回归建模思想,在生成目标序列时同时考虑源语言句子和已生成部分目标语言句子之间的交互作用。与其他两种方法不同,RNN-transducer 没有明确区分编码器和解码器阶段,并且直接从源语言到目标语言进行转换,因此可以同时考虑源语言句子和已生成部分目标语言句子之间的交互作用

相比后两者,虽然 CTC 具有天然的非自回归解码性质,解码速度相对快很多,但依然有着性能劣势:

1. CTC 算法设置了条件独立性假设,即 CTC 假设每个时间步的输出之间是独立的。这对语音识别任务来说并不合理,假如说“ji rou”这个发音,在不同的上下文中预测的文字内容应该不一样的。如果上文是“我喜欢吃”,接下来“鸡”的概率应该更高,同理如果上文是“他手臂有”,接下来“肌”的概率应该更高。如果通过 CTC 训练,很容易就会在忽略上文的前提下,输出“我喜欢吃肌肉”这样好笑的文本。

2.从建模的视角来看,Attention-based 模型和 RNN-Transducer 模型根据输入和之前时间步的输出预测当前时间步的输出,而 CTC 模型仅仅利用输入来预测当下的输出,在 CTC 模型的建模过程中,文本信息仅仅是作为一种监督信号回传给网络,并没有作为网络的输入显式促进模型的预测。

我们希望能在保留 CTC 解码效率的同时,尽可能地解决以上两点劣势。于是,我们想从 CTC 模型本身出发,设计轻量级的模块给基于 CTC 的模型引入文本信息,使得模型能够整合声学和文本信息,学习到文本序列上下文之间的相互作用,从而缓解 CTC 算法的条件独立性假设。但过程中,我们碰到了两个问题:如何在CTC模型(Encoder +CTC 结构)里注入文本信息?如何自适应地融合文本特征和声学特征?

为了实现上述目标,我们设计了 Gated Interlayer Collaboration(简写为GIC)机制。GIC 模块主要包含一个嵌入层(embedding layer)和一个门控单元(gate unit)。其中,嵌入层用于生成每一音频输入帧的文本信息,门控单元用于自适应地融合文本信息和声学信息。

具体地,我们的方法基于多任务学习(Multi-task Learning)框架,利用编码器模块(Encoder)中间层的输出计算辅助 CTC loss,整个网络的目标函数是最后一层的 CTC loss 和中间层辅助 CTC loss 的加权和。GIC 将网络中间层的预测,即 Softmax 输出的概率分布作为每一帧的软标签,点乘嵌入层矩阵之和作为每一帧的文本表征。最后,生成的文本表征和声学表征通过一个门控单元自适应地融合,成为一个新特征输入到下一层。此时的新特征融合了文本特征和声学特征,使得下一层的 Encoder 模块可以学习到声学序列上下文信息和文本序列上下文信息。整个模型的框架如下图所示:

在 Conformer 和 Transformer 这两个模型上的实验表明:

1. GIC 同时支持汉语和英语的场景识别,同时准确度均取得了显著的性能提升;

2. GIC 模型性能超过了同参数规模的 Attention-based 和 RNN-transducer 模型,并且具有非自回归解码的优势,带来数倍的解码速度提升

3. 相对原始的 CTC 模型,GIC 在多个开源数据集有远超 10% 的相对性能提升

Conformer 上的数据表现

Transformer 上的数据表现

GIC 为 CTC 模型的性能带来了很大的提升。相对原始的 CTC 模型,GIC 模块大约带来 2M 的额外参数,其中,计算中间层辅助 CTC loss 所用的线性层与最后一层是共享的,不会带来额外的参数。多个中间层共享嵌入层,带来 256*5000 约等于 1.3M 的参数。除此之外,多个门控单元的参数是 256*256*2*k,合计约 0.6M 的额外参数量。

论文中的 GIC 已经应用在了网易易盾的内容审核业务中。

作为网易智企旗下一站式数字内容风控品牌,易盾长期专注于数字内容安全风控和反垃圾信息的技术研发和创新。其中,针对以声音作为载体的数字内容,易盾提供了多种音频内容审核引擎,包括歌曲、广播、电视节目、直播等各种类型的音频内容,及时检测和过滤含有敏感、违规、低俗,广告内容的语音,从而减少不良内容的社会影响,营造良好的网络环境。

针对有具体语义内容的音频,易盾通过语音识别技术将音频文件中的语音内容转写为文字内容,再利用检测模块分析和处理文本,从而实现对音频内容的自动化审核和过滤。因此,语音识别的准确率与音频内容的审核效率和准确性是息息相关的,会直接影响到客户开展业务的安全与稳定。

论文中的 GIC 在内容审核中的应用取得了显著的效果提升。在实际的应用过程中,需要调试的超参数有两个,分别是多任务学习系数 lambda 和中间层层数 k。在 18 层编码器结构中我们发现 k=5,lambda=0.5 有较好的实验效果。接着,我们会从这个设置开始尝试,不断微调以确定最优的超参数。

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

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

相关文章

UnityVR--组件10--UGUI简单介绍

目录 前言 UI基础组件 1. Canvas 2. EventSystem 3. Image 4. Text/TextMeshPro/InputField 5. Button控件 其他 前言 UGUI是Unity推出的新的UI系统,它与Unity引擎结合得更紧密,并拥有强大的屏幕自适应和更简单的深度处理机制,更容易使用和…

从零开始:安装H2数据库的步骤解析

在开发或编写示例时,有时需要用到数据库,如果本机上刚好没有安装,类似有些同学是临时借用的电脑或学校的电脑刚好没有安装时,我们可以使用H2数据库来快速代替,即方便又灵活。 安装和使用H2数据库的步骤如下&#xff1a…

【vue3】11-Vue 3中的Composition Api(一)

Vue3 - composition Api 前言options Api的弊端 认识composition ApiSet up函数的基本使用set up函数的参数set up函数的返回值 Set up中数据的响应式1. Reactive API2. Ref API3. ref和reactive的开发 setup中的其他函数(了解)setup中禁用this 前言 op…

Ansible自动化运维工具的初步了解及模块使用

1.Ansible的相关知识 1.1 Ansible工具的了解 Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。Ansible能…

tp6安装并使用rabbitMQ

最近因为业务需要,要用到MQ就去研究了一下,说实话,安装环境给我搞自闭了,大概是我太菜 刚开始使用yum换源,各种安装卸载始终找不到自己要用的版本,后来全部卸载,下载安装包 编译安装解百忧 我用的是erlang 25.3 的版本,MQ使用的是3.11.3的版本,符合官方要求,这里的版本是有强…

智能果树叶部疾病识别实践,基于HOG+SVM和轻量级的CNN模型分别开发构建苹果果树叶部疾病识别分析系统

在农业领域中,将机器学习和深度学习模型结合应用有着广泛的实用意义,在这块相关的实践中以往的项目开发实践则是主要集中在农作物种植相关的,今天本文的主要目的就是开发构建果树叶部疾病识别分析系统,这里是以苹果果树叶部疾病数…

springcloud环境搭建

目录 1、创建一个父项目 ​编辑 2、创建子项目 2.1创建订单系统-order ​编辑 2.2创建库存系统-stock 3、创建rest服务 3.1添加web依赖 3.2编写controller 3.3订单中需要调用库存中的扣减库存的接口 通过idea开发工具进行搭建 1、创建一个父项目 通过spring initializr…

Django基础入门:后台管理 超级用户 数据表注册操作③

Django基础入门:后台管理 超级用户 数据表注册操作③ Django Admin数据表后台管理超级用户数据表注册admin操作日志 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️:Python领域新星创作者,CSDN实力新星…

使用randoop自动化生成测试用例

1. 综述 使用randoop自动化生成测试用例 2. 操作 下载randoop的jar包;将jar包和所要测试的类(如Calculate.class)放在同一个文件夹;在此文件夹打开命令行提示符,输入如下命令: java -ea -classpath .;ra…

嵌入式Linux驱动开发 05:阻塞与非阻塞

文章目录 目的基础说明开发准备驱动程序应用程序 O_NONBLOCK应用程序驱动程序程序演示 poll应用程序驱动程序程序演示 异步通知应用程序驱动程序程序演示 总结 目的 不管在应用开发还是驱动开发中阻塞和非阻塞都是绕不开的话题。这篇文章将介绍相关的基础内容。 这篇文章中内…

Redis命令-认识NoSQl和Redis常见的通用命令

1. 认识NoSQL 非关系型数据库 NoSQL是指一类非关系型数据库,它们采用的数据模型不同于传统的关系模型,它通常使用键值对、文档、图形等非传统的数据结构进行数据存储,不遵循预定义的模式和模型。NoSQL数据库通常分布式、高可扩展性&#xff0…

理解Java ThreadLocal

原文链接 理解Java ThreadLocal ThreadLocal是Java提供的为每个线程存储线程独立的数据的存储方式,也就是说用ThreadLocal来保存的数据,只能被当前线程所访问,其他线程无法访问,因为只有(一个线程)当前线程…

六级备考6天|CET-6|听力第五六讲|6月11日|19:44~20:07

目录 第五讲 第六讲 第五讲 第六讲 ​​​​​​​

支付宝认证的作用是什么?考试方向有哪些?

通过考证书来提升自己的能力,是现在的打工人经常会做的事,而对于从事信息通信技术行业的人来说,可以选择的证书非常多,其中支付宝认证是一个新设立的证书,但是实用性非常高。支付宝作为我们生活中常用的软件&#xff0…

arthas 的初使用

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信…

PD QC诱骗取电应用IC《乐得瑞LDR6328S》广泛应用于各大小家电

随着现在智能家居的应用越来越广泛,带电池的产品一天比一天多,今天这篇文章就来讲一下那些支持快速充电(PD QC)的产品应用电路是怎么实现的 USB PD受电端取电芯片(乐得瑞取电受电)LDR6328S 支持多协议快充取电! 1、概述 LDR6328S…

推荐5款你可能没见过的效率软件

你有没有想过,有些软件能让你的电脑用起来更方便,更快,更好看?这篇文章就为你介绍了五款这样的软件,它们分别是BreeZip,ClipClip,燃精灵,Sticky Notes和Tabby。下面我们来看看它们都…

增强 Kubernetes 可观测性:API Server Tracing 特性已到达 Beta 版本

标题 在分布式系统中,很难弄清楚问题在哪里。 想象一个场景,这也是 Kubernetes 集群管理员最常遇到的问题,Pod 无法正常启动,这时候作为管理员,我们会先去思考这可能是哪个组件出了问题,然后去对应的组件查…

Parallel Desktop下的Centos 9 ping通网络,配置静态ip的全过程

目录 一、发现问题1. 找不到网卡配置文件2. 网络重启的命令一直无法执行成功 二、分析问题三、解决问题系统环境1. 打开网卡配置文件2. 修改ipv4配置3. 重载网卡配置文件4. ping通,可以正常上网了 四、疑问1. 如何确定自己是不是设置了静态ip2. DHCP是固定静态ip 的…