Microsoft 代理语音输出标记

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

Microsoft 代理服务支持通过语音文本字符串中插入的特殊标记来修改语音输出。 这些标记有助于更改字符的输出表达式的特征。

语音输出标记使用以下语法规则:

  • 所有标记以反斜杠字符 (\) 开头和结尾。
  • 标记中未启用单个反斜杠字符。 若要在标记的文本参数中包含反斜杠字符,请使用双反斜杠 (\\) 。
  • 标记不区分大小写。 例如,\pit\ 与 \PIT\ 相同。
  • 标记依赖于空格。 例如,\Rst\ 与 \ Rst \不同。

除非其他标记另有指定或修改,否则语音输出将保留标记在单个 Speak 方法中指定的文本中设置的特征。 语音输出在完成 Speak 方法后,将通过用户定义的参数自动重置。

某些标记包含带引号的字符串。 对于某些编程语言(如 Visual Basic Scripting Edition (VBScript) 和 Visual Basic),这意味着可能需要使用两个引号来指定标记的参数或连接双引号字符作为字符串的一部分。 后者如以下 Visual Basic 示例所示:

Agent1.Characters("Genie").Speak "This is \map=" + chr(34) + "Spoken text" _
+ chr(34) + "=" + chr(34) + "Balloon text" + chr(34) + "\."

对于 C、C++ 和 Java™ 编程,在反斜杠和双引号前面加上反斜杠。 例如:

BSTR bszSpeak = SysAllocString(L"This is \\map=\"Spoken text\"=\"Balloon text\"\\");

pCharacter->Speak(bszSpeak, ......);

对于支持双字节字符集 (DBCS) 字符的外语,可以使用双字节字符指定字符串参数。 但是,对于用于定义标记的所有其他参数和字符(包括标记本身),请使用单字节字符。

支持以下标记:

标记主要用于调整文本转语音 (TTS) 生成的输出。 只有 MrkMap 标记可用于基于声音文件的语音输出。

注意

Microsoft 代理不支持 Microsoft 语音 SDK 中记录的所有标记。 参数也可能因所选 TTS 引擎而异。 可以使用 TTSModeID 设置特定的 TTS 引擎。