首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sidekit在UBM扬声器适配过程中出错

sidekit在UBM扬声器适配过程中出错
EN

Stack Overflow用户
提问于 2019-04-17 09:06:34
回答 1查看 175关注 0票数 1

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

异常:显示注册/某些东西. the不在HDF5文件中

我得到了两个文件“注册”和“测试”文件“壮举”,其中包含了分别用于培训和测试的功能(.h5),我的enroll_idmap是生成的音频(.wav)仅用于培训。并且,我的wav文件和壮举文件是分开的。我想我有地图的问题了。“注册/什么东西”是我的enroll_idmap的右边,但是"HDF5文件“指的是什么?

有人能告诉我这个错误意味着什么吗?如何修复它?

这是我的enroll_idmap代码

代码语言:javascript
复制
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):
    # Make enrollment (IdMap) file list
    group_dir = os.path.join(self.AUDIO_DIR, group) # enrollment data directory
    group_files = os.listdir(group_dir)
    group_models = [files.split('_')[0] for files in group_files] # list of model IDs
    group_segments = [group+"/"+f for f in group_files]

    # Generate 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('Problems with creating idMap file')

在那之后我得到了enroll_idmap和test_idmap:

代码语言:javascript
复制
create_idMap("enroll")
create_idMap("test")

下面是说话人自适应代码,在执行enroll_stat.accumulate_stat(…)过程中出现了上述错误:

代码语言:javascript
复制
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("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
                        )

这似乎不是一个大问题,但它阻止了我几天,请帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-23 08:31:57

最后,我改变了训练和测试特性的路径,使其超出了"BASEDIR“,从而解决了这个问题。

代码语言:javascript
复制
server_eval = sidekit.FeaturesServer(feature_filename_structure="./enroll/{}.h5",
                                     ...)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55723847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档