tlab音频转换

时间:2012-03-13 17:21:20

标签: matlab audio

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

2 个答案:

答案 0 :(得分:0)

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

快速谷歌搜索至少发现了一个将语音到文本集成到MATLAB中的项目。

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

其他一些可以将录制的语音翻译成文本的软件是Microsoft的SAPI(内置于Windows Vista和Windows 7中,可以下载到Windows XP中)和CMU's Sphinx项目。 Nuance Dragon Naturally Speaking是一种选择,但它相对昂贵。对我来说,如何将它们集成到MATLAB中并不明显。

答案 1 :(得分: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';

您需要参考调用回调函数的文档以及何时使用。

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