更新时间:2024-11-18 GMT+08:00
分享

查询照片分身数字人视频制作任务详情

功能介绍

该接口用于查询照片分身数字人视频制作任务详情。

调用方法

请参见如何调用API

URI

GET /v1/{project_id}/photo-digital-human-videos/{job_id}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方法请参考获取项目ID

job_id

String

任务ID。

表2 Query参数

参数

是否必选

参数类型

描述

show_script

Boolean

是否需要返回剧本参数配置。

默认取值:

false

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。使用Token鉴权方式时必选。

通过调用IAM服务获取用户Token接口获取。

响应消息头中X-Subject-Token的值。

Authorization

String

使用AK/SK方式认证时必选,携带的鉴权信息。

X-Sdk-Date

String

使用AK/SK方式认证时必选,请求的发生时间。

格式为(YYYYMMDD'T'HHMMSS'Z')。

X-Project-Id

String

使用AK/SK方式认证时必选,携带项目ID信息。

X-App-UserId

String

第三方用户ID。不允许输入中文。

响应参数

状态码: 200

表4 响应Header参数

参数

参数类型

描述

X-Request-Id

String

请求ID。

表5 响应Body参数

参数

参数类型

描述

job_id

String

任务ID。

state

String

任务的状态。

  • WAITING:等待

  • PROCESSING:处理中

  • SUCCEED:成功

  • FAILED:失败

  • CANCELED:取消

  • BLOCK: 冻结

job_type

String

任务类型。

  • 2D_DIGITAL_HUMAN_VIDEO: 分身数字人视频制作任务

  • PHOTO_DIGITAL_HUMAN_VIDEO: 照片数字人视频制作任务

start_time

String

数字人视频制作开始时间。

end_time

String

数字人视频制作结束时间。

duration

Float

参数解释

数字人视频内容时长。

取值范围:

0-2147483647

output_asset_config

OutputAssetInfo object

输出资产信息。

error_info

ErrorResponse object

错误信息。

create_time

String

任务创建时间。

lastupdate_time

String

任务更新时间。

script_id

String

剧本ID。

human_image

String

人物照片,需要Base64编码。

voice_config

VoiceConfig object

语音配置参数。

video_config

PhotoVideoConfig object

视频输出配置。

shoot_scripts

Array of ShootScriptItem objects

拍摄脚本列表。

表6 OutputAssetInfo

参数

参数类型

描述

asset_id

String

输出视频资产ID。

asset_name

String

输出视频资产名称。

cover_url

String

视频封面URL。

preview_video_url

String

预览视频下载URL。URL有效期24小时。

说明:
  • 分身数字人视频制作不支持预览。

表7 ErrorResponse

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误描述。

表8 VoiceConfig

参数

参数类型

描述

voice_asset_id

String

参数解释

音色资产ID,可以从资产库中查询。

约束限制

不涉及。

取值范围

字符长度1-256位。

默认取值

不涉及。

speed

Integer

参数解释

语速。50表示0.5倍语速,100表示正常语速,200表示2倍语速。

当取值为“100”时,表示一个成年人的正常语速,约为250字/分钟。

约束限制

不涉及。

取值范围:

50-200

默认取值:

100

pitch

Integer

参数解释

音高。

约束限制

不涉及。

取值范围:

50-200

默认取值:

100

volume

Integer

参数解释

音量。

约束限制

不涉及。

取值范围:

90-240

默认取值:

140

表9 PhotoVideoConfig

参数

参数类型

描述

codec

String

视频编码格式及视频文件格式。

  • H264:h264编码,输出mp4文件

bitrate

Integer

参数解释

输出平均码率。

单位:kbps。

最小值40,最大值30000。

取值范围:

40-30000

frame_rate

String

帧率。

单位:FPS。

默认取值:

30

表10 ShootScriptItem

参数

参数类型

描述

sequence_no

Integer

参数解释

剧本序号。

约束限制

同一个剧本序号不重复。

默认取值

不涉及。

取值范围:

0-2147483647

start_time

Float

参数解释

开始时间。

单位秒。

相对于内容的开始时间。

约束限制

预留字段。当前只需要填sequence_no即可。

默认取值

不涉及。

取值范围:

0-2592000

end_time

Float

参数解释

结束时间。

单位秒。

相对于内容的结束时间。

约束限制

预留字段。当前只需要填sequence_no即可。

默认取值

不涉及。

取值范围:

0-2592000

shoot_script

ShootScript object

表演脚本。

subtitle_file_info

SubtitleFiles object

字幕文件信息。

表11 ShootScript

参数

参数类型

描述

script_type

String

参数解释

脚本类型,即视频制作的驱动方式

约束限制

不涉及

取值范围

  • TEXT: 文本驱动,即通过TTS合成语音

  • AUDIO: 语音驱动

默认取值:

TEXT

