【发布时间】:2011-11-16 11:12:11
【问题描述】:
如何从包含语音的单个音频文件中估算 SNR? 我知道两种方法:
log power histogram pecentile Difference(又名“NIST 快速方法”),在此处描述:http://labrosa.ee.columbia.edu/~dpwe/tmp/nist/doc/stnr.txt
-
10*log10((S-N)/N),其中
- S = sum{x[i]^2 * e[i]}
- N = sum{x[i]^2 * (1-e[i])}
- e[i] 某种语音活动检测(语音/非语音指示器)
有没有更好的方法不需要立体声数据(或干净和嘈杂版本的数据)?我还想避免 NIST 文档(参见 1.)中描述的“第二种方法”,它对分布做出了强有力的假设。
【问题讨论】:
-
给定一个单通道、单版本的音频文件,并且不假设噪声分布,你将如何区分信号和噪声?
-
假设是可以的,但在“第二种方法”中它们非常强大。无论如何,期待高能量值的语音和低能量值的噪音是好的。
-
2.你必须固定重量。因为对于 N,您仅对静音时段和 S 仅对语音时段求和。 (现在,如果您少说话,您的 SNR 会有所不同)
-
好的,谢谢!你是对的,如果 e[i] 是一个二元函数,但一般来说,如果它在整个范围 [0..1] 上定义,则归一化项 (1/L) 会抵消,对吧?
-
@Pavel:我怀疑你可以创建一个非二进制函数来给出正确的结果。为此,您必须知道 SNR。
标签: algorithm signal-processing