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

文本转语音虚拟形象的批量合成属性

批处理合成属性可分组为:虚拟形象相关属性、批处理作业相关属性和文本转语音相关属性,如下表所述。

创建新的批处理合成作业时,需要 JSON 格式的某些属性。 其他属性为可选。 批量合成响应还包括其他属性,用于提供有关合成状态和结果的信息。 例如,outputs.result 属性包含从中下载包含虚拟形象视频的视频文件的位置。 从 outputs.summary 可以访问摘要和调试详细信息。

虚拟形象属性

下表描述了虚拟形象属性。

properties 说明
avatarConfig.talkingAvatarCharacter 说话的虚拟形象的角色名称。

可在此处找到支持的虚拟形象角色。

此属性是必需项。
avatarConfig.talkingAvatarStyle 说话的虚拟形象的样式名称。

可在此处找到支持的虚拟形象样式。

此属性对预生成的虚拟形象必要,对自定义的虚拟形象可选。
avatarConfig.customized 指示要使用的虚拟形象是否为自定义虚拟形象的布尔值。 对自定义虚拟形象为 True,对预生成的虚拟形象为 False。

此属性可选,默认值为 false
avatarConfig.videoFormat 输出视频文件的格式可以是 mp4 或 webm。

透明背景需要 webm 格式。

此属性可选,默认值为 mp4。
avatarConfig.videoCodec 输出视频的编解码器可以是 h264、hevc、vp9 或 av1。

透明背景需要 Vp9。 使用 vp9 编解码器时合成速度会变慢,因为 vp9 编码速度较慢。

此属性可选,默认值为 hevc。
avatarConfig.bitrateKbps 输出视频的比特率,为整数值,单位为 kbps。

此属性可选,默认值为 2000。
avatarConfig.videoCrop 此属性允许裁剪视频输出,这意味着输出原始视频的矩形子区域。 此属性有两个字段,用于定义矩形的左上顶点和右下顶点。

此属性可选,默认行为是输出完整视频。
avatarConfig.videoCrop.topLeft 视频裁剪矩形的左上顶点。 此属性具有 x 和 y 两个字段,用于定义顶点的水平和垂直位置。

此属性在设置 properties.videoCrop 时必需。
avatarConfig.videoCrop.bottomRight 视频裁剪矩形的右下顶点。 此属性具有 x 和 y 两个字段,用于定义顶点的水平和垂直位置。

此属性在设置 properties.videoCrop 时必需。
avatarConfig.subtitleType 虚拟形象视频文件的副标题类型可以是 external_filesoft_embeddedhard_embeddednone

此属性可选,默认值为 soft_embedded
avatarConfig.backgroundImage 使用 avatarConfig.backgroundImage 属性添加背景图像。 该属性的值应是指向所需图像的 URL。 此属性是可选的。
avatarConfig.backgroundColor 虚拟形象视频的背景色,是 #RRGGBBAA 格式的字符串。 在此字符串中:RR、GG、BB 和 AA 表示红色、绿色、蓝色和 alpha 通道,采用十六进制值范围为 00~FF。 Alpha 通道控制透明度,值 00 表示透明,值 FF 表示非透明,00 与 FF 之间的值表示半透明。

此属性可选,默认值为 #FFFFFFFF(白色)。
outputs.result 批处理合成结果文件的位置,该文件是包含合成虚拟形象的视频文件。

此属性为只读。
properties.DurationInMilliseconds 食品输出持续时间(以毫秒为单位)。

此属性为只读。

批处理合成作业属性

下表描述了批处理合成作业属性。

properties 说明
createdDateTime 创建批处理合成作业的日期和时间。

此属性为只读。
description 批处理合成的说明。

此属性是可选的。
ID 批处理合成作业 ID。

此属性为只读。
lastActionDateTime 状态属性值更改的最新日期和时间。

此属性为只读。
properties 一组定义的可选批处理合成配置设置。
properties.destinationContainerUrl 批处理合成结果可以存储在可写 Azure 容器中。 如果未指定具有共享访问签名 (SAS) 令牌的容器 URI,则语音服务会将结果存储在由 Microsoft 管理的容器中。 不支持具有存储访问策略的 SAS。 删除合成作业时,结果数据也会被删除。

获取合成作业时,响应中不包含此可选属性。
properties.timeToLiveInHours 创建合成作业后的持续时间(以小时为单位),此时将自动删除合成结果。 最长生存时间为 744 小时。 对于状态为“成功”或“失败”的合成作业,自动删除的日期和时间计算为 lastActionDateTime 和 timeToLive 属性的总和。

除此之外,可以调用 delete 合成方法来更快地删除作业。
status 批处理合成处理状态。

状态应从“未启动”进展为“正在运行”,最后变为“成功”或“失败”。

此属性为只读。

文本转语音属性

下表描述了文本转语音属性。

