-
-
Save ginixsan/5331e9d343cd642e7fd0ea96162ccaa1 to your computer and use it in GitHub Desktop.
Remove silences
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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