美文网首页
【Kaldi学习】了解+搭建kaldi环境

【Kaldi学习】了解+搭建kaldi环境

作者: Colleen_oh | 来源:发表于2019-04-29 11:31 被阅读0次

    因为自己工作上的需求,近期接触了很多NLP的领域,所以学习这个强大的kaldi模型是肯定不可少的,下面是我的体会,有问题直接提出来啦!!

    一 、了解kaldi

    kaldi是使用c++写的语音识别的工具,听说很强大哈哈哈。主要用于语音识别ASR,但是我近期看到有人用来做声纹识别(说话人识别),后期会一一尝试。
    kaldi是一个语音识别平台,里面含有很多语音识别所需要的模型,比如:gmm,sgmm,dnn和hmm。你可以通过自己的数据在这平台上训练得到自己的模型,然后用于识别。你需要做的也就是改些脚本,适合自己的语音库。跟htk这个平台差不多(真的是不接触kaldi不知道还有个htk,突然发现自己很菜鸡),后面有时间会讲一下这个htk平台。

    二、kaldi的下载

    先说一下我的环境,我是在自己的电脑上装的虚拟机,是ubuntu16.
    先下载kaldi
    因为我是新装的虚拟机,所以我要先装git

    $sudo apt-get install git
    

    然后再安装kaldi

    $git clone https://github.com/kaldi-asr/kaldi.git kaldi-trunk --origin golden
    

    三、kaldi的目录结构+专业术语+依赖包

    目录结构

    1、脚本。包括shell脚本和perl脚本,存放的是Kaldi提供的一些例子。。主要在egs/wsj文件夹下。
    2.工具。一些可执行文件。在src/XXXbin文件夹下。
    3.算法实现。kaldi的源代码,在src/XXX文件夹下。
    工具和算法实现基本都是C/C++写的。外部工具在tools文件夹下,主要是openfst、sctk、sph2pipe。

    专业术语

    LM:language model,语言模型

    KWS:Keyword Search,关键词搜索

    CMVN:cepstral mean and variance,倒谱均值和方差

    G2P:Grapheme-to-Phoneme,字形到音位

    WSJ:Wall Street Journal,华尔街日报

    kaldi依赖包

    1、OpenFST:Weighted Finite State Transducer library,是一个用来构造有限状态自动机的库。是一个构造、合并、优化和搜索加权有限状态机FST的库。我们知道隐马尔科夫模型就可以看成是一个有限状态自动机的。这是最终要的一个包,Kaldi的文档里面说:If you ever want to understand Kaldi deeply you will need to understand OpenFst.
    2、ATLAS:这是一个C++下的线性代数库。做机器学习自然是需要很多矩阵运算的。
    3、IRSTLM:这是一个统计语言模型的工具包。
    4、sph2pipe:这是宾夕法尼亚大学linguistic data consortium(LDC)开发的一款处理SPHERE_formatted数字音频文件的软件,它可以将LDC的sph格式的文件转换成其它格式。
    5、SCTK:Speech Recognition Scoring Toolkit是NIST(National Institute of Standards and Technology, 美国国家标准与技术协会)提出的一套工具集。NIST评分工具包
    6、SRILM:SRILM - The SRI Language Modeling Toolkit是由SRI International提出的一套工具集,主要用于创建和使用统计语言模型。

    四、kaldi的编译

    安装依赖

    安装之前需要确保你安装了这些软件:
    apt-get
    subversion
    automake
    autoconf
    libtool
    g++
    zlib
    libatal
    wget

    在ubuntu下的安装代码为:

    $sudo apt-get install subversion
    $sudo apt-get install automake
    $sudo apt-get install autoconf
    $sudo apt-get install libtool
    $sudo apt-get install g++
    $sudo apt-get install wget
    

    注意安装zlib和 libatlas的时候是用下面的代码

    $sudo apt-get install libatlas-base-dev
    #sudo apt-get install libatlas-dev #我装不成功这个包 我也不知道为什么,但是我没装,,后面也编译成功了
    $sudo apt-get install zlib1g
    $sudo apt-get install zlib1g-dev 
    
    

    安装完后,我们来检查依赖:

    $cd tools
    $extras/check_dependencies.sh
    

    可能会提示我们缺了什么。我就遇到了缺失sox
    然后我输入

    $sudo apt-get install sox subversion
    

    安装依赖后,再检查一次依赖

    $extras/check_dependencies.sh
    

    还是出现,说我缺失Intel MKL,然后提示让我 run extras/install_mkl.sh,run完后,我们再检查一次脚本。

    $extras/install_mkl.sh
    $extras/check_dependencies.sh 
    extras/check_dependencies.sh: all OK.
    

    如果显示上面all OK,证明我们的依赖已经安装好了。接下来我们就编译tools文件夹,记得要在tools的目录下哦!!

    $make -j 4
    

    最后会出现All done OK.那就编译tools文件夹完成了,接下来我们就要编译src文件夹。输入下面的代码,依次运行

    $cd ../src
    $./configure --shared
    $make depend -j 4
    $make -j 4
    

    最后出现Done,就是完成啦!!最后的src文件夹编译我用了一个半小时。时间会长一些。

    下面是我参考的文章,都是挺不错的blog,大家可以去看看:
    https://blog.csdn.net/antkillerfarm/article/details/83268422
    http://www.voidcn.com/article/p-vmvnitbt-bkx.html
    https://blog.csdn.net/snowdroptulip/article/details/78896915

    相关文章

      网友评论

          本文标题:【Kaldi学习】了解+搭建kaldi环境

          本文链接:https://www.haomeiwen.com/subject/ciidnqtx.html