主要内容

writeall

写数据存储文件

自从R2020a

描述

例子

writeall (广告,outputLocation)写音频数据存储的数据广告文件位于outputLocation

例子

writeall (广告,outputLocation,名称,值)指定附加选项的数据写入一个或多个参数名称-值对。

例子:writeall(广告、outputLocation OutputFormat =“flac”)将数据写到FLAC文件。

例子

全部折叠

创建一个audioDatastore对象指向WAV音频样本包含音频工具箱™。的audioDatastore对象包括只读属性指示所支持的文件格式,和默认的输出格式(WAV)。金宝app

文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹,“FileExtensions”,“wav”)
广告= audioDatastore属性:文件:{"…/构建/ matlab工具箱/音频/样本/ Ambiance-16-44p1-mono-12secs.wav ';’……/ matlab工具箱/音频/样本/ AudioArray-16-16-4channels-20secs.wav”;’……/工具箱/音频/样本/ ChurchImpulseResponse-16-44p1-mono-5secs。wav”……文件夹和17}:{/ mathworks猛击/棒/ Bdoc23a /构建/ matlab工具箱/音频/样品'}AlternateFileSystemRoots: {} OutputDataType:“双”标签:{}SupportedOutputFormats: [“wav”“flac”“ogg”“作品”“mp4”金宝app“m4a格式”]DefaultOutputFormat:“wav”

编写音频数据设置为当前文件夹。所有文件保存在默认的(WAV)格式。

outputLocation = pwd;outputLocation writeall(广告)

的文件夹,样品的音频文件,文件夹包含已写入当前文件夹。

dir样品
,. .Ambiance-16-44p1-mono-12secs。wav AudioArray-16-16-4channels-20secs。wav ChurchImpulseResponse-16-44p1-mono-5secs。wav点击- 16 - 44 - p1 - mono - 0.2秒。wav Counting-16-44p1-mono-15secs。wav Engine-16-44p1-stereo-20sec。wav FemaleSpeech-16-8-mono-3secs。wav Heli_16ch_ACN_SN3D。wav JetAirplane-16-11p025-mono-16secs。wav Laughter-16-8-mono-4secs。wav MainStreetOne-16-16-mono-12secs。wav NoisySpeech-16-22p5-mono-5secs。wav彩虹- 16 - 8 mono - 114秒。wav rainbownoisy - 16 - 8 mono - 114秒。wav rockguitar - 16 - 44 - p1 -立体声- 72秒。wav SpeechDFT-16-8-mono-5secs。wav TrainWhistle-16-44p1-mono-9secs.wav Turbine-16-44p1-mono-22secs.wav WashingMachine-16-44p1-stereo-10secs.wav multipleSounds-16-16-mono-18secs.wav

您可以使用预浸特性减少迭代时间在开发机器学习或深度学习系统。这也是一个常见的做法使用预浸特性对于无监督学习任务,如相似集群,以及基于内容的音乐信息检索索引任务,比如(MIR)。

创建一个audioDatastore对象指向音频样本包含音频工具箱™。

文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹)
广告= audioDatastore属性:文件:{"…/构建/ matlab工具箱/音频/样本/ Ambiance-16-44p1-mono-12secs.wav ';’……/ matlab工具箱/音频/样本/ AudioArray-16-16-4channels-20secs.wav”;’……/工具箱/音频/样本/ ChurchImpulseResponse-16-44p1-mono-5secs。wav”……文件夹和33}:{/ mathworks猛击/棒/ Bdoc23a /构建/ matlab工具箱/音频/样品'}AlternateFileSystemRoots: {} OutputDataType:“双”标签:{}SupportedOutputFormats: [“wav”“flac”“ogg”“作品”“mp4”金宝app“m4a格式”]DefaultOutputFormat:“wav”

创建一个自定义编写函数,提取mel频率cepstral系数(mfcc)的音频,写他们垫文件。函数定义位于这个例子的结束。

函数myWriter (audioIn、信息~)fs = info.ReadInfo.SampleRate;% MFCC提取[多项式系数δ,deltaDelta] = mfcc (audioIn fs);%显示输出的文件扩展名的名字替换垫子上。文件名= strrep (info.SuggestedOutputName,“wav”,“.mat”);%保存MFCC系数垫文件。保存(文件名,“多项式系数”,“δ”,“deltaDelta”)结束

定义的输出位置提取的特征。

outputLocation = pwd;

调用writeall函数与audioDatastore对象,输出位置,和自定义编写的功能。还指定后缀_MFCC文件的名字。

抽搐writeall(广告、outputLocation“WriteFcn”@myWriter,“FilenameSuffix”,“_MFCC”)流(“数据集创建完成(f % 0.0秒)\ n”toc)
数据集创建完成(14秒)

现在您已经创建了一个数据集组成的MFCCs每个音频文件。

fds = fileDatastore (pwd,“ReadFcn”@load,“FileExtensions”,“.mat”,“IncludeSubfolders”,真正的)
fds = FileDatastore属性:文件:{“…/ audio-ex80013303 /样本/ Ambiance-16-44p1-mono-12secs_MFCC.mat”;“…/ audio-ex80013303 /样本/ AudioArray-16-16-4channels-20secs_MFCC.mat”;“……/样本/ ChurchImpulseResponse-16-44p1-mono-5secs_MFCC。垫”……和33}文件夹:{“/ tmp / Bdoc23a_2213998_2542017 / tpb6fd849c / audio-ex80013303”} UniformRead: 0 ReadMode:‘文件’BlockSize:正PreviewFcn: @load SupportedOutputFor金宝appmats:[“三种”“csv”“xlsx”“xls”“铺”“parq”“png”“jpg”“jpeg”“tif”“tiff”“wav”“flac”“ogg”“作品”“mp4”“m4a格式”]ReadFcn: @load AlternateFileSystemRoots: {}

Helper函数

函数myWriter (audioIn、信息~)fs = info.ReadInfo.SampleRate;[多项式系数δ,deltaDelta] = mfcc (audioIn fs);文件名= strrep (info.SuggestedOutputName,“wav”,“.mat”);保存(文件名,“多项式系数”,“δ”,“deltaDelta”)结束

创建一个audioDatastore对象指向音频样本包含音频工具箱™。

文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹);

