kaldi基础介绍(一)在说话人识别中的数据准备

在kaldi说话人识别示例(egs/sre10,egs/sre16)中,数据总共有两大类,一是训练集(training),二是评估数据集(evaluation)。对于评估数据集又分为两类,一是用来注册(enrollment)的数据集,二是测试(test)集。

一、训练集的准备

训练集需要准备的文本文件是三类:spk2utt, utt2spk以及wav.scp

1 spk2utt 是说话人id(记作spkid)和说话人语音名称(uttid)的对应关系,通常来讲,一个说话人会有很多条语音,文件中的格式为,spkid uttid1 uttid2...,每一行有且只有一个说话人id。如下图所示

需要注意的是,每一行的uttid顺序需要按照sort命令的排序模式来排,以及spkid也需要按照排序命令sort的模式来排。否则kaldi脚本在进行validate_data_dir.sh的时候报错。

2 utt2spk 是单个语音名称uttid和说话人的对应,很明显每行都是一一对应关系。如下图


utt2spk也可以由kaldi自带脚本和spk2utt生成,也可以由自己写脚本完成

3 wav.scp 是语音名称uttid和其完整路径的对应,也是每行一个音频。但是根据数据集中音频文件格式的不同,需要添加一些转换格式的命令。

如果原始音频文件格式为wav,则只需要写uttid path,如下:


如果格式为sph或者flac,则需要加入格式转换的命令行,如下:


注:如果需要训练性别有关的模型,还需要加入spk2gender的文本文件


对于说话人识别的评估,我们首先需要注册一批说话人,既然是注册说话人的声纹,则每个说话人需要至少有一条语音用来注册。对于测试集,则还需要一个已注册说话人和某个语音的id以及标签label(表明是否是同一个人)

二、注册集

注册集和训练集一样,由:spk2utt,utt2spk,wav.scp 组成。文本文件内容的模式也和训练集保持一致,这里不再赘述。

三、测试集

测试集是由:spk2utt,utt2spk,wav.scp 以及trials 这四种文件组成。

1 在这里spk2utt 还有 utt2spk内容是一模一样的,都是uttid uttid,如下图:

2 wav.scp 的内容模式和训练集是一致的,它包含了所有的测试音频

3 trials文件格式: spkid uttid label,如下

以上就是kaldi说话人识别数据集的准备格式,自己手动写脚本准备的时候,会遇到的问题,一是排序问题,主要会出现在spk2utt以及utt2spk文件中,因此在生成这些文件的时候就需要注意一定的顺序性,也要根据实际情况改变uttid的名字,以便于通过validate-data-dir脚本的检测;二是转格式的问题,目前遇到的sph和flac就需要不同的工具去转格式(sph2pipe和sox)。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值