Вы можете добиться некоторого ограничения пробега с помощью встроенного в Windows Speech API.Это зависит от вашей операционной системы и т. Д., И вы должны следовать аналогичным принципам из документации API: http://msdn.microsoft.com/en-us/library/ms723627(v=vs.85).aspx
Использование сервера ActiveX MATLAB (http://www.mathworks.co.uk/help/matlab/ref/actxserver.html)
Сначала необходимо объявить речьмеханизм распознавания
RC = actxserver('SAPI.SpSharedRecoContext'); %connect to speech engine
И затем установить различные функции обратного вызова для каждого состояния распознавателя:
RC.registerevent({'Recognition' @CallbackFunction; 'Hypothesis' @CallbackFunction; 'FalseRecognition' @CallbackFunction})
Содержимое функции обратного вызова должно быть в следующих строках:
function word = CallbackFunction(varargin)
global word
result = varargin{length(varargin)-2};
word = result.Phraseinfo.GetText;
end
Затем, наконец, включите распознаватель:
RC.Recognizer.State = 'SRSActive';
Вам нужно будет обратиться к документации, для которой и когда вызываются функции обратного вызова.
Вам также потребуется настроитьсловарь грамматики для получения значимых результатов. В противном случае движок будет пытаться распознать любое слово.