上一节介绍了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项目的目录结构是这样的:

然后就可以使用这个项目就行训练,比如iotforall给出的一个训练命令:

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

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

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

python train.py --help

可以看到这样的信息:

训练后产生模型文件,这个跟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与训练模型 | 音频特征样本

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

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

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

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

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

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

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

  6. HTML5视音频标签参考

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

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

    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. Django HTTP_X_FORWARDED_FOR 和 REMOTE_ADDR

    使用django来获取用户访问的IP地址,如果用户是正常情况下 request.META['REMOTE_ADDR'] 可以获得用户的IP地址.但是有些网站服务器会使用ngix等代理http,或者是该 ...

  2. Win10电脑系统使用技巧

    现如今,电脑已经成为我们不可或缺的伙伴,陪伴着我们的工作.娱乐和生活,而Windows10在大家使用的电脑中占据了大多数,但是很多的小伙伴对它的许多功能并不真正了解,今天小编就带大家了解一下这些技巧, ...

  3. [TestNG] Eclipse/STS中两种安装TestNG的方法

    Two Ways To Install TestNG in Eclipse/STS Today I install the newest Sprint Tool Suite and want to i ...

  4. Spring 框架下 事务的配置(复杂)

    //db.properties配置  src下的文件 jdbc.jdbcUrl=jdbc:mysql:///day43jdbc.driverClass=com.mysql.jdbc.Driverjdb ...

  5. hibernate的Could not execute JDBC batch update错误原因及处理

    http://blog.csdn.net/derpvailzhangfan/article/details/2332795\ 上述问题: 一设置关联 二包含关键字 三 映射文件设置 catalog=“ ...

  6. ActiveMQ_3Java实现

    Java实现 添加相应的jar包 <dependency> <groupId>org.apache.activemq</groupId> <artifactI ...

  7. 2019.02.28 bzoj4199: [Noi2015]品酒大会(sam+线段树)

    传送门 题意:给一个串,每个位置有一个权值,当S[s...s+len−1]=S[t...t+len−1]&&S[s...s+len]̸=S[t..t+len]S[s...s+len-1 ...

  8. ABP框架系列之五十:(Swagger-UI-集成)

    Introduction From it's web site: "....with a Swagger-enabled API, you get interactive documenta ...

  9. log4j控制台乱码解决办法

    1.控制台编码问题 这两天碰到一个问题,在windows启动tomcat的时候tomcat控制台日志突然乱码了, 我发现在log4j.properties文件中加了一行配置log4j.appender ...

  10. IDEA中MyBaits的Mapper文件颜色问题

    IDEA中MyBaits的Mapper文件颜色问题 在IDEA中Mapper文件的展示 包含的警告及其解决方案 然后我们就完成了,效果如下 在IDEA中Mapper文件的展示 在IDEA中,Mappe ...