• text中每一个文本段由一个音频索引(indexed by utterance)

    使用该方式的egs:librispeech、timit、thchs30、atc_en、atc_cn

    语料的组织形式为:

    一个音频(包含一个语句)对应一个文本(包含一个文本段)

    一个音频(包含一个语句)对应一个文本(包含多个文本段)中的一个文本段

  • text中每一个文本段由一个时间片索引(indexed by segment)
    • 使用该方式的egs:

      tedlium、atc0_comp_LDC94S14A

      时间片由segments文件指定,通常位于data/train, data/test, data/dev中

    • 处理方式:

      以tedlium为例,语料的组织形式为一个音频sph(包含多个语句)对应一个文本stm(包含多个文本段)

      stm,kaldi使用的一种文本组织形式(文本格式),tedlium的例子:

      AaronHuey_2010X 1 AaronHuey_2010X 223.12 232.68 <o,f0,female> we appropriated land for(2) trails and(2) trains to shortcut through the heart of the lakota nation <sil> the treaties were(2) out the window <sil> in response three tribes led by the lakota chief {SMACK} red cloud <sil> (AaronHuey_2010X-223.12-232.68-F0_F-S27)

      stm文件的格式:

      <file-name> <?> <speaker-name> <segment-begin> <segment-end> <LABEL> <TEXT> <segment>

      文本:db/TEDLIUM_release1/$set/stm/*.stm(其中包含了时间片信息)

      音频:db/TEDLIUM_release1/$set/sph/*.sph

      tedlium/s5/run.sh调用了local/prepare_data.sh,其中对stm文件进行格式化,包括去除显式的静音标注和生成segments文件

      segments文件的格式:

      <utterance-id> <recording-id> <segment-begin> <segment-end>

      其中,segment-begin和segment-end以秒为单位。它们指明了一段发音在一段录音中的时间偏移量。"recording-id" 和在"wav.scp"中使用的是同一个标识字符串。再次声明一下,这只是一个任意的标识字符串,你可以随便指定。

      Kaldi中隐含地对静音SIL进行处理,不需要显式标注。但是这并不意味着其他噪声不需要显式标注,如:

BRH

Breath

呼吸

CGH

Cough

咳嗽

NSN

Noise

噪声

SMK

Smack

拍击声

UM

UM

UHH

UH

在特征提取、在线训练、解码时需要判断语料是哪种组织方式,即寻找segments:

../steps/make_*.sh

../steps/nnet2/dump_bottleneck_features.sh

../steps/<online/>nnet*/align.sh

../steps/<online/>nnet*/decode.sh

../steps/online/nnet2/dump_nnet_activations.sh

../steps/online/nnet2/get_egs.sh

../steps/online/nnet2/get_egs*.sh

Kaldi语料的两种切分/组织方式及其处理的更多相关文章

  1. Windows Azure VM的两种shut down 方式

    今天在调查Azure的价格时,发现下面的语句,来自http://azure.microsoft.com/en-us/pricing/details/virtual-machines/ * If my ...

  2. 两种隐藏元素方式【display: none】和【visibility: hidden】的区别

    此随笔的灵感来源于上周的一个面试,在谈到隐藏元素的时候,面试官突然问我[display: none]和[visibility: hidden]的区别,我当时一愣,这俩有区别吗,好像有,但是忘记了啊,因 ...

  3. Linux共享库两种加载方式简述

      Linux共享库两种加载方式简述  动态库技术通常能减少程序的大小,节省空间,提高效率,具有很高的灵活性,对于升级软件版本也更加容易.与静态库不同,动态库里面的函数不是执行程序本身 的一部分,而是 ...

  4. android环境下两种md5加密方式

    在平时开发过程中,MD5加密是一个比较常用的算法,最常见的使用场景就是在帐号注册时,用户输入的密码经md5加密后,传输至服务器保存起来.虽然md5加密经常用,但是md5的加密原理我还真说不上来,对md ...

  5. Form表单中method=post/get两种数据传输的方式的区别

    Form提供了两种数据传输的方式——get和post.虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响.虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一 ...

  6. 两种数据传输的方式——get和post。

    Form提供了两种数据传输的方式——get和post.虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响.虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一 ...

  7. Xamarin Android Fragment的两种加载方式

    android Fragment的重点: 3.0版本后引入,即minSdk要大于11 Fragment需要嵌套在Activity中使用,当然也可以嵌套到另外一个Fragment中,但这个被嵌套的Fra ...

  8. nginx 和 tp兼容pathinfo和rewrite两种url访问方式

    环境:centos7,yum安装的nginx1.10.php-fpm,tp3.2 本方法只需要配置nginx.conf的一个文件就可以支持pathinfo和rewrite两种url访问方式 vim / ...

  9. mybatis中两种取值方式?谈谈Spring框架理解?

    1.mybatis中两种取值方式? 回答:Mybatis中取值方式有几种?各自区别是什么? Mybatis取值方式就是说在Mapper文件中获取service传过来的值的方法,总共有两种方式,通过 $ ...

随机推荐

  1. 【Asia Yokohama Regional Contest 2018】Arithmetic Progressions

    题目大意:给定 N(1<N<=5000) 个不同元素组成的集合,求从中选出若干数字组成的等差数列最长是多少. 题解:直接暴力有 \(O(n^3)\) 的算法,即:枚举等差数列的前两个值,再 ...

  2. 第十四篇-ImageButton控制聚焦,单击,常态三种状态的显示背景

    这里先用XML设置. myselector.xml <?xml version="1.0" encoding="utf-8"?> <selec ...

  3. 解决win10环境下python Selenuim调用Chrome时提示data 及Chrome正在受自动软件控制的方法

    用python自动访问谷歌浏览器时会出现data界面,很是烦人.在网上搜索,有说是因为webdriver和google版本不匹配导致的,就下过各种版本,结果都一样. 后来明白了,出现data的原因只是 ...

  4. 汇编 gdb调试

    as -g --32 -o hello.o hello.s ld -m elf_i386 -o hello hello.o gdb hello

  5. Proxy代理模式

    https://www.cnblogs.com/vincentzh/p/5988145.html https://www.cnblogs.com/wrbxdj/p/5267370.html(不错)

  6. macs安卓工程创建

    第一个 1.创建工程后先修改xml文件. 然后主程序中编写代码. center :如果图片比imageview大则显示中片中心部分 image大小  把view填满 匹配父控件 ,父控件多大它就多大. ...

  7. (DIjsktra算法) nyoj1401-一场说走就走的旅行

    题目描述: 有一天,孩子回来对我说:“妈妈,听说马尔代夫很不错,放假了我想去玩.”马尔代夫?我也想去!没有人不向往一场说走就走的旅行!“其实我想去的地方很多,呼伦贝尔大草原.玉龙雪山.布达拉宫.艾菲尔 ...

  8. nodeJS 调试debug

    一. 用chrome来调试 1)运行node的时候,带上 --inspect-brk=9999 node --inspect-brk= index.js 2)打开chrome调试管理页面 3)如果没有 ...

  9. eslint相关工具

    eslint工具 1. vscode搜索eslint安装,就可以在写代码时报eslint的错误了 2.文件 --> 首选项 --> 设置 --> 选ESLint --> 勾选A ...

  10. python数据结构总结

    一.列表 1.列表脚本操作符: (1)扩增的操作符: “+”:用于组合列表:如[1,2,3]+[4,5,6]==>[1,2,3,4,5,6] "*":重复;如[2,3]*2= ...