如何分散系統的 loading (Windows Speech SDK) |
答題得分者是:daldal
|
Eigen
初階會員 發表:19 回覆:36 積分:26 註冊:2002-12-05 發送簡訊給我 |
如何分散系統的 loading
請指教,謝謝 我用 Windows Speech SDK 5.1 配合 bcb6 pro 做了一個發音的功能。 Windows Speech SDK 5.1 我是用 project ->import type library選擇 Microsoft Speech Object Library (Version 5.1) ->install ,之後會在 ActiveX 的元件中,產出許多新的元件,我將spVoice 拉到 form 之中 用以下四行指令很容易就發出聲音來 void __fastcall TForm1::SpeakString(String s_Str) { ISpeechObjectTokensPtr sots; WideString ws_CreateSound = (WideString)s_Str; SpVoice1->set_Volume(300); SpVoice1->Speak(ws_CreateSound,SVSFDefault); } 主要是參考 http://dn.codegear.com/cn/article/29583 的方式做出來的 原本我用是 一個button 去啟動 timer ,定時將 文字念出來 我來我發現,在念的時候,整個form 都不會動。 後來我改用 TThread ,將發聲的程序移到 thread 之中,但是 form 還是不會動 這是怎麼一回事? 原本我以為是 Synchronize 中的程序有用到 form 之中的原件,所造成 我將整個 Synchronize 程序單純到只重複念單字,還是一樣 我也試過 在 thread 建立時,調降 priority SpeechThread = new SpeechEngine(false); SpeechThread->Priority=tpLowest; SpeechThread->Priority=tpIdle; 結果還是一樣,只要發聲的當下,form 完全不會動 請教一下,我該怎麼做,才對? 謝謝 |
daldal
高階會員 發表:6 回覆:102 積分:226 註冊:2007-06-18 發送簡訊給我 |
這個元件本來就有自己獨立的執行緒囉,
不用用到多執行緒去執行 只要把 SpVoice1->Speak(ws_CreateSound,SVSFlagsAsync); 就可以囉~ 另外他的SpeechVoiceSpeakFlags還有以下幾種 [code cpp] SVSFDefault = 0, SVSFlagsAsync = 1, SVSFPurgeBeforeSpeak = 2, SVSFIsFilename = 4, SVSFIsXML = 8, SVSFIsNotXML = 16, SVSFPersistXML = 32, SVSFNLPSpeakPunc = 64, SVSFNLPMask = 64, SVSFVoiceMask = 127, SVSFUnusedFlags = 0xFFFFFF80 [/code] 所以前面的WideString可以是檔案來源、XML來源等等 要再深入的話,可以到MSDN研究 |
Eigen
初階會員 發表:19 回覆:36 積分:26 註冊:2002-12-05 發送簡訊給我 |
非常感謝,ok了
===================引 用 daldal 文 章=================== 這個元件本來就有自己獨立的執行緒囉, 不用用到多執行緒去執行 只要把 SpVoice1->Speak(ws_CreateSound,SVSFlagsAsync); 就可以囉~ 另外他的SpeechVoiceSpeakFlags還有以下幾種 [code cpp] SVSFDefault = 0, SVSFlagsAsync = 1, SVSFPurgeBeforeSpeak = 2, SVSFIsFilename = 4, SVSFIsXML = 8, SVSFIsNotXML = 16, SVSFPersistXML = 32, SVSFNLPSpeakPunc = 64, SVSFNLPMask = 64, SVSFVoiceMask = 127, SVSFUnusedFlags = 0xFFFFFF80 [/code] 所以前面的WideString可以是檔案來源、XML來源等等 要再深入的話,可以到MSDN研究 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |