跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Python 有什么 [音频比较] 的轮子推荐嘛?
未分類
29 4 月 2020

Python 有什么 [音频比较] 的轮子推荐嘛?

Python 有什么 [音频比较] 的轮子推荐嘛?

資深大佬 : JCZ2MkKb5S8ZX9pq 54

需求

  • 以前下了很多视频,袁老师的,道长的,等等。
  • 无奈片头片尾贴片广告太多了,音量都暴大,时长有时候又很长,又不规则,连续播放的时候很影响体验。量也很大,几百段,就想批量检测删除之。
  • 目前大致思路是先截取几段贴片广告,音频采样,然后找到类似的,确定时间点之后,ffmpeg 截取。
  • 但音频处理没啥经验,想问问有相关模块推荐嘛?
大佬有話說 (26)

  • 資深大佬 : imn1

    两年前搜过,需求和你差不多——自动提取音量提别大一段
    没有什么好的结果,两年后今天不知如何

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @imn1 我倒也不是要音量大,音量大的话,Adobe Premiere 或者 audition 都能搞到平均音量,可以批处理。
    我主要是嫌贴片烦,同样的内容听几十次实在是太折磨了,要么就要每次都手动跳过。

    截取视频之前搞过,ffmpeg 很简单。但音频没弄过,稍微搜了一下也没看到特别符合的。
    我考虑是采集频谱特征,比如分 16 阶转成 16 进制,然后把开头 10 秒和最后 20%做一下比对,有符合的就掐头去尾。
    但音频又涉及时间,简单比较可能会有误差,所以想看看有没有什么现成的算法。

  • 資深大佬 : also24

    https://stackoverflow.com/questions/38971969/how-to-compare-audio-on-similarity-in-python

    这个回答~

  • 資深大佬 : 1462326016

    如果是同样的广告的话尝试下 ffmpeg 将一段时间内的视频分割成图片,然后对比图片,是不是能好一点?仅仅是提供个思路,未实验

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @1462326016 思路可以,但不完全行。
    因为部分油管下载我都是按最低质量下的,下载到的文件音视频分离,而我基本只听不看,就只保留了音频。。。。。。

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @also24 这个也没解决吧
    我现在在看另一个做声音指纹的库

    提取声音,对某一个时刻编码比较,这都不难。
    我现在有问题的点是时间。
    比如 0.5 秒一采集,但广告出现的时间是不对齐的,所以很可能比对失误。
    @1462326016
    这个情况在比对纯图片的时候,也有可能出现。
    如果是片头,而且剪的编辑负责,每次都对得很齐,那还好处理。片尾贴片的话很可能对不齐啊。

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @1462326016 粗暴点的解决方案,是把切片密度做得足够细,假设每秒 30 帧每帧都切,反正都是在本地跑,牺牲点内存换精确。

  • 資深大佬 : qwjhb

    语音转文字确认时间点可行吗

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @qwjhb
    一来是片段采集的问题,就是源视频如果分段全部 stt,那量有点太大。
    另外也有 stt 不准确的问题和背景音的干扰。

    然后有些片头贴片,就是一段很吵的音效,并没有语音。

  • 資深大佬 : billlee

    应该可以用匹配滤波器

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    感觉这个东西有点类似在一个画面上,找出目标图形,那个倒还算简单,有很多现成方案。
    但因为音频文件涉及时间,同时我对音频文件格式也完全不熟悉,没有什么思路,也搞不清它内部怎么转换的。
    还是需要这个领域的专家来提提建议。

    我觉得可以把题目转换为
    ==========================
    如何在一段音频中,锁定目标音频的起点。
    ==========================
    类似于 string.indexOf 的一个方法

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @billlee 看 append,我试了一下,但是失败了。
    不熟悉音频格式,排查起来有点艰难。

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @billlee 其实中途的思路,就是把频谱打出来,然后以图找图,在源视频里找到广告的部分。
    但因为直接拿到数组就用数组配了,然后没成。
    不知道都转成图,然后用图找图的方式会不会好点。

    但这个同样一段贴片广告,涉及到后期人员的操作,音量音调变速压缩率,以及视频平台各个时期的压缩设置,和种种不确定因素。感觉不会那么顺利。

  • 資深大佬 : billlee

    @JCZ2MkKb5S8ZX9pq #13 这样转频谱损失的信息太多了吧,如果音频只是经过剪辑,没有变调变速,在时域上直接用匹配滤波器应该是效果很好的。

    dsp.stackexchange.com/questions/24548/detecting-a-specific-pop-in-a-real-time-audio-signal

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @billlee 问题不转码,我不知道怎么把声音放到统一的时域下,这就回到了那个声音文件的记录方式的问题上了,我不知道怎么去匹配那个时间。

  • 資深大佬 : breaker911

    不如使用开源播放器 然后加入类似于网络剧一样的跳过片头功能 特征大概就找找音量大小和中间间隔或者特征帧匹配?

  • 資深大佬 : TimePPT

    你需要的是分时的音频指纹

  • 資深大佬 : lishunan246

    可以试试把两段音频当作一维信号处理,在傅立叶频域上计算互相关。
    根据互相关最大值判断是否存在广告,根据最大值位置判断时间点。

  • 資深大佬 : dizun

    没做过类似的,有个不成熟的思路 。
    假设视频架构 ( 广告-》正片)。
    广告和正片之间应该有一个通用且明显的部分,例如正片的标题。
    将视频转换成二进制,直接模糊搜索正片的标题,截取标题到结尾。

    不知道可行吗?

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @dizun 由于 MP4/AAC 压缩问题,估计不可行。

  • 資深大佬 : no1xsyzy

    首先,因为有编码肯定是在频域内处理才行
    听觉心理学?测算心理音量设阈值作启发
    频谱算 corelation ?

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @no1xsyzy 不是音量的问题 是内容匹配

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @JCZ2MkKb5S8ZX9pq 比如片头会有一段烦人音效,或者片尾推荐几分钟公众号。

  • 資深大佬 : no1xsyzy

    @JCZ2MkKb5S8ZX9pq
    > 无奈片头片尾贴片广告太多了,音量都暴大
    “音量” 是作为特征而非目标
    做成音量启发式,那样的话可以只搜十秒不到,那每秒 30 采样问题也不大。

    如果这样效果不好,就是频域内选个四五条线做 corelation,你甚至不需要专门采样比对

  • 主 資深大佬 : JCZ2MkKb5S8ZX9pq

    @no1xsyzy 可是音量无法作为特征,因为几百段里,也有贴片的音量正常的,或者节目中途又加了其它音效的。情况比较复杂,音量大只是出现在一部分片头上。

  • 資深大佬 : cshlxm

    一段音频用 vad 检测算法,分离出音频段,调用语音转文字接口,转一部分文字出来,分词,做文本相关性分析,把相关系数高的文字对应音频找出来即可

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具