本文是OpenSpeaker系列的第二篇文章,全系列可参考这篇文章或者文末的专栏:
https://zhuanlan.zhihu.com/p/419848589
根据规划,今天先来看第一部分数据整理:

得益于业界最近几年的开源行动,公开的语音数据集越来越多,也更方便我们做研究学习。但可惜的是,大部分都是只带文本标签,可以用来做语音识别的,有说话人标签的数据集却不多,本文会列出当前我知道的可用公开数据集,并给出下载链接,有不完善的也欢迎大家补充。
VoxCeleb
首先是VoxCeleb,它是一个英语大型说话人识别数据集,有两个部分组成:VoxCeleb1和VoxCeleb2。其中VoxCeleb1包含来自 YouTube 视频的1,251 位名人的超过10万段语音,VoxCeleb2 包含 6,112 个说话人的超过一百万条话语。该数据集中音频长度如下图所示:

同时,这些说话人有不同的口音、职业和年龄,该数据集中还有所有说话人的全名、国籍和性别标签,这对我们后期做性别识别训练也是很有用的。


最后,该数据集也是VoxSRC比赛的数据,很多论文也是以此为准验证模型效果,所以我们也是以此为基准数据,方便训练和横向对比。
Vox1数据集信息如下:

Vox2数据集信息如下:

Question!
讲完基准数据集,这里要讨论一个问题。
我们都知道声纹识别分为文本相关的声纹识别和文本无关的声纹识别,通常意义也都是研究改进文本无关的声纹识别模型,在这里,很多人都有一个先验的“感觉”:文本无关的声纹模型上,不管同一个人说了什么话,都应该能很好的识别。但遗憾的是并不全是,因为一个人说的内容除了母语之外,还会说外语,这个时候模型在其他语言下测试,效果会变得很差。先说工程经验:我们工作中在英语数据集上训练的模型,在普通话、粤语等测试集上EER都会增加,识别效果会变差,同样的中文模型去测英语也是一样的结论;并且将数据mix之后训练的模型,对两种语言都会鲁棒。有的同学可能会说:mix在一起增加了数据,模型当然会变好啊!确实有这个可能,有兴趣的同学可以去用等量数据做实验对比。我后来在知乎翻了一圈,看到了@Leon晋 大佬的回复,我觉得还是有一些说服力的,特贴在下面,原文在此:
在说话人识别中,说话人信息是会受语种信息的影响,而且影响还不低。在跨语种的识别中,例如训练集都是英语,但注册和验证集都是粤语时,错误率会比全是英语要高;如果注册是普通话,验证是英语,那错误率也会变高。而且,对于方言来讲,这也同样会给说话人识别系统带来干扰的。
cross-lingual之所以会干扰说话人的表征,主要是因为开集语种存在开集音素,而由于开集音素没被模型学习过,那在识别匹配过程中,不同人说同个语种的相似性将会比同一人说不同语种可能要高。举一个实际点的例子,有一个识别3语种的语种模型,支持粤普英,此时我拿一句闽南话去识别,那可能和普通话相似性很高,造成误接受;如果是用粤普英闽的语种模型去识别,那这句闽南话就不会被误接受为普通话了。重点是,不能单纯看 【即使这个人用了不同语种发声,他的声音还是他,而是要从整体看,由于他换了语种,可能和另一个人的声音反而更相似了,从而误拒绝了】。
从发音的角度看,不同语种具有它们的特色发音,口腔鼻腔咽喉声道等器官的运作也不同。例如粤语就有九声六调,当我们听到某人说粤普,就很快锁定这个人是广东人,所以他的普通话也受粤语影响,这都成为了他的说话人信息。
所以在我们实际工作中,除了某一种语言的数据集,通常还会加一些其他可能遇到的语种,下面我也列一些常见的中文数据集,大家可以一起加入训练。
中文数据集
这些数据大部分都可以在OpenSLR上免费下载,只有AISHELL-2需要申请,但是学术研究很好申请。先给出一个总表,细节在下面:

文章来源知乎,文章作者:蘑菇炖提莫
