你当前正在访问 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_file 、soft_embedded 、hard_embedded 或 none 。此属性可选,默认值为 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>
替换为本地路径和文件名。