commit 228a9e8b488bfbb8497fd62666368d5ae01dae49 Author: wes Date: Wed Mar 29 19:36:05 2017 -0400 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b3347a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +venv +*pyc diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e338038 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,16 @@ +appdirs==1.4.3 +asn1crypto==0.22.0 +cffi==1.10.0 +cryptography==1.8.1 +enum34==1.1.6 +Fabric==1.13.1 +idna==2.5 +ipaddress==1.0.18 +numpy==1.12.1 +packaging==16.8 +paramiko==2.1.2 +pyasn1==0.2.3 +pycparser==2.17 +pyparsing==2.2.0 +scipy==0.19.0 +six==1.10.0 diff --git a/slice.py b/slice.py new file mode 100755 index 0000000..d455cd3 --- /dev/null +++ b/slice.py @@ -0,0 +1,61 @@ +#! /usr/bin/env python2 + +import scipy.io.wavfile as sio +import numpy as np +from random import shuffle +from sys import argv +from fabric.api import * +from fabric.contrib.console import confirm +from fabric.contrib.project import rsync_project +import fabric.operations as op +from sys import argv + +def rms(ss): + return np.sqrt(np.abs(np.mean(np.square(ss)))) + +def findCeiling(ss, factor): + slice = len(ss) + while not (rms(ss[0:slice]) < 1.2): + slice = int(len(ss)/factor) + factor += 1 + return slice + +def convert(infile): + pcm = sio.read("/tmp/%s.to_silence.wav" % infile) + sample_rate, samples = pcm + + # length in minutes + length = (len(samples) / float(sample_rate)) / 60.0 + + # the first n samples to cut out + ceiling = findCeiling(samples, 2) + + # the total number of samples + total = float(len(pcm[1])) + + if length <= 8: + sio.write("/tmp/%s.silenced.wav" % infile, pcm[0], pcm[1][ceiling:]) + local("cp /tmp/\"%s.silenced.wav\" ./shortened/\"%s.wav\"" % (infile, infile)) + local("rm /tmp/\"%s.silenced.wav\"" % infile) + + local("rm /tmp/\"%s.to_silence.wav\"" % infile) + +def to_wav(infile): + local("ffmpeg -i \"%s\" /tmp/\"%s.to_silence.wav\"" % (infile, infile)) + +def silence(infile): + to_wav(infile) + convert(infile) + +def silence_all(): + local("mkdir -p ./shortened") + fileset = local("ls .", capture=True).split("\n") + shuffle(fileset) + for f in fileset: + if f.split(".")[-1] in ["ogg", "opus", "m4a", "mp3"]: + try: + silence(f) + except Exception: + pass + +silence_all()