Linux Mint 22 部署 Vosk-API 安装避坑:离线语音识别一次跑通
【免费下载链接】vosk-apiOffline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node项目地址: https://gitcode.com/GitHub_Trending/vo/vosk-api
CMake Error: The following required packages were not found: kaldi
第一次执行cmake ..时,这行日志会迎面撞过来。它是 Vosk-API 安装过程中 Kaldi 依赖在报错。Vosk 是一套离线语音识别工具包,模型小到 50MB,从树莓皮跑到大服务器。整个部署的力气,八成都花在 Kaldi 这一步。下面这些坑按出现频率排,你卡在哪条就看哪条。
环境快照:动手前核对这六项
先盘点一下机器,这张表过了,一半的问题直接消失。
| 项目 | 最低线 | 说明 |
|---|---|---|
| 系统 | Linux Mint 22(基于 Ubuntu 24.04) | g++ 13.2 默认就有,满足 C++17 |
| CMake | ≥ 3.13 | 22 默认装 3.28,CMakeLists.txt 要求 3.13 |
| g++ | ≥ 7.0 | C++17 是硬要求,太老的编译器编不过 |
| Kaldi | 源码编译 | apt 里没有,只能自己编 |
| 内存 | ≥ 4 GB | Kaldi 的make -j要吃 1~2 GB |
| 磁盘 | ≥ 5 GB 空闲 | Kaldi 构建产物 + Vosk 模型 |
Mint 22 默认装齐了其他几项,真正缺的只有 Kaldi。后面所有的坑都围着它转。
Kaldi 路径类报错:两行排查命令,两个根因
⚠️ 这个坑占 Vosk 离线语音识别部署失败的大头。根因只有两个:KALDI_ROOT 没导出、LD_LIBRARY_PATH 缺失。
直接跑排查:
两行命令,看变量导没导、哪些库没找到。
$ echo $KALDI_ROOT # 输出为空就是没导出 $ ldd build/libvosk.so | grep "not found" # 看缺哪些 Kaldi 的库第一行为空,CMake 自然找不到 Kaldi。说白了就像地图 App 没有你家的 GPS 坐标,导航无从谈起。
第二个根因藏在运行期:libkaldi-base.so加载失败。那是 LD_LIBRARY_PATH 没指到 Kaldi 的 lib 目录。
Kaldi 本身还没编过?克隆好 Kaldi 仓库后,关键就三步:
$ cd kaldi/tools && make -j$(nproc) # 先把工具链建出来 $ cd ../src && ./configure --shared # 重点:开动态链接 $ make -j$(nproc) # 编核心库完整构建参数和目录结构见仓库 training/README.md。
把两个变量写进 shell 配置,立即生效:
$ echo 'export KALDI_ROOT=$HOME/kaldi' >> ~/.bashrc $ echo 'export LD_LIBRARY_PATH=$KALDI_ROOT/src/lib:$LD_LIBRARY_PATH' >> ~/.bashrc $ source ~/.bashrc # 不用重开终端路径理顺了,CMake 那边还有三个容易翻车的地方。
CMake 编译错误三则:症状、原因
【免费下载链接】vosk-apiOffline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node项目地址: https://gitcode.com/GitHub_Trending/vo/vosk-api
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考