创建一个audioDataAugmenter对象输出两个对应每一个输入信号。

增量= audioDataAugmenter (NumAugmentations = 2);

定义一个自定义函数,写myWriter这适用于audioDataAugmenter对象一个音频文件并将新产生的信号写入单独的文件。

调用writeall函数创建一个新的增广数据集。加快处理,集UseParallel真正的

outputLocation = pwd;writeall(广告、outputLocation FilenameSuffix =“_Aug”,UseParallel = true, WriteFcn = @ (x, y, z, a) myWriter (x, y, z,增压器))

创建一个新的数据存储指向增强音频数据集。

adsAug = audioDatastore (outputLocation IncludeSubfolders = true);

myWriterHelper函数

函数myWriter (audioIn信息,fileExtension变长度输入宗量)%创建方便变量的增量和采样率增量=变长度输入宗量{1};fs = info.ReadInfo.SampleRate;%进行扩充扩增=增加(增压器、audioIn fs);2 = 1:增压器。NumAugmentations x = augmentations.Audio {2};%防止剪裁如果任何(x < 1 | x > 1) x = x / max (abs (x));结束%更新音频文件的名字包括增加数量文件名=方法(info.SuggestedOutputName, (“。”+ fileExtension)字符串(ii));%编写音频文件audiowrite(文件名,x, fs)结束结束

使用detectSpeechwriteall函数来创建一个新的音频数据集,其中包含孤立语音段。

创建一个audioDatastore对象指向音频样本包含在这个例子。

广告= audioDatastore (pwd)
广告= audioDatastore属性:文件:{“…/ tp7dd43a6a / audio-ex78151030 / KeywordSpeech-16-16-mono-34secs.flac”;“/ tmp / Bdoc23a_2213998_2542427 / tp7dd43a6a / audio-ex78151030 / Plosives.wav”;“/ tmp / Bdoc23a_2213998_2542427 / tp7dd43a6a audio-ex78151030 /丝丝声。wav”}文件夹:{“/ tmp / Bdoc23a_2213998_2542427 / tp7dd43a6a / audio-ex78151030”} AlternateFileSystemRoots: {} OutputDataType:“双”标签:{}SupportedOutput金宝appFormats: [“wav”“flac”“ogg”“作品”“mp4”“m4a格式”]DefaultOutputFormat:“wav”

