首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过检测静音部分来分割mp3文件?

如何通过检测静音部分来分割mp3文件?
EN

Ask Ubuntu用户
提问于 2020-08-05 14:47:20
回答 4查看 17.2K关注 0票数 28

我有一个大的mp3文件,包括更多的歌曲。是否有任何方法通过检测无声的部分来分割文件?我更喜欢命令行工具(例如ffmpeg)。

试过:

youtube-dl -忽略错误-格式最佳音频-音频-音频格式mp3 -音频质量160 K-输出“%(标题)S.%(Ext)S”-是的-播放列表

EN

回答 4

Ask Ubuntu用户

发布于 2020-08-05 15:02:07

您可能没有现成的解决方案,但需要自己创建脚本。比杜布就是为此创建的(它在内部使用芬伯或libav ),并且它有一个名为split_on_silence()的函数,其中包含一些设置,比如keep_silence=100

一些来自堆栈溢出的引用有示例:3772541645526996,以及比杜布的创建者。

从第一个链接,有趣的部分:

代码语言:javascript
运行
复制
# Load your audio.
song = AudioSegment.from_mp3("your_audio.mp3")

chunks = split_on_silence (
   # Use the loaded audio. 
   song, 
   # Specify that a silent chunk must be at least 2 seconds or 2000 ms long.
   min_silence_len = 2000,
   # Consider a chunk silent if it's quieter than -16 dBFS.
   # (You may want to adjust this parameter.)
   silence_thresh = -16
)
票数 17
EN

Ask Ubuntu用户

发布于 2020-08-05 19:21:13

mp3splt是一个用于拆分mp3s的命令,我相信mp3splt有一个静默检测器(以及其他检测方法)。不需要重新编码。安装:

代码语言:javascript
运行
复制
sudo apt install mp3splt

使用沉默模式(-s):

代码语言:javascript
运行
复制
mp3splt -s your.mp3

Mp3splt将尝试使用静默检测自动检测分割点,并将使用默认参数找到的所有音轨分割。

代码语言:javascript
运行
复制
mp3splt -s -p th=-50,nt=10 your.mp3

传递所需的参数,分裂10个轨道(或更少,如果太多)与最可能的沉默点在一个阈值为-50 dB。

票数 14
EN

Ask Ubuntu用户

发布于 2020-08-05 15:16:25

通过播放你想要切割的剪辑来获得时间,我通常会做长视频剪辑,我想修剪或剪掉剪辑的一部分。可以使用视频编辑软件对其进行优化,但这些软件通常也会在导出时重新压缩文件。这降低了视频的质量,也需要很长时间。一种解决方案是在ubuntu中执行零损耗切割,在ubuntu中有一种使用FFmpeg的方法:

例子:

代码语言:javascript
运行
复制
ffmpeg -i Myclip.mp4 -ss 00:15:10 -to 00:09:10 -c:v copy -c:a copy output.mp4

上面的剪辑将从0h10min10削减到0h09min,这只需要几秒钟就能完成。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1264779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档