NVIDIA 7th SkyHackathon(四)Nemo ASR 模型训练与评估
admin
2024-03-05 09:30:51
0

1.模型加载

1.1 导入 NeMo

import nemo
import nemo.collection.asr as nemo_asr
import torch# 检查 nemo 版本 '1.4.0'
print(nemo.__version__)# 检查 torch 版本 '1.12.1+cu113'
print(torch.__version__) # 检查 GPU 是否被 torch 调用 True
print(torch.cuda.is_available()) 

1.2 加载自动语音识别模型

NeMo 的每个集合 ASR、NLP、TTS 中,都提供了许多预训练模型,使用 list_available_models() 可以查看 ASR 所提供的所有预训练模型

nemo_asr.models.EncDecCTCModel.list_available_models()
'''
[PretrainedModelInfo(pretrained_model_name=QuartzNet15x5Base-En,description=QuartzNet15x5 model trained on six datasets: LibriSpeech, Mozilla Common Voice (validated clips from en_1488h_2019-12-10), WSJ, Fisher, Switchboard, and NSC Singapore English. It was trained with Apex/Amp optimization level O1 for 600 epochs. The model achieves a WER of 3.79% on LibriSpeech dev-clean, and a WER of 10.05% on dev-other. Please visit https://ngc.nvidia.com/catalog/models/nvidia:nemospeechmodels for further details.,location=https://api.ngc.nvidia.com/v2/models/nvidia/nemospeechmodels/versions/1.0.0a5/files/QuartzNet15x5Base-En.nemo),...]
'''

本次比赛 NVIDIA 在相关资料中提供了中文预训练模型 stt_zh_quartznet15x5.nemo,使用 restore_form() 进行加载

# 加载中文预训练模型并实例化
quartznet = nemo_asr.models.EncDecCTCModel.restore_from("stt_zh_quartznet15x5.nemo")

1.3 加载 quartznet 配置文件

使用 YAML 读取 quartznet 模型配置文件

try:from ruamel.yaml import YAML
except ModuleNotFoundError:from ruamel_yaml import YAML
config_path ="quartznet_15x5_zh.yaml"yaml = YAML(typ='safe')
with open(config_path) as f:params = yaml.load(f)print(params)

1.4 加载数据清单并传给配置文件

将 1.2 节所制作的数据清单,传给配置文件

# 加载数据清单
train_manifest = "/root/data/train.json"
test_manifest = "/root/data/val.json"# 传递给配置文件
params['model']['train_ds']['manifest_filepath']=train_manifest
params['model']['validation_ds']['manifest_filepath']=test_manifest

2.模型训练

2.1 训练

使用迁移学习的方法训练模型

# 设置训练集
quartznet.setup_training_data(train_data_config=params['model']['train_ds'])
# 设置测试集
quartznet.setup_validation_data(val_data_config=params['model']['validation_ds'])# 开始训练
import pytorch_lightning as pl
trainer = pl.Trainer(gpus=1,max_epochs=200)
trainer.fit(quartznet)

2.2 保存并重载

# 将训练好的模型保存为.nemo格式
quartznet.save_to("7th_asr_model_1.nemo")# 重新加载模型
try_model_1 = nemo_asr.models.EncDecCTCModel.restore_from("7th_asr_model_1.nemo")

3 模型评估

from ASR_metrics import utils as metrics# 加载测试数据
asr_result = try_model_1.transcribe(paths2audio_files=["/root/data/test/1/1.wav"])
print(asr_result)#指定正确答案
s1 = "请检测出果皮"
#识别结果
s2 = " ".join(asr_result)#计算字错率cer
print("字错率:{}".format(metrics.calculate_cer(s1,s2)))
#计算准确率
print("准确率:{}".format(1-metrics.calculate_cer(s1,s2)))

相关内容

热门资讯

手机系统安卓和ios系统下载地... 你有没有发现,现在手机的世界里,安卓和iOS两大系统就像是一对双胞胎,各有各的特色,让人爱不释手。今...
安卓系统最早开发公司,从安卓起... 你有没有想过,我们每天离不开的安卓系统,它究竟是由哪家公司最早开发的呢?没错,就是谷歌(Google...
安卓系统平板推荐学生用,学生适... 作为一名热爱学习的学生,你是不是也在寻找一款既实用又好用的平板电脑呢?平板电脑在学习和生活中可是个得...
安卓5.0系统多大容量,存储容... 你有没有想过,你的安卓手机里那个神秘的安卓5.0系统到底有多大容量呢?别急,今天就来给你揭秘这个谜团...
芒果嗨是安卓系统吗,揭秘这款热... 你有没有听说过“芒果嗨”这个名字?最近,这个名词在手机圈里可是火得一塌糊涂。不过,别急,今天咱们就来...
安卓系统锁屏如何破,破解攻略全... 你是不是也遇到了安卓手机锁屏的烦恼?每次解锁都要输入复杂的密码或者滑动图案,有时候真是急得团团转。别...
安卓系统app开机自启,深度解... 你有没有发现,每次手机开机,那些APP就像一群调皮的小精灵,迫不及待地跳出来和你打招呼?没错,说的就...
安卓系统拨号连接在哪,拨号连接... 你是不是也和我一样,有时候在使用安卓手机时,突然想连接一下网络,却发现不知道怎么操作?别急,今天就来...
安卓系统为什么会赢,技术革新与... 你有没有想过,为什么安卓系统在智能手机市场上如此火爆,几乎成了“手机必备”的存在呢?今天,就让我带你...
电脑可以做安卓系统么,电脑上运... 你有没有想过,电脑能不能装上安卓系统呢?这听起来是不是有点像科幻电影里的情节?别急,让我带你一探究竟...
国产安卓系统碎片化软件,软件生... 你有没有发现,现在手机上的安卓系统越来越丰富多样了?没错,这就是我们今天要聊的话题——国产安卓系统的...
安卓系统的蚂蚁花呗,蚂蚁花呗在... 你知道吗?在安卓系统的世界里,有一个超级方便的支付工具,那就是蚂蚁花呗。它就像你的贴心小助手,让你在...
安卓2系统彩蛋在哪找,揭秘隐藏... 你有没有发现,安卓2系统里竟然隐藏着一些神秘的彩蛋?没错,就是那些让你忍不住想要一探究竟的小惊喜。今...
全球最大的安卓系统,全球最大移... 你知道吗?在智能手机的世界里,有一个系统可是当之无愧的“王者”——那就是安卓系统!它就像一位全能的魔...
安卓系统就没有碎片了,迈向无缝... 你知道吗?最近在科技圈里,安卓系统可是掀起了一阵不小的波澜呢!有人说,安卓系统再也没有碎片化了?这可...
安卓系统平板电脑评测,安卓平板... 你有没有想过,在这个信息爆炸的时代,拥有一台性能卓越的安卓系统平板电脑,简直就是移动办公和娱乐的完美...
双系统安卓自动关机,双系统安卓... 你有没有遇到过这样的情况:手机里装了双系统安卓,一边是工作用的,一边是娱乐用的,结果有时候不小心,手...
圣地安列斯安卓9系统,圣地安列... 亲爱的读者,你是否也像我一样,对科技新动态充满好奇?今天,我要和你分享一个超级有趣的话题——圣地安列...
平果有安卓系统的吗,畅享智能生... 你有没有想过,手机的世界里,竟然还有这样一个有趣的现象?那就是——平果手机,竟然也有安卓系统!是不是...
vivoy27安卓系统下载,畅... 你有没有听说最近Vivo Y27这款手机的新鲜事儿?没错,就是它的安卓系统下载!今天,我就要给你来个...