日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

數字人離線合成openAPI

版本變更

版本

描述

時間

v0.6

提交數字人視頻合成新增speed參數

SDK版本升級

2024-10-25

v0.5

提交數字人視頻合成新增speechOpen參數,新增變音規則介紹,學術音標表

2024-09-29

v0.4

數字人視頻合成支持自研數字人,新增素材音量調節字段,聲音模板新增聲音模板版本出參

SDK版本升級

2024-09-09

v0.3

新增批量查詢數字人視頻合成信息接口, sdk升級到2.3.0

2024-08-20

v0.2

提交數字人視頻合成接口,新增透明背景

2024-07-31

v0.1

功能發布

2024-07-01

概覽

交互示例

image

image

接入準備

  1. 需要接入方提前準備阿里云賬號,并利用阿里云子賬號生成對應的AK/SK;

  2. 阿里云主賬號需要對生成AK/SK的子賬號進行RAM授權;

  3. 使用阿里云主賬號登錄平臺,簽署相關法務協議。

API詳情

1. 提交數字人視頻合成任務

SubmitProjectTask

1.1. 入參

參數名

類型

是否必填

說明

scaleType

string

畫面比例(9:16,16:9)

9:16 - 畫面寬度:1080,高度:1920

16:9 - 畫面寬度:1920,高度:1080

subtitleTag

int

是否開啟字幕:1 - 是, 0 - 否,

自研數字人不支持字幕

transparentBackground

int

透明背景開關:1-開啟 0-關閉, 默認0

開啟透明背景不允許添加素材,自研數字人不支持透明背景,

開啟透明背景主播的坐標位置默認居中,不支持調整

frames

List<OpenFrame>

視頻畫面(最多50個畫面)

OpenFrame

參數名

類型

是否必填

說明

index

int

畫面順序,最小值為1。單次提交中每個畫面順序不可相同

layers

List<OpenLayer>

圖層(一個畫面最多10個圖層)

videoScript

OpenVideoScript

腳本信息

subtitle

OpenSubtitle

開啟字幕時必填

字幕設置

OpenVideoScript

參數名

類型

是否必填

說明

type

string

文本/音頻:TEXT/AUDIO

audioUrl

string

音頻類型必填

音頻文件地址(最長十分鐘)

textContent

string

文本類型必填

音頻文本

voiceTemplateId

long

文本類型必填

聲音模型id(需要跟主播匹配)

volume

int

文本類型必填

音量: 范圍[0 到 100],推薦值50

speedRate

string

文本類型必填

語速倍數:范圍[0.8 到 2.0] 正常語速1,僅支持一位小數

OpenLayer

參數名

類型

是否必填

說明

type

string

ANCHOR - 主播

BACKGROUND - 背景,透明背景開啟時可不傳背景

MATERIAL - 素材

material

OpenMaterial

圖層素材

index

int

非背景必填

圖層順序 最小1,單次提交中每個畫面中圖層順序不可相同,背景不填

positionX

int

非背景必填

圖層X坐標,背景不填(詳見坐標說明)

positionY

int

非背景必填

圖層Y坐標,背景不填(詳見坐標說明)

width

int

非背景必填

圖層寬度,背景不填(不能超過畫面高度)

height

int

非背景必填

圖層高度,背景不填(不能超過畫面寬度)

背景圖層必須鋪滿整個畫面,默認最底層

  • 背景圖層的width,height默認等于畫面的width,height

  • 背景圖層的positionX,positionY默認等于0

OpenMaterial 主播/素材

參數名

類型

是否必填

說明

id

string

主播圖層必填

主播id

url

string

非主播圖層必填

素材url(http地址)

format

string

非主播圖層必填

素材格式:video/mp4,image/png

image/jpg,image/jpeg

volume

int

視頻音量: 范圍[0 到 100],推薦值50 ,僅video/mp4格式支持

OpenSubtitle 字幕

參數名

類型

是否必填

說明

positionX

int

X坐標:詳見字幕說明

positionY

int

Y坐標:詳見字幕說明

font

string

字體,例如:SimSun ,詳細見字體說明

fontSize

int

字號: 允許范圍[32 - 160]

fontColor

string

文字的顏色,格式為#后跟16進制值。例如:#ffffff

alignment

string

對齊方式:

  • BottomLeft - 字幕框內左下角

  • BottomCenter - 字幕框內居中

  • BottomRight - 字幕框內右下角

backgroundColor

string

背景色,RGB顏色,格式為#后跟16進制值。例如:#ffffff。

maxCharLength

int

一行可顯示最大字數,建議文本寬度/字體寬度

textWidth

int

文本寬度:詳見字幕說明

textHeight

int

文本高度:詳見字幕說明

1.1.1. 字體說明
  • Alibaba PuHuiTi - 阿里巴巴普惠體

  • FZKai-Z03S - 方正楷體簡體

  • FZHei-B01S - 方正黑體簡體

  • FZShuSong-Z01S - 方正書宋簡體

  • FZFangSong-Z02S - 方正仿宋簡體

  • SimSun - 宋體

  • WenQuanYi MicroHei - 文泉驛微米黑

  • WenQuanYi Zen Hei Mono - 文泉驛等寬正黑

  • WenQuanYi Zen Hei Sharp - 文泉驛點陣正黑

  • Microsoft YaHei - 微軟雅黑

  • Yuanti SC - 圓體-簡常規體

  • Roboto Bold - Google Robota字體,不支持中文

  • Roboto - Google Robota字體,不支持中文

  • KaiTi - 楷體

  • SiYuan Heiti - 思源黑體

  • SiYuan SimSun - 思源宋體

  • HappyZcool-2016 - 站酷快樂體

1.1.2. 坐標說明
  • 主播、素材、水印坐標參數均為畫面左上角對接圖片左上角的距離

  • 坐標如果存在小數,舍棄小數, 如下圖:X=470, Y=700

image

1.1.3. 圖層超出畫面外
  • 超出畫面的圖片需要進行裁剪

  • 圖片的寬高使用裁剪后的圖片寬高

  • X,Y軸的坐標超出部分為0

原圖:

1720689870780-9e3eebc9-6520-4a41-8e55-b27c061bec8e.png

裁剪后圖片:

1720689913869-e20dd397-c543-4b60-9342-01c7f8da2757.png

畫面內的效果:

image

1.1.4. 字幕說明

下圖參數示例:

{
    "positionX": 68, // 字幕不允許超出畫面外,最小0,最大不超過畫面寬度
    "positionY": 392,// 字幕不允許超出畫面外,最小0,最大不超過畫面高度
    "maxCharLength": 7, // 一行可顯示最大字數,建議文本寬度/字體寬度
    "textWidth": 800, // 文本寬度,文本框不能超出畫面外
    "textHeight": 110, // 文本高度,必須大于字體大小
    "fontSize": 100, // 字體大小
    "font": "SiYuan SimSun",
    "fontColor": "#090707",
    "alignment": "BottomRight", // 右對齊
    "backgroundColor": "#fefefe"
}

image

1.1.5. 背景示例

背景圖層提供的圖片需要充滿整個畫布,無需傳遞坐標值,系統默認X=0, Y=0

image

1.1.6. 變音規則介紹

OpenVideoScript對象的類型為文本(TEXT)的時候可以支持變音配置,需要變音的時候OpenVideoScript的參數speechOpen需設置為true,textContent字段需要設置在變音標簽下面,具體規則如下:

標簽

說明

示例

tts版本支持情況

<speak>

根元素,不論使用哪個ssml標簽,都要有<speak></speak>

<speak>這句話是沒有任何SSML語法的效果。</speak>

0,2 支持

<break time="2.5s" />

在文本中插入停頓,time設置停頓時長,支持0s-10s

<speak> 今天天氣<break time="2.5s" />很好 </speak>

0,2 支持

<word>

連讀標簽,指定的詞組不被拆分,只能加在中文

<speak> 南京市<word>長江大橋</word></speak>

嵌套拼音標簽示例:<speak><word>長江<phoneme alphabet="py" ph="da1">大</phoneme>橋</word></speak>

0 支持連讀,但是不支持嵌套拼音標簽,

2 支持

<phoneme alphabet="py" ph="xi1 xi1">

標簽內的文本指定發音,只能加在中文

ph用于指定拼音,僅支持一個拼音。

  • 1~4 分別順序對應漢語四個聲調,5對應輕聲。比如,詞語“爸爸”,拼音應寫為“ba4 ba5”

<speak> <phoneme alphabet="py" ph="xi1"></phoneme>公主 </speak>

0,2 支持

<phoneme alphabet="ipa" ph="?">

通過國際音標指定英文發音,ph用于指定國際音標。

  • 標簽內不限定字母是否為一個真正的單詞,以“ph”的值為準。

  • 標簽內不能有標點符號、空格等非英語字母內容。

<speak><phoneme alphabet="ipa" ph="?">a</phoneme>,apple.是蘋果的意思. </speak>

2 支持

<sub alias="文本替換">

內嵌文本替換為指定文本,目前暫時僅中文音色適用

