Changeset ee7b9da


Ignore:
Timestamp:
Feb 23, 2006, 3:28:35 AM (18 years ago)
Author:
Paul Brossier <piem@altern.org>
Branches:
feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master, pitchshift, sampler, timestretch, yinfft+
Children:
897b455
Parents:
6ae3a77
Message:

new bench-pitch
new bench-pitch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • python/test/bench/pitch/bench-pitch

    r6ae3a77 ree7b9da  
    66class benchpitch(bench):
    77       
     8        """ list of values to store per file """
     9        valuenames = ['mode']
     10        """ list of lists to store per file """
     11        valuelists = ['orig', 'mean', 'med']
     12        """ list of values to print per dir """
     13        printnames = [ 'mode']
     14
     15        """ per dir """
     16        formats = {'mode': "%12s" , 'thres': "%5.4s",
     17                'dist':  "%5.4s", 'prec': "%5.4s", 'recl':  "%5.4s",
     18                'Ttrue': "%5.4s", 'Tfp':   "%5.4s", 'Tfn':   "%5.4s",
     19                'Tm':    "%5.4s", 'Td':    "%5.4s",
     20                'aTtrue':"%5.4s", 'aTfp':  "%5.4s", 'aTfn':  "%5.4s",
     21                'aTm':   "%5.4s", 'aTd':   "%5.4s",
     22                'mean':  "%5.40s", 'smean': "%5.40s",
     23                'amean':  "%5.40s", 'samean': "%5.40s"}
     24
     25        def dir_eval(self):
     26                """ evaluate statistical data over the directory """
     27                v = self.v
     28
     29                v['mode']      = self.params.pitchmode
     30
    831        def file_exec(self,input,output):
    932                filetask = self.task(input,params=self.params)
    1033                computed_data = filetask.compute_all()
    11                 results = filetask.eval(computed_data)
    12                 self.results.append(results)
    13                 truth = filetask.gettruth()
     34                orig,mean,med = filetask.eval(computed_data)
     35               
     36                self.v['orig'].append(orig)
     37                self.v['mean'].append(mean)
     38                self.v['med'].append(med)
     39                #print results#, computed_data
    1440                #print input, results, results - float(input.split('.')[-2])
    15                 self.pretty_print((self.params.pitchmode, truth,
    16                         truth - results[0], results[0],
    17                         truth - results[1], results[1]))
    1841                       
    1942        def run_bench(self,modes=['schmitt']):
     43                from os.path import basename
     44                d = []
    2045                self.modes = modes
    21                 self.pretty_print(self.titles)
     46                self.pretty_titles()
    2247                for mode in self.modes:
    2348                        self.params.pitchmode = mode
    24                         self.dir_exec()
    25                         self.dir_eval()
    26                         self.dir_plot()
     49                        self.dir_eval_print()
     50                        self.plotpitchtessiture(d,
     51                                self.v['orig'],
     52                                self.v['med'],
     53                                plottitle=self.v['mode'],
     54                                plotmode='points')
     55                #d.append('beta = .25,orig(x) title \"-2 octave\"')
     56                d.append('beta = .50,orig(x) title \"-1 octave\"')
     57                d.append('beta = 1.0,orig(x) title \"original\"')
     58                d.append('beta = 2.0,orig(x) title \"+1 octave\"')
     59                title = basename(self.datadir)
     60                outplot = "_-_".join(('pitchtessiture',title))
     61                for ext in ('ps','png','svg',''):
     62                        self.plotplotpitchtessiture(d,
     63                                plottitle=title,
     64                                outplot=outplot,
     65                                extension=ext)
     66
     67        """
     68        Plot functions
     69        """
     70
     71        def plotpitchtessiture(self,d,lx,ly,plottitle="",plotmode='linespoints'):
     72                import Gnuplot, Gnuplot.funcutils
     73                d.append(Gnuplot.Data(lx, ly, with=plotmode, title="%s" % (plottitle) ))
     74
     75        def plotplotpitchtessiture(self,d,plottitle='',outplot=0,extension=''):
     76                from aubio.gnuplot import gnuplot_create
     77                g = gnuplot_create(outplot=outplot,extension=extension)
     78                g.title(plottitle)
     79                g('orig(x) = beta*x')
     80                g.xlabel('original pitch (Hz)')
     81                g.ylabel('detected pitch (Hz)')
     82                g('set log xy')
     83                g.plot(*d)
     84
    2785
    2886if __name__ == "__main__":
     
    3290        if len(sys.argv) > 2:
    3391                for each in sys.argv[3:-1]: print each
    34         modes = ['yin', 'schmitt', 'mcomb', 'fcomb']
     92        modes = ['schmitt', 'yin', 'mcomb', 'fcomb']
     93        #modes = ['fcomb']
    3594
    36         benchpitch = benchpitch(datapath)
    37         benchpitch.params = taskparams()
     95        params = taskparams()
     96        params.bufsize = 2048
     97        params.hopsize = params.bufsize/2
     98        benchpitch = benchpitch(datapath,params=params)
    3899        benchpitch.task = taskpitch
    39100
    40 
    41         benchpitch.titles  = [ 'mode', 'thres', 'avg', 'avgdist' ]
    42         benchpitch.formats = ["%12s" , "| %6s", "| %6s", "| %6s", "| %6s", "| %6s" ]
     101        #benchpitch.titles  = [ 'mode', 'thres', 'avg', 'avgdist' ]
     102        #benchpitch.formats = ["%12s" , "| %6s", "| %6s", "| %6s", "| %6s", "| %6s" ]
    43103        try:
    44104                benchpitch.run_bench(modes=modes)
Note: See TracChangeset for help on using the changeset viewer.