基于判别学习的语音预训练模型的发展历程大致从
Deepmind
的
CPC
开始,
FAIR
的
wav2vec系列工作(Wav2vec, Vq-wav2vec, Discret BERT, Wav2vec 2.0,Wav2vec-U)
专注于语音识别任务,一步步将预训练模型从特征提取器发展到带有离散化模块的端到端的自监督训练模型,一步步地挑战更为困难的语音识别数据集,使用更少的有标注数据或者完全使用无标注的数据,取得更好的结果。近期FAIR又提出
HuBERT模型
直接使用MLM的方式预测事先聚类好的离散的target。以及近近近期
Meta AI
的
data2vec
模型直接使用掩码加在线蒸馏的方法不仅在语音ASR达到SOTA,还在图像和NLP领域也有强劲的实力。(从CPC到data2vec都是旨在提出一个语音/vision/NLP都可以使用的一个自监督学习方法,从RNN时代到Transformer时代,仿佛历经一场轮回,但其实发表时间只是时隔3年而已…)
再看
谷歌
这边使用自家的Conformer框架一次次的基于Wav2vec2.0自监督训练方法针对于语音识别任务"
pushing the limits
",把预训练模型做的更大更强,用1百万小时的youtube语音数据训练了8B参数的
BigSSL
,也把Wav2vec2.0和HuBERT模型结合提出了
W2V-BERT
模型,进一步刷新了自己的SOTA。
与此同时,
微软
也基于Wav2vec2.0提出了
UniSpeech
模型,在自监督学习时充分使用已标注好的数据,以及
wav2vec-Switch
模型专注于提升预训练模型的抗噪能力。基于HuBERT框架,微软针对ASR任务提出了
ILS-SSL
模型,通过让中间层也去预测target使ASR结果明显提升(与data2vec比肩的结果),针对Speaker相关的任务提出了
Unispeech-SAT
模型,通过加入句子混杂增强和句子之间的对比学习有效提升模型在speaker相关任务上的结果。为了实现ASR、Speaker以及其它语音下游任务的大一统,微软还提出的
WavLM
模型在十几个语音任务上都取得了SOTA结果。除了基于encoder的预训练模型,微软还有基于encoder-decoder的
SpeechT5
模型,能有效地用于所有文字和语音互相转化的任务(包括ASR, VC, TTS等等)
一、从声学特征到自监督语音特征
我们都知道,自监督学习的崛起与广泛研究工作不过是近几年的新闻而已,深度学习不过也流行了不过十年。在这一切之前,如何解决各种各样语音任务还是极度的依赖于资深语音信号大佬们专业知识。大佬们依据经验和公式推导可以从语音信号中提取出多种
声学特征
(Acoustic Feature),我们就可以直接将这些特征作为输入向量用于各项语音任务中,并且能取得很好的效果。
然而, 这些预先定义好的声学特征(MFCC、FBank等)只能够捕捉到很短时间内的局部时频特征的信息。
那么,我们能不能通过在大规模无标注的语音数据上用自监督的方法学习到一个模型,再使用这个模型为一段音频信号抽取出
包含上下文的高维语义信息的特征向量
呢?
目前的语音预训练模型的自监督学习方法主要包括:
-
基于
生成
的自监督学习方法
;
-
基于
判别
的自监督学习方法;
1、
基于生成的自监督学习方法
基于生成的自监督学习方法
(如APC、VQ-APC、Mockingjay等)的输入和输出通常都是声学特征,通过使用自回归预测或者随机掩码输入特征的方式让模型去学习重构完整的声学特征。如很多论文(CPC、BEiT等)中提到的,这种基于MSE loss的自监督学习方法有个弊端是:它要求模型去重构声学特征中的每一个细节,而这其中的很多细节可能是一些低层或噪声信息,并非我们想要让模型学习的高维语义信息。这样就会浪费模型的建模能力以及宝贵的计算资源。
2、
基于判别的自监督学习方法
如今更为主流的是
基于判别的自监督学习方法
(如CPC、wav2vec2.0、HuBERT等)。CPC和wav2vec2.0等模型主要使用对比学习的方法,其中想要预测的向量是正例,再从当前句子中的其他位置上选出一些负例。HuBERT模型则是用离线的方式先为每一帧语音打好一个label(比如从500个类别中选择一个ID),然后将此label视为正例,其他类别都视为负例,使用CrossEntropy loss进行训练。
NLP预训练模型综述_Mystery_zero的博客-CSDN博客
预训练模型最新综述:过去、现在和未来_PaperWeekly的博客-CSDN博客
一网打尽:14种预训练语言模型大汇总_zenRRan的博客-CSDN博客
10个预训练模型开始你的深度学习(计算机视觉部分)_小白学视觉的博客-CSDN博客
万小时数据预训练 大规模中文语音预训练模型 分享_lqfarmer的博客-CSDN博客
通用模型、全新框架,WavLM语音预训练模型全解_微软技术栈的博客-CSDN博客
带你了解3类预训练语音模型预测方法_华为云开发者联盟的博客-CSDN博客_语音识别预训练模型
基于判别学习的语音预训练模型(0)---简单总结 - 知乎
基于判别学习的语音预训练模型(1)---从声学特征到自监督语音特征 - 知乎
专注于语音识别任务,一步步将预训练模型从特征提取器发展到带有离散化模块的端到端的自监督训练模型,一步步地挑战更为困难的语音识别数据集,使用更少的有标注数据或者完全使用无标注的数据,取得更好的结果。模型,通过加入句子混杂增强和句子之间的对比学习有效提升模型在speaker相关任务上的结果。模型,通过让中间层也去预测target使ASR结果明显提升(与data2vec比肩的结果),针对Speaker相关的任务提出了。",把预训练模型做的更大更强,用1百万小时的youtube语音数据训练了8B参数的。
借助Resonance Audio,可将动态空间声音带入A-Frame VR,AR大规模体验。
可用于音频室和音频源。 每个声源的声音都会受到其所在房间的影响。为此,此包装提供了三个组件:
共振音频室
共鸣音频室bb
共振音频源
这些可以用作基元(使用a-前缀)或用作属性,但response-
audio-
room-bb除外:它计算实体的边界框并将其视为房间。 因此,不能将其用作原语。
音频源也可以是 。
音频室和音频源不一定必须具有父子关系。 请参阅共振音频src的room属性。
声明式用法
基本用法非常简单,并且与其他任何A-Frame组件一样工作。 不要忘记将src属性指向正确的元素或资源。
基本类型用法的示例:
最近在看Speech Representation
预
训练
相关的论文,NLP的Bert
模型
大杀四方后,语音领域也开始涌现一些优秀的
预
训练
模型
,比如:Mockingjay,Wav2Vec,PASE,DeCoAR系列。
《Probing acoustic representations for phonetic properties》对比了4种
预
训练
语音表征
模型
的效果,包括mockingjay,wav2vec,vqwav2vec,DeCoAR,实验发现
预
训练
模型
得到的特征比传统特征的分类效果更好,泛化性能更好。
flashlight/binding/python 安装
##FFTW3环境配置
首先下载FFTW3下载地址:http://www.fftw.org/download.html,下载fftw-3.3.10.tar.gz压缩包,解压后进行make:
如果你有sudo权限:
如果你没有:
tar -zxvf fftw-3.3.10.tar.gz
cd cd fftw-3.3.10/
mkdir -p build
cd bu
1. 什么是
预
训练
的
模型
?
预
训练
模型
是其他人为解决类似问题而创建的
模型
。我们可以以其他问题
训练
的
模型
为起点,而不是从零开始构建
模型
来解决类似的问题。
预
训练
模型
在应用程序中可能不 是100% 准确。
2. 框架
2.1 tensorflow
模型
:Wavenet
文章目录
模型
结构实验及结果分析
本文提出了一种BERT变种,PngBert是google在interspeech 2021提出的一种可以用做TTS encoder的
预
训练
模型
。
该
模型
在BERT基础上,添加了字素信息和字素位置信息,在修改了mask方式,并用大数据量
预
训练
模型
,冻结底层参数之后,与TTS联合
训练
,作为TTS Encoder, 从而提升韵律和自然度。
模型
结构
BERT等语言学信息添加到TTS
训练
过程是一个较早就开始使用的用于提升合成自然度或者韵律的方式。包括使用 word embeddi
pre-training技术在NLP领域得到了很好的应用,比如最近几年比较火的谷歌的BERT
模型
、OpenAI的GPT
模型
,在NLP各种类型的任务中都取得了很大的突破,大幅刷新了公开数据集的SOTA结果,由于最近在做语音
预
训练
的一些工作,所以最近简单梳理了一下NLP领域pre-training技术的发展脉络。
NLP领域的
预
训练
技术主要有两大方向:
第一个是基于feature的方法,这个是比较早期的一个做法,代表技术是ELMo技术
第二个是基于finetune的方法,这个是最近几年大家都在用的方法,也是这
Anaconda虚拟环境下更换python版本【不论升版本、降版本都使用conda install python命令】【注意:修改版本后原来使用pip安装的包会被删掉,无法使用】
20026