1. 导入nemo及asr工具类检查版本信息

import nemo

import nemo.collections.asr as nemo_asr

2. 加载自动语音识别模型

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

3. 加载数据清单

#将制作好的json格式的数据清单加载进来
train_manifest = "/root/manifest/train_7th.json"
test_manifest = "/root/manifest/test_7th.json"

4. 加载quartznet配置文件

# 使用YAML读取quartznet模型配置文件
try:
    from ruamel.yaml import YAML
except ModuleNotFoundError:
    from ruamel_yaml import YAML
config_path ="/root/config/quartznet_15x5_zh.yaml"

yaml = YAML(typ='safe')
with open(config_path) as f:
    params = yaml.load(f)
print(params)

5. 将数据清单传给配置文件

params['model']['train_ds']['manifest_filepath']=train_manifest
params['model']['validation_ds']['manifest_filepath']=test_manifest

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

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)#调用‘fit’方法开始训练 

7. 模型的保存及重载

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

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