def main(): if len(argv) != 2: print ("Need weights file.") return weights_file = path.join(CLASSIFIERS_DIR,argv[1]) fcall = "SMILExtractPA -C %s -sampleRate 44100 -channels 1 -O %s -noconsoleoutput"\ %(path.join(CONF_BASE,CONF_RECORD_FILE),WAVE_FILE) fcall = fcall.split(' ') #record audio print "\n\nPress any key to start recording...end recording with CTRL-C in new window." raw_input() rec_proc = sp.Popen(fcall,creationflags=(sp.CREATE_NEW_CONSOLE)) rec_proc.wait() #get the features X = np.array(parse_features(WAVE_FILE,SMILE_CALL,CONF_FILE)) X = np.reshape(X,(1,X.shape[0])) #run the classifier N = NN() N.load(weights_file) prediction = N.predict(X)[0] #get language and print result language = LANGS[prediction] print "That sounds like %s to me." % language
def main(): #set up argument parsers parser = argparse.ArgumentParser("Extract audio features from directory of files using SMILE.") parser.add_argument('directory',metavar='DIRECTORY',type=str,help='directory to parse, relative to audio folder.') parser.add_argument('-L',metavar="LANGUAGE",type=str,choices=LANGS,required=True, help='one of ' + str(LANGS) + " add languages in Detector/configuration.py") parser.add_argument('-o',metavar="OUTFILE",type=str,required=True,\ help ='location of output file relative to features folder, appends file if exists else creates it.') parser.add_argument('-c',metavar="FEATURE CONFIGURATION FILE",type=str,required=False,default=CONF_FILE,\ help="configuration file to use defaults to CONF_FILE.") parser.add_argument('--CALL',metavar="SMILE CALL",type=str,required=False,default=SMILE_CALL,\ help="call to SMILExtract defaults to SMILE_CALL") args = parser.parse_args() directory = path.join(AUDIO_DIR,args.directory) lang = args.L label = LANGS.index(lang) outfilename = path.join(FEATURES_DIR,args.o) configfile = args.c smile_call = args.CALL try: data = loadmat(outfilename) X = data['X'].tolist() y = [x[0] for x in data['y'].tolist()] except IOError: X = [] y = [] for fname in listdir(directory): features = parse_features(path.join(directory, fname),smile_call,configfile) X.append(features) y.append(label) nLabels = len(LANGS) results = {X_KEY : np.array(X), Y_KEY :y, NLABELS_KEY : nLabels, FEATURE_SET_KEY : configfile, LANGS_KEY : '-'.join(LANGS)} savemat(outfilename,results)