没安装windows版本下的perl,只有cygwin里面有,所以就只好在这个环境下进行识别训练和评估工作了,进行了有一天多时间的脚本调整,记录如下:
解决的问题是cygwin目录是以/cygwin/e/..打头的unix方式,而windows版本的htk工具只能识别e:\打头的windows目录方式,在原有的脚本里需要同时提供两套目录描述。
1,将add_to_your_env扩充如下内容:
TRAIN_DOSTIMIT=e:\\asr\\htk\\htk_recipe\\timit;export TRAIN_DOSTIMIT
TRAIN_DOSCOMMON=e:\\asr\\htk\\htk_recipe\\common; export TRAIN_DOSCOMMON
2,用sed将所有htk命令行中目录全部替换如上内容
grep TRAIN_TIMIT *|grep H|grep -v "#"|awk -F : '{print $1}'|sort|uniq|sed -i 's/\(^H.*\)TRAIN_TIMIT/\1TRAIN_DOSTIMIT/g'
grep TRAIN_COMMON *|grep H|grep -v "#"|awk -F : '{print $1}'|sort|uniq|sed -i 's/\(^H.*\)TRAIN_COMMON/\1TRAIN_DOSCOMMON/g'
3, 将train_iter.sh里面htk命令行中的$1换成$7
将所有使用train_iter.sh的命令行最后追加$1对于的DOS目录
4,执行学习,评估批处理:
. add_to_your_env
cd timit
./go.sh