主要内容

addAugmentationMethod

添加自定义增强方法

自从R2019b

描述

例子

addAugmentationMethod (8月,algorithmName,algorithmHandle)添加一个自定义增强算法audioDataAugmenter对象。

例子

addAugmentationMethod (8月,algorithmName,algorithmHandle,名称,值)使用一个或多个指定选项名称,值对参数。

例子

全部折叠

您可以扩展的功能audioDataAugmenter通过添加自定义增强方法。

读入一个音频信号,听它。

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

创建一个audioDataAugmenter对象。设置应用白噪声的概率0

增量= audioDataAugmenter (“AddNoiseProbability”,0)
增量= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“随机”NumAugmentations: 1 TimeStretchProbability: 0.5000 SpeedupFactorRange: [0.8000 - 1.2000] PitchShiftProbability: 0.5000 SemitoneShiftRange: [2 2] VolumeControlProbability: 0.5000 VolumeGainRange: 3 [3] AddNoiseProbability: 0 TimeShiftProbability: 0.5000 TimeShiftRange: [-0.0050 - 0.0050]

指定一个自定义的扩展算法,适用于粉红噪声。的AddPinkNoise算法被添加到增压器属性。

algorithmName =“AddPinkNoise”;algorithmHandle = @ (x) x + pinknoise(大小(x),“喜欢”,x);addAugmentationMethod(增压器、algorithmName algorithmHandle)增压器
增量= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“随机”NumAugmentations: 1 TimeStretchProbability: 0.5000 SpeedupFactorRange: [0.8000 - 1.2000] PitchShiftProbability: 0.5000 SemitoneShiftRange: [2 2] VolumeControlProbability: 0.5000 VolumeGainRange: 3 [3] AddNoiseProbability: 0 TimeShiftProbability: 0.5000 TimeShiftRange: [-0.0050 - 0.0050] AddPinkNoiseProbability: 0.5000

设置添加粉红噪声的概率1

增压器。添加PinkNoiseProbability = 1
增量= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“随机”NumAugmentations: 1 TimeStretchProbability: 0.5000 SpeedupFactorRange: [0.8000 - 1.2000] PitchShiftProbability: 0.5000 SemitoneShiftRange: [2 2] VolumeControlProbability: 0.5000 VolumeGainRange: 3 [3] AddNoiseProbability: 0 TimeShiftProbability: 0.5000 TimeShiftRange: [-0.0050 - 0.0050] AddPinkNoiseProbability: 1

增加原始信号,听结果。检查参数的增强算法。

data =增加(增压器、audioIn fs);声音(data.Audio {1}, fs) data.AugmentationInfo (1)
ans =结构体字段:SpeedupFactor: 1 SemitoneShift: 0 VolumeGain: 2.4803 TimeShift: -0.0022 AddPinkNoise:“应用”

情节的梅尔·色和增强信号。

melSpectrogram (audioIn fs)标题(原始信号的)

图包含一个坐标轴对象。坐标轴对象标题原始信号,包含时间(s), ylabel频率(赫兹)包含一个类型的对象的形象。

melSpectrogram (data.Audio {1}, fs)标题(增强信号的)

图包含一个坐标轴对象。坐标轴对象与标题增强信号,包含时间(s), ylabel频率(赫兹)包含一个类型的对象的形象。

在本例中,您添加一个自定义的扩展方法,中值滤波适用于你的音频。

读入一个音频信号,听它。

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

创建一个随机序列增量增加噪声的信噪比范围5 dB 10 dB。集的概率应用音量控制,时间延伸,音高变化和时间变化0。集NumAugmentations4创建4个单独的扩增。

8月= audioDataAugmenter (“NumAugmentations”4“AddNoiseProbability”,1“SNRRange”,5,10,“VolumeControlProbability”0,“TimeStretchProbability”0,“TimeShiftProbability”0,“PitchShiftProbability”,0)
8月= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“随机”NumAugmentations: 4 TimeStretchProbability: 0 PitchShiftProbability: 0 VolumeControlProbability: 0 AddNoiseProbability: 1 SNRRange: 10 [5] TimeShiftProbability: 0

调用addAugmentationMethod用一种算法名称和函数处理。指定算法名称MedianFilter和函数处理movmedian转换窗口长度。增加添加的属性audioDataAugmenter对象。

algorithmName =“MedianFilter”;algorithmHandle = @ (x) (movmedian (x, 100));addAugmentationMethod(8月,algorithmName algorithmHandle) 8月
8月= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“随机”NumAugmentations: 4 TimeStretchProbability: 0 PitchShiftProbability: 0 VolumeControlProbability: 0 AddNoiseProbability: 1 SNRRange: 10 [5] TimeShiftProbability: 0 MedianFilterProbability: 0.5000

