ale*_*kva 7 sound python command-line bash tools
我有一些音乐收藏,我想根据它们的截止频率(实际比特率,通常以 kHz 为单位)轻松地对它们进行排序/过滤。我曾经使用 Spek 向我展示这些信息,但 Spek 没有提供任何使用的可能性它在终端或多个文件操作中。我已经找到了一些方法,但所有这些方法都只列出了以 kbps 为单位保存音频文件的比特率,而不是我需要的实际截止频率 kHz。我想找到一个简单的解决方案来使用例如 bash、python、现有的简单工具等过滤整个集合。您知道任何解决方案吗?
澄清:我不是在寻找比特率或采样率,我在寻找频率截止!
小智 4
我一直在寻找类似的东西,因为我正在尝试对大型音乐档案进行重复数据删除,希望保留最高质量的文件,但不相信所使用的比特率。
我发现了fakeflac这似乎是一个好的开始。不要让这个名字欺骗了您,它不是特定于 FLAC 的,因为它将给定文件转换为 wav 并使用 Python 脚本对其进行操作。它会根据一些启发式方法向下扫描频谱,直到找到截止点(在 220 Hz 范围内幅度增加 125%,较低幅度不高于 44100Hz 时幅度的 110%)。
它写出一个“分数”,即截止频率出现在频谱上的距离(即,如果声称的频率为 44100Hz,但截止频率为 22050Hz,则分数将为 50)。
我不得不稍微摆弄它才能使其工作,例如我替换sndfile-convert foo bar为ffmpeg -i foo bar,但它非常简单,似乎正是我所追求的。
您可以fakeflac在循环中使用来获取文件集合的分数,然后使用标准 shell 工具(sort、cut等)对它们进行排序。