| _____ | _____ | _____ | _____ | _____ | _____ | WAV
| _____ | _____ | _____ | _____ | MP3(超出上述WAV)
| _____ | _____ | .......... | _____ | .......... | _____ |的diff
\ \ \ \ <-- need timestamps of cut areas
我有很多WAV文件,我的编辑器正在创建MP3文件。他们正在规范化和均衡,加上一些领域正在 cut 。
我需要自动找到那些剪切的区域,并以尽可能高的精度获得剪切时间戳。
我花了很多时间在谷歌试图找到解决方案,但没有任何运气。在以下问题上没有答案:
还找到https://code.google.com/archive/p/musicip-libofa/,但他们的制作人网站已关闭,且该项目没有文档。
请帮忙!
答案 0 :(得分:2)
我想您可以比较两个信号的时间值,直到找到很大的差异(第一个时间戳)。然后,再次比较它们,直到您发现不再存在差异(第二个时间戳)。
由于.wav和.mp3文件的格式不同,因此您无法从时间样本值中执行此操作。在频谱域中,您可以逐个比较每个帧(数字不应该完全相同,但您可以使用阈值来查看差异是否足够小。
在您的示例中,两个文件来自同一点。您可以比较两个文件的连续光谱,直到找到很大的差异。这为您提供了第一个剪切时间戳。然后你继续,直到差异再次变小,依此类推。
如果您不想进入光谱域,更简单的方法可能是使用一个特征,如信号的均方根能量或光谱质心。
在所有情况下,您首先需要读取音频文件,然后处理这些值,以获得可以比较的数据的其他表示。