主要内容

vggishPreprocess

预处理音频用于VGGish特征提取

    描述

    例子

    特性= vggishPreprocess (audioInfs生成MEL谱图audioIn可以输入VGGish预训练网络。

    特性= vggishPreprocess (audioInfs“OverlapPercentage”人事处指定连续音频帧之间的重叠百分比。

    例如,vggishPreprocess (fs, audioIn OverlapPercentage, 75)在生成光谱图的连续帧之间应用75%的重叠。

    例子

    全部折叠

    下载并解压VGGish的Audio Toolbox™模型。

    类型vggish在命令窗口。如果没有安装VGGish的Audio Toolbox模型,那么该函数将提供到网络权重位置的链接。要下载模型,请单击链接。解压文件到MATLAB路径上的一个位置。

    或者,执行这些命令将VGGish模型下载并解压到临时目录。

    downloadFolder = fullfile (tempdir,“VGGishDownload”);loc = websave (downloadFolder,“https://ssd.mathworks.com/金宝appsupportfiles/audio/vggish.zip”);VGGishLocation = tempdir;VGGishLocation解压(loc)目录(fullfile (VGGishLocation,“vggish”))

    输入以下命令,检查安装是否成功vggish在命令窗口。如果网络已安装,则该函数返回aSeriesNetwork(深度学习工具箱)对象。

    vggish
    ans = SeriesNetwork with properties: Layers: [24×1 net.cnn.layer. layer] InputNames: {'InputBatch'} OutputNames: {'regressionoutput'}

    加载一个预先训练的VGGish卷积神经网络并检查层和类。

    使用vggish加载预训练的VGGish网络。输出是一个SeriesNetwork(深度学习工具箱)对象。

    网= vggish
    [24×1 nnet.cnn.layer.Layer] InputNames: {'InputBatch'} OutputNames: {'regressionoutput'}

    使用命令查看网络架构财产。网络有24层。有9个具有可学习权值的层,其中6个是卷积层,3个是完全连接层。

    网。层
    ans = 24×1 Layer array with layers:1“InputBatch”图像输入96×64×1图片2 conv1卷积64 3×3×1旋转步[1]和填充“相同”3“relu”relu relu 4“pool1”马克斯池2×2马克斯池步(2 - 2)和填充“相同”5 conv2卷积128 3×3×64旋转步[1]和填充“相同”6“relu2”relu relu 7 pool2马克斯池2×2马克斯池步(2 - 2)和填充“相同”256“conv3_1”卷积3×3×128旋转步[1]和填充“相同”9“relu3_1”ReLU ReLU conv3_2的卷积256 3×3×256旋转步[1]和填充“相同”11的relu3_2 ReLU ReLU 12“pool3”马克斯池2×2马克斯池步(2 - 2)和填充“相同”13conv4_1卷积512 3×3×256旋转步[1]和填充“相同”14的relu4_1 ReLU ReLU 15 conv4_2卷积512 3×3×512旋转步[1]和填充“相同”16的relu4_2 ReLU ReLU 17“pool4”马克斯池2×2马克斯池步(2 - 2)和填充“相同”18 fc1_1完全连接4096完全连接层19'relu5_1' ReLU ReLU 20 'fc1_2' Fully Connected 4096 Fully Connected layer 21 'relu5_2' ReLU ReLU 22 'fc2' Fully Connected 128 Fully Connected layer 23 ' embedingbatch ' ReLU ReLU 24 'regressionoutput' Regression Output ' Regression Output均方误差

    使用analyzeNetwork(深度学习工具箱)可视化地探索网络。

    analyzeNetwork(净)

    读入音频信号。

    [audioIn, fs] = audioread (“SpeechDFT-16-8-mono-5secs.wav”);

    绘制并聆听音频信号。

    T = 1 / f;t = 0: t:(length(audioIn)* t) - t;情节(t, audioIn);网格包含(“时间(t)”) ylabel (“Ampltiude”

    soundsc (audioIn fs)

    使用vggishPreprocess从音频信号中提取MEL谱图。

    melSpectVgg = vggishPreprocess (audioIn, fs);

    创建一个VGGish网络(这需要深度学习工具箱)。调用预测使用VGGish网络从预处理的mel谱图图像中提取音频特征嵌入。特征嵌入被返回为numFrames128年——矩阵,numFrames为单个谱图的个数,128为每个特征向量中元素的个数。

    网= vggish;嵌入=预测(净,melSpectVgg);[numFrames, numFeatures] =大小(嵌入)
    numFrames = 9
    numFeatures = 128

    可视化VGGish特征嵌入。

    冲浪(嵌入的,“EdgeColor”“没有”)视图([90,-90])轴([1 numFeatures 1 numFrames]) xlabel(“功能”) ylabel (“帧”)标题(“VGGish音频功能嵌入”

    输入参数

    全部折叠

    输入信号,指定为列向量或矩阵。如果你指定一个矩阵,vggishPreprocess将矩阵的列视为单独的音频通道。

    数据类型:|

    输入信号的采样率(Hz),指定为一个正标量。

    数据类型:|

    连续的mel光谱图之间的重叠百分比,指定为由逗号分隔的对组成“OverlapPercentage”以及范围[0,100]内的标量。

    数据类型:|

    输出参数

    全部折叠

    梅尔光谱图产生于audioIn,返回为96——- - - - - -64——- - - - - -1——- - - - - -K数组,地点:

    • 96——表示每个mel谱图中10毫秒帧的数量。

    • 64——代表跨越125赫兹到7.5 kHz的mel频带的数量。

    • K——表示mel谱图的数量,取决于长度audioIn,通道的数量audioIn,以及OverlapPercentage

      请注意

      每一个96——- - - - - -64——- - - - - -1Patch代表单个MEL谱图图像。对于多通道输入,mel谱图沿第四维度堆叠。

    数据类型:

    参考文献

    [1] Gemmeke, Jort F., et al. <音频集:用于音频事件的本体和人类标记数据集>。2017 IEEE声学、语音和信号处理国际会议(ICASSP), IEEE, 2017, pp. 776-80。DOI.org (Crossref), doi: 10.1109 / ICASSP.2017.7952261。

    Hershey, Shawn, et al. < CNN大规模音频分类架构>。2017 IEEE声学、语音和信号处理国际会议(ICASSP), IEEE, 2017,第131-35页。DOI.org (Crossref), doi: 10.1109 / ICASSP.2017.7952132。

    扩展功能

    C / c++代码生成
    使用MATLAB®Coder™生成C和c++代码。

    另请参阅

    |

    介绍了R2021a