论文阅读-Whisper语音识别(OpenAI)

news2025/1/6 20:13:49

一、论文信息

论文名称:Robust Speech Recognition via Large-Scale Weak Supervision

代码地址:https://github.com/openai/whisper

官方博客:https://openai.com/blog/whisper

作者团队:OpenAI

二、介绍

Whisper是一个通用语音识别模型。它是在各种音频的大型数据集上训练的,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。人工智能公司 OpenAI 开源了Whisper 自动语音识别系统,Open AI 强调 Whisper 的语音识别能力已达到人类水准。

Whisper 是一个自动语音识别(ASR,Automatic Speech Recognition)系统,OpenAI 通过从网络上收集了 68 万小时的多语言,其中11万小时覆盖96 种语言,12万小时的语言标号为英语,用多任务(multitask)监督数据对 Whisper 进行了训练。OpenAI 认为使用这样一个庞大而多样的数据集,可以提高对口音、背景噪音和技术术语的识别能力。除了可以用于语音识别,Whisper 还能实现多种语言的转录,以及将这些语言翻译成英语。

三、方法

Whisper体系结构是一种简单的端到端方法,实现为编码器-解码器Transformer。输入音频被分成30秒的片段,转换成log-Mel谱图,然后传入编码器。解码器被训练来预测相应的文本标题,并混合特殊标记,指示单一模型执行诸如语言识别、短语级时间戳、多语言语音转录和英语语音翻译等任务。

数据预处理

用了off-the-shelf结构,所有的音频从采样到16000Hz,再把它变成一个80通道的Log Scale Mel Spectrogram。将长为30s的语音信号变为3000个数据点,每个数据点上它的维度是80,最后将所有数值都放在-1和+1之间,它的均值大概也是0。

模型架构

  1. 序列到序列学习

模型输入长度(log-mel)为3000,特征维度为80。

2. 多任务 

  • 英文转录:输入一段英文语音转录为英文文字;

  • 任何语言语音到英文转录;

  • 任何语言语音转录成对应语言;

  • 输入一段背景音乐,判断无人说话。

3. 多任务流程 

4.  模型细节:不同层不同宽度不同头的个数。

四、实验

1. zero-shot:在很多其他语音数据集上评估whisper性能。

 2. 评估准则:WER 词错误率

假设要预测N个字母,错误率为预测的字母和真实的字母之间需要进行多少次修改。S为替换次数,D是多少次删除,I是多少次插入,如果全部正确则为0,C是正确词的个数。

3. 性能

  • X轴为在比较干净的语音数据集LibriSpeech的词错误率,Y轴为在别的数据集上的错误率,完美的模型一般表现为在两种数据集上错误率相似,但实际相差较远。

  • 多语言语音识别性能

  • Whisper模型在各个语言上的词错误率

X轴,每个语言在训练集中有多少小时的训练数据,Y轴对应的词错误率,当数据集成倍增长时,词错误率也是按比例下降,假设想把错误率往下降一倍,那么训练数据集需要增加16倍。在英语上的词错误率为5%,跟人有点近似了。但在中文、韩语、阿拉伯语上表现不那么明显,原因可能是和别的语言发音很不一样,且在Tokenizer上的设计不那么适合中文等语言。

  • 翻译性能

上图右,X轴为所有语言翻译的小时数,其中韩语较多,几万小时,但BLEU比中位线要差一点。

  • 语言识别性能:性能一般

  • 模型变大时在数据集上的效果

p1英语语音识别,从最小的38M到最大时,可以看到WER在下降。

p2多语言语音识别,整体也在下降。

p3翻译,效果也在上升。

p4语言识别,随着模型增大,精度有所提升。

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

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

相关文章

HAProxy实现负载均衡

目录 一、HAProxy介绍 二、环境准备 三、实验拓扑 四、HAProxy部署 五、配置HAProxy状态页面 一、HAProxy介绍 ha-proxy是一款高性能的负载均衡软件,主要是做7层负载均衡,也可以做4层负载均衡。因为其专注于负载均衡这一些事情,因此与ng…

8、如何使用FactoryBean向Spring容器中注册bean?

📫作者简介:zhz小白 公众号:小白的Java进阶之路 专业技能: 1、Java基础,并精通多线程的开发,熟悉JVM原理 2、熟悉Java基础,并精通多线程的开发,熟悉JVM原理,具备⼀定的线…

openEuler快速入门-openEuler命令行基础操作

系列文章目录 第一章 openEuler快速入门(一)-openEuler操作系统介绍 文章目录系列文章目录前言一、shell是什么二、Linux命令行操作技巧三、基础命令3.1、Linux命令分类3.2、目录和文件3.2.1 相对路径和绝对路径3.2.2 处理目录的常用命令ls:cd:pwd&…

tkinter绘制组件(36)——树状图

tkinter绘制组件(36)——树状图引言布局函数结构内容数据格式整体框架绘制元素与重绘宽度标识元素展开与闭合完整函数代码效果测试代码最终效果github项目pip下载结语引言 TinUI的第38个元素控件,也是TinUI-4.0-添加的第一个组件&#xff0c…

