`
haoningabc
  • 浏览: 1465894 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

kaldi在mac下基本使用

阅读更多
############ kaldi安装:
通用的安装参考http://jrmeyer.github.io/asr/2016/01/26/Installing-Kaldi.html


需要python3.7.4
conda create -n kaldi python=3.7.4
conda activate kaldi

 brew install automake sox



MKL安装:

官网下载,注册学生,
https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17172/m_mkl_2020.4.301.dmg

然后去邮箱里链接下载

MKL就安装成功了

git clone https://github.com/kaldi-asr/kaldi
git branch -a
git checkout -b 5.4 remotes/origin/5.4

cd kaldi/tools
./extras/check_dependencies.sh

OK之后

其中Makefile 中的
tar --exclude '*NONE*html' -xmaf sctk-$(SCTK_GITHASH).tar.gz
去掉参数a
改成 tar --exclude '*NONE*html' -xmf sctk-$(SCTK_GITHASH).tar.gz


make 

不要 make -j8

Warning: IRSTLM is not installed by default anymore. If you need IRSTLM
Warning: use the script extras/install_irstlm.sh
All done OK.


继续再tools中
./extras/install_irstlm.sh



.././install-sh -c -d '/Users/haoning02/Desktop/iosapp/kaldi/tools/irstlm/include'
/usr/bin/install -c -m 644 cmd.h thpool.h dictionary.h gzfilebuf.h htable.h index.h lmContainer.h lmclass.h lmmacro.h lmtable.h lmInterpolation.h mempool.h mfstream.h n_gram.h ngramcache.h ngramtable.h timer.h util.h crc.h interplm.h linearlm.h mdiadapt.h mixture.h normcache.h shiftlm.h cplsa.h cswam.h doc.h '/Users/haoning02/Desktop/iosapp/kaldi/tools/irstlm/include'
Making install in scripts
make[2]: Nothing to be done for `install-exec-am'.
.././install-sh -c -d '/Users/haoning02/Desktop/iosapp/kaldi/tools/irstlm/bin'
/usr/bin/install -c add-start-end.sh build-lm-qsub.sh build-lm.sh rm-start-end.sh split-ngt.sh mdtsel.sh build-sublm.pl goograms2ngrams.pl lm-stat.pl merge-sublm.pl ngram-split.pl sort-lm.pl split-dict.pl plsa.sh '/Users/haoning02/Desktop/iosapp/kaldi/tools/irstlm/bin'
Making install in doc
make[2]: Nothing to be done for `install-exec-am'.
/Applications/Xcode.app/Contents/Developer/usr/bin/make  install-exec-hook
cd /Users/haoning02/Desktop/iosapp/kaldi/tools/irstlm/ && \
  ln -s -n -f lib lib64
make[2]: Nothing to be done for `install-data-am'.
***() Installation of IRSTLM finished successfully
***() Please source the tools/env.sh in your path.sh to enable it


在tools下
cd ../src

./configure
make depend
make




########### 基本例子:

cd kaldi/egs/yesno/s5

wget http://www.openslr.org/resources/1/waves_yesno.tar.gz
tar xvf waves_yesno.tar.gz
./run.sh



#################error: 在5.4版本,kaldi/tools 下make报错

shorten_x.c:325:22: error: implicit declaration of function 'pcm2alaw' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                    *writebufp++ = pcm2alaw( ulaw2pcm[data0[i]] );

是sph2pipe_v2.5 的问题

用这个补丁:

https://github.com/kaldi-asr/kaldi/pull/4285/files
sph2pipe.c加#include <unistd.h>

ulaw.h 加
uchar pcm2ulaw( short int sample );
uchar pcm2alaw( short int pcmval );


##########error:在5.4版本,kaldi/tools 下make报错  , sctk-2.4.10 报错

align.c:933:15: error: implicit declaration of function 'getpid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    int pid = getpid();

需要把Makefile中的sctk每次强制解压注释掉

.PHONY: sctk
sctk: sctk-2.4.10-20151007-1312Z.tar.bz2
#   tar xojf sctk-2.4.10-20151007-1312Z.tar.bz2 || \
#      tar --exclude '*NONE*html' -xvojf sctk-2.4.10-20151007-1312Z.tar.bz2
    rm -rf sctk && ln -s sctk-2.4.10 sctk


再修改:
./sctk-2.4.10/src/sclite/align.c

#include <unistd.h>

pid_t getpid(void);
pid_t getppid(void)

