我们可以在MATLAB中使用Microsoft Speech API语音来实现文本功能吗?

时间:2013-02-26 09:58:12

标签: api matlab speech

我们可以在MATLAB中使用Microsoft Speech API的语音功能吗?  这是文本到语音的代码。我们如何使用SAPI的功能是语音到文本? 对于tts:

textIn = 'voice';
    ha = actxserver('SAPI.SpVoice');
    invoke(ha,'speak',textIn);

1 个答案:

答案 0 :(得分:0)

您可以使用MATLAB的activeX服务器执行与C#等类似的过程: 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

您还需要设置语法词典以获得有意义的结果。因为引擎会尝试识别任何单词。