目录
本文详细列举一些谱特征的公式定义,做业务的时候,再也不用为脑海里捉襟见肘的特征发愁了!!!
关于谱特征,其广泛的使用于机器学习和深度学习中,在乐器分类,音色分析,端点侦测,情绪识别,语音活动检测等等各种业务中都有大量的实践应用。
这些谱特征都是频域数据各个维度高度抽象、总结、量化的结果,为业务后续研发提供思维的燃料,脑海里有没有很重要,至于烧不烧、怎么烧是另外一回事,但前提是先备好这些"燃料",幸运的是,audioFlux项目提供下面所列谱特征几乎所有的支持,感兴趣的小伙伴后续可以用其做不同的测试以加深理解。
谱特征
b_1 , b_2 为频带bin边界,f_k 单位Hz,s_k 为频谱值,可以 magnitud spectrum或power spectrum
1. Spectral Centroid
2. Spectral Spread
3. Spectral Skewness
4. Spectral Kurtosis
5. Spectral Entropy
设 p_k=\frac{s_k}{\sum_{k=b_1}^{b_2}s_k}
或
6. Spectral Flatness
7. Spectral Crest
8. Spectral Flux
一般情况下s_k(t) \geq s_k(t-1) 参与计算
9. Spectral Slope
\mu_f 平均频率值,\mu_s 平均频谱值
10. Spectral Decrease
11. Spectral Rolloff
\eta \in (0,1) ,一般取0.95或0.85,满足条件i 获得f_i 滚降频率
12. Spectral bandwidth
设 centroid =\frac{\sum_{ k=b_1 }^{b_2} f_ks_k } {\sum_{k=b_1}^{b_2} s_k }
13. Spectral Energy相关
\qquad le=\log_{10}(1+\gamma \times energy) ,\gamma \in (0,\infty) ,表示数据的log 压缩
\qquad p_k=\frac{s_k}{\sum_{k=b_1}^{b_2}s_k}
\qquad entropy2= {-\sum_{ k=b_1 }^{b_2} p_k \log(p_k)}
14. Spectral Novelty相关
\qquad flux(t)=\left( \sum_{k=b_1}^{b_2} |s_k(t)-s_k(t-1) |^{p} \right)^{\frac{1}{p}}
\qquad hfc(t)=\frac{\sum_{k=b_1}^{b_2} s_k(t)k }{b_2-b_1+1}
\qquad sd(t)=flux(t) ,满足 s_k(t) \ge s_k(t-1) 计算,p=2 ,结果不再1/p
\qquad sf(t)=flux(t) ,满足 s_k(t) \ge s_k(t-1) 计算,p=1
\qquad mkl(t)=\sum_{k=b_1}^{b_2} \log\left(1+ \cfrac {s_k(t)}{s_k(t-1)} \right)
\qquad \psi_k(t) 设为t时刻k点的相位函数
\qquad \psi_k^{\prime}(t)=\psi_k(t)-\psi_k(t-1)
\qquad \psi_k^{\prime\prime}(t)=\psi_k^{\prime}(t)-\psi_k^{\prime}(t-1) = \psi_k(t)-2\psi_k(t-1)+\psi_k(t-2)
\qquad pd(t)= \frac {\sum_{k=b_1}^{b_2} \| \psi_k^{\prime\prime}(t) \|} {b_2-b_1+1}
\qquad wpd(t)= \frac {\sum_{k=b_1}^{b_2} \| \psi_k^{\prime\prime}(t) \|s_k(t)}{b_2-b_1+1}
\qquad nwpd(t)= \frac {wpd} {\mu_s} ,\mu_s 为s_k(t) 平均值
\qquad \alpha_k(t)=s_k(t) e^{j(2\psi_k(t)-\psi_k(t-1))}
\qquad \beta_k(t)=s_k(t) e^{j\psi_k(t)}
\qquad cd(t)=\sum_{k=b_1}^{b_2} \| \beta_k(t)-\alpha_k(t-1) \|
\qquad rcd(t)=cd ,满足s_k(t) \geq s_k(t-1) 时参与求和计算
15. Novelty Method 相关
\qquad sub_k(t)= s_k(t)-s_k(t-1)
\qquad entropy_k(t)= \log \left( \frac {s_k(t)}{s_k(t-1} \right)
\qquad kl_k(t)= s_k(t) \log \left( \frac {s_k(t)}{s_k(t-1} \right)
\qquad is_k(t)= \frac {s_k(t)}{s_k(t-1)} - \log \left( \frac {s_k(t)}{s_k(t-1} \right)-1
\qquad f_k=sub_k,entropy_k,\cdots,is_k \quad g_k=\log(1+\gamma f_k) , 满足f_k(t) \ge 0 , \gamma >0
\qquad v_k=f_k,g_k
\qquad \mathcal{V}(t)=\sum_{k=b_1}^{b_2}v_k(t) , 满足 v_k(t) \ge \alpha 时计算,一般\alpha \ge 0
\qquad 或
\qquad \mathcal{V}(t) =i[v_{k_{\in [b_1,b_2]}} (t) ] ,满足 v_k(t) \ge \alpha 时个数统计,一般\alpha \ge 0
\qquad broadband 使用i[entropy_k]
最后
以上谱特征只是频域数据常用的部分特征,可以在此基础上实现更为高级的音色听觉特征如roughness,hardness,brightness等等各种***ness音色感知特征。
14和15包含丰富多样的各种维度的Novelty相关方法,干货满满,每一个单独拎出来都可以作为一篇论文发表,建议使用audioFlux做详细的测试,一定会有不少的收获。
下面是一张使用audioFlux测试的部分特征效果图。