在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)。

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

  1. 说话人识别中的数据预处理和数据增强

    数据预处理 假设已经采集到一些数据,在进行训练之前,需要先对数据做以下预处理: 数据清洗 语音检测(Voice Activity Detection,VAD,也叫Speech Detection,或S ...

  2. 【Grasshopper基础3】在SolveInstance中获取数据和传出数据

    在RegisterInputParams和RegisterOutputParames中添加数据的输入端/输出端之后的下一步就是我们如何在电池的SolveInstance中拿到我们的数据并进一步处理了. ...

  3. 说话人识别中的数据需求

    概述 机器学习领域名言"Garbage In, Garbage Out!"不论神经网络多么先进,如果输入是垃圾,那么输出也一定是垃圾 在说话人识别领域,所需的最小数据单元,包括: ...

  4. vue组件穿方法_vue组件中的数据传递方法

    Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递.组件之间传递数据大致分为三种情况: 父组件向子组件传递数据,通过 props ...

  5. phpStudy3——往数据库中添加数据

    前言: 前边介绍了查询数据库的方法,这里介绍下往数据库中添加数据的方法. 项目需求: 用户在前端页面输入的用户名和手机号码,点击提交后后端判断手机号码是否已经存在.如果不存在,那么插入数据库到数据库, ...

  6. Flink 从 Checkpoint 中恢复数据

    本文开头附:Flink 学习路线系列 ^ _ ^ 接上文:Flink笔记(十八):Flink 之 StateBackend 介绍 & 使用,本文介绍 Flink 从 Checkpoint 中恢 ...

  7. TI CC32XX SDA中SimpleLink Academy教程翻译(RTOS部分的基础介绍非常易懂)

    SimpleLink MCU平台是业界最广泛的基于ARM Cortex-M的有线和无线微控制器组合. 目录 一.Debug Printing 1.printf 2.Display_printf 3.S ...

  8. 【FME】FME中转换器及参数基础介绍

    FME中转换器及参数基础介绍 转换器介绍 FME常用转换器 FME参数 数据的扇出 示例数据:目前有一份行政区划的数据,现要按照行政区的名称,进行多种组织形式的数据扇出. (1)将数据按图层扇出后存放 ...

  9. golang roadrunner中文文档(一)基础介绍

    2021年5月24日14:34:05 golang roadrunner中文文档(一)基础介绍 golang roadrunner中文文档(二)PHP Workers golang roadrunne ...

最新文章

  1. mysql中decimal不能为空吗_程序员,知道Mysql中事务ACID的原理吗?
  2. Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念
  3. c语言前后指针怎么用,详解一下——C语言指针该怎么用
  4. bzoj2461 [BeiJing2011]符环 dp
  5. plc和pc串口通讯接线_PC与PLC的串口通信及编程实现
  6. jira服务断电导致索引文件损坏问题解决
  7. 2、Python函数详解(0601)
  8. 超全超详细Rime中州韵输入法配置指南
  9. c语言是非结构化程序语言_1、C语言是一种结构化程序设计语言
  10. 成功破解:世界杀软“金奖”得主BitDefender 2008(官方中文版 + 注册机下载)
  11. RoboCup智能机器人足球教程(四)
  12. 物联网linux系统设计,Ostro:面向物联网优化的基于 Linux的开源操作系统
  13. C 语言(int )和(int*)的区别
  14. 艾尔米特插值的MATLAB实现,埃尔米特(Hermite)插值
  15. 商家如何搭建一个完善的微信生态链
  16. 关于 curl: (52) Empty reply from server 问题的一种解决方案
  17. BZOJ1927 [Sdoi2010]星际竞速
  18. 教师想要制作微课,需要准备什么?
  19. 每日一句:I'm afraid I have to remind you that time is up
  20. 63页智慧工业园区大数据云平台建设和运营解决方案

热门文章

  1. 基于C-W节约算法的车辆路径规划问题的Java实现
  2. outlook计算机应用操作题,计算机应用基础练习题——Outlook
  3. 基于 Nextcloud 的二次开发
  4. 聊聊数字化转型与DevOps
  5. 1 尴尬的一代(写给1987—1991年出生的同学)
  6. 业务通用校验能力建设
  7. TV视频客户端的厂商分析
  8. PyTorch Geometric (PyG) 安装教程
  9. Stata:用 mapch 命令绘制“事件链”
  10. 人工智能与教育融合的文献总结