AI 看唇语,在嘈杂场景的语音识别准确率高达75%

news2024/9/22 15:40:44

事实上,研究表明视觉线索在语言学习中起着关键的作用。相比之下,人工智能语言识别系统主要是建立在音频上。而且需要大量数据来训练,通常需要数万小时的记录。

为了研究视觉效果,尤其是嘴部动作的镜头,是否可以提高语音识别系统的性能。Meta 的研究人员开发了 Audio-Visual Hidden Unit BERT (AV-HuBERT),这是一个通过观看学习和听人们说话来理解语言的框架。

Meta 声称 AV-HuBERT 比使用相同数量转录量的最佳视听语音识别系统准确率高 75%。此外,该公司表示,AV-HuBERT 使用十分之一的标记数据优于以前最好的视听语言识别系统,这使得它可能对音视频数据很少的语言具有潜在的用途。

Meta AI 研究科学家 Abdelrahman Mohamed 表示:“在未来,像 AV-HuBERT 这样的 AI 框架可用于提高语音识别技术在嘈杂的日常条件下的性能,例如,在聚会上或在熙熙攘攘的街头中进行的互动。智能手机中的助手、增强现实眼镜和配备摄像头的智能扬声器,例如 Alexa Echo Show 也可以在这项技术中受益。”

目前,Meta 已将相关代码开源到 GitHub。

AV-HuBERT

Meta 并不是第一个将人工智能应用于读唇语问题的公司。2016年,牛津大学的研究人员创建了一个系统,该系统在某些测试中的准确率几乎是经验丰富的唇读者的两倍,并且可以实时地处理视频。2017年,Alphabet 旗下的 DeepMind 在数千小时的电视节目中训练了一个系统,在测试集上可以正确翻译约 50%的单词而没有错误,远高于人类专家的 12.4%。

但是牛津大学和 DeepMind 的模型,与许多后续的唇读模型一样,在它们可以识别的词汇范围内受到限制。这些模型还需要与转录本配对的数据集才能进行训练,而且它们无法处理视频中任何扬声器的音频。

有点独特的是, AV-HuBERT 利用了无监督或自我监督的学习。通过监督学习,像 DeepMind 这样的算法在标记的示例数据上进行训练,直到它们可以检测到示例和特定输出之间的潜在关系。例如,系统可能会被训练在显示柯基的图片时写出单词「dog」。然而,AV-HuBERT 自学对未标记的数据进行分类,处理数据以从其固有结构中学习。

AV-HuBERT 也是多模态的,因为它通过一系列的音频和唇部动作提示来学习感知语言。通过结合说话过程中嘴唇和牙齿的运动等线索以及听觉信息,AV-HuBERT 可以捕捉这两种数据类型之间的细微关联。

最初的 AV-HuBERT 模型在 30 小时的 TED Talk 视频上进行了训练,大大少于之前最先进模型的 31,000 小时的训练时间。但是,尽管在较少的数据上进行了训练,AV-HuBERT 的单词错误率 (WER)(衡量语音识别性能的指标)在可以看到但听不到说话者的情况下略好于旧模型的 33.6%,前者为 32.5%。(WER 的计算方法是将错误识别的单词数除以总单词数;32.5% 转化为大约每 30 个单词出现一个错误。)在 433 小时的 TED 演讲训练进一步将 AV-HuBERT 的 WER 降低到 28.6%。

一旦 AV-HuBERT 很好地了解了数据之间的结构和相关性,研究人员就能够在未标记的数据上进一步训练它。上传到 YouTube 的 2,442 小时名人英语视频,这不仅使 WER 下降到 26.9%,而且 Meta 表示,它表明只需要少量标记数据来训练特定应用程序(例如,当多人同时说话时)或不同语言的框架。

事实上,Meta 声称当背景中播放响亮的音乐或噪音时,AV-HuBERT 在识别一个人的语音方面比纯音频模型好约 50%,当语音和背景噪音同样响亮时,AV-HuBERT 的 WER 为 3.2%,而之前的最佳多模式模型为 25.5%。

潜在的缺点

在许多方面来看,AV-HuBERT 象征着 Meta 在用于复杂任务的无监督、多模式技术方面不断增长的投资。

