Python 有什么 [音频比较] 的轮子推荐嘛?
需求
- 以前下了很多视频,袁老师的,道长的,等等。
- 无奈片头片尾贴片广告太多了,音量都暴大,时长有时候又很长,又不规则,连续播放的时候很影响体验。量也很大,几百段,就想批量检测删除之。
- 目前大致思路是先截取几段贴片广告,音频采样,然后找到类似的,确定时间点之后,ffmpeg 截取。
- 但音频处理没啥经验,想问问有相关模块推荐嘛?
截取视频之前搞过,ffmpeg 很简单。但音频没弄过,稍微搜了一下也没看到特别符合的。
我考虑是采集频谱特征,比如分 16 阶转成 16 进制,然后把开头 10 秒和最后 20%做一下比对,有符合的就掐头去尾。
但音频又涉及时间,简单比较可能会有误差,所以想看看有没有什么现成的算法。
这个回答~
提取声音,对某一个时刻编码比较,这都不难。
我现在有问题的点是时间。
比如 0.5 秒一采集,但广告出现的时间是不对齐的,所以很可能比对失误。
@1462326016
这个情况在比对纯图片的时候,也有可能出现。
如果是片头,而且剪的编辑负责,每次都对得很齐,那还好处理。片尾贴片的话很可能对不齐啊。
然后有些片头贴片,就是一段很吵的音效,并没有语音。
我觉得可以把题目转换为
==========================
如何在一段音频中,锁定目标音频的起点。
==========================
类似于 string.indexOf 的一个方法
但这个同样一段贴片广告,涉及到后期人员的操作,音量音调变速压缩率,以及视频平台各个时期的压缩设置,和种种不确定因素。感觉不会那么顺利。
dsp.stackexchange.com/questions/24548/detecting-a-specific-pop-in-a-real-time-audio-signal
不知道可行吗?
如果这样效果不好,就是频域内选个四五条线做 corelation,你甚至不需要专门采样比对