定义一个自定义编写函数首先判断区域的演讲音频信号读取数据存储,然后写演讲的个别地区单独的文件。地区号附加到文件的名字。函数定义位于这个例子的结束。

函数myWriter (audioIn信息,fileExtension) fs = info.ReadInfo.SampleRate;%得到指数对应区域的言论idx = detectSpeech (audioIn, fs);%为每个地区的演讲2 = 1:尺寸(idx, 1) x = audioIn (idx (2, 1): idx (ii) 2),:);%创造一个独特的文件名文件名=方法(info.SuggestedOutputName, (“。”+ fileExtension)字符串(ii));%写发现地区的演讲audiowrite(文件名,x, fs)结束结束

调用writeall使用自定义函数编写函数来创建一个新的数据集,包括孤立语音段。创建一个文件夹命名分段在你的临时目录中,然后将数据写入该文件夹。

outputLocation = fullfile (tempdir,“脱节”现象);writeall(广告、outputLocation“WriteFcn”@myWriter)

创建一个新的audioDatastore对象指向分段数据集。

adsSegmented = audioDatastore (outputLocation,“IncludeSubfolders”,真正的)
adsSegmented = audioDatastore属性:文件:{“…/分段/ audio-ex78151030 / KeywordSpeech-16-16-mono-34secs1.wav”;“…/分段/ audio-ex78151030 / KeywordSpeech-16-16-mono-34secs10.wav”;“…/分段/ audio-ex78151030 / KeywordSpeech-16-16-mono-34secs11。wav”……和24}文件夹:{“/ tmp / Bdoc23a_2213998_2542427 /分段”}AlternateFileSystemRoots: {} OutputDataType:“双”标签:{}SupportedOutputFormats: [“wav”“fla金宝appc”“ogg”“作品”“mp4”“m4a格式”]DefaultOutputFormat:“wav”

从数据存储和读取一个示例听它。

[audioIn, adsInfo] =阅读(adsSegmented);声音(audioIn adsInfo.SampleRate)

金宝app支持函数

函数myWriter (audioIn信息,fileExtension) fs = info.ReadInfo.SampleRate;idx = detectSpeech (audioIn, fs);2 = 1:尺寸(idx, 1) x = audioIn (idx (2, 1): idx (ii) 2),:);文件名=方法(info.SuggestedOutputName, (“。”+ fileExtension)字符串(ii));audiowrite(文件名,x, fs)结束结束

音频数据集,尤其是开源音频数据集,可能有不一致的抽样率,数量的渠道,或持续时间。他们也可能包含垃圾数据,如剪辑贴上包含演讲但包含沉默。

通常是第一步在机器学习和深度学习工作流清洁音频数据集。这是特别重要的验证和测试数据集。常见的清洁包括重采样、转换单声道或立体声,削减或扩大的时间片段长度一致,消除时间的寂静后,消除背景噪音,或获得正常化。

在本例中,您清洁音频数据集,以便所有的文件有16 kHz的采样率,是单声道,在FLAC格式,并归一化,这样信号的最大绝对星等1

创建一个audioDatastore对象指向音频样本包含音频工具箱™。

文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹);

定义一个函数,myTransform,适用于对音频数据的操作序列。创建一个转换数据存储对象,应用清洁操作。

adsTransform =变换(广告、@myTransform IncludeInfo = true);

调用writeall变换数据存储对象创建清洁数据集。指定格式FLAC。写数据设置为当前文件夹。

outputLocation = pwd;writeall (adsTransform outputLocation OutputFormat =“flac”)

创建一个新的数据存储对象指向干净的数据集。

adsClean = audioDatastore (outputLocation IncludeSubfolders = true);

myTransform金宝app支持函数

