当在hmmlearn包中使用model.score时,为什么会出现“'diag'混合Covar必须为非负数”错误?

阿里Esmailpor

我已经进行了一个月的继续语音识别工作,并且找到了hmmlearn包裹。我可以使用_model = hmm.GMMHMM(...)创建我的音素模型_model.fit(...)但是,当我想将_model.score(_extracted_test_features)用于测试样本时,出现了以下错误:

.format(self.covariance_type))ValueError:'diag'混合Covar必须为非负数

这是我的代码:

    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软件包得到一些更新并修复了它们之后。

尼古拉·希米列夫(Nikolay Shmyrev)

通常,这意味着某些音素在训练期间没有足够的数据,并且您的模型训练不正确。您需要训练许多大于100的样本,仅几个样本就无法使用。

您可以打印模型值以检查是否为负。

最好使用专门的工具包(如kaldi或espnet)进行语音培训,HMMlearn不是正确的工具,不适用于语音。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当在管道块命令中使用“ IF”比较时,为什么会出现错误消息?

使用参数时为什么会出现SQL解析错误?

为什么我在使用 stdbool.h 时在 scanf 中使用 %d 时会出现错误?

错误C4996:Visual Studio:在C中使用fopen时为什么会出现错误?

在C Linux中使用共享内存尝试IPC时为什么会出现分段错误

在AJAX请求中使用@csrf_exempt时,为什么会出现403 Forbidden错误?

在派生表中使用count时为什么会出现错误代码1064?

尝试在tidyr :: pivot_wider中使用names_glue时,为什么会出现错误?

在ToDictionary中使用GroupBy的密钥时,为什么会出现“密钥已添加”错误?

在Kotlin中使用代理时,为什么会出现关于“ smart cast”的错误?

在Swift中使用AnyObject时为什么会出现“ valueForUndefinedKey”错误?

为什么即使使用@JsonIgnoreProperties,在使用杰克逊时也会出现stackoverflow错误

使用ArrayList <String []>而不是int [] []时,为什么会出现超时限制(TLE)错误?

当我尝试使用 useState 查看我的文本时,为什么会出现错误?

在当前位置使用rm -rf *时,为什么会出现以下错误?

一起使用ngIf和ViewChild时为什么会出现未定义的错误

当我尝试使用 pip 安装 autopep8 时,为什么会出现此错误?

使用Jsoup连接到特定网页时,为什么会出现404错误?

从指针使用类函数时,为什么会出现SIGSEGV错误?

在带有数组的对象上使用它时,为什么会出现$ parse错误?

当使用TryFuture而不是等效的Future时,为什么会出现关于类型不匹配的错误?

尝试使用动态参数调用扩展方法时,为什么会出现CS1973错误

为什么会出现错误“禁止”。使用服务主体执行Add-AzKeyVaultManagedStorageAccount时?

为什么在使用argc和argv时不会出现分段错误?

为什么有时使用Instr函数会出现错误5?

当我使用Roblox Lua Players.LocalPlayer.Mouse:Getmouse()时,为什么会出现错误?

尝试使用octokitnet创建新文件时,为什么会出现找不到错误?

以这种方式使用 iter_swap 时,为什么会出现堆错误?

使用Net :: Appliance :: Session时为什么会出现错误“缺少必需的参数:个性,运输”?