k2语音识别:使用docker快速部署k2
新一代Kaldi包含Lhotse、k2、Icefall、sherpa,是有着良好的生态且专于ASR的开源项目,k2的模型较丰富,推理速度快准确度高、且支持并行解码。其中icefall主要用于各种模型的训练,eg非常详细,几乎包含数据预处理、训练、模型评估和预测,模型导出、量化,及转换onnx的所有步骤;而sherpa可以用于快速部署语音识别服务,开箱即用的方式,可以快速应用于项目生产。项目源码简洁干练,可读性强,从中亦能学到软件架构、设计模式、神经网络计算等知识。
那么如何使用docker快速部署新一代kaldi?
一、准备工作,首先对系统环境做基本了解:
宿主机系统windows10/11或linux/ubuntu20等,需要装有支持cuda10.1+显卡,以便进行模型训练和GPU推理(仅部署CPU推理服务,则不需要)。
在宿主机系统中安装nvidia-docker 。
在宿主机系统中安装nvidia cuda驱动,文中使用 CUDA 11.6/11.7。
可使用python3.7+,文中使用Python3.8(推荐python3.8+)。
文中使用nvidia/cuda:11.0-base基础镜像,也可以使用官方提供的其他更新版本的镜像。
Sherpa里websocket服务需要开启的端口:6006、6008(使用dockerx镜像部署,docker run的时候,需提前做好端口映射)。
若使用conda安装,可直接跳过docker的步骤,在conda的虚拟环境中安装好cuda+cudnn之后,执行步骤8及后续操作。
二、在docker中部署k2的具体操作步骤
1.拉取基础镜像
测试:
2.使用基础镜像启动一个容器
3.进入容器
4.安装依赖
清除apt-get缓存
5.安装cudatoolkit,去掉驱动选项,然后Install:
修改环境变量,并添加:
使环境变量生效:
查看:
6.安装cudnn
查看cuDNN的信息:
(完成以上步骤,可建快照,以复用。)
7.安装torch(与cuda版本配套的torch)
8.安装lhotse(只推理不训练,例如仅体验sherpa,可跳过此步骤)
9.安装icefall(只推理不训练,例如仅体验sherpa,可跳过此步骤)
10.安装kaldifeat
11.安装k2
12.安装sherpa
以上部署成功之后,使用sherpa可快速体验新一代kaldi。