函数[audioOut, adsInfo] = myTransform (audioIn adsInfo) fs = adsInfo.SampleRate;desiredFs = 16 e3;%转换为单x =意味着(audioIn, 2);%重新取样16赫兹y =重新取样(x, desiredFs fs);adsInfo。SampleRate = desiredFs;%规范化,最大一个信号的绝对值是1audioOut = y / max (abs (y));结束

输入参数

全部折叠

音频数据存储,指定为一个audioDatastore对象。

文件夹位置写数据,指定为一个字符或字符串向量。您可以指定一个完整或相对路径outputLocation

例子:outputLocation = " . . / . . / dir /数据”

例子:outputLocation = " C: \ \名字\用户桌面”

数据类型:字符|字符串

名称-值参数

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

例子:FolderLayout =“平”

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

例子:‘FolderLayout’,‘平’

在输出文件夹布局文件,指定为“复制”“平”

  • “复制”——复制数据的文件夹结构,音频数据存储指向。指定FolderLayout作为“复制”维护对应输入和输出数据集。

  • “平”——从输入的所有文件写入指定输出文件夹没有任何中间文件夹。

数据类型:字符|字符串

输出文件格式,指定为“wav”,“flac”,“ogg”,“作品”,“mp4”,或“m4a格式”

数据类型:字符|字符串

输出位/样本数量,指定为一个整数。

依赖关系

要启用这个名称-值对参数,设置OutputFormat“wav”“flac”

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

千比特/秒(kbit / s)用于压缩音频文件,指定为一个整数。在窗户®7或晚,唯一有效的值96年,128年,160年,192年

一般来说,一个更大的比特率值会导致更高的压缩质量。

依赖关系

要启用这个名称-值对参数,设置OutputFormat“m4a格式”“mp4”

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

前缀添加到文件名称,指定字符或字符串向量。

writeall函数将指定前缀添加到输出文件的名字。例如,下面的代码添加了今天的日期作为前缀的所有输出文件名称:

prefixText =字符串(datetime (“今天”));writeall(广告,“C: \ myFolder”FilenamePrefix = prefixText);

数据类型:字符|字符串

后缀添加到文件名称,指定为特征向量或字符串。文件名后缀应用前的文件扩展名。

writeall函数将指定的后缀添加到输出文件的名字。例如,下面的代码添加描述性文本“清洁”对所有输出文件名称的后缀:

writeall(广告,“C: \ myFolder”FilenameSuffix =“清洁”);

数据类型:字符|字符串

指标编写并行,指定为真正的

默认情况下,writeall函数在系列中写道。如果你设置UseParallel真正的,那么writeall并行函数写输出文件。

请注意

编写并行需要并行计算工具箱™。

数据类型:逻辑

自定义编写函数,指定为一个函数处理。指定的功能是负责创建输出文件。您可以使用WriteFcn写各种格式的数据,即使writeall不直接支持的输出格式。金宝app

函数签名

自定义编写函数需要三个输入参数:audioIn,信息,suggestedOutputType。函数也可以接受额外的输入,如名称-值对,前三后需要输入。

函数myWriter (audioIn信息,suggestedOutputType变长度输入宗量)

  • audioIn包含从输入数据存储读取数据广告

  • 信息是一个类型的对象matlab.io.datastore.WriteInfo表中列出的字段。

    描述 类型
    ReadInfo 第二个的输出方法。 结构体
    SuggestedOutputName 完全限定,全局唯一满足的位置和文件名的命名要求。 字符串
    位置 指定的outputLocation传递给writeall 字符串

  • suggestedOutputType——建议输出文件类型。

例子函数

一个简单的写函数重新取样音频在写作之前44.1 kHz。

函数myWriter(数据、信息~)fs = info.ReadInfo.SampleRate;desiredFs = 44.1 e3;data =重新取样(数据、desiredFs fs);audiowrite (writeInfo.SuggestedOutputName、数据desiredFs);结束
使用myWriter就像在writeall功能,使用这些命令:
广告= audioDatastore(位置);outputLocation =“C: / tmp / MyData”;writeall(广告、outputLocation WriteFcn = @myWriter)

数据类型:function_handle

版本历史

介绍了R2020a

全部展开

另请参阅