Meta 表示 AV-HuBERT 可以为开发“低资源”语言的对话模型开辟可能性。该公司建议,AV-HuBERT 还可用于为有语言障碍的人创建语音识别系统,以及检测深度伪造和为虚拟现实化身生成逼真的嘴唇运动。

在各方面数据上,新方法的变现着实很精彩,但也有学者有一些担忧。

其中,华盛顿大学的人工智能伦理学专家Os Keye就提到,对于因患有唐氏综合征、中风等疾病而导致面部瘫痪的人群,依赖读唇的语音识别还有意义吗?

在微软和卡内基梅隆大学的一篇论文中,提出了人工智能公平性研究路线图,指出类似于 AV-HuBERT 的面部分析系统的某些方面可能不适用于患有唐氏综合症、软骨发育不全(损害骨骼生长)和“导致特征性面部差异的其他条件”等。

Mohamed 强调 AV-HuBERT 只关注唇部区域来捕捉唇部运动,而不是整个面部。他补充说,与大多数 AI 模型类似,AV-HuBERT 的性能将“与训练数据中不同人群的代表性样本数量成正比”。

“为了评估我们的方法,我们使用了公开可用的 LRS3 数据集,该数据集由牛津大学研究人员于 2018 年公开提供的 TED Talk 视频组成。由于该数据集不代表残疾说话者,因此我们没有预期性能下降的特定百分比,”Mohamed 说。

Meta 表示,它将“继续在背景噪声和说话者重叠很常见的日常场景中进行基准测试和开发改进视听语音识别模型的方法。”

参考链接:

https://venturebeat.com/2022/01/07/meta-claims-its-ai-improves-speech-recognition-quality-by-reading-lips/

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

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

相关文章

关于MySQL镜像构建过程中添加自动初始化数据库

需求描述一般而言,我们在拉取了 mysql 镜像并运行之后,其中的并不会存在我们自定义的数据库,都是在镜像运行后,自己主动导入数据库,那么有没有方式可以一运行 mysql 镜像,对应生成的 mysql 容器中就有我们自…

STM32 OTA应用开发——自制BootLoader

