예제 #1
0
파일: yaafe.py 프로젝트: sagnikm95/Yaafe
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.


import sys
from optparse import OptionParser

try:
    import yaafelib as yaafe
except ImportError, e:
    print 'ERROR: cannot load yaafe packages: ', e
    sys.exit()

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')

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
예제 #2
0
파일: yaafe.py 프로젝트: Yaafe/Yaafe

from __future__ import absolute_import, print_function

import sys
from optparse import OptionParser

try:
    import yaafelib as yaafe
except ImportError as e:
    print('ERROR: cannot load yaafe packages: ', e)
    sys.exit()

from yaafelib._compat import iteritems

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')

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
예제 #3
0
import csv
import sys
import numpy as np
from numpy import sin, linspace, pi
from pylab import plot, show, title, xlabel, ylabel, subplot, figure
from scipy import fft, arange
from copy import copy
from random import randint
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from scipy.io import wavfile
import random
import yaafelib as yaafe

yaafe.loadComponentLibrary("yaafe-io")

# old_settings = np.seterr(all='raise')


def getdata(directory, sessions):
    data = []
    offsets = []
    annotations = []
    files = ["gaccel.csv", "waccel.csv"]
    device = ["gaccel", "waccel"]
    print "Offsets"
    with open(directory + "/offsets.txt") as offsets_file:
        readfile = csv.reader(offsets_file, delimiter=" ")
        rowi = 0
        for row in readfile:
            offsets.append({})
예제 #4
0
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
    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

    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)
예제 #5
0
파일: yaafe.py 프로젝트: Guinto/Musicurious
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
    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
    
    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)
예제 #6
0
import numpy
from os import walk
import yaafelib as yaafe

from sklearn import neighbors
from sklearn.svm import SVC
from sklearn.svm import LinearSVC
from sklearn.svm import NuSVC
from sklearn import linear_model
from sklearn.linear_model import SGDClassifier
from sklearn import tree
from sklearn.neighbors.nearest_centroid import NearestCentroid

yaafe.loadComponentLibrary('yaafe-io')
fp = yaafe.FeaturePlan(sample_rate=8000)
fp.loadFeaturePlan('./featureplan')
engine = yaafe.Engine()
engine.load(fp.getDataFlow())
afp = yaafe.AudioFileProcessor()
afp.setOutputFormat('csv', './outputs', {
    'Metadata': 'false',
    'Precision': '2'
})

emotions = ['angry', 'happy', 'neutral', 'unhappy']
feats = ['eng', 'lpc', 'lsf', 'ldd', 'mfc']


def getProperties(audiofile):
    props = ""
    for feat in feats:
import numpy
from os import walk
import yaafelib as yaafe

from sklearn import neighbors
from sklearn.svm import SVC
from sklearn.svm import LinearSVC
from sklearn.svm import NuSVC
from sklearn import linear_model
from sklearn.linear_model import SGDClassifier
from sklearn import tree
from sklearn.neighbors.nearest_centroid import NearestCentroid

yaafe.loadComponentLibrary('yaafe-io')
fp = yaafe.FeaturePlan(sample_rate=8000)
fp.loadFeaturePlan('./featureplan')
engine = yaafe.Engine()
engine.load(fp.getDataFlow())
afp = yaafe.AudioFileProcessor()
afp.setOutputFormat('csv', './outputs', {'Metadata': 'false', 'Precision': '2'})

emotions = ['angry', 'happy', 'neutral', 'unhappy']
feats = ['eng', 'lpc', 'lsf', 'ldd', 'mfc']

def getProperties(audiofile):
  props = ""
  for feat in feats:
    lines = []
    outfile = "./outputs" + audiofile[1:] + "." + feat + ".csv"
    with open(outfile, 'r') as f:
      for line in f.readlines():