<speak><sub alias="Speech Synthesis Markup Language">SSML</sub></speak>

0,2 支持

完整示例:

String textContent = "<speak> <sub alias="替換">我是文本替換</sub> <phoneme alphabet="ipa"ph="?">a</phoneme>,apple.是蘋果的意思<phoneme alphabet="py"ph="xi1"></phoneme>公主 , 南京市<word>長江大橋</word>。今天天氣<break time="2.5s" />很好 </speak>"

1.1.7. 學術音標表

原詞

學術IPA(本系統支持的)

教學IPA(市面常見的)

元音

i

i?

?

?

?

e

?

?

ɑ

a?

?

??

?

?

u

u?

?

?

?

?

?

?r

?

??r

a?

a?

a?

a?

e?

e?

??

??

o?

o?

輔音

p

p

b

b

t

t

d

d

k

k

ɡ

g

t?

t?

d?

d?或?

f

f

v

v

θ

θ

e

e

s

s

z

z

?

?

?

?

h

h

m

m

n

n

?

?

j

j

w

w

?

r

l

l

1.2. 出參

參數名

類型

說明

success

boolean

true 成功, false 失敗

errorMessage

string

錯誤信息

errorCode

string

異常code

taskId

string

任務id

2. 查詢數字人視頻合成信息

GetProjectTask

2.1. 入參

參數名稱

類型

是否必填

說明

taskId

String

任務id

2.2. 出參

參數名稱

類型

說明

status

String

合成狀態:IN_PROGRESS - 合成中, FAIL - 失敗

SUCCESS - 成功, CANCEL - 已取消

errorMsg

String

合成失敗原因

videoDuration

String

視頻時長

videoUrl

String

視頻地址

3. 批量查詢數字人視頻合成信息

BatchGetProjectTask

3.1. 入參

參數名稱

類型

是否必填

說明

taskIdList

List<String>

任務id集合

3.2. 出參

參數名

類型

說明

resultList

List<Object>

視頻信息

Object說明

status

String

合成狀態:IN_PROGRESS - 合成中, FAIL - 失敗

SUCCESS - 成功, CANCEL - 已取消

errorMsg

String

合成失敗原因

videoDuration

String

視頻時長

videoUrl

String

視頻地址

4. 合成任務停止

StopProjectTask

4.1. 入參

參數名稱

類型

是否必填

說明

taskId

String

任務id

4.2. 出參

參數名稱

類型

說明

success

boolean

true-成功,false-失敗(僅表示提交結果,任務是否真正停止需調用“查詢數字人視頻合成信息”接口根據任務狀態判斷)

errorCode

String

錯誤碼

errorMsg

String

失敗原因

5. 查詢資源信息

5.1. 入參

5.2. 出參

參數名稱

類型

說明

resourceInfoList

List<ResourceInfo>

資源剩余量信息

ResourceInfo

參數名稱

類型

說明

resourceType

Integer

資源類型:2 - AI視頻生成時長

remainCount

Integer

資源剩余量

unit

String

資源剩余量單位: second - 秒

lastExpire

Integer

資源過期剩余天數

6. 數字人形象模型查詢

ListAnchor

6.1. 入參

參數名稱

參數類型

是否必填

說明

coverRate

string

N

主播形象比例

9:16 豎版

16:9 橫版

anchorType

string

N

主播類型:

PUBLIC_MODEL:公模

PRIVATE_MODEL:私模

digitalHumanType

string

N

主播類別:

dynamicReality 動態實景數字人(暫時不可使用);staticTransparency 靜態數字人

useScene

string

Y

使用場景

offlineSynthesis 離線數字人;

pageSize

int

Y

每頁大小

pageNumber

int

Y

頁碼

6.2. 出參

參數名

參數類型

參數說明

total

int

總數

list

array:AnchorResponse

主播形象obj array

success

Boolean

是否成功

errorMessage

String

異常信息

errorCode

String

異常錯誤碼

AnchorResponse

參數名

參數類型

參數說明

anchoId

String

主播id

anchorMaterialName

String

主播名稱

anchorType

String

主播類型:

PUBLIC_MODEL 公模

PRIVATE_MODEL 私模

coverUrl

String

模特封面圖

coverThumbnailUrl

String

模特封面縮略圖

coverWeight

int

封面圖寬:像素值

coverHeight

int

封面圖高:像素值

coverRate

String

封面比例

status

String

狀態:

Usable 已上線

digitalHumanType

String

主播類別:

dynamicReality 動態實景數字人(暫時不可用);staticTransparency 靜態數字人

useScene

String

使用場景

