class_docstr: Yaafe feature extraction library interface analyzer
  
  Parameters
  ----------
  feature_plan : list, optional
      Yaafe feature plan as a list of feature definition,
      default to ['mfcc: MFCC blockSize=512 stepSize=256']
  input_samplerate : int, optional
      The samplerate, default to 32000.
  
  Examples
  --------
  >>> import timeside
  >>> from timeside.core.tools.test_samples import samples
  >>> from timeside.core import get_processor
  >>> source = samples['C4_scale.wav']
  >>> FileDecoder = get_processor('file_decoder')
  >>> YaafeAnalyzer = get_processor('yaafe')
  >>> # feature extraction defition
  >>> feature_plan = ['mfcc: MFCC CepsIgnoreFirstCoeff=0 blockSize=1024 stepSize=256',
  ...                 'mfccd1: MFCC CepsIgnoreFirstCoeff=0 blockSize=1024 stepSize=256 > Derivate DOrder=1',
  ...                 'mfccd2: MFCC CepsIgnoreFirstCoeff=0 blockSize=1024 stepSize=256 > Derivate DOrder=2',
  ...                 'zcr: ZCR blockSize=1024 stepSize=256']
  >>> decoder = FileDecoder(uri=source)
  >>> yaafe = YaafeAnalyzer(feature_plan=feature_plan,
  ...                       input_samplerate=16000)
  >>> pipe = (decoder | yaafe)
  >>> pipe.run()
  >>> print(yaafe.results.keys())
  ['yaafe.mfccd1', 'yaafe.mfcc', 'yaafe.mfccd2', 'yaafe.zcr']
  >>> # Access to one of the result:
  >>> res_mfcc = yaafe.results['yaafe.mfcc']
  >>> print(type(res_mfcc.data_object))
  <class 'timeside.core.analyzer.FrameValueObject'>
  >>> res_mfcc.data  # doctest: +ELLIPSIS
  array([[...]])
class_docstr_tok: ["Yaafe","feature","extraction","library","interface","analyzer","Parameters","--","--","--","--","--","feature_plan",":","list",",","optional","Yaafe","feature","plan","as","a","list","of","feature","definition",",","default","to","[","'mfcc",":","MFCC","blockSize=512","stepSize=256","'","]","input_samplerate",":","int",",","optional","The","samplerate",",","default","to","32000",".","Examples","--","--","--","--",">",">",">","import","timeside",">",">",">","from","timeside.core.tools.test_samples","import","samples",">",">",">","from","timeside.core","import","get_processor",">",">",">","source","=","samples","[","'C4_scale.wav","'","]",">",">",">","FileDecoder","=","get_processor","(","'file_decoder","'",")",">",">",">","YaafeAnalyzer","=","get_processor","(","'yaafe","'",")",">",">",">","#","feature","extraction","defition",">",">",">","feature_plan","=","[","'mfcc",":","MFCC","CepsIgnoreFirstCoeff=0","blockSize=1024","stepSize=256","'",",","...","'mfccd1",":","MFCC","CepsIgnoreFirstCoeff=0","blockSize=1024","stepSize=256",">","Derivate","DOrder=1","'",",","...","'mfccd2",":","MFCC","CepsIgnoreFirstCoeff=0","blockSize=1024","stepSize=256",">","Derivate","DOrder=2","'",",","...","'zcr",":","ZCR","blockSize=1024","stepSize=256","'","]",">",">",">","decoder","=","FileDecoder","(","uri=source",")",">",">",">","yaafe","=","YaafeAnalyzer","(","feature_plan=feature_plan",",","...","input_samplerate=16000",")",">",">",">","pipe","=","(","decoder","|","yaafe",")",">",">",">","pipe.run","(",")",">",">",">","print","(","yaafe.results.keys","(",")",")","[","'yaafe.mfccd1","'",",","'yaafe.mfcc","'",",","'yaafe.mfccd2","'",",","'yaafe.zcr","'","]",">",">",">","#","Access","to","one","of","the","result",":",">",">",">","res_mfcc","=","yaafe.results","[","'yaafe.mfcc","'","]",">",">",">","print","(","type","(","res_mfcc.data_object",")",")","<","class","'timeside.core.analyzer.FrameValueObject","'",">",">",">",">","res_mfcc.data","#","doctest",":","+ELLIPSIS","array","(","[","[","...","]","]",")"]
docstr: Yaafe analyzer force the pipe samplerate to match
  the `input_samplerate` parameters
docstr_tok: ["Yaafe","analyzer","force","the","pipe","samplerate","to","match","the","`","input_samplerate","`","parameters"]
code: def force_samplerate(self):
      """Yaafe analyzer force the pipe samplerate to match
      the `input_samplerate` parameters
      """
      return self.input_samplerate
  
file_path: TimeSide/timeside/plugins/analyzer/externals/yaafe.py
imports: from timeside.core import implements, interfacedoc
  from timeside.core.analyzer import Analyzer
  from timeside.core.api import IAnalyzer
  import yaafelib
  import numpy
  from timeside.core.preprocessors import downmix_to_mono
  from timeside.core.tools.parameters import HasTraits, ListUnicode, Float
  from timeside.core.tools.parameters import store_parameters
label_desc: Use image node_id 3 for calling the Yaafe obj's underlying member method code with example usage: obj.force_samplerate() and returns: self