Browse Source

initial commit

master
wes 7 years ago
commit
228a9e8b48
  1. 2
      .gitignore
  2. 16
      requirements.txt
  3. 61
      slice.py

2
.gitignore

@ -0,0 +1,2 @@
venv
*pyc

16
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

61
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()
Loading…
Cancel
Save