码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Kaldi语音识别工具编译问题记录(踩坑记录)


    请添加图片描述

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

    文章目录

    • 前言
    • 1、cuda
    • 2、openfst
    • 3、SIRLM
    • 4、Kaldi需要升级gcc到5.0及以上
    • 总结


    前言

    最近由于项目需要要研究下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.so和libnvidia-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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    按错误提示添加--no-check-certificate, 修改tools/Makefile
    在这里插入图片描述
    2) error: redeclaration ‘Weight fst::Power(const Weight& size_t)’…
    然后编译时遇到下面错误:

    openfst
    通过错误信息看是, 有函数重复定义了,不可思议,也只能接受。最后还是找到了解决办法:
    https://www.openfst.org/twiki/bin/view/Forum/FstForumopenfst
    很明显了,修改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
    
    • 1

    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
    
    • 1
    • 2

    一切安好~

    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了。
    然而,你可能会遇到又一个错误:
    You need GNU g++ >= 5.0
    完犊子,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
    
    • 1
    • 2
    • 3

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

    总结

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

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

  • 相关阅读:
    华为云云耀云服务器L实例评测|部署在线图表和流程图绘制工具drawio
    《恋上数据结构与算法》第1季:算法概述
    PHP:类型运算符
    2.0、软件测试质量模型、测试流程
    这份Kubernetes学习笔记,看完直呼NB
    .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现
    java如何初始化数组(如:int[]、byte[]等)
    Java八锁现象
    在北京现场调试的这几天
    Kafka系列之:深入理解Kafka Topic数据保留策略
  • 原文地址:https://blog.csdn.net/xxm524/article/details/126239910
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号