圖1 軟件原理圖
2、VtxtAuto接口說明
Delphi中使用MSTTS引擎的類型庫名為VtxtAuto,通過分析,可以了解VtxtAuto的相關成員函數和屬性。
2.1 Speak函數
procedure Speak(const pszBuffer: WideString; dwFlags: Integer); safecall;
Speak函數用於實現朗讀功能,它有兩個參數,第一個參數向MSTTS引擎傳遞需要朗讀的文字,第二個參數由指定朗讀時使用的語氣和優先級的兩個符號合並而成。
2.2 Register函數
procedure Register(const pszSite: WideString; const pszApp: WideString);safecall;
Register函數用於實現接口的注冊。在軟件的初始化時,Register操作是必須的,因為在操作系統中可能有多個類似的程序在使用MSTTS引擎,通過Register操作可以對每一個使用MSTTS引擎的軟件進行設置和區分。
2.3 IsSpeaking屬性
property IsSpeaking: WordBool read Get_IsSpeaking;
IsSpeaking屬性是一個布爾函數,通過這個屬性可以取得當前程序的狀態,
2.4朗讀操作成員函數
VtxtAuto對象有一系列的成員函數,通過這些成員函數,可以實現對朗讀功能的各種操作、控制,具體函數如表1所示。
表1 VtxtAuto對象的成員函數
函數命令形式
函數說明
VtxtAuto.AudioResume
用於朗讀狀態的恢復操作
VtxtAuto.StopSpeaking
用於實現停止朗讀
VtxtAuto.AudioPause
用於實現暫停朗讀
VtxtAuto.AudioFastForward
用於實現向前跳過一句朗讀
VtxtAuto.AudioRewind
用於實現向後跳過一句朗讀
此外,還有一個屬性Speed,通過讀寫Speed屬性可以取得或設置朗讀的語速,其單位是“字數/分鐘”,缺省值為170。