#########
sclite.c:579:15: error: implicit declaration of function 'TEXT_set_lang_prof' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                if (!TEXT_set_lang_prof(argv[opt+1]))

在 ./sctk-2.4.10/src/sclite/sctk.h


#include <unistd.h>
int TEXT_set_lang_prof(char *);


sctkUnit.c:1156:6: error: implicit declaration of function 'TEXT_set_lang_prof' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
     TEXT_set_lang_prof("babel_turkish");


./sctk-2.4.10/src/sclite/sctkUnit.c


#include <unistd.h>
int TEXT_set_lang_prof(char *);

##############



Showing All Messages
Undefined symbol: void kaldi::OnlineSilenceWeighting::ComputeCurrentTraceback<fst::Fst<fst::ArcTpl<fst::TropicalWeightTpl<float> > > >(kaldi::LatticeFasterOnlineDecoderTpl<fst::Fst<fst::ArcTpl<fst::TropicalWeightTpl<float> > > > const&)

Showing All Messages
Undefined symbol: void kaldi::OnlineSilenceWeighting::ComputeCurrentTraceback<fst::Fst<fst::ArcTpl<fst::TropicalWeightTpl<float> > > >(kaldi::LatticeFasterOnlineDecoderTpl<fst::Fst<fst::ArcTpl<fst::TropicalWeightTpl<float> > > > const&)



Showing All Messages
Undefined symbol: kaldi::SingleUtteranceNnet3DecoderTpl<fst::Fst<fst::ArcTpl<fst::TropicalWeightTpl<float> > > >::GetBestPath(bool, fst::VectorFst<fst::ArcTpl<fst::LatticeWeightTpl<float> >, fst::VectorState<fst::ArcTpl<fst::LatticeWeightTpl<float> >, std::__1::allocator<fst::ArcTpl<fst::LatticeWeightTpl<float> > > > >*) const




git checkout -b 5.4 remotes/origin/5.4
这个版本不行,编译完的kaldi-ios.a缺少
OnlineSilenceWeighting
SingleUtteranceNnet3DecoderTpl

grep -nR SingleUtteranceNnet3DecoderTpl *




git checkout -b new-slurm.pl remotes/origin/kkm/new-slurm.pl

但是这个没有

Showing All Messages
Undefined symbol: kaldi::g_program_name

Showing All Messages
Undefined symbol: void kaldi::OnlineSilenceWeighting::ComputeCurrentTraceback<fst::Fst<fst::ArcTpl<fst::TropicalWeightTpl<float> > > >(kaldi::LatticeFasterOnlineDecoderTpl<fst::Fst<fst::ArcTpl<fst::TropicalWeightTpl<float> > > > const&)


Showing All Messages
Undefined symbol: kaldi::FatalMessageLogger::FatalMessageLogger(kaldi::LogMessageEnvelope::Severity, char const*, char const*, int)



所以既要有FatalMessageLogger 又要有 SingleUtteranceNnet3DecoderTpl 的branch还要继续找


###########
精简版:
python3.7.4
git clone https://github.com/kaldi-asr/kaldi
git branch -a


git checkout -b new-slurm.pl remotes/origin/kkm/new-slurm.pl
cd kaldi/tools

./extras/check_dependencies.sh
make
解决各种不兼容问题,implicit declaration of function ,基本都是引入 #include <unistd.h> 加缺的声明就好了

./extras/install_irstlm.sh


cd ../src

./configure
make depend

如果本地运行用make
如果编译成ios的库用build-kaldi-ios.sh
这个脚本里面有make ,会编译成ios能用的kaldi-ios.a














分享到:
评论

