上一节介绍了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. Idea+maven+testNG+Selenium+ReportNG自动化框架搭建

    1.Idea创建一个空的Maven项目 创建后默认项目目录如图所示 2.配置pom.xml文件 <?xml version="1.0" encoding="UTF- ...

  2. Difference Among Mercedes Star Diagnostic Tool MB Star C3 C4 C5 C6

    Mercedes Star Diagnostic Tool newly update to MB Star C6.There are many star diangostic tool in the ...

  3. windows远程桌面连接时,显示发生身份验证错误,给函数提供的身份无效

    摘自:https://www.landui.com/help/show-7787 初次看到这个错误的时候懵了.访问给的地址一看,发现大概意思是不安全了,微软要更新一下 凭据安全支持提供程序协议 (Cr ...

  4. zeromq学习记录(三)使用ZMQ_PULL ZMQ_PUSH

    /************************************************************** 技术博客 http://www.cnblogs.com/itdef/   ...

  5. STM32 + RC522(SPI2 和 模拟SPI)

    STM32 + RC522(SPI2 和 模拟SPI) 一. STM32 + RC522(SPI2 模式) 1. 头文件: rc522.h #include "stm32f10x.h&quo ...

  6. Android使用ksoap2调用C#中的webservice实现图像上传

    目录: 一. android使用ksoap2调用webservice 二. 异步调用 三. Android使用ksoap2调用C#中的webservice实现图像上传参考方法 四. 图像传输中Base ...

  7. CSS3美化网页!!

    一.span标签:能让某几个文字或者某个词语凸显出来        <p>           今天是11月份的<span>第一天</span>,地铁卡不打折了  ...

  8. C++ MFC棋牌类小游戏day4

    根据昨天的计划,今天开始做下面的内容. 1.鼠标点击事件 2.点击坐标进行处理.(坐标转换) 3.判断选中的位置是否有效. 4.确定选中的棋子,设置棋子的状态和棋子所在坐标的状态. 5.判断移动是否有 ...

  9. MySQL 三 二进制安装

    二进制格式安装   何谓二进制格式安装?   二进制格式安装,编译好的打包在tar文件里,安装时需要下载后解包至编译时指定的位置,然后进行相关配置,完成安装   版本信息:CentOS 7.4 安装m ...

  10. Struts2学习第三天——保存登陆信息及数据校验

    在JSP中服务器端保存数据的作用域通常有request.session.application,它们对应的Servlet API分别是HttpServletRquerst.HttpSession.Se ...