|
- package com.iformall.sm;
-
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
-
- import lombok.Data;
-
- import java.util.List;
- import java.util.Map;
-
- /**
- * https://note.youdao.com/s/7OZ5UfES
- * @author Administrator
- *
- */
- @Data
- public class AiVideoParam {
- /**
- * | 参数 | 必选 | 类型 | 说明 |
- * | ----------------- | ---- | ------- | ------------------------------------------------------------ |
- * | gen_txt | 是 | string | 需要生成的文字内容 |
- * | video_template_id | 是 | string | 使用的视频模板ID |
- * | voice_id | 是 | string | 音色ID,如:"zh-CN-YunxiNeural"。如果使用“default”,表示不指定具体的,由后端服务自动匹配 |
- * | voice_style | 是 | string | TTS语音风格,如:”angry“。如果使用“default”,表示默认风格 |
- * | video_files | 否 | array[] | 字典类型,包含背景、数字人、素材信息。缺省,使用默认模板。 |
- * | + back_ground | 否 | array[] | 字典类型,背景信息 |
- * | ++ image | 是 | string | 背景图片,base64编辑后的字符串类型数据 |
- * | ++ type | 是 | string | 背景图片类型,共两种。horizontal 表示横版,vertical 表示竖版 |
- * | + digital_human | 否 | array[] | 字典类型,数字人信息 |
- * | ++ coord | 是 | array[] | 集合类型,表示相对于左上角的位置,如[100, 200],表示相对于左边缘100像素,相对于上边缘200相素 |
- * | ++ level | 是 | uint32 | 数字人图片的层级,值越大表示越高层,0表示最底层 |
- * | ++ ratio | 是 | float32 | 相对于原数字人图片大小的缩放比例,如0.5表示宽高均变为原来的一半 |
- * | + material | 否 | array[] | 字典类型,素材信息。具体的值是集合类型,内部由每个素材信息(素材信息是字典类型)组成,如"material":[{素材1的信息},{素材2的信息},{素材3的信息}] |
- * | ++ | 否 | array[] | 集合类型,每个素材信息(素材信息是字典类型)组成 |
- * | +++ coord | 是 | array[] | 集合类型,表示相对于左上角的位置,如[100, 200],表示相对于左边缘100像素,相对于上边缘200相素 |
- * | +++ image | 是 | string | 素材图片,base64编辑后的字符串类型数据 |
- * | +++ level | 是 | uint32 | 素材图片的层级,值越大表示越高层,0表示最底层 |
- * | +++ ratio | 是 | float32 | 相对于原素材图片大小的缩放比例,如0.5表示宽高均变为原来的一半 |
- */
-
- private Long task_id;
- private String callback_url;
-
- private String gen_txt;
- private String video_template_id;
- private String voice_id;
- private String voice_style;
- private String url = "None";//预留音频url
- private VideoFiles video_files;
- private String token;
- private String tenancy_logo;
- private Integer user_level;
-
- private Map<String,Object> subtitle;
-
- public String toSimpelJson() {
- String json = JSON.toJSONString(this);
- JSONObject obj = JSON.parseObject(json);
- JSONObject vf = obj.getJSONObject("video_files");
- if (null != vf ) {
- JSONObject bg = vf.getJSONObject("back_ground");
- if ( null != bg) {
- bg.remove("image");
- }
- JSONObject dh = vf.getJSONObject("digital_human");
- if ( null != dh) {
- dh.remove("image");
- }
- JSONArray ms = vf.getJSONArray("material");
- if (null != ms && ms.size() > 0 ) {
- for (int i = 0 ; i < ms.size(); i++) {
- JSONObject jo = ms.getJSONObject(i);
- jo.remove("image");
- }
- }
- }
- return JSON.toJSONString(obj);
- }
-
- @Data
- public static class VideoFiles {
- private BackGround back_ground;
- private Material digital_human;
- private List<Material> material;
- }
-
- @Data
- public static class BackGround {
- private String image;
- private String type;
- }
-
- @Data
- public static class Material {
- private int[] coord;
- private String image;
- private int level;
- private float ratio;
- }
-
- }
|