主要内容

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/supportfiles/audio/vggish.zip”);VGGishLocation = tempdir;VGGishLocation解压(loc)目录(fullfile (VGGishLocation,“vggish”))

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

    vggish
    ans =带有属性的SeriesNetwork: Layers: [24×1 nnet.cnn.layer.Layer] InputNames: {'InputBatch'} OutputNames: {'regressionoutput'}

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

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

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

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

    网层
    ans = 24×1带有图层的图层数组: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 reluReLU conv3_2的卷积256 3×3×256旋转步[1]和填充“相同”11的relu3_2 ReLU ReLU 12“pool3”马克斯池2×2马克斯池步(2 - 2)和填充“相同”13 conv4_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'全连接4096全连接层21 'relu5_2' ReLU ReLU 22 'fc2'全连接128全连接层23 'EmbeddingBatch' ReLU ReLU 24 'regressionoutput'回归输出均方误差

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

    analyzeNetwork(净)

    读入音频信号。

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

    绘制并收听音频信号。

    T = 1 / f;t = 0: t:(长度(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”“没有”view([90,-90]) axis([1 numFeatures 1 numFrames]) xlabel([90,-90])“功能”) ylabel (“帧”)标题(“VGGish音频特征嵌入”

    输入参数

    全部折叠

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

    数据类型:|

    输入信号的采样率(以Hz为单位),指定为正标量。

    数据类型:|

    连续mel谱图之间的重叠百分比,指定为范围[0,100)中的标量。

    数据类型:|

    输出参数

    全部折叠

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

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

    • 64——表示跨度为125赫兹到7.5 kHz的mel频带数。

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

      请注意

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

    数据类型:

    参考文献

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

    [2] Hershey, Shawn,等人,《CNN大规模音频分类的架构》。2017 IEEE声学、语音和信号处理国际会议, 2017, pp. 131-35。DOI.org (Crossref), doi: 10.1109 / ICASSP.2017.7952132。

    扩展功能

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

    版本历史

    介绍了R2021a

    Baidu
    map