当前位置:  开发笔记 > 编程语言 > 正文

使用C#检测WAV文件中的音频静音

如何解决《使用C#检测WAV文件中的音频静音》经验,为你挑选了3个好方法。

我的任务是构建一个.NET客户端应用程序来检测WAV文件中的静音.

内置Windows API可以实现这一点吗?或者,那里有任何好的图书馆来帮助解决这个问题?



1> Simon Gillbe..:

音频分析是一项困难的事情,需要大量复杂的数学运算(想想傅立叶变换).你要问的问题是"什么是沉默".如果您尝试编辑的音频是从模拟信号源捕获的,则可能没有任何静音...它们只会是软噪声区域(线路嗡嗡声,环境背景噪声等).

总而言之,一个应该工作的算法是确定最小音量(幅度)阈值和持续时间(例如,<10dbA超过2秒),然后简单地对波形进行体积分析,寻找符合此标准的区域(可能有一些过滤器用于毫秒尖峰).我从来没有在C#中写过这个,但这个CodeProject文章看起来很有趣; 它描述了绘制波形的C#代码......这是可用于进行其他振幅分析的相同类型的代码.



2> FlySwat..:

http://www.codeproject.com/Articles/19590/WAVE-File-Processor-in-C

这具有剥离静音和混合波形文件所需的所有代码.

请享用.



3> Mark Borgerd..:

如果要有效计算滑动窗口的平均功率:对每个样本求平方,然后将其添加到运行总计中.从之前的N个样本中减去平方值.然后转到下一步.这是CIC过滤器的最简单形式.Parseval定理告诉我们,这个功率计算适用于时域和频域.

此外,您可能希望向系统添加滞后,以避免在功率水平在阈值水平附近跳动时快速打开和关闭.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有