wav2vec--

article/2025/10/16 14:13:20

Wav2vec: Unsupervised Pre-training for Speech Recognition

该模型非完整的ASR,而是一个将wav通过标记的、未标记的数据,通过无监督的方式进行训练,得到可以送入ASR中的向量;以提升ASR的准确率;


Wav2vec首先训练一个模型,以区分真实数据和干扰项样本,这可以帮助它学习训练的音频数据的数学表示形式。

有了这些表示形式,wav2vec可以通过剪辑和比较,从干扰物种分辨出准确的语音声音。

Wav2vec每秒执行数百次这样的操作,从而成为自身的转录器(transcriber),并且自动生成不正确版本的语音示例以测试系统并评估性能,从而无需手动注释训练数据。


当前用于语音识别的最新模型需要大量标记好的音频数据才能获得良好的性能。最近,在标注数据缺少的情况下,神经网络的预训练已经成为一种有效的技术。关键思想是先在有大量标记或未标记数据中进行general的训练,再在数据量受限的目标数据上fine-tune来提高下游任务的性能。
wav2vec:通过多层的卷积神经网络来提取音频的无监督语音特征。
模型训练时的损失函数选取的是对比损失函数(contrastive loss),在训练时将正例间的距离拉近,负例间的距离拉远。

wav2vec是一个卷积神经网络,它将原始音频作为输入并计算可以输入到语音识别系统的一般表示。
目标是对比损失,需要将真实的未来音频样本与底片区分开来。

作者使用两个network,第一个网络为encoder network,它的作用是把X转换为Z;
另外一个网络,context network会将多个z[i]转化为context representation C。
这里Z和C都会用作之后loss的计算。
模型的loss中自然要包含预测未来某个z的损失。
然而仅仅有正例是不够的,因此作者利用了负采样技术,作者从一个概率分布中采样出负样本,最终模型的loss为区分正例和反例的contrastive loss。
在这里插入图片描述
将正负样本分成两项来分析:
常规的Loss是Pred 和 Ground Truth;
这个是采集的负样本,与正样本的PK?

在这里插入图片描述

关于负样本怎么来的,是每次采样吗?因为是无监督,自然希望每次的wav2vec都是正样本;
根据另一个博客,继续认识该loss:
链接:https://zhuanlan.zhihu.com/p/340548756?utm_source=wechat_session&utm_medium=social&utm_oi=602514765923356672
在这里插入图片描述

还有:
After training, we input the representations ci produced by the context network to the acoustic model
instead of log-mel filterbank features.
log-mel filterbank features
语音识别:
.wav—分帧,降噪,端点检测(VAD)等 预处理(暂时不知先后)
对波形做变换(提取MFCC特征,应该涉及.wav的频谱图–>声谱图,具体可使用Python librosa, soundfile等库);
现在wav–> vector,然后–>声学模型的状态–>音素;—>语言模型,转换最终输出;


http://chatgpt.dhexx.cn/article/iNJmGxTu.shtml

相关文章

二维小波变换——wrcoef2、upcoef2、detcoef2、appcoef2

文章目录 1.wrcoef22.upcoef23.detcoef24.appcoef2 1.wrcoef2 功能:从二维小波系数重构单分支 用法: X wrcoef2(‘type’,C,S,wname,N) 根据小波分解结构[C,S],计算N级重构系数矩阵。wname是包含小波名称的字符向量或字符串标量…

MATLAB 之 wavedec2函数详解

wavedec2函数: 1.功能:实现图像(即二维信号)的多层分解,多层,即多尺度. 2.格式:[c,s]wavedec2(X,N,wname) [c,s]wavedec2(X,N,Lo_D,Hi_D)(我不讨论它) 3.参数说明:对图像X用wname小波基函数实现N层分解, 这里的小波基函数应该根据实际情况选择,具体选择办法可以搜之…

wavedec2函数详解

zz: http://hi.baidu.com/hehui1500/blog/item/81ba18dea873430349540382.html 很多人对小波多级分解的wavedec2总是迷惑,今天就详释她! wavedec2函数: 1.功能:实现图像(即二维信号)的多层分解,多层,即多尺度. 2.格式:[c,s]wavedec2(X,N,w…

python小波变换 wavedec2函数 各个返回值详解

网上找了好多文章都没有提到这个东西,没有说明 wavedec2 函数各个返回值究竟是什么意思 我们先看看 wavedec2 函数的大概形式, pywt.wavedec2(data, wavelet, mode’symmetric’, levelNone, axes(-2, -1))data: 输入的数据wavelet: 小波基level: …

图像的变换——dwt、idwt、wcodemat、dwt2、idwt2、wavedec2、waverec2

