class_docstr: Conditional Random Field Beat Detection.
  
  Tracks the beats according to the previously determined global tempo using
  a conditional random field (CRF) model.
  
  Parameters
  ----------
  interval_sigma : float, optional
      Allowed deviation from the dominant beat interval per beat.
  use_factors : bool, optional
      Use dominant interval multiplied by factors instead of intervals
      estimated by tempo estimator.
  num_intervals : int, optional
      Maximum number of estimated intervals to try.
  factors : list or numpy array, optional
      Factors of the dominant interval to try.
  
  References
  ----------
  .. [1] Filip Korzeniowski, Sebastian Böck and Gerhard Widmer,
         "Probabilistic Extraction of Beat Positions from a Beat Activation
         Function",
         Proceedings of the 15th International Society for Music Information
         Retrieval Conference (ISMIR), 2014.
  
  Examples
  --------
  Create a CRFBeatDetectionProcessor. The returned array represents the
  positions of the beats in seconds, thus the expected sampling rate has to
  be given.
  
  >>> proc = CRFBeatDetectionProcessor(fps=100)
  >>> proc  # doctest: +ELLIPSIS
  <madmom.features.beats.CRFBeatDetectionProcessor object at 0x...>
  
  Call this BeatDetectionProcessor with the beat activation function returned
  by RNNBeatProcessor to obtain the beat positions.
  
  >>> act = RNNBeatProcessor()('tests/data/audio/sample.wav')
  >>> proc(act)
  array([0.09, 0.79, 1.49])
class_docstr_tok: ["Conditional","Random","Field","Beat","Detection",".","Tracks","the","beats","according","to","the","previously","determined","global","tempo","using","a","conditional","random","field","(","CRF",")","model",".","Parameters","--","--","--","--","--","interval_sigma",":","float",",","optional","Allowed","deviation","from","the","dominant","beat","interval","per","beat",".","use_factors",":","bool",",","optional","Use","dominant","interval","multiplied","by","factors","instead","of","intervals","estimated","by","tempo","estimator",".","num_intervals",":","int",",","optional","Maximum","number","of","estimated","intervals","to","try",".","factors",":","list","or","numpy","array",",","optional","Factors","of","the","dominant","interval","to","try",".","References","--","--","--","--","--","..","[","1","]","Filip","Korzeniowski",",","Sebastian","B\u00f6ck","and","Gerhard","Widmer",",","``","Probabilistic","Extraction","of","Beat","Positions","from","a","Beat","Activation","Function","''",",","Proceedings","of","the","15th","International","Society","for","Music","Information","Retrieval","Conference","(","ISMIR",")",",","2014",".","Examples","--","--","--","--","Create","a","CRFBeatDetectionProcessor",".","The","returned","array","represents","the","positions","of","the","beats","in","seconds",",","thus","the","expected","sampling","rate","has","to","be","given",".",">",">",">","proc","=","CRFBeatDetectionProcessor","(","fps=100",")",">",">",">","proc","#","doctest",":","+ELLIPSIS","<","madmom.features.beats.CRFBeatDetectionProcessor","object","at","0x","...",">","Call","this","BeatDetectionProcessor","with","the","beat","activation","function","returned","by","RNNBeatProcessor","to","obtain","the","beat","positions",".",">",">",">","act","=","RNNBeatProcessor","(",")","(","'tests\/data\/audio\/sample.wav","'",")",">",">",">","proc","(","act",")","array","(","[","0.09",",","0.79",",","1.49","]",")"]
docstr: Add CRFBeatDetection related arguments to an existing parser.
  
  Parameters
  ----------
  parser : argparse parser instance
      Existing argparse parser object.
  interval_sigma : float, optional
      allowed deviation from the dominant beat interval per beat
  use_factors : bool, optional
      use dominant interval multiplied by factors instead of intervals
      estimated by tempo estimator
  num_intervals : int, optional
      max number of estimated intervals to try
  factors : list or numpy array, optional
      factors of the dominant interval to try
  
  Returns
  -------
  parser_group : argparse argument group
      CRF beat tracking argument parser group.
docstr_tok: ["Add","CRFBeatDetection","related","arguments","to","an","existing","parser",".","Parameters","--","--","--","--","--","parser",":","argparse","parser","instance","Existing","argparse","parser","object",".","interval_sigma",":","float",",","optional","allowed","deviation","from","the","dominant","beat","interval","per","beat","use_factors",":","bool",",","optional","use","dominant","interval","multiplied","by","factors","instead","of","intervals","estimated","by","tempo","estimator","num_intervals",":","int",",","optional","max","number","of","estimated","intervals","to","try","factors",":","list","or","numpy","array",",","optional","factors","of","the","dominant","interval","to","try","Returns","--","--","--","-","parser_group",":","argparse","argument","group","CRF","beat","tracking","argument","parser","group","."]
code: def add_arguments(
      parser,
      interval_sigma=INTERVAL_SIGMA,
      use_factors=USE_FACTORS,
      num_intervals=NUM_INTERVALS,
      factors=FACTORS,
  ):
      """
      Add CRFBeatDetection related arguments to an existing parser.
  
      Parameters
      ----------
      parser : argparse parser instance
          Existing argparse parser object.
      interval_sigma : float, optional
          allowed deviation from the dominant beat interval per beat
      use_factors : bool, optional
          use dominant interval multiplied by factors instead of intervals
          estimated by tempo estimator
      num_intervals : int, optional
          max number of estimated intervals to try
      factors : list or numpy array, optional
          factors of the dominant interval to try
  
      Returns
      -------
      parser_group : argparse argument group
          CRF beat tracking argument parser group.
  
      """
      # pylint: disable=arguments-differ
      from ..utils import OverrideDefaultListAction
  
      # add CRF related arguments
      g = parser.add_argument_group(
          "conditional random field arguments"
      )
      g.add_argument(
          "--interval_sigma",
          action="store",
          type=float,
          default=interval_sigma,
          help="allowed deviation from the dominant interval "
          "[default=%(default).2f]",
      )
      g.add_argument(
          "--use_factors",
          action="store_true",
          default=use_factors,
          help="use dominant interval multiplied with factors "
          "instead of multiple estimated intervals "
          "[default=%(default)s]",
      )
      g.add_argument(
          "--num_intervals",
          action="store",
          type=int,
          default=num_intervals,
          dest="num_intervals",
          help="number of estimated intervals to try "
          "[default=%(default)s]",
      )
      g.add_argument(
          "--factors",
          action=OverrideDefaultListAction,
          default=factors,
          type=float,
          sep=",",
          help="(comma separated) list with factors of dominant "
          "interval to try [default=%(default)s]",
      )
      return g
  
imports: from __future__ import absolute_import, division, print_function
  import sys
  import numpy
  from ..audio.signal import signal_frame, smooth
  from ..ml.nn import average_predictions
  from ..processors import OnlineProcessor, ParallelProcessor, Processor, SequentialProcessor
label_desc: Use image node_id 3 for calling the CRFBeatDetectionProcessor obj's underlying member method code with example usage: obj.add_arguments(parser, interval_sigma, use_factors, num_intervals, factors) and returns: g