项目简介
本项目基于Python和TensorFlow框架构建语音识别系统,将GAU transformer应用于语音领域,采用CTC结构、interCTC和随机深度技术,具备音频特征提取、数据增强、模型训练评估及实时语音识别等功能。
项目的主要特性和功能
- 独特模型架构:以GAU为基础模块,结合interCTC和随机深度技术,增强模型泛化能力与识别准确性。
- 多样音频处理:有MFCC、对数梅尔频谱图、线性频谱图等多种音频特征提取方法,还有信号归一化、预加重、去加重等处理功能。
- 数据增强策略:运用频率掩膜和时间掩膜技术,模拟音频信息丢失,提升模型健壮性。
- 完整训练评估流程:涵盖数据预处理、模型构建、训练、验证和预测等步骤。
- 实时语音识别功能:可从麦克风实时接收音频数据并完成语音识别。
安装使用步骤
环境准备
确保已安装Python和TensorFlow,并配置好相应环境变量。项目依赖以下特定版本库: - tensorflow - gpu==1.15.5 - keras==2.3.1 - ds_ctcdecoder==0.9.3 其他环境可在requirement.txt中查找。
数据准备
- 下载数据,如primewords可在这里下载,也可下载AISHELL1、AIDATATANG、MAGIC_DATA等。
- 运行
python get_csv_data.csv --label_file_path [path1] --audio_dir [path2]
,将下载好的primewords的标签文件地址和音频地址作为参数输入,自动获得分割好的训练集、测试集和验证集的csv文件。 - 运行
python get_tfrecord_data.py --csv_path [path1] --save_path [path2]
,将处理好的csv文件的地址以及保存tfrecord文件的地址作为参数输入,自动获得tfrecord数据,需分别对训练集、测试集、验证集运行。
模型训练
运行python train_fast.py --config_path yamls/primewords_L16_H512_A128.yaml --train
进行单卡训练,设置multi_card=True
,gpu_id='0,1,2,3'
可进行任意多卡训练。
模型评估
运行python evaluate.py --config_path yamls/evaluate_multitask.yaml
,更改yaml中的dev_loaddirs
、dev_csvs
、load_model_path
和scorer_path
可进行预测。
实时语音识别
运行python mic_vad_streaming.py
,将yamls/evaluate_multitask.yaml
中的scorer_path
和load_model_path
更改为正确的地址,即可进行实时语音识别。
scorer构建[可选]
预测时可采用贪婪解码,也可加入语言模型进行beam search解码以提高准确性。因采用deepspeech的ds_ctcdecoder,可直接使用deepspeech生成的语言模型scorer,生成步骤如下:
2. 执行以下命令:
cd kenlm
python generate_lm.py --input_txt vocabulary.txt --output_dir . --top_k 500000 --kenlm_bins build/bin/ --arpa_order 5 --max_arpa_memory "85%" --arpa_prune "0|0|1" --binary_a_bits 255 --binary_q_bits 8 --binary_type trie --discount_fallback
./generate_scorer_package --alphabet alphabet.txt --lm data/lm.binary --vocab vocab-500000.txt --package kenlm.scorer --default_alpha 1 --default_beta 4 --force_bytes_output_mode True
需更改--input_txt
和--alphabet
对应的文本和最小字符。
3. vocabulary.txt
内容以空格分隔每一个字,alphabet.txt
每行一个字符。项目在scorers
文件夹中放了primewords的scorer,其他数据集的scorer可通过相同方式生成。
模型checkpoint与scorer下载
链接:https://pan.baidu.com/s/1V46Z - n3rW4zvLfNZGOnRBw 提取码:36r0
注意事项
- 环境配置:需安装特定版本的TensorFlow和其他库,确保版本正确。
- 数据格式:音频数据需以特定格式提供,保证与项目要求一致。
- 模型训练时间:模型训练耗时较长,确保有足够计算资源。
- 模型评估指标:项目以字符错误率(CER)作为评估指标,可按需调整。
- 实时语音识别:实时语音识别依赖麦克风输入,确保麦克风设备正常工作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】