linux shell脚本如何将文本内容按空格分行、如何使用timit原始corpus制作wav的scp文件

在kaldi-trunk提供的例子voxforge中有一个online-demo

直接使用就可以完成样例的在线解码并得到一个不错的结果,但是数据量很小

前段时间试了一下用另一个corpus来做同样的事情,但是效果很差

今天想用timit corpus来试一试

在修改run.sh脚本过程中遇到了很多问题,主要是对shell脚本操作不熟悉

其中有一个步骤是需要制作corpus中的wav的scp文件

timit的原始语料库中的文件层级是这样的:

第一级:


第二级:


第三极:

第四级:


第五级:


我这里只选择了TEST作为decoding的对象,所以只需要关注TEST目录下的结构,下面是scp文件制作实现过程:

step1:

 > $decode_dir/input.scp

这一步是run.sh文件中原本就有的,但也很重要,即创建一个scp文件,同时还起到的一个作用是,如果之前生成过一个不需要的scp文件可以将其覆盖掉。

step2:

find $audio -not \( -iname 'SA*' \) -name '*.WAV' -print | xargs echo "" > $decode_dir/input.scp.temp

这一步达到的效果是将所有WAV文件中前缀不为SA的地址提取出来并存放在input.scp.temp这个中间文件中

这一步执行完之后得到的input.scp.temp文件是这个样子的:


也就是,我生成的文件中有三行,每一行都包括了很多个WAV文件,还不知道为什么会这样,这自然不是我希望得到的最后结果,所以需要进一步处理。

step3:

                OLD_IFS="$IFS"
IFS=" "
cat $decode_dir/input.scp.temp | while read line
do

arr=($line)
IFS="$OLD_IFS"
for s in ${arr[@]}
do
echo ${s##*/} `pwd`"/$s" >> $decode_dir/input.scp
done
done

首先要实现的是将文本一行一行读入之后再用空格作为分隔符,将一行中的多个元素形成一个数组arr,详情请参考:http://my.oschina.net/5lei/blog/189559

然后是要制作成scp的格式,即文本的每一行为: wav名   wav所在的绝对路径

所以就有了echo ${s##*/} `pwd`"/$s" >> $decode_dir/input.scp这句话

${s##*/}的意思是取字符串s最后出现的 “/”这个字符,将这个字符及其左边所有的字符都删除掉,只取其右边剩下的部分,因此就得到了wav文件名

详情请参考:http://www.111cn.net/sys/linux/43822.htm

`pwd`"/$s"自然对应的就是wav文件的绝对路径了,`pwd`表示当前目录的绝对路径,后面再加上"/$s"也就构成了完整的文件路径。


最后终于得到了想要的scp文件:



就只是以上这一点东西就花了我一天的时间,主要还是对linux指令的使用太不熟悉,

如果熟悉linux指令的话这应该是很简单的事情,好好学习,希望越来越好。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
This corpus contains a selection from the TIMIT Acoustic-Phonetic Continuous Speech Corpus, consisting of speech files, annotations,and associated materials: * 16 speakers from 8 dialect regions * 1 male and 1 female from each dialect region * total 130 sentences (10 sentences per speaker; note that some sentences are shared among other speakers, sa1 and sa2 are spoken by all speakers.) * total 160 sentence recordings (10 recordings per speaker) * audio format: wav format, single channel, 16kHz sampling, 16 bit sample, PCM encoding 数据相关论文: 使用该数据的论文: 暂无信息 来自万方数据的相关论文: 期刊论文 基于学习者英语语料的类联接研究概念、方法及例析 - 外语电化教学 - 2009(3) 期刊论文 基于HTK的连续语音识别系统及其在TIMIT上的实验 - 现代计算机(专业版) - 2009(11) 会议论文 Iterative Language Model Adaptation for Large Vocabulary Continuous Speech Recognition - 2011 4th IEEE International Conference on Computer Science and Information Technology(ICCSIT 2011)(2011年第四届IEEE计算机科学与信息技术国际会议) - 2011 会议论文 The Fixed-Point Optimization of Mel Frequency Cepstrum Coefficients for Speech Recognition - The 6th International Forum on Strategic Technology(IFOST 2011)(第六届国际战略技术论坛) - 2011 会议论文 语音编码对说话人识别系统的影响 - 第二届和谐人机环境联合(第15届全国多媒体技术、第2届全国人机交互、第2届全国普适计算)学术会议 - 2006 期刊论文 车载环境下基于样本熵的语音端点检测方法 - 计算机研究与发展 - 2011, 48(3) 会议论文 A Corpus-based Comparative Study of Company Profiles --A Case Study Between World Top-500 and Zhejiang Top-100 - 2010 Summit International Marketing Science and Management Technology Conference(2010年国际营销科学与管理技术大会) - 2010 期刊论文 留学生汉语中介语语料库建设若干问题探讨——以中山大学汉字偏误中介语语料库为例 - 语言文字应用 - 2012(2) 会议论文 A NON-FIXED-LENGTH SEQUENCES CLUSTERING APPROACH FOR SPEECH CORPUS REDUCTION - 2007 International Conference on Machine Learning and Cybernetics(IEEE第六届机器学习与控制论国际会议) - 2007 期刊论文 联想学习记忆的脑功能磁共振成像 - 中华神经科杂志 - 2008, 41(4)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值