主要内容

绉纱再加工

绉纱深度学习网络的音频预处理

    描述

    框架=Crepep再加工(音频素,财政司司长)从中生成帧音频素这可以输入CREPE预训练深度学习网络。

    框架=Crepep再加工(音频素,财政司司长,“重叠百分比”,操作)指定连续音频帧之间的重叠百分比。

    例如帧=crepePreprocess(音频输入,fs,“重叠百分比”,75)在用于生成已处理帧的连续帧之间应用75%的重叠。

    实例

    [框架,loc]=Crepep再加工(___)返回时间值,loc,与每个帧关联。

    例子

    全部崩溃

    下载并解压缩音频工具箱™ 绉纱模型。

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

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

    downloadFolder=fullfile(tempdir,"叽叽喳喳"); loc=websave(下载文件夹,'https://ssd.mathworks.com/金宝appsupportfiles/audio/crepe.zip');crepeLocation=tempdir;解压(loc,crepeLocation)addpath(fullfile(crepeLocation,“绉纱”))

    通过键入来检查安装是否成功绉纱在命令窗口。如果已安装网络,则函数返回达格网络(深度学习工具箱)对象

    绉纱
    ans=DAG网络,属性:层:[34×1 nnet.cnn.layer.layer]连接:[33×2表]输入名称:{'input'}输出名称:{'pitch'}

    加载一个预训练的绉纱卷积神经网络,检查层次和类别。

    使用绉纱加载预训练绉纱网络。输出是一个达格网络(深度学习工具箱)对象

    净=绉纱
    net=DAG网络,具有以下属性:层:[34×1 nnet.cnn.layer.layer]连接:[33×2表]输入名称:{'input'}输出名称:{'pitch'}

    使用查看网络体系结构所有物该网络有34层。共有13层具有可学习权重,其中6层为卷积层,6层为批量归一化层,1层为全连接层。

    net.Layers
    ans=34×1带层的层阵列:1“输入”图像输入1024×1×1图像2“conv1”卷积1024 512×1×1卷积带跨步[4 1]和填充“相同的”3“conv1_relu”relu relu 4“conv1 BN”批规格化带1024个通道的批规格化5“conv1 maxpool”最大池2×1最大池带跨步[2 1]和填充[0 0 0 0]6'conv1 dropout'dropout'dropout 25%dropout 7'conv2'卷积128 64×1×1024卷积带跨步[11]和填充'same'8'conv2_relu'relu relu 9'conv2 BN'批标准化带128个通道的批标准化10'conv2 maxpool'最大池2×1最大池带跨步[21]和填充[0]11“conv2 dropout”dropout 25%dropout 12“conv3”卷积128 64×1×128卷积带跨步[11]和填充“相同的”13“conv3_relu”relu relu 14“conv3 BN”批标准化带128个通道的批标准化15“conv3 maxpool”最大池2×1最大池带跨步[21]和填充[0]16'conv3 dropout'dropout'dropout 25%dropout 17'conv4'卷积128 64×1×128卷积带跨步[11]和填充'same'18'conv4_relu'relu relu 19'conv4 BN'批标准化带128个通道的批标准化20'conv4 maxpool'最大池2×1最大池带跨步[21]和填充[0]21“conv4辍学”辍学25%辍学22“conv5”卷积256 64×1×128卷积带跨距[1]和填充“相同的”23“conv5_relu”relu relu 24“conv5 BN”批标准化带256个通道的批标准化25“conv5 maxpool”最大池2×1最大池带跨距[2 1]和填充[0 0]26“conv5辍学”辍学25%辍学27“conv6”卷积512 64×1×256卷积带跨距[1]和填充“相同”28“conv6_relu”relu relu 29“conv6 BN”批标准化带512个通道的批标准化30“conv6 maxpool”最大池2×1最大池带跨距[2 1]和填充[0 0]31“conv6脱落”脱落25%脱落32“分类器”全连接360全连接层33“分类器”sigmoid“sigmoid sigmoid 34“螺距”回归输出均方误差

    使用分析网络(深度学习工具箱)以可视化方式浏览网络。

    分析网络(net)

    CREPE网络要求您对音频信号进行预处理,以生成缓冲、重叠和规范化的音频帧,这些帧可用作网络的输入。此示例使用绉纱再加工和音频后处理与基音估计使用Crepepost过程这个皮克恩函数为您执行这些步骤。

    读入音频信号进行基音估计。想象并聆听音频。音频剪辑中有九种声音。

    [audioIn,fs]=音频读取(“唱大调-16-mono-18秒,ogg”);soundsc(audioIn,fs)T=1/fs;T=0:T:(长度(audioIn)*T)-T;绘图(T,audioIn);网格在…上牢固的xlabel(‘时间’)伊拉贝尔(“充足”)头衔(“唱大调”)

    使用绉纱再加工将音频划分为1024个采样帧,连续mel频谱图之间有85%的重叠。沿第四维放置这些帧。

    [帧,loc]=crepePreprocess(音频输入,fs);

    创建一个绉纱网络模型容量着手极小的.如果你打电话绉纱在下载模型之前,通过下载链接将错误打印到命令窗口。

    起绉(“模型容量”,“微小的”);

    预测网络激活情况。

    activationsTiny=预测(净、帧);

    使用Crepepost过程以Hz为单位进行基频基音周期估计。通过设置禁用置信阈值信心阈值0.

    f0Tiny=crepePostprocess(激活Tiny,“信心门槛”,0);

    可视化随时间变化的基音估计。

    绘图(loc,F0)网格在…上牢固的xlabel(‘时间’)伊拉贝尔('基音估计(Hz)')头衔('绉纱网络频率估计-阈值禁用')

    在禁用置信阈值的情况下,Crepepost过程为每一帧提供基音估计值。增加信心阈值0.8.

    f0Tiny=crepePostprocess(激活Tiny,“信心门槛”,0.8);

    可视化随时间变化的基音估计。

    绘图(loc,F0),“线宽”(3)网格在…上牢固的xlabel(‘时间’)伊拉贝尔('基音估计(Hz)')头衔('绉纱网络频率估计-阈值启用')

    创建一个新的绉纱网络模型容量着手满的.

    净绉(“模型容量”,“满”);

    预测网络激活情况。

    activationsFull=predict(netFull,frames);f0Full=crepePostprocess(activationsFull,“信心门槛”,0.8);

    将音高估计可视化。有九个主要的音高估计分组,每组对应于九个语音中的一个。

    绘图(loc,f0Full,“线宽”(3)网格在…上xlabel(‘时间’)伊拉贝尔('基音估计(Hz)')头衔(“绉纱网络频率估计-完整”)

    找出与最后一次发声相对应的时间元素。

    roundedLocVec=round(loc,2);lastUtteranceBegin=find(roundedLocVec==16);lastUtteranceEnd=find(roundedLocVec==18);

    为简单起见,将话语组中最频繁出现的音调估计值作为该时间跨度的基频估计值。生成频率与最后一次语音话语的音调估计值匹配的纯音。

    lastUtteranceEstimation=模式(f0Full(lastUtteranceBegin:lastUtteranceEnd))
    最后估计=仅有一个的217.2709

    价值最后估计数属于217.3Hz。对应于音符A3。将合成音调叠加在最后一次发声上,以便对两者进行听觉比较。

    lastVocalUtterance=audioIn(fs*16:fs*18);新时间=0:T:2;比较音=cos(2*pi*LastOutteranceEstimation*newTime);声音SC(lastVocalUtterance+compareTone,fs);

    呼叫光谱图要更仔细地检查歌唱的频率内容,请使用250样本和重叠的225样品或90%。使用4096变换的DFT点光谱图揭示了声音记录实际上是由多个频率组成的一组复杂的谐波。

    频谱图(audioIn,2502254096,fs,“亚克斯”)

    输入参数

    全部崩溃

    输入信号,指定为列向量或矩阵。如果指定矩阵,绉纱再加工将矩阵的列视为单独的音频通道。

    数据类型:仅有一个的|双重的

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

    数据类型:仅有一个的|双重的

    连续音频帧之间的重叠百分比,指定为逗号分隔对,包括“重叠百分比”和范围为[0100]的标量。

    数据类型:仅有一个的|双重的

    输出参数

    全部崩溃

    已处理的音频帧,返回为1024-借-1.-借-1.-借-N数组,在哪里N是生成的帧数。

    笔记

    对于多通道输入,生成框架根据通道沿第四维堆叠。例如,如果音频素是一个立体声信号,产生的数字框架每个频道实际上都是N/2.第一N/2框架对应于通道1和后续的N/2框架对应通道2。

    数据类型:仅有一个的|双重的

    与每个帧关联的时间值,作为1.-借-N向量,在哪里N是生成的帧数。时间值对应于用于计算帧的最新样本。

    数据类型:仅有一个的|双重的

    工具书类

    [1] 金钟郁、贾斯汀·萨拉蒙、彼得·李和胡安·帕布罗·贝洛,《绉纱:音高估计的卷积表示》,摘自2018年IEEE声学、语音和信号处理国际会议(ICASSP),161–65。加利福尼亚州卡尔加里:IEEE,2018年。https://doi.org/10.1109/ICASSP.2018.8461329.

    扩展能力

    C/C++代码生成
    使用Matlab®编码器生成C和C++代码™.

    在R2021a中引入