offlineSynthesis 離線數字人;

resourceTypeDesc

String

資源規格描述

gender

String

性別F/M(需要與聲音模板性別保持一致)

7. 聲音模板查詢

ListVoiceModels

7.1. 入參

參數名

參數類型

是否必填

參數說明

voiceType

String

N

聲音類型

PRIVATE_VOICE 私模聲音;

PUBLIC_VOICE 公模聲音;

useScene

string

Y

使用場景

offlineSynthesis 離線數字人

pageSize

int

Y

每頁大小

pageNumber

int

Y

頁碼

7.2. 出參

參數名

參數類型

參數描述

total

int

總數

list

array:VoiceModelResult

音頻腳本模板集合

success

Boolean

是否成功

errorMessage

String

異常信息

errorCode

String

異常錯誤碼

VoiceModelResponse

參數名

參數類型

參數描述

voiceId

bigInt

聲音模板id

voiceName

String

聲音名稱

voiceModel

String

聲音模型(參數值)

voiceGender

String

男聲M/女聲F((需要與形象性別保持一致))

voiceUrl

String

試聽音頻url

voiceLanguage

String

zh/en

voiceDesc

String

聲音模型描述

useScene

String

使用場景

offlineSynthesis 離線數字人

resourceTypeDesc

String

資源規格描述

ttsVersion

Integer

tts版本0,1,2 v0.4

對接詳情

PHP

對接示例

require 'vendor/autoload.php';
use AlibabaCloud\SDK\Imarketing\V20220704\Models\GetOssUploadSignatureRequest;
use AlibabaCloud\SDK\IntelligentCreation\V20240313\IntelligentCreation;
use Darabonba\OpenApi\Models\Config as AlibabaConfig;

$config = new AlibabaConfig();
$config->accessKeyId = '****';
$config->accessKeySecret = '****';
$config->endpoint = "intelligentcreation.cn-zhangjiakou.aliyuncs.com";

$intelligentCreationClient = new IntelligentCreation($config);

$request = new GetProjectTaskRequest();
$request->taskId = '1111';
try {
  $response = $intelligentCreationClient->getProjectTask($request);
  var_dump($response->toMap());
} catch (TeaError $e) {
  Log::error($e);
}

2.6.0

u-2d06dbf9-cce5-4bcf-91b6-750b97fee3bf-composer-tea.zip

composer require alibabacloud/intelligentcreation-20240313 2.6.0

2.4.0

u-17374653-852f-4536-9c8f-61f96b9890ef-composer-tea.zip

composer require alibabacloud/intelligentcreation-20240313 2.4.0

Java

對接示例

package com.aliyun.intelligentcreation20240313;

import com.aliyun.intelligentcreation20240313.models.*;
import com.aliyun.tea.TeaException;
import com.aliyun.teaopenapi.models.Config;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.util.HashMap;
import java.util.Map;

/**
 * @author fangming.yu
 * @since 2024/7/5
 */
public class TestProjectTest {

    public static void main(String[] args) throws Exception {
        TestProjectTest testProjectTest = new TestProjectTest();

        try {
           String taskId = testProjectTest.submitProjectTaskRequest();
           testProjectTest.stopProjectTaskRequest(taskId);
           testProjectTest.getProjectTaskRequest(taskId);
           testProjectTest.selectResourceRequest(null);
            testProjectTest.listVoiceModelsRequest();
            System.out.println(taskId);
        } catch (TeaException e) {
            Gson gson = new Gson();
            System.out.println(e.getMessage());
            System.out.println(gson.toJson(e.getData()));
        } catch (Exception e) {

            e.printStackTrace();
        }


    }

    String url = "intelligentcreation.cn-zhangjiakou.aliyuncs.com";
    //初始化配置
    Config config = new Config().setAccessKeyId("**")
            .setAccessKeySecret("**")
            .setEndpoint(url);
    // 創建客戶端
    Client client = new Client(config);

    public TestProjectTest() throws Exception {
    }