STM32 OTA应用开发——自制BootLoader 目录STM32 OTA应用开发——自制BootLoader前言1 环境搭建2 BootLoader工作原理以及常见分区介绍3 BootLoader的制作4 烧录下载配置5 运行测试结束语前言 什么是OTA? 百度百科:空中下载技术(Over-the-Ai…

【Java基础】IO流

IO流 最后一定要关闭流,防止资源泄露 字节流 一次读取1字节,8比特 FileInputStream import org.junit.jupiter.api.Test;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;public class CopyBytes {pub…

2023最新网络工程师面试大全,全都答得上offer绝对拿到手软

一、目录 TCP和UDP都可以实现客户端/服务端通信,这两个协议有何区别? 是第几层的协议,其作用是什么? 请说一下FTP,SSH,TELNET,DNS,HTTP,HTTPS,SMTP协议的端口…

我的三周年创作纪念日——学习不止,创作不停

机缘 最开始写文章博客,是为了用输出倒逼自己输入。 从校园离开后,才逐渐意识到学习的不容易。没有写好的教材课程、没有画好的考点重点,没有一起学习的同学,更没有明确的学习方向和路径。 数据分析方向可以学的东西太多了&…

SUMO安装并实现交通仿真Demo

sumo简介sumo是一种开源,微观,多模态的交通模拟仿真软件,每辆车都是明确建模的,有自己的路线,并在网络独立移动下载安装sumo前往sumo官网下载,如下图红色标注所示,一键安装。实现Demo3.1加载道路文件.net.x…

软件工程学习

文章目录前言软件特点分类软件工程软件危机项目管理工具总结前言 本博客仅做学习笔记,如有侵权,联系后即刻更改 科普: 软件 软件的定义 软件不是程序,而是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。 特点 …

100份简历才找一个合适的,2023,软件测试岗位饱和了吗?

各大互联网公司的接连裁员,政策限制的行业接连消失,让今年的求职雪上加霜,想躺平却没有资本,还有人说软件测试岗位饱和了,对此很多求职者深信不疑,因为投出去的简历回复的越来越少了。 另一面企业招人真的…

为什么启动一个线程不用run()方法,而是用start()方法

在使用java多线程时,有三种方式创建线程 复习传送门 当使用继承Thread来实现多线程时, 我们会把线程执行的代码写在run() 方法中, 使用Thread的start()方法来启动一个线程。 代码如下: public class ThreadDemo extends Thread{O…

RocketMQ快速入门:消息发送、延迟消息、消费重试

一起学编程,让生活更随和! 如果你觉得是个同道中人,欢迎关注博主gzh:【随和的皮蛋桑】。 专注于Java基础、进阶、面试以及计算机基础知识分享🐳。偶尔认知思考、日常水文🐌。 目录1、RocketMQ消息结构1.1…

算法训练营 day50 动态规划 单词拆分 多重背包理论基础

算法训练营 day50 动态规划 单词拆分 多重背包理论基础 单词拆分 139. 单词拆分 - 力扣(LeetCode) 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词…

佳能iC MF645CX彩色激光多功能打印机报E302-0001故障码检修

故障现象: 一台佳能iC MF645CX彩色激光多功能一体机开机报E302-0001故障代码,如果设备未恢复,请联系经销商或客户支持中心。 维修分析: 佳能iC MF645CX彩色激光多功能一体机开机报E302-0001故障代码的

java中NumberFormat 、DecimalFormat的介绍及使用,java数字格式化,BigDecimal数字格式化

文章目录前言一、NumberFormat1、概述2、实例化方法3、货币格式化4、百分比格式化5、NumberFormat的坑5.1、不同的格式化对象处理相同数值返回结果不同问题源码分析:二、DecimalFormat1、概述2、常用方法3、字符及含义0与#的区别分组分隔符的使用“%” 将数字乘以10…

Python 基本数据类型(二)

1. 列表 列表是 Python 最常用的数据类型,它是有序元素的集合,元素之间以逗号分隔,用中括号括起来,可以是任何数据类型。同时它也是一种序列,支持索引、切片、加、乘和成员检查等。 **数组:**数据类型必须…

程序员的接单外卖平台

今天王同学给大家安利一款非常实用并且能接单的一款非常好的平台—— 独自开 独自开的功能非常之多 简直不要太香~ 集成第三方数学接口,形成标准化解决方案,提供开发者调用 支付分账功能电子签单功能税务接口硬件接口 独自开的开发功能简直不要太多~ 如…

LinkedList集合对元素进行增、查、删操作

ArrayList集合在查询元素时速度很快,但在增删元素时效率较低,为了克服这种局限性,可以使用List接口的另一个实现类LinkedList。LinkedList集合内部包含有两个Node类型的first和last属性维护一个双向循环链表,在链表中的每一个元素…

Python机器学习入门笔记(3)—— 线性回归

目录 线性回归 算法简述 LinearRegression() API SGDRegressor API LinearRegression() 和 SGDRegressor对比 过拟合与欠拟合 岭回归 应用场景 线性回归 算法简述 线性回归是一种基本的机器学习算法,它用于建立自变量和因变量之间的线性关系模型。它假设…

【Linux系统】第七篇:Linux调试器gdb的使用

文章目录一、gdb简介二、gdb的安装三、gdb使用3.1、release和debug版本3.2、gdb基本使用命令1、启动gdb2、调试命令3、显示代码(list)4、断点命令(breakpoint)5 、变量命令(variable)6、特殊调试命令7、调用…

企业微信的聊天机器人来了,免费下载(Python版)

大家好,这里是程序员晚枫,个人网址:python-office.com 上次分享了微信机器人的视频以后,视频下面有一个热门评论: 什么时候开发企业版微信机器人?自动回复、自动群发等等~ 在经历了一段时间的查找和开发以…

Github隐藏功能:显示自己的README,Github 个人首页的 README,这样玩儿

内容概览 前言创建仓库修改 README 的内容总结前言 大家最近有没有发现这个现象,有些名人的 Github 首页变得更丰富了?尤其是那个夺目的 README 板块!!! 请看,这是 iOS 喵神 的 Github 首页: …