Data management
TimeSide offers various ways to access to audio data or metadata. AnalyzerResult
is the python data structure where TimeSide embeds all the data resulting from a given analyzer processors after a run. It is thus the base object to access the analysis results and all the corresponding metadata. Bellow are some examples of use of the AnalyzerResult
object and some of its methods.
Usage
AnalyzerResult(data_mode=None, time_mode=None)
Four different time_mode
can be specified:
framewise
: data are returned on a frame basis (i.e. with specified blocksize, stepsize and framerate)global
: a global data value is return for the entire audio itemsegment
: data are returned on a segment basis (i.e. with specified start time and duration)event
: data are returned on a instantaneous event basis (i.e. with specified start time)
Two different *data_mode- can be specified:
value
: data are returned as numpy Array of arbitrary typelabel
: data are returned as label indexes (specified by the label_metadata key)
Default values are time_mode = 'framewise'
and data_mode = 'value'
See : timeside.core.analyzer.AnalyzerResult()
, timeside.core.analyzer.AnalyzerResult
Default
Create a new analyzer result without default arguments
>>> from timeside.core.analyzer import AnalyzerResult
>>> res = AnalyzerResult()
>>> res.keys()
['id_metadata', 'data_object', 'audio_metadata', 'parameters']
>>> for key,value in res.items():
... print '%s : %s' % (key, value)
...
id_metadata : {'description': '', 'author': '', 'version': '', 'date': '', 'proc_uuid': '', 'id': '', 'unit': '', 'name': ''}
data_object : {'y_value': array([], dtype=float64), 'value': array([], dtype=float64), 'frame_metadata': {'blocksize': None, 'samplerate': None, 'stepsize': None}}
audio_metadata : {'sha1': '', 'is_segment': None, 'uri': '', 'channels': None, 'start': 0, 'channelsManagement': '', 'duration': None}
parameters : {}
Specification of time_mode
Four different time_mode can be specified :
framewise
: data are returned on a frame basis (i.e. with specified blocksize, stepsize and framerate)global
: a global data value is return for the entire audio itemsegment
: data are returned on a segment basis (i.e. with specified start time and duration)event
: data are returned on a segment basis (i.e. with specified start time)
Framewise
>>> res = AnalyzerResult(time_mode='framewise')
>>> res.data_object.keys()
['value', 'y_value', 'frame_metadata']
Global
No frame metadata information is needed for these modes.
The frame_metadata
key/attribute is deleted.
>>> res = AnalyzerResult(time_mode='global')
>>> res.data_object.keys()
['value', 'y_value']
>>> res.data_object
GlobalValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64))
Segment
>>> res = AnalyzerResult(time_mode='segment')
>>> res.keys()
['id_metadata', 'data_object', 'audio_metadata', 'parameters']
>>> res.data_object
SegmentValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), time=array([], dtype=float64), duration=array([], dtype=float64))
Event
>>> res = AnalyzerResult(time_mode='event')
>>> res.keys()
['id_metadata', 'data_object', 'audio_metadata', 'parameters']
>>> res.data_object
EventValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), time=array([], dtype=float64))
Specification of data_mode
Two different data_mode can be specified :
value
: data are returned as numpy Array of arbitrary typelabel
: data are returned as label indexes (specified by the label_metadata key)
Value
>>> res = AnalyzerResult(data_mode='value')
>>> res.data_object.keys()
['value', 'y_value', 'frame_metadata']
In the dataObject
key, the value
key is kept and the label
key is deleted.
>>> res.data_object
FrameValueObject(value=array([], dtype=float64), y_value=array([], dtype=float64), frame_metadata=FrameMetadata(samplerate=None, blocksize=None, stepsize=None))
Label
A label_metadata
key is added.
>>> res = AnalyzerResult(data_mode='label')
>>> res.data_object.keys()
['label', 'label_metadata', 'frame_metadata']
>>> res.data_object
FrameLabelObject(label=array([], dtype=int64), label_metadata=LabelMetadata(label=None, description=None, label_type='mono'), frame_metadata=FrameMetadata(samplerate=None, blocksize=None, stepsize=None))