Beispiel #1
0
def write_feature_files(models, n_samples, feature_dir, lab_dir):
    # Constants that should not make any difference
    samp_period = 0.01
    max_file_samples = 2000
    fea_prefix = 'test'
    htk_time_const = 1e7
    fea_type = htkmfc.USER

    model_names = []
    for m in models:
        model_names.append(m.name)
    n_dims = models[0].means.shape[1]

    n_fea_files = int(math.ceil(n_samples / float(max_file_samples)))
    samples_estimated = 0
    file_names = []
    for counter in range(n_fea_files):
        fea_name = fea_prefix + str(counter)
        file_names.append(fea_name + '.fea')
        fea_file_name = os.path.join(feature_dir, fea_name + '.fea')
        lab_file_name = os.path.join(lab_dir, fea_name + '.lab')

        n_samples_to_generate = min(max_file_samples,
                                    n_samples - samples_estimated)
        samples, ind_vector = SailGMM.sample_gmms(models,
                                                  n_samples_to_generate)
        samples_estimated += n_samples_to_generate

        htk_lab_writer = htklab.HTKlab_write(filename=lab_file_name,
                                             samp_period=round(samp_period *
                                                               htk_time_const),
                                             labels=model_names)
        htk_lab_writer.write(ind_vector)
        htk_fea_writer = htkmfc.HTKFeat_write(filename=fea_file_name,
                                              sampPeriod=int(samp_period *
                                                             htk_time_const),
                                              veclen=n_dims,
                                              paramKind=fea_type)
        htk_fea_writer.writeall(samples)

    return (file_names)
Beispiel #2
0
def write_feature_files(models, n_samples, feature_dir, lab_dir):        
    # Constants that should not make any difference
    samp_period = 0.01
    max_file_samples = 2000
    fea_prefix = 'test'
    htk_time_const = 1e7
    fea_type = htkmfc.USER
        
    model_names = []
    for m in models:
        model_names.append(m.name)
    n_dims = models[0].means.shape[1]
    
    n_fea_files = int(math.ceil(n_samples / float(max_file_samples)))
    samples_estimated = 0
    file_names=[]
    for counter in range(n_fea_files):
        fea_name = fea_prefix+str(counter)
        file_names.append(fea_name+'.fea')
        fea_file_name = os.path.join(feature_dir,fea_name+'.fea')
        lab_file_name = os.path.join(lab_dir,fea_name+'.lab')
        
        n_samples_to_generate = min(max_file_samples, n_samples-samples_estimated)
        samples, ind_vector = SailGMM.sample_gmms(models, n_samples_to_generate)
        samples_estimated += n_samples_to_generate
        
        htk_lab_writer = htklab.HTKlab_write(filename=lab_file_name, 
                                             samp_period=round(samp_period*htk_time_const),
                                             labels=model_names)
        htk_lab_writer.write(ind_vector) 
        htk_fea_writer = htkmfc.HTKFeat_write(filename=fea_file_name,
                                              sampPeriod=int(samp_period*htk_time_const),
                                              veclen=n_dims,
                                              paramKind=fea_type)
        htk_fea_writer.writeall(samples)    
    
    return(file_names)