ASRT语音识别系统的部署以及模型的使用(运用篇)
前言
ASRT是一个中文语音识别系统,由AI柠檬博主开源在GitHub上。
GitHub地址:ASRT_SpeechRecognition
国内Gitee镜像地址:ASRT_SpeechRecognition
文档地址:ASRT语音识别工具文档
本文主要是记录一下我在参考文章:教你如何使用ASRT训练中文语音识别模型 并完成部署以及使用模型进行语音识别的操作步骤。
文章作者比较惜字如金,文中很多细节之处没有细讲,我在windows上进行部署的时候踩了比较多的坑,特此记录下。
本文适用对象:只想搭建一个语音识别服务端,来实现语音识别功能,而不需要训练出自定义的语音识别模型(如:训练出可识别某些方言的模型)。
如需训练自定义模型,可参考文章ASRT语音识别系统的部署以及模型训练
先决条件
众所周知,跑神经网络,要用到英伟达的显卡。
本人硬件参数:
以下是官方配置建议,我的显卡可能不达标,但如果存粹使用训练好的模型来进行语音识别的话,并不需要这么高的设备。
下载ASRT Released包
前往Github下载最新Released包(ASRT v1.3.0)。
下载完成后,需要进行解压。之后,如果GitHub仓库上如果代码有更新,重复上述步骤即可。
我的解压路径:
cd C:\Users\Administrator\Documents\ftp\qianyuhui\src\ASRT_SpeechRecognition
运行环境搭建
操作系统安装CUDA、cuDNN
训练模型请安装好Nvidia GPU驱动和CUDA、cuDNN。
安装步骤
安装过程略过。参考文章:Windows 安装 CUDA/cuDNN
查看CUDA版本
nvcc -V
查看cuDNN版本
进入 cuda 的安装路径, C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include,找到 cudnn_version.h 选中,以记事本方式打开。
这里,我的是8.8.1
安装Anaconda
安装步骤
安装步骤略过,参考文章:anaconda的安装和使用
查看conda版本信息
Anaconda PowerShell控制台中输入以下命令:
conda info
我的conda版本是23.1.0
项目部署
conda创建python虚拟环境
首先请确保Anaconda 创建python3.10的虚拟环境。
操作步骤
我给asrt单独创建了一个名为:asrt_env的虚拟环境:
Anaconda PowerShell控制台中输入以下命令:
conda create -n asrt_env python=3.10
查看虚拟环境基本信息
Anaconda PowerShell控制台中输入以下命令:
conda env list
conda activate asrt_env
conda info
为ASRT项目安装依赖包
安装依赖包
Anaconda PowerShell控制台中,我们激活asrt_env虚拟环境,并cd到ASRT项目下,通过requirements.txt为其安装依赖包:
conda env list
conda activate asrt_env
cd c:\Users\Administrator\Documents\ftp\qianyuhui\src\ASRT_SpeechRecognition\
pip install -r requirements.txt
这是一个漫长的安装过程,甚至经常因为网速慢导致下载失败。
踩坑记录
我在安装tensorflow-gpu时失败了好几次,因为我conda使用的是清华源,下载tensorflow-gpu及其缓慢:
后来网上找到了提速的办法:
关掉原本的控制台,重新通过asrt_env进入ASRT项目目录,
单独先使用中科大的镜像将tensorflow-gpu安装好:
conda env list
conda activate asrt_env
pip --default-timeout=1000000 install -U -i https://pypi.mirrors.ustc.edu.cn/simple/ --upgrade tensorflow-gpu==2.8.4
然后重新安装requirements.txt内的包:
conda env list
conda activate asrt_env
cd C:\Users\Administrator\Documents\ftp\qianyuhui\src\ASRT_SpeechRecognition
pip install -r requirements.txt
使用ASRT模型
ASRT Released包中的save_models文件夹下已经有一份训练好的模型文件了
本机进行语音识别
语音识别使用predict_speech_file.py文件。
首选准备一份频率为16000 Hz的wav文件:
第47行代码:load_model()方法中,需要指定模型参数文件(.h)路径。
第48行代码:recognize_speech_from_file()函数里面,填写我们需要识别的录音文件的文件名路径。
完毕后,运行代码,查看识别结果。
conda env list
conda activate asrt_env
cd C:\Users\Administrator\Documents\ftp\qianyuhui\src\ASRT_SpeechRecognition
python predict_speech_file.py
将ASRT部署成服务
这部分参考文章:教你如何使用ASRT部署中文语音识别API服务器
打开asrserver_http.py文件,如图。
默认监听端口为20001。
输入以下命令启动服务:
conda env list
conda activate asrt_env
cd C:\Users\Administrator\Documents\ftp\qianyuhui\src\ASRT_SpeechRecognition
python asrserver_http.py
如图说明服务启动成功。
设置ASRT服务开机自启动
我们新建一个bat脚本,把conda 命令都写进去:
第一句:CALL C:\ProgramData\anaconda3\Scripts\activate.bat C:\ProgramData\anaconda3\envs\asrt_env
这句命令意思是在cmd控制台中调用conda activate.bat 去激活 虚拟环境C:\ProgramData\anaconda3\envs\asrt_env
;
第二句:cd到当前目录;
第三句:使用python运行 asrserver_http.py 文件。
为【启动.bat】创建快捷方式,然后粘贴到Windows启动文件夹C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
中。这样就实现了ASRT开机自启动了。
将ASRT集成到web项目中来
这里以.Net Web项目为例来演示,将ASRT服务部署起来之后,在用web网站去访问ASRT API服务。
关键代码如下:
前端:
<html>
<head>
<meta charset="utf-8" />
<title>语音录制