text_config

TextConfig object

讲解词配置。

audio_drive_action_config

Array of AudioDriveActionConfig objects

语音驱动时的动作配置。

animation_config

Array of AnimationConfig objects

动作配置。

说明:
  • 推荐使用text_config中插入动作标签,不配置animation_config。

  • 使用animation_config方式配置动作,在整个讲解过程中动作循环播放。

  • 分身数字人视频制作时此参数不生效。

background_config

Array of BackgroundConfigInfo objects

背景配置。

emotion_config

Array of EmotionConfig objects

情感标签配置。

说明:
  • 分身数字人视频制作时此参数不生效。

  • 推荐在text_config中插入情感标签,此参数将被废弃。

layer_config

Array of LayerConfig objects

图层配置。

表12 TextConfig

参数

参数类型

描述

text

String

参数解释

台词脚本。支持两种模式,纯文本模式和标签模式。

  • 纯文本模式:使用方法,如“大家好,我是人工智大家,是个虚拟主播”。

  • 标签模式:SSML标签的详细定义请参考文本驱动SSML定义

约束限制

不含SSML标签字符数最长10000个字符。

取值范围

字符长度0-131072位。

默认取值

不涉及。

表13 AudioDriveActionConfig

参数

参数类型

描述

action_tag

String

动作标签

action_name

String

动作名称

action_start_time

Float

动作开始时间

取值范围:

0-2592000

表14 AnimationConfig

参数

参数类型

描述

animation

String

动作资产ID。

表15 BackgroundConfigInfo

参数

参数类型

描述

background_type

String

参数解释

背景类型。

约束限制

不涉及。

取值范围

  • IMAGE:图片背景,指定图片用作分身数字人背景。

  • COLOR:纯色背景,指定颜色RGB值作为分身数字人背景。

默认取值

不涉及

background_title

String

参数解释

背景标题。

约束限制

分身数字人视频制作此参数不生效。

取值范围

字符长度0-256位

默认取值

不涉及

human_position_2d

HumanPosition2D object

分身数字人在背景图片的位置设置。不设置默认在图片中间。

说明:
  • 此参数废弃。分身数字人在背景中位置在layer_config参数中配置。

human_size_2d

HumanSize2D object

分身数字人在背景图片的大小设置。

说明:
  • 此参数废弃。分身数字人在背景中大小在layer_config参数中配置。

background_cover_url

String

视频文件封面图片的下载URL。

演示素材为视频时有效。

说明:
  • 分身数字人视频制作此参数不生效。

background_config

String

参数解释

背景文件的URL。

约束限制

  • 仅直播支持外部URL,其他业务通过资产库查询获取,不支持外部URL。

  • background_type=IMAGE时需要填写。

取值范围

字符长度1-2048位

默认取值

不涉及。

background_color_config

String

参数解释

纯色背景的RGB颜色值。

约束限制

background_type=COLOR时需要填写。

取值范围

字符长度0-16位

默认取值:

#FFFFFF

background_asset_id

String

参数解释

背景资产ID。

说明:

背景是背景图片时,填图片资产ID。

约束限制

不涉及

取值范围

字符长度0-64位

默认取值

不涉及

表16 HumanPosition2D

参数

参数类型

描述

position

String

分身数字人在背景图片中的位置。

  • LEFT: 左

  • MIDDLE: 中

  • RIGHT: 右

说明:

当position_x和position_y参数值存在时,position不生效

默认取值:

MIDDLE

position_x

Integer

分身数字人X轴位置,即分身数字图片底边中心点像素的X轴的像素值。

横屏(16:9)背景图片像素为1920x1080;竖屏(9:16)背景图片像素为1080x1920。

取值范围:

-1920-3840

position_y

Integer

分身数字Y轴位置,即分身数字图片底边中心点像素的Y轴的像素值。

横屏(16:9)背景图片像素为1920x1080;竖屏(9:16)背景图片像素为1080x1920。

取值范围:

-1920-3840

表17 HumanSize2D

参数

参数类型

描述

width

Integer

分身数字人宽度像素值。

横屏(16:9)背景图片像素为1920x1080;竖屏(9:16)背景图片像素为1080x1920。

取值范围:

1-7680

height

Integer

分身数字人高度像素值。

横屏(16:9)背景图片像素为1920x1080;竖屏(9:16)背景图片像素为1080x1920。

取值范围:

1-7680

表18 EmotionConfig

参数

参数类型

描述

emotion

String

情感标签配置。

  • HAPPY:开心

  • SAD:悲伤

  • CALM:平静

  • ANGER:愤怒

默认HAPPY。

默认取值:

HAPPY

表19 LayerConfig

参数

参数类型

描述

layer_type

String

参数解释

图层类型。

约束限制

不涉及。

