IPython.display.Audio 可以让我们直接在 jupyter notebook 中播放音频,比如下面包房一段音频
在这里,我们绘制了一个简单的音频波形图。 波图让我们知道给定时间的音频响度。
频谱图(Spectogram)是声音频率随时间变化的频谱的可视化表示,是给定音频信号的频率随时间变化的表示。'.stft' 将数据转换为短期傅里叶变换。 STFT转换信号,以便我们可以知道给定时间给定频率的幅度。 使用 STFT,我们可以确定音频信号在给定时间播放的各种频率的幅度。
Spectrogram特征是目前在语音识别和环境声音识别中很常用的一个特征,由于CNN在处理图像上展现了强大的能力,使得音频信号的频谱图特征的使用愈加广泛,甚至比MFCC使用的更多。
信号的梅尔频率倒谱系数 (MFCC) 是一小组特征(通常约为 10-20),它们简明地描述了频谱包络的整体形状。在 MIR 中,它经常被用来描述音色。
在这个例子中,mfcc 在 89 帧中计算了 20 个 MFCC。
第一个 MFCC,第 0 个系数,不传达与频谱整体形状相关的信息。 它只传达一个恒定的偏移量,即向整个频谱添加一个恒定值。 因此,很多情况我们可以在进行分类时会丢弃第一个MFCC。
过零率(zero-crossing rate,ZCR)是指一个信号的符号变化的比率,例如信号从正数变成负数,或反过来。这个特征已在语音识别和音乐信息检索领域得到广泛使用,是分类敲击声的关键特征。为真时为1,否则为0。在一些应用场景下,只统计“正向”或“负向”的变化,而不是所有的方向。
可以使用整个音频来遍历这个并推断出整个数据的过零。
频谱质心(维基百科)表示频谱能量集中在哪个频率上。这就像一个加权平均值:
其中 S(k) 是频段 k 处的频谱幅度,f(k) 是频段 k 处的频率。
librosa.feature.spectral_bandwidth 可以用来计算p-order频谱带宽:
其中 S(k) 是频段 k 处的频谱幅度,f(k) 是频段 k 处的频率,fc 是频谱质心。当 p=2 时,这就像一个加权标准差。
频谱衰减是总频谱能量的特定百分比所在的频率。
色度向量 (Wikipedia) 是一个典型的 12 元素特征向量,指示每个音高类别 {C, C#, D, D#, E, ..., B} 的能量是多少存在于信号中。
音高是声音的感知属性,在与频率相关的尺度上排序,或者更常见的是,音高是可以判断声音在与音乐旋律相关的意义上“更高”和“更低”的质量。
TensorFlow 消噪音使用基于数据驱动的降噪方法。一边读取一边合成的方式动态合成带噪音频,数据读取和音频混合使用了 librosa、numpy 等开源框架,最后用 tf.data.Dataset.from_generator() 函数进行封装,模型在训练时直接调用此接口提取数据,不会再受噪音影响。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)