Я розробив доказову систему концепції розпізнавання звуку за допомогою mfcc та прихованих моделей markov. Це дає перспективні результати, коли я тестую систему на відомі звуки. Хоча система, коли вводиться невідомий звук, повертає результат з найбільшою відповідністю, і оцінка не є такою чіткою для розробки, що це невідомий звук, наприклад:
Я підготував 3 приховані маркові моделі: одна для виступу, одна для води, що виходить з крана для води, і одна для стуку по парті. Потім я перевіряю їх на небачені дані та отримую такі результати:
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.
Я знаю, що при виявленні ключових слів OOV (поза словниковим словом) звук можна відфільтрувати за допомогою моделі сміття чи наповнювача, але він говорить, що він навчається за допомогою обмеженого набору невідомих слів, де це не може бути застосовано до моєї системи, оскільки я Я не знаю всіх звуків, які може записувати система.
Як подібна проблема вирішується в системі розпізнавання мовлення? І як я можу вирішити свою проблему, щоб уникнути помилкових позитивних результатів?