# aggregate sound from mfcc or fft similarity of chunks import numpy as np import scipy.io.wavfile from features import mfcc from features import logfbank from features import base import copy import platform; if int(platform.python_version_tuple()[0])>2: from tkinter import * from tkinter.filedialog import * from tkinter.messagebox import * else: from Tkinter import * from tkFileDialog import * from tkMessageBox import * source_dir = "../sound/source/" render_dir = "../sound/render/" version = "0.0.1" def msg(msg): print(msg) def clear_msg(): pass def fadeinout(s,slength,elength): s = copy.deepcopy(s) for i in range(0,slength): m = float(i)/slength; s[i]*=m for i in range(0,elength): m = float(i)/elength; s[(len(s)-1)-i]*=m return s def normalise(s): m = 0 p = 999999999999999999 for i in range(0,len(s)): if ms[i]: p=s[i] b = max(m,-p) if b>0: s/=float(b/10000.0) return s def chop(wav,size,overlap,rand): ret = [] pos = 0 seg = [] samples = wav[1] while (pos+size", self.on_overlap) self.overlap_entry.delete(0, END) self.overlap_entry.insert(0, "0.75") self.overlap=0.75 rf = Frame(f) rf.grid(row=1, column=4) Label(rf, text="window size").grid(row=0,column=0) self.window_entry = Entry(rf, width=5) self.window_entry.grid(row=1, column=0) self.window_entry.bind("", self.on_window_size) self.window_entry.delete(0, END) self.window_entry.insert(0, "3000") self.window_size=3000 self.debug = Text(self.root, font = "Helvetica 24 bold", height=10, width=60) self.debug.pack() self.debug.insert(END, "ready...\n") #Label(lf, text="Branch length").grid(row=0,column=0) #self.length_scale = Scale(lf, from_=0, to=100, orient=HORIZONTAL, command=self.on_length) #self.length_scale.grid(row=1, column=0) #self.length_scale.set(30) #t.grid_rowconfigure(1,weight=0) # start event loop def msg(self,msg): self.debug.insert(0.0, msg+"\n") self.root.update() def clear_msg(self): self.debug.delete(0.0, END) self.root.update() def load_target(self): filename = askopenfilename(title = "load target wav") if filename!="": self.sponge.set_target(filename) def load_source(self): filename = askopenfilename(title = "load source wav into brain") if filename!="": self.sponge.add_source(filename) def on_window_size(self,event): try: self.window_size = float(self.window_entry.get()) except: pass def on_overlap(self,event): try: self.overlap = float(self.overlap_entry.get()) except: pass def run(self): self.msg("preparing: windowsize: "+str(self.window_size)) self.msg("overlap: "+str(self.overlap)) self.sponge.prepare(int(self.window_size),int(self.window_size*self.overlap),self.mfcc_var.get()==1) msg("processing...") self.sponge.process("brain_out.wav") msg("done, saved in brain_out.wav") def mfcc(self): pass w = win() msg = w.msg clear_msg = w.clear_msg try: w.root.mainloop() except Exception,e: msg(e)