def listFeatures(): features = [ feat.__name__ for feat in yaafe.AudioFeatureFactory.get_all_features() if not feat.TRANSFORM ] transforms = [ feat.__name__ for feat in yaafe.AudioFeatureFactory.get_all_features() if feat.TRANSFORM ] if len(features) == 0: print( 'No features available ! Please check that YAAFE_PATH env var is set correctly.' ) return features.sort() transforms.sort() list_features = ['Available features:'] list_features.extend([' - ' + f for f in features]) list_features.append('Available feature transforms:') list_features.extend([' - ' + f for f in transforms]) list_features.append('Available Output formats:') list_features.extend( [' - ' + f.decode('utf-8') for f in yaafe.getOutputFormatList()]) list_features_str = '\n'.join(list_features) print(list_features_str) return list_features_str
def listFeatures(): features = [feat.__name__ for feat in yaafe.AudioFeatureFactory.get_all_features() if not feat.TRANSFORM] transforms = [feat.__name__ for feat in yaafe.AudioFeatureFactory.get_all_features() if feat.TRANSFORM] if len(features)==0: print 'No features available ! Please check that YAAFE_PATH env var is set correctly.' return features.sort() transforms.sort() print 'Available features:' for f in features: print ' -', f print 'Available feature transforms:' for f in transforms: print ' -', f print 'Available Output formats:' for f in yaafe.getOutputFormatList(): print ' -', f
def listFeatures(): features = [feat.__name__ for feat in yaafe.AudioFeatureFactory.get_all_features() if not feat.TRANSFORM] transforms = [feat.__name__ for feat in yaafe.AudioFeatureFactory.get_all_features() if feat.TRANSFORM] if len(features) == 0: print('No features available ! Please check that YAAFE_PATH env var is set correctly.') return features.sort() transforms.sort() list_features = ['Available features:'] list_features.extend([' - ' + f for f in features]) list_features.append('Available feature transforms:') list_features.extend([' - ' + f for f in transforms]) list_features.append('Available Output formats:') list_features.extend([' - ' + f.decode('utf-8') for f in yaafe.getOutputFormatList()]) list_features_str = '\n'.join(list_features) print(list_features_str) return list_features_str
def listFeatures(): features = [ feat.__name__ for feat in yaafe.AudioFeatureFactory.get_all_features() if not feat.TRANSFORM ] transforms = [ feat.__name__ for feat in yaafe.AudioFeatureFactory.get_all_features() if feat.TRANSFORM ] if len(features) == 0: print 'No features available ! Please check that YAAFE_PATH env var is set correctly.' return features.sort() transforms.sort() print 'Available features:' for f in features: print ' -', f print 'Available feature transforms:' for f in transforms: print ' -', f print 'Available Output formats:' for f in yaafe.getOutputFormatList(): print ' -', f
def main(): parser = OptionParser(version='yaafe.py, Yaafe v%s' % yaafe.getYaafeVersion()) parser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help='display more output') parser.add_option('-l', '--list', dest='listFeatures', action='store_true', default=False, help='list all available features and output formats') parser.add_option('-d', '--describe', dest='describe', default=None, help='describe a feature or an output format') parser.add_option('-f', '--feature', action='append', dest='feature', metavar='FEATUREDEFINITION', help='feature to extract') parser.add_option('-c', '--config-file', dest='configFile', default=None, help='feature extraction plan') parser.add_option('-r', '--rate', dest='sample_rate', type='int', default=None, help='working samplerate in Hz.') parser.add_option('', '--resample', dest='resample', action='store_true', default=False, help='Resample input signal to the analysis sample rate') parser.add_option('-n', '--normalize', dest='normalize', action='store_true', default=False, help='normalize input signal by removing mean and scale maximum absolute value to 0.98 (or other value given with --normalize-max)') parser.add_option('', '--normalize-max', dest='normalize_max', type='float', default=0.98, help='Normalize input signal so that maximum absolute value reached given value (see -n, --normalize)') parser.add_option('-i', '--input', dest='input_list', default=None, help='text file, each line is an audio file to process') parser.add_option('-b', '--base-dir', dest='out_dir', default='', help='output directory base') parser.add_option('-o', '--output-format', dest='format', default='csv', choices=output_format_choices, help='Features output format: %s' % '|'.join(output_format_choices)) parser.add_option('-p', '--output-params', dest='formatparams', action='append', default=[], metavar='key=value', help='add an output format parameter (can be used multiple times, use -l options to list output formats and parameters)') parser.add_option('', '--dump-dataflow', dest='dumpDataflow', default='', metavar='FILE', help='output dataflow plan (suitable for process with yaafe-engine)') parser.add_option('', '--dump-graph', dest='dumpGraph', default='', metavar='FILE', help="output dataflow in dot format (suitable for display with graphviz") parser.add_option('-s', '--data-block-size', dest='buffer_size', type='int', default=None, help='Prefered size for data blocks.') parser.add_option('', '--show', dest='showFeatures', default=None, help='Show all features in a H5 file') (options, audiofiles) = parser.parse_args() if options.listFeatures: listFeatures() return if options.describe: if options.describe in yaafe.getOutputFormatList(): describeOutputFormat(options.describe) else: describeFeature(options.describe) return if options.showFeatures: showFeatures(options.showFeatures) return if not options.sample_rate: print("ERROR: please specify sample rate !") return if options.buffer_size: yaafe.setPreferedDataBlockSize(options.buffer_size) if options.verbose: yaafe.setVerbose(True) # initialize feature plan fp = yaafe.FeaturePlan(sample_rate=options.sample_rate, normalize=(options.normalize_max if options.normalize else None), resample=options.resample) if options.configFile: if not fp.loadFeaturePlan(options.configFile): return elif options.feature: for feat in options.feature: if not fp.addFeature(feat): return else: print("ERROR: please specify features using either a config file or -f [feature]") return if options.dumpDataflow: fp.getDataFlow().save(options.dumpDataflow) if options.dumpGraph: fp.getDataFlow().save(options.dumpGraph) # read audio file list if options.input_list: fin = open(options.input_list, 'r') for line in fin: audiofiles.append(line.strip()) fin.close() if audiofiles: # initialize engine engine = yaafe.Engine() if not engine.load(fp.getDataFlow()): return # initialize file processor afp = yaafe.AudioFileProcessor() oparams = dict() for pstr in options.formatparams: pstrdata = pstr.split('=') if len(pstrdata) != 2: print('ERROR: invalid parameter syntax in "%s" (should be "key=value")' % pstr) return oparams[pstrdata[0]] = pstrdata[1] afp.setOutputFormat(options.format, options.out_dir, oparams) # process audio files for audiofile in audiofiles: afp.processFile(engine, audiofile)
def main(): parser = OptionParser(version='yaafe.py, Yaafe v%s' % yaafe.getYaafeVersion()) parser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help='display more output') parser.add_option('-l', '--list', dest='listFeatures', action='store_true', default=False, help='list all available features and output formats') parser.add_option('-d', '--describe', dest='describe', default=None, help='describe a feature or an output format') parser.add_option('-f', '--feature', action='append', dest='feature', metavar='FEATUREDEFINITION', help='feature to extract') parser.add_option('-c', '--config-file', dest='configFile', default=None, help='feature extraction plan') parser.add_option('-r', '--rate', dest='sample_rate', type='int', default=None, help='working samplerate in Hz.') parser.add_option('', '--resample', dest='resample', action='store_true', default=False, help='Resample input signal to the analysis sample rate') parser.add_option('-n', '--normalize', dest='normalize', action='store_true', default=False, help='normalize input signal by removing mean and scale maximum absolute value to 0.98 (or other value given with --normalize-max)') parser.add_option('', '--normalize-max', dest='normalize_max', type='float', default=0.98, help='Normalize input signal so that maximum absolute value reached given value (see -n, --normalize)') parser.add_option('-i', '--input', dest='input_list', default=None, help='text file, each line is an audio file to process') parser.add_option('-b', '--base-dir', dest='out_dir', default='', help='output directory base') parser.add_option('-o', '--output-format', dest='format', default='csv', choices=output_format_choices, help='Features output format: %s' % '|'.join(output_format_choices)) parser.add_option('-p', '--output-params', dest='formatparams', action='append', default=[], metavar='key=value', help='add an output format parameter (can be used multiple times, use -l options to list output formats and parameters)') parser.add_option('', '--dump-dataflow', dest='dumpDataflow', default='', metavar='FILE', help='output dataflow plan (suitable for process with yaafe-engine)') parser.add_option('', '--dump-graph', dest='dumpGraph', default='', metavar='FILE', help="output dataflow in dot format (suitable for display with graphviz") parser.add_option('-s', '--data-block-size', dest='buffer_size', type='int', default=None, help='Prefered size for data blocks.') parser.add_option('', '--show', dest='showFeatures', default=None, help='Show all features in a H5 file') (options, audiofiles) = parser.parse_args() if options.listFeatures: listFeatures() return if options.describe: if options.describe in yaafe.getOutputFormatList(): describeOutputFormat(options.describe) else: describeFeature(options.describe) return if options.showFeatures: showFeatures(options.showFeatures) return if not options.sample_rate: print "ERROR: please specify sample rate !" return if options.buffer_size: yaafe.setPreferedDataBlockSize(options.buffer_size) if options.verbose: yaafe.setVerbose(True) # initialize feature plan fp = yaafe.FeaturePlan(sample_rate=options.sample_rate, normalize=(options.normalize_max if options.normalize else None), resample=options.resample) if options.configFile: if not fp.loadFeaturePlan(options.configFile): return elif options.feature: for feat in options.feature: if not fp.addFeature(feat): return else: print "ERROR: please specify features using either a config file or -f [feature]" return if options.dumpDataflow: fp.getDataFlow().save(options.dumpDataflow) if options.dumpGraph: fp.getDataFlow().save(options.dumpGraph) # read audio file list if options.input_list: fin = open(options.input_list, 'r') for line in fin: audiofiles.append(line.strip()) fin.close() if audiofiles: # initialize engine engine = yaafe.Engine() if not engine.load(fp.getDataFlow()): return # initialize file processor afp = yaafe.AudioFileProcessor() oparams = dict() for pstr in options.formatparams: pstrdata = pstr.split('=') if len(pstrdata) != 2: print 'ERROR: invalid parameter syntax in "%s" (should be "key=value")' % pstr return oparams[pstrdata[0]] = pstrdata[1] afp.setOutputFormat(options.format, options.out_dir, oparams) # process audio files for audiofile in audiofiles: afp.processFile(engine, audiofile)
def main(): if (yaafe.loadComponentLibrary('yaafe-io')!=0): print 'WARNING: cannot load yaafe-io component library !' output_format_choices = ['csv'] if yaafe.isComponentAvailable('H5DatasetWriter'): output_format_choices.append('h5') parser = OptionParser(version='yaafe.py, Yaafe v%s'%yaafe.getYaafeVersion()) parser.add_option('-v','--verbose',dest='verbose',action='store_true',default=False, help='display more output') parser.add_option('-l','--list',dest='listFeatures',action='store_true',default=False, help='list all available features and output formats') parser.add_option('-d','--describe',dest='describe',default=None, help='describe a feature or an output format') parser.add_option('-f','--feature',action='append',dest='feature', metavar='FEATUREDEFINITION', help='feature to extract') parser.add_option('-c','--config-file',dest='configFile',default=None, help='feature extraction plan') parser.add_option('-r','--rate',dest='sample_rate',type='int', default=None, help='working samplerate in Hz. If not set, use input file sample rate. ') parser.add_option('','--resample',dest='resample',action='store_true',default=False, help='Resample input signal to the analysis sample rate') parser.add_option('-n','--normalize',dest='normalize',action='store_true',default=False, help='normalize input signal by removing mean and scale maximum absolute value to 0.98 (or other value given with --normalize-max)'); parser.add_option('','--normalize-max',dest='normalize_max',type='float',default=0.98, help='Normalize input signal so that maximum absolute value reached given value (see -n, --normalize)') parser.add_option('-i','--input',dest='input_list',default=None, help='text file, each line is an audio file to process') parser.add_option('-b','--base-dir',dest='out_dir',default='', help='output directory base') parser.add_option('-o','--output-format',dest='format',default='csv', choices=output_format_choices, help='Features output format: %s'%'|'.join(output_format_choices)) parser.add_option('-p','--output-params',dest='formatparams', action='append', default=[], metavar='key=value', help='add an output format parameter (can be used multiple times, use -l options to list output formats and parameters)') parser.add_option('','--dump-dataflow',dest='dumpDataflow',default='', metavar='FILE', help='output dataflow plan (suitable for process with yaafe-engine)') parser.add_option('','--dump-graph',dest='dumpGraph',default='', metavar='FILE', help="output dataflow in dot format (suitable for display with graphviz") parser.add_option('-s','--data-block-size',dest='buffer_size',type='int',default=None, help='Prefered size for data blocks.') parser.add_option('','--show',dest='showFeatures',default=None, help='Show all features in a H5 file') (options,audiofiles) = parser.parse_args() if options.listFeatures: listFeatures() return if options.describe: if options.describe in yaafe.getOutputFormatList(): describeOutputFormat(options.describe) else: describeFeature(options.describe) return if options.showFeatures: showFeatures(options.showFeatures) return if not options.sample_rate: print "ERROR: please specify sample rate !" return 1 if options.buffer_size: yaafe.setPreferedDataBlockSize(options.buffer_size) if options.verbose: yaafe.setVerbose(True) # initialize feature plan fp = yaafe.FeaturePlan(sample_rate=options.sample_rate, normalize=(options.normalize_max if options.normalize else None), resample=options.resample) if options.configFile: if not fp.loadFeaturePlan(options.configFile): return elif options.feature: for feat in options.feature: if not fp.addFeature(feat): return 1 if options.dumpDataflow: fp.getDataFlow().save(options.dumpDataflow) if options.dumpGraph: fp.getDataFlow().save(options.dumpGraph) # read audio file list if options.input_list: fin = open(options.input_list,'r') for line in fin: audiofiles.append(line.strip()) fin.close() if audiofiles: # initialize engine engine = yaafe.Engine() if not engine.load(fp.getDataFlow()): return 1 # initialize file processor afp = yaafe.AudioFileProcessor() oparams = dict() for pstr in options.formatparams: pstrdata = pstr.split('=') if len(pstrdata)!=2: print 'ERROR: invalid parameter syntax in "%s" (should be "key=value")'%pstr return 1 oparams[pstrdata[0]] = pstrdata[1] ### Adaptions for CBA # afp.setOutputFormat(options.format,options.out_dir,oparams) # don't set output format # process audio files for audiofile in audiofiles: if afp.processFile(engine,audiofile) != 0: return 1 feats=engine.readAllOutputs() # output values directly to shell import numpy as np # import numpy for next command np.set_printoptions(threshold='nan') # disable cropping of large arrays import json print json.dumps(feats,cls=NumpyAwareJSONEncoder)