使用C#检测WAV文件中的音频沉默
我的任务是构建一个.NET客户端应用程序来检测WAV文件中的静音。
这可能与内置的Windows API有关吗? 或者,还有一些好的图书馆可以帮助解决这个问题?
音频分析是一件困难的事情,需要很多复杂的数学(思考傅里叶变换)。 你要问的问题是“什么是沉默”。 如果您尝试编辑的音频是从模拟信号源捕获的,则可能是没有任何静音......它们只会是软噪音区域(线路嗡嗡声,环境背景噪音等)。
所有这一切,一个应该工作的算法将是确定一个最小音量(幅度)阈值和持续时间(比如,<10dbA超过2秒),然后简单地对波形进行音量分析,寻找符合该标准的区域(可能有一些过滤器用于毫秒尖峰)。 我从来没有用C#写过这篇文章,但是这篇CodeProject文章看起来很有趣。 它描述了C#代码来绘制一个波形......这是可用于进行其他幅度分析的相同种类的代码。
http://www.codeproject.com/Articles/19590/WAVE-File-Processor-in-C
这有所需的所有代码去除静音,并混合波形文件。
请享用。
如果您想有效地计算滑动窗口上的平均功率:将每个样本平方,然后将其添加到运行总数。 从之前的N个采样减去平方值。 然后转到下一步。 这是CIC过滤器的最简单形式。 Parseval定理告诉我们这个功率计算适用于时域和频域。
此外,您可能希望将迟滞添加到系统中,以避免在功率级别跳跃到阈值级别时快速打开和关闭。
链接地址: http://www.djcxy.com/p/64295.html