首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何处理CNN使用的音频频谱图的动态输入大小?

如何处理CNN使用的音频频谱图的动态输入大小?
EN

Stack Overflow用户
提问于 2016-05-05 07:40:06
回答 2查看 2.5K关注 0票数 10

很多文章都在使用CNN来提取音频特征。输入数据是具有时间和频率两个维度的语谱图。

在创建音频频谱图时,需要指定两个维度的确切大小。但它们通常不是固定的。可以通过窗口大小指定频率维度的大小,但是时域呢?音频样本的长度不同,但CNN的输入数据大小应该是固定的。

在我的数据集中,音频长度从1秒到8秒。填充或剪切总是对结果影响太大。

所以我想知道更多关于这个方法的信息。

EN

回答 2

Stack Overflow用户

发布于 2016-05-06 13:51:25

CNN是基于帧窗口计算的。你可以选取周围的30帧图像,然后训练CNN对它们进行分类。在这种情况下,您需要有帧标签,您可以从其他语音识别工具包中获得这些标签。

如果你想有纯粹的神经网络解码,你最好训练递归神经网络(RNN),它们允许任意长度的输入。为了提高RNN的准确性,你最好有CTC层,它允许在没有网络的情况下调整状态对齐。

如果您对这个主题感兴趣,可以尝试https://github.com/srvk/eesen,这是一个为使用递归神经网络进行端到端语音识别而设计的工具包。

还有相关的Applying neural network to MFCCs for variable-length speech segments

票数 3
EN

Stack Overflow用户

发布于 2020-09-22 15:26:34

好了,我终于找到了一个谈论这件事的paper。在论文中,他们说:

通过填充/剪辑到4秒的持续时间来标准化所有音频剪辑

所以,是的,你所说的对你的表现有影响的是他们在论文中所做的事情。

这类应用程序的一个示例可以是UrbanSoundDataset。它是一个不同长度音频的数据集,因此任何使用它的论文(对于非RNN网络)都将被迫使用这种或其他方法,将声音转换为相同长度的向量/矩阵。我推荐论文Deep Convolutional Neural Networks and Data Augmentation for Environmental Sound ClassificationENVIRONMENTAL SOUND CLASSIFICATION WITH CONVOLUTIONAL NEURAL NETWORKS。后者的代码是开源的,你可以看到它在this notebook的function _load_audio上也有4秒的音频。

如何裁剪音频

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pydub import AudioSegment

audio = pydub.AudioSegment.silent(duration=duration_ms)    # The length you want
audio = audio.overlay(pydub.AudioSegment.from_wav(path))
raw = audio.split_to_mono()[0].get_array_of_samples()      # I only keep the left sound 

Mel-spectrogram

标准是对这类应用程序使用mel-spectrum。您可以使用Python库Essentia并遵循this示例,或者像这样使用librosa:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Attention, I do not cut / pad this example
y, sr = librosa.load('your-wav-file.wav')      
mel_spect = librosa.feature.melspectrogram(y=y, sr=sr, n_fft=2048, hop_length=1024)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37045126