Rsync下行同步+inotify实时同步介绍和部署

一、Rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩&#xf…

2022世界杯结果预测,简单AI模型最有效?附代码!

2022世界杯冠军是谁?本文将为你揭晓一个利用简单AI模型得到的靠谱预测。 许多人称足球为“不可预测的比赛”,因为一场足球比赛有不同的因素可以改变最终比分。 这是真的……在某种程度上。 北大出版社,人工智能原理与实践 人工智能和数据科…

面试官:什么是伪共享,如何避免?

本文已收录到 GitHub AndroidFamily,有 Android 进阶知识体系,欢迎 Star。技术和职场问题,请关注公众号 [彭旭锐] 加入 Android 交流群。 前言 大家好,我是小彭。 在前面的文章里,我们聊到了 CPU 的高速缓存机制。…

【electron】判断当前进程是否是开发环境的五种方案(获取一些资源的路径)

文章目录导读需求开发环境判断是否是开发环境方案一:location.protocol方案二:全局变量__static方案三:全局变量process.resourcesPath方案四:全局变量process.env.WEBPACK_DEV_SERVER方案五:app.isPackaged获取配置目…

OS-process

process 什么是进程 进程是被加载到内存中、正在运行的程序;多个进程可能对于同一个程序、一个正在运行的OS中会有多个进程 进程是程序的一次执行过程,是操作系统分配资源的基本单位 作业等同于进程 进程的布局: 每个进程都有一个不同的…

内网渗透中最常见的十种漏洞分析总结

【环境搭建资料、工具包、全套视频…等籽料】私信聆取 以下信息是根据2020年和2019年为全球各种中型组织和企业完成的60多个渗透测试报告汇总而来的,在跳转到列表之前,让我们简要介绍一下全面的测试方法。 一、测试方法 目的是使用白盒(灰盒)方法在现场…

spirngboot项目.mvn/wrapper/maven-wrapper.properties‘ does not exist.

rm -rf ~ 命令后,项目出现一些问题,如下 执行命令: ./mvnw clean package -am -pl bistoury-dist -P$PROFILR -Dmaven.test.skip -Denforcer.skiptrue 报异常: starting to build bistoury agent Exception in thread "ma…

[附源码]java毕业设计同德佳苑物业管理系统论文

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

SpringBoot数据层解决方案/ 内置持久化解决方案JdbcTemplate使用/内置数据库H2使用以及RedisNoSql使用

写在前面: 继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 3.4 数据层解决方案 3.4.1 使用项目 新建空项目&a…

redis的事务

Redis的事务:一次事务操作,改成功的成功,该失败的失败。 提交事务 如果遇见错误 成功的成功,失败的失败,不会回滚 先开启事务,执行一些列的命令,但是命令不会立即执行,会被放在一…

web分享会

文章目录前言平台1. 在线练习平台2. 自己搭建靶场3. CTF真题平台分享前言 个人的学习过程仅供参考。 个人情况 我是大二进的工作室,算是比较晚的了,工作室的师兄人也很好,我有问题也会去找他们。我是一位女生,非常欢迎师妹们加入&…

从购买云服务器开始到成功部署网站并且可以正常外网访问整个体系流程(从0到1的过程)

准备工作: 购买云服务器(阿里云或腾讯云都行),过程一样。购买域名,并做解析处理,通过域名访问网站(后面需要自行备案)。 云服务器一些基本配置处理: 用密码登录方式登录root用户到云服务器上 登录成功后&#xff0c…

MHDNet

发现一种性能更优的目标检测网络,不同的输入分辨率下,目标分布和检测头之间存在不同的匹配关系。基于这些有指导意义的发现,作者提出了一种基于检测头和目标分布之间匹配的轻量化交通目标检测网络,称为MHDNet。该模型在BDD100K数据…

【k8s】3、kubeadm安装k8s集群

文章目录一、环境部署1、关闭防火墙规则、关闭selinux、关闭swap交换分区2、修改主机名、DNS解析3、调整内核参数二、所有节点安装Docker三、安装k8s集群1、所有节点配置K8S源2、所有节点安装kubeadm、kubelet和kubectl3、部署K8S集群3.1 初始化操作(master节点操作…

【虚幻引擎UE】UE4/UE5 环境构建插件推荐及使用介绍

一、Ultra Dynamic Sky(天气插件) 支持天气和昼夜变换,包含音效,可以预设也可以动态切换。内置照明解决方案,太阳、月亮和天空照明均与天空同步,并随时间变化。 天气包含:晴天、2D晴天、雨天、…

进程的通信 - 命名管道

命名管道概述 命名管道(Named Pipes),顾名思义,一个有名字的管道。命名管道的名字主要是用于确保多个进程访问同一个对象。命名管道不仅可以在同一台计算机之间传输数据,甚至能在跨越一个网络的不同计算机的不同进程之…