properties 说明
customVoices 自定义神经语音与名称和部署 ID 相关联,如下所示:"customVoices": {"your-custom-voice-name": "502ac834-6537-4bc3-9fd6-140114daa66d"}

inputKind 设置为 "PlainText" 或 inputKind 设置为 "SSML" 时,可以在 synthesisConfig.voice 中使用语音名称。

此属性是使用自定义语音所必需的。 如果尝试使用此处未定义的自定义语音,服务将返回错误。
inputs 要合成的纯文本或 SSML。

当 inputKind 设置为 "PlainText" 时,提供纯文本,如下所示:"inputs": [{"content": "The rainbow has seven colors."}]。 当 inputKind 设置为 "SSML" 时,在语音合成标记语言 (SSML) 中提供文本,如下所示:"inputs": [{"content": "<speak version=''1.0''' xml:lang=''en-US'''><voice xml:lang=''en-US''' xml:gender=''Female''' name=''en-US-AvaMultilingualNeural'''>The rainbow has seven colors."}]。

如果需要多个视频输出文件,最多包含 1,000 个文本对象。 下面是应合成为两个视频输出文件的示例输入文本:"inputs": [{"content": "synthesize this to a file"},{"content": "synthesize this to another file"}]。

对于新段落,不需要单独的文本输入。 在其中(最多 1,000 个)的任何文本输入中,可以使用“\r\n”(换行符)字符串指定新段落。 下面是应合成到同一音频输出文件两个段落的示例输入文本:"inputs": [{"content": "synthesize this to a file\r\nsynthesize this to another paragraph in the same file"}]

创建新的批处理合成作业时,此属性是必需的。 获取合成作业时,响应中不包含此属性。
properties.billingDetails customNeural 与神经(预生成)语音处理和计费的单词数对比。

此属性为只读。
synthesisConfig 用于批处理合成纯文本的配置设置。

仅当 inputKind 设置为 "PlainText" 时,此属性才适用。
synthesisConfig.pitch 音频输出的音调。

有关接受的值的信息,请参阅语音合成标记语言 (SSML) 文档中的调整韵律表。 无效值会被忽略。

仅当 inputKind 设置为 "PlainText" 时,此可选属性才适用。
synthesisConfig.rate 音频输出的速率。

有关接受值的信息,请参阅语音合成标记语言 (SSML) 文档中的调整韵律表。 无效值会被忽略。

仅当 inputKind 设置为 "PlainText" 时,此可选属性才适用。
synthesisConfig.style 对于某些语音,你可以调整说话风格来表达不同情绪,例如,高兴、同情和冷静。 可以针对不同场景(例如,客户服务、新闻广播和语音助理)优化声音。

有关每个语音的可用样式的信息,请参阅语音风格和角色

仅当 inputKind 设置为 "PlainText" 时,此可选属性才适用。
synthesisConfig.voice 说出音频输出内容的语音。

有关可用的预生成神经网络声音的信息,请参阅语言和语音支持。 若要使用自定义语音,必须在 customVoices 属性中指定有效的自定义语音和部署 ID 映射。

此属性在 inputKind 设置为 "PlainText" 时必需。
synthesisConfig.volume 音频输出的音量。

有关接受值的信息,请参阅语音合成标记语言 (SSML) 文档中的调整韵律表。 无效值会被忽略。

仅当 inputKind 设置为 "PlainText" 时,此可选属性才适用。
inputKind 指示输入文本属性是纯文本还是 SSML。 可能的不区分大小写的值为“PlainText”和“SSML”。 当 inputKind 设置为 "PlainText" 时,还必须设置 synthesisConfig 语音属性。

此属性是必需项。

如何编辑背景

虚拟形象批处理合成 API 目前不支持设置背景视频;它仅支持静态背景图像。 但是,如果要在后期制作期间为视频添加背景,则可以生成具有透明背景的视频。

若要设置静态背景图像,请使用 avatarConfig.backgroundImage 属性并指定指向所需图像的 URL。 此外,还可以使用 avatarConfig.backgroundColor 属性设置虚拟形象视频的背景色。

若要生成透明背景视频,必须将以下属性设置为批处理合成请求中的必需值:

properties 背景透明度的必需值
properties.videoFormat webm
properties.videoCodec vp9
properties.backgroundColor #00000000(或 transparent

Clipchamp 是支持批处理合成 API 生成的透明背景视频的一种典型视频编辑工具。

某些视频编辑软件不直接支持 webm 格式,仅支持 .mov 格式的透明背景视频输入(如 Adobe Premiere Pro)。 在这种情况下,首先需要使用 FFMPEG 等工具将视频格式从 webm 转换为 .mov

FFMPEG 命令行:

ffmpeg -vcodec libvpx-vp9 -i <input.webm> -vcodec png -pix_fmt rgba metadata:s:v:0 alpha_mode="1" <output.mov>

可以从 ffmpeg.org 下载 FFMPEG。在命令行中将 <input.webm><output.mov> 替换为本地路径和文件名。

后续步骤