转换音频数据存储
创建一个新的数据存储转换输出transformDatastore
=变换(广告
,@fcn
)读
函数。
使用一个或多个指定选项transformDatastore
=变换(广告
,@fcn
,名称,值
)名称,值
对参数。
指定文件路径与音频音频样本包括工具箱™。创建一个音频数据存储指向指定的文件夹。
文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹);
调用变换
创建一个新的数据存储和多通道信号mono。
ADSnew =变换(广告,@ (x)的意思是(x, 2));
从新的数据存储和读取确认只输出单声道信号。
而hasdata (ADSnew)音频=阅读(ADSnew);流(“渠道的数量= % d \ n”、尺寸(音频、2))结束
通道的数量= 1频道的数量= 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1频道的频道数量= 1 = 1
音频样本包含音频工具箱™有不同的持续时间。使用变换
自定义函数读
函数,输出一个随机五秒的音频样本。
指定文件路径与音频音频样本包括工具箱。创建一个音频数据存储指向指定的文件夹。
文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹);
定义一个函数的输出作为输入读
函数。使价值函数提取5秒的音频信号的数据。
函数[dataOut,信息]= extractSegment (audioIn信息)[N, numChan] =大小(audioIn);newN =圆(info.SampleRate * 5);如果newN > N%信号长度< 5秒数字键盘= newN - N + 1;dataOut = [audioIn; 0 (numChan数字键盘,“喜欢”audioIn)];elseifnewN < N%信号长度> 5秒开始=兰迪(N - newN + 1);dataOut = audioIn(启动:启动+ newN-1:);其他的%信号长度= = 5秒dataOut = audioIn;结束结束
调用变换
创建一个TransformedDatastore
与转换
定义的函数。
ADSnew =变换(广告、@extractSegment“IncludeInfo”,真正的)
ADSnew = TransformedDatastore属性:UnderlyingDatastores: {audioDatastore} SupportedOutput金宝appFormats(“三种”:“csv”“xlsx”“xls”…转换:{@extractSegment} IncludeInfo: 1
阅读前三个音频文件,并验证输出五个第二段。
为我= 1:3(音频、信息)=读(ADSnew);流(“时间= % d秒\ n”、大小(音频,1)/ info.SampleRate)结束
时间= 5秒时间= 5秒时间= 5秒
使用变换
创建一个音频数据存储返回梅尔的声谱图表示读
函数。
指定文件路径与音频音频样本包括工具箱™。创建一个音频数据存储指向指定的文件夹。
文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹);
定义一个函数,转换音频数据从时域表示日志梅尔声谱图。函数添加了额外的输出melSpectrogram
函数的信息结构输出读取音频数据存储。
函数[dataOut, infoOut] = extractMelSpectrogram (audioIn信息)[S、F T] = melSpectrogram (audioIn info.SampleRate);dataOut = 10 * log10 (S + eps);infoOut =信息;infoOut。CenterFrequencies = F;infoOut。TimeInstants = T;结束
调用变换
创建一个TransformedDatastore
与转换
设置为extractMelSpectrogram
。
ADSnew =变换(广告、@extractMelSpectrogram“IncludeInfo”,真正的)
ADSnew = TransformedDatastore属性:UnderlyingDatastores: {audioDatastore} SupportedOutput金宝appFormats(“三种”:“csv”“xlsx”“xls”…转换:{@extractMelSpectrogram} IncludeInfo: 1
阅读前三个音频文件和日志梅尔·色。如果有多个渠道,只有第一频道的阴谋。
为我= 1:3 (melSpec,信息)=读(ADSnew);图(我)冲浪(info.TimeInstants、info.CenterFrequencies melSpec (:,: 1),“EdgeColor”,“没有”);包含(“时间(s)”)ylabel (的频率(赫兹)(~),名称]= fileparts (info.FileName);标题(名字)轴([0 info.TimeInstants(结束)info.CenterFrequencies (1) info.CenterFrequencies(结束)])视图([0,90])结束
使用变换
创建一个音频数据存储返回特征向量。
指定文件路径与音频音频样本包括工具箱™。创建一个音频数据存储指向指定的文件夹。
文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹);
定义一个函数,extractFeatureVector
,将音频数据从时域表示特征向量。
函数[dataOut,信息]= extractFeatureVector (audioIn信息)%转换为频域表示windowLength = 256;overlapLength = 128;[~ f ~ S] =光谱图(意思是(audioIn, 2),…损害(windowLength“周期”),…overlapLength,…windowLength,…info.SampleRate,…“权力”,…“单向的”);%提取特征[峰度,传播,重心]= spectralKurtosis (S、f);偏态= spectralSkewness (S、f);佳洁士= spectralCrest (S、f);减少= spectralDecrease (S、f);熵= spectralEntropy (S、f);平面度= spectralFlatness (S、f);通量= spectralFlux (S、f);滚边= spectralRolloffPoint (S、f);斜率= spectralSlope (S、f);%连接创建特征向量dataOut =[峰度,传播,重心偏态,波峰,减少,熵,平坦,通量,滚边,斜率);结束
调用变换
创建一个TransformedDatastore
与转换
设置为extractFeatureVector
。
ADSnew =变换(广告、@extractFeatureVector“IncludeInfo”,真正的)
ADSnew = TransformedDatastore属性:UnderlyingDatastores: {audioDatastore} SupportedOutput金宝appFormats(“三种”:“csv”“xlsx”“xls”…转换:{@extractFeatureVector} IncludeInfo: 1
调用读
返回音频的特征向量。
featureMatrix =阅读(ADSnew);[numFeatureVectors, numFeatures] =大小(featureMatrix)
numFeatureVectors = 4215 numFeatures = 11
使用变换
创建一个音频数据存储,应用带通滤波后返回音频的读
函数。
指定文件路径与音频音频样本包括工具箱™。创建一个音频数据存储指向指定的文件夹。
文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹);
定义一个函数,applyBandpassFilter
,适用于带通滤波器通带1至15 kHz。
函数[audioOut,信息]= applyBandpassFilter (audioIn信息)audioOut =带通([1 e3, 15 e3], audioIn info.SampleRate);结束
调用变换
创建一个TransformedDatastore
与转换
设置为applyBandpassFilter
。
ADSnew =变换(广告、@applyBandpassFilter“IncludeInfo”,真正的)
ADSnew = TransformedDatastore属性:UnderlyingDatastores: {audioDatastore} SupportedOutput金宝appFormats(“三种”:“csv”“xlsx”“xls”…转换:{@applyBandpassFilter} IncludeInfo: 1
调用读
返回带通滤波变换数据存储的音频。调用读
返回带通过滤音频从原始数据存储。图的谱图可视化的区别。
[audio1, info1] =阅读(广告);[audio2, info2] =阅读(ADSnew);
光谱图(audio1损害(512),256512年,info1.SampleRate,“桠溪”)标题(原始信号的)
光谱图(audio2损害(512),256512年,info2.SampleRate,“桠溪”)标题(“过滤信号”)
广告
- - - - - -音频数据存储audioDatastore
对象音频数据存储,指定为一个audioDatastore
对象。
@fcn
- - - - - -函数转换数据函数变换数据,指定为一个函数处理。的签名函数依赖IncludeInfo
参数。
如果IncludeInfo
被设置为假
(默认),函数变换的音频输出读
。的信息输出读
是不变的。
转换函数必须有这个签名:
函数dataOut = fcn(音频)…结束
如果IncludeInfo
被设置为真正的
,函数变换的音频输出读
,可以使用或修改返回的信息读
。
转换函数必须有这个签名:
函数[dataOut, infoOut] = fcn(音频、infoIn)…结束
指定可选的逗号分隔条名称,值
参数。的名字
参数名称和吗价值
相应的价值。的名字
必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家
。
IncludeInfo,特遣部队
IncludeInfo
- - - - - -信息通过定制的读
函数假
(默认)|真正的通过定制的读函数,传递信息指定为真正的
或假
。如果真正的
,变换函数可以从使用或修改信息读
。如果未指定的,IncludeInfo
默认为假
。
数据类型:逻辑
transformDatastore
——新数据存储与定制读
TransformedDatastore
新的数据存储与定制读
,返回TransformedDatastore
与UnderlyingDatastore
设置为广告
,转换
设置为fcn
,IncludeInfo
设置为真正的
或假
。
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。