2010-05-11 82 views
2

我正在寻找可以检测并让我知道我的1分钟wav文件是否包含声音的实用程序/代码? 其他方式,如果它可以检测到wav文件中任何位置的沉默持续时间(如果存在),这也可以达到目的。在wav文件中的声音/沉默

SOX是否支持任何命令?我尝试用Java,但没有发现任何JMF。

感谢

维韦克

回答

0

SOX does have the ability修剪沉默,但我不知道这是否可以帮助你:

沉默[-l]上述时段[持续时间阈值[d |%] [低于期限时长阈值[d |%]]

消除开始,中间或结束时的沉默音频。 `沉默'由特定的阈值决定。

+0

谢谢。但我不必修剪沉默或wav文件。我只想知道,如果文件在1分钟的持续时间范围内保持沉默,或者其中有一些声音?谢谢Vivek – Vivek 2010-05-11 07:14:49

0

你可以很容易地写你的波形文件处理器,这是一个简单的头,然后只是简单的数据。你可以很容易地找出样本大小,8位或16位,然后如果你找到一个值为0的样本序列,那么你可以通过样本读取文件样本,然后你得到了沉默。测量有多少个采样为0,并使用采样率(也在标题中)来计算持续时间。

+0

Java是否提供读取wav文件的API或二进制文件? 如果有任何示例代码可用于此,会有很大的帮助吗? 谢谢 Vivek – Vivek 2010-05-11 07:24:39

+0

我没有做太多的Java,但我确信它具有二进制文件读取功能,查找网络上的wav格式规格,这是一个非常简单的格式。 – 2010-05-11 18:21:50

0

Audacity这样做,在sourceforge.net上是OpenSourced,所以你应该能够收集到你需要的所有示例代码。