论文阅读_语音识别_Wisper

news2025/3/13 13:30:46
英文名称: Robust Speech Recognition via Large-Scale Weak Supervision
中文名称: 通过大规模弱监督实现鲁棒语音识别
链接: https://proceedings.mlr.press/v202/radford23a.html
代码: https://github.com/openai/whisper
作者: Alec Radford, Jong Wook Kim, Tao Xu, Greg Brockman, Christine McLeavey, Ilya Sutskever
机构: OpenAI
日期: 2022-12-06
引用次数: 1032

1 读后感

语音识别不仅用于语音输入、语音聊天,生成字幕,还在语音合成,视频分析等等领域作为工具使用,一方面需要识别不同语音,不同发音人的音频特征,还需要生成合理通顺的文本(选择多音字,标点)等等。

Whisper 是 OPENAI 提供的语音转文字的引擎,它是一个开源工具,在自己的 GPU 机器上也能搭建。Wisper 是一个多语音识别引擎,简单用过,感觉对中文识别还是很好的。下面介绍 Whisper 的实现原理。

论文使用非常大量弱监督的标注数据训练模型,这里的弱监督包含大量多语言多任务的数据,以提升语音识别的准确性和稳健性,达到与有监督微调模型同等的识别效果。其底层逻辑是使用多任务训练能提升模型的鲁棒性。

2 摘要

目标:扩展弱监督语音识别的范围,减小弱监督和有监督学习的差距。使模型不再需要根据情境精调,就可以在广泛的环境中“开箱即用”可靠地工作。

方法:通过大量多语言多任务的语音数据,利用弱监督方法,训练不需要精调的语音识别模型。

结论:当扩展到 680,000 小时的多语言和多任务监督时,生成的模型可以很好地推广到标准基准,无需任何数据集特定的微调,即可与有监督学习的结果竞争,达到了与人类接近的准确性和稳健性。

3 引言

之前的方法是使用有监督数据训练模型,约需要 1000+ 小时标注数据;而 Wav2Vec 2.0 的技术使用 1,000,000 小时的无标注数据预训练模型,再用少量标注精调模型;它的表现已经超越了之前的最好水平,特别适用在标注数据较少的情况下。

无监督数据主要训练编码器,能很好地实现音频表征,但缺乏将表征映射到可用输出的解码器,所以需要微调才能实现语音识别等任务。但在一个数据集上精调的模型往往难以泛化到其它数据集上,由此限制了模型的实用性和鲁棒性。

实验证明,与在单个数据源上训练的模型相比,在多数据集/域中以监督方式进行预训练的语音识别系统表现出更高的鲁棒性,在图像领域的应用也证明了,更大的弱监督数据集显着提高了模型的鲁棒性和泛化性。

文中提出的构建 Whisper 模型工程中,将弱监督语音识别扩展了一个数量级,达到 680,000 小时的标记音频数据。并展示了在这种规模上训练的模型可以很好地转移到现有数据集零样本,无需任何特定于数据集的微调即可获得高质量的结果。

除了数据量,训练范围还从纯英语语音识别扩展到多语言和多任务,680,000 小时的音频中,117,000 小时涵盖 96 种英语外的其他语言,以及 125,000 小时的翻译数据;并证明联合多语言和多任务训练没有缺点,甚至有好处。另外,文中 Whisper 没有使用自监督方法。

4 方法

image.png

4.1 数据预处理

利用 sequence-to-sequence 模型在语音和对应的转录文本(音频转文本)之间进行映射,训练 Whisper 模型来预测音频对应的原始文本,而无需任何显著的标准化或预处理。

多样化的数据集,涵盖了来自许多不同环境、录音设置、扬声器和语言的广泛音频分布。虽然音频质量的多样性可以帮助训练模型变得稳健,但转录质量的多样性却没有好处,因此,使用过滤方法以得到高质量的转录。例如:检测并删除机器生成的转录本;使用音频语言检测器,保证音频和文本使用的语言一致,或者作为 X->en 翻译数据使用;还使用转录文本的模糊去重复来减少训练数据集中的重复量和自动生成的内容。

将音频文件分成 30 秒的片段,并与该时间片段内发生的转录子集配对。

4.2 模型

使用现成的架构来避免将文中验证与模型改进混淆。选择了具有“编码器 - 解码器”结构的 Transformer 模型结果。

音频被重新采样到 16,000 Hz,并且在 25 毫秒窗口上以 10 毫秒的步幅计算 80 通道对数梅尔频谱图表示。对于特征归一化,将输入全局缩放到 -1 到 1 之间,预训练数据集中的均值近似为零。

网络结构如图 -1 所示,编码器和解码器具有相同的宽度和 block 数量,音频数据转换成梅尔频谱图,再经过两个卷积层后送入 Transformer 模型。

使用 GPT-2 中的字节级 BPE 文本标记器来处理英语模型,并为多语言模型重新调整词汇表,因此也适用于其他语言。

4.3 多任务

