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

Windows 如何在mp3文件中找到X秒静音?,windows,audio,mp3,audio-analysis,Windows,Audio,Mp3,Audio Analysis,我需要在mp3文件中找到一个静音。就这么简单 例如: 在“file.mp3”中找到大于X秒的静默,如果找到X秒的静默,则发送错误代码0,如果没有找到静默,则发送错误代码1 我可以在批处理、VBS、Ruby或Python中尝试(因为我必须全部练习,但我只知道批处理)。我不知道音乐库和那些东西 无论我是否需要第三方软件来完成命令行应用程序之类的工作 注意:静默也可以在MP3文件的中间。例如,在名为“隐藏曲目”的文件中,即:1首歌曲+1分钟的大沉默+另一首歌曲(全部仅包含1个mp3文件),因此我需

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

例如:

  • 在“file.mp3”中找到大于X秒的静默,如果找到X秒的静默,则发送错误代码0,如果没有找到静默,则发送错误代码1
我可以在批处理、VBS、Ruby或Python中尝试(因为我必须全部练习,但我只知道批处理)。我不知道音乐库和那些东西

无论我是否需要第三方软件来完成命令行应用程序之类的工作

注意:静默也可以在MP3文件的中间。例如,在名为“隐藏曲目”的文件中,即:1首歌曲+1分钟的大沉默+另一首歌曲(全部仅包含1个mp3文件),因此我需要一些东西来搜索整个文件中的X选择,而不仅仅是在文件末尾附近

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

有什么想法吗?

使用sox,它是

检查
sox$inflee-n stat
sox$inflee-n silence 1 0.1 1%-1 0.1 1%stat
的输出,并比较原始文件和修剪文件的长度,应该可以做到这一点

检查
sox$inflee-n stat
sox$inflee-n silence 1 0.1 1%-1 0.1 1%stat
的输出,并比较原始文件和修剪文件的长度应该可以做到这一点

  • 使用mp3解码库解码mp3,您将从中获取PCM
  • PCM数据是一个接一个的
    short
    ,表示16位有符号数字
  • 您必须找到连续的
    数量,这些数量的绝对值小于某个较小的值,例如100(范围为32767)
  • 短路次数的长度由以下因素决定:所需的静音持续时间、文件中的通道数、采样频率
  • 如果你有这么多的短裤,你有你的沉默
请使用注释将问题添加到您需要更多信息的区域,或为此添加新问题,因为任务有许多步骤,我想所有这些步骤都会使这一问题过于具体。

请执行以下操作:

  • 使用mp3解码库解码mp3,您将从中获取PCM
  • PCM数据是一个接一个的
    short
    ,表示16位有符号数字
  • 您必须找到连续的
    数量,这些数量的绝对值小于某个较小的值,例如100(范围为32767)
  • 短路次数的长度由以下因素决定:所需的静音持续时间、文件中的通道数、采样频率
  • 如果你有这么多的短裤,你有你的沉默

请使用注释将问题添加到您需要更多信息的区域,或为此添加新问题,因为任务有许多步骤,我想所有这些步骤都会使这一问题过于具体。

将MP3音频数据转换为原始PCM,扫描样本,查找低于任何阈值的块。将MP3音频数据转换为原始PCM,扫描样本,查找低于任何阈值的块。谢谢,这很好,我只有一个问题:(我在windows中)我在尝试使用“-n stat”时遇到此错误命令:sox FAIL util:无法加载MAD解码器库(libmad)。是的,再次感谢我下载了用libmad和lame编译的sox。。。我有一个文件有5秒的静音(我的意思是没有音频峰值),当我尝试第二个命令时,我什么也没有得到:“sox test.mp3-n silence 1 0.1 1%-1 0.1%,”我做错了什么?周期是毫秒还是秒?对不起,我的无知,但确定这只能用来“寻找”沉默吗?因为我读了文档,只说是写或删除沉默…:-/ty表示您在命令末尾忘记了
stat
。周期以秒为单位,如果是分数,则以秒为单位,否则以样本为单位
-n
标志告诉sox放弃任何已处理的音频。谢谢,这很好,我只有一个问题:(我在windows中)我在尝试使用“-n stat”命令时出现此错误:sox FAIL util:无法加载MAD解码器库(libmad)。是的,再次感谢我下载了使用libmad和lame编译的sox。。。我有一个文件有5秒的静音(我的意思是没有音频峰值),当我尝试第二个命令时,我什么也没有得到:“sox test.mp3-n silence 1 0.1 1%-1 0.1%,”我做错了什么?周期是毫秒还是秒?对不起,我的无知,但确定这只能用来“寻找”沉默吗?因为我读了文档,只说是写或删除沉默…:-/ty表示您在命令末尾忘记了
stat
。周期以秒为单位,如果是分数,则以秒为单位,否则以样本为单位
-n
标志告诉sox放弃任何已处理的音频。