k2語音識別:使用docker快速部署k2
新一代Kaldi包含Lhotse、k2、Icefall、sherpa,是有著良好的生態(tài)且專于ASR的開源項目,k2的模型較豐富,推理速度快準確度高、且支持并行解碼。其中icefall主要用于各種模型的訓練,eg非常詳細,幾乎包含數(shù)據(jù)預處理、訓練、模型評估和預測,模型導出、量化,及轉(zhuǎn)換onnx的所有步驟;而sherpa可以用于快速部署語音識別服務,開箱即用的方式,可以快速應用于項目生產(chǎn)。項目源碼簡潔干練,可讀性強,從中亦能學到軟件架構(gòu)、設(shè)計模式、神經(jīng)網(wǎng)絡(luò)計算等知識。
那么如何使用docker快速部署新一代kaldi?
一、準備工作,首先對系統(tǒng)環(huán)境做基本了解:
宿主機系統(tǒng)windows10/11或linux/ubuntu20等,需要裝有支持cuda10.1+顯卡,以便進行模型訓練和GPU推理(僅部署CPU推理服務,則不需要)。
在宿主機系統(tǒng)中安裝nvidia-docker 。
在宿主機系統(tǒng)中安裝nvidia cuda驅(qū)動,文中使用 CUDA 11.6/11.7。
可使用python3.7+,文中使用Python3.8(推薦python3.8+)。
文中使用nvidia/cuda:11.0-base基礎(chǔ)鏡像,也可以使用官方提供的其他更新版本的鏡像。
Sherpa里websocket服務需要開啟的端口:6006、6008(使用dockerx鏡像部署,docker run的時候,需提前做好端口映射)。
若使用conda安裝,可直接跳過docker的步驟,在conda的虛擬環(huán)境中安裝好cuda+cudnn之后,執(zhí)行步驟8及后續(xù)操作。
二、在docker中部署k2的具體操作步驟
1.拉取基礎(chǔ)鏡像
測試:
2.使用基礎(chǔ)鏡像啟動一個容器
3.進入容器
4.安裝依賴
清除apt-get緩存
5.安裝cudatoolkit,去掉驅(qū)動選項,然后Install:
修改環(huán)境變量,并添加:
使環(huán)境變量生效:
查看:
6.安裝cudnn
查看cuDNN的信息:
(完成以上步驟,可建快照,以復用。)
7.安裝torch(與cuda版本配套的torch)
8.安裝lhotse(只推理不訓練,例如僅體驗sherpa,可跳過此步驟)
9.安裝icefall(只推理不訓練,例如僅體驗sherpa,可跳過此步驟)
10.安裝kaldifeat
11.安裝k2
12.安裝sherpa
以上部署成功之后,使用sherpa可快速體驗新一代kaldi。