完整的语音处理系统除了语音识别之外还涉及许多组件,从而形成一个相对复杂的交互部件系统。

由于可以对同一输入音频信号执行许多不同的任务:转录、翻译、语音活动检测、对齐和语言识别,将所有任务和条件信息指定为解码器的输入标记序列(见图 -1 右上的黄色块)。并以转录文本的历史为条件,希望它能够学习文本上下文来解决不明确的音频(Decoder 模块以之前文本作为输入)。

实际训练时,首先,使用 VoxLingua107 模型预测音频的语言,写入输入标记,加入任务标记,再指定是否预测时间戳,然后是数据。图中灰色部分展示了有时间戳处理的差异。

4.4 训练

训练了一套模型,以研究 Whisper 参数范围从 39M 到 1550M 的扩展特性。模型具体参数见论文附录,对比效果见实验部分。不使用任何数据增强或正则化,而是依靠如此大的数据集中包含的多样性来鼓励泛化和鲁棒性。

5 实验

Whisper 的目标是开发一个单一的强大语音处理系统。因此,实验的目的是检查 Whisper 是否能够很好地跨领域、任务和语言进行泛化。因此测试时不使用任何训练数据集,只在 zero-shot 设置中评估 Whisper,以衡量其强大的泛化能力。

语音识别研究通常根据词错误率(WER)指标评估系统。然而,WER 惩罚模型输出与参考文本之间的所有差异,包括文本风格上的无害差异。这个问题对于像 Whisper 这样的零样本模型尤为严重。在 WER 计算之前通过文本标准化来解决这个问题,以尽量减少非语义差异的惩罚。

人们常常需要在对所研究的特定数据几乎没有或完全没有了解的情况下完成任务。所以,人类的表现实际上是一种衡量如何在新的、未知的情况下进行推理和解决问题的能力。这就解释了为什么在特定测试中人类评分不如模型,但在实际环境中超过模型的问题。

Whisper 模型是在广泛和多样化的音频分布上进行训练并在零样本设置中进行评估的,能比现有系统更好地匹配人类行为。具有高有效鲁棒性的模型在分布外数据集上的表现优于预期,其表现取决于参考数据集上的表现,并接近于在所有数据集上表现相等的理想状态。

零样本 Whisper 模型具有与监督 LibriSpeech 模型非常不同的鲁棒性特性,并在其他数据集上远远超过所有基准 LibriSpeech 模型。与图 2 中的人类相比,最佳的零样本 Whisper 模型大致匹配其准确性和鲁棒性。

image.png

6 分析和消融

6.1 数据规模

图 -4 展示了训练规模与效果之间的关系,如在英语语音识别方面,从 3,000 小时到 13,000 小时,性能迅速提高,然后在 13,000 小时到 54,000 小时之间明显放缓。对于多语言语音识别,WER 的改进在 54,000 小时之前平稳增长,然后减少。对于 X→en 翻译,当训练 7,000 小时或更少的音频时,性能几乎为零,然后在 54,000 小时之前以大致对数线性的方式改善,之后再进一步扩展到完整数据集大小时也显示出收益递减。

6.2 模型规模

除了英语语音识别之外,多语言语音识别、语音翻译和语言识别的性能随着模型大小的增加而不断提高。英语识别的回报递减可能是由于接近人类水平表现的饱和效应所致。

6.3 多任务和多语言迁移

对于使用适量计算资源训练的小型模型,任务和语言之间确实存在负迁移:然而,对于最大的模型来说,它们优于仅英语训练,展示了来自其他任务的正迁移。

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

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

相关文章

基于协同过滤的时尚穿搭推荐系统

项目:基于协同过滤的时尚穿搭推荐系统 摘 要 基于协同过滤的时尚穿搭推荐系统是一种能自动从网络上收集信息的工具,可根据用户的需求定向采集特定数据信息的工具,本项目通过研究服饰流行的分析和预测的分析和预测信息可视化时尚穿搭推荐系统…

2024免费人像摄影后期处理工具Portraiture4.1

Portraiture作为一款智能磨皮插件,确实为Photoshop和Lightroom用户带来了极大的便利。通过其先进的人工智能算法,它能够自动识别并处理照片中的人物皮肤、头发和眉毛等部位,实现一键式的磨皮美化效果,极大地简化了后期处理的过程。…

STM32下载后需要复位

下载后需要复位才能自动运行程序,需要以下两步 STEP1 STEP2 一个勾选,一个不勾选。

乡政府|乡政府管理系统|基于Springboot的乡政府管理系统设计与实现(源码+数据库+文档)

乡政府管理系统目录 目录 基于Springboot的乡政府管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、活动信息管理 3、新闻类型管理 4、新闻动态管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推…

内存块与内存池

(1)在运行过程中,MemoryPool内存池可能会有多个用来满足内存申请请求的内存块,这些内存块是从进程堆中开辟的一个较大的连续内存区域,它由一个MemoryBlock结构体和多个可供分配的内存单元组成,所有内存块组…

