VoxCeleb: a large-scale speaker identification dataset

语音数据集VoxCeleb1的论文。
VoxCeleb2的论文参考链接:下一篇文章

Abstract

本文目标是生成一个大规模文本无关的说话人识别数据集。

1 Introduction

噪声和无约束条件下的说话人识别是一个极具挑战性的课题。卷积神经网络(CNN)在语音识别、计算机视觉和相关领域取得了巨大的进步,因为它能够处理真实世界的噪声数据集,而无需手工产生特征。然而,这类方法成功的最重要因素之一是需要大量的真实数据。
大多数说话人识别数据集是在受限制的条件下采集并手工标注的,这些因素大大限制了数据集的规模。本文有两个目标:首先基于计算机视觉技术的全自动程序从开源视频网站上提取出一个大规模真实说话人识别数据集VoxCeleb;之后又直接对这些原始音频文件的频谱图进行CNN训练,将在数据集VoxCeleb上的结果与传统的最新方法做比较。
VoxCeleb数据集可以用来做说话人识别和说话人验证。
数据集下载地址:https://www.robots.ox.ac.uk/~vgg/data/voxceleb/

2 Related Works

说话人识别任务长期以来使用的高斯混合模型GMM、JFA等算法都依赖于音频输入的低维特征,如MFCC。但是MFCC特征在有噪音时性能衰退比较严重,而且它表示的是语音短帧的整体包络特征,缺少了可能包含说话人判别性的特征(比如pitch)。CNN无需手工产生特征就可以处理真实世界的噪声,并可用于更高维的输入和说话人识别,但它比较依赖大规模真实数据集。
现有的数据集缺乏真实世界条件或者规模不足,列举如下:
在这里插入图片描述

3 Dataset Description

VoxCeleb是从YouTube视频中提取出来的,包含1251个左右的说话人,100000多条utts,数据集是性别均衡的,说话人跨越了广泛的种族、口音、职业和年龄,还从维基百科上获得了每位发言人的国籍和性别。
数据集中的视频都是真实世界的真实场景和真实噪声,下表2给出了数据集的统计信息:
在这里插入图片描述

4 Dataset Collection Pipeline

本节介绍从YouTobe收集说话人数据集的一系列步骤,本文就是使用这种方法分别收集了1000多个不同说话人的几百多条utts,这一套完整步骤的总体介绍参见Figure1左图,
在这里插入图片描述
下面是详细方法介绍:
Stage 1. Candidate list of POIs(选取感兴趣的人员名单)
从VGGFace数据集中选取,该数据集是Freebase知识图中搜索次数最多的人名与互联网电影数据库(IMDB)的交集,共包含2622个说话人身份。
Stage 2. Downloading videos from YouTube(从YouTube中下载视频)
使用YouTube搜索并自动下载每个POIs的前50个视频。在搜索查询中,单词“interview”也被附加到POI的名称后面,以增加视频包含POI说话的可能性(过滤掉体育或者音乐视频)。
Stage 3. Face tracking(人脸跟踪)
基于HOG的人脸检测器用于检测视频每一帧中的人脸。使用基于回归树的方法,为每个人脸检测检测人脸和标记位置。
Stage 4. Active speaker verification(主动说话人验证)
这一阶段的目标是确定视频中的嘴部运动和语音之间的音视频同步,以确定哪张(如果有)可见的脸是说话人。这是通过使用“同步网络”来实现的,这是一种在[36]中描述的双流CNN,它估计音频轨迹和视频的嘴部运动之间的相关性。这种方法能够避免视频剪辑中的配音或者画外音。
Stage 5. Face verification(人脸验证)
目标是验证人脸跟踪的结果是否属于POI名单,使用的网络是基于VGG Face数据集上训练的VGG-16 CNN。
Discussion
为了确保我们的系统非常确信有人在讲话(第4阶段),并且在没有任何人工干预的情况下正确识别了他们(第5阶段),我们设置了非常保守的阈值,以尽量减少误报的数量。上图Figure 1右侧显示了两个任务在各自基准数据集[30,31]上的精确率-召回率曲线,下表Table 3给出了操作点的值。使用这些阈值可以确保尽管我们丢弃了大量下载的视频,但我们可以合理地确定数据集几乎没有标签错误。
在这里插入图片描述

5 CNN Design and Architecture

使用CNN的目标是避免传统的手工处理,最大限度地减少音频数据的预处理,从而避免在处理过程中丢失有价值的信息。
Input features
对输入音频以滑动窗口的形式进行切片,使用宽度为25ms、步长为10ms的汉明窗口,将为3s的语音提供大小为512x300的频谱图,之后对频谱图的每个频率进行均值和方差归一化,用作CNN的输入。
Architecture
本文的模型是基于VGG-M的基本结构,将其fc6的全连接层替换成了两层:一个全连接层(维度9x1)和一个全局平均池化层(1xn),经过这样修改之后的网络与时间位置无关,而与频率有关,这里也是处理语音信号和图像的区别。下表4是CNN的完整结构参数:
在这里插入图片描述
Identification
说话人识别被视为一项分类任务,最后一层的输出经过1251-way的softmax函数,以产生1251种不同的种类。
Verification
为了验证,使用fc7层输出的1024维向量,并计算cosine距离来比较向量间的相似度。
Testing
测试时针对可变长度的utts,一般的传统处理方法是将它们分成固定长度的分段(比如3s),再对每个分段结果进行平均。但是此处使用的平均池化层可以使网络适应可变长度的输入,直接通过改变网络结构中apool6层的n的大小,就可以一次性评估整个测试语句。并且使用本文的这种网络结构还可以提高分类精度。

6 Experiments

本节描述了语音识别和验证的实验设置,并基于数据集voxceleb,将我们设计的CNN方法和一些传统最先进的方法进行了对比。
性能评价的损失函数定义为:
在这里插入图片描述
其中 P t a r P_{tar} Ptar代表先验概率,值设置为0.01, C m i s s C_{miss} Cmiss C f a C_{fa} Cfa的权重都设为1.0。
以GMM-UBM、i-vectors/PLDA为baselines与本文设计的CNN结构做对比。

测试结果如Table 7和Table 8所示,对于这两个表格中的说话人识别任务,CNN都提供了比baselines最好的性能。
在这里插入图片描述
可以看出,CNN结构在1251个不同类别上达到了80.5%的top-1分类准确率,比传统方法中最先进的baseline高出了将近20%。其中CNN-fc-3s结构是传统体系结构,它有fc6全连接层,将测试数据划分成3s的段并对每段进行平均。很明显与原始平均池相比,这种结构的性能有明显下降,下降的部分原因是全连接层增加了大量的参数,都需要更新学习;CNN-fc-3s no var.norm结构是没有对输入进行方差归一化与处理的CNN-fc-3s结构(但输入仍然是平均归一化的)。这两种方法在性能上的差异表明了对数据进行方差标准化的重要性。

7 Conclusions

本文创建了一个VoxCeleb大规模数据集,包含1251个说话人和100000多条utts,还在该数据集上开发了一种新的CNN结构,它能够处理可变长度的音频输入,在说话人识别和验证方面都优于传统方法。

参考链接:https://blog.csdn.net/weixin_44532659/article/details/104433770
https://www.cnblogs.com/zy230530/p/13657435.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值