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 引擎。