whisper

2023-10-26

Robust Speech Recognition via Large-Scale Weak Supervision

介绍

大规模弱监督的训练。先前的方法都是通过大量的无监督学习训练(无监督的数据容易收集,所以通过大量无监督的学习可以训练出一个质量较好的encoder)。但是用的时候还需要找一些有监督的数据进行微调。作者觉得微调是一个比较复杂的过程,而且微调的时候,很容易对特定的数据集过拟合,使得模型的泛化能力不强。作者认为一个真正的语音识别系统,应该是拿去就可以直接用,而不用进行微调。

方法

数据处理

whisper模型直接预测原始抄录文本,没有进行任何标准化。系统直接输出自然抄录文本,而不需要一个额外的反向文本归一化的步骤(开头字母大写、加上标点符号、缩写形式等)。

做文本归一化的好处是,可以让训练更加简单一点。但是这样事后需要基于规则等做文本归一化


意思说,只要我的数据足够大,所有的文本归一化的情况都会出现,不需要额外做文本归一化。

构建了来自网络上的不同环境(不同录音状态、说话人、使用的语言)下的【音频转录文本数据对】。这样能使得模型更加健壮。

网络上爬取下来的音频是原始的,但是文本的质量不一定好。所以说做了一个文本过滤器,过滤掉那些不好的文本。很多文本不是人为标注的,而是用ASR系统生成的,研究表明这些数据会让模型变得更差。所有需要把用ASR系统的文本过滤掉。用ASR系统生成的文本有一些特点,比如说没有复杂的标点符号(冒号、问号等),没有格式化的一些字符,比如换行字符,或者全部是大写或者全部是小写。

同时使用了音频语言检测器(2021年的一个prototype模型)和CLD2工具,检测说的是哪种语言,如果这两个检测出来的语言不一样,那么就把【音频转录文本对】数据删除。

把音频文件分为30秒的【音频文本对】。训练所有音频片段,包括那些没有人说话的音频(作为sub-sampled),使用这些片段区分有没有在说话。

模型

由于我们的工作重点是研究大规模监督预训练的语音识别能力,因此我们使用现成的架构来避免将我们的发现与模型改进混淆。

模型使用2017年的encoder-decoder Transformer。
声音输入到Transformer:所有音频采样16K Hz,变为80通道的 logmagnitude Mel spectrogram(每个时间点抽取了80维度的特征),每个时间窗口是25ms,每次窗口滑动10ms。

切30s的音频,每次滑动10ms,长为30s的音频变成了3000个数据点,每个数据点的维度是80
(一个段落3000个词,每个词的词嵌入长度是80)

在输入之前,经过两个卷积层,它的宽度是3,使用GELU激活函数,第二个卷积层的步幅是2

步幅为2,把3000个数据点变为1500

然后把正弦位置编码加到卷积层的输出中,一块送到encoder进行训练。

在这里插入图片描述

多任务格式

虽然语音识别模型的核心部分是预测说的一段话的单词,但这不是唯一的部分。对于一个完整特征的ASR系统来说,包括许多额外的部分,比如说检测是不是有人在说话,谁在说话,识别出来的文字归一化。这些部分通常是分别处理,然后把它们合起来,成为一个复杂完整的语音识别模型。为了减少复杂度,作者想要用一个模型执行所有的任务。可以在相同的输入音频信号上执行许多不同的任务:转录,翻译,语音活动检测等等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

whisper 的相关文章

