HI,I am trying to use gmm-ubm to distinguish between natural and synthtic speeches.
Xf = np.load('Xf_ubm_cqcc_orig.npy',allow_pickle=True)
algoritmo_orig = bgmm.algorithm.GMM(number_of_gaussians=256, kmeans_training_iterations=25, gmm_training_iterations=25, training_threshold=0.0, variance_threshold=0.0005, update_weights=True, update_means=True, update_variances=True, relevance_factor=4, gmm_enroll_iterations=1, responsibility_threshold=0, INIT_SEED=5489)
algoritmo_orig.train_projector([np.vstack(Xf)],project_folder+"ubm_20_orig_Projector.hdf5")
Then I used natural speeches to enroll the gmm-ubm for natural speeches, as well as synthtic speeches for synthtic gmm-ubm:
algoritmo.load_projector(project_folder+"ubm_20_orig_Projector.hdf5")
Xf = np.load('Xf_gmm_ubm_nat_cqcc_orig.npy', allow_pickle=True)
modelo = algoritmo.enroll([np.vstack(Xf)])
archivo_modelo = project_folder + "ubm_orig_20_nat_modelo.hdf5"
algoritmo.write_model(modelo, archivo_modelo)
After that I tried to score test speeches, but for some speeches, I got a positive number, for others I got a negative number. I don't know the reason.
algoritmo_orig = bgmm.algorithm.GMM(number_of_gaussians=256, kmeans_training_iterations=25, gmm_training_iterations=25, training_threshold=0.0, variance_threshold=0.0005, update_weights=True, update_means=True, update_variances=True, relevance_factor=4, gmm_enroll_iterations=5, responsibility_threshold=0, INIT_SEED=5489)
algoritmo_orig.load_projector('ubm_20_orig_Projector.hdf5')
modelo_orig_nat = algoritmo_orig.read_model('ubm_orig_20_nat_modelo.hdf5')
modelo_orig_synt = algoritmo_orig.read_model('ubm_orig_20_synt_modelo.hdf5')
ubm_orig_feature = algoritmo_orig.project(CQcc)
gmm_orig_nat_score[k] = algoritmo_orig.score(modelo_orig_nat, ubm_orig_feature)
gmm_orig_synt_score[k] = algoritmo_orig.score(modelo_orig_synt, ubm_orig_feature)
Do the bigger absolute values mean the bigger possibility?