在代码中访问语音引擎

[从 Windows 7 开始,Microsoft 代理已弃用,可能在后续版本的 Windows 中不可用。]

若要在代码中使用特定语音引擎,请使用代理 API 设置引擎。 对于语音输入引擎,请使用 SRModeID,指定引擎的模式 ID。 但请注意,必须安装引擎。 若要确定引擎是否存在,可以查询 SRModeID。 引擎必须与字符的 LanguageID 设置匹配。 例如,对于 LanguageID 为法语的字符,不能将 SRModeID 设置为德语语音识别引擎模式 ID。

语音输入引擎模式 ID

语音 模式 ID
Microsoft 语音识别引擎 v4.0 {D8905400-B5C8-11D0-B968020AFDB1B9C}

 

在尝试为应用程序的 Command 对象的语音参数定义语法之前,请在代码中检查并设置字符的 LanguageIDSRModeID。 此外,请考虑检查浏览器或系统语言,以便确保与用户的配置匹配。 如果尝试为引擎不匹配的语言定义语法,引擎可能会失败。

文本转语音 (TTS) 输出的字符集可以使用默认语音输出引擎的模式 ID 首选项进行编译。 加载字符时,如果已安装引擎并且与字符的 LanguageID 匹配,代理将尝试为语音输出加载该模式 ID。 如果引擎不存在或具有不同的 LanguageID,则代理将尝试加载它找到的第一个模式 ID,该模式 ID 与字符的 LanguageID 匹配,但仍会设置字符的编译速度和音调设置。

请注意,由于 Microsoft 代理提供的所有字符都编译为使用 Lernout & Hauspie TruVoice 美式英语引擎作为默认语音输出引擎,因此会针对此语言和引擎调整字符的速度和音调设置。 因此,在使用其他 TTS 引擎或其他语言的引擎时,字符可能无法以最佳音调或速度说话。 尽管应用程序或网页无法写入 PitchSpeed 属性值,但可以在输出文本中包含 Pit (间距) 和 Spd (speed) 标记,这些标记将暂时更改特定话语的音调和速度。 但是,使用 Pit 和 Spd 标记不会更改 PitchSpeed 属性。 有关详细信息 ,请参阅 Microsoft 代理控制和Microsoft 代理语音输出标记 的编程。

使用其他符合 SAPI 的 TTS 引擎时,还需要安装 SAPI 4.0a 运行时二进制文件 (SPCHAPI.exe) ,而不是带有 Microsoft 代理提供的字符的 L&H TruVoice 美式英语引擎,以便正确枚举引擎。 在网页中,包含以下 Object 标记以自动安装组件:

<OBJECT width=0 height=0
CLASSID="CLSID:0C7F3F20-8BAB-11d2-9432-00C04F8EF48F"
CODEBASE="#VERSION=4,0,0,0">
</OBJECT>

若要查询或设置引擎的模式 ID,请使用 TTSModeID。 使用 TTSModeID 可以设置与字符 的 LanguageID 不同的模式 ID。 例如,可以将德语字符设置为使用法语模式 ID 说话。 语音输出引擎模式 ID 不仅定义所使用的引擎,还对应于引擎支持的特定语音。 还可以使用 Microsoft 代理字符编辑器或 Microsoft 语音 SDK 文档 中包含的工具来查询系统上安装的 TTS 引擎的模式 ID。

语音输出模式 ID

语音 模式 ID
成人女性 #1,美国英语,L&H TruVoice {CA141FD0-AC7F-11D1-97A3-006008273008}
成人女性 #2,美国英语,L&H TruVoice {CA141FD0-AC7F-11D1-97A3-006008273009}
成人男性 #1,美国英语,L&H TruVoice {CA141FD0-AC7F-11D1-97A3-006008273000}
成年男性 #2,美国英语,L&H TruVoice {CA141FD0-AC7F-11D1-97A3-006008273001}
成人男性 #3,美国英语,L&H TruVoice {CA141FD0-AC7F-11D1-97A3-006008273002}
成人男性 #4,美国英语,L&H TruVoice {CA141FD0-AC7F-11D1-97A3-006008273003}
成年男性 #5,美国英语,L&H TruVoice {CA141FD0-AC7F-11D1-97A3-006008273004}
成年男性 #6,美国英语,L&H TruVoice {CA141FD0-AC7F-11D1-97A3-006008273005}
成年男性 #7,美国英语,L&H TruVoice {CA141FD0-AC7F-11D1-97A3-006008273006}
成年男性 #8,美国英语,L&H TruVoice {CA141FD0-AC7F-11D1-97A3-006008273007}
Carol、英国英语、L&H TTS3000 {227A0E40-A92A-11d1-B17B-0020AFED142E}
Peter,英国英语,L&H TTS3000 {227A0E41-A92A-11d1-B17B-0020AFED142E}
琳达,荷兰语,L&H TTS3000 {A0DDCA40-A92C-11d1-B17B-0020AFED142E}
Alexander,荷兰语,L&H TTS3000 {A0DDCA41-A92C-11d1-B17B-0020AFED142E}
Véronique,法语,L&H TTS3000 {0879A4E0-A92C-11d1-B17B-0020AFED142E}
Pierre,法语,L&H TTS3000 {0879A4E1-A92C-11d1-B17B-0020AFED142E}
Anna,德语,L&H TTS3000 {3A1FB760-A92B-11d1-B17B-0020AFED142E}
Stefan,德语,L&H TTS3000 {3A1FB761-A92B-11d1-B17B-0020AFED142E}
Barbara,意大利语,L&H TTS3000 {7EF71700-A92D-11d1-B17B-0020AFED142E}
Stefano,意大利语,L&H TTS3000 {7EF71701-A92D-11d1-B17B-0020AFED142E}
Naoko,日语,L&H TTS3000 {A778E060-A936-11d1-B17B-0020AFED142E}
Kenji,日语,L&H TTS3000 {A778E061-A936-11d1-B17B-0020AFED142E}
Shin-Ah、朝鲜语、L&H TTS3000 {12E0B720-A936-11d1-B17B-0020AFED142E}
Jun-Ho,朝鲜语,L&H TTS3000 {12E0B721-A936-11d1-B17B-0020AFED142E}
Juliana,葡萄牙语 (巴西) ,L&H TTS3000 {8AA08CA0-A1AE-11d3-9BC5-00A0C967A2D1}
亚历山大,葡萄牙语 (巴西) ,L&H TTS3000 {8AA08CA1-A1AE-11d3-9BC5-00A0C967A2D1}
Svetlana,俄语,L&H TTS3000 {06377F80-D48E-11d1-B17B-0020AFED142E}
鲍里斯,俄语,L&H TTS3000 {06377F81-D48E-11d1-B17B-0020AFED142E}
卡门,西班牙语,L&H TTS3000 {2CE326E0-A935-11d1-B17B-0020AFED142E}
Julio,西班牙语,L&H TTS3000 {2CE326E1-A935-11d1-B17B-0020AFED142E}

 

注意

语音引擎的安装 CLSID 与其模式 ID 之间存在差异。 同样,语音引擎也有引擎 ID,但此 ID 不适用于代理 API。