如何在mp3文件中找到X秒的静音?

时间:2012-06-17 20:08:39

标签: windows audio mp3 audio-analysis

我需要在mp3文件中找到一个沉默。就这么简单。

例如:

  • 在“file.mp3”中找到比X秒更大的静音,如果发现X秒静默,则发送错误代码0,如果没有找到沉默,则发送错误代码1。

我可以在Batch,VBS,Ruby或Python中尝试它(因为我需要练习,但我只知道Batch)。我不知道音乐库和那些东西......

无论我是否需要第三方软件来完成CommandLine APPS等工作......

注意:沉默也可以在mp3文件的中间。例如在名为“Hidden tracks”的文件中:1首歌曲+ 1分钟的大沉默+另一首歌曲(全部只有1个mp3文件)所以我需要一些东西来搜索X selince进入整个文件,不仅接近结尾文件......

注意2:我需要在Windows中执行此操作。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

使用sox,它是silence filter

检查sox $infile -n statsox $infile -n silence 1 0.1 1% -1 0.1 1% stat的输出并比较原始文件和修剪文件的长度应该可以解决问题

答案 1 :(得分:4)

这样做:

  • 使用一些mp3解码库解码mp3,你将获得PCM。
  • PCM数据是一个接一个short,这意味着16位有符号数
  • 你必须找到连续数量的short s,它们的绝对值小到一个较小的值,比如100(范围是32767)
  • 短裤数量的长度取决于:您所需的静音持续时间,文件中的通道数,采样频率
  • 如果你有这么多的短裤,你就会沉默。

请使用评论将问题添加到您需要更多信息的区域,或者为此添加新问题,因为该任务有很多步骤,我想所有这些都会使这个问题过于具体。< / p>