取值范围

  • HUMAN: 人物图层

  • IMAGE: 素材图片图层

  • VIDEO: 素材视频图层

  • TEXT: 素材文字图层

默认取值

不涉及

asset_id

String

参数解释

图层所需资产的资产id,外部资产信息无需填写。

约束限制

不涉及。

取值范围

字符长度0-64位

默认取值

不涉及

group_id

String

参数解释

多场景素材编组。同一group_id的素材,在应用全局时共享位置信息。

约束限制

不涉及。

取值范围

字符长度0-64位

默认取值

不涉及

position

LayerPositionConfig object

图层位置配置。

size

LayerSizeConfig object

图层大小配置。

image_config

ImageLayerConfig object

素材图片图层配置。

video_config

VideoLayerConfig object

素材视频图层配置。

text_config

TextLayerConfig object

素材文字图层配置。

表20 LayerPositionConfig

参数

参数类型

描述

dx

Integer

参数解释

图层左上角像素点的X轴位置值(画布左上角坐标是0x0)。

横屏(16:9)画布像素为1920x1080;竖屏(9:16)画布像素为1080x1920。

约束限制

该值为相对于画布的像素值,仅表示布局位置关系,与输出画面分辨率无关。

取值范围:

-1920-3840

默认取值:

0

dy

Integer

参数解释

图层图片左上角像素点的Y轴位置值(画布左上角坐标是0x0)。

横屏(16:9)画布像素为1920x1080;竖屏(9:16)画布像素为1080x1920。

约束限制

该值为相对于画布的像素值,仅表示布局位置关系,与输出画面分辨率无关。

取值范围:

-1920-3840

默认取值:

0

layer_index

Integer

参数解释

图片、视频、人物图的层顺序。

说明:

图层顺序为从1开始的整数,底层图层顺序是1,往上依次增加。

约束限制

如果出现重复则重复图层叠加关系随机。

取值范围:

1-100

默认取值:

100

表21 LayerSizeConfig

参数

参数类型

描述

width

Integer

参数解释

图层图片左上角像素点的Y轴位置值图层图片宽度像素值(相对画布大小)。

横屏(16:9)画布像素为1920x1080;竖屏(9:16)画布像素为1080x1920。

约束限制

该值为相对于画布的像素值,仅表示布局位置关系,与输出画面分辨率无关。

取值范围:

1-7680

height

Integer

参数解释

图层图片高度像素值(相对画布大小)。

横屏(16:9)画布像素为1920x1080;竖屏(9:16)画布像素为1080x1920。

约束限制

该值为相对于画布的像素值,仅表示布局位置关系,与输出画面分辨率无关。|

取值范围:

1-7680

表22 ImageLayerConfig

参数

参数类型

描述

image_url

String

参数解释

图片文件的URL。

约束限制

  • 仅直播支持外部URL,其他业务通过资产库查询获取,不支持外部URL。

    取值范围

    字符长度1-2048位。

    默认取值

    不涉及

表23 VideoLayerConfig

参数

参数类型

描述

video_url

String

参数解释

视频文件的URL。

约束限制

  • 仅直播支持外部URL,其他业务通过资产库查询获取,不支持外部URL。

    取值范围

    字符长度1-2048位。

    默认取值

    不涉及。

video_cover_url

String

参数解释

视频封面文件的URL。

约束限制

  • 仅直播支持外部URL,其他业务通过资产库查询获取,不支持外部URL。

    取值范围

    字符长度1-2048位。

    默认取值

    不涉及。

loop_count

Integer

参数解释

循环播放视频次数。

特殊取值:

  • 0:表示不播放

  • -1:表示持续循环播放

约束限制

不涉及。

取值范围:

-1-100

默认取值:

-1

表24 TextLayerConfig

参数

参数类型

描述

text_context

String

参数解释

文字图层的文本,内容需做Base64编码。

示例:若想添加文字水印“测试文字水印”,那么text_context的值为:5rWL6K+V5paH5a2X5rC05Y2w

约束限制

不涉及。

取值范围

字符长度0-1024位。

默认取值

不涉及。

font_name

String

字体。当前支持的字体请参考服务支持的字体

约束限制

不涉及。

取值范围

字符长度0-64位

默认取值:

HarmonyOS_Sans_SC_Black

font_size

Integer

参数解释

字体大小(像素)。接口的取值范围为0-120,实际业务使用的取值范围要求为4-120,请以业务实际使用要求为准。

约束限制

不涉及。

取值范围:

0-120

默认取值:

16

font_color

String

参数解释

字体颜色。RGB颜色值。

约束限制

不涉及。

取值范围

字符长度0-16位

默认取值:

#FFFFFF

表25 SubtitleFiles

参数

参数类型

描述

text_subtitle_file

SubtitleFileInfo object

audio_subtitle_file

SubtitleFileInfo object

表26 SubtitleFileInfo

参数

参数类型

描述

