wav2vec--

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。
wav2vec--_第1张图片
将正负样本分成两项来分析:
常规的Loss是Pred 和 Ground Truth;
这个是采集的负样本,与正样本的PK?

wav2vec--_第2张图片

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

还有:
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,然后–>声学模型的状态–>音素;—>语言模型,转换最终输出;

你可能感兴趣的:(深度学习,机器学习,神经网络)