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服务

使用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

启动效果如下:

使用vosk-server测试

1、下载vosk-server源代码

命令如下:

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

2、测试

test2.wav内容:

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

[En]

Natural language understanding and generation is a multifaceted problem, and we may only partially understand it.

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

识别效果如下:

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

注意:语音文件test1.wav的格式必须8khz 16bit mono PCM(8000采样率,16位采样精度,单声道,pcm)。

可以在屏幕上看到服务器返回的识别结果,结果是json格式。

如果提示如下错误:

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

请使用python 3.7以上的版本。

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

关注微信公众号(说博文,文末扫码即可),回复202205210101即可领取。

[En]

Follow the official Wechat account (talk about the blog post, you can scan the code at the end of the article) and reply 202205210101 to get it.

二、使用vosk-api进行语音识别

安装vosk

命令如下:

pip install vosk

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

下载示例代码

获取示例代码:

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

目录结构如下:

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

下载预编译的模型文件

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

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

下载模型文件:

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

如果下载速度太慢,可以通过以下链接获取:

[En]

If the download is too slow, it can be obtained from the following link:

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

关注微信公众号(说博文,文末扫码即可),回复2022052101即可获取解压码。

[En]

Follow the official Wechat account (talk about the blog post, the code can be scanned at the end of the article) and reply 2022052101 to get the extraction code.

语音识别测试

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

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

3、测试语音识别

test2.wav内容:

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

[En]

Natural language understanding and generation is a multifaceted problem, and we may only partially understand it.

识别效果如下:

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

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

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

关注微信公众号(说博文,文末扫码即可),回复202205210102即可领取。

[En]

Follow the official Wechat account (talk about the blog post, you can scan the code at the end of the article) and reply 202205210102 to get it.

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

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

关注微信公众号(说博文,文末扫码即可),回复2022052101即可获取解压码。

[En]

Follow the official Wechat account (talk about the blog post, the code can be scanned at the end of the article) and reply 2022052101 to get the extraction code.

Original: https://www.cnblogs.com/MikeZhang/p/python-vosk-test-20220521.html
Author: Mike_Zhang
Title: python使用vosk进行中文语音识别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/499533/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球