C 中呼叫SAPI實現語音識別的2種方法

2022-02-14 22:49:54 字數 1894 閱讀 7378

通過微軟的sapi,不僅僅可以實現語音合成tts,同樣可以實現語音識別sr。下面我們就介紹並貼出相關**。主要有兩種方式:

1、使用com元件技術,不管是c++,c#,delphi都能玩的轉,開發出來的東西在xp和win7都能跑。(注意要引入系統元件speechlib,xp要安裝識別引擎)

2、使用win7的windows api,其實最終還是呼叫了sapi,所以開發出來的東西就只能在win7上面跑。

其實不管是哪一種,都是呼叫sapi,可能後一種**比較簡單。

使用第一種方式,需要注意在com選項卡裡面的microsoft speech  object  library引用

public

class

sprecognition

public

void

beginrec()

public

static

sprecognition instance()

public

void

closerec()

private

void contexrecognition(int iindex, object

obj, speechlib.speechrecognitiontype type, speechlib.ispeechrecoresult result)

}}

第二種同樣需要引入,不過引入的是win7中的.net3.5類庫

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.speech;

using

system.speech.recognition;

using

system.globalization;

using

system.windows.forms;

namespace

studybeta

//選擇美國英語的識別引擎

}

if (recognizer != null

)

else

}private

void initializespeechrecognitionengine(string

fg)public

void beginrec(control tbresult)//

關聯視窗控制項

public

void over()//

停止語音識別引擎

public

virtual grammar createcustomgrammar(string fg) //

創造自定義語法

private

void turnspeechrecognitionon()//

啟動語音識別函式

else

}private

void turnspeechrecognitionoff()//

關閉語音識別函式

else

}private

void recognizer_speechrecognized(object

sender, speechrecognized eventargs e)

private

void

turndictationon()

else

}private

void

turndictationoff()

else

}}}

***********:

C 呼叫SAPI實現語音識別的兩種方法

size medium 通過微軟的sapi,不僅僅可以實現語音合成tts,同樣可以實現語音識別sr。下面我們就介紹並貼出相關 主要有兩種方式 color red 1 使用com元件技術,不管是c c delphi都能玩的轉,開發出來的東西在xp和win7都能跑。注意要引入系統元件speechlib,...

c 用微軟SAPI進行實時語音識別

vs2015,c include include include include include include sphelper.h include using namespace std inline hresult blockforresult isprecocontext precoctxt...

語音中的關於語音識別的一些知識

以下內容都是抄的,哈哈哈 1.mel頻率 是模擬人耳對不同頻率語音的感知。人類對不同頻率語音有不同的感知能力 對1khz以下,與頻率成線性關係,對1khz以上,與頻率成對數關係。頻率越高,感知能力就越差了。因此,在應用中常常只使用低頻mfcc,而丟棄中高頻mfcc。在mel頻域內,人對音調的感知能力...