论文阅读笔记:Hearing Lips Improving Lip Reading by Distilling Speech Recognizers

news2024/10/5 13:34:46

目录

论文链接

研究背景

 LIBS 的整体框架

序列级知识蒸馏

上下文级知识蒸馏

最长公共子序列 (LCS)

帧级别知识蒸馏 

论文链接

[1911.11502] Hearing Lips: Improving Lip Reading by Distilling Speech Recognizers (arxiv.org)

研究背景

       这篇文章针对由于唇语识别动作具有模糊性,提取判别特征比较困难,所以唇语识别的性能不如语音识别的问题提出了LIBS方法,通过学习语音识别器来加强唇语识别,给定一个预先训练好的语音识别器,然后从语音识别器中提取特征,作为补充线索来帮助唇读器的训练,分为序列级别、上下文级别和帧级别来进行知识蒸馏。

 LIBS 的整体框架

       LIBS 的整体框架,教师处理语音识别,学生网络处理唇读,语音识别器和唇读器都基于注意力的序列到序列架构。

       唇读器输入视频帧序列xv,y是目标字符序列。预训练的语音识别器读入音频帧序列 x^a,输出预测的字符序列 y。同时,编码器隐藏特征ha、序列向量sa、上下文向量ca也可以得到,用来指导唇读器的训练。LIBS方法的训练目标就是最小化损失函数:

      其中 LKD1、LKD2 和 LKD3 构成多粒度知识蒸馏,分别工作在序列级、上下文级和帧级。 λ1、λ2 和 λ3 是相应的平衡权重。

序列级知识蒸馏

       序列级知识蒸馏,序列向量 s包含输入序列的语义信息,对于一个视频帧序列xv和它对应的音频帧序列xa,它们的序列向量sa和sv应该是相同的,因为它们是同一事物的不同表达。因此,序列级知识蒸馏表示为:

       t是一个简单的变换函数(例如线性或仿射函数),把特征嵌入到具有相同维度的空间中。

上下文级知识蒸馏

       对于上下文级知识蒸馏,当解码器在某个时间步预测一个字符时,注意力机制使用上下文向量来总结与当前输出最相关的输入信息。所以如果唇读器和语音识别器在该时间步预测相同的字符的话,上下文向量 cv 和 ca 应该包含相同的信息。所以上下文级别的知识蒸馏应该使得 cv 和 ca 相同。考虑到语音识别的句子可能不完善,RNN 计算具有顺序性,所以即使预测句子中有相同的字符,它们对应的上下文向量也会因为位置不同而不同。

最长公共子序列 (LCS)

       针对这个问题,文章中提出了一种基于最长公共子序列 (LCS) 的过滤方法来细化提取的特征。LCS 比较两个序列,找出两个序列中相同顺序的公共子序列,选择最长的序列。 因为LCS的公共子序列不一定是连续的,所以可以保留了字符之间的相对位置信息。

帧级别知识蒸馏 

       第三个级别是,帧级别知识蒸馏。因为知道视频和音频的对应关系后,如果直接将视频帧特征与对应的音频特征进行匹配的话,由于采样率不同,视频序列和音频序列长度不一致,并且数据的开头或结尾可能出现空白,就无法保证视频和音频严格同步。所以文章提出了通过首先学习视频和音频的对应关系,然后进行帧级别知识蒸馏的方法来解决这个问题。因为视频隐藏特征hv包含与音频特征ha 最相似的信息,并且语音信号包含与视觉信号互补的信息,所以使hv 和ha 相同可以增强唇读器提取视觉特征的能力。

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

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

相关文章

【观察】解码“一网统管”:城市治理“新范式”,推动数字城市建设迈向“新高度”...

众所周知,随着城市化进程加快,大量的人员、物资、技术和信息等要素日益向城市汇聚,城市系统变得越来越复杂,随之而来的社会问题和“城市病”也层出不穷,而传统的治理模式和治理手段越来越难以胜任日益复杂城市的管理需…

深聊丨第四范式陈雨强:如何用AI大模型打开万亿规模传统软件市场?

文丨亲爱的数据 谭婧 “GPT大模型到底能不能用?用在哪里?” 这是目前中国大型企业一把手最关心的问题之一。AI大模型也被媒体称为“一把手”工程。 大型企业会非常认真地考虑大模型的应用。最近个把月,大型企业客户对大模型的热烈反应让第四范…

进程状态以及两种特殊进程

目录 进程状态1 具体状态2 进程状态的意义3 进程状态实例3.1 R&S&T认识3.2 认识Z & 僵尸进程 & 孤儿进程僵尸进程孤儿进程 进程状态 为了弄明白正在运行的进程是什么意思,我们需要知道进程的不同状态。一个进程可以有几个状态(在Linux内…

==、equals区别 | java学习笔记

做一些java基础知识的记录📕 java基本类型:byte short int long float double char boolean(指向具体的数值) java引用类型:类 接口 数组等。指向的不是具体的数值,而是指向了对象的地址。 用于判断基本类…

JavaWeb|在IDEA中创建基于Maven的Web项目| Servlet依赖|这一篇就够了(超详细)

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:老茶icon 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计…

【c语言】详解c语言#预处理期过程 | 宏定义前言

c语言系列专栏&#xff1a; c语言之路重点知识整合 创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持…

微信小程序php+python+nodejs+vue大学生心理健康测试职位推荐系统

心理测试开发使系统能够更加方便学生捷&#xff0c;同时也促使心理测试变的更加系统化、有序化。系统界面较友好&#xff0c;易于操作。具体在系统设计上&#xff0c;客户端使用微信开发者&#xff0c;后台也使用php技术在动态页面上进行了设计&#xff0c;Mysql数据库&#xf…

算法 DAY44 动态规划6 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ

完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&#xff08;也就是可以放入背包多次&#xff09;&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 完全背包和01背包问题唯一不同…

Java每日一练(20230427)

目录 1. 螺旋矩阵 2. LRU 缓存机制 3. 解数独 &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#…

Leetcode——495. 提莫攻击

&#x1f4af;&#x1f4af;欢迎来到的热爱编程的小K的Leetcode的刷题专栏 文章目录 1、题目2、题目分析3、题解代码 1、题目 题目链接&#xff1a;Leetcode——495. 提莫攻击 在《英雄联盟》的世界中&#xff0c;有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希&…

国民技术N32G430开发笔记(1)-macos开发环境搭建

macos开发环境搭建 1、安装arm-none-eabi- 工具链 brew tap ArmMbed/homebrew-formulae brew install arm-none-eabi-gcc如果没有安装brew&#xff0c;请先安装brew。 2、安装vscode 3、安装pyocd a、python官网下载最新版的python b、pip3 install -U pyocd 我的开发板为N3…

Hadoop 1:Apache Hadoop、HDFS

Hadoop核心组件 Hadoop HDFS&#xff08;分布式文件存储系统&#xff09;&#xff1a;解决海量数据存储 Hadoop YARN&#xff08;集群资源管理和任务调度框架&#xff09;&#xff1a;解决资源任务调度 Hadoop MapReduce&#xff08;分布式计算框架&#xff09;&#xff1a;解决…

MyBatis的代理开发方式、动态sql语句和typeHandlers和plugins标签实战

文章目录 Mybatis的Dao层实现传统开发方式编写UserDao接口编写UserDaoImpl实现mapper文件测试传统方式 代理开发方式代理开发方式介绍编写UserMapper接口测试代理方式 MyBatis映射文件深入动态sql语句动态sql语句概述动态 SQL 之<if>动态 SQL 之<foreach>SQL片段抽…

信号处理的本质是什么?

信号处理的宗旨是“将信号中蕴涵的信息变得显然”&#xff0c;从数学角度分析, 信号即是某个物理量x的函数f(x), 信号所蕴含的信息需要通过此类函数予以揭示. 自然地可将f(x)投影到其所在空间中的一组基函数上, 由投影系数或加权系数来构成函数f(x)在变换域上的表示。在一定条件…

Nginx基本配置

文章目录 准备环境安装NginxNginx配置初始配置信息配置详解1. 全局块2. events 块3. http 块3.1 http 全局块3.2 server 块3.2.1 全局 server 块3.2.2 location 块 启动Nginx 参考资料 本教程讲述Nginx的基本配置和操作。首先需要安装 Nginx&#xff0c;关关于具体的安装方式&a…

输入网址url到网页显示,期间发生了什么?

当我们在浏览器输入一个网址后&#xff0c;知道网页显示在我们眼前&#xff0c;这一期间是如何发生的&#xff0c;接下来就将详细介绍在这期间发生的过程及使用的协议栈 1、浏览器解析URL并生产HTTP请求消息 URL是我们输入的网址信息&#xff0c;比如 https://www.taobao.com …

JavaScript 知识总结下篇(更新版)

91.实现一个 promise 参考链接&#xff1a;实现一个完美符合Promise/A规范的Promise Issue #4 forthealllight/blog GitHub function myPromise(constructor) {let self this;self.status "pending" // 定义状态改变前的初始状态self.value undefined;// 定义状…

c++调用java方法详解

当我们使用 Java程序调用C程序时&#xff0c;我们可以使用JAVA_HOME类来访问 Java虚拟机中的类&#xff0c;并使用其提供的方法来调用 Java方法。 使用JAVA_HOME类调用 Java方法时&#xff0c;可以在 JVM中直接操作 Java虚拟机。这个方法称为“直接访问”&#xff08;Direct Ac…

华为交换机配置telnet登录图文教程

一、配置交换机管理vlan和地址&#xff0c;配置交换机接口 1.关闭多余的信息提示&#xff1a; [Huawei]undo in en Info: Information center is disabled. [Huawei] 2.交换机配置 在工作中通过Telnet方式登录交换机进行设备登录管理能更加便利&#xff0c;不需要到机房里…

7.参数校验

在controller和service进行前端传参校验&#xff0c;保证存到数据库的数据是正确的 1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>这里无需…