『壹』 java使用freeTTS,怎麼能讓機器輸出中文語言
FreeTTS可以輸出中文語言過程:
①導入Java 語音API包
②為語音合成器聲明實例變數
③語音合成器的初始化
初始化是FreeTTS應用中關鍵的部分。首先需要建立一個SynthesizerModeDesc 對象,該對象用於指明語音合成器的屬性,包括語音引擎的的名稱、語音引擎的操作模式、支持的語言、語音引擎的運行狀態以及其發音能力等。
④創建語音合成器
創建語言合成器時需要用到Cen t ral 類, 其作用是提供用來訪問所有語音輸入和輸出的能力, 同時也可以定為語言引擎, 根據描述符所定義的屬性集合選擇匹配的引擎, 從而創建語音識別器和語音合成器。語音合成器的創建需使用Central類的createSynthesizer方法,該方法接受一個SynthesizerModeDesc描述符並返回同描述符中所指定屬性相匹配的一個Synthesizer對象,用以實現語音合成。
⑤准備用於朗讀的Synthesizer 對象
該部分通過Synthesizer對象的allocate和resume方法分配語音引擎所需要的資源並取得可用於朗讀的語音合成器。實現較為簡單:speechSynthesizer1allocate();speechSynthesizer1resume();
⑥設置Syn thesizer 對象的屬性
利用getSynthesizerProperties 方法可以獲得Synthesizer對象的屬性,其返回值是與語音合成器相關聯的SynthesizerProperties對象,該對象包含語音合成器的多種屬性, 每種屬性可以通過setProperties方法設置。例如: setSpeakingRate方法可設置speakingRate屬性,實現每分鍾朗讀單詞速率的控制。
⑦事件處理程序設計
speak ingRate 屬性, 實現每分鍾朗讀單詞速率的控制。完成應用程序界面中JButton「讀出號碼」的事件程序設計, 首先通過JComboBox(選擇人名的下拉列表)取得人名(namesArray)的一個索引,該索引與電話號碼索引(numbersArray)保持對應,然後調用Synthesizer對象speakingPlainText方法朗讀整理後的電話號碼字元串。