主要内容

openl3Preprocess

对OpenL3特征提取的音频进行预处理

    描述

    例子

    特性= openl3Preprocess (audioInfs声音来自audioIn可以输入到OpenL3预训练的网络中。

    特性= openl3Preprocess (audioInfs名称,值使用一个或多个选项指定选项名称,值参数。例如,特点= openl3Preprocess (fs, audioIn OverlapPercentage, 75)应用用于生成光谱图的连续帧之间的75%重叠。

    例子

    全部折叠

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

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

    或者,执行以下命令下载OpenL3模型并将其解压缩到临时目录中。

    downloadFolder = fullfile (tempdir,“OpenL3Download”);loc = websave (downloadFolder,“https://ssd.mathworks.com/supportfiles/audio/openl3.zip”);OpenL3Location = tempdir;OpenL3Location解压(loc)目录(fullfile (OpenL3Location,“openl3”))

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

    openl3
    ans = DAGNetwork属性:Layers: [30×1 nnet.cnn.layer.Layer] Connections: [29×2 table] InputNames: {'in'} OutputNames: {'out'}

    使用openl3Preprocess从音频信号中提取嵌入信息。

    读入音频信号。

    [audioIn, fs] = audioread (“Counting-16-44p1-mono-15secs.wav”);

    要从音频中提取谱图,请调用openl3Preprocess函数与音频和采样率。使用50%重叠,并设置光谱类型为线性。的openl3Preprocess函数返回使用512的FFT长度生成的30个谱图数组。

    特点= openl3Preprocess (audioIn fs,“OverlapPercentage”, 50岁,“SpectrumType”“线性”);[posFFTbinsOvLap50 numHopsOvLap50, ~, numSpectOvLap50] =大小(特性)
    posFFTbinsOvLap50 = 257
    numHopsOvLap50 = 197
    numSpectOvLap50 = 30

    调用openl3Preprocess同样,这次使用默认重叠90%。的openl3Preprocess函数现在返回一个包含146个谱图的数组。

    特点= openl3Preprocess (audioIn fs,“SpectrumType”“线性”);[posFFTbinsOvLap90 numHopsOvLap90, ~, numSpectOvLap90] =大小(特性)
    posFFTbinsOvLap90 = 257
    numHopsOvLap90 = 197
    numSpectOvLap90 = 146

    想象一个随机的光谱图。

    randSpect =兰迪(numSpectOvLap90);viewRandSpect =特性(:,:,:,randSpect);N =大小(viewRandSpect 2);binsToHz = (0: N - 1) * fs / N;nyquistBin =圆(N / 2);semilogx (binsToHz (1: nyquistBin), mag2db (abs (viewRandSpect (1: nyquistBin))))包含(的频率(赫兹)) ylabel (“权力(dB)”);标题([num2str (randSpect),“th声谱图”])轴网格

    创建一个OpenL3网络(这需要深度学习工具箱)使用相同的“SpectrumType”

    网= openl3 (“SpectrumType”“线性”);

    提取并可视化音频嵌入。

    嵌入=预测(净、特点);冲浪(嵌入的,“EdgeColor”“没有”) view([90,-90]) axis([1 numSpectOvLap90 1 numSpectOvLap90]) xlabel(“嵌入长度”) ylabel (的光谱数)标题(“OpenL3功能嵌入”)轴

    输入参数

    全部折叠

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

    数据类型:|

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

    数据类型:|

    名称-值参数

    指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

    在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

    例子:openl3Preprocess (audioIn fs,‘SpectrumType’,‘mel256’)

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

    数据类型:|

    由音频生成并用作神经网络输入的频谱类型,指定为以下之一:

    • “mel128”-使用128个mel波段生成mel光谱图。

    • “mel256”-使用256个mel波段生成mel光谱图。

    • “线性”—使用512的FFT长度生成正的单边光谱图。

    数据类型:字符|字符串

    输出参数

    全部折叠

    谱图产生audioIn,作为N——- - - - - --by-1-by -K数组中。

    当你指定“SpectrumType”作为其中之一:

    • “mel128”——尺寸为128——- - - - - -199——- - - - - -1——- - - - - -K,在那里128MEL乐队的数量和199是时间跳数。

    • “mel256”——尺寸为256——- - - - - -199——- - - - - -1——- - - - - -K,在那里256MEL乐队的数量和199是时间跳数。

    • “线性”——尺寸为257——- - - - - -197——- - - - - -1——- - - - - -K,在那里257是正的单边FFT长度和197是时间跳数。

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

    数据类型:

    参考文献

    [1]克莱默、杰森等。“看,听,并了解更多:深度音频嵌入的设计选择。”在2019 IEEE声学、语音和信号处理国际会议(ICASSP), 2019, pp. 3852-56。DOI.org (Crossref), doi: 10.1109 / / ICASSP.2019.8682475。

    扩展功能

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

    版本历史

    介绍了R2021a

    Baidu
    map