我们可以在 MATLAB 中使用 Microsoft Speech API 的语音转文本功能吗?这是文本到语音的代码。我们如何使用SAPI的功能是语音到文本?对于 tts:
textIn = 'voice';
ha = actxserver('SAPI.SpVoice');
invoke(ha,'speak',textIn);
您可以按照与 C# 等类似的过程使用 MATLAB 的 activeX 服务器: 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';
您需要参考 http://msdn.microsoft.com/en-us/library/ms723627(v=vs.85).aspx时调用哪些函数的文档
您还需要设置语法词典以获得有意义的结果。因为引擎将尝试以其他方式识别任何单词。