python - 当我在 hmmlearn 包中使用 model.score 时,为什么会出现 "' diag' mix covars must be non-negative"错误?

标签 python speech-recognition hmmlearn

我已经研究连续语音识别一个月了,我找到了 hmmlearn 包。我可以使用 _model = hmm.GMMHMM(...)_model.fit(...) 创建音素模型。但是当我想使用 _model.score(_extracted_test_features) 来测试样本时,我得到了这个错误:

.format(self.covariance_type)) ValueError: 'diag' mixture covars must be non-negative

这是我的代码:

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

最佳答案

通常这意味着某些音素在训练期间没有足够的数据,并且您的模型没有正确训练。您需要许多 > 100 个样本才能进行训练,只有几个样本是行不通的。

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

最好使用 kaldi 或 espnet 等专门工具包进行语音训练,HMMlearn 不是正确的工具,它没有正确实现语音。

关于python - 当我在 hmmlearn 包中使用 model.score 时,为什么会出现 "' diag' mix covars must be non-negative"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57305924/

相关文章:

c# - 从 C# 使用语音识别

c# - 语音识别的简单语法

rabbitmq - celery 'Worker-n' pid :xxxx exited with 'exitcode 1' when I import hmmlearn

python - 将数据拟合到 hmm.MultinomialHMM

python - 导入HMM包时出错(hmmlearn)

python - Anaconda:Python 是 64 位,numpy 32 位 -> 冲突。如何获得 numpy 64 位

python - prudentia 路径怪异 : Can't find box using path relative to the current directory

python - 用于解码 RNN 输出的波束搜索算法

python - 有没有办法只复制 Pandas DataFrame 的结构(而不​​是数据)?

python - Discord 机器人问题 "is a required argument missing"python