首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >估计音频文件信噪比的方法?

估计音频文件信噪比的方法?
EN

Stack Overflow用户
提问于 2011-11-16 11:12:11
回答 1查看 5.6K关注 0票数 3

如何从包含语音的单个音频文件中估计信噪比?我知道两种方法:

http://labrosa.ee.columbia.edu/~dpwe/tmp/nist/doc/stnr.txt

  • 10*log10( (S)/N描述的
  1. 测功直方图谱差(简称NIST快速法),其中

代码语言:javascript
复制
- S = sum{x[i]^2 \* e[i]}
- N = sum{x[i]^2 \* (1-e[i])}
- e[i] some sort of voice activity detection (speech/non-speech indicator)

是否有任何更好的方法不需要立体声数据(或清洁和噪音版本的数据)?我还想避免NIST文档中描述的“第二种方法”(见1)。这就对这些分布做出了强有力的假设。

EN

回答 1

Stack Overflow用户

发布于 2012-09-08 14:00:18

人类的声音频率从300赫兹到3 kHz。这是(旧的)电话系统正在使用的。人类的声音从来没有一次使用所有这些频率,这就是为什么我们可以做一个频率分析来找出噪音地板-没有任何参考或声音活动检测ei。

  1. 计算频率分辨率为10-20 Hz.当样本数为48 kHz时,您将使用快速傅立叶变换长度的采样/分辨率= 4800个样本,如果得到的四舍五入到最接近的功率为2,即4096
  2. 确定了保存从300 - 3000 Hz的结果所需的回收箱。bin索引k保存频率k*采样/FFT_length的结果。对于48 kHz输入和快速傅立叶变换长度4096,这是k(300 Hz) = 300 * 4096 / 48000 ~= 25和k(3 000 Hz) =3 000* 4096 / 48000 ~= 250。
  3. 计算每个所需的二进制的能量: Ek = FFTk.re ^2 + FFTk.im ^2。它取决于你的FFT算法“其中”写实部和虚部。
  4. N= min{ Ek=25..250 }* number_of_bins (=250-25+1)
  5. S = sum{ Ek=25..250 }H 210
  6. As,code>
  7. 信噪比=(S)/N。电平为
  8. ,信噪比随时间而变化,带着一些新的样本回到步骤1--可能有一些重叠的
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8150725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档