kaldi语音识别工具编译问题记录(踩坑记录)(代码片段)

小小马车夫 小小马车夫     2022-12-01     160

关键词:

✨ 博客主页:小小马车夫的主页

文章目录


前言

最近由于项目需要要研究下ASR语言识别,用到了Kaldi语音识别工具,Kaldi是一个语音识别的工具箱,由C++语言开发,外围用shell脚本或其他脚本调用。这里主要记录下一在编译Kaldi时遇到各种问题(坑)。

1、cuda

首先是又官网下载cuda:
https://developer.nvidia.com/cuda-downloads

安装cuda遇到了依赖的问题(说来也奇怪同事安装的时候什么错也没遇到,吐嘈):
*** Requires: libwayland-client.so.0()(64bit) ***
*** Requires: libnvidia-egl-wayland.so.1()(64bit) ***

说明是缺库libwayland-client.solibnvidia-egl-wayland.so,那就下载对应的库,安装之后又报错:


没办法,继续下载吧,最后依赖库下载地址如下:

ibwayland-client-1.15.0-1.el7.x86_64.rpm
egl-wayland-1.1.6-1.el7.x86_64.rpm
libglvnd-1.0.1-0.6.git5baa1e5.el7.x86_64.rpm
libwayland-server-1.15.0-1.el7.x86_64.rpm
libglvnd-egl-1.0.1-0.6.git5baa1e5.el7.x86_64.rpm
https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/e/egl-wayland-1.1.6-1.el7.x86_64.rpm
http://mirror.centos.org/centos/7/os/x86_64/Packages/libwayland-client-1.15.0-1.el7.x86_64.rpm
https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/libglvnd-1.0.1-0.6.git5baa1e5.el7.x86_64.rpm
http://mirror.centos.org/centos/7/os/x86_64/Packages/libwayland-server-1.15.0-1.el7.x86_64.rpm
https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/libglvnd-egl-1.0.1-0.6.git5baa1e5.el7.x86_64.rpm
挨个下载下来安装吧:
rpm -ivh bwayland-client-1.15.0-1.el7.x86_64.rpm
rpm -ivh libglvnd-1.0.1-0.6.git5baa1e5.el7.x86_64.rpm
lrpm -ivh libwayland-server-1.15.0-1.el7.x86_64.rpm
rpm -ivh libglvnd-egl-1.0.1-0.6.git5baa1e5.el7.x86_64.rpm
rpm -ivh egl-wayland-1.1.6-1.el7.x86_64.rpm

2、openfst

openfst编译首先会遇到下面的错误:

1) ERROR: cannot verify www.openfst.org’s certificate, issued by ‘/C=US/O=Let’s Encrypt/CN=R3’: Issued certificate has expired.To connect to www.openfst.org insecurely, use `–no-check-certificate’

ERROR: cannot verify www.openfst.org's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
  Issued certificate has expired.
To connect to www.openfst.org insecurely, use `--no-check-certificate'.
ERROR: cannot verify www.openslr.org's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
  Issued certificate has expired.
