音频处理
Wolfram 语言为参数式和交互式音频处理提供内置支持,并完全与 Wolfram 语言强大的数学和算法能力相集成. 通过应用线性和非线性滤波器,添加效果,使用特定的音频函数分析处理音频对象或通过与其他 Wolfram 语言相集成来拓展对音频对象的处理.
LowpassFilter[audio,ωc] | 对音频应用具有截止频率 ωc 的低通滤波器 |
HighpassFilter[audio,ωc] | 对音频应用具有截止频率 ωc 的高通滤波器 |
WienerFilter[audio,r] | 对音频应用 r 样本范围的维纳滤波器 |
MeanFilter[audio,r] | 对音频应用 r 样本范围的均值滤波器 |
TotalVariationFilter[audio] | 对音频应用全变差滤波器 |
GaussianFilter[audio, r] | 对音频应用 r 样本范围的高斯滤波器 |
Wolfram 语言中的许多滤波函数可直接用于音频对象. 在许多情况下,可以指定截止频率作为一个频率 Quantity.
使用 WienerFilter 对录音除燥:
离散时间传递函数模型可以使用 RecurrenceFilter 滤波音频对象.
RecurrenceFilter[tf,audio] | 使用由 TransferFunctionModel tf 定义的离散时间滤波 |
BiquadraticFilterModel[{"type",spec}] | 创建给定 {"type",spec} 的二次滤波器 |
ButterworthFilterModel[{"type",spec}] | 创建给定 {"type",spec} 的巴特沃斯滤波器 |
TransferFunctionModel[m,s] | 表示带有复变量 s 的传递函数矩阵 m 的模型 |
ToDiscreteTimeModel[lsys,τ] | 给出连续时间系统模型 lsys 的离散时间近似,其中采样周期为 τ |
使用 TransferFunctionModel 定义梳妆滤波器并应用于音频对象:
AudioTimeStretch[audio,r] | 通过指定的因子 r 对音频进行时间拉伸 |
AudioPitchShift[audio,r] | 通过指定的因子 r 对音频进行音调移位 |
AudioReverb[audio] | 对音频应用混响效果 |
AudioDelay[audio,delay] | 用延迟时间 delay 对音频应用延迟效果 |
AudioChannelMix[audio,desttype] | 把音频通道混合到指定的 desttype |
可使用 AudioChannelMix 获取任意通道数下混合与上混合.
使用 Tanh 函数平滑音频对象的失真:
整体信号的分析
AudioMeasurements[audio,"prop"] | 对整个 audio 计算属性 "prop" |
时域和频域属性可以用 AudioMeasurements 度量. 在音频对象的通道上的平均样本值上计算属性.
不像 AudioMeasurements,重载的函数被应用于数据的展平版本. 如果输入是多通道音频对象,所有通道的样本值会在单个数组中被展平.
部分信号分析
AudioLocalMeasurements[audio,"prop"] | 局部计算 audio 部分的属性 "prop" |
AudioIntervals[audio,crit] | 求当满足标准 crit 的 audio 区间 |
在 AudioLocalMeasurements 中,局部计算属性. 按 PartitionGranularity 规范划分信号,然后在每个分区上计算要求的属性. 结果以 TimeSeries 形式返回,其时间戳对应于每个分区的中心时间.
使用 MFCC 度量作为特征计算 ExampleData["Audio"] 集合中各元素间的距离c:
使用 AudioIntervals 允许提取满足用户定义标准的区间.
高级分析
SpeechRecognize[audio] | 识别 audio 中的音频并以字符串形式返回 |
PitchRecognize[audio] | 识别 audio 中主要音调 |
AudioIdentify[audio] | 识别录制的是哪个 audio |
所有机器学习功能都知道 Audio 对象并从语义上重要特征提取开始执行它们的计算.
Classify[{audio1class1,audio2class2,…}] | 生成一个在给定范例和类上训练的 ClassifierFunction[…] |
FeatureExtraction[{audio1,audio2,…}] | 生成一个在给定范例上训练的 FeatureExtractorFunction[…] |
FeatureSpacePlot[{audio1,audio2,…}] | 用散点图绘制 audioi 上的特征提取 |
绘制使用 FeatureSpacePlot 收集的音频特征.
用 FeatureSpacePlot 在有语义意义的空间绘制信号列表:
神经网络
"Audio" | 将信号编码为波形 |
"AudioSpectrogram" | 将信号编码为频谱 |
"AudioMFCC" | 将信号编码为梅尔频谱 |
音频 NetEncoder 的一些范例.
NetTrain[net,data] | 在数据集 data 上训练网络 net |
NetChain[{layer1,layer2,…}] | 指定一个 layeri 输出连接到 layeri+1 输入的网络 |
NetMeasurements[net,data,measurement] | 为在 data 上计算的 net 计算请求的 measurement |
使用 NetChain 和 NetGraph 创建任意拓扑的网络,并利用序列聚焦的层(如 GatedRecurrentLayer 和 LongShortTermMemoryLayer )来分析可变长度信号.