复制
相关文章
Docker 添加容器SSH服务
很多时候我们需要登陆到容器内部操作,此时我们就需要开启容器的SSH支持了,下面的小例子将具体介绍三种分配IP地址的方法,分别是pipworl分配,commit分配,Docker分配等.
微软技术分享
2022/12/28
1.6K0
Docker容器日志路径及如何收集
如果深究其日志位置,每个容器的日志默认都会以 json-file 的格式存储于 /var/lib/docker/containers/<容器id>/<容器id>-json.log 下,不过并不建议去这里直接读取内容,因为 Docker 提供了更完善地日志收集方式 - Docker 日志收集驱动。
星哥玩云
2022/07/13
2.2K0
pycharm配置路径_pycharm添加运行文件路径
步骤二: settings for New projects–>project Interpreter–>show All–>Add
全栈程序员站长
2022/09/25
2.1K0
pycharm配置路径_pycharm添加运行文件路径
自定义docker容器网络
1.通过bridge 驱动创建类似前面默认的 bridge 网络: docker network create --driver bridge my_net 如果没有指定网段默认为172.18.0.0/16:
@凌晨
2020/05/28
1K0
docker容器添加对外映射端口
在容器首次启动是,可通过-p参数(-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如:
程序新视界
2023/09/09
2.5K0
Docker容器修改host文件
但发现容器重启后, host 文件就被恢复了,那么如何对正在运行的容器,永久指向 host 呢,答案是可以的
子润先生
2021/06/23
2.5K0
Docker容器修改host文件
但发现容器重启后, host 文件就被恢复了,那么如何对正在运行的容器,永久指向 host 呢,答案是可以的
Petrochor
2022/06/07
1.4K0
Windows添加右键菜单,复制文件路径
在开发过程中经常需要复制文件的路径,以前都要先复制文件夹路径,再拼接上文件名称,特别麻烦。
码客说
2023/04/27
1.6K0
Docker入门及自定义容器
Linux Containers Linux容器 缩写LXC,其对进程进行隔离,而非一个完整的操作系统。Docker属于LXC的一种封装,提供简单易用的容器使用接口。Docker主要用于提供一次性环境、提供 弹性的云服务、组件微服务架构。
用户2987604
2020/06/15
1.5K0
Docker 添加容器到一个网络
通过网络,在默认情况下为容器提供了完全独立的环境。在你第一次运行一个容器的时候,你可以将容器添加到一个网络中。
HoneyMoose
2020/12/02
1.6K0
Docker 添加容器到一个网络
docker 修改镜像和容器的存放路径 原
此方法,启动Docker时发现存储目录依旧是/var/lib/docker,但是实际上是存储在数据盘的,你可以在数据盘上看到容量变化。
拓荒者
2019/03/11
2.6K0
在 Docker 容器中编辑文件
我希望每次在docker容器中安装vi的时候谁会给我1美元...我想要一个在运行的docker容器编辑文件的更简单的方式。首先,尝试避免编辑文件,这违背了容器的哲学理念(见最后一段)。
星哥玩云
2022/07/03
5.5K0
在 Docker 容器中编辑文件
docker容器修改配置文件
2.修改配置文件 hostconfig.json(修改前先 systemctl stop docker关闭Docker服务)
@凌晨
2022/01/12
3.9K0
docker容器修改配置文件
复制文件到Docker容器内
举例说明: 假设一个运行的容器ID为9a28f199688e,想要将本地文件/path/to/local-file 复制到容器中的 /path/to/destination 目录中。
程序新视界
2023/09/07
9260
向mysql配置文件中添加日志配置
socket = usr/local/lnmp/mysql-5.7.21/mysql.sock
93年的老男孩
2019/12/18
3K0
docker安装Redis_docker redis配置文件路径
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
7.4K0
docker安装Redis_docker redis配置文件路径
关于docker容器启动后修改或添加端口
docker容器启动后怎么修改端口映射?在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,也会遇到刚开始忘记设置端口映射或者设置错了需要修改的情况。当docker start运行容器后,并没有提供一个-p选项或设置,让你修改指定端口映射规则。
互联网-小阿宇
2022/11/21
4.6K0
关于docker容器启动后修改或添加端口
使用Solr向您的站点添加自定义搜索
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 文档通过Http利用XML 加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
新巴子
2018/08/16
1.2K0
spring:如何用代码动态向容器中添加或移除Bean ?
先来看一张类图: 有一个业务接口IFoo,提供了二个实现类:FooA及FooB,默认情况下,FooA使用@Component由Spring自动装配,如果出于某种原因,在运行时需要将IFoo的实现,则F
菩提树下的杨过
2018/01/18
5.2K0
spring:如何用代码动态向容器中添加或移除Bean ?
关于docker容器启动后修改或添加端口
docker容器启动后怎么修改端口映射?在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,也会遇到刚开始忘记设置端口映射或者设置错了需要修改的情况。当docker start运行容器后,并没有提供一个-p选项或设置,让你修改指定端口映射规则。
全栈程序员站长
2021/06/10
29.2K0
关于docker容器启动后修改或添加端口

相似问题

如何向docker容器添加动态文件

32

从Dockerfile向docker容器添加主机文件

10

将Miniconda二进制文件添加到Docker容器中的路径

222

如何向Docker容器添加用户?

51.5K

试图向Docker容器添加libxslt

25
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文