音频标签化3:igor-8m项目的训练、评估与测试

时间:2023-02-11 09:45:44

上一节介绍了youtube-8m项目,这个项目以youtube-8m dataset(简称8m-dataset)样本集为基础,进行训练、评估与测试。youtube-8m设计用于视频特征样本,但实际也适用于音频。另外,8m-dataset分两类,一类是聚合特征(video-level,使用整个样本的平均特征),另一类是帧特征(frame-level),帧特征样本适用于sound classification。

除了8m-dataset这个8百万的样本集,另一个样本集--audioset,也是经常使用的样本集,有2百万的样本数据。audioset的介绍早已完成,读者可以关注“广州小程”微信公众号并查阅相应的文章。

本文介绍基于audioset样本集的项目,这个项目能完成训练、评估与测试的功能,最终用于满足音频标签化的需求。

这个开源项目的git地址是:
https://github.com/igor-panteleev/youtube-8m

这里简称为igor-8m项目。

igor-8m项目基于youtube-8m(https://github.com/google/youtube-8m)项目进行了修改,可以使用audioset样本。对于igor-8m项目的产生与改进,读者可以参考这个网页,上面详细提及了项目出现的原因、项目的使用与效果等:
https://medium.com/iotforall/sound-classification-with-tensorflow-8209bdb03dfb

接下来小程简单介绍一下igor-8m的使用。

(一)使用igor-8m

由于igor-8m是基于youtube-8m项目,所以在操作有很大部分是类似的,而小程之前介绍过youtube-8m项目的使用。

(1)环境

环境上,首先要安装了python2.7+,并且安装了tensorflow1.0+。

可以这样检测python跟tensorflow的版本信息:

python --version
python -c 'import tensorflow as tf; print(tf.__version__)'

对于python2.7的mac,可以这样安装tensorflow(需在FQ状态;可优先考虑在虚拟环境中安装tf):

pip install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.8.0-py2-none-any.whl

(2)样本

之前已经介绍过,audioset下载后有两部分内容,一个是音频特征文件,均以“tfrecord”为后缀的文件(也就是tensorflow的record file),另一个是样本描述文件(有三个文本文件),记录了样本的信息(比如视频的ID、起始与终止时间、分类ID等)。

对于audioset的下载,不再重复讲解了,读者可以参考之前的文章。下载到audioset样本后,就可以分别进行训练、评估与测试的操作。

(3)训练

先把igor-8m项目clone下来:

git clone https://github.com/igor-panteleev/youtube-8m

这时可以看到igor-8m项目的目录结构是这样的:
音频标签化3:igor-8m项目的训练、评估与测试

然后就可以使用这个项目就行训练,比如iotforall给出的一个训练命令:
音频标签化3:igor-8m项目的训练、评估与测试

详情可以看这个页面的介绍:
https://medium.com/iotforall/sound-classification-with-tensorflow-8209bdb03dfb

在实际使用上,“训练参数”是一个关键点,读者应该根据样本的质量与数量、训练机器的gpu数量与可用内存大小等等,再经过反复的训练与调整,从而得出较好的训练参数集。

对于train.py使用的参数,可以这样查看:

python train.py --help

可以看到这样的信息:
音频标签化3:igor-8m项目的训练、评估与测试

训练后产生模型文件,这个跟youtube-8m的介绍一样,请参阅之前的文章。

(4)评估与测试

igor-8m项目的评估与测试,跟之前介绍的youtube-8m一样,这里面不展开了。

(二)制作tfrecord文件

“样本”是机器学习的一个关键点,以上使用的是audioset样本,这些样本区分为训练、评估与测试的样本,有了它们,就可以完整地操作模型。

在实际使用时,一般原始的音频,要么是实时录制进来的数据(从mic中获取的数据),要么是保存成文件的音频文件(一般是压缩格式的音频)。为了把原始的音频用于训练(这是扩充样本集的办法)、评估或者测试,需要把音频数据转换成tfrecord文件,比如把mp3文件制作成tfrecord文件。

这个制作过程,可以使用之前介绍到的VGG模型来完成,对应的开源项目是:
https://github.com/tensorflow/models/tree/master/research/audioset

阅读里面的代码,做适当的修改,就可以实现音频文件转成tfrecord文件,这里不细说了。


总结一下,本文是对youtube-8m的扩展知识,介绍了igor-8m项目的操作(训练、评估与测试),这个项目使用audioset为样本。最后文章简单介绍了生成tfrecord文件的VGG模型。

音频标签化3:igor-8m项目的训练、评估与测试的更多相关文章

  1. 音频标签化2:youtube-8m项目的训练、评估与测试

    之前小程介绍了使用机器学习的办法来解决"音频标签化"的问题,并且提到了训练样本audioset跟youtube-8m的dataset,而训练模型上也提到了youtube-8m的模型 ...

  2. 音频标签化1:audioset与训练模型 | 音频特征样本

    随着机器学习的发展,很多"历史遗留"问题有了新的解决方案.这些遗留问题中,有一个是音频标签化,即如何智能地给一段音频打上标签的问题,标签包括"吉他".&quot ...

  3. 初探React,将我们的View标签化

    前言 我之前喜欢玩一款游戏:全民飞机大战,而且有点痴迷其中,如果你想站在游戏的第一阶梯,便需要不断的练技术练装备,但是腾讯的游戏一般而言是有点恶心的,他会不断的出新飞机.新装备.新宠物,所以,很多时候 ...

  4. H5 音频标签自定义样式修改以及添加播放控制事件

    说明: 需求要求这个音频标签首先要是可适配移动端浏览器的,音频样式就是参考微信做的. 最终效果如下: 具体实现 思路: H5 的 <audio> 标签是由浏览器负责实现默认样式的.所以不同 ...

  5. 让资源管理器变得像Chrome一样标签化

    让资源管理器变得像Chrome一样标签化 前段时间WIn10开发者预览版发布了更新通知,其中一个主要特性就是给资源管理器添加了标签化的功能. 习惯了各种浏览器便捷的标签化管理,早就想要这个实用的功能了 ...

  6. HTML5视音频标签参考

    本文将介绍HTML5中的视音频标签和对应的DOM对象.是相关资料的中文化版本,可以作为编写相关应用的简易中文参考手册. 一些约定 所有浏览器:指支持HTML5的常见桌面浏览器,包括IE9+.Firef ...

  7. H5 &lt&semi;audio&gt&semi; 音频标签自定义样式修改以及添加播放控制事件

    H5 <audio> 音频标签自定义样式修改以及添加播放控制事件 Dandelion_drq 关注 2017.08.28 14:48* 字数 331 阅读 2902评论 3喜欢 3 说明: ...

  8. HTML5新增的音频标签、视频标签

    我们所说的H5就是我们所说的HTML5中新增的语言标准 一.音频标签 在HTML5当中有一个叫做audio的标签,可以直接引入一段音频资源放到我们的网页当中 格式: <audio autopla ...

  9. IIS 配置 FTP 网站 H5 音频标签自定义样式修改以及添加播放控制事件

    IIS 配置 FTP 网站   在 服务器管理器 的 Web服务器IIS 上安装 FTP 服务 在 IIS管理器 添加FTP网站 配置防火墙规则 说明:服务器环境是Windows Server 200 ...

随机推荐

  1. C&num; 格式化字符串,日期,字符串操作汇总

    时间格式化 有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢 我们要用到:D ...

  2. Linux下cutecom使用USB转串口线

    http://www.cnblogs.com/pang123hui/archive/2011/05/29/2309888.html 在Linux下的串口调试一直使用minicom,虽说Linux的精髓 ...

  3. 使用TFS&plus;GIT实现分布式项目管理

    前言 GIT是近来很流行的一种版本控制系统,是Linux内核之父Linus Torvalds为了管理Linux内核的开发而开发的一种开源的版本控制工具. GIT相比传统的版本控制工具最大的优点是实现了 ...

  4. UML系列图------用例图介绍

    UML-Unified Model Language 统一建模语言,又称标准建模语言.是用来对软件密集系统进行可视化建模的一种语言. 在UML系统开发中有三个主要的模型: 功能模型: 从用户的角度展示 ...

  5. jvm理论

    三大流行jvm sun HotSpot ibm j9 BEA JRockit Oracle 会基于HotSpot整合 JRockit. jvm运行时数据区 java虚拟机所管理的内存将会包括以下几个运 ...

  6. 第一章:Druid简介

    第一章:Druid简介 声明 公司的项目中用到了Druid(不是阿里的连接池),由于网上没有中文的文档,所以只好阅读官方文档.本人第一次阅读英文的文档,非常吃力,借助翻译工具和自己的理解阅读了Duri ...

  7. Python之作用域

    作用域测试例子: >>> a = 10 >>> def test(): ... a = 20 ... print a ... >>> a 10 & ...

  8. Python 使用python-kafka类库开发kafka生产者&amp&semi;消费者&amp&semi;客户端

    使用python-kafka类库开发kafka生产者&消费者&客户端   By: 授客 QQ:1033553122       1.测试环境 python 3.4 zookeeper- ...

  9. docker-compose&period;yml&lpar;4&rpar;

    实例3:version: '3'services: mysql: image: mysql network_mode: "host" environment: - MYSQL_RO ...

  10. 【转】在python3&period;5安装tkinter

    链接:https://www.zhihu.com/question/42162071/answer/95441732 安装tkinter tkinter是由tcl和tk两个部分组成的,所以下载tkin ...