subtitle_file_download_url

String

字幕文件下载链接。

subtitle_file_upload_url

String

字幕文件上传链接。

subtitle_file_state

String

字幕文件生成状态。

  • GENERATING:字幕文件生成中。

  • GENERATE_SUCCEED:字幕文件生成成功。

  • GENERATE_FAILED:字幕文件生成失败。

job_id

String

字幕文件生成任务ID。

状态码: 400

表27 响应Body参数

参数

参数类型

描述

BadRequest

AnyType

请求传参异常,包含错误码及对应描述。

状态码: 401

表28 响应Body参数

参数

参数类型

描述

Unauthorized

AnyType

未鉴权或鉴权失败。

状态码: 404

表29 响应Body参数

参数

参数类型

描述

NotFound

AnyType

无内容。

状态码: 500

表30 响应Body参数

参数

参数类型

描述

InternalServiceError

AnyType

内部服务错误。

请求示例

GET https://{endpoint}/v1/0d697589d98091f12f92c0073501cd79/photo-digital-human-videos/26f06524-4f75-4b3a-a853-b649a21aaf66

响应示例

状态码: 200

处理成功返回。

{
  "job_id" : "26f06524-4f75-4b3a-a853-b649a21aaf66",
  "state" : "SUCCESS",
  "start_time" : "2022-01-18T16:29:36Z",
  "end_time" : "2022-01-18T16:30:36Z",
  "duration" : 60,
  "output_asset_config" : {
    "asset_id" : "942e65a5fd219a2e01fb08d881cfadb9",
    "asset_name" : "One Day",
    "cover_url" : "https://{endpoint}/0d697589d98091f12f92c0073501cd79/942e65a5fd219a2e01fb08d881cfadb9/20d367508e62d3d4ad608cedbe81bd35.png?AccessKeyId=XCQKTA8IWQPCAUQS4SDA&Expires=1671241457&Signature=zVGMVbI5ji9rr8epD1Cir5OGIRk%3D"
  },
  "error_info" : null,
  "create_time" : "2022-11-30T06:59:56Z",
  "lastupdate_time" : "2022-11-30T07:00:09Z",
  "script_id" : "4b5b6effcf3b4c72a0baccb265111765",
  "voice_config" : {
    "voice_asset_id" : "f5e6a13eab4443fa85421191ad061780",
    "speed" : 100,
    "pitch" : 100,
    "volume" : 140
  },
  "video_config" : {
    "codec" : "H264",
    "bitrate" : 5000,
    "frame_rate" : 30
  },
  "shoot_scripts" : [ {
    "sequence_no" : 0,
    "shoot_script" : {
      "text_config" : {
        "text" : "大家好,我是云玲。"
      }
    }
  } ]
}

状态码: 400

请求传参异常,包含错误码及对应描述。

{
  "error_code" : "MSS.00000003",
  "error_msg" : "Invalid parameter"
}

状态码: 401

未鉴权或鉴权失败。

{
  "error_code" : "MSS.00000001",
  "error_msg" : "Unauthorized"
}

状态码: 404

无内容。

{
  "error_code" : "MSS.00000002",
  "error_msg" : "Not Found"
}

状态码: 500

内部服务错误。

{
  "error_code" : "MSS.00000004",
  "error_msg" : "Internal Error"
}

SDK代码示例

SDK代码示例如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.metastudio.v1.region.MetaStudioRegion;
import com.huaweicloud.sdk.metastudio.v1.*;
import com.huaweicloud.sdk.metastudio.v1.model.*;


public class ShowPhotoDigitalHumanVideoSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        MetaStudioClient client = MetaStudioClient.newBuilder()
                .withCredential(auth)
                .withRegion(MetaStudioRegion.valueOf("<YOUR REGION>"))
                .build();
        ShowPhotoDigitalHumanVideoRequest request = new ShowPhotoDigitalHumanVideoRequest();
        request.withJobId("{job_id}");
        try {
            ShowPhotoDigitalHumanVideoResponse response = client.showPhotoDigitalHumanVideo(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkmetastudio.v1.region.metastudio_region import MetaStudioRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkmetastudio.v1 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = MetaStudioClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(MetaStudioRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ShowPhotoDigitalHumanVideoRequest()
        request.job_id = "{job_id}"
        response = client.show_photo_digital_human_video(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    metastudio "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/metastudio/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/metastudio/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/metastudio/v1/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := metastudio.NewMetaStudioClient(
        metastudio.MetaStudioClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ShowPhotoDigitalHumanVideoRequest{}
	request.JobId = "{job_id}"
	response, err := client.ShowPhotoDigitalHumanVideo(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

处理成功返回。

400

请求传参异常,包含错误码及对应描述。

401

未鉴权或鉴权失败。

404

无内容。

500

内部服务错误。

错误码

请参见错误码

相关文档