SAPI的TTS都是通過SpVoice對(duì)象來(lái)完成的。SpVoice類是支持語(yǔ)音合成(TTS)的核心類。通過SpVoice對(duì)象調(diào)用TTS引擎,從而實(shí)現(xiàn)朗讀功能。 SpVoice類有以下主要屬性:
- Voice:表示發(fā)音類型,相當(dāng)于進(jìn)行朗讀的人,通常我們可以通過安裝相應(yīng)的語(yǔ)音引擎來(lái)增加相應(yīng)的語(yǔ)音。
- Rate:語(yǔ)音朗讀速度,取值范圍為-10到+10。數(shù)值越大,速度越快。
- Volume:音量,取值范圍為0到100。數(shù)值越大,音量越大。
- Speak():完成將文本信息轉(zhuǎn)換為語(yǔ)音并按照指定的參數(shù)進(jìn)行朗讀,該方法有Text和Flags兩個(gè)參數(shù),分別指定要朗讀的文本和朗讀方式(同步或異步等)。
- GetVoices():獲取系統(tǒng)中的語(yǔ)音,用于指定SpVoice的Voice屬性。
- Pause():暫停使用該對(duì)象的所有朗讀進(jìn)程。該方法沒有參數(shù)。
- Resume():恢復(fù)該對(duì)象所對(duì)應(yīng)的被暫停的朗讀進(jìn)程。該方法沒有參數(shù)。
// SpVoice對(duì)象,我們將使用這個(gè)對(duì)象來(lái)朗讀文本 private SpVoice m_spVoice; private void Init() { // 創(chuàng)建SpVoice對(duì)象 m_spVoice = new SpVoice(); // 枚舉出系統(tǒng)中已經(jīng)安裝的語(yǔ)音,并將其填充到Combo Box控件中 foreach (ISpeechObjectToken Token in m_spVoice.GetVoices(string.Empty, string.Empty)) { this.cmbVoices.Items.Add(Token.GetDescription(49)); } // 默認(rèn)選中第一個(gè)語(yǔ)音 cmbVoices.SelectedIndex = 0; } |
IT168