3

python使用vosk进行中文语音识别

 2 years ago
source link: https://www.cnblogs.com/MikeZhang/p/python-vosk-test-20220521.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

操作系统: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服务

使用docker方式启动服务,比较简单,但下载docker包比较耗时,如果已经下载好vosk-server代码及对应的模型文件,可以直接通过python代码启动vosk-server提供asr服务。
大致步骤:
1、下载vosk-server代码
git clone https://github.com/alphacep/vosk-server
2、下载模型文件
wget -c https://alphacephei.com/vosk/models/vosk-model-cn-0.15.zip
3、启动vosk服务
python asr_server.py vosk-model-cn-0.15
启动效果如下:
300959-20220524222902840-1947945611.png

使用vosk-server测试

1、下载vosk-server源代码

命令如下:

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

test2.wav内容:

自然语言理解和生成是一个多方面问题,我们对它可能也只是部分理解。

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

识别效果如下:

300959-20220521004325261-1705962698.png

 注意:语音文件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
300959-20220521004847007-2014413224.png

 

下载示例代码

获取示例代码:

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

目录结构如下:

300959-20220521004943731-2041625845.png

 

 下载预编译的模型文件

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

300959-20220521005019863-845630882.png

 下载模型文件:

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 ,目录结构如下:

300959-20220521005220872-362796605.png

 

3、测试语音识别

 test2.wav内容:

 自然语言理解和生成是一个多方面问题,我们对它可能也只是部分理解。

 识别效果如下:

300959-20220521005245329-1860378665.png

 

300959-20220521005256044-1066128104.png

 python使用vosk-server进行中文语音识别的演示视频,可从如下途径获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 202205210102 获取。

本文涉及源码及模型,可以从百度网盘获取:https://pan.baidu.com/s/1NlmSejpFmUygcCgL4hvGGA 

300959-20220521005646643-668030828.png

关注微信公众号(聊聊博文,文末可扫码)后回复 2022052101 获取提取码。 


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK