目录
audioFlux是一个Python和C实现的库,提供音频领域系统、全面、多维度的特征提取与组合,结合各种深度学习网络模型,进行音频领域的业务研发,下面从时频变换、频谱重排、倒谱系数、解卷积、谱特征、音乐信息检索六个方面简单阐述其相关功能。
项目地址: https://github.com/libAudioFlux/audioFlux
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函数,而小波变换基底是有限的很小的波函数,波函数的通用表示形式为 $$ \psi_{a,b}(t)=\frac{1}{\sqrt{a}}\psi(\frac{t-b}{a})$$ 其中a决定频域缩放尺度,b时间平移尺度,建立时频的自适应分析,相对STFT的固定时频分辨率,具有低频段频率分辨高、高频段时间分辨高特点,非常适合非稳态信号分析,支持常用的Morse、Morlet、Bump、Pual、Meyer等波函数类型。
PWT - 伪小波变换。
基于傅里叶变换实现的类似小波变换效果,CWT的高效算法为频域小波函数计算filterBank和频域数据做dot运算,如果把小波函数当做一种特殊的窗函数,可以产生类CWT效果,即伪小波变换,如果窗函数建立可调频带的参数(库中尚未实现),可以等效小波变换。
以上变换功能支持下面所有频率刻度类型:
下面是一个BFT变换下不同频率刻度的简单对比图。
下面是一个CWT不同波函数的简单对比图。
以下可用作独立变换的算法有(不支持多种频率刻度类型):
下面是一个CQT和NSGT变换下不同刻度的简单对比图。
很明显,NSGT-Octave比CQT要清晰、聚焦一些。
chroma是基于频谱的更高级特征,属于乐音刻度体系范畴,针对非乐音的刻度要差于乐音刻度,目前支持chroma特征的频谱类型:
下面是一个Chroma简单对比图。
很明显,CQT-Chroma优于其它频谱类型下的chroma。
注:
同步压缩或重新分配方法是一种用于锐化、高清频谱图的技术,可以提升频谱的清晰度和精度,audioFlux包含以下算法:
下面是一个频谱图和对应重排后的效果图。
很明显,重排后的效果要优于重排前的效果。
可能有人会问,既然重排效果如此好,可以基于上次结果循环多次重排吗?这样效果如何?audioFlux重排相关算法提供多次重排机制,具体效果可以参照文档做下尝试对比。
类似针对mel频谱的mfcc(梅尔频率倒谱系数),这个特征业务上属于去音高,属于反映发音物理结构的一个特征,典型的用于语音识别相关业务,可用于不同乐器分类,结构细化等业务模型训练。
整个audioFlux项目频谱体系中,除mfcc以及相应delta/deltaDelta外,支持所有类型的频谱倒谱系数即xxcc:
不同频谱的倒谱系数,都代表着不同频谱类型的去音高相关,都有各自的应用价值,比如gtcc有论文反映在语音识别业务中音素效果要比mfcc好一些,cqcc针对乐器的分类和一些结构细化业务要远优于mfcc等等。
下面是针对吉他乐音音频的不同频谱倒谱系数的对比图。
很明显,在吉他乐音起振阶段,cqcc表现最好,后续持续稳定阶段,gtcc相比较好。
在数学中,解卷积是卷积的逆运算,可以做为信号分解的一种算法,针对频谱而言,分解后的两个数据可以表示为formant(共振峰)频谱图和pitch频谱图,相比mfcc而言,formant是一种更为通识的发音物理结构特征。
在audioFlux中,支持所有类型频谱的解卷积操作,所发挥的价值在于,针对音高相关的业务,可以去除共振峰干扰后模型推断更准确;针对结构相关特征的业务,可以去除音高避免模型的训练受其干扰。
下面是针对吉他880hz音频的mel频谱图的解卷积效果图。
可以看到吉他共振峰部分(音色)和音高部分明显的分离效果。
在audioFlux中,包括数十种spectral相关的特征,包括基于音色相关特征,基于统计相关特征,基于光谱通量相关特征,基于奇异值相关特征,等等。
如:
等等一小部分,关于audioFlux所提供的所有谱特征,更具体的功能描述、例子、公式等请参照官方文档。
下面是一些谱特征对比图。
audioFlux提供mir相关领域pitch估算、onset侦测、hpss(谐波打击乐分离)等相关业务算法。
pitch估算包含基于YIN,STFT等相关算法,下面是针对一段人声练习音高的侦测效果图。
红色为实际参照音高,蓝色为估算音高。
onset侦测包含基于Spectrum flux, novelty等等相关算法,下面是一段吉他扫弦伴奏的端点侦测效果图。
中间时域图像红色虚线为端点侦测位置叠加而成。
hpss包含中值滤波,非负矩阵分解等(NMF)等算法,下面是一段包含吉他弹奏和节拍器音频的分离效果,上半部分时域效果,下半部分对应频域效果。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章