AST: Audio Spectrogram Transformer运用

一、背景

AST是面向音频的transform算法,源于ViT,模型的输入并不直接是音频而是频谱图。下图是AST的模型结构图。

从图中可以看出,AST运用了transform的encoder部分,运用了位置编码,详细内容不在本篇解释,本篇主要学会应用。

二、网址

YuanGongND/ast: Code for the Interspeech 2021 paper "AST: Audio Spectrogram Transformer". (github.com)

三、运用

该部分主要是对github上的解释做一些个人解读和中文翻译,英文好的推荐直接看原文解释。

模型位置:src/models/ast_models.py

参数讲解:

ASTModel(label_dim=527, \
         fstride=10, tstride=10, \
         input_fdim=128, input_tdim=1024, \
         imagenet_pretrain=True, audioset_pretrain=False, \
         model_size='base384')

Parameters:
label_dim : 分类类别(default:527).
fstride: 频率维度上patch分裂的步幅,对于16*16个patch, fstride=16表示没有重叠,fstride=10表示重叠6(used in the paper). (default:10)
tstride: 在时间维度上patch分裂的步幅,对于16*16个patch, tstride=16表示没有重叠,tstride=10表示重叠6(used in the paper). (default:10)
input_fdim: 输入频谱图的频带数. (default:128)
input_tdim: 输入频谱图的时间帧数. (default:1024, i.e., 10.24s)
imagenet_pretrain: 如果为真,使用ImageNet预训练模型. (default: True, we recommend to set it as True for all tasks.)
audioset_pretrain: 如果为true,使用完整的AudioSet和ImageNet预训练模型。目前只支持base384模型,fstride=tstride=10. (default: False, we recommend to set it as True for all tasks except AudioSet.) 可以发现要使用预训练的AudioSet条件是很严格的。如果要更灵活的调用感觉和用ViT是一样的,当然输入是不同的。
model_size: AST的模型大小,应该在[tiny224, small224, base224,base384] (default: base384).

Input: Tensor in shape [batch_size, temporal_frame_num, frequency_bin_num]. 输入的谱图应该使用数据集的均值和std进行归一化.输入图片的样式应该类似与训练的保持一致。这个可以根据自己的数据格式更改 src/dataloader.py,还有一种简单些的方法是根据dataloader.py更改输入数据格式。
Output: 原始logit(即没有Sigmoid)的张量 in shape [batch_size, label_dim].

就模型运用而言,到这已经结束了,知道模型的调用方式,模型的参数,模型的输入输出,模型的下载位置,其使用和嵌入torchvision库中的model是一致的。至于要实现的其他功能那是其余模块的内容了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值