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
非docker方式启动vosk服务
git clone https://github.com/alphacep/vosk-server
wget -c https://alphacephei.com/vosk/models/vosk-model-cn-0.15.zip
python asr_server.py vosk-model-cn-0.15
使用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 获取提取码。