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

2020-03-12 10:40:31 +08:00
 oosjs
先说明,这个不是我自己的,只是来分享一下。感觉以后有声书的审核力度持续下去,会变得更加有用。

软件叫 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 文件,加上原文件的标题、艺术家、专辑等信息。
没发现广告的文件,直接复制原文件过去。
各种重构,各种把参数提到一个地方。
5240 次点击
所在节点    分享发现
27 条回复
oosjs
2020-03-14 07:35:57 +08:00
@loading 真搞不懂,别人写了原理写了源码。你不愿看就算了,可是为什么还要在这瞎猜呢。
oosjs
2020-03-14 07:37:52 +08:00
@lloovve 感觉直接 mp3 做 fft 也行得通啊。wav 做 fft 和 mp3 做 fft 没有本质区别吧
oosjs
2020-03-14 07:40:09 +08:00
@limbo0 标题党说的是标题和内容不相关。
那你说说,我的标题怎么不想关了。标题一个三个意思,有和内容不相关的吗。
oosjs
2020-03-14 07:52:09 +08:00
@learningman 有什么好奇怪的。标题三点意思。有和内容不相关的吗
learningman
2020-03-14 11:31:59 +08:00
@oosjs 标题应该简明扼要的概括内容,而不是使用大量含有情绪色彩的词汇。
你上百度查:请问能告诉我如何做一道红烧肉吗?
你看百度理你不
oosjs
2020-03-14 12:07:17 +08:00
@learningman
别人的标题应该怎样还要听你的垃圾规定?
你还是继续活在你的世界里吧。
虽然看不懂你举百度的例子有什么意义。但你的行动都基于百度理不理你,也是够了。
Kelan
2020-03-17 17:08:03 +08:00
脾气这么大干嘛。放轻松一些。自己生气了还让别人也不舒服没什么意思。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/652092

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX