你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是 OpenAI 文本转语音声音?

与 Azure AI 语音声音一样,OpenAI 文本转语音声音提供高质量的语音合成,将书面文本转换为自然的口述音频。 它可解锁各种沉浸式和交互式用户体验的可能性。

OpenAI 文本转语音声音通过两个模型变体提供:NeuralNeuralHD

  • Neural:针对延迟最低的实时用例优化,但质量低于 NeuralHD
  • NeuralHD:针对质量优化。

Azure AI 服务中可用的文本转语音声音

你可能会问:如果我想使用 OpenAI 文本转语音声音,我应该通过 Azure OpenAI 服务或通过 Azure AI 语音使用它吗? 哪些方案可指导我使用其中某个方法?

每个语音模型提供不同的特性和功能,你可以选择最适合特定需求的语音模型。 你希望了解 Azure AI 服务中可用的文本转语音声音之间的选项和差异。

你可以在 Azure AI 服务中选择以下文本转语音声音:

  • Azure OpenAI 服务中的 OpenAI 文本转语音声音。 可在以下区域使用:美国中北部和瑞典中部。
  • Azure AI 语音中的 OpenAI 文本转语音声音。 可在以下区域使用:美国中北部和瑞典中部。
  • Azure AI 语音服务文本转语音声音。 在数十个区域中可用。 请参阅区域列表

通过 Azure OpenAI 服务还是通过 Azure AI 语音使用 OpenAI 文本转语音声音?

如果要使用 OpenAI 文本转语音声音,你可以选择是通过 Azure OpenAI 还是通过 Azure AI 语音使用它们。 可以访问语音库来聆听 Azure OpenAI 语音样本,或使用有声内容创作将语音与你自己的文本合成在一起。 两种情况下的音频输出相同,两种服务之间只有一些功能差异。 有关详细信息,请参阅下表。

下面是 Azure OpenAI 服务中的 OpenAI 文本转语言声音和 Azure AI 语音中的 OpenAI 文本转语音声音之间的功能比较。

功能 Azure OpenAI 服务(OpenAI 声音) Azure AI 语音(OpenAI 声音) Azure AI 语音声音
区域 美国中北部、瑞典中部 美国中北部、瑞典中部 在数十个区域中可用。 请参阅区域列表
语音种类 6 12 超过 500
多语种声音号码 6 12 49
最大多语种语言覆盖范围 57 57 77
语音合成标记语言 (SSML) 支持 不支持 一部分 SSML 元素的支持。 对 Azure AI 语音中全套 SSML 的支持。
开发选项 REST API 语音 SDK、语音 CLI、REST API 语音 SDK、语音 CLI、REST API
部署选项 仅限云 仅限云 云、嵌入式、混合和容器。
实时或批量合成 实时 实时和批量合成 实时和批量合成
延迟 大于 500 毫秒 大于 500 毫秒 小于 300 毫秒
合成音频的采样率 24 kHz 8、16、24 和 48 kHz 8、16、24 和 48 kHz
语音输出音频格式 opus、mp3、aac、flac opus、mp3、pcm、truesilk opus、mp3、pcm、truesilk

Azure AI 语音中提供了额外的特性和功能,这些特性和功能不适用于 OpenAI 语音。 例如:

  • Azure AI 语音中的 OpenAI 文本转语言声音仅支持 SSML 元素子集。 Azure AI 语音声音支持整套 SSML 元素。
  • Azure AI 语音支持字边界事件。 OpenAI 语音不支持字边界事件。

Azure AI 语音中 OpenAI 文本转语言声音支持的 SSML 元素

包含输入文本的语音合成标记语言 (SSML) 确定了文本转语音输出的结构、内容和其他特征。 例如,可以使用 SSML 来定义段落、句子、中断/暂停或静音。 可以使用事件标记(例如书签或视素)来包装文本,这些标记可以稍后由应用程序处理。

下表概述了 Azure AI 语音中 OpenAI 文本转语音声音支持的语音合成标记语言 (SSML) 元素。 OpenAI 声音仅支持以下一部分 SSML 标记。 有关详细信息,请参阅 SSML 文档结构和事件

SSML 元素名称 说明
<speak> 将要朗读的整个内容括起来。 它是 SSML 文档的根元素。
<voice> 指定用于文本转语音输出的声音。
<sub> 指示应读出别名属性的文本值,而不是元素中包含的文本。
<say-as> 指示元素的文本的内容类型,例如数字或日期。

interpret-as="name" 外,此元素支持所有 interpret-as 属性值。 例如,支持 <say-as interpret-as="date" format="dmy">10-12-2016</say-as>,但不支持 <say-as interpret-as="name">ED</say-as>。 有关详细信息,请参阅 SSML 的发音
<s> 表示句子。
<lang> 指示你希望神经网络声音所说的语言的默认区域设置。
<break> 用于替代字词之间的默认中断或暂停行为。