赞
踩
转载自我的个人网站 https://wzw21.cn/2020/12/23/asr/
DeepSpeech2是一个采用PaddlePaddle平台的端到端自动语音识别引擎的开源项目,具体原理参考论文Baidu’s Deep Speech 2 paper。
下载BaiduCN1.2k Model语音模型与Mandarin LM Small语言模型;
自行准备manifest文件,其中包括每条音频的存储路径,音频时长与数据标签(文本)。文本中不能含有标点符号、英文字母与阿拉伯数字。格式为:{“audio_filepath”: “”, “duration”: , “text”: “”}
使用如下命令可进行自定义语音音频识别
PYTHONIOENCODING=utf-8 // 需设定编码方式为utf-8,否则会出现错误; python infer.py --num_samples 1 //识别语音条数 --infer_manifest data/mydata/manifest //manifest文件路径 --use_gru TRUE //使用门控循环单元 --use_gpu FALSE --mean_std_path models/baidu_ch1.2k/mean_std.npz //样本特征的均值与标准差 --vocab_path models/baidu_ch1.2k/vocab.txt //字典路径 --lang_model_path models/lm/zh_giga.no_cna_cmn.prune01244.klm //语言模型路径 --model_path models/baidu_ch1.2k //语音模型路径 --num_conv_layers=2 //卷积层数量 --num_rnn_layers=3 //循环神经网络配置 --rnn_layer_size=2048 --share_rnn_weights=False --specgram_type='linear' --error_rate_type=cer //错误率类型设置为字错误率 --alpha=0.4 --beta=0.3
使用tools/tune.py可使用不同参数进行识别,以找出最优参数。参数包括alpha与beta,分别为语言模型权重与单词插入权重。
使用tools/compute_mean_std.py和tools/build_vocab.py可获得自定义样本的特征均值、标准差(用于归一化)与字典;
相关命令及运行参数保存在command.txt中,方便使用。
在公开的模型上使用自己的数据集进行迁移训练
准备工作
1)修改词典中的阿拉伯数字为中文;
2)将正确数据标签中所有阿拉伯数字换为中文,去除所有标点符号与英文字母;
3)按照要求生成manifest.train文件,包含训练数据路径,时长与标签;
4)预处理出训练集数据特征的均值与标准差;
5)若要修改字典(添加或删除),则需要修改神经网络模型的结构,较为复杂;
运行train.py进行训练,命令及参数如下
PYTHONIOENCODING=utf-8 python train.py --batch_size 16 //批量大小 --num_epoch 10 //训练周期数 --num_conv_layers=2 --num_rnn_layers=3 --rnn_layer_size=2048 --share_rnn_weights=False --save_epoch 1 //每训练一个epoch进行一次模型保存 --num_samples 80 --learning_rate 0.05 //学习率,需调优 --max_duration 130 //最大音频时长 --use_gpu FALSE --use_gru TRUE --init_from_pretrained_model models/baidu_ch1.2k --train_manifest data/mydata/manifest.train //训练集路径 --dev_manifest data/mydata/manifest.validation //验证集路径 --mean_std_path models/baidu_ch1.2k/mean_std.npz //可选择模型预训练时使用的数据的特征(即models/baidu_ch1.2k/mean_std.npz),或是当前进行迁移学习的数据的特征(data/mydata/ mean_std.npz) --vocab_path models/baidu_ch1.2k/vocab_new.txt --output_model_dir models/baidu_ch1.2k_new //新模型保存位置 --num_iter_print 1 //每一个epoch输出一次信息 --test_off TRUE//训练过程中是否进行验证
https://github.com/PaddlePaddle/DeepSpeech/blob/develop/README_cn.md
https://www.paddlepaddle.org.cn/install/quick
https://baijiahao.baidu.com/s?id=1675202226359497084&wfr=spider&for=pc
https://chatopera.blog.csdn.net/article/details/107733688
https://blog.csdn.net/samurais/article/details/107889376
https://blog.csdn.net/tcx1992/article/details/85717100
https://github.com/tcxdgit/ASR_utils
https://blog.csdn.net/benbenls/article/details/102691710
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。