SAPI的TTS都是通过SpVoice对象来完成的。SpVoice类是支持语音合成(TTS)的核心类。通过SpVoice对象调用TTS引擎,从而实现朗读功能。 SpVoice类有以下主要属性:
- Voice:表示发音类型,相当于进行朗读的人,通常我们可以通过安装相应的语音引擎来增加相应的语音。
- Rate:语音朗读速度,取值范围为-10到+10。数值越大,速度越快。
- Volume:音量,取值范围为0到100。数值越大,音量越大。
- Speak():完成将文本信息转换为语音并按照指定的参数进行朗读,该方法有Text和Flags两个参数,分别指定要朗读的文本和朗读方式(同步或异步等)。
- GetVoices():获取系统中的语音,用于指定SpVoice的Voice属性。
- Pause():暂停使用该对象的所有朗读进程。该方法没有参数。
- Resume():恢复该对象所对应的被暂停的朗读进程。该方法没有参数。
// SpVoice对象,我们将使用这个对象来朗读文本 private SpVoice m_spVoice; private void Init() { // 创建SpVoice对象 m_spVoice = new SpVoice(); // 枚举出系统中已经安装的语音,并将其填充到Combo Box控件中 foreach (ISpeechObjectToken Token in m_spVoice.GetVoices(string.Empty, string.Empty)) { this.cmbVoices.Items.Add(Token.GetDescription(49)); } // 默认选中第一个语音 cmbVoices.SelectedIndex = 0; } |
IT168