To connect to www.openslr.org insecurely, use `--no-check-certificate'.
make: *** [openfst-1.7.2.tar.gz] Error 5

按错误提示添加--no-check-certificate, 修改tools/Makefile

2) error: redeclaration ‘Weight fst::Power(const Weight& size_t)’…
然后编译时遇到下面错误:


通过错误信息看是, 有函数重复定义了,不可思议,也只能接受。最后还是找到了解决办法:
https://www.openfst.org/twiki/bin/view/Forum/FstForum
很明显了,修改tools/openfst-1.7.2/src/include/fst/weight.h如下:

重新编译: make openfst 一切正常了。

3、SIRLM

1) Usage: extras/install_srilm.sh < name > < organization > < email >
编译SIRLM首先会遇到下述错误:


看错误提示,是需要参数,先自己造一下:

extras/install_srilm.sh zhangsan china.com test@163.com

2) srilm.tgz下载不下来
srilm.tgz这个原因主要是连接根本打不开,没办法,自己另找其办法下载吧:
https://github.com/gsayer/SRILM
下载下来后解压,得到srilm-1.7.3.tar.gz, 把它改名为srilm.tgz, 放到tools下面,继续编译:

cd tools
extras/install_srilm.sh

一切安好~

4、Kaldi需要升级gcc到5.0及以上

gcc(configure failed: c++ (g++ 4.8.5) is not supported You need GNU g++ >= 5.0, Apple clang >= 6.0 or LLVM clang >= 3.5. ***)
上面所有的依赖安装完了,并把错误都解决了,就可以编译Kaldi了。
然而,你可能会遇到又一个错误:

完犊子,gcc需要升级,在此说明一下,博主刚开始是下载gcc的tar包安装的,为此还升级了make和glibc,最后glibc升级没有报错但有问题,导致系统所有的命令都不能用了,最后还重装了系统。因此,强烈不建议对手动升级gcc不熟悉的朋友这么做!!
好在,最后还是找到了解决办法:

yum install -y centos-release-scl
yum install -y devtoolset-7-gcc devtoolset-7-gcc-c++
scl enable devtoolset-7 bash

感谢这篇博客的博主:https://blog.csdn.net/qq_50607888/article/details/123908033

总结

以上就是博主在编译Kaldi时踩的坑,记录下来,如果你也遇到同样的错误,希望对你有帮助~

如果觉得有些帮助或觉得文章还不错,请关注一下博主,你的关注是我持续写作的动力。另外,如果有什么问题,可以在评论区留言,或者私信博主,博主看到后会第一时间回复。
【间歇性的努力和蒙混过日子,都是对之前努力的清零】
欢迎转载,转载请注明出处:https://blog.csdn.net/xxm524/article/details/126239910

语音识别工具kaldi下载与安装(代码片段)

1、下载Kaldi是用C++编写的开源语音识别工具包,在ApacheLicensev2.0下免费提供。Kaldi旨在提供灵活且可扩展的组件,包括多种语音信号处理,语音识别,声纹识别和深度神经网络。git下载地址:https://github.co... 查看详情

语音识别工具kaldi下载与安装(代码片段)

1、下载Kaldi是用C++编写的开源语音识别工具包,在ApacheLicensev2.0下免费提供。Kaldi旨在提供灵活且可扩展的组件,包括多种语音信号处理,语音识别,声纹识别和深度神经网络。git下载地址:https://github.co... 查看详情

语音识别工具kaldi下载与安装(代码片段)

1、下载Kaldi是用C++编写的开源语音识别工具包,在ApacheLicensev2.0下免费提供。Kaldi旨在提供灵活且可扩展的组件,包括多种语音信号处理,语音识别,声纹识别和深度神经网络。git下载地址:https://github.co... 查看详情

kaldi语音识别基础教程(代码片段)

Kaldi介绍Kaldi是由C++编写的语音识别工具,其目的在于为语音识别研究者提供一个研究和使用的平台。Kaldi环境搭建本文主要通过使用Docker和Nvidia-docker构建Ubuntu环境对Kaldi进行搭建。Docker针对的是无GPU的环境,Nvidia-docker针对的是... 查看详情

系统编译踩坑记录

问题1. Cause:executingexternalnativebuildforcmake报错  尝试1. 通过./gradlewbuild--stacktrace 查看编译报错细节 问题2. 使用gradle进行编译打包产生java.lang.OutOfMemoryError:GCoverheadlimitexceeded在gradle.properites文件中添加如下配置即可org.gr 查看详情

系统编译踩坑记录

问题1. Cause:executingexternalnativebuildforcmake报错  尝试1. 通过./gradlewbuild--stacktrace 查看编译报错细节问题2. 使用gradle进行编译打包产生java.lang.OutOfMemoryError:GCoverheadlimitexceeded在gradle.properites文件中添加如下配置即可org.gra 查看详情

语音识别工具asv-subtools介绍与安装(代码片段)

...地址:https://github.com/Snowdar/asv-subtools2、安装安装Kaldi语音识别工具,具体参考:【语音识别工具】kaldi下载与安装新建工程文件mkdir-pkaldi/egs/xmuspeech/sre克隆代码到指定文件cdkaldi/egs/xmuspeech/sregitclonehttps://github.com/Snowdar/a... 查看详情

kaldi之父danielpovey,我为啥选择在小米开发下一代kaldi

...本文约3185字,建议阅读6分钟本文介绍Kaldi之父DanielPovey对语音识别领域技术发展的想法。在2019年小米开发者大会上,Kaldi之父DanielPovey以小米首席语音科学家的身份第一次和国内开发者见面,并表示将继续在小米进行Kaldi的版本... 查看详情

从语音识别意图记录/保存音频

】从语音识别意图记录/保存音频【英文标题】:record/saveaudiofromvoicerecognitionintent【发布时间】:2014-05-2715:58:36【问题描述】:我想保存/录制Google识别服务用于语音转文本操作的音频(使用RecognizerIntent或SpeechRecognizer)。我经历... 查看详情

[转]kaldi语音识别

转:http://ftli.farbox.com/post/kaldizhong-wen-shi-bie Kaldi语音识别1.声学建模单元的选择1.1对声学建模单元加入位置信息2.输入特征3.区分性技术4.多音字如何处理?5.NoiseRobustASR6.DeepLearning[DNN/CNN替换GMM]7.在手机等资源受限设备author:Feiten... 查看详情

语音识别工具asv-subtools介绍与安装(代码片段)

1、下载ASV-Subtools是基于Pytorch和Kaldi开发的,主要用于说话人识别、语言识别等任务。ASV-Subtools包含三个主要分支:基本Shell脚本:数据处理、后端评分(大多数基于Kaldi)Kaldi:基本模型的训练(x-vector、TDNN、F-TDNN和多任务学习x-... 查看详情

语音识别工具asv-subtools介绍与安装(代码片段)

1、下载ASV-Subtools是基于Pytorch和Kaldi开发的,主要用于说话人识别、语言识别等任务。ASV-Subtools包含三个主要分支:基本Shell脚本:数据处理、后端评分(大多数基于Kaldi)Kaldi:基本模型的训练(x-vector、TDNN、F-TDNN和多任务学习x-... 查看详情

在使用语音识别时记录音频数据?

】在使用语音识别时记录音频数据?【英文标题】:recordaudiodatawhileusingspeechrecognition?【发布时间】:2013-08-2014:34:16【问题描述】:我成功地在我的C#应用程序中使用.NET语音识别部分来处理基本的谈话内容。除此之外,是否可以... 查看详情

[语音识别]kaldi--aidatatang_200zh脚本解析:词典准备(代码片段)

输入:text(所有录音的分词文本信息-如果是自己的数据没有人工分词可能要提前jieba等工具分词一下)输出:data/local/dict文件夹(含extra_questions.txt、lexicon.txt、silence_phones.txt、nonsilence_phones.txt、optional_silence.txt等文件)local/prepare_di... 查看详情

pyltp安装踩坑记录(代码片段)

...研究中心开发,提供包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等丰富、高效、精准的自然语言处理技术。LTP的源码是C++,也提供Java和Python版本。Python版本的安装方法是在cmd下输入pipinstallpyltp安装... 查看详情

系统编译踩坑记录

...vebuildforcmake报错  尝试1. 通过./gradlewbuild--stacktrace 查看编译报错细节问题2. 使用gradle进行编译打包产生java.lang.OutOfMemoryError:GCoverheadlimitexceeded在gradle.properites文件中添加如下配置即可org.gradle.jvmargs=-Xmx4096m问题2. 总是提示wine... 查看详情

kibana5.5源码编译踩坑记录

由于项目需要定制开发kibana,因此需要编译kibana,在开发环境下运行。 注意:必须下载kibana5.5的源码才能正常编译,下载release或者snapshot版本是不行的,运行npmstart会因为无scripts目录报错。  SettingUpkibanaDevelopmentEnviron... 查看详情

使用windows下的git工具往github上传代码踩坑记录

使用Windows下的git工具往github上传代码踩坑记录背景由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己的github上做个管理,也当熟悉下git的操... 查看详情