J'ai développé un système de preuve de concept pour la reconnaissance sonore en utilisant des modèles mfcc et markov cachés. Cela donne des résultats prometteurs lorsque je teste le système sur des sons connus. Bien que le système, lorsqu'un son inconnu est entré retourne le résultat avec la correspondance la plus proche et que le score n'est pas si distinct pour le concevoir, c'est un son inconnu, par exemple:
J'ai formé 3 modèles de Markov cachés, un pour la parole, un pour l'eau sortant du robinet et un pour frapper sur le bureau. Ensuite, je les teste sur des données invisibles et j'obtiens les résultats suivants:
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
Here the input is an unknown sound but it still returns the closest match as there is no system for thresholding/garbage filtering.
Je sais que dans le mot-clé repérant un son OOV (hors vocabulaire) peut être filtré en utilisant un modèle de déchets ou de remplissage, mais il dit qu'il est formé en utilisant un ensemble fini de mots inconnus où cela ne peut pas être appliqué à mon système car je ne le fais pas connais pas tous les sons que le système peut enregistrer.
Comment un problème similaire est-il résolu dans le système de reconnaissance vocale? Et comment puis-je résoudre mon problème pour éviter les faux positifs?