设置应用中值滤波的概率为80%。

aug.MedianFilterProbability = 0.8
8月= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“随机”NumAugmentations: 4 TimeStretchProbability: 0 PitchShiftProbability: 0 VolumeControlProbability: 0 AddNoiseProbability: 1 SNRRange: 10 [5] TimeShiftProbability: 0 MedianFilterProbability: 0.8000

调用增加在音频创建4对应。

data =增加(8月,audioIn fs);

你可以检查每个增加使用的参数配置AugmentationInfo表变量。如果申请增加中值滤波,然后AugmentationInfo列出了参数“应用”。如果没有申请中值滤波,然后AugmentationInfo列出了参数“绕过”

augmentationToInspect =2;data.AugmentationInfo (augmentationToInspect)
ans =结构体字段:信噪比:9.5787 MedianFilter:‘应用’

你检查听音频。绘制原始和增强信号的时域表示。

增加= data.Audio {augmentationToInspect};声音(增大,fs) t =(0:(元素个数(audioIn) 1)) / fs;taug =(0:(元素个数(增加)1))/ fs;情节(t, audioIn taug增大)传说(“原始音频”,“增强音频”)ylabel (“振幅”)包含(“时间(s)”)

图包含一个坐标轴对象。坐标轴对象包含时间(s), ylabel振幅包含2线类型的对象。这些对象代表原始音频,音频增强。

您可以指定额外的参数和相应的参数范围(当使用AugmentationParameterSource设置为“随机的)和参数值(当使用AugmentationParameterSource设置为“指定的)。您必须指定其他参数,参数范围和参数值在你的电话addAugmentationMethod

调用removeAugmentationMethod删除MedianFilter增强方法。调用addAugmentationMethod再一次,这一次指定一个增加参数,参数范围和参数值。增加和参数范围添加到你的属性audioDataAugmenter对象。

removeAugmentationMethod(8月,“MedianFilter”)algorithmName =“MedianFilter”;augmentationParameter =“MedianFilterWindowLength”;parameterRange = [1200];parameterValue = 100;algorithmHandle = @ (x, k) (movmedian (x, k));addAugmentationMethod(8月algorithmName algorithmHandle,“AugmentationParameter”augmentationParameter,“ParameterRange”parameterRange,“ParameterValue”8月,parameterValue)
8月= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“随机”NumAugmentations: 4 TimeStretchProbability: 0 PitchShiftProbability: 0 VolumeControlProbability: 0 AddNoiseProbability: 1 SNRRange: 10 [5] TimeShiftProbability: 0 MedianFilterProbability: 0.5000 MedianFilterWindowLengthRange: [200]

在当前增加管道配置,参数值不适用。ParameterValue适用时,AugmetnationParameterSource设置为“指定的。集AugmentationParameterSource指定的使当前参数值。

aug.AugmentationParameterSource =“指定”
8月= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“指定”ApplyTimeStretch: 1 SpeedupFactor: 0.8000 ApplyPitchShift: 1 SemitoneShift: 3 ApplyVolumeControl: 1 VolumeGain: 3 ApplyAddNoise: 1信噪比:5 ApplyTimeShift: 1 TimeShift: 0.0050 ApplyMedianFilter: 1 MedianFilterWindowLength: 100

AugmentationParameterSource随机然后调用增加

aug.AugmentationParameterSource =“随机”;data =增加(8月,audioIn fs);

如果申请增加中值滤波,然后AugmentationInfo列出了应用价值。

augmentationToInspect =3;data.AugmentationInfo (augmentationToInspect)
ans =结构体字段:信噪比:8.7701 MedianFilter: 117.9847

你检查听音频。绘制原始和增强信号的时域表示。

增加= data.Audio {augmentationToInspect};声音(增大,fs) t =(0:(元素个数(audioIn) 1)) / fs;taug =(0:(元素个数(增加)1))/ fs;情节(t, audioIn taug增大)传说(“原始音频”,“增强音频”)ylabel (“振幅”)包含(“时间(s)”)

图包含一个坐标轴对象。坐标轴对象包含时间(s), ylabel振幅包含2线类型的对象。这些对象代表原始音频,音频增强。

读入一个音频信号,听它。

[audioIn, fs] = audioread (“RockDrums-44p1-stereo-11secs.mp3”);声音(audioIn fs)

