forked from rajatkuls/lena-clean
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwrap-b.py
45 lines (32 loc) · 1.2 KB
/
wrap-b.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# given a silence classifier, use it to generate audacity files and evaluate performance.
# user can adjust thresholds of wrap-a using this as diagnostic
# system input - wavFile pathToModel outputFolder
import labelTools
import extractFeatures
import sys
import os
import numpy as np
import cPickle as pickle
from sklearn.ensemble import RandomForestClassifier
from sklearn.svm import SVC
import config_b
# Ensure that your classifier of choice is imported here
silDict = labelTools.silDict
stWin = extractFeatures.stWin
stStep = extractFeatures.stStep
inputWav = sys.argv[1]
try:
model = sys.argv[2] # model saved by wrap-a
outfileFolder = sys.argv[3]
except:
print 'System inputs not detected, using defaults'
model = 'models/a_classifier_all.p'
outfileFolder = 'models'
clf = pickle.load(open(model,'r'))
X_test = extractFeatures.getRawStVectorPerWav(inputWav,stWin,stStep)
X_test = X_test.T
y_sil_test = clf.predict(X_test)
medianame = extractFeatures.basename(inputWav)
labelTools.writeToStm(y_sil_test,silDict,medianame,outfileFolder+'/'+medianame+'.stm')
labelTools.writeToAudacity(y_sil_test,silDict,outfileFolder+'/'+medianame+'.txt')
os.system('cp '+inputWav+' '+outfileFolder+'/'+medianame+'.wav')