2012-03-13 112 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'; 

您將需要引用的機器回調函數被調用的文件和什麼時候。

您還需要設置語法詞典才能獲得有意義的結果。因爲引擎會試圖識別任何詞。