基础知识要求
- Python语言程序设计
- 机器学习基础 (包含神经网络模型)
- 语音信号处理
- Linux系列操作系统基础
- Git技术
- Docker容器技术
- 数据通信与网络 (包含HTTP协议和gRPC协议)
如何运行
本文档包含模型训练、模型评估测试、模型预测和模型部署相关步骤指导。
自行训练、评估和部署操作详细指导
1. 操作系统、Python、CUDA安装
ASRT语音识别项目可运行在Linux、Windows和Mac系统上,请根据自己的实际需要选择并安装操作系统。
不论是使用Anaconda还是直接安装Python3,请确保当前机器已经安装有Python3,并且这里推荐使用Python 3.9以上版本。这里的依赖环境版本以Python 3.9为基准,其他版本可能需要根据实际需要进行适配调整。
如果您打算使用GPU来运行ASRT的训练、评估或部署的话,请确保已经正确安装Nvidia家的GPU驱动和CUDA、cuDNN库。
注意,使用GPU训练请使用Ubuntu等Linux类操作系统,最新版本的GPU版TensorFlow已经不再支持Windows系统。
如果没有,请看以下相关资料解决:
Linux系统下安装TensorFlow的GPU版本
linux卸载旧版CUDA并安装新版CUDA
Windows安装CUDA和CUDNN运行环境
2. 克隆项目仓库
通过Git将本项目克隆到您的计算机上,然后下载本项目训练所需要的数据集,下载链接详见本文档的数据集页面。
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
或者您也可以通过 “Fork” 按钮,将本项目Copy一份副本,然后通过您自己的SSH密钥克隆到本地。
3. 下载并解压数据集,查看并根据需要修改配置文件
以Linux系统为例,创建目录 /data/speech_data/
,然后将下载好的6个数据集直接解压进去
再次强调!!!
请注意数据集使用的文件目录是 /data/speech_data/
(根为/
) 而不是 data/speech_data/
(根为.
),否则按照本教程的做法你在运行过程中会出现找不到文件的报错,如果不懂二者有什么区别请先去学习Linux基础知识。如果要使用其他目录路径作为数据集的目录,请注意自行对应修改ASRT配置文件。
如果是Windows系统的话,请自行在下述配置文件中改成Windows的文件目录形式,例如D:/speech_data/
或D:\\speech_data\\
,其他同理,默认的路径配置不适用于Windows系统下。
asrt_config.json
是ASRT语音识别项目的配置文件,默认是以Linux系统文件路径方式编写的,如果有必要时(比如是Windows系统),请注意修改配置路径。
该文件的格式标准请查看 ASRT文件格式标准
您也可以改为自己指定的其他目录,但是请修改asrt_config.json
文件中放在自己指定目录的数据集对应的data_path
路径。配置文件为json格式,如果不懂json格式是什么,请先去学习一下,否则不小心改错格式的话会导致运行时报错的。
$ mkdir /data/speech_data/
$ tar zxf <数据集压缩文件名> -C /data/speech_data/
4. 安装必要的Python依赖库环境
运行本项目之前,请安装必要的Python依赖库环境
Python的依赖库
需要额外安装的python依赖库
tensorflow (2.8+) 训练请安装GPU版,推理时GPU或CPU版均可
wave (直接装最新版,下同)
matplotlib
scipy
requests
flask
waitress
protobuf (无需手动安装)
grpcio (无需手动安装)
grpcio-tools (可选安装,用于通过
.proto
文件生成代码,若无需修改则不影响正常使用)numpy (如果没自动安装请手动安装)
pytest (可选安装,主要用于单元测试,不影响正常使用)
手动安装命令
打开命令行,输入:
$ pip install wave scipy matplotlib tensorflow-cpu==2.8.4 numpy==1.24.1 requests flask waitress
一键安装脚本 (python 3.9专用)
$ pip install -r requirements.txt
TensorFlow版本需要 >= 2.8.4
5. 下载默认数据集的数据列表文件
在刚才通过git克隆仓库以后,进入项目根目录
$ cd ASRT_SpeechRecognition
在ASRT根目录下运行以下命令以下载推荐的默认数据集所对应的数据列表文件和拼音标签文件:
$ python download_default_datalist.py
注:该文件由AI柠檬博主手工整理、处理并生成,除了THCHS30数据集外,其他的并非对应的语音数据集原有。默认数据集以外的数据集需要先整理和制作对应的文件才可以用来训练。
6. 训练、评估和部署
目前可用的模型有24、25、251、251bn
本项目开始训练请执行:
$ python3 train_speech_model.py
本项目开始评估模型识别错误率请执行:
$ python3 evaluate_speech_model.py
运行之前,请确保代码中填写的模型文件路径存在。
预测单条音频文件的语音识别文本:
$ python3 predict_speech_file.py
ASRT 开启HTTP协议API服务器请执行:
$ python3 asrserver_http.py
测试调用ASRT HTTP协议API服务是否成功:
$ python3 client_http.py
ASRT 开启gRPC协议API服务器请执行:
$ python3 asrserver_grpc.py
测试调用ASRT gRPC协议API服务是否成功:
$ python3 client_grpc.py
7. 补充说明
如果要训练和使用其他模型,请在代码中 import SpeechModel
的相应位置做修改。
如果程序运行期间有什么问题,可以及时在issue中或者群里提出来,我将尽快做出答复。
提问前可以先 查看常见问题,避免重复提问,绝大多数常见的问题都能解决
直接使用ASRT发布版部署操作详细指导
1. 手工方式直接安装部署
2. 通过Docker安装部署
仅CPU运行推理识别,不作训练
$ docker pull ailemondocker/asrt_service:1.3.0
$ docker run --rm -it -p 20001:20001 -p 20002:20002 --name asrt-server -d ailemondocker/asrt_service:1.3.0
更多资料
使用ASRT训练和部署语音识别的AI柠檬博客版教程:
以下为ASRT的用户在其他平台上发布的使用教程,可参考:
华为云耀云服务器L实例:高级篇-部署自己的ASRT语音识别api
最后编辑:AI柠檬 更新时间:2024-12-24 00:13