ASR听觉训练

#0 导入nemo工具库及asr工具类

[1]

import  nemo

import  nemo.collections.asr as  nemo_asr

#1.1 加载自动语音识别模型

[3]

quartznet = nemo_asr.models.EncDecCTCModel.restore_from("stt_zh_quartznet15x5.nemo")#

加载中文预训练模型并实例化

#1.2 传入音频文件   进行语音识别

[4]

asr_result = quartznet.transcribe(paths2audio_files=["/root/testdata/guopi6.wav"])  # 调用transcribe函数测试预训练模型识别效果

print(asr_result)

#输出识别结果

#1.3 使用ASR_mertrics工具库对预训练模型识别结果计算准确率

[6]

from  ASR_metrics import  utils as  metrics

s1 = "请检测出果皮"#指定正确答案

s2 = " ".join(asr_result)#识别结果

print("字错率:{}".format(metrics.calculate_cer(s1,s2)))#计算字错率cer

print("准确率:{}".format(1-metrics.calculate_cer(s1,s2)))#计算准确率accuracy

字错率:0.1

准确率:0.9

#2 采集数据制作数据集

#2.1数据采集

我们由比赛方所要求的三类物品果皮、纸箱、瓶子,数据采样分为了15种情况。由三名女生和一名男生共制作了45条。

请检测出:

纸箱

瓶子

果皮

纸箱

和瓶子

纸箱

和果皮

瓶子

和纸箱

瓶子

和果皮

果皮

和瓶子

果皮

和纸箱

纸箱

果皮

和瓶子

纸箱

瓶子

和果皮

果皮

瓶子

和纸箱

果皮

纸箱

和瓶子

瓶子

果皮

和纸箱

瓶子

纸箱

和果皮

#2.2 录制语音文件:

录制语音文件,文件类型需统一转换为wav格式,采样率建议在44100HZ 、单声道。通过录音软件Audacity录制:Ubuntu系统安装=>sudo apt install audacity

windows系统可用此网址下载安装 Audacity下载-Audacity2.3.1简体中文版-华军软件园

#2.3制作数据清单格式要求:

{"audio_filepath":"/root/traindata/guopi.wav","duration":3.1463038548752835,"text":"请检测出果皮“}

[7]

# 导入librosa音频工具包获取音频时长,用于制作语音数据集

import  librosa

time = librosa.get_duration(filename="/root/testdata/guopi6.wav")

print(time)

3.6919727891156464

#2.4加载数据清单

[8]

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

#2.5加载quartznet置文件

[9]

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

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)

#2.6将数据清单传给配置文件

[10]

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

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

#3 训练模型

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

[11]

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=220)#重新设置训练器参数

trainer.fit(quartznet)#调用‘fit’方法开始训练

#3.2模型的保存

[12]

#quartznet.save_to("7th_asr_model.nemo")#将训练好的模型保存为.nemo格式

#3.3将训练好的模型进行重载

[13]

try_model_1 = nemo_asr.models.EncDecCTCModel.restore_from("7th_asr_model_1.nemo")#对模型进行重新加载

asr_result = try_model_1.transcribe(paths2audio_files=["/root/testdata/guopi6.wav"])

print(asr_result)#打印输出结果

3.4对自定义模型识别结果计算准确率

[14]

from  ASR_metrics import  utils as  metrics

s1 = "请检测出果皮"#指定正确答案

s2 = " ".join(asr_result)#识别结果

print("字错率:{}".format(metrics.calculate_cer(s1,s2)))#计算字错率cer

print("准确率:{}".format(1-metrics.calculate_cer(s1,s2)))#计算准确率accuracy

字错率:0.0

准确率:1.0

#4 成功拿到用于图像识别的语音指令

=> 就可以作为输入给计算机视觉模型作为检测果皮识别的指令

我们保存好经过验证的识别模型,为后续将模型移植部署在边缘计算备Jetson Nano中做准备

