qwakeup_train运行遇到的问题记录

运行前需要更改的地方:

1、matlab安装的路径以及matlab的license文件

2、噪声的路径;background.scp,以及噪声文件

3、run.sh文件中一处find $dir 改为 find $task,同样在utils/mixwithnoise.sh也存在这样的问题

数据准备部分:

1、运行时,在utils/mixNoiseWith.sh步出错,查看一下background.scp文件对应的噪声文件是否存在,或者修改噪声文件地址

2、 运行时出错,数据aligns出错,检查*.scp文件为空;

更改产生*.scp文件的utils/mixSpeechWithNoise.sh的查找目录,即可得到*.scp;

3、这样仍存在一个问题是:$dir/../${task}_fbank_*/*.feat> $dir/../${task}_fbank.feat   文件为空;

可能是读取的htkfeau文件为空或者在转化为kaldi格式的特征时,工具有问题,另外一种可能是在写入到*_fbank.feat文件时出错,尚未验证

4、当进行AEC或者NS处理时,htkfeat2kaldifeat一步会出现 double free or corruption的错误

解决办法:

5、在运行时出现这样的情况:主要是在utils/mixSpeechWithNoise.sh这一步时,出现无穷尽的processed ??? utts ,还有在utils/ace.sh步也会出现这样的情况,如下图

是在语料文件夹中生成很多其他文件,之后也会执行。导致一直在执行。

解决方法 :在每次执行前,删除生成的中间文件。

6、

原因:

1)出现至少两个文件名相同

2)在utils/align.sh一步中,用到的可执行文件缺少相应的库文件

解决方法:

1)重命名

2)缺少共享文件libfst.so.1文件,指定对应的动态链接库地址,若对应链接库不存在,需要重新编译,当然·这是在有源码的情况下可以做的。好在本程序包用到的可执行文件(/bin,/lib)大部分是可以在kaldi上找到的,只要将kaidl在GPU平台上编译就好了。【详解见文末】

7、现在遇到的问题是在第一次执行脚本时,在第六步align.sh,会出现问题,

尝试了一下,在不删除生成的中间文件时,

再次执行脚本,align.sh可以通过,但在模型训练部分出现问题,退出,在log日志文件里提示:

解决办法:检查了生成的pcm文件,其中在utils/aec.sh之后,生成的pcm有问题,注释掉utils/aec.sh即可。

8 .  ./wav2feat: error while loading shared libraries: libfst.so.0: cannot open shared object file: No such file or directory

把需要的库文件写入/.bashrc文件或者在path.sh文件里添加所需库的路径。

9、

在GPU上跑,会出现

估计是可执行的二进制文件在CPU上编译的,在GPU上执行通过不了,

解决办法:

把data/kws*和all_20161227拷贝到在CPU上,再执行r1.sh文件,进行模型训练,通过,得到mars.q文件

10、kaldi在GPU上安装

【Centos6.8 显卡GFORCE TITAN X 驱动:DriverVersion:375.26 CUDA:8.0 】

I 安装前准备

安装前你需要对你的centos进行配置,步骤如下:
# yum check-update; 检查更新
# yum install -y; 安装找到的更新,确保已安装的软件是最新版的
依赖软件的安装(如果已经安装可以跳过)。
( 1) sudo yum install libtool
( 2) sudoyum install autoconf
( 3) sudo yum install wget
( 4) sudo yum install perl
( 5) sudo yum install subversion

( 6) sudo yum install zlib

II 安装

( 1)静态库安装方法(默认):
# cd tools; make
# ./install_atlas.sh
# cd ../src; ./configure; %此步骤中只能用configure, 加入--shared会报错:
# make depend; make
( 2) 动态库安装方法:
# cd tools; make
将 install_atlas.sh 中的 ../configure $opt --prefix=`pwd`/install || exit 1;
改为:
../configure $opt --prefix=`pwd`/install --shared|| exit 1;
# ./install_atlas.sh
# cd ../src; ./configure --shared 这里如果报错, 请将--shared去掉

# make depend; make

如果不报错,kaldi大致就装好了

其中要注意

1、新版的kaldi中的irsltlm是没有编译的,需要手动编译一下

2、kaldi目录下,src/cudamatrix中没有编译出可执行文件,所以make test是failture的

下面转到CUDA安装

下载完cuda8.0后,执行如下语句,运行runfile文件:

sudo sh cuda_8.0.27_linux.run

执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia361驱动时,一定要选择否,因为前面我们已经安装了更加新的nvidia367,所以这里不要选择安装。其余的都直接默认或者选择是即可。 
安装成功后会出现如下界面:

===========

= Summary =

===========

Driver: Not Selected

Toolkit: Installed in /usr/local/cuda-8.0

Samples: Installed in /home/textminer

Please make sure that

– PATH includes /usr/local/cuda-8.0/bin

– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as rootTo uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.To install the driver using this installer, run the following command, replacing with the name of this run file:

sudo .run -silent -driver

安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

然后设置环境变量和动态链接库,在命令行输入:

$ sudo gedit /etc/profile

在打开的文件末尾加入:

export PATH = /usr/local/cuda/bin:$PATH

保存之后,创建链接文件:

sudo gedit /etc/ld.so.conf.d/cuda.conf

在打开的文件中添加如下语句:

/usr/local/cuda/lib64

然后执行

sudo ldconfig

使链接立即生效。

3、测试cuda的Samples

cd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery

makesudo ./deviceQuery

如果显示的是一些关于GPU的信息,则说明安装成功了。

查看GPU信息,其中注意

下面转到src/cudamatrix,编译Makefie,CUDA_ARCH=-gencode arch=compute_61,code=sm_61,数字改为上面的计算能力

再make test,你会发现

这样就能顺利训练DNN

总结:此唤醒程序包运行需注意的几点如下:

1、产生的中间文件需删除,包括

还要删除的是语料文件夹中产生的新文件。一定要删除干净!

2、可执行文件的对应链接库存在且指向正确,并且是在该平台上编译通过的。所以的可执行文件都需正确。注意nnet-train-frmshuff需要在GPU上编译通过,这个就涉及到kaldi中cudamatrix的编译,详情见上。

时间: 2024-10-12 19:50:57

qwakeup_train运行遇到的问题记录的相关文章

android 源码编译及其运行模拟器相关问题记录

最近一直在看android源码相关的文档,包括编译源码,还有framework层的代码,本人很懒,一直没有写博客,今天想自己在编译一下源码,并且运行在模拟器中. 源码的版本不同,需要的jdk可能也有所不同,一切都参照官方给与的文档,下载源码的方法也参考官方文档. 注意点:1.环境变量要设置正确,不要出现错误 2.基本没有一次就能顺利编译源码的,多少都会出错,根据提示修改错误,安装一些包和库就可以搞定,具体问题具体查找,我遇到的问题也可多了,都是按官方文档解决的.有些问题可能和你的编译环境相关,这

cygwin 运行java的一些记录

javac编译没问题,但是java执行就不行,处理方式如下 其实就是把宿主机下的java.exe在cygwin下搞一个快捷方式 关于路径问题,可以使用cygpath命令进行宿主机和cygwin间的转换 目前还有个问题就是 cygwin下执行java命令添加 -classpath就执行不了,不知道原因!先记录这些 原文地址:https://www.cnblogs.com/ruber/p/10368327.html

怎么清除Win10运行中的使用记录,不记录win10的运行记录

点击“开始”把上两项关闭.

记录MySQL运行的SQL

对照Oracle功能去学习Mysql总会发现亮点 Oracle中通过日志挖掘这一技能,能够找到以前运行过的全部记录: Mysql中也提供了3种方法{验证过的,我会记录详细做法} 方法1:{已验证} 记录MySQL的全部记录 打开/etc/my.cnf 在[mysqld]以下增加 log = /mnt/mydata/sql.log 重新启动mysql就可以 查看/mnt/mydata/sql.log文件 注意: 1.由于sql.log会由于有大量的写入.注意监控IO和sql.log的大小; 2.调

在Win7(64位)使用VS2015运行《OpenGL编程指南》第八版第一章程序的方法

前言:笔者第一次用vs2015来实现<OpenGL编程指南>第八版第一个程序时确实花费了不少时间,按照网上教程,尝试了各种方法,最终花费了两个上午加一个下午的时间, 成功运行了程序,花了这么多时间,确实让人懊恼,现在把运行程序的步骤记录下来,以便查阅. 1.第一步,下载oglpg-8th-edith. 如果去书本上的官网下载,下载的是第九版的,而不是第八版的源码. 去其他网站下载,下载的这个包里面没有第一章的源码,可以网上黏贴其他人的代码,建议下第八版源码,下载网址:链接:http://pan

怎样判定应用程序自身运行在“兼容模式”下?

P.S.话说有很多天很多天没有写东东了啊,因为实在太忙了,还是恢复至少一个月两篇的状态吧. 我们的程序有时候需要精确的判定当前运行在哪个系统下面,也就是说程序的某个功能可能需要知道当前运行在哪个真正的操作系统下,而操作系统提供了一个兼容模式功能,就是用户可以设置某个程序运行在某个模拟的更低的版本的操作系统下面,这是有好处的,因为某些程序在某些更高版本的操作系统下面可能发生兼容性问题而无法运行.在设置兼容模式运行后,程序里面调用ring3层的GetVersionEx得到的将是模拟的的操作系统版本,

mysql 单表百万级记录查询分页优化

insert select (制造百万条记录) 在开始百万级数据的查询之前,自己先动手制造百万级的记录来供我们使用,使用的方法是insert select方法 INSERT 一般用来给表插入一个指定列值的行.但是,INSERT 还存在另一种形式,可以利用它将一条SELECT 语句的结果插入表中.这就是所谓的INSERT SELECT, 顾名思义,它是有一条INSERT语句和一条SELECT语句组成的. 现在,有一个warning_reparied表,有2447条记录,如下: mysql> sel

良好的日志记录规范

基本原则: 1.  在程序开始运行应该以INFO记录程序开始运行的消息. 2.  在程序初始化过程中,如果影响程序主体正常运行错误出现,应该以FATAL记录出现错误的函数名.事件和错误号:如果只是一个不影响程序正常功能的模块出现错误,则应该以ERROR记录出现错误的函数名.模块名.事件和错误号. 3.  在程序初始化完成后,应该以INFO记录程序初始化完成的消息. 4.  在函数的入口,如果需要验证参数,则可以以DEBUG的形式输出参数的信息.如果重要参数不正确,则应该以ERROR输出. 5. 

CyanogenMod源码下载、编译、刷机过程记录(HTC buzz)

一.背景介绍 CyanogenMod(简称CM):Cyanogen团队是基于开源的AOSP源码的,目前全球最大的Android第三方编译团队.用户可以通过CM源码编译出适用特定机型的刷机包,并将编译出来的刷机包刷到相应的手机里. Cyanogenmod官方支持的手机设备类型有Htc.Samsung.Huawei.Sony等其各自旗下的主流型号,通过以下网址可以查看Cyanogenmod官方支持的手机设备及对应CM版本. http://wiki.cyanogenmod.org/w/Devices#