Ho sviluppato un sistema di prova del concetto per il riconoscimento sonoro usando modelli mfcc e markov nascosti. Fornisce risultati promettenti quando collaudo il sistema su suoni noti. Sebbene il sistema, quando viene immesso un suono sconosciuto, restituisce il risultato con la corrispondenza più vicina e il punteggio non è così distinto da escogitare, è un suono sconosciuto, ad esempio:
Ho addestrato 3 modelli markov nascosti uno per il parlato, uno per l'acqua che esce dal rubinetto dell'acqua e uno per bussare alla scrivania. Quindi li collaudo su dati invisibili e ottengo i seguenti risultati:
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.
So che nella ricerca di parole chiave un suono OOV (fuori dal vocabolario) può essere filtrato usando un modello di immondizia o di riempimento, ma dice che è addestrato usando un insieme finito di parole sconosciute in cui questo non può essere applicato al mio sistema mentre lo faccio conosci tutti i suoni che il sistema potrebbe registrare.
Come viene risolto un problema simile nel sistema di riconoscimento vocale? E come posso risolvere il mio problema per evitare falsi positivi?