增加音频数据
使用音高变换、时间尺度修改、时移、噪声添加和音量控制等音频特定的增强技术来扩大音频数据集。您可以创建级联或并行的增强管道,以确定或概率地应用多个算法。
创建带有默认属性值的音频数据增强器对象。8月
= audioDataAugmenter ()
的非默认属性8月
= audioDataAugmenter (名称,值
)8月
使用一个或多个名称-值对参数。
AugmentationMode
- - - - - -增强模式“顺序”
(默认)|“独立”
增强模式,指定为“顺序”
或“独立”
.
“顺序”
—增强算法是按顺序(串联)应用的。
“独立”
增强算法是独立(并行)应用的。
数据类型:字符
|字符串
AugmentationParameterSource
- - - - - -增强参数的来源“随机”
(默认)|“指定”
增强参数的来源,指定为“随机”
或“指定”
.
“随机”
——使用概率参数和范围参数来概率化地应用扩展算法。
例如,要创建audioDataAugmenter
这适用于使用加速因子之间的时间拉伸0.5
和1.5
以60%的概率,在命令窗口中输入以下内容:
8月= audioDataAugmenter (“AugmentationParameterSource”,“随机”,...“TimeStretchProbability”, 0.6,...“SpeedupFactorRange”[0.5, 1.5]);
0.5
最大值是1.5
.“指定”
——使用逻辑参数和指定的参数值确定地应用增广算法。例如,要创建audioDataAugmenter
这适用于使用a来延长时间1.5
在命令窗口中输入以下内容:
8月= audioDataAugmenter (“AugmentationParameterSource”,“指定”,...“ApplyTimeStretch”,真的,...“SpeedupFactor”, 1.5);
数据类型:字符
|字符串
NumAugmentations
- - - - - -输出的增广信号数1
(默认)|正整数要输出的增强信号数,指定为正整数。
若要启用此属性,请设置AugmentationParameterSource来“随机”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
TimeStretchProbability
- - - - - -申请时间延伸的概率0.5
(默认)|[0,1]范围内的标量应用时间延伸的概率,指定为范围[0,1]内的标量。将概率设为1
每次打电话都要延长时间增加
.将概率设为0
每次你打电话的时候都跳过时间拉伸增加
.
若要启用此属性,请设置AugmentationParameterSource来“随机”
和AugmentationMode来“顺序”
.
数据类型:单
|双
SpeedupFactorRange
- - - - - -时间延伸加速因子的范围(0.8 - 1.2)
(默认)|正非递减值的二元行向量时间延伸加速因子的范围,指定为具有正非递减值的二元行向量。
若要启用此属性,请设置AugmentationParameterSource来“随机”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ApplyTimeStretch
- - - - - -申请时间伸展真正的
(默认)|假
SpeedupFactor
- - - - - -时间延伸加速因子0.8
(默认)|真正积极的标量|真正积极的向量时间拉伸加速因子,指定为实正值的标量或向量。
若要启用此属性,请设置AugmentationParameterSource来“指定”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
PitchShiftProbability
- - - - - -应用螺距移位的概率0.5
(默认)|[0,1]范围内的标量应用节距偏移的概率,指定为范围[0,1]内的标量。将概率设为1
在每次调用时应用音高变换增加
.将概率设为0
每次通话时跳过音高转换增加
.
若要启用此属性,请设置AugmentationParameterSource来“随机”
和AugmentationMode来“顺序”
.
数据类型:单
|双
SemitoneShiftRange
- - - - - -音高移位范围(半音)(2, 2)
(默认)|非递减值的二元素行向量半音中的音高移位范围,指定为非递减值的二元素行向量。
若要启用此属性,请设置AugmentationParameterSource来“随机”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ApplyPitchShift
- - - - - -应用沥青转变真正的
(默认)|假
SemitoneShift
- - - - - -音高变化(半音来)-3
(默认)|真正的标量|真正的向量半音中的音高移位,指定为实标量或矢量。
若要启用此属性,请设置AugmentationParameterSource来“指定”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
VolumeControlProbability
- - - - - -应用音量控制的概率0.5
(默认)|[0,1]范围内的标量应用音量控制的概率,指定为范围[0,1]内的标量。将概率设为1
在每次呼叫时应用音量控制增加
.将概率设为0
每次通话时跳过音量控制增加
.
若要启用此属性,请设置AugmentationParameterSource来“随机”
和AugmentationMode来“顺序”
.
数据类型:单
|双
VolumeGainRange
- - - - - -体积增益范围(dB)(3、3)
(默认)|非递减值的二元素行向量以dB为单位的体积增益范围,指定为非递减值的二元行向量。
若要启用此属性,请设置AugmentationParameterSource来“随机”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ApplyVolumeControl
- - - - - -应用体积增加真正的
(默认)|假
VolumeGain
- - - - - -卷获得(dB)-3
(默认)|标量|向量体积增益,单位为dB,指定为标量或矢量。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
AddNoiseProbability
- - - - - -应用噪声加法的概率0.5
(默认)|[0,1]范围内的标量应用高斯白噪声加法的概率,指定为范围[0,1]内的标量。将概率设为1
每次你打电话的时候都要增加噪音增加
.将概率设为0
避免每次打电话时都加噪音增加
.
若要启用此属性,请设置AugmentationParameterSource来“随机”
和AugmentationMode来“顺序”
.
数据类型:单
|双
SNRRange
- - - - - -噪声附加信噪比(dB)范围[0, 10]
(默认)|非递减值的二元素行向量以dB为单位的噪声附加信噪比的范围,指定为非递减值的二元行向量。
若要启用此属性,请设置AugmentationParameterSource来“范围”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ApplyAddNoise
- - - - - -应用噪声之外真正的
(默认)|假
信噪比
- - - - - -噪声附加信噪比(dB)5
(默认)|标量|向量噪声附加信噪比(dB),指定为标量或向量。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
TimeShiftProbability
- - - - - -应用时移的概率0.5
(默认)|[0,1]范围内的标量应用时移的概率,指定为范围[0,1]内的标量。将概率设为1
每次打电话时都要进行时间转换增加
.将属性设置为0
你每次打电话的时候都不用切换时间增加
.
时移在时域音频数据上应用圆形移位。
若要启用此属性,请设置AugmentationParameterSource来“随机”
和AugmentationMode来“顺序”
.
数据类型:单
|双
TimeShiftRange
- - - - - -时移范围(s)(5 e - 3, 5 e3)
(默认)|非递减值的二元素行向量。以秒为单位的时移范围,指定为非递减值的两元素行向量。
若要启用此属性,请设置AugmentationParameterSource来“随机”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ApplyTimeShift
- - - - - -应用时移真正的
(默认)|假
TimeShift
- - - - - -时移(s)5 e - 3
(默认)|标量|向量以秒为单位的时移,指定为标量或矢量。
若要启用此属性,请设置AugmentationParameterSource来“指定”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
addAugmentationMethod |
添加自定义增强方法 |
removeAugmentationMethod |
删除自定义增强方法 |
增加 |
增加音频数据 |
setAugmenterParams |
设置增广算法参数 |
getAugmenterParams |
得到增强算法的参数 |
读入音频信号并收听它。
[audioIn, fs] = audioread (“Counting-16-44p1-mono-15secs.wav”);声音(audioIn fs)
创建一个audioDataAugmenter
对象,该对象以级联方式应用时间拉伸、音量控制和时间移动。以80%的概率应用每个增强。集NumAugmentations
来5
输出五个独立增强的信号。若要跳过每个增强的俯仰移位和噪声添加,请将各自的概率设置为0
.为每个相关的增广算法定义参数范围。
增量= audioDataAugmenter (...“AugmentationMode”,“顺序”,...“NumAugmentations”5,......“TimeStretchProbability”, 0.8,...“SpeedupFactorRange”[1.3, 1.4],......“PitchShiftProbability”0,......“VolumeControlProbability”, 0.8,...“VolumeGainRange”, 5, 5],......“AddNoiseProbability”0,......“TimeShiftProbability”, 0.8,...“TimeShiftRange”, (-500 e - 3500 e - 3])
增量= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“随机”NumAugmentations: 5 TimeStretchProbability: 0.8000 SpeedupFactorRange: [1.3000 - 1.4000] PitchShiftProbability: 0 VolumeControlProbability: 0.8000 VolumeGainRange: 5 [5] AddNoiseProbability: 0 TimeShiftProbability:0.8000 TimeShiftRange: [-0.5000 0.5000]
调用增加
在音频上创建5个增强。增强的音频在一个带有变量的表中返回音频
和AugmentationInfo
.表中的行数定义为NumAugmentations
.
data =增加(增压器、audioIn fs)
data =5×2表音频AugmentationInfo _________________ ________________ {685056x1 double} [1x1 struct] {685056x1 double} [1x1 struct] {505183x1 double} [1x1 struct] {685056x1 double} [1x1 struct] {490728x1 double} [1x1 struct]
在当前的增强管道中,增强参数在指定范围内随机分配。要确定用于增厚的精确参数,请检查AugmentationInfo
.
augmentationToInspect =4;data.AugmentationInfo (augmentationToInspect)
ans =结构体字段:SpeedupFactor: 1 VolumeGain: 4.3399 timesshift: 0.4502
倾听你正在检查的扩充。绘制原始信号和增广信号的时间表示。
增加= data.Audio {augmentationToInspect};sound(augmented,fs) t = (0:(numel(audioIn)-1))/fs;taug =(0:(元素个数(增加)1))/ fs;情节(t, audioIn taug增大)传说(“原始音频”,“增强音频”) ylabel (“振幅”)包含(“时间(s)”)
读入音频信号并收听它。
[audioIn, fs] = audioread (“Counting-16-44p1-mono-15secs.wav”);声音(audioIn fs)
创建一个audioDataAugmenter
对象,它在级联中应用时间拉伸、音调转换和噪声破坏。指定时间扩展加速因子为0.9
,1.1
,1.2
.指定半音中的音高移动为-2
,-1
,1
,2
.指定噪声破坏信噪比为10
dB和15
dB。
增量= audioDataAugmenter (...“AugmentationMode”,“顺序”,...“AugmentationParameterSource”,“指定”,...“SpeedupFactor”(0.9, 1.1, 1.2),...“ApplyTimeStretch”,真的,...“ApplyPitchShift”,真的,...“SemitoneShift”, (2, 1, 1, 2),...“信噪比”(10、15),...“ApplyVolumeControl”假的,...“ApplyTimeShift”假)
augmenter = audioDataAugmenter with properties: AugmentationMode: "sequential" AugmentationParameterSource: "specify" ApplyTimeStretch: 1 SpeedupFactor: [0.9000 1.1000 1.2000] ApplyPitchShift: 1 semitonesshift: [-2 -1 1 2] ApplyVolumeControl: 0 ApplyAddNoise: 1 SNR: [10 15] applytimesshift: 0
调用增加
在音频上创建24个增强。增广表示指定的增广参数的每一个组合(
).
data =增加(增压器、audioIn fs)
data =24×2表音频AugmentationInfo _________________ ________________ { 761243 x1双}[1 x1 struct] {622888 x1双}[1 x1 struct] {571263 x1双}[1 x1 struct] {761243 x1双}[1 x1 struct] {622888 x1双}[1 x1 struct] {571263 x1双}[1 x1 struct] {761243 x1双}[1 x1 struct] {622888 x1双}[1 x1 struct] {571263 x1双}[1 x1 struct] {761243 x1Double} [1x1 struct] {622888x1 Double} [1x1 struct] {761243x1 Double} [1x1 struct] {622888x1 Double} [1x1 struct] {761243x1 Double} [1x1 struct] {761288 x1 Double} [1x1 struct] {761243x1 Double} [1x1 struct]⋮
属性检查每个扩展的参数配置AugmentationInfo
表变量。
augmentationToInspect =1;data.AugmentationInfo (augmentationToInspect)
ans =结构体字段:SpeedupFactor: 0.9000 semitonesshift: -2信噪比:10
倾听你正在检查的扩充。绘制原始信号和增广信号的时域表示。
增加= data.Audio {augmentationToInspect};sound(augmented,fs) t = (0:(numel(audioIn)-1))/fs;taug =(0:(元素个数(增加)1))/ fs;情节(t, audioIn taug增大)传说(“原始音频”,“增强音频”) ylabel (“振幅”)包含(“时间(s)”)
读入音频信号并收听它。
[audioIn, fs] = audioread (“Counting-16-44p1-mono-15secs.wav”);
创建一个audioDataAugmenter
对象,该对象在并行分支中应用噪声破坏和时间移位。对于噪声破坏分支,在一定范围内随机应用具有信噪比的噪声0
dB来20.
dB。对于时移分支,在-范围内随机应用时移300
女士,300
ms.每个分支进行2次扩增,共4次。
增量= audioDataAugmenter (...“AugmentationMode”,“独立”,...“AugmentationParameterSource”,“随机”,...“NumAugmentations”,2,...“ApplyTimeStretch”假的,...“ApplyPitchShift”假的,...“ApplyVolumeControl”假的,...“SNRRange”(0, 20),...“TimeShiftRange”, (-300 e - 3300 e - 3])
augmenter = audioDataAugmenter with properties: AugmentationMode: "independent" AugmentationParameterSource: "random" numaugmenations: 2 ApplyTimeStretch: 0 ApplyPitchShift: 0 ApplyVolumeControl: 0 ApplyAddNoise: 1 SNRRange: [0 20] applytimesshift: 1 TimeShiftRange: [-0.3000 0.3000]
调用增加
在音频上创建3个增强。
data =增加(增压器、audioIn fs);
属性检查每个扩展的参数配置AugmentatioInfo
表变量。
augmentationToInspect =4;数据。AugmentationInfo {augmentationToInspect}
ans =结构体字段:TimeShift: 0.0016
听你正在检查的音频。绘制原始信号和增广信号的时域表示。
增加= data.Audio {augmentationToInspect};sound(augmented,fs) t = (0:(numel(audioIn)-1))/fs;taug =(0:(元素个数(增加)1))/ fs;情节(t, audioIn taug增大)传说(“原始音频”,“增强音频”) ylabel (“振幅”)包含(“时间(s)”)
读入音频信号并收听它。
[audioIn, fs] = audioread (“Counting-16-44p1-mono-15secs.wav”);
创建一个audioDataAugmenter
对象,该对象在并行分支中应用音量控制、噪声破坏和时间移动。
增量= audioDataAugmenter (...“AugmentationMode”,“独立”,...“AugmentationParameterSource”,“指定”,...“ApplyTimeStretch”假的,...“ApplyPitchShift”假的,...“VolumeGain”,2,...“信噪比”0,...“TimeShift”, 2)
augmenter = audioDataAugmenter带有属性:AugmentationMode: "independent" AugmentationParameterSource: "specify" ApplyTimeStretch: 0 ApplyPitchShift: 0 ApplyVolumeControl: 1 VolumeGain: 2 ApplyAddNoise: 1 SNR: 0 applytimesshift: 1 timesshift: 2
调用增加
在音频上创建3个增强。
data =增加(增压器、audioIn fs)
data =3×2表音频AugmentationInfo _________________ ________________ { 685056 x1双}{1 x1 struct} {685056 x1双}{1 x1 struct} {685056 x1双}{1 x1 struct}
属性检查每个扩展的参数配置AugmentatioInfo
表变量。
augmentationToInspect =3.;数据。AugmentationInfo {augmentationToInspect}
ans =结构体字段:TimeShift: 2
听你正在检查的音频。绘制原始信号和增广信号的时域表示。
增加= data.Audio {augmentationToInspect};sound(augmented,fs) t = (0:(numel(audioIn)-1))/fs;taug =(0:(元素个数(增加)1))/ fs;情节(t, audioIn taug增大)传说(“原始音频”,“增强音频”) ylabel (“振幅”)包含(“时间(s)”)
的audioDataAugmenter
金宝app支持多个工作流程,以增加您的数据存储,包括:
离线增大
使用高阵列增强
使用转换数据存储进行扩充
在每个工作流中,首先创建一个音频数据存储来指向您的音频数据。在本例中,您创建了一个音频数据存储,它指向audio Toolbox™中包含的音频示例。统计数据集中文件的数量。
文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹)
ADS = audioDatastore与属性:文件:{'…\matlab\工具箱\音频\样本\Ambiance-16-44p1-mono-12secs.wav';“…\ matlab工具箱\ \音响\ samples \ AudioArray-16-16-4channels-20secs.wav”;“…\工具箱\音响\ samples \ ChurchImpulseResponse-16-44p1-mono-5secs.wav”……alteratefilesystemroots: {} OutputDataType: 'double'标签:{}
numFilesInDataset =元素个数(ADS.Files)
numFilesInDataset = 29
创建一个audioDataAugmenter
这适用于随机序列增广。集NumAugmentations
来2
.
8月= audioDataAugmenter (“NumAugmentations”, 2)
8月= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“随机”NumAugmentations: 2 TimeStretchProbability: 0.5000 SpeedupFactorRange: [0.8000 - 1.2000] PitchShiftProbability: 0.5000 SemitoneShiftRange: [2 2] VolumeControlProbability: 0.5000 VolumeGainRange: 3 [3] AddNoiseProbability: 0.5000 SNRRange:[0 10] timeshifrange: [-0.0050 0.0050]
离线增大
要增强音频数据集,为每个文件创建两个增强,然后将增强写入WAV文件。
而hasdata(ADS) [audioIn,info] =读取(ADS);data =增加(8月audioIn info.SampleRate);[~, fn] = fileparts (info.FileName);为i = 1:size(data,1) augmentedAudio = data. audio {i};%如果增益导致音频信号的值不在-1和1之间,规格化音频信号,以避免在写入时剪辑。如果马克斯(abs (augmentedAudio), [],“所有”)>1 augmentedAudio = augmentedAudio/max(abs(augmentedAudio),[],“所有”);结束audiowrite (sprintf (“% s_aug % d.wav”, fn)、augmentedAudio info.SampleRate)结束结束
创建一个audioDatastore
它指向扩展的数据集,并确认数据集中的文件数量是原始文件数量的两倍。
augmentedADS = audioDatastore (pwd)
augmentedADS = audioDatastore with properties: Files:{'…\Examples\audio-ex28074079\ ambience -16-44p1-mono-12secs_aug1.wav';“……\ \ audio-ex28074079 \ Ambiance-16-44p1-mono-12secs_aug2.wav例子”;“……\ \ audio-ex28074079 \ AudioArray-16-16-4channels-20secs_aug1.wav例子”……和55个更多}AlternateFileSystemRoots: {} OutputDataType: 'double'标签:{}
numFilesInAugmentedDataset =元素个数(augmentedADS.Files)
numFilesInAugmentedDataset = 58
使用高数组进行扩充
当使用高数组扩充数据集时,应以一致的速率对扩充器的输入数据进行采样。原始音频数据集子集只包括样本率为44.1 kHz的文件。大多数数据集已经被清理,以具有一致的抽样率。
keepFile = cellfun (@ (x)包含(x,“44 p1”), ADS.Files);ads44p1 =子集(广告,keepFile);fs = 44.1 e3;
将音频数据存储转换为一个高数组。高
只有当您使用显式请求数组时,才会计算它们收集
.MATLAB®自动优化的排队计算,通过最小化的次数通过数据。如果您有并行计算工具箱™,则可以将计算分散到多台计算机上。音频数据表示为米-by-1高单元阵列,其中米是音频数据存储中文件的数量。
adsTall =高(ads44p1)
使用“local”配置文件启动并行池(parpool)…连接到平行池(工人数量:6)。adsTall = M×1高细胞数组{539648×1双}{227497×1双}{8000×1双}{685056×1双}{882688×2双}{1115760×2双}{505200×2双}{3195904×2双}::::
定义一个cellfun
函数,使增强应用于高数组的每个单元。调用收集
求高数组的值。
augTall = cellfun (@ (x)增加(8月x, fs), adsTall,“UniformOutput”、假);augmentedDataset =收集(augTall)
使用Parallel Pool 'local'计算tall表达式:- Pass 1 of 1: Completed in 1 min 34 sec
augmentedDataset =12×1单元阵列{2×2表}{2×2表}{2×2表}{2×2表}{2×2表}{2×2表}{2×2表}{2×2表}{2×2表}{2×2表}{2×2表}}{2×2表
扩展后的数据集作为numFiles-by-1 cell array,其中numFiles是数据存储中的文件数。单元格数组的每个元素都是numAugmentationsPerFile表2,numAugmentationsPerFile是每个文件返回的扩展数。
numFiles =元素个数(augmentedDataset)
numFiles = 12
numAugmentationsPerFile =大小(augmentedDataset {1}, 1)
numAugmentationsPerFile = 2
使用转换数据存储来增加
您可以在使用转换数据存储训练机器学习应用程序的同时执行在线数据增强。调用变换
创建一个在读取时应用数据扩展的新数据存储。
transformADS =变换(广告,@ (x,信息)增加(8月,x,信息),“IncludeInfo”,真正的)
transformADS = TransformedDatastore与属性:UnderlyingDatastore: [1×1 audioDatastore]转换:{@(x,info)augment(aug,x,info)} IncludeInfo: 1
调用读
从转换数据存储返回扩展后的第一个文件。
augmentedRead =阅读(transformADS)
augmentedRead =2×2表音频AugmentationInfo _________________ ________________ { 539648×1双}[1×1 struct]{586683×1双}(1×1结构)
的功能可以扩展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 timeshifrange: [-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
.
增压器。AddPinkNoiseProbability = 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 timeshifrange: [-0.0050 0.0050] AddPinkNoiseProbability: 1
增加原始信号并监听结果。检查所应用的增强算法的参数。
data =增加(增压器、audioIn fs);声音(data.Audio {1}, fs) data.AugmentationInfo (1)
ans =结构体字段:speedpfactor: 1 semitonesshift: 0 VolumeGain: 2.4803 timesshift: -0.0022 AddPinkNoise:“应用”
绘制原始信号和增广信号的mel谱图。
melSpectrogram (audioIn fs)标题(原始信号的)
melSpectrogram (data.Audio {1}, fs)标题(增强信号的)
的audioDataAugmenter
对象使您能够将增强管道配置为确定性或概率性AugmentationParameterSource财产。控件也可以选择串联或并行地应用这些增广AugmentationMode财产。下面的部分将描述您可以创建的管道以及每个体系结构的适用属性。
要将增广定义为一系列概率应用增广,请设置AugmentationParameterSource来“随机”
和AugmentationMode来“顺序”
.
增广的顺序总是相同的。如果您指定了自定义算法,它们将按照您指定的顺序应用于序列的末尾。
在这个管道配置中,以下参数适用:
增强方法 | 参数 |
---|---|
段时间 | |
改变音高 | |
控制体积 | |
添加噪声 | |
改变时间 |
如果您指定NumAugmentations= > 1,则应用该对象NumAugmentations
并行随机序列增广。应用增广的概率和任何由概率决定的参数的值是独立的。
要将增广定义为确定性应用增广的序列,请设置AugmentationParameterSource来“指定”
和AugmentationMode来“顺序”
.
增广的顺序总是相同的。如果您指定了自定义算法,它们将按照您指定的顺序应用于序列的末尾。
在这个管道配置中,以下参数适用:
增强方法 | 参数 |
---|---|
段时间 | |
改变音高 | |
控制体积 | |
添加噪声 | |
改变时间 |
如果您指定一个扩充方法为向量,那么向量的每个元素将在扩充管道中创建一个单独的分支。例如,下面的对象创建了一个增强管道,结果是四个独立的增强:
8月= audioDataAugmenter (“AugmentationMode”,“顺序”,...“AugmentationParameterSource”,“指定”,...“SpeedupFactor”[0.8, 1.2],...“VolumeGain”(3,1))
aug = audioDataAugmenter with properties: AugmentationMode: "sequential" AugmentationParameterSource: "specify" ApplyTimeStretch: 1 SpeedupFactor: [0.8000 1.2000] ApplyPitchShift: 1 semitonesshift: -3 ApplyVolumeControl: 1 VolumeGain: [-3 -1] ApplyAddNoise: 1 SNR: 5 applytimesshift: 1 timesshift: 0.0050
若要将增广定义为具有随机确定参数的独立应用增广,请设置AugmentationParameterSource来“随机”
和AugmentationMode来“独立”
.
在这个管道配置中,以下参数适用:
增强方法 | 参数 |
---|---|
段时间 | |
改变音高 | |
控制体积 | |
添加噪声 | |
改变时间 |
如果您指定NumAugmentations= > 1,则应用该对象NumAugmentations
并行随机独立增广。任何由概率决定的参数的值都是独立的。
要将增广定义为具有确定参数的确定应用的独立增广,请设置AugmentationParameterSource来“指定”
和AugmentationMode来“独立”
.
在这个管道配置中,以下参数适用:
增强方法 | 参数 |
---|---|
段时间 | |
改变音高 | |
控制体积 | |
添加噪声 | |
改变时间 |
如果您指定一个扩充方法为向量,那么向量的每个元素将在扩充管道中创建一个单独的分支。例如,下面的对象创建了一个增强管道,导致7个单独的增强:
8月= audioDataAugmenter (“AugmentationMode”,“独立”,...“AugmentationParameterSource”,“指定”,...“SpeedupFactor”[0.8, 1.2],...“VolumeGain”(3,1))
aug = audioDataAugmenter with properties: AugmentationMode: "independent" AugmentationParameterSource: "specify" ApplyTimeStretch: 1 SpeedupFactor: [0.8000 1.2000] ApplyPitchShift: 1 semitonesshift: -3 ApplyVolumeControl: 1 VolumeGain: [-3 -1] ApplyAddNoise: 1 SNR: 5 applytimesshift: 1 timesshift: 0.0050
Salamon, Justin和Juan Pablo Bello。“用于环境声音分类的深度卷积神经网络和数据增强”。IEEE信号处理信.2017年第24卷第3期。
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。