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

綦辰龙阅读量 254

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

启动效果如下:
![](https://img2022.cnblogs.com/blog/300959/202205/300959-20220524222902840-1947945611.png)

使用vosk-server测试

1、下载vosk-server源代码

命令如下:

复制代码
git clone https://github.com/alphacep/vosk-server

2、测试

test2.wav内容:

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

复制代码
cd vosk-server/websocket
./test.py test2.wav

识别效果如下:

![](https://img2022.cnblogs.com/blog/300959/202205/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

![](https://img2022.cnblogs.com/blog/300959/202205/300959-20220521004847007-2014413224.png)

下载示例代码

获取示例代码:

复制代码
git clone https://github.com/alphacep/vosk-api.git

目录结构如下:

![](https://img2022.cnblogs.com/blog/300959/202205/300959-20220521004943731-2041625845.png)

下载预编译的模型文件

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

![](https://img2022.cnblogs.com/blog/300959/202205/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 ,目录结构如下:

![](https://img2022.cnblogs.com/blog/300959/202205/300959-20220521005220872-362796605.png)

3、测试语音识别

test2.wav内容:

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

识别效果如下:

![](https://img2022.cnblogs.com/blog/300959/202205/300959-20220521005245329-1860378665.png)

![](https://img2022.cnblogs.com/blog/300959/202205/300959-20220521005256044-1066128104.png)

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

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

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

![](https://img2022.cnblogs.com/blog/300959/202205/300959-20220521005646643-668030828.png)

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

复制代码
    ===========================
    【来源: 博客园】
    【作者: Mike_Zhang】
    【原文链接】 https://www.cnblogs.com/MikeZhang/p/python-vosk-test-20220521.html
    声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。
0/300
全部评论0
0/300