Onyx logo

Previous topic

onyx.containers.serializable – Mixin class for a set of serializable classes

Next topic

Dataflow

This Page

onyx.containers.objectset – Indexed set of runtime objects constructed from text serialization

class onyx.containers.objectset.IndexedObjectSet(stream)

Bases: object

Constructs a sequence of objects based on a text specification.

Example constructing some signal processing objects.

>>> doc = '''
... - __onyx_yaml__meta_version : '1'
...   __onyx_yaml__stream_type : IndexedObjectSet
...   __onyx_yaml__stream_version : '0'
...   __onyx_yaml__stream_options : implicit_index=True
...   
... -
...   # format for IndexedObjectSet, where presence of index field depends on value of implicit_index
...   # [index] module factory serial_version=N remaining-args-string
...   - onyx.signalprocessing.spectrum PreEmphasis serial_version=0
...   - onyx.signalprocessing.window Sliding serial_version=0 length=25000*usec  shift=10000*usec
...   - onyx.signalprocessing.window Hamming serial_version=0
...   - onyx.signalprocessing.window Padding serial_version=0 length=power_of_two
...   - onyx.signalprocessing.spectrum Fft serial_version=0
...   - onyx.signalprocessing.window Truncate serial_version=0 length=half_plus_one
...   - onyx.signalprocessing.scale Abs serial_version=0
...   # Bark band edges (in Hz):
...   #   20, 100, 200, 300, 400, 510, 630, 770, 920, 1080, 1270, 1480, 1720, 2000, 2320, 2700, 3150, 3700, 4400, 5300, 6400, 7700, 9500, 12000, 15500
...   # Bark band centers (in Hz):
...   #   50, 150, 250, 350, 450, 570, 700, 840, 1000, 1170, 1370, 1600, 1850, 2150, 2500, 2900, 3400, 4000, 4800, 5800, 7000, 8500, 10500, 13500
...   # As in Sphinx4, we interleave the edges and centers. See:
...   #   http://cmusphinx.sourceforge.net/sphinx4/javadoc/edu/cmu/sphinx/frontend/frequencywarp/MelFrequencyFilterBank.html
...   - onyx.signalprocessing.spectrum MelFilter serial_version=0 units=hz 20 50 100 150 200 250 300 350 400 450 510 570 630 700 770 840 920 1000 1080 1170 1270 1370 1480 1600 1720 1850 2000 2150 2320 2500 2700 2900 3150 3400 3700 4000 4400 4800 5300 5800 6400 7000 7700 8500 9500 10500 12000 13500 15500
...   
...   - onyx.signalprocessing.scale Log serial_version=0 base=10 scale=10
...   - onyx.signalprocessing.spectrum Dct serial_version=0  
...   - onyx.signalprocessing.window Truncate serial_version=0 length=13
...   - onyx.signalprocessing.delta Delta serial_version=0
...   - onyx.signalprocessing.delta DeltaDelta serial_version=0
...   - onyx.dataflow.graph Join serial_version=0
...   '''
>>> objects = IndexedObjectSet(doc)
>>> items = tuple(objects)
>>> len(items)
14
>>> s = items[1][1]
>>> s
Sliding(['serial_version=0', 'length=25000*usec', 'shift=10000*usec'])
>>> s = items[8][1]
>>> s
Log(['serial_version=0', 'base=10', 'scale=10'])
>>> s.serialize()
('onyx.signalprocessing.scale', 'Log', '0', 'base=10', 'scale=10')
serialize(stream)
class onyx.containers.objectset.ObsoleteIndexedObjectSet(stream)

Bases: object

serialize(stream)