分类
ASRT 智能语音技术

教你如何使用ASRT训练中文语音识别模型

点击量:2375

(在苹果系统下,如果文章中的图片不能正常显示,请升级Safari浏览器到最新版本,或者使用Chrome、Firefox浏览器打开。)

ASRT是一个中文语音识别系统,由AI柠檬博主开源在GitHub( https://github.com/nl8590687/ASRT_SpeechRecognition )上,为了便于大家使用,本文将手把手按顺序教你如何使用ASRT语音识别系统训练一个中文语音识别模型。

首先到GitHub上打开ASRT语音识别项目仓库:https://github.com/nl8590687/ASRT_SpeechRecognition

国内Gitee镜像地址:https://gitee.com/ailemon/ASRT_SpeechRecognition

打开的网页如图所示

1 下载源代码

以下方式二选一即可,GitHub和Gitee上操作类似。

1.1 使用Git命令克隆代码

按照图中的顺序点击鼠标,然后打开系统的终端(Windows称为CMD命令行或PowerShell),通过cd命令(Linux、MacOS终端或Win系统PowerShell)或“<盘符>:\”(Windows CMD命令行)然后进入自己指定存放代码的路径下,然后在终端输入(链接可以直接粘贴进去):

$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git

稍等片刻,最新的源代码就克隆(下载)完毕了。这种方式的优势是,之后如果GitHub仓库上的代码有更新,只需要使用 git pull 命令即可立即同步到您的计算机上。

1.2 浏览器直接下载

按照如图所示步骤即可直接下载最新源代码压缩包。

下载完成后,需要进行解压。之后,如果GitHub仓库上如果代码有更新,重复上述步骤即可。

2 安装运行环境

首先请确保安装好Python 3.6或者Python 3.7软件,或者Anaconda 并创建好3.6或3.7版本的虚拟环境。本项目不支持python 2.7版本,请使用python3.6及以上版本。如果pip命令对应的是python 2.7版本请将下述的pip命令替换为pip3命令。

$ pip install python_speech_features
$ pip install tensorflow-gpu==1.14.0
$ pip install keras==2.3.1
$ pip install wave
$ pip install matplotlib
$ pip install requests

其中,TensorFlow版本和Keras版本可根据实际情况灵活调整,以上为一个可在CUDA 10.0、cudnn 7.6.4环境下用的安装操作步骤。

3 下载并解压语音数据集

点击链接 https://github.com/nl8590687/ASRT_SpeechRecognition#data-sets-%E6%95%B0%E6%8D%AE%E9%9B%86 即可跳转到一些语音数据集的下载链接页面,点击下载清华大学THCHS30数据集和ST-CMDS数据集(都要下载)。推荐使用国内镜像下载,如果该链接无法正常下载,或者您身处中国大陆以外的地区,可点击国外镜像下载。

下载后,解压两个数据集,并移动解压后的目录到下载的ASRT代码的文件夹目录下的dataset目录下(如果不存在就创建一个名为”dataset”的文件夹目录),并将datalist文件夹目录下的所有内容复制到dataset下。

推荐使用其他路径存放数据,比如在Windows系统上,假设代码放在“D:\ASRT_SpeechRecognition\” 下,数据集可以放在另外一块数据盘中的“E:\语音数据集\” 下。在Linux系统上,可以将数据盘挂载到“/data”下,并使用ln -s 创建软链接到dataset目录。

注意在Windows系统上使用WinRAR选择“解压到XXX(压缩包名)”时会在解压后多一级额外的数据集文件目录,例如“data_thchs30/data_thchs30/xxxx”,请去除多余的目录层级。只保留为“data_thchs30/xxxx”即可。

在Linux系统上解压直接运行命令:

$ tar zxf data_thchs30.tgz
$ tar zxf ST-CMDS-20170001_1-OS.tar.gz

4 打开代码查看或修改配置

用代码编辑器打开其中的 tran_mspeech.py 文件,默认情况下如图:

如果是Windows系统,当数据直接放置于dataset路径下时,请修改第36行的文件路径为’dataset’或dataset目录的绝对路径后,再训练。如果是其他路径,也请修改为对应的路径。如果是Linux系统,当数据集直接放置于dataset下,或者使用软链接到dataset下,可以忽略这一步,否则也需要修改为数据集存放的路径。

然后检查TranModel()函数里面的参数配置,epoch那个参数请忽略,目前是弃用的,batch_size参数可根据实际需要进行调整,默认为16,参数save_step用于设定每迭代多少步就保存一次模型,默认为500步。

5 训练模型

最激动人心的一刻就是代码成功运行起来。我们只需要在命令行终端中输入这个命令,即可运行:

$ python train_mspeech.py

如果python命令是2.7版本,请使用python3命令。

如果使用Visual Studio Code、Spider或者PyCharm等IDE,可以直接在代码目录下打开train_mspeech.py文件点击运行按钮。当模型训练收敛的时候,可以直接按ctrl + C 或者在IDE里点击停止运行按钮,以停止训练模型,此时,应该已经在model_speech/ 目录下对应的模型名称里保存了很多模型参数文件。

6 测试模型准确率

用编辑器打开test_mspeech.py文件,如图。

除了与train_mspeech.py一样的数据集路径问题以外,还有一些需要查看并处理。找到我们最后训练好保存的模型参数文件,或者训练过程中的某个模型参数文件,复制文件名,然后在这里的第49行代码中,将模型文件路径修改为该模型参数文件名。

在第51行,TestModel()这里,str_dataset则为要测试准确率的数据集类型,可选的为训练集(train)、验证集(dev)和测试集(test),图中写为’test’意为在测试集上测试模型的准确率。data_count参数设定要测试的数据量,例如:128,即随机处连续抽取128个数据进行错误率的计算,如果填“-1”则使用全部测试数据集的数据量。out_report参数为True时,会保存测试时的数据集中间结果和最终结果日志,方便调试和数据记录。

7 测试单一语音数据的识别

用编辑器打开test.py文件,如图所示。

我们需要在例如32行处LoadModel()函数里面,跟之前一样填写我们要使用的保存下来的模型参数文件,以便模型加载。并在例如第40行处的RecognizeSpeech_FromFIle()函数里面,填写我们需要识别的录音文件的文件名路径。完毕后,运行代码。

$ python test.py

或在IDE中点击运行按钮,片刻后即可看到该条语音数据的识别结果。

8 查看ASRT语音识别项目文档

在使用ASRT的过程中,难免会遇到一些问题,大部分问题,都已经说明并记录在了项目文档中,点击 https://asrt.ailemon.me/docs/ 即可打开项目文档。

如果您还有其他的问题或者希望跟大家一起交流讨论,请加AI柠檬博客QQ群:867888133 ,欢迎进群一起交流讨论哦。

如果需要加微信群,请在进QQ群后向群主说明,会发加群二维码,或在本文下方留言。也可以发邮件给我,或者关注微信公众号“AI柠檬博客”并留言。

版权声明
本博客的文章除特别说明外均为原创,本人版权所有。欢迎转载,转载请注明作者及来源链接,谢谢。
本文地址: https://blog.ailemon.me/2020/08/20/teach-you-how-use-asrt-train-chinese-asr-model/
All articles are under Attribution-NonCommercial-ShareAlike 4.0


发表评论

电子邮件地址不会被公开。 必填项已用*标注

10 − 9 =

如果您是第一次在本站发布评论,内容将在博主审核后显示,请耐心等待