Ich habe ein Proof-of-Concept-System für die Schallerkennung mit mfcc- und Hidden-Markov-Modellen entwickelt. Es gibt vielversprechende Ergebnisse, wenn ich das System auf bekannte Geräusche teste. Obwohl das System, wenn ein unbekannter Ton eingegeben wird, das Ergebnis mit der genauesten Übereinstimmung zurückgibt und die Punktzahl nicht so eindeutig ist, ist es ein unbekannter Ton, zB:
Ich habe 3 Hidden-Markov-Modelle trainiert, eines für das Sprechen, eines für das Wasser aus dem Wasserhahn und eines für das Klopfen auf den Schreibtisch. Dann teste ich sie auf unsichtbaren Daten und erhalte folgende Ergebnisse:
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.
Ich weiß, dass beim Erkennen von Schlüsselwörtern ein OOV-Ton (außerhalb des Wortschatzes) mit einem Müll- oder Füllermodell herausgefiltert werden kann. Es wird jedoch darauf hingewiesen, dass er mit einer begrenzten Anzahl unbekannter Wörter trainiert wurde, wobei dies nicht auf mein System angewendet werden kann, da ich dies nicht tue Ich kenne nicht alle Geräusche, die das System möglicherweise aufzeichnet.
Wie wird ein ähnliches Problem im Spracherkennungssystem gelöst? Und wie kann ich mein Problem lösen, um Fehlalarme zu vermeiden?