コード例 #1
0
ファイル: hmm_mgr.py プロジェクト: uncledickHe/speechAD
def read_hmm_mgr(file, gmm_mgr, log_domain=False, yaml_reader=None):
    """
    Read a serialized HmmMgr object in from file.  gmm_mgr must be a GmmMgr with models
    corresponding to all those used in the HmmMgr's Hmms.  If yaml_reader is not None, it will be
    used as the source of data, in which case file will be ignored completely.
    
    >>> dummies = ( DummyModel(2, 0.1), DummyModel(2, 0.2), DummyModel(2, 0.4), DummyModel(2, 0.4) )
    >>> gmm_mgr = GmmMgr(dummies)
    >>> doc = '''
    ... ---
    ... - __onyx_yaml__meta_version : '1'
    ...   __onyx_yaml__stream_type : 'OnyxText'
    ...   __onyx_yaml__stream_version : '0'
    ... -
    ...   # OnyxText header looks like this:
    ...   - stream_type OnyxText stream_version 0 data_type HmmManager data_version 0
    ...   # format for HmmManager
    ...   - HmmMgr IndexedCollection Hmm 1
    ...   - Hmm 0
    ...   - num_inputs 1
    ...   - num_states 1
    ...   - num_outputs 1
    ...   - transition_matrix Array 2 3 3
    ...   - +(-1023)0x0000000000000 +(+0000)0x0000000000000 +(-1023)0x0000000000000
    ...   - +(-1023)0x0000000000000 +(-0001)0x0000000000000 +(-0001)0x0000000000000
    ...   - +(-1023)0x0000000000000 +(-1023)0x0000000000000 +(-1023)0x0000000000000
    ...   - models List 1
    ...   - 0
    ... ...
    ...   '''
    >>> f = cStringIO.StringIO(doc)
    >>> hmm_mgr = read_hmm_mgr(f, gmm_mgr)
    """
    
    # Create YamldataReader if needed, hook up and do version checking
    if yaml_reader is None:
        yaml_reader = YamldataReader(file, stream_type=OnyxTextReader.STREAM_TYPE,
                                     stream_version=OnyxTextReader.STREAM_VERSION)

    # create OnyxTextReader and hook YamldataReader up to it
    stream = OnyxTextReader(yaml_reader, data_type="HmmManager", data_version="0")
    
    # read document contents
    v,hmms = stream.read_indexed_collection(read_hmm, (gmm_mgr, log_domain), name="HmmMgr")
    
    # finalize Reader and Stream?
    # construct and return HmmMgr object
    return HmmMgr(hmms)
コード例 #2
0
ファイル: modelmgr.py プロジェクト: daleloogn/speechAD
def read_model_dict(file, yaml_reader=None):
    # Create YamldataReader if needed, hook up and do version checking
    if yaml_reader is None:
        yaml_reader = YamldataReader(
            file, stream_type=OnyxTextReader.STREAM_TYPE, stream_version=OnyxTextReader.STREAM_VERSION
        )

    # create OnyxTextReader and hook YamldataReader up to it
    stream = OnyxTextReader(yaml_reader, data_type="ModelDict", data_version="0")

    # read document contents
    v, num_models = stream.read_scalar("num_models", int)
    # Note that keys are always strings here
    v, keys = stream.read_list("model_keys", count=num_models)
    v, model_indices = stream.read_list("model_indices", int, count=num_models)
    return dict(izip(keys, model_indices))
コード例 #3
0
def read_model_dict(file, yaml_reader=None):
    # Create YamldataReader if needed, hook up and do version checking
    if yaml_reader is None:
        yaml_reader = YamldataReader(
            file,
            stream_type=OnyxTextReader.STREAM_TYPE,
            stream_version=OnyxTextReader.STREAM_VERSION)

    # create OnyxTextReader and hook YamldataReader up to it
    stream = OnyxTextReader(yaml_reader,
                            data_type="ModelDict",
                            data_version="0")

    # read document contents
    v, num_models = stream.read_scalar("num_models", int)
    # Note that keys are always strings here
    v, keys = stream.read_list("model_keys", count=num_models)
    v, model_indices = stream.read_list("model_indices", int, count=num_models)
    return dict(izip(keys, model_indices))