随机推荐

  • windows下启动nacos(单机配置)

    windows下启动nacos 下载nacos 找到github地址 并根据对应的版本进行下载 如果下载过慢的话 可以使用迅雷下载 1下载完成后 进行解压 之后打开 conf application properties文件 2 打开后 我
  • 机器学习实战——朴素贝叶斯

    目录 一 朴素贝叶斯理论 1 概述 2 朴素贝叶斯特点 3 贝叶斯决策理论 4 条件概率与全概率公式 5 贝叶斯推断 二 朴素贝叶斯分类器应用 拉普拉斯修正 三 垃圾邮件分类 一 朴素贝叶斯理论 1 概述 朴素贝叶斯算法是有监督的学习算法
  • vue3.0模板

    GitHub Mstian Vue Onepiece Admin vue3 elementPlus后台管理简单模板https github com Mstian Vue Onepiece Admin
  • null,default关键字

    一 null关键字 1 null是空的意思 在表中 默认情况下 所有的字段值都可以为空 1 建表期间 可以对某一字段进行非空约束 not null 在insert时 此字段必须要有数据 create table temo id number
  • libuv之基础

    TCP客户端连接步骤 连接方法 Uv loop t loop uv default loop uv tcp t client malloc uv connect t connect req malloc uv tcp init loop c
  • C++ 仿函数(一)

    目录 一 仿函数是什么 二 仿函数的特点 1 仿函数在使用时 可以像普通函数那样调用 可以有参数 可以有返回值 2 仿函数超出普通函数的概念 可以有自己的状态 编辑3 仿函数可以作为参数传递 三 谓词 一元谓词示例 二元谓词示例 总结 一
  • 银行股的分红是不是比利率要高,投十万银行股一年分红有多少啊?

    工农交建中目前股息均超5 以上 10万元投资银行股 一年分红收益能达到5500左右 银行一年定期存款1 5 10万存款年利息1500 买银行股比存银行一年多收益4000左右
  • dell服务器重装win10,戴尔dell重装win10系统后无法引导的解决方法(原创)

    戴尔新机型都采用 Intel 酷睿第八代以上处理器 戴尔8代以上cpu都不支持传统模式了 默认预装了win10系统不是很好用 想重新安装win10 但是预装win10的机型默认是UEFI引导 但戴尔电脑装win10后出现不能引导情况 一般出
  • OpenFeign配合logback链路追踪

    创建MDC上下文 public class MdcContext MDC上下文 存储tId private static final ThreadLocal
  • 多线程(十)多线程编程示例

    文章目录 一 交替输出1A2B3C4D5E 1 1 synchronized wait notify 1 2 Condition await signal 二 生产者 消费者问题 2 1 synchronized wait notify 2
  • java final关键字修饰局部变量,final关键字的这8个小细节,你get到几个?

    今天来聊 final 关键字 因为最近在看的几本书都讲到了 final 关键字 发现好多小细节自己都忽视了 抽空总结了一下 分享给大家 正文 final关键字是一个常用的关键字 可以修饰变量 方法 类 用来表示它修饰的类 方法和变量不可改变
  • 数据在底层的存储模式

    1 数据的存储模式 大端存储模式 常见于我们的手机等 低地址放高数据 小端存储模式 比如PC 低地址存放低数据 面试题 设计程序判断大小端 这里可以有两种方式 1 写一个函数通过数据类型 int main int a 0x11223344
  • 我的服务器开发之路-安装mysql之mariadb并更改数据库路径

    centos最好安装mariadb 输入rpm qa grep mariadb 并没有显示版本号 则说明并没有安装mariadb 输入yum remove mysql mysql server mysql libs可完全卸载mysql相关
  • K8S个人学习之路

    服务器预备环境 1 永久禁用swap空间 1 临时关闭swap分区 重启失效 swapoff a 2 永久关闭swap分区 sed ri s swap etc fstab 2 修改k8s gcr io 路径的镜像 其他的镜像仓库 MY RE
  • Spark-RDD编程

    Spark在进行计算的时候通常会包含以下几个步骤 创建SparkContext上下文对象 使用SparkContext加载数据创建RDD RDD的转换算子transfotmations RDD的行动算子actions RDD的缓存和持久化
  • 反射获取字段的值与非空校验

    获取指定字段的值 通过字段对应的get方法 public Object getFieldValueByName1 String fieldName Object obj try String firstLetter fieldName su
  • 《Semi-Supervised Semantic Segmentation with Cross-Consistency Training》 2020CVPR 论文阅读

    在这项工作中 作者首先观察到 对于语义分割 低密度区域在隐藏表示中比在输入中更明显 作者提出了交叉一致性训练 其中预测的不变性是施加不同的扰动在编码器输出上 Cross Consistency Training 该模型包含一个共享的enco
  • SQL千万级大数据量查询优化

    转发自 https blog csdn net long690276759 article details 79571421 spm 1001 2014 3001 5506 防止查询资料找不到来源 很详细 1 对查询进行优化 应尽量避免全表
  • c++中istringstream及ostringstream超详细说明

    文章目录 1 stringbuf类介绍 1 1 stringbuf类构造函数 1 2 str函数 2 istringstream类 2 1 rdbuf函数 2 2 swap函数 3 ostringstream类和stringstream类
  • whisper

    Robust Speech Recognition via Large Scale Weak Supervision 介绍 大规模弱监督的训练 先前的方法都是通过大量的无监督学习训练 无监督的数据容易收集 所以通过大量无监督的学习可以训练出