2012-03-13 79 views
0

我在Matlab中记录了我的声音。现在我想将该音频转换为字符串i-e;在Matlab中编写句子。有没有办法将音频转换为文本。tlab音频转换

+0

这是一个非常棘手的问题 - 即使是最先进的算法也无法做到这一点。 SO不是这个地方。 – 2012-03-13 17:34:48

回答

0

我很确定MATLAB没有原生的语音到文本功能。

一个快速的Google搜索引发了至少一个将语音到文本整合到MATLAB中的项目。

http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html

可以转化记录的语音转化成文字其他一些软件是微软的SAPI(内置于Windows Vista和Windows 7,并提供下载的Windows XP),并CMU's Sphinx项目。 Nuance Dragon Naturally Speaking是一种选择,但价格相对昂贵。但我不清楚这些如何可以集成到MATLAB中。

0

您可以使用Builtin Windows Speech API实现稍微限制里程数。这取决于你的操作系统等等,你需要从API文档遵循相似的原则: http://msdn.microsoft.com/en-us/library/ms723627(v=vs.85).aspx

使用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'; 

您将需要引用的机器回调函数被调用的文件和什么时候。

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