主要内容

repepostprocess.

后处理repe深度学习网络输出

    描述

    例子

    F0.=蠕动postprocess(激活转换A的输出预磨平的网络以Hz的节奏估计。

    F0.=蠕动postprocess(激活'ConcidenceThreshresh'TH.指定置信阈值,作为非负标量值小于1的非负标量值。

    例如,F0 =绉塞POSTPROCESS(Activiations,'ConfidenceThreshold',0.75)指定0.75的置信阈值。

    例子

    全部收缩

    下载并解压缩绉的音频工具箱™型号。

    类型在命令窗口。如果未安装repe的音频工具箱模型,则该函数提供了链接到网络权重的位置。要下载模型,请单击链接并将文件解压缩到MATLAB路径上的位置。

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

    downloadfolder = fullfile(tempdir,'creopedownload');loc = websave(downloadFolder,'https://ssd.mathwands.com/金宝appsupportfiles/audio/crepe.zip');crepelocation = tempdir;解压缩(Loc,Crepelocation)AddPath(FullFile(CrepElocation,'绉')))

    通过键入检查安装是否成功在命令窗口。如果安装了网络,则该函数返回aDagnetwork.(深度学习工具箱)目的。

    ANS =具有属性的Dagnetwork:图层:[34×1 nnet.cnn.layer.layer]连接:[33×2表] InputNames:{'输入'} OutputNames:{'音高'}

    装载佩带的绉纱卷积神经网络并检查图层和类。

    采用加载预制repe网络。输出是A.Dagnetwork.(深度学习工具箱)目的。

    净=绉
    net =具有属性的Dagnetwork:图层:[34×1 nnet.cnn.layer.layer]连接:[33×2表] InputNames:{'输入'} OutputNames:{'音高'}

    使用该网络架构查看网络架构层数财产。网络有34层。有13层具有可学习的重量,其中六个是卷积层,六个是批量归一化层,一个是完全连接的层。

    net.layers.
    ANS = 34×1层阵列,带有层:1'输入'图像输入1024×1×1图像2'CONV1'卷积1024 512×1×1卷绕与步幅[4 1]和填充'相同'3'CONC1_RELU'RELURelu 4'Conv1-BN'批量归一化批量归一化与1024通道5'CONC1-MAXPOOL'最大池2×1最大汇集步进[2 1]和填充[0 0 0 0] 6'CONV1-DROPOUT'丢弃25%丢失7'CONV2'卷积128 64×1×1024卷曲的卷程[1 1]和填充'同一'8'8'CONV2_REL'CREU RELU 9'CONV2-BN'批量归一化批量归一化与128通道10'CONV2-MAXPOOL'MAX的批量标准化汇集2×1最大汇集步进[2 1]和填充[0 0 0 0] 11'CONV2-丢弃'辍学25%辍学12'CONV3'卷积128 64×1×128卷绕卷曲[1 1]和填充'相同'13'Conv3_Relu'Relu Relu 14'CRANC3-BN'批量归一化批量归一化与128通道15'CONV3-MAXPOOL'最大池2×1最大汇集步进[2 1]和填充[0 0 0 0] 16'conv3-tropout'辍学25%辍学17'Conv4'卷积128 64×1×128卷曲的卷曲[1 1]和填充'相同'18'18'Conv4_Relu'Relu Relu 19'Conv4-BN'批量标准化批量标准化与128通道20'CONV4-MAXPOOL'最大池2×1最大汇集步进[2 1]和填充[0 0 0 0] 21'CONV4-丢弃'辍学25%掉落22'CONV5'卷积256 64×1×128卷曲与步幅[1 1]和填充'相同'23'CONV5_RELU'CREU RELU 24'CONV5-BN'批量归一化批量标准化用256通道25'CONV5-MAXPOOL'MAX池2×1最大汇集步进[2 1]和填充[0 0 0 0] 26'CONV5-dropout'辍学25%丢失27'CONV6'卷积512 64×1×256卷曲与步幅[1 1]和填充'相同'28'28'CONV6_RELU'Relu Relu 29'Conv6-BN'批量归一化批量标准化与512通道30'Conv6-MaxPool'最大池池2×1最大汇集步进[2 1]和填充[0 0 0 0] 31'CONV6  - 丢失'丢弃25%丢弃32'分类器'完全连接的360完全连接的第33'分类器_sigmoid'sigmoid sigmoid 34'音调回归输出均值误差

    采用分析(深度学习工具箱)在目视探索网络。

    分析(净)

    Crepe网络要求您预处理音频信号以生成可以用作网络输入的缓冲,重叠和归一化音频帧。此示例通过音频预处理使用Crepepreprocess.和音频后处理使用音高估计repepostprocess.。这球场函数对您执行这些步骤。

    读取音频信号,用于音高估计。可视化并收听音频。音频剪辑中有九个声音。

    [AudioIn,FS] = audioread('SingingamaJor-16-Mono-18secs.ogg');SoundSc(AudioIn,FS)T = 1 / FS;t = 0:t :(长度(isausin)* t) -  t;绘图(t,audioin);网格紧的Xlabel('时间'')ylabel('Ampltiude') 标题(“在一个专业中唱歌”

    采用Crepepreprocess.将音频分为1024个样本的帧,在连续的MEL谱图之间具有85%重叠。将框架沿第四维放置。

    [框架,loc] = crepepreprocess(AudioIn,FS);

    创建一个repe网络ModelCapacity.设置微小的。如果你打电话在下载模型之前,将在使用下载链接打印到命令窗口中的错误。

    nettiny =绉('modelcapacity''微小的');

    预测网络激活。

    ActivationStiny =预测(NetTiny,框架);

    采用repepostprocess.在Hz中产生基本频谱估计。通过设置禁用自信阈值ConcidenceThreshold.0.

    f0tiny = repepostprocess(激活stiny,'ConcidenceThreshresh',0);

    随着时间的推移可视化音调估计。

    绘图(Loc,F0Tiny)网格紧的Xlabel('时间'')ylabel('音高估计(Hz)') 标题('repe网络频率估计 - 禁用禁用禁用'

    有信心的禁用禁用,repepostprocess.为每个帧提供音高估计。增加ConcidenceThreshold.0.8

    f0tiny = repepostprocess(激活stiny,'ConcidenceThreshresh',0.8);

    随着时间的推移可视化音调估计。

    绘图(Loc,F0Tiny,'行宽',3)网格紧的Xlabel('时间'')ylabel('音高估计(Hz)') 标题('repe网络频率估计 - 启用阈值平衡'

    创建一个新的repe网络ModelCapacity.设置满的

    netfull =绉纱('modelcapacity''满的');

    预测网络激活。

    Activationsfull =预测(Netfull,框架);f0full = crepepostprocess(Activationsfull,'ConcidenceThreshresh',0.8);

    可视化音高估计。有九个主要间距估计分组,每个组与九个声音话语之一对应。

    绘图(Loc,F0full,'行宽',3)网格Xlabel('时间'')ylabel('音高估计(Hz)') 标题('repe网络频率估计 - 完全'

    找到与上一个声音话语对应的时间元素。

    Roundedlocvec =圆形(LOC,2);LastumeranceBegin =查找(RoundedLocvec == 16);Lastumonandend =查找(RoundedLocvec == 18);

    为简单起见,在话语组内采取最常发生的间距估计作为该时的基本频率估计。生成纯音,频率与上次声音话语的音高估计匹配。

    Lastumderanceestimation = mode(f0full(lasumertancebegin:lastumderancend))
    LastumerdenteStimation =.单身的217.2709

    价值拉特德·217.3.赫兹。对应于NOTE A3。覆盖最后一个声音的合成音,以听到两者的比较。

    LastVocalutterance = AudioIn(FS * 16:FS * 18);newtime = 0:T:2;CompareteOne = cos(2 * pi * lastummentanceestimation * newtime)。';Soundsc(LastVocalutch + Comparety,FS);

    称呼谱图更紧密地检查歌唱的频率内容。使用帧大小250.样本和重叠225.样品或90%。采用4096转换的DFT点。这谱图揭示了声乐记录实际上是一组由多个频率组成的复杂谐波音调。

    谱图(AudioIn,250,225,4096,FS,'yaxis'

    输入参数

    全部收缩

    从a生成的音频帧预先预订的网络,指定为一个N-经过-360.矩阵,其中N是生成帧的数量。

    数据类型:单身的|双倍的

    每个价值的置信阈值F0.,指定为逗号分隔的配对组成'ConcidenceThreshresh'和标量在范围[0,1)。

    禁用阈值,设置TH.0.

    笔记

    如果相应的最大值激活矢量小于TH.F0.

    数据类型:单身的|双倍的

    输出参数

    全部收缩

    赫兹的估计基础频率,作为返回N-经过-1矢量,在那里N是生成帧的数量。

    数据类型:单身的

    参考

    [1] Kim,Jong Wook,Justin Salamon,Peter Li和Juan Pablo Bello。“绉纱:节奏估计的卷积象征。”在2018年IEEE音响,演讲和信号处理国际会议(ICASSP)161-65。卡尔加里,AB:IEEE,2018. HTTPS://DO.ORG/10.1109/ICASSP.2018.8461329。

    扩展能力

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

    也可以看看

    ||

    在R2021A介绍