python使用vosk進行中文語音識別

操作系統:Windows10

Python版本:3.9.2

vosk是一個離線開源語音識別工具,它可以識別16種語言,包括中文。

這裏記錄下使用vosk進行中文識別的過程,以便後續查閱。 

vosk地址:https://alphacephei.com/vosk/

使用vosk-server進行語音識別

 使用docker啓動vosk服務

1、獲取vosk

[root@host32 ~]# docker search alphacep
NAME                             DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
alphacep/kaldi-ru                Russian websocket server for streaming speec…   11
alphacep/kaldi-en                English websocket server for streaming speec…   10
alphacep/kaldi-vosk-server       Websocket-based server for speech recognitio…   8
alphacep/kaldi-de                German websocket server for streaming speech…   4
alphacep/kaldi-cn                Chinese websocket server for streaming speec…   3
alphacep/kaldi-manylinux         Helper image to build python modules for pypi   3
alphacep/kaldi-en-gpu            Vosk GPU websocket server for fast processin…   2
alphacep/kaldi-en-in             Streaming speech recognition based on Kaldi …   1
alphacep/kaldi-grpc-en           Speech recognition gRPC server based on Kald…   0
alphacep/kaldi-es                                                                0
alphacep/dockcross-linux-armv7                                                   0
alphacep/vosk-unimrcp                                                            0
alphacep/kaldi-fr                French websocket server for streaming speech…   0
alphacep/kaldi-vosk-server-gpu   Vosk GPU websocket server for fast processin…   0
alphacep/kaldi-en-spk                                                            0
uburuntu/kaldi-vosk-server       https://github.com/alphacep/vosk-server         0
gabrielbg99/kaldi                ARM64 (Cortex-A72) version of https://hub.do…   0
gabrielbg99/kaldi-en             ARM64 (Cortex-A72) version of https://hub.do…   0
[root@host32 ~]# docker pull alphacep/kaldi-cn

2、啓動vosk

獲取docker鏡像:

docker pull alphacep/kaldi-cn:latest

啓動服務:

docker run -d -p 2700:2700 alphacep/kaldi-cn:latest

使用vosk-server測試

1、下載vosk-server源代碼

命令如下:

git clone https://github.com/alphacep/vosk-server

2、測試

test2.wav內容:

自然語言理解和生成是一個多方面問題,我們對它可能也只是部分理解。

cd vosk-server/websocket
./test.py test2.wav

識別效果如下:

 注意:語音文件test1.wav的格式必須8khz 16bit mono PCM(8000採樣率,16位採樣精度,單聲道,pcm)。

可以在屏幕上看到服務器返回的識別結果,結果是json格式。

如果提示如下錯誤:

AttributeError: module 'asyncio' has no attribute 'run'

請使用python 3.7以上的版本。

python使用vosk-server進行中文語音識別的演示視頻,可從如下途徑獲取:

關注微信公衆號(聊聊博文,文末可掃碼)後回覆 202205210101 獲取。

使用vosk-api進行語音識別

安裝vosk

命令如下:

pip install vosk

 

下載示例代碼

獲取示例代碼:

git clone https://github.com/alphacep/vosk-api.git

目錄結構如下:

 

 下載預編譯的模型文件

下載地址:https://alphacephei.com/vosk/models

 

 下載模型文件:

wget -c https://alphacephei.com/vosk/models/vosk-model-small-cn-0.22.zip
wget -c https://alphacephei.com/vosk/models/vosk-model-cn-0.15.zip
wget -c https://alphacephei.com/vosk/models/vosk-model-cn-kaldi-multicn-0.15.zip

如果下載過慢,可從如下鏈接獲取:

https://pan.baidu.com/s/1NlmSejpFmUygcCgL4hvGGA

關注微信公衆號(聊聊博文,文末可掃碼)後回覆 2022052101 獲取提取碼。

語音識別測試

1、修改測試代碼

python示例代碼路徑:vosk-api\python\example

編輯 test_simple.py 文件,註釋掉如下代碼:

rec.SetPartialWords(True)

要不會報如下錯誤:

AttributeError: 'KaldiRecognizer' object has no attribute 'SetPartialWords'

2、配置模型文件

解壓 vosk-model-cn-0.15.zip 文件,並將解壓後的文件夾名稱修改爲 model ,目錄結構如下:

 

3、測試語音識別

 test2.wav內容:

 自然語言理解和生成是一個多方面問題,我們對它可能也只是部分理解。

 識別效果如下:

 

 

 python使用vosk-server進行中文語音識別的演示視頻,可從如下途徑獲取:

關注微信公衆號(聊聊博文,文末可掃碼)後回覆 202205210102 獲取。

本文涉及源碼及模型,可以從百度網盤獲取:https://pan.baidu.com/s/1NlmSejpFmUygcCgL4hvGGA 

關注微信公衆號(聊聊博文,文末可掃碼)後回覆 2022052101 獲取提取碼。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章