History

new bench-pitch new bench-pitch

Paul Brossier committed 20 years ago

Commit ee7b9da1 parent 6ae3a771 file · +76 −16Browse files

Showing the changes to python (1 of 1 file). Show all

Unified · Split

python/test/bench/pitch/bench-pitch+76−16
@@ -5,25 +5,83 @@ from aubio.tasks import * · 4 unmodified lines
55
66 class 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
2886 if __name__ == "__main__":
2987 import sys
@@ -31,15 +89,17 @@ if __name__ == "__main__": · 1 unmodified line
3189 else: print "error: a path is required"; sys.exit(1)
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)
45105 except KeyboardInterrupt:

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t