JAVA之Java线程核心详解

Java线程核心 1.进程和线程 进程:进程的本质是一个正在执行的程序,程序运行时系统会创建一个进程,并且给每个进程分配独立的内存地址空间保证每个进程地址不会相互干扰。同时,在 CPU 对进程做时间片的切换时,保证进程…

Java 抽象容器类源码剖析

总体介绍 抽象容器类接口和具体容器类的关系如图所示,顶层包括Collection、List、Set、Queue、Deque和Map6个抽象容器类。 AbstractCollection:实现了Collection接口,被抽象类AbstractList、AbstractSet、AbstractQueue继承,Arra…

飞天使-k8s知识点19-kubernetes实操4-资源调度 标签和选择器:Label与Selector的使用-版本回退

文章目录 添加label资源调度 Deployment:创建与配置文件解析rs pod deploy 的关联信息展示Deployment:滚动更新Deployment:回滚回退版本实际操作 添加label [rootkubeadm-master1 test]# kubectl get pod NAME …

OpenCV Mat实例详解 四

OpenCV Mat实例详解三中详细介绍来了OpenCV Mat类的公有静态成员函数,下面介绍OpenCV Mat类的其他常用成员函数。 OpenCV Mat类常用成员函数 Mat & adjustROI (int dtop, int dbottom, int dleft, int dright); dtop ROI 上边界移动值,如…

Java实现新能源电池回收系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…

LabVIEW智能监测系统

LabVIEW智能监测系统 设计与实现一个基于LabVIEW的智能监测系统,通过高效的数据采集和处理能力,提高监测精度和响应速度。系统通过集成传感器技术与虚拟仪器软件,实现对环境参数的实时监测与分析,进而优化监控过程,提…

一些配置问题记录

真的很感慨 为什么一开始的下载的软件还能用 卸载或重装后的软件总是存在各种各样的错误 真令人心烦 GNURADIO运行简单的采集信号程序报错, 其实不太理解为什么会出现这类错误,解决方法为 安装 jackd2 软件包,然后尝试手动启动 Jack 服务器…

通过玩游戏学会AWS

游戏名字: Cloud Quest 类型:亚马逊云科技官方出了一款 3D 角色扮演、虚拟城市建造形式的游戏实验课 进入方法:浏览器搜索 Cloud Quest(或扫描下方二维码)进入 Cloud Quest 课程页。 选择以下的链接 点击进行注册 进…

力扣题目训练(12)

2024年2月5日力扣题目训练 2024年2月5日力扣题目训练476. 数字的补数482. 密钥格式化485. 最大连续 1 的个数148. 排序链表164. 最大间距 2024年2月5日力扣题目训练 2024年2月5日第十二天编程训练,今天主要是进行一些题训练,包括简单题3道、中等题2道和…

21种matlab信号分解方法汇总

21中信号分解方法汇总 CEEMD(互补集合经验模态分解)CEEMDAN(自适应噪声完备集合经验模态分解) EEMD(集合经验模态分解)EMD(经验模态分解)ESMD(极点对称模态分解)EWT(经验小波变换分解)FEEMD(快速EEMD分解)ICEEMDAN(改进自适应噪声完备集合经验模态分解)L…

微波炉维修笔记

微波主要是靠2.45GHz 左右的微波(12.2cm 波长)加热水分子实现食物加热 所有不要使用金属器皿进行加热,要么因为电磁屏蔽,起不到加热效果,要么火光四射 微波炉基本组成 借鉴姜师傅的视频 碰到不加热其它都正常的问题 1.检查高压电容 使用万…

安装luajit及使用python运行lua脚本

使用Python运行lua脚本前,需要先安装LuaJIT,LuaJIT的官网是下载 (luajit.org) 目前已不再使用.exe文件的下载方式,需要使用Git从公共仓库下载源码,git命令为: $ git clone https://luajit.org/git/luajit.git 下载后…

解决ubuntu登录密码问题

解决ubuntu登录密码问题 不要随便删除密码,不要随便改密码,很容导致密码过期,或者密码无效。参考了很多人的做法,都没有得到解决。下面的过程,够详细了,我就是这么搞好的。 1、重启虚拟机,不停…

数据的力量:构筑现代大型网站之数据库基础与应用

目录 数据库基础知识--前言 大型网站架构特点 DBA数据库管理员 什么是数据? 数据存储 什么是数据库 数据表的概念 为什么需要mysql这样的数据库管理工具?★ DBMS 收费数据库与免费数据库 运维和数据库 开发与运维的不同阶段 数据库类别 数据库具体应用…

数据结构第十六天(二叉树层序遍历/广度优先搜索(BFS)/队列使用)

目录 前言 概述 接口 源码 测试函数 运行结果 往期精彩内容 前言 从前的日色变得慢,车,马,邮件都慢,一生,只够爱一个人。 概述 二叉树的层序遍历可以使用广度优先搜索(BFS)来实现。具体步骤如下&…