-
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