首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么当我在when学习包中使用model.score时,“diag”混合码必须是非负的“错误”?

为什么当我在when学习包中使用model.score时,“diag”混合码必须是非负的“错误”?
EN

Stack Overflow用户
提问于 2019-08-01 09:29:55
回答 1查看 219关注 0票数 1

一个月来,我一直致力于持续语音识别,并找到了hmmlearn软件包。我可以用_model = hmm.GMMHMM(...)_model.fit(...)创建我的音素模型。但是,当我想使用_model.score(_extracted_test_features)作为测试样本时,我得到了以下错误:

.format(self.covariance_type)) ValueError:“diag”混合物必须是非阴性的。

这是我的代码:

代码语言:javascript
复制
    def Main():
        # ---
        _phoneme_files_dir = './database_info/phonemes/phoneme_files/'
        _phoneme_dataset_dir = './database_info/phonemes/extracted_features/'
        _phoneme_models_dir = './database_info/phonemes/models/'
        _phoneme_test = '/home/ali/speech_recognition/database/database_english/timit/data/lisa/data/timit/raw/TIMIT/TEST/DR1/FAKS0/SA1.wav'
        # ---
        _phoneme_test_features = ExtractFeatures(_phoneme_test, 9640, 11240)
        _phoneme_models, _phoneme_models_list_loaded = LoadModels(_phoneme_models_dir)
        print("Getting models has successfully done")
        # ---
        _score_list = {}
        for _model_label in _phoneme_models.keys():
            _model = _phoneme_models[_model_label][0]
            _score = _model.score(_phoneme_test_features)
            _score_list[_model_label] = _score
        _predict = max(_score_list, key=_score_list.get)
        print("predict result phoneme is ", _phoneme_models_list_loaded[_predict])

有人知道这个错误吗?我已经找到了一些解决方案,但它们在几年前就有了,在那之后,hmmlearn软件包得到了一些更新并修复了它们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-24 19:40:34

通常情况下,这意味着一些音素在训练过程中没有足够的数据,而且你的模型没有进行适当的训练。你需要许多样本> 100来训练,只要一对样本,它就不能工作。

您可以打印模型值来检查哪些是负的。

更好的方法是使用诸如kaldi或espnet这样的专用工具来进行语音训练,HMMlearn不是合适的工具,它不能很好地实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57305924

复制
相关文章

相似问题

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