文章目录 图像小波变换一、一维小波变换1. dwt函数2.idwt函数 二、二维小波变换1.wcodemat函数2.dwt2函数3.idwt2函数4.wavedec2函数5.waverec2函数 三、相关单词 图像小波变换 一、一维小波变换 1. dwt函数 功能: 单级一维离散小波变换 句法: [cA,c…

说说wavedec2函数

http://maiqiuzhizhu.blog.sohu.com/110325150.html wavedec2函数: 1.功能:实现图像(即二维信号)的多层分解. 多层,即多尺度. 2.格式:[c,s]wavedec2(X,N,wname) [c,s]wavedec2(X,N,Lo_D,Hi_D)(我不讨论它) 3.参数说明:对图像X用wname小波基函数实现N层分解, 这里的小波基函数应…

小波变换--dwt2 与wavedec2

https://www.cnblogs.com/xfzhang/p/7295041.html https://www.ilovematlab.cn/thread-45020-1-1.html dwt2是二维单尺度小波变换,其可以通过指定小波或者分解滤波器进行二维单尺度小波分解。而wavedec2是二维多尺度小波分解. 尺度可理解为级,即waved…

MapReduce编程概述

MapReduce是一个用于大规模数据集的并行处理的分布式计算的编程框架。MapReduce将一个数据处理过程拆分为Map和Reduce两部分:Map是映射,负责数据的过滤分发;Reduce是规约,负责数据的计算归并。开发人员只需通过编写map和reduce函数…

Mapreduce编程模型(一)

1.1Mapreduce模型简介 Mapreduce是一种可用于数据处理的编程模型,Hadoop上可以运行各种语言版本的Mapreduce程序。Mapreduce程序是并行运行的,采用了分治的思想。编程核心思想:键值对思想 Mapreduce只需要用Map和Reduce的思想即可解决问题&am…

MapReduce 编程实例:词频统计

文章目录 MapReduce 编程实例:词频统计一,准备数据文件(1)在虚拟机上创建文本文件(2)上传文件到HDFS指定目录 二,使用IDEA创建Maven项目三,添加相关依赖四,创建日志属性文…

mapreduce 编程思想

MapReduce源于Google一篇论文,它充分借鉴了分而治之的思想,将一个数据处理过程拆分为主要的Map(映射)与Reduce(化简)两步。用户不懂分布式计算框架的内部运行机制,只要能用Map和Reduce的思想描述清楚要处理的问题,即编写map()和re…

MapReduce编程规范及示例编写

1、Mapper类 用户自定义一个Mapper类继承Hadoop的Mapper类Mapper的输入数据是KV对的形式(类型可以自定义)Map阶段的业务逻辑定义在map()方法中Mapper的输出数据是KV对的形式(类型可以自定义) 注意:map()方法是对输入…

MapReduce编程快速入门

MapReduce编程规范 用户编写的程序分成三个部分:Mapper,Reducer,Driver(提交运行mr程序的客户端) Mapper阶段继承Mapper类 (1)用户自定义的Mapper要继承自己的父类 (2)Mapper的输入数据是KV对…

java mapreduce编程_Hadoop实验——MapReduce编程(1)

实验目的 通过实验掌握基本的MapReduce编程方法。 掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。 通过操作MapReduce的实验,模仿实验内容,深入理解MapReduce的过程,熟悉MapReduce程序的编程方…

MapReduce编程初级实践

一、实验目的 通过实验掌握基本的MapReduce编程方法;掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。 二、 实验平台 操作系统:ubuntu18 Hadoop版本:3.2.2 HBase版本:2.2.2 JDK版…

MapReduce编程练习

目录 编程实现按日期统计访问次数 2.编程实现按访问次数排序 获取成绩表最高分 编译jar包方法 编程实现按日期统计访问次数 (1) 定义输入/输出格式 社交网站用户的访问日期在格式上属于文本格式&#xff0c;访问次数为整型数值格式。其组成的键值对为<访问日…

云计算实验 MapReduce编程

一、实验题目 MapReduce编程 二、实验内容 本实验利用 Hadoop 提供的 Java API 进行编程进行 MapReduce 编程。 三、实验目标 掌握MapReduce编程。 理解MapReduce原理 【实验作业】简单流量统计 有如下这样的日志文件&#xff1a; 13726230503 00-FD-07-A4-72-B8:CMCC 120.19…

Hadoop实验4:MapReduce编程

目录 一. 【实验准备】 1.工作目录 2.打开eclipse并配置工作空间 二、准备工作 1. 新建项目 2. 准备测试数据 3. 添加 MapReduce 编程框架 三、Map过程 四、Reduce过程 五、执行MapReduce任务 六、实验结果 七、准备工作 1. 新建项目 2. 准备relation.dat 3. 添加…

MapReduce 编程规范 (以WordCount为例)

先介绍一下常用的数据序列化类型 在MapReduce编程中&#xff0c;需要进行数据传输&#xff0c;比如将Mapper的结果传入Reducer中进行汇总&#xff0c;媒介就是context,所以需要可以序列化的数据类型。 MapReduce编程规范 Mapper阶段、Reducer阶段&#xff0c;Driver阶段 Map…

MapReduce 编程实战

MapReduce 采用了「分而治之」的思想。在分布式计算中&#xff0c;MapReduce 框架负责处理并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题&#xff0c;把处理过程高度抽象为两个函数&#xff1a;map&#xff0c;把一个任务分解成多个任务…