在使用sidekit进行UBM说话人适应时遇到错误

我已经训练了一个UBM模型,现在正在尝试实现说话人适应时,遇到了以下错误。

异常:show enroll/something.wav 不在HDF5文件中

我在“feat”文件下有两个文件“enroll”和“test”,它们分别包含用于训练和测试的特征(.h5),我的enroll_idmap是仅用训练用的音频(.wav)生成的。此外,我的wav文件和feat文件是分开的。我认为这是idmap的问题。“enroll/something.wav”是我的enroll_idmap的正确id,但那个“HDF5文件”指的是什么?

谁能告诉我这个错误的含义以及如何修复它?

这是我的enroll_idmap的代码

def __init__(self):    BASE_DIR = "./Database/sidekit_data"    self.AUDIO_DIR = os.path.join(BASE_DIR, "audio")    self.FEATURE_DIR = os.path.join(BASE_DIR, "feat")    self.TASK_DIR = os.path.join(BASE_DIR, "task")    def create_idMap(self, group):    # 制作登记(IdMap)文件列表    group_dir = os.path.join(self.AUDIO_DIR, group) # 登记数据目录    group_files = os.listdir(group_dir)    group_models = [files.split('_')[0] for files in group_files] # 模型ID列表    group_segments = [group+"/"+f for f in group_files]    # 生成IdMap    group_idmap = sidekit.IdMap()    group_idmap.leftids = np.asarray(group_models)    group_idmap.rightids = np.asarray(group_segments)    group_idmap.start = np.empty(group_idmap.rightids.shape, '|O')    group_idmap.stop = np.empty(group_idmap.rightids.shape, '|O')    if group_idmap.validate():        group_idmap.write(os.path.join(self.TASK_DIR, group+'_idmap.h5'))    else:        raise RuntimeError('创建idMap文件时出现问题')

之后,我通过以下方式获得了enroll_idmap和test_idmap:

create_idMap("enroll")create_idMap("test")

以下是说话人适应的代码,上述错误是在执行enroll_stat.accumulate_stat(…)时出现的:

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",                                     ...                                     ...)print("计算充分统计量")enroll_stat.accumulate_stat(ubm=ubm,                        feature_server=server_eval,                        seg_indices=range(enroll_stat.segset.shape[0]),                        num_thread=nbThread                        )

这似乎不是什么大问题,但它已经困扰我几天了,请帮助我解决。


回答:

我最终通过更改训练和测试特征的路径,将其放置在“BASEDIR”之外,解决了这个问题

server_eval = sidekit.FeaturesServer(feature_filename_structure="./enroll/{}.h5",                                     ...)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注