睡眠音频分割及识别问题(四)--YAMNet简介

简介

YAMNet模型是在 AudioSet 数据集(一个大型音频、视频数据集)上训练的音频事件分类器。

模型输入

该模型接收包含任意长度波形的float32一维张量或 NumPy数组,且满足范围[-1.0, +1.0]内的单声道16kHz样本。在内部,该算法将波形划分为长度为0.96秒和跳跃0.48秒的滑动窗口,然后在一批这些帧上运行模型。

模型输出

该模型返回一个 3 元组(scores, embeddings, log_mel_spectrogram),其中
(1)Scores是一个float32的形状为(N, 521)的张量,N为批大小,521列代表521个对应声音事件的评分。
(2)Embeddings是一个float32的形状为(N, 1024)的张量,这个张量是模型最后的全链接神经网络前的平均池化层输出,我们可以把YAMNet当做一个特征提取器(Embedding)来构建其他模型。
(3)log_mel_spectrogram是一个float32的形状为(num_spectrogram_frames, 64)的张量,其中num_spectrogram_frames是通过滑动长度为 0.025 秒的频谱图分析窗口以 0.01 秒的跳跃从波形产生的帧数。

模型使用

该模型提供了三种使用场景。
(1)在python中直接通过tensorflow_hub插件使用,可以直接通过调用API的方式使用。
model = hub.load(‘https://tfhub.dev/google/yamnet/1’)
可以直接在python代码中通过该语句直接加载模型。
(2)在Tensorflow的JS版本中使用
const modelUrl = ‘https://tfhub.dev/google/tfjs-model/yamnet/tfjs/1’;
const model = await tf.loadGraphModel(modelUrl, { fromTFHub: true });
可以在通过使用JavaScript开源库TensorFlow.js来使用该模型
(3)在TFLite中使用
TFLite是为了将深度学习模型部署在移动端和嵌入式设备的工具包,可以把训练好的TF模型通过转化、部署和优化三个步骤,达到提升运算速度,减少内存、显存占用的效果。
TFlite主要由Converter(左)和Interpreter(右)组成。Converter负责把TensorFlow训练好的模型转化,并输出为.tflite文件(FlatBuffer格式)。转化的同时,还完成了对网络的优化,如量化。Interpreter则负责把.tflite部署到移动端,嵌入式(embedded linux device)和microcontroller,并高效地执行推理过程,同时提供API接口给Python,Objective-C,Swift,Java等多种语言。简单来说,Converter负责打包优化模型,Interpreter负责高效易用地执行推理。
在这里插入图片描述
此外,TFLite提供了 Java、Python 和 C++ API 库,可以运行在 Android、iOS 和 Raspberry Pi 等设备上。

参考文献

[1] https://discuss.tf.wiki/t/topic/1337

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507741.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle运行环境配置,oracle 环境配置开机自启动

环境:centos 6.5 oracle 11g自启动之前问题虚拟机里的oracle环境,每次重启完系统,用plsql developer连接,先是报错:无TNS监听程序解决方法是切换到系统的oracle用户,执行lsnrctl start,但是执行之前,因为O…

睡眠音频分割及识别问题(二)

输入 通过手机麦克风录制的任意长度睡眠声音。 输出 睡眠阶段曲线,该曲线可以反映出深度睡眠,浅度睡眠、REM睡眠、清醒各个阶段。 研究的核心问题 1、录制策略 (1)每隔10分钟录制一段睡眠音; 2、采用什么策略来…

睡眠音频分割及识别问题(三)

文献一:PANNs: Large-Scale Pretrained Audio Neural Networks for Audio Pattern Recognition [摘要] 音频模式识别是机器学习领域的一个重要研究课题,包括音频标注、声场景分类、音乐分类、语音情感分类和声音事件检测等多项任务。最近,神…

对应oracle生成java对象,Java学习笔记(十三)——通过Netbeans开发环境生成oracle数据库中表的对应hibernate映射文件...

【前面的话】身体慢慢已经快好了,感觉真好,哈哈。这篇文章要通过Hibernate对数据库进行操作,而Netbeans可以直接通过数据库逆向生成对应的映射文件。基础文章,选择性阅读。【步骤】1、 在netbeans中选择服务,点击数据库…

qt如何实现backspace的功能_如何实现知识星球列表拖拽功能

本 篇讲解一下如何实现在知识星球中星球列表的拖拽,各位可能都知道,我创建了一个星球【Hi Android】,所以最近使用这个软件比较多,之前也写过关于这个软件如何生成分享卡的文章,就是那篇文章有小伙伴建议我写一个星球的…

睡眠音频分割及识别问题(五)--YAMNet进一步分析

简介 YAMNet 是一个经过预训练的深度网络,可基于 AudioSet-YouTube 语料库 预测 521 种音频事件类别,并采用Mobilenet_v1深度可分离卷积架构。 输入 模型训练所使用的音频特征计算方式如下: 所有音频均重采样为 16 kHz 单声道。 通过长度…

vb.net调用oracle存储过程,vbnet2008连接oracle增删改查学习笔记(经典crud_含存储过程).doc...

vbnet2008连接oracle增删改查学习笔记(经典crud_含存储过程).doc 我的VBNETORACLE增删改查学习笔记(本源码在VBNET2008下测试通过)学习VBNET有一段时间了,之前一直学习VB60。过度到NET后发现与之前所学习的有了相当大的变化。于是将编程经常用到的增删改查代码提炼出…

睡眠音频分割及识别问题(六)--输入输出及方案讨论

简介 2021年7月13日,我和我的三个研究生一起拜访了玉米树,和王总等一起针对睡眠音频分割及识别问题进行了深入的讨论,达成了如下共识。 输入 由于保存整个晚上的睡眠音频所需要的存储空间过大,目前拟采用每隔30分钟&#xff08…

python文件独特行数_python——文件和数据格式化练习题:文件独特行数

描述 统计附件文件中与其他任何其他行都不同的行的数量,即独特行的数量。 问题分析 这道题是python123课程里面的一道题,我先说一下我的分析过程: 要实现问题找到不同行数,那就要用每一行分别和出它以外剩余所有行比较&#xff0c…

睡眠音频分割及识别问题(七)--接口输入输出讨论

简介 关于接口输入输出的讨论。 输入 1、音频文件路径,类型为:字符串; 2、预测多标签类型的排名,前n名,类型为:整型。 处理 1、将输入的音频分割为多个以1s为时间单位的音频片段; 2、利用P…

dhcp工具_网络分析之DHCP服务闯入QinQ二层隧道引发故障

一、Wireshark显示过滤器和QinQ二层隧道简述1.本段主要简述什么是Wireshark显示过滤器。显示过滤器是在现有的数据包中通过过滤条件,筛选想要查看的对象,不会丢失数据包,只是为了增强用户阅读而将一部分数据包隐藏起来。在“应用显…

php redis存储位置,redis数据保存在哪里

redis的数据是存在内存里吗?首先要明白redis是一个数据库,redis是一个内存数据库,所有数据基本上都存在于内存当中,会定时以追加或者快照的方式刷新到硬盘中。 (推荐学习:Redis视频教程)由于redis是一个内存数据库&…

python 多条件 选择 算法_浅析Python中的多条件排序实现

多条件排序及itemgetter的应用曾经客户端的同事用as写一大堆代码来排序,在得知Python排序往往只需要一行,惊讶无比,遂对python产生浓厚的兴趣。 之前在做足球的积分榜的时候需要用到多条件排序,如果积分相同,则按净胜球…

推荐系统: 数据、问题与算法

网络的迅速发展带来了信息量的大幅增长,使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而降低了,导致信息超载(information overload)问题。 解决信息超载问题一个非常有潜力的办…

python字典遍历 没有顺序_Python中字典的顺序问题(为什么实践发现字典的遍历和方法popitem并不是随机的?)...

据称,字典的遍历是没有一定顺序的,但是我在实践中发现,它总是从第一组元素开始依次遍历到最后一个元素。 my_dict dict.fromkeys(range(10**5)) i 0 for k, v in my_dict.items(): ... if k ! i: ... print(k, i) ... print("字典的遍…

linux内核优化策略,linux系统调优小结

关于安全系统的调优:1、关闭selinux安全策略sed -i s#SELINUXenforcing#SELINUXdisabled#g /etc/sysconfig/selinuxfor oldboy in chkconfig --list|grep "3:on"|awk {print $1}|grep -vE "crond|network|sshd|rsyslog";do chkconfig $oldboy o…

睡眠音频分割及识别问题(八)--数据采集

问题 在采用PANN或者YAMNet框架进行学习的时候,没有梦话、磨牙等睡眠音频数据,在一些公开数据集上也没有找到(如果有哪位读者知道,麻烦给我在评论区留言,万分感谢)。 公开数据集包括: &#xf…

旋转矩阵公式生成器_坐标变换(8)—复特征值与旋转

1.共轭复特征值设是的实矩阵,假设是的特征值,为对应的特征向量,则同样是的特征值,而是对应的特征向量,所以,当是的实矩阵,它的复特征值以共轭复数对出现。2. rotation-scaling matrix假如,为实数…

睡眠音频分割及识别问题(九)--Android下的YAMNet

部署PANNs模型面临的问题 加载模型出错 在使用PANNs模型时,在PC端可以较好的运行,可是在Android端运行的时候,编译过程提示缺少libpytorch_jni.so文件,导致无法加载模型,无法预测。(如果有读者可以解决这个…

linux终端如何打开文件夹,如何从终端打开文件夹(带GUI)?

问题描述我想在我的统一面板(ubuntu 12.10)中放置一个链接/快捷方式/启动器。我在handytutorial.com上按照this tutorial创建了一个自定义启动器并将其拖到面板上。我只需要知道我必须输入哪个命令。这可能吗?最佳解决方案gnome-open在12.04对我不起作用&#xff0c…