1. 程式人生 > >Kaldi語料的兩種切分/組織方式及其處理

Kaldi語料的兩種切分/組織方式及其處理

out pad ati bottle pri 特征提取 文件的 code val

  • text中每一個文本段由一個音頻索引(indexed by utterance

    使用該方式的egs:librispeechtimitthchs30atc_enatc_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語料的兩種切分/組織方式及其處理