你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Foundry 工具中的 Azure 语音通过神经高清 (HD) 语音不断推进文本转语音技术。 我们的 HD 语音可理解内容,自动检测输入文本中的情绪,并实时调整语调以匹配情绪。 它们保持一致的语音角色,同时提供增强的表达力、自然性和控制力。
高清语音概述
Azure 语音提供两个高级 HD 语音模型,每个模型针对不同的用例进行优化:
| 型号 | 语音计数 | 主要特征 | 最适用于 |
|---|---|---|---|
| DragonHD | 30 多种微调语音 | 专业品质、准确发音、多声源支持 | 需要高质量输出的企业应用程序 |
| DragonHDOmni | 700 多种语音(包含所有已发布的语音和新的 AI 生成语音) | 样式支持,多语言,灵活添加新的语音和样式。 | 多样化的应用程序,内容创建,广泛的角色多样性 |
HD 语音的主要功能
以下是 Azure HD 语音的主要功能:
| 关键功能 | 说明 |
|---|---|
| 类人类语音生成 | 神经网络文本转语音 HD 声音可以生成高度自然和类似于人类的语音。 该模型基于数百万小时的多语言数据进行训练,使模型能够准确解释输入文本,并使用适当的情感、速度和节奏生成语音,无需手动调整。 |
| 对话 | 神经网络文本转语音 HD 声音可以复制自然语音模式,包括自发暂停和强调。 给定对话文本时,模型可以重现常见的音素,如停顿和填充词。 生成的声音听起来像是有人直接与你交谈。 |
| 韵律变化 | 神经网络文本转语音 HD 声音在每个输出中引入了轻微的变化,以增强真实感。 这些变化使语音听起来更自然,因为人类的声音会自然地表现出变化。 |
| 高保真度 | 神经网络语音合成(HD)声音的主要目标是生成高保真音频。 我们系统生成的合成语音可以紧密模仿人类语音的质量和自然性。 |
Azure 语音 HD 声音与其他 Azure 文本转语音声音的比较
Azure 语音 HD 声音与其他 Azure 文本转语音声音相比如何? 下面是详细的比较:
| 功能 / 特点 | Azure 语音 HD 声音 | Azure OpenAI HD 声音 | Azure 语音合成(非 HD) |
|---|---|---|---|
| 区域 | 请参阅 语音服务区域 | 请参阅 语音服务区域 | 在数十个区域中可用。 请参阅 语音服务区域。 |
| 语音数 | 30 | 6 | 超过 500 |
| 多语言 | 是 | 是 | 是(仅适用于多语言声音) |
| SSML 支持 | 对一部分 SSML 元素的支持。 | 对一部分 SSML 元素的支持。 | 支持 Azure 语音中 完整的 SSML 功能。 |
| 开发选项 | 语音 SDK、语音 CLI、REST API | 语音 SDK、语音 CLI、REST API | 语音 SDK、语音 CLI、REST API |
| 部署选项 | 仅限云 | 仅限云 | 云、嵌入式、混合和容器。 |
| 实时或批量合成 | 仅实时 | 实时和批量合成 | 实时和批量合成 |
| 延迟 | 小于 300 毫秒 | 大于 500 毫秒 | 小于 300 毫秒 |
| 合成音频的采样率 | 8、16、24 和 48 kHz | 8、16、24 和 48 kHz | 8、16、24 和 48 kHz |
| 语音输出音频格式 | opus、mp3、pcm、truesilk | opus、mp3、pcm、truesilk | opus、mp3、pcm、truesilk |
支持的 Azure 高保真语音
Azure 语音提供两组具有不同模型体系结构的 HD 语音:
Dragon HD 语音
Azure 语音 HD 声音值采用 voicename:DragonHD:version 格式。 冒号前的名称(例如en-US-Ava)是声音角色名称及其原始语言环境。
若要确保使用的是我们提供的基准模型的最新版本,请使用版本 LatestNeural 。
例如,对于角色 en-US-Ava ,可以指定:
-
en-US-Ava:DragonHDLatestNeural:始终使用最新版本的 DragonHD 基础模型。
下表列出了可用的 DragonHD 语音:
| 声音名称 | 性别 | 状态 | 注意 |
|---|---|---|---|
| de-DE-Florian:DragonHDLatestNeural | 男 | GA | |
| de-DE-Seraphina:DragonHDLatestNeural | 女性 | GA | |
| en-US-Adam:DragonHDLatestNeural | 男 | GA | |
| en-US-Alloy:DragonHDLatestNeural | 男 | 预览 | |
| en-US-Andrew:DragonHDLatestNeural | 男 | GA | |
| en-US-Andrew2:DragonHDLatestNeural | 男 | GA | 已针对对话内容进行优化 |
| en-US-Andrew3:DragonHDLatestNeural | 男 | 预览 | 已针对播客内容进行优化 |
| en-US-Aria:DragonHDLatestNeural | 女性 | 预览 | |
| en-US-Ava:DragonHDLatestNeural | 女性 | GA | |
| en-US-Ava3:DragonHDLatestNeural | 女性 | 预览 | 已针对播客内容进行优化 |
| en-US-Brian:DragonHDLatestNeural | 男 | GA | |
| en-US-Davis:DragonHDLatestNeural | 男 | GA | |
| en-US-Emma:DragonHDLatestNeural | 女性 | GA | |
| en-US-Emma2:DragonHDLatestNeural | 女性 | GA | 已针对对话内容进行优化 |
| en-US-Jenny:DragonHDLatestNeural | 女性 | 预览 | |
| en-US-MultiTalker-Ava-Andrew:DragonHDLatestNeural | 男 | 预览 | |
| en-US-Nova:DragonHDLatestNeural | 女性 | 预览 | |
| en-US-Phoebe:DragonHDLatestNeural | 女性 | 预览 | |
| en-US-Serena:DragonHDLatestNeural | 女性 | 预览 | |
| en-US-Steffan:DragonHDLatestNeural | 男 | GA | |
| es-ES-Tristan:DragonHDLatestNeural | 男 | GA | |
| es-ES-Ximena:DragonHDLatestNeural | 女性 | GA | |
| fr-FR-Remy:DragonHDLatestNeural | 男 | GA | |
| fr-FR-Vivienne:DragonHDLatestNeural | 女性 | GA | |
| ja-JP-Masaru:DragonHDLatestNeural | 男 | GA | |
| ja-JP-Nanami:DragonHDLatestNeural | 女性 | GA | |
| zh-CN-Xiaochen:DragonHDLatestNeural | 女性 | GA | |
| zh-CN-Yunfan:DragonHDLatestNeural | 男 | GA |
Dragon HD Omni 语音
Dragon HD Omni 是 Azure 语音的统一下一代模型,可将预生成语音和 AI 生成的语音组合到一个灵活的平台中。 它具有超过 700 种语音,具有增强的表达能力、多语言支持、高级样式控件和自动样式预测。
Dragon HD Omni 的主要功能
- 700 多个语音:包括具有改进质量的大多数以前的语音,以及具有不同特征的 300 多个 AI 生成的语音
-
高级样式控件:使用自然语言说明的自动样式预测(最初可用于
en-US-Ava和en-US-Andrew) -
多语言支持:所有 Dragon HD Omni 语音都支持多种语言,支持自动语言检测和 SSML
<lang>标记支持 - 增强的韵律:利用自动上下文适应提高自然度
- Word 边界事件支持:为同步的应用程序启用精确的字级计时
Dragon HD Omni 支持的样式
Dragon HD Omni 支持一套全面的 100 多种说话风格。 在style内使用<mstts:express-as>属性应用以下任一样式:
angry、chill surfer、confused、curious、determined、disgusted、embarrassed、emo teenager、empathetic、encouraging、excited、fearful、friendly、grateful、joyful、mad scientist、meditative、narration、neutral、new yorker、news、reflective、regretful、relieved、sad、santa、shy、soft voice、surprised
注意
此版本的 en-US-Ava 和 en-US-Andrew 支持语音风格。 样式结果与输入内容密切相关:模型根据文本的语义含义调整样式应用程序。
Dragon HD Omni 语音命名约定
Dragon HD Omni 语音的命名遵循以下模式:languagelocale-voicename:DragonHDOmniLatestNeural 可以通过在语音名称格式中添加后缀 :DragonHDOmniLatestNeural 来快速找到 Omni 版本。
示例:
| 之前的神经语音 | Omni版语音名称 |
|---|---|
| de-DE-ConradNeural | de-DE-Conrad:DragonHDOmniLatestNeural |
如何使用 Azure 语音 HD 声音
可以通过与非 HD 声音相同的语音 SDK 和 REST API 使用 HD 声音。
使用 Azure Speech HD 语音功能时需要考虑以下要点:
- 声音区域设置:声音名称中的区域设置指示其原始语言和区域。
-
基础模型:
- HD 声音附带一个基础模型,该模型可理解输入文本并相应地预测说话模式。 可以根据每个声音的可用性指定所需的模型(如 DragonHDLatestNeural)。
-
SSML 用法:若要在 SSML 中引用声音,请使用格式
voicename:basemodel:version。 冒号前的名称(例如de-DE-Seraphina)是声音角色名称及其原始语言环境。 基础模型会在后续更新中按版本跟踪。 -
温度参数:
- 温度值为 0 到 1 的浮点,影响输出的随机性。 还可以调整温度参数来控制输出的变化。 更低的随机性会产生更稳定的结果,而更高的随机性会提供多样性而减少一致性。
- 温度较低会导致随机性较低,从而导致更可预测的输出。 温度较高会增加随机性,从而带来更多样化的输出。 默认温度设置为 1.0。
下面是一个例子,说明如何在 SSML 中使用 Azure 语音 HD 语音:
<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='https://www.w3.org/2001/mstts' xml:lang='en-US'>
<voice name='en-US-Ava:DragonHDLatestNeural' parameters='temperature=0.8'>Here is a test</voice>
</speak>
Dragon HD Omni 高级功能
通过 Express-As 进行风格控制
Dragon HD Omni 支持使用具有自然语言描述的 mstts:express-as 元素的高级样式控制。 下面是一个示例:
<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="en-us-ava:DragonHDOmniLatestNeural">
<mstts:express-as style="sick">
Ugh… I'm not feeling so great today. My head's pounding, and even my voice sounds like it's been through a blender. I think I need to lie down for a bit… maybe some soup would help.
</mstts:express-as>
</voice>
</speak>
多语言支持
所有 Dragon HD Omni 语音都支持使用自动语言检测的多种语言。 还可以使用该 <lang xml:lang> 标记显式指定说话语言和口音:
<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="en-us-ava:DragonHDOmniLatestNeural">
<lang xml:lang="fr-FR">
Bonjour ! Ce matin, j'ai pris un café au jardin du Luxembourg. Il faisait frais, mais très agréable. Ensuite, j'ai acheté une baguette et quelques macarons. Paris est vraiment charmant.
</lang>
</voice>
</speak>
词边界事件
Dragon HD Omni 支持词边界事件,允许在卡拉OK、实时字幕和交互式语音体验等同步应用中实现精确的词级计时。
当单词边界事件触发时,它提供:
- 文本:口述单词
- AudioOffset:音频流中的时间偏移量(毫秒)
- TextOffset:单词在输入文本中的位置
包含字边界事件的 Python 示例
import azure.cognitiveservices.speech as speechsdk
def word_boundary_cb(evt):
print(f"Word: '{evt.text}', AudioOffset: {evt.audio_offset / 10000}ms, TextOffset: {evt.text_offset}")
speech_config = speechsdk.SpeechConfig(subscription="YourSubscriptionKey", region="YourServiceRegion")
synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config)
synthesizer.synthesis_word_boundary.connect(word_boundary_cb)
ssml = """
<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='en-us-ava:DragonHDOmniLatestNeural'>
Hello Azure, welcome to Dragon HD Omni!
</voice>
</speak>
"""
result = synthesizer.speak_ssml_async(ssml).get()
示例输出:
Word: 'Hello', AudioOffset: 110.0ms, TextOffset: 182
Word: 'Azure', AudioOffset: 590.0ms, TextOffset: 188
Word: ',', AudioOffset: 1110.0ms, TextOffset: 193
Word: 'welcome', AudioOffset: 1270.0ms, TextOffset: 195
Word: 'to', AudioOffset: 1750.0ms, TextOffset: 203
Word: 'Dragon HD Omni', AudioOffset: 1910.0ms, TextOffset: 206
Word: '!', AudioOffset: 2750.0ms, TextOffset: 216
Dragon HD Omni 的高级参数优化
Dragon HD Omni 支持高级参数优化,以自定义不同方案的语音输出。
参数参考
| 参数 | 违约 | 范围 | 目的 |
|---|---|---|---|
temperature |
0.7 | 0.3–1.0 | 调控创造力与稳定性 |
top_p |
0.7 | 0.3–1.0 | 过滤输出以确保多样性 |
top_k |
22 | 1–50 | 限制考虑的选项数 |
cfg_scale |
1.4 | 1.0–2.0 | 调整相关性和语音速度 |
调优策略
表现力与稳定性之间的关系:
- 更高的
temperature、top_p和top_k值会导致语音更加富有表现力和情感上的变化。 - 较低的值生成更稳定且可预测的输出
- 建议:保持
top_p等于temperature获得最佳结果
为了速度和上下文相关性:
-
cfg_scale影响语音说话的速度以及语音与上下文的匹配程度- 更高的数值(1.8–2.0):语音速度更快且上下文相关性更强
- 较低值 (1.0–1.2): 语音速度较慢,上下文对齐较少
建议的优化表
| 目标 | 建议的调整 |
|---|---|
| 更具表现力 | 增加 temperature、top_p 和 top_k 一起 |
| 更稳定 | 首先降低temperature,然后根据需要进行调整top_p |
| 更快速且更具针对性 | 增加 cfg_scale |
| 较慢和中性 | 减少 cfg_scale |
参数用法示例
单个参数调整:
<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="en-us-ava:DragonHDOmniLatestNeural" parameters="top_p=0.8">
Hello Azure!
</voice>
</speak>
多个参数的调整:
<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="en-us-ava:DragonHDOmniLatestNeural" parameters="top_p=0.8;top_k=22;temperature=0.7;cfg_scale=1.2">
Hello Azure! Welcome to Dragon HD Omni!
</voice>
</speak>
Azure 语音 HD 声音支持和不支持的 SSML 元素
包含输入文本的语音合成标记语言 (SSML) 确定了文本转语音输出的结构、内容和其他特征。 例如,可以使用 SSML 来定义段落、句子、中断/暂停或静音。 可以使用事件标记(例如书签或视素)包装文本,由应用程序稍后处理。
Azure 语音 HD 语音支持不同的 SSML 元素,具体会因模型而有所不同。
- DragonHD 语音:支持一部分 SSML 元素(请参阅下表)
-
Dragon HD Omni 语音:支持额外元素,包括用于风格控制的
mstts:express-as和单词边界事件
有关 Azure 语音 HD 语音支持的和不支持的 SSML 元素的详细信息,请参阅下表。 有关如何使用 SSML 元素的说明,请参阅语音合成标记语言 (SSML) 文档。
| SSML 元素 | 说明 | DragonHD | Dragon HD Omni |
|---|---|---|---|
<voice> |
指定声音和可选效果(eq_car 和 eq_telecomhp8k)。 |
是 | 是 |
<mstts:express-as> |
指定讲话风格和角色。 | 否 | 是 |
<mstts:ttsembedding> |
指定个人声音的 speakerProfileId 属性。 |
否 | 否 |
<lang xml:lang> |
指定讲话语言。 | 是 | 是 |
<prosody> |
调整音节、调型、范围、语速和音量。 | 否 | 否 |
<emphasis> |
添加或删除文本的单词级强调。 | 否 | 否 |
<audio> |
将预先录制的音频嵌入 SSML 文档中。 | 否 | 否 |
<mstts:audioduration> |
指定输出音频的持续时间。 | 否 | 否 |
<mstts:backgroundaudio> |
在您的 SSML 文档中添加背景音频,或将音频文件与文本转语音混合。 | 否 | 否 |
<phoneme> |
指定 SSML 文档中的发音。 | 否 | 否 |
<lexicon> |
定义如何在 SSML 中读取多个实体。 | 是(仅支持别名) | 是(仅支持别名) |
<say-as> |
指示元素的文本的内容类型,例如数字或日期。 | 是 | 是 |
<sub> |
指示应读出别名属性的文本值,而不是元素中包含的文本。 | 是 | 是 |
<math> |
使用 MathML 作为输入文本,以便在输出音频中正确读出数学符号。 | 否 | 否 |
<bookmark> |
获取音频流中每个标记的偏移量。 | 否 | 否 |
<break> |
替代字词之间的默认中断或暂停行为。 | 否 | 否 |
<mstts:silence> |
在文本前后或在两个相邻句子之间插入停顿。 | 否 | 否 |
<mstts:viseme> |
定义一个人说话时面部和嘴巴的位置。 | 否 | 否 |
<p> |
表示 SSML 文档中的段落。 | 是 | 是 |
<s> |
表示 SSML 文档中的句子。 | 是 | 是 |
注意
尽管 本指南前面的部分 还将 Azure 语音 HD 语音与 Azure OpenAI HD 语音进行比较,但 Azure 语音支持的 SSML 元素不适用于 Azure OpenAI 语音。
HD Flash 语音
HD Flash 语音是所选 DragonHD 语音的优化变体,目前支持中文(zh-CN)和英语(en-US)文本。 这些语音提供增强的自然性,可在标准 Azure 区域(eastus、、westeuropesoutheastasia)以及中国区域(chinaeast2、chinanorth2、)chinanorth3中使用。
下面是可用 HD Flash 语音的完整列表:
| 声音名称 | 性别 |
|---|---|
| zh-CN-Xiaochen: DragonHDFlashLatestNeural | 女性 |
| zh-CN-小晓:DragonHDFlashLatestNeural | 女性 |
| zh-CN-Xiaoxiao2:DragonHDFlashLatestNeural | 女性 |
| zh-CN-Yunxia:DragonHDFlashLatestNeural | 男 |
| zh-CN-Yunxiao:DragonHDFlashLatestNeural | 男 |
| zh-CN-Yunye:DragonHDFlashLatestNeural | 男 |
| zh-CN-Yunyi:DragonHDFlashLatestNeural | 男 |
注意
HD Flash 仅支持在 zh-CN 和 en-US 中的文本。
在 DragonHD 和 Dragon HD Omni 之间进行选择
这两种 HD 语音模型都提供高质量的合成,但它们提供不同的用例:
| 注意事项 | DragonHD | Dragon HD Omni |
|---|---|---|
| 语音数 | 30 多个经过微调的语音 | 700 多个语音(包括以前的语音和新的 AI 生成的语音) |
| 语音多样性 | 仅限于预定义角色 | 包含所有库语音的多种不同特征 |
| 样式控件 | 仅限温度和高级参数 | Ava 和 Andrew 支持自动风格预测和 100 多种风格控制 |
| 用例 | 客户服务、辅助功能、以一致性为中心的应用程序 | 内容创建、有声书、播客、多样化的角色需求 |
何时使用每个模型
如果你选择DragonHD:
- 为了达到高质量,需要为特定语言创建特定的语音角色。
- 构建企业客户服务应用程序
- 希望通过温度和高级参数进行微调控制
如果符合以下情况,请选择 Dragon HD Omni:
- 需要具有多种语音选项的灵活性
- 正在创建多样化的内容(音录、播客、讲故事)
- 希望从当前神经语音升级,但相关区域设置尚未支持 HD 模型
- 对于不同的用例,需要广泛的角色多样性