Kaldi脚本分析(1)——数据准备

1 数据准备

数据准备阶段的输出包含两个部分:一部分与“数据”相关,保存在data/train、data/dev、data/test之类的目录下,“数据”部分与特定的录音数据有关,包括训练测试集划分、音频分段、文本标注、发音标注、说话人信息等;另一部分与“语言”相关,保存在data/local、data/dict、data/lang、data/graph目录下,“语言”部分与当前使用的语言本身相关,包括发音词典、音素集合、语言模型等。

如果想用现有的识别系统和语言模型对自己时的录音数据进行解码,那么只需要重写“数据”相关,并准备数据匹配的发音词典。

 

1.1 “数据”相关

主要涉及脚本:local/thchs-30_data_prep.sh

#data preparation

#generate text, wav.scp, utt2pk,spk2utt

local/thchs-30_data_prep.sh $H$thchs/data_thchs30 || exit 1;

 

  • 在data文件夹下创建train,dev,test文件夹,分别用于保存训练、验证、测试的初始数据。利用thchs-30_data_prep.sh脚本在每个文件夹中生成以下6个文件:
  • wav.scp,每个语句的音频文件,索引标识符一般为utterance-id。如果音频存在segment文件,则索引标识符为recording-id,记录每一个分段。
  • utt2spk,记录每个utterance属于哪个说话人,由utterance-id索引。
  • spk2utt,记录每个说话人说了那些utterances,由speaker-id索引。
  • word.txt和text,每个语句的文本标注,由utterance-id索引。这里的文本标注从原始数据集中copy而来,不用保证都在词汇表中,未出现的文本标注将映射到data/lang/oov.txt中。
  • phone.txt,每个语句的发音标注,由utterance-id索引。发音标注中的音素信息从原始数据集中copy而来。

forxin train dev test; do

 echo"cleaning data/$x"

 cd$dir/data/$x

 rm -rf wav.scp utt2spk spk2utt word.txt phone.txt text

 echo"preparing scps and text in data/$x"

 fornnin`find  $corpus_dir/$x/*.wav | sort -u | xargs -i basename {} .wav`; do

     spkid=`echo $nn| awk -F"_" '{print"" $1}'`

     spk_char=`echo $spkid| sed 's/\([A-Z]\).*/\1/'`

     spk_num=`echo $spkid| sed 's/[A-Z]\([0-9]\)/\1/'`

     spkid=$(printf'%s%.2d' "$spk_char" "$spk_num")

     utt_num=`echo $nn

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值