语音的SNR计算以及降噪后的计算

SNR计算
S1 = 原始干净语音
N1 = 噪声.
S2 = S1 + N1 (带噪语音)
S3 = 增强后的语音(使用某种算法降噪)
N2 = S3 - S1 (增强后语音中的残留噪声)
SNR的计算公式为(dB)
SNR=10log10signal2noise2 SNR = 10{\log _{10}}\frac{{{{\left\| {signal} \right\|}^2}}}{{{{\left\| {noise} \right\|}^2}}}

SDR的计算公式为
SDR=10log10Xc2XXc2 SDR = 10{\log _{10}}\frac{{{{\left\| {Xc} \right\|}^2}}}{{{{\left\| {X - Xc} \right\|}^2}}}
其中XcX_c为带噪语音中的干净分量,XX为带噪语音,XcXX_c - X为带噪语音中的噪声分量。计算SNR提升量:
SNR(afterEnhanced)SNR(beforeEnhanced)=10log10S12N2210log10S12N12 SNR(afterEnhanced) - SNR(beforeEnhanced) = 10{\log _{10}}\frac{{{{\left\| {S1} \right\|}^2}}}{{{{\left\| {N2} \right\|}^2}}} - 10\log 10\frac{{{{\left\| {S1} \right\|}^2}}}{{{{\left\| {N1} \right\|}^2}}}
SDR(afterEnhanced)SDR(beforeEnhanced)=10log10S12S3S1210log10S12S2S12=10log10S12N2210log10S12N12 \begin{array}{l} SDR(afterEnhanced) - SDR(beforeEnhanced) = 10{\log _{10}}\frac{{{{\left\| {S1} \right\|}^2}}}{{{{\left\| {S3 - S1} \right\|}^2}}} - 10\log 10\frac{{{{\left\| {S1} \right\|}^2}}}{{{{\left\| {S2 - S1} \right\|}^2}}}\\ = 10{\log _{10}}\frac{{{{\left\| {S1} \right\|}^2}}}{{{{\left\| {N2} \right\|}^2}}} - 10\log 10\frac{{{{\left\| {S1} \right\|}^2}}}{{{{\left\| {N1} \right\|}^2}}} \end{array}
从公式上看,两者完全相同。
SDR是(输入信号的功率)和(输入信号与增强信号之差的功率比),与SNR是一样的,在语音增强中,他们都反应了整体的性能。SDR的性能可以反应SNR的性能.
另外,在下面文献中也有类似的结论

Huang, Po-Sen, et al. “Joint optimization of masks and deep recurrent neural networks for monaural source separation.” IEEE/ACM Transactions on Audio, Speech, and Language Processing (TASLP) 23.12 (2015): 2136-2147.

语音的SNR计算以及降噪后的计算
SDR是输入信号的功率与输入信号与重构信号之差的功率之比。因此,SDR与经典的测量“信噪比”(SNR)完全相同,SDR反映了整体的分离性能。