gpt4 book ai didi

java - 隐马尔可夫模型阈值化

转载 作者:搜寻专家 更新时间:2023-10-30 21:33:33 24 4
gpt4 key购买 nike

我开发了一个使用 mfcc 和隐马尔可夫模型进行声音识别的概念验证系统。当我用已知声音测试系统时,它给出了有希望的结果。虽然系统在输入未知声音时会返回最接近匹配的结果,并且分数不是那么明显,无法设计它是未知声音,例如:

我已经训练了 3 个隐马尔可夫模型,一个用于语音,一个用于水龙头流出的水,一个用于敲 table 。然后我在看不见的数据上测试它们并得到以下结果:

input: speech
HMM\knocking: -1213.8911146444477
HMM\speech: -617.8735676792728
HMM\watertap: -1504.4735097322673

So highest score speech which is correct

input: watertap
HMM\knocking: -3715.7246152783955
HMM\speech: -4302.67960438553
HMM\watertap: -1965.6149147201534

So highest score watertap which is correct

input: knocking
HMM\filler -806.7248912250212
HMM\knocking: -756.4428782636676
HMM\speech: -1201.686687761133
HMM\watertap: -3025.181144273698

So highest score knocking which is correct

input: unknown
HMM\knocking: -4369.1702184688975
HMM\speech: -5090.37122832872
HMM\watertap: -7717.501505674925

这里的输入是一个未知的声音,但它仍然返回最接近的匹配,因为没有阈值/垃圾过滤系统。

我知道在关键字识别中可以使用垃圾或填充模型过滤掉 OOV(词汇表外)声音,但它说它是使用一组有限的未知单词训练的,而这不能应用于我的系统因为我不知道系统可能录制的所有声音。

语音识别系统是如何解决类似问题的?我该如何解决我的问题以避免误报?

最佳答案

要拒绝其他词,您需要一个填充模型。

这是一个统计假设检验。你有两个假设(词是已知的,词是未知的)。要做出决定,您需要估计每个假设的概率。

填充模型是根据您的语音训练的,只是以不同的方式训练,例如,它可能是任何语音的单一高斯分布。您比较通用填充模型的分数和 HMM 一词的分数并做出决定。如需更深入的信息和高级算法,您可以查看任何有关关键字识别的论文。这篇论文好评如潮:

语音中的声学关键词识别及其在数据挖掘中的应用A. J. Kishan Thambiratnam

http://eprints.qut.edu.au/37254/1/Albert_Thambiratnam_Thesis.pdf

关于java - 隐马尔可夫模型阈值化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11154923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com