相关推荐

    语音识别kaldi安装

    1. 使用Kaldi:在安装和配置完成后,你可以使用Kaldi来进行语音识别。例如,你可以使用Kaldi来识别语音信号,并将其转换为文本信息。 2. 优点:Kaldi的优点是它提供了一个灵活的框架,可以用来构建语音识别系统。...

    kaldi入门资料整理

    对于Kaldi的学习和使用,文档鼓励用户积极参与群组讨论,学习交流,并且在学习过程中深入理解代码和脚本,不仅会运行,还要理解其背后的原理。文档还说明了版本更新日志和资源下载的途径,强调了学习Kaldi是一个持续...

    kaldi语音识别资料.rar_kaldi_kaldi pdf 0.7_kaldi资料_语音识别

    基于kaldi的语音识别小系统搭建以及kaldi的全部资料

    用于Android平台进行kaldi编译的CLAPACK-3.2.1.zip

    然而,官方发布的CLAPACK库通常是为了标准的Linux、Windows或Mac OS等桌面环境设计的,直接在Android环境下编译可能会遇到问题,因为Android使用的是不同的编译工具链(NDK,即Android Native Development Kit)。...

    kaldi语音识别教程

    音響模型主要关注在给定发音类别下特征量出现的概率,而语言模型则提供了识别目标范畴的先验概率。在概率最大化的过程中,利用贝叶斯定理进行变形,通过维特比算法(Viterbi algorithm)来寻找最可能的词序列,即...

    kaldi学习资料

    2. Kaldi的特色:强调Kaldi在与文本无关的大型词汇连续语音识别(LVCSR)系统的应用,以及在训练和解码过程使用FST(有限状态转换器),最大似然训练,线性和映射变换,以及具有VTLN(语音变换线性)和SAT(说话人...

    kaldi voxforge online demo

    通过这个Demo,初学者可以了解Kaldi的基本工作流程,包括数据处理、模型训练、在线解码等关键步骤。同时,它也是一个实用的教学工具,帮助开发者理解如何将理论知识转化为实际应用。对于有经验的开发者,Demo可以...

    Kaldi 和语音识别

    1. **噪声环境下的鲁棒性**:Kaldi 支持多种降噪技术和信号增强方法,可以有效提升在噪声环境下的识别精度。 2. **非标准化口音处理**:通过使用大规模的数据集训练模型,Kaldi 能够更好地适应不同口音的语音数据。 ...

    kaldi-master.zip

    这个目录下包含了一系列的示例脚本和实验,它们展示了如何使用Kaldi进行不同的语音识别任务。这些例子通常包括数据预处理、模型训练、解码等步骤,是初学者快速上手Kaldi的好起点。通过这些例子,你可以学习如何...

    Dan介绍Kaldi2的ppt

    在Kaldi2的发展中,近期的工作和未来计划着重于下一代的改进,以实现更好的性能和更高效的解码。其中,RNN-T(递归神经网络转录器)成为了一个关键的技术方向。 **RNN-T与Kaldi2的近况** RNN-T模型,结合了递归...

    kaldi-master.zip_kaldi_kaldi 源码_声纹识别_音频_音频识别

    kaldi 源码,音频识别,声纹识别等的相关工具源码

    kaldi最新源码

    对于初学者,可以先阅读Kaldi的官方文档,了解基本概念和使用流程。随着对Kaldi的理解加深,可以尝试修改和优化模型,甚至参与社区贡献代码,推动技术进步。 总之,"kaldi最新源码"是深入了解和研究语音识别技术的...

    Kaldi的全部资料v07

    对于初学者,2016kaldi 资料归纳和总结0.7.pdf文档是一个宝贵的资源,它涵盖了Kaldi的基本概念、安装指南、数据准备、模型训练以及实际应用案例,有助于快速上手Kaldi项目。 总的来说,Kaldi是一个强大的工具,它在...

    kaldi自由说训练好的模型

    利用从网上下载的kaldi源码和语音数据,训练好的支持自由说的模型,是模型,模型,模型!...不是源码,也不是其他的语音资源文件,需要的朋友可以下载下来,结合kaldi中eg5/aishell/s5的例子使用!

    Kaldi 语音识别基础教程-01.pdf

    Kaldi 语音识别基础教程-01.pdf

    语音识别大神dan-povery介绍kaldi的ppt.rar

    在信息技术领域,语音识别技术已经成为人机交互的关键一环,而Kaldi作为开源的语音识别工具包,因其强大的功能和灵活性,深受广大开发者和研究者的喜爱。本篇文章将基于语音识别大神Dan Povey的PPT,深入浅出地讲解...

    kaldi的全部资料_v0.4.zip

    在深入探讨Kaldi之前,我们先来了解一下Kaldi的基本信息。 Kaldi是由Michael Povey、Sanjeev Khudanpur、John H. L. Hansen等人开发的一个C++语音识别工具包,主要面向学术界和工业界的研究者。它支持多种语音识别...

    构建Kaldi需要的openfst和测试Kaldi是否安装成功的音频文件

    资源里面有两个文件夹,一个是构建Kaldi语音识别工具箱非常重要的openfst,版本为1.6.7,将名称为openfst-1.6.7的文件拷贝到tools文件夹下。另一个文件是最后测试工具是否安装成功的音频,可以拷贝到Kaldi的egs-&gt;yes...

Global site tag (gtag.js) - Google Analytics