我参加NVIDIA Sky Hackathon(语音识别模型训练)相关推荐

  1. [我参加NVIDIA Sky Hackathon](模型训练yolo系列)

    由于NVIDIA在CV APPLICATIONS->Object Detection提供了yolov3和yolov4的模型配置及训练部署教程,并且yolov4相对于yolov3性能较好,所以选择 ...

  2. [我参加NVIDIA Sky Hackathon](模型训练ssd系列)

    一.ssd-resnet18 比赛默认提供的目标检测模型是ssd,backbone是resnet18,默认训练80批次,部分训练参数及结果如下图1. max map 0.842885663719817 ...

  3. 【我参加NVIDIA Sky Hackathon】感悟篇

    我们团队来自陕西省咸阳市咸阳师范学院,在本次比赛中我们认识到了与其他人的差距,我们最终获得了第14名的成绩,对于我们来说是第一次参加NVIDIA Sky Hackathon的比赛,这次算是一次积累经验 ...

  4. 我参加 NVIDIA Sky Hackathon——有关ASR模型相关简述

    2022年10月29日 团队报名了第七届NVIDIA SKy Hackathon大赛并于2022年11月28日成功完赛 本次系列比赛为团队第二次参加,在有了一定经验的情况下,本次团队也取得了一定的成绩 ...

  5. [我参加NVIDIA Sky Hackathon] 训练模型安装

    1  获取 NGC 秘钥 1. 创建 NGC 账号:这个帐号与 NVIDIA Developer 账号是独立的,需要单独申请.如果已 经有 NGC 帐号的,请跳过下面申请的流程,直接到第 2 步&qu ...

  6. 我参加NVIDIA Sky Hackathon(系统环境配置)

    以下内容是本组成员在参赛流程以及遇到的问题的解决方案,仅供参考.电脑型号为华硕天选3 i5 一.获取NGC密钥 1. 创建NGC账号 (1).登录 https://ngc.nvidia.com 会直接 ...

  7. 【我参加NVIDIA Sky Hackathon】ASR篇

    项目说明:通过NVIDIA公司提供的Tao来训练模型,做出一个语音识别和图像识别垃圾的模型 在ASR数据集中,为了使得模型训练效果更明显,我们在数据搜集的过程中,邀请了不同年龄段的人来进行语音的录制, ...

  8. 我参加NVIDIA Sky Hackathon 训练文件的路径设置

    各变量的作用 KEY 对应的是 NVIDIA ngc 的那个网站上面生成的那个 key GPU 的索引, 这个一般不需要修改, 因为大家只有一块 GPU 用户实验目录, 这个文件夹用于存放后续过程产生 ...

  9. 【我参加NVIDIA Sky Hackathon】CV篇

    项目说明:以"挑战智能语音垃圾分类任务"为主题.内容涵盖:语音识别.垃圾检测及用户接口的web页面实现等.项目流程包括:(注:图片来源于NVIDIA针对于本次比赛的培训PPT) 在 ...

最新文章

  1. [20170315]数据类型interval day to second
  2. python程序开发入门_Python开发入门14天集训营-第一章
  3. sql常用crud命令
  4. 嵌入式成长轨迹23 【Linux应用编程强化】【Linux下的C编程 下】【Linux GUI编程】...
  5. 阿里云Java虚拟机的安装位置
  6. java中的static关键字总结
  7. Function HDU - 6546 (数学,贪心)
  8. python半圆_如何使用Python中的Zelle图形生成一个半圆?
  9. iQOO Neo5搭载66W超快闪充:30分钟回血!
  10. OpenLTE 基站相关头文件:用户、定时器、基站接口、消息接口
  11. html加载js那些事
  12. 如何获取当前显示的片段?
  13. 最常用的css垂直居中方法
  14. linux启动hbase_HBase集群环境配置
  15. 关闭Windows指定端口
  16. 计算机应用宣传传统文化,计算机应用工程系创建优秀传统文化特色班级侧记
  17. java如何调用手机拍照功能_手把手教你如何实现拍照功能
  18. 以太网交换机可以家用吗_以太网交换机是什么? 以太网交换机的使用方法
  19. LocalSend - 文件传输工具
  20. chmod 777命令_实用的linux 命令(上)

热门文章

  1. rasa算法_【RASA系列】语义理解(上)
  2. nordic 52832中添加RTT打印
  3. LeetCode日常刷题1、657、717、67
  4. Apache Drill Architecture Introduction
  5. 在线流程图工具推荐 免费 好用 可与语雀联动
  6. 什么是HTTP? HTTP和HTTPS的区别?
  7. protobuf网络传输协议的优缺点
  8. pytest_bdd.exceptions.FeatureError: Step definition outside of a Scenario or a Background.
  9. .Net4.0 任务(Task)
  10. 计算机中文输入法教案,中文输入教学设计.doc