你当前正在访问 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 的声音名称(例如 DragonLatestNeuralPhoenixLatestNeural)将不时更新,其性能可能因持续改进的更新而异。 如果要使用固定版本,请选择一个标有版本号的版本,例如 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>

可以通过 语音 SDKREST API 使用 SSML。

  • 实时语音合成:使用语音 SDKREST API 将文本转换为语音。
    • 使用语音 SDK 时,请勿像使用预生成声音时那样设置终结点 ID。
    • 使用 REST API 时,请使用预生成的神经语音终结点。

个人声音支持和不支持的 SSML 元素

有关 Phoenix 和 Dragon 模型支持和不支持的 SSML 元素的详细信息,请参阅下表。 有关如何使用 SSML 元素的说明,请参阅 SSML 文档结构和事件

元素 说明 在 Phoenix 中受支持 在 Dragon 中受支持
<voice> 指定声音和可选效果(eq_careq_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 中受支持
字边界 指示在合成过程中接收到一个字边界,从而在语音合成过程中提供精确的字级时间。
视素事件 在合成过程中提供视素(嘴唇、下巴和舌头动作)信息,支持视觉同步。

参考文档

后续步骤

  • 有关神经网络定制声音的详细信息,请参阅概述
  • 有关 Speech Studio 的详细信息,请参阅概述