    String submitProjectTaskRequest() throws Exception {
        Gson gson = new Gson();
        String para = "{\"scaleType\":\"16:9\",\"subtitleTag\":1,\"frames\":[{\"index\":1,\"layers\":[{\"type\":\"BACKGROUND\",\"material\":{\"format\":\"image/png\",\"url\":\"https://yic-pre.oss-cn-hangzhou.aliyuncs.com/common/image/backgroundImage/shu/1.png\"}},{\"type\":\"MATERIAL\",\"material\":{\"format\":\"image/png\",\"url\":\"https://yic-pre.oss-cn-hangzhou.aliyuncs.com/1539704706413278/image/material/1716348615967-%E5%86%B0%E6%B7%87%E6%B7%8B.png\"},\"index\":2,\"positionX\":76,\"positionY\":1169,\"width\":549,\"height\":750},{\"type\":\"ANCHOR\",\"material\":{\"id\":\"759459670880206851\",\"url\":\"https://yic-pre.oss-cn-hangzhou.aliyuncs.com/1539704706413278/image/anchor/1715148681933-55254f81420c4c82954042414136e52d.png\"},\"index\":3,\"positionX\":0,\"positionY\":0,\"width\":1080,\"height\":1920},{\"type\":\"WATERMARK\",\"material\":{\"type\":\"WATERMARK\",\"format\":\"image/png\",\"url\":\"https://yic-pre.oss-cn-hangzhou.aliyuncs.com/common/image/material/%E6%B0%B4%E5%8D%B003%403x.png"},\"index\":4,\"positionX\":248,\"positionY\":280,\"width\":191,\"height\":195}],\"videoScript\":{\"textContent\":\"讓我們一同投身于這場激動人心的呼吸之旅,共同見證科技與醫學的完美融合,攜手共進\",\"type\":\"TEXT\",\"voiceTemplateId\":82,\"volume\":50,\"speedRate\":1.5},\"subtitle\":{\"positionX\":0,\"positionY\":545,\"maxCharLength\":6,\"textWidth\":1080,\"fontSize\":60,\"font\":\"Microsoft YaHei\",\"fontColor\":\"#2a313d\",\"textHeight\":70,\"alignment\":\"BottomCenter\"}}]}";

        Map<String, Object> map = gson.fromJson(para, new TypeToken<Map<String, Object>>() {
        }.getType());

        SubmitProjectTaskRequest request = SubmitProjectTaskRequest.build(map);
        // 請求接口
        SubmitProjectTaskResponse response = client.submitProjectTask(request);

        System.out.println(gson.toJson(response));

        if (response.getStatusCode().equals(200)) {
            System.out.println("submitProjectTaskRequest 請求成功");
            return response.getBody().getTaskId();
        }
        return null;
    }

    void getProjectTaskRequest(String taskId) throws Exception {
        Gson gson = new Gson();

        Map<String, Object> map = new HashMap<>();
        map.put("taskId", taskId);

        GetProjectTaskRequest request = GetProjectTaskRequest.build(map);
        // 請求接口
        GetProjectTaskResponse response = client.getProjectTask(request);

        System.out.println(gson.toJson(response));

        if (response.getStatusCode().equals(200)) {
            System.out.println("getProjectTaskRequest 請求成功");
        }
    }

    void stopProjectTaskRequest(String taskId) throws Exception {
        Gson gson = new Gson();

        Map<String, Object> map = new HashMap<>();
        map.put("taskId", taskId);

        StopProjectTaskRequest request = StopProjectTaskRequest.build(map);
        // 請求接口
        StopProjectTaskResponse response = client.stopProjectTask(request);

        System.out.println(gson.toJson(response));

        if (response.getStatusCode().equals(200)) {
            System.out.println("stopProjectTaskRequest 請求成功");
        }
    }

    void selectResourceRequest(String projectId) throws Exception {
        Gson gson = new Gson();
        Map<String, Object> map = new HashMap<>();
        SelectResourceRequest request = SelectResourceRequest.build(map);
        SelectResourceResponse response = client.selectResource(request);

        System.out.println(gson.toJson(response));
        if (response.getStatusCode().equals(200)) {
            System.out.println("selectResourceRequest 請求成功");
        }
    }

    void listVoiceModelsRequest() throws Exception {
        Gson gson = new Gson();
        Map<String, Object> map = new HashMap<>();
        map.put("useScene", "offlineSynthesis");
        map.put("pageSize", 1);
        map.put("pageNumber", 10);
        ListVoiceModelsRequest request = ListVoiceModelsRequest.build(map);
        ListVoiceModelsResponse response = client.listVoiceModels(request);

        System.out.println(gson.toJson(response));
        if (response.getStatusCode().equals(200)) {
            System.out.println("listVoiceModelsRequest 請求成功");
        }
    }
}

2.6.0

u-2d06dbf9-cce5-4bcf-91b6-750b97fee3bf-java-tea.zip

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>intelligentcreation20240313</artifactId>
  <version>2.6.0</version>
</dependency>

2.4.0

u-17374653-852f-4536-9c8f-61f96b9890ef-java-tea.zip

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>intelligentcreation20240313</artifactId>
  <version>2.4.0</version>
</dependency>