audioFlux是一个Python和C实现的库,提供音频领域系统、全面、多维度的特征提取与组合,结合各种深度学习网络模型,进行音频领域的业务研发,下面从时频变换、频谱重排、倒谱系数、解卷积、谱特征、音乐信息检索六个方面简单阐述其相关功能。
时频变换
audioFlux在时频分析领域中,包含以下通用变换(支持后续所有频率刻度类型)算法:
-
BFT - 基于傅里叶变换。
等效短时傅里叶变换(STFT),一般基于此实现大家熟知的mel频谱,时域上重叠平移加窗的傅里叶变换,一般重叠变换长度1/4,加高斯窗又称做Gabor变换,可以调整窗函数长度来方便的模拟时频分析特点,BFT算法除提供标准的mel/bark/erb等频谱外,还支持mel这些刻度类型的复数谱,同时支持mel等刻度频谱的重排。
-
NSGT - 非平稳 Gabor 变换。
类似加高斯窗的STFT(短时傅里叶变换),不同之处在于窗函数长度和t建立非平稳关系,相对STFT可以实现稳态信号中非平稳状态较好的分析,较好的onset端点侦测效果常基于此类频谱计算,同时可以做为实现CQT的一种高效方式,本算法中NSGT变换的octave频率刻度类型即CQT的高效实现。
-
CWT - 连续小波变换。
多分辨率时频分析,从数学上看,傅里叶变换的基底是无限的sin/cos函数,而小波变换基底是有限的很小的波函数,波函数的通用表示形式为 ψ a , b ( t ) = 1 a ψ ( t − b a ) \psi_{a,b}(t)=\frac{1}{\sqrt{a}}\psi(\frac{t-b}{a}) ψa,