分享一个 github 上面的神器,真的是神器,不是夸张的。而且搜了一下,基本上是属于世界上没有同类开发的独创软件。感兴趣有能力的网友可以继续跟进开发。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oosjs
V2EX    分享发现

分享一个 github 上面的神器,真的是神器,不是夸张的。而且搜了一下,基本上是属于世界上没有同类开发的独创软件。感兴趣有能力的网友可以继续跟进开发。

  •  
  •   oosjs 2020-03-12 10:40:31 +08:00 via iPhone 5793 次点击
    这是一个创建于 2044 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先说明,这个不是我自己的,只是来分享一下。感觉以后有声书的审核力度持续下去,会变得更加有用。

    软件叫 MP3CutAd

    自动去掉 MP3 有声读物里面反复出现的片头、片尾、广告。

    链接(把“点”改一下)
    github 点 com/licstar/MP3CutAd

    现在由于版权或者广电总局审核等原因,一些好的有声书被下架。搞得不少用户重新回到自己下载 mp3 有声书进行收听。类似有的歌曲各大 app 被下架,想听就得自己下 mp3。

    但是 mp3 有声书里面有个问题就是有一些广告,这个软件的作用就是找出 mp3 里面的广告片段之后进行删除。

    用了一下,非常好用,不过原作者已经很多年没有更新了。鉴于本就是 github 上面的开源,不知道有没有感兴趣有能力的作者继续开发。


    MP3CutAd

    自动去掉 MP3 有声读物里面反复出现的片头、片尾、广告。

    使用方法

    下载安装(把“点”改一下 pan 点 baidu 点 com/s/1pJ3VmVx ),或者:

    下载代码,用 VS 打开,会自动安装一些依赖。
    下载 ffmpeg。复制里面的 ffmpeg.exe 和 ffplay.exe 到本项目的 ffmpeg 目录下。
    运行。
    原理

    找到重复出现的广告,然后去掉。

    具体步骤如下:

    使用 ffmpeg 把 MP3 文件转成 wav 格式。(平均 3~5 秒一个文件)
    对 wav 文件做 FFT。(大约 2.5 秒一个文件)
    对 FFT 的结果做 LSH。(大约 2.5 秒一个文件)
    两两对比,找到相似的片段。(大约 0.35 秒对比一组)
    运行时间根据一套有 50 个文件的有声读物实测得到,每个文件包含 20 分钟的录音,测试 CPU 为 i5。 总时长为:450 + 2.550 + 2.5*50 + (1+2+...+49)*0.35 = 15 分钟。

    TODO

    考虑直接对 MP3 做 fft,或许能快点。
    目前是两两对比,找重复部分。考虑修改算法,归纳多处出现的广告,优化边界的识别。
    FFT+cos 距离这种土办法是不是有高大上的替代方法?
    边界判断是不是有高大上的替代方法?
    新生成的 MP3 文件,加上原文件的标题、艺术家、专辑等信息。
    没发现广告的文件,直接复制原文件过去。
    各种重构,各种把参数提到一个地方。
    hljjhb
        1
    hljjhb  
       2020-03-12 10:56:13 +08:00   6
    贴吧?
    oosjs
        2
    oosjs  
    OP
       2020-03-12 10:58:20 +08:00 via iPhone
    @hljjhb 你这种莫名其妙的回复以后就不要回了。
    c00WKmdje2wZLrSI
        3
    c00WKmdje2wZLrSI  
       2020-03-12 11:03:37 +08:00
    要是可以去掉视频的片头片尾就好了,比如澳门线上......
    oosjs
        4
    oosjs  
    OP
       2020-03-12 11:06:08 +08:00 via iPhone
    @c00WKmdje2wZLrSI 他这个是音频啊。视频就靠有没有人继续开发,哈哈。要是好几集都是同样的广告,这个软件是可以对音频进行处理的。
    oosjs
        5
    oosjs  
    OP
       2020-03-12 11:07:01 +08:00 via iPhone
    @c00WKmdje2wZLrSI
    通过音频处理找到广告的时间段,再对视频按时间段切割,就可以了哈哈哈
    lloovve
        6
    lloovv  
       2020-03-12 11:12:37 +08:00 via iPhone
    Mp3 直接 FFT,FFT 要对原始数据做处理才行,直接对 mp3 做没什么意义吧,毕竟不是人声
    sakujo
        7
    sakujo  
       2020-03-12 11:40:54 +08:00
    确实有这个需求
    Kelan
        8
    Kelan  
       2020-03-12 11:42:19 +08:00
    切头去尾有什么技术含量,有些声音广告甚至是叠加在原声上的,得能把广告滤掉才行。
    PbCopy111
        9
    PbCopy111  
       2020-03-12 11:49:14 +08:00
    这里可以直接贴 github 的链接吧。。。毕竟是程序员论坛。。。
    limbo0
        10
    limbo0  
       2020-03-12 12:43:28 +08:00 via Android   2
    标题党
    Nadao
        11
    Nadao  
       2020-03-12 14:07:18 +08:00
    我怎么记得有些播放器带这个功能?
    learningman
        12
    learningman  
       2020-03-12 15:45:38 +08:00
    这个标题实在是太奇怪了
    also24
        13
    also24  
       2020-03-12 15:48:46 +08:00
    召唤一下之前在 /t/638549 里求方案的 @JCZ2MkKb5S8ZX9pq
    Citrullus
        14
    Citrullus  
       2020-03-12 16:00:40 +08:00
    @c00WKmdje2wZLrSI 有画面感了
    Meifa
        15
    Meifa  
       2020-03-12 16:10:13 +08:00 via Android
    我想把视频的明星推荐广告去掉
    JCZ2MkKb5S8ZX9pq
        16
    JCZ2MkKb5S8ZX9pq  
       2020-03-12 19:12:26 +08:00
    @also24 谢谢,我会找时间去试一下。
    之前让小朋友帮我手动打了下时间点……

    最近在听厚大法考罗翔,有些 up 喜欢自己贴有声头尾是真的烦。
    loading
        17
    loading  
       2020-03-12 19:29:27 +08:00 via Android
    没查,算法应该可能就是把前面一样的数据全部剪掉。
    oosjs
        18
    oosjs  
    OP
       2020-03-14 07:31:45 +08:00 via iPhone
    @Kelan 别人原作者写了原理,你都看不懂,看来这个贴子真的不适合你
    oosjs
        19
    oosjs  
    OP
       2020-03-14 07:32:14 +08:00 via iPhone
    @PbCopy111
    真搞不懂,没有眼睛的你,干嘛上论坛
    oosjs
        20
    oosjs  
    OP
       2020-03-14 07:33:30 +08:00 via iPhone
    @Nadao 不用怀疑,这只是因为你妄想了。而且看不懂原理,也就看不懂其真正的功能
    oosjs
        21
    oosjs  
    OP
       2020-03-14 07:35:57 +08:00 via iPhone
    @loading 真搞不懂,别人写了原理写了源码。你不愿看就算了,可是为什么还要在这瞎猜呢。
    oosjs
        22
    oosjs  
    OP
       2020-03-14 07:37:52 +08:00 via iPhone
    @lloovve 感觉直接 mp3 做 fft 也行得通啊。wav 做 fft 和 mp3 做 fft 没有本质区别吧
    oosjs
        23
    oosjs  
    OP
       2020-03-14 07:40:09 +08:00 via iPhone
    @limbo0 标题党说的是标题和内容不相关。
    那你说说,我的标题怎么不想关了。标题一个三个意思,有和内容不相关的吗。
    oosjs
        24
    oosjs  
    OP
       2020-03-14 07:52:09 +08:00 via iPhone
    @learningman 有什么好奇怪的。标题三点意思。有和内容不相关的吗
    learningman
        25
    learningman  
       2020-03-14 11:31:59 +08:00 via Android
    @oosjs 标题应该简明扼要的概括内容,而不是使用大量含有情绪色彩的词汇。
    你上百度查:请问能告诉我如何做一道红烧肉吗?
    你看百度理你不
    oosjs
        26
    oosjs  
    OP
       2020-03-14 12:07:17 +08:00 via iPhone
    @learningman
    别人的标题应该怎样还要听你的垃圾规定?
    你还是继续活在你的世界里吧。
    虽然看不懂你举百度的例子有什么意义。但你的行动都基于百度理不理你,也是够了。
    Kelan
        27
    Kelan  
       2020-03-17 17:08:03 +08:00
    脾气这么大干嘛。放轻松一些。自己生气了还让别人也不舒服没什么意思。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     888 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 21:17 PVG 05:17 LAX 14:17 JFK 17:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86