pydub
自从第一次提出这个问题以来可能已经更新,但这是我用来修剪尾随和前导沉默的代码:
from pydub import AudioSegment
from pydub.silence import detect_leading_silence
trim_leading_silence: AudioSegment = lambda x: x[detect_leading_silence(x) :]
trim_trailing_silence: AudioSegment = lambda x: trim_leading_silence(x.reverse()).reverse()
strip_silence: AudioSegment = lambda x: trim_trailing_silence(trim_leading_silence(x))
sound = AudioSegment.from_file(file_path_here)
stripped = strip_silence(sound)
detect_leading_silence
frompydub.silence
为您提供索引,您可以使用它来分割加载的AudioSegment
. 基本上,您可以反转AudioSegment
、修剪它,然后再次反转它以修剪尾随的静音。去除两端的沉默无异于修剪前导和尾随的沉默。
请注意,如果加载的内容是无声的或在修剪操作后变得无声,则strip_silence
应该引发一个。IndexError
AudioSegment
我上次查看时,默认块大小为 10 毫秒,默认静音阈值为 -50 dBFS。
我的版本pydub
是 0.25.1,我的版本ffmpeg
是 4.3.1。