Skip to content

Instantly share code, notes, and snippets.

@ginixsan
Forked from sotelo/remove_silence.py
Created December 20, 2023 07:08
Show Gist options
  • Save ginixsan/5331e9d343cd642e7fd0ea96162ccaa1 to your computer and use it in GitHub Desktop.
Save ginixsan/5331e9d343cd642e7fd0ea96162ccaa1 to your computer and use it in GitHub Desktop.
Remove silences
# From https://stackoverflow.com/questions/29547218/
# remove-silence-at-the-beginning-and-at-the-end-of-wave-files-with-pydub
from pydub import AudioSegment
def detect_leading_silence(sound, silence_threshold=-50.0, chunk_size=10):
'''
sound is a pydub.AudioSegment
silence_threshold in dB
chunk_size in ms
iterate over chunks until you find the first one with sound
'''
trim_ms = 0 # ms
while sound[trim_ms:trim_ms+chunk_size].dBFS < silence_threshold:
trim_ms += chunk_size
return trim_ms
if __name__ == '__main__':
import sys
sound = AudioSegment.from_file(sys.argv[1], format="wav")
start_trim = detect_leading_silence(sound)
end_trim = detect_leading_silence(sound.reverse())
duration = len(sound)
trimmed_sound = sound[start_trim:duration-end_trim]
trimmed_sound.export(sys.argv[1], format="wav")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment