增加
描述
例子
应用随机序列扩增
读入一个音频信号,听它。
[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表x1双音频AugmentationInfo _________________ ___________ {685056} 1 x1 struct {685056 x1双}1 x1 struct {505183 x1双}1 x1 struct {685056 x1双}1 x1 struct {490728 x1双}1 x1结构
在当前增加管道,增加参数随机分配在指定的范围内。确定准确的参数用于丰胸,检查AugmentationInfo
。
augmentationToInspect =4;data.AugmentationInfo (augmentationToInspect)
ans =结构体字段:TimeShift SpeedupFactor: 1 VolumeGain: 4.3399: 0.4502
听增强检查。情节的时间表示原始和增强信号。
增加= data.Audio {augmentationToInspect};声音(增大,fs) t =(0:(元素个数(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”假)
增量= audioDataAugmenter属性:AugmentationMode:“顺序”AugmentationParameterSource:“指定”ApplyTimeStretch: 1 SpeedupFactor: [0.9000 1.1000 1.2000] ApplyPitchShift: 1 SemitoneShift: [2 1 1 2] ApplyVolumeControl: 0 ApplyAddNoise: 1信噪比:15 [10]ApplyTimeShift: 0
调用增加
在音频创建24扩增。扩增代表指定的每一个组合增加参数(
)。
data =增加(增压器、audioIn fs)
data =24×2表x1双音频AugmentationInfo _________________ ___________ {761243} 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 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⋮
你可以检查每个增加使用的参数配置AugmentationInfo
表变量。
augmentationToInspect =1;data.AugmentationInfo (augmentationToInspect)
ans =结构体字段:SpeedupFactor: 0.9000 SemitoneShift: 2信噪比:10
听增强检查。绘制原始和增强信号的时域表示。
增加= data.Audio {augmentationToInspect};声音(增大,fs) t =(0:(元素个数(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年
为每个分支女士申请增加2倍,4总扩增。
增量= audioDataAugmenter (…“AugmentationMode”,“独立”,…“AugmentationParameterSource”,“随机”,…“NumAugmentations”2,…“ApplyTimeStretch”假的,…“ApplyPitchShift”假的,…“ApplyVolumeControl”假的,…“SNRRange”(0,20),…“TimeShiftRange”,(-300 e - 3300 e - 3])
增量= audioDataAugmenter属性:AugmentationMode:“独立”AugmentationParameterSource:“随机”NumAugmentations: 2 ApplyTimeStretch: 0 ApplyPitchShift: 0 ApplyVolumeControl: 0 ApplyAddNoise: 1 SNRRange: 20 [0] ApplyTimeShift: 1 TimeShiftRange: [-0.3000 - 0.3000]
调用增加
在音频创建3扩增。
data =增加(增压器、audioIn fs);
你可以检查每个增加使用的参数配置AugmentatioInfo
表变量。
augmentationToInspect =4;data.AugmentationInfo {augmentationToInspect}
ans =结构体字段:TimeShift: 0.0016
你检查听音频。绘制原始和增强信号的时域表示。
增加= data.Audio {augmentationToInspect};声音(增大,fs) t =(0:(元素个数(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)
增量= audioDataAugmenter属性:AugmentationMode:“独立”AugmentationParameterSource:“指定”ApplyTimeStretch: 0 ApplyPitchShift: 0 ApplyVolumeControl: 1 VolumeGain: 2 ApplyAddNoise: 1信噪比:0 ApplyTimeShift: 1 TimeShift: 2
调用增加
在音频创建3扩增。
data =增加(增压器、audioIn fs)
data =3×2表x1双音频AugmentationInfo _________________ ___________ {685056} {1 x1 struct} {685056 x1双}{1 x1 struct} {685056 x1双}{1 x1 struct}
你可以检查每个增加使用的参数配置AugmentatioInfo
表变量。
augmentationToInspect =3;data.AugmentationInfo {augmentationToInspect}
ans =结构体字段:TimeShift: 2
你检查听音频。画出原始和增强信号的时域表示。
增加= data.Audio {augmentationToInspect};声音(增大,fs) t =(0:(元素个数(audioIn) 1)) / fs;taug =(0:(元素个数(增加)1))/ fs;情节(t, audioIn taug增大)传说(“原始音频”,“增强音频”)ylabel (“振幅”)包含(“时间(s)”)
增加音频数据集
的audioDataAugmenter
金宝app支持多个工作流扩充你的数据存储,包括:
离线增大
增加使用高数组
增加使用变换数据存储
在每一个工作流程,首先创建一个音频数据存储指向你的音频数据。在本例中,您创建一个音频数据存储指向音频样本包含音频工具箱™。在数据集计算文件的数量。
文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹)
广告= audioDatastore属性:文件:{“…\ matlab工具箱\ \音响\ samples \ Ambiance-16-44p1-mono-12secs.wav”;“…\ matlab工具箱\ \音响\ samples \ AudioArray-16-16-4channels-20secs.wav”;“……\工具箱\音响\ \ ChurchImpulseResponse-16-44p1-mono-5secs样品。wav”……和26}AlternateFileSystemRoots: {} OutputDataType:“双”标签:{}
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: 10 [0] TimeShiftProbability: 0.5000 TimeShiftRange: [-0.0050 - 0.0050]
离线增大
增加音频数据集,创建两个对应的每个文件然后写对应的WAV文件。
而(audioIn hasdata(广告),信息]=阅读(广告);data =增加(8月audioIn info.SampleRate);[~,fn] = fileparts (info.FileName);为i = 1:尺寸(数据,1)augmentedAudio = data.Audio {};%如果增大造成了音频信号值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属性:文件:{“…\ \ audio-ex28074079 \ Ambiance-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:“双”标签:{}
numFilesInAugmentedDataset =元素个数(augmentedADS.Files)
numFilesInAugmentedDataset = 58
增加使用高数组
当增加一个数据集使用高数组,输入数据的增量应该在一个一致的采样率。子集的原始音频数据集只包含文件44.1 kHz的采样率。大多数数据集已经清洗有一致的采样率。
keepFile = cellfun (@ (x)包含(x,“44 p1”),ADS.Files);ads44p1 =子集(广告,keepFile);fs = 44.1 e3;
转换音频高数据存储到一个数组中。高
数组是只有当您显式地请求它们使用评估收集
。MATLAB®自动优化计算排队通过最小化通过数据的数量。如果你有并行计算工具箱™,你可以计算分布到多台机器。音频数据的表示米1高单元阵列,米在音频数据存储文件的数量。
adsTall =高(ads44p1)
开始平行池(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)
评估高表达式使用并行池“当地”:通过1对1:在1分34秒内完成评估在1分34秒内完成
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表
增强数据集作为一个返回numFiles1单元阵列,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,信息)增加(8月,x,信息)}IncludeInfo: 1
调用读
返回从变换增强第一文件数据存储。
augmentedRead =阅读(transformADS)
augmentedRead =2×2表音频AugmentationInfo _________________ ___________{539648×1双}[1×1 struct]{586683×1双}(1×1结构)
输入参数
8月
- - - - - -音频数据增量
audioDataAugmenter
对象
audioIn
- - - - - -音频输入
向量|矩阵
音频输入,指定为一个列向量或矩阵独立渠道(列)。
数据类型:单
|双
fs
- - - - - -采样率(赫兹)
44100年
(默认)|积极的标量
采样率在赫兹,指定为一个积极的标量。的允许范围fs
取决于的属性audioDataAugmenter
对象。
数据类型:单
|双
输出参数
版本历史
介绍了R2019b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。