コード例 #4
0
ファイル: modelmgr.py プロジェクト: daleloogn/speechAD
def read_gmm_mgr(file, yaml_reader=None):
    """
    >>> dummies = ( DummyModel(2, 0.1), DummyModel(2, 0.2), DummyModel(2, 0.4), DummyModel(2, 0.4) )
    >>> gmm_mgr = GmmMgr(dummies)
    >>> doc = '''
    ... ---
    ... - __onyx_yaml__meta_version : '1'
    ...   __onyx_yaml__stream_type : 'OnyxText'
    ...   __onyx_yaml__stream_version : '0'
    ... -
    ...   # OnyxText header looks like this:
    ...   - stream_type OnyxText stream_version 0 data_type GmmManager data_version 0
    ...   # format for GmmManager
    ...   - GmmMgr IndexedCollection Gmm 1
    ...   - Gmm 0
    ...   - covariance_type Singleton onyx.am.gaussian.GaussianModelBase.DIAGONAL_COVARIANCE
    ...   - dimension 2
    ...   - num_components 3
    ...   - relevances List 3
    ...   - 0.0 0.0 0.0
    ...   - weights Array 1 3
    ...   - +(-0002)0x0000000000000 +(-0001)0x0000000000000 +(-0002)0x0000000000000
    ...   - Gaussians IndexedCollection SimpleGaussian 3
    ...   - SimpleGaussian 0
    ...   - means Array 1 2
    ...   - +(+0000)0x0000000000000 +(+0000)0x0000000000000
    ...   - vars Array 1 2
    ...   - +(+0000)0x0000000000000 +(+0000)0x0000000000000
    ...   - SimpleGaussian 1
    ...   - means Array 1 2
    ...   - +(+0001)0x0000000000000 +(+0001)0x0000000000000
    ...   - vars Array 1 2
    ...   - +(+0000)0x0000000000000 +(+0000)0x0000000000000
    ...   - SimpleGaussian 2
    ...   - means Array 1 2
    ...   - +(+0001)0x8000000000000 +(+0001)0x8000000000000
    ...   - vars Array 1 2
    ...   - +(+0000)0x0000000000000 +(+0000)0x0000000000000
    ... ...
    ...   '''
    >>> f = cStringIO.StringIO(doc)

    # If this works we have done lots of checking, but it would be nice to be able to print something out
    >>> gmm_mgr0 = read_gmm_mgr(f)

    # write-read-write round-trip test
    >>> f_out0 = cStringIO.StringIO()
    >>> f_out1 = cStringIO.StringIO()
    >>> write_gmm_mgr(gmm_mgr0, f_out0)

    # rewind and read
    >>> f_out0.seek(0)
    >>> gmm_mgr1 = read_gmm_mgr(f_out0)

    >>> gmm_mgr0 == gmm_mgr1
    True
    
    >>> write_gmm_mgr(gmm_mgr1, f_out1)
    >>> f_out0.getvalue() == f_out1.getvalue()
    True
    """

    # create and hook up YamldataReader, do version checking
    if yaml_reader is None:
        yaml_reader = YamldataReader(
            file, stream_type=OnyxTextReader.STREAM_TYPE, stream_version=OnyxTextReader.STREAM_VERSION
        )

    # create OnyxTextReader and hook YamldataReader up to it
    stream = OnyxTextReader(yaml_reader, data_type="GmmManager", data_version="0")

    # read document contents
    v, gmms = stream.read_indexed_collection(read_gmm, None, name="GmmMgr")

    # finalize Reader and Stream?
    # construct and return GmmMgr object
    return GmmMgr(gmms)
コード例 #5
0
def read_gmm_mgr(file, yaml_reader=None):
    """
    >>> dummies = ( DummyModel(2, 0.1), DummyModel(2, 0.2), DummyModel(2, 0.4), DummyModel(2, 0.4) )
    >>> gmm_mgr = GmmMgr(dummies)
    >>> doc = '''
    ... ---
    ... - __onyx_yaml__meta_version : '1'
    ...   __onyx_yaml__stream_type : 'OnyxText'
    ...   __onyx_yaml__stream_version : '0'
    ... -
    ...   # OnyxText header looks like this:
    ...   - stream_type OnyxText stream_version 0 data_type GmmManager data_version 0
    ...   # format for GmmManager
    ...   - GmmMgr IndexedCollection Gmm 1
    ...   - Gmm 0
    ...   - covariance_type Singleton onyx.am.gaussian.GaussianModelBase.DIAGONAL_COVARIANCE
    ...   - dimension 2
    ...   - num_components 3
    ...   - relevances List 3
    ...   - 0.0 0.0 0.0
    ...   - weights Array 1 3
    ...   - +(-0002)0x0000000000000 +(-0001)0x0000000000000 +(-0002)0x0000000000000
    ...   - Gaussians IndexedCollection SimpleGaussian 3
    ...   - SimpleGaussian 0
    ...   - means Array 1 2
    ...   - +(+0000)0x0000000000000 +(+0000)0x0000000000000
    ...   - vars Array 1 2
    ...   - +(+0000)0x0000000000000 +(+0000)0x0000000000000
    ...   - SimpleGaussian 1
    ...   - means Array 1 2
    ...   - +(+0001)0x0000000000000 +(+0001)0x0000000000000
    ...   - vars Array 1 2
    ...   - +(+0000)0x0000000000000 +(+0000)0x0000000000000
    ...   - SimpleGaussian 2
    ...   - means Array 1 2
    ...   - +(+0001)0x8000000000000 +(+0001)0x8000000000000
    ...   - vars Array 1 2
    ...   - +(+0000)0x0000000000000 +(+0000)0x0000000000000
    ... ...
    ...   '''
    >>> f = cStringIO.StringIO(doc)

    # If this works we have done lots of checking, but it would be nice to be able to print something out
    >>> gmm_mgr0 = read_gmm_mgr(f)

    # write-read-write round-trip test
    >>> f_out0 = cStringIO.StringIO()
    >>> f_out1 = cStringIO.StringIO()
    >>> write_gmm_mgr(gmm_mgr0, f_out0)

    # rewind and read
    >>> f_out0.seek(0)
    >>> gmm_mgr1 = read_gmm_mgr(f_out0)

    >>> gmm_mgr0 == gmm_mgr1
    True
    
    >>> write_gmm_mgr(gmm_mgr1, f_out1)
    >>> f_out0.getvalue() == f_out1.getvalue()
    True
    """

    # create and hook up YamldataReader, do version checking
    if yaml_reader is None:
        yaml_reader = YamldataReader(
            file,
            stream_type=OnyxTextReader.STREAM_TYPE,
            stream_version=OnyxTextReader.STREAM_VERSION)

    # create OnyxTextReader and hook YamldataReader up to it
    stream = OnyxTextReader(yaml_reader,
                            data_type="GmmManager",
                            data_version="0")

    # read document contents
    v, gmms = stream.read_indexed_collection(read_gmm, None, name="GmmMgr")

    # finalize Reader and Stream?
    # construct and return GmmMgr object
    return GmmMgr(gmms)