He desarrollado una prueba de concepto del sistema para el reconocimiento de sonidos utilizando mfcc y modelos ocultos de markov. Da resultados prometedores cuando me ponga a prueba el sistema en el conocimiento de los sonidos. Aunque el sistema anterior, cuando un desconocido sonido es ingresado devuelve el resultado con la coincidencia más cercana y la puntuación no es distinta a diseñar es un desconocido de sonido por ejemplo:
He entrenado 3 modelos ocultos de markov uno de discurso, uno para el agua que sale del grifo de agua y uno para golpear sobre la mesa. Entonces yo a prueba en los invisibles de datos y obtener resultados siguientes:
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.
Sé que en la palabra clave manchado un OOV (de vocabulario), el sonido puede ser filtrados mediante un cubo de basura o relleno modelo, pero se dice que se formó mediante un conjunto finito de palabras desconocidas donde esta no puede ser aplicada a mi sistema como no conozco todos los sonidos que el sistema puede registrar.
Cómo es un problema similar al resuelto en el sistema de reconocimiento de voz? Y ¿cómo puedo resolver mi problema, para evitar falsos positivos?