Python 使用sidekit进行扬声器自适应时出错

Python 使用sidekit进行扬声器自适应时出错,python,deep-learning,voice-recognition,gmm,sidekit,Python,Deep Learning,Voice Recognition,Gmm,Sidekit,当我遇到以下错误时,我正试图使用sidekit实现UBM的扬声器自适应 异常:显示注册/something.wav不在HDF5文件中 我在文件“feat”下得到了两个文件“enroll”和“test”,分别包含用于培训和测试的功能(.h5),而我的enroll_idmap仅使用音频(.wav)生成用于培训 执行enroll\u stat.accumulate\u stat(…) 谁能告诉我这个错误是什么意思以及如何修复它 import sidekit import os import n

当我遇到以下错误时,我正试图使用
sidekit
实现UBM的扬声器自适应

异常:显示注册/something.wav不在HDF5文件中

我在文件“feat”下得到了两个文件“enroll”和“test”,分别包含用于培训和测试的功能(.h5),而我的
enroll_idmap
仅使用音频(.wav)生成用于培训

执行
enroll\u stat.accumulate\u stat(…)

谁能告诉我这个错误是什么意思以及如何修复它

import sidekit
import os    
import numpy as np    
import h5py

nbThread = 4     
NUM_GUASSIANS = 64     
BASE_DIR = "./Database/sidekit_data"


enroll_idmap = sidekit.IdMap.read(os.path.join(BASE_DIR, "task", "enroll_idmap.h5"))

ubm = sidekit.Mixture()    
model_name = "ubm_{}.h5".format(NUM_GUASSIANS)    
ubm.read(os.path.join(BASE_DIR, "ubm", model_name))

server_eval = sidekit.FeaturesServer(feature_filename_structure="./Database/sidekit_data            /feat/{}.h5",
                                    sources=None,
                                    dataset_list=["vad", "energy", "cep", "fb"],
                                    feat_norm="cmvn",
                                    global_cmvn=None,
                                    dct_pca=False,
                                    dct_pca_config=None,
                                    sdc=False,
                                    sdc_config=None,
                                    delta=True,
                                    double_delta=True,
                                    delta_filter=None,
                                    context=None,
                                    traps_dct_nb=None,
                                    rasta=True,
                                    keep_all_features=True)

print("Compute the sufficient statistics")

enroll_stat.accumulate_stat(ubm=ubm,
                            feature_server=server_eval,
                            seg_indices=range(enroll_stat.segset.shape[0]),
                            num_thread=nbThread
                            )

filename = "enroll_stat_{}.h5".format(NUM_GUASSIANS)
enroll_stat.write(os.path.join(BASE_DIR, "stat", filename))

print("MAP adaptation of the speaker models")

enroll_sv = enroll_stat.adapt_mean_map_multisession(ubm=ubm,
                                                    r=3       
                                                    )

print("Compute trial scores")

scores_gmm_ubm = sidekit.gmm_scoring(ubm=ubm,
                                     enroll=enroll_sv,
                                     ndx=test_ndx,
                                     feature_server=server_eval,
                                     num_thread=nbThread
                                    )
filename = "ubm_scores_{}.h5".format(NUM_GUASSIANS)
scores_gmm_ubm.write(os.path.join(BASE_DIR, "result", filename))

filename = "ubm_scores_explained_{}.txt".format(NUM_GUASSIANS)
fout = open(os.path.join(BASE_DIR, "result", filename), "a")
fout.truncate(0) #clear content
modelset = list(scores_gmm_ubm.modelset)
segset = list(scores_gmm_ubm.segset)
scores = np.array(scores_gmm_ubm.scoremat)
for seg_idx, seg in enumerate(segset):
    fout.write("Wav: {}\n".format(seg))
    for speaker_idx, speaker in enumerate(modelset):
        fout.write("\tSpeaker {}:\t{}\n".format(speaker, scores[speaker_idx, seg_idx]))
    fout.write("\n")
fout.close()

欢迎来到堆栈溢出!请认真阅读,特别是如何提问和格式。你在这里的最佳选择是做你的研究,搜索相关的话题,然后尝试一下。在做了更多的研究和搜索之后,发布一篇你的尝试的文章,并明确指出你的困境,这可以帮助你得到更好的答案(请参阅我对你问题的编辑)。不要将wav文件放在feat文件夹中。它试图将wav文件读取为feat文件。谢谢你的回答Nikolay,但是我的wav文件和feat文件是分开的。我想我的idmap有问题。“enroll/something.wav”是我的enroll\u idmap的右ID,但“HDF5文件”指的是什么?这里是一个新链接,我在其中添加了我的idmap代码:问题已解决欢迎使用堆栈溢出!请认真阅读,特别是如何提问和格式。你在这里的最佳选择是做你的研究,搜索相关的话题,然后尝试一下。在做了更多的研究和搜索之后,发布一篇你的尝试的文章,并明确指出你的困境,这可以帮助你得到更好的答案(请参阅我对你问题的编辑)。不要将wav文件放在feat文件夹中。它试图将wav文件读取为feat文件。谢谢你的回答Nikolay,但是我的wav文件和feat文件是分开的。我想我的idmap有问题。“enroll/something.wav”是我的enroll\u idmap的右ID,但“HDF5文件”指的是什么?这里有一个新链接,我在其中添加了我的idmap代码:问题已在此处修复