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