你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在应用程序中使用个人语音
可以使用个人语音的说话人配置文件 ID,以合成 100 多个区域设置中支持的 91 种语言中的任意语言的语音。 不需要区域设置标记。 个人语音在句子级别使用自动语言检测。
在应用程序中集成个人语音
需要使用语音合成标记语言 (SSML) 才能在应用程序中使用个人语音。 SSML 是一种基于 XML 的标记语言,它提供了一种标准方法来标记文本以生成合成语音。 SSML 标记用于控制语音合成输出的发音、音量、音调、语速和其他属性。
SSML 中的
speakerProfileId
属性用于为个人语音指定说话人配置文件 ID。语音名称在 SSML 的
name
属性中指定。 对于个人声音,声音名称必须为受支持的基础模型声音名称。 若要获取受支持的基础模型语音名称列表,请使用定制声音 API 的 BaseModels_List 操作。注意
标记为
Latest
的声音名称(例如DragonLatestNeural
或PhoenixLatestNeural
)将不时更新,其性能可能因持续改进的更新而异。 如果要使用固定版本,请选择一个标有版本号的版本,例如PhoenixV2Neural
。DragonLatestNeural
是一个基础模型,与PhoenixLatestNeural
相比具有优越的声音克隆相似性。PhoenixLatestNeural
是一个基础模型,具有比DragonLatestNeural
更准确的发音和更低的延迟。对于个人语音,你仍然可以使用
<lang xml:lang>
元素来调整讲话语言。 这与多语言语音相同。 请参阅如何使用 lang 元素讲不同语言。
下面是文本转语音请求中的 SSML 示例,其中包含语音名称和讲话人配置文件 ID。 此示例还演示了如何使用 <lang xml:lang>
元素将语言从 en-US
切换到 zh-HK
。
<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts' xml:lang='en-US'>
<voice name='DragonLatestNeural'>
<mstts:ttsembedding speakerProfileId='your speaker profile ID here'>
I'm happy to hear that you find me amazing and that I have made your trip planning easier and more fun.
<lang xml:lang='zh-HK'>我很高興聽到你覺得我很了不起,我讓你的旅行計劃更輕鬆、更有趣。</lang>
</mstts:ttsembedding>
</voice>
</speak>
可以通过 语音 SDK 或 REST API 使用 SSML。
- 实时语音合成:使用语音 SDK 或 REST API 将文本转换为语音。
- 使用语音 SDK 时,请勿像使用预生成声音时那样设置终结点 ID。
- 使用 REST API 时,请使用预生成的神经语音终结点。
个人声音支持和不支持的 SSML 元素
有关 Phoenix 和 Dragon 模型支持和不支持的 SSML 元素的详细信息,请参阅下表。 有关如何使用 SSML 元素的说明,请参阅 SSML 文档结构和事件。
元素 | 说明 | 在 Phoenix 中受支持 | 在 Dragon 中受支持 |
---|---|---|---|
<voice> |
指定声音和可选效果(eq_car 和 eq_telecomhp8k )。 |
是 | 是 |
<mstts:express-as> |
指定讲话风格和角色。 | 否 | 否 |
<mstts:ttsembedding> |
指定个人声音的 speakerProfileId 属性。 |
是 | 是 |
<lang xml:lang> |
指定讲话语言。 | 是 | 是 |
<prosody> |
调整音节、调型、范围、语速和音量。 | ||
pitch |
指示文本的基线音节。 | 否 | 否 |
contour |
表示音节变化。 | 否 | 否 |
range |
表示文本音节的范围。 | 否 | 否 |
rate |
指示文本的讲出速率。 | 是 | 是 |
volume |
指示语音的音量级别。 | 否 | 否 |
<emphasis> |
添加或删除文本的单词级强调。 | 否 | 否 |
<audio> |
将预先录制的音频嵌入 SSML 文档中。 | 是 | 否 |
<mstts:audioduration> |
指定输出音频的持续时间。 | 否 | 否 |
<mstts:backgroundaudio> |
将后台音频添加到 SSML 文档,或者使用文本转语音来混合音频文件。 | 是 | 否 |
<phoneme> |
指定 SSML 文档中的发音。 | ||
ipa |
音标之一。 | 是 | 否 |
sapi |
音标之一。 | 否 | 否 |
ups |
音标之一。 | 是 | 否 |
x-sampa |
音标之一。 | 是 | 否 |
<lexicon> |
定义如何在 SSML 中读取多个实体。 | 是 | 是(仅支持别名) |
<say-as> |
指示元素的文本的内容类型,例如数字或日期。 | 是 | 是 |
<sub> |
指示应读出别名属性的文本值,而不是元素中包含的文本。 | 是 | 是 |
<math> |
使用 MathML 作为输入文本,以便在输出音频中正确读出数学符号。 | 是 | 否 |
<bookmark> |
获取音频流中每个标记的偏移量。 | 是 | 否 |
<break> |
替代字词之间的默认中断或暂停行为。 | 是 | 是 |
<mstts:silence> |
在文本前后或在两个相邻句子之间插入暂停。 | 是 | 否 |
<mstts:viseme> |
定义一个人说话时面部和嘴巴的位置。 | 是 | 否 |
<p> |
表示 SSML 文档中的段落。 | 是 | 是 |
<s> |
表示 SSML 文档中的句子。 | 是 | 是 |
个人声音支持和不支持的 SDK 功能
下表概述了 Phoenix 和 Dragon 模型支持的 SDK 功能。 有关如何在应用程序中利用这些 SDK 功能的详细信息,请参阅订阅合成器事件。
SDK 功能 | 描述 | 在 Phoenix 中受支持 | 在 Dragon 中受支持 |
---|---|---|---|
字边界 | 指示在合成过程中接收到一个字边界,从而在语音合成过程中提供精确的字级时间。 | 是 | 否 |
视素事件 | 在合成过程中提供视素(嘴唇、下巴和舌头动作)信息,支持视觉同步。 | 是 | 否 |