创建和audioDataAugmenter对象输出5对应。设置AddNoiseProbability0

8月= audioDataAugmenter (“NumAugmentations”5,“AddNoiseProbability”,0);

添加混响作为自定义增强算法。的applyReverb函数创建一个反射器对象,更新采样率、pre-delay和干/湿结构表示,然后应用混响。以减少计算开销,反射器对象是持久的。对象在每次调用重置以避免混合音频文件之间的混响的尾巴。

类型applyReverb.m
函数audioOut = applyReverb(音频、预延迟wetDryMix sampleRate)持久reverbObject如果isempty (reverbObject) reverbObject =反射镜;reverbObject结束。SampleRate = SampleRate;reverbObject。预延迟=预延迟;reverbObject。WetDryMix = WetDryMix;audioOut = reverbObject(音频);重置(reverbObject)结束

添加applyReverb作为一个自定义增强方法。为一个自定义指定多个参数方法,指定参数,参数范围和参数值与相同数量的细胞细胞阵列。设置应用混响的概率1

algorithmName =混响的;algorithmHandle = @ (x,预延迟,weDryMix) applyReverb (x,预延迟、weDryMix fs);参数= {“预延迟”,“WetDryMix”};parameterRanges = {[0, 1], [0, 1]};parameterValues = {0, 0.3};addAugmentationMethod(8月algorithmName algorithmHandle,“AugmentationParameter”、参数“ParameterRange”parameterRanges,“ParameterValue”parameterValues) aug.ReverbProbability = 1
8月= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“随机”NumAugmentations: 5 TimeStretchProbability: 0.5000 SpeedupFactorRange: [0.8000 - 1.2000] PitchShiftProbability: 0.5000 SemitoneShiftRange: [2 2] VolumeControlProbability: 0.5000 VolumeGainRange: 3 [3] AddNoiseProbability: 0 TimeShiftProbability: 0.5000 TimeShiftRange: [-0.0050 - 0.0050] ReverbProbability: 1 PreDelayRange: [0 1] WetDryMixRange: [0 1]

调用增加创建5对应。

data =增加(8月,audioIn fs);

检查每个增加的配置使用AugmentationInfo

augmentationToInspect =1;data.AugmentationInfo (augmentationToInspect)
ans =结构体字段:SpeedupFactor: 1 SemitoneShift: -1.4325 VolumeGain: 0 TimeShift: 0混响:[0.2760 - 0.4984]

你检查听音频。绘制原始和增强信号的时域表示。

增加= data.Audio {augmentationToInspect};声音(增大,fs) t =(0:(大小(audioIn, 1) 1)) / fs;taug =(0:(大小(1,1)))/ fs;情节(t, audioIn (: 1), taug,增大(:1)传说(“原始音频”,“增强音频”)ylabel (“振幅”)包含(“时间(s)”)

图包含一个坐标轴对象。坐标轴对象包含时间(s), ylabel振幅包含2线类型的对象。这些对象代表原始音频,音频增强。

输入参数

全部折叠

算法名称,指定为一个字符或字符串向量。algorithmName必须是一个独特的属性名的audioDataAugmenter,8月

数据类型:字符|字符串

处理函数实现自定义增强算法,作为指定function_handle

数据类型:function_handle

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:,“AugmentationParameter预延迟的

增加参数,指定为一个特征向量,字符串,单元阵列的特征向量,或细胞的字符串数组。

使用单元格数组创建多个增强参数。如果你创建多个增加参数,您还必须指定ParameterRangeParameterValue作为每个增加的细胞阵列包含信息参数。

例子:“AugmentationParameter”、“预延迟的

例子:AugmentationParameter,{“预延迟”、“HighCutFrequency”}

数据类型:字符|字符串

参数范围,指定为一个双元素向量不减少的值(对于一个参数)或双元素向量的单元阵列不减少的值(多个参数)。

例子:“ParameterRange”, [0, 1]

例子:ParameterRange, {[0,1], [20000]}

依赖关系

要启用这个特性,设置AugmentationParameterSource你的属性audioDataAugmenter对象“随机”

数据类型:||细胞

参数值,指定为一个标量,矢量,或单元阵列的标量或矢量。

例子:“ParameterValue”, 0

例子:“ParameterValue”, (0、0.5、1)

例子:ParameterValue, {0, 20000}

例子:ParameterValue, {[0、0.5、1], 20000}

依赖关系

要启用这个特性,设置AugmentationParameterSource你的属性audioDataAugmenter“指定”

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:金宝app是的

版本历史

介绍了R2019b