后台服务
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

104 rindas
4.5 KiB

  1. package com.iformall.sm;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
  6. import lombok.Data;
  7. import java.util.List;
  8. import java.util.Map;
  9. /**
  10. * https://note.youdao.com/s/7OZ5UfES
  11. * @author Administrator
  12. *
  13. */
  14. @Data
  15. public class AiVideoParam {
  16. /**
  17. * | 参数 | 必选 | 类型 | 说明 |
  18. * | ----------------- | ---- | ------- | ------------------------------------------------------------ |
  19. * | gen_txt | 是 | string | 需要生成的文字内容 |
  20. * | video_template_id | 是 | string | 使用的视频模板ID |
  21. * | voice_id | 是 | string | 音色ID,如:"zh-CN-YunxiNeural"。如果使用“default”,表示不指定具体的,由后端服务自动匹配 |
  22. * | voice_style | 是 | string | TTS语音风格,如:”angry“。如果使用“default”,表示默认风格 |
  23. * | video_files | 否 | array[] | 字典类型,包含背景、数字人、素材信息。缺省,使用默认模板。 |
  24. * | + back_ground | 否 | array[] | 字典类型,背景信息 |
  25. * | ++ image | 是 | string | 背景图片,base64编辑后的字符串类型数据 |
  26. * | ++ type | 是 | string | 背景图片类型,共两种。horizontal 表示横版,vertical 表示竖版 |
  27. * | + digital_human | 否 | array[] | 字典类型,数字人信息 |
  28. * | ++ coord | 是 | array[] | 集合类型,表示相对于左上角的位置,如[100, 200],表示相对于左边缘100像素,相对于上边缘200相素 |
  29. * | ++ level | 是 | uint32 | 数字人图片的层级,值越大表示越高层,0表示最底层 |
  30. * | ++ ratio | 是 | float32 | 相对于原数字人图片大小的缩放比例,如0.5表示宽高均变为原来的一半 |
  31. * | + material | 否 | array[] | 字典类型,素材信息。具体的值是集合类型,内部由每个素材信息(素材信息是字典类型)组成,如"material":[{素材1的信息},{素材2的信息},{素材3的信息}] |
  32. * | ++ | 否 | array[] | 集合类型,每个素材信息(素材信息是字典类型)组成 |
  33. * | +++ coord | 是 | array[] | 集合类型,表示相对于左上角的位置,如[100, 200],表示相对于左边缘100像素,相对于上边缘200相素 |
  34. * | +++ image | 是 | string | 素材图片,base64编辑后的字符串类型数据 |
  35. * | +++ level | 是 | uint32 | 素材图片的层级,值越大表示越高层,0表示最底层 |
  36. * | +++ ratio | 是 | float32 | 相对于原素材图片大小的缩放比例,如0.5表示宽高均变为原来的一半 |
  37. */
  38. private Long task_id;
  39. private String callback_url;
  40. private String gen_txt;
  41. private String video_template_id;
  42. private String voice_id;
  43. private String voice_style;
  44. private String url = "None";//预留音频url
  45. private VideoFiles video_files;
  46. private String token;
  47. private String tenancy_logo;
  48. private Integer user_level;
  49. private Map<String,Object> subtitle;
  50. public String toSimpelJson() {
  51. String json = JSON.toJSONString(this);
  52. JSONObject obj = JSON.parseObject(json);
  53. JSONObject vf = obj.getJSONObject("video_files");
  54. if (null != vf ) {
  55. JSONObject bg = vf.getJSONObject("back_ground");
  56. if ( null != bg) {
  57. bg.remove("image");
  58. }
  59. JSONObject dh = vf.getJSONObject("digital_human");
  60. if ( null != dh) {
  61. dh.remove("image");
  62. }
  63. JSONArray ms = vf.getJSONArray("material");
  64. if (null != ms && ms.size() > 0 ) {
  65. for (int i = 0 ; i < ms.size(); i++) {
  66. JSONObject jo = ms.getJSONObject(i);
  67. jo.remove("image");
  68. }
  69. }
  70. }
  71. return JSON.toJSONString(obj);
  72. }
  73. @Data
  74. public static class VideoFiles {
  75. private BackGround back_ground;
  76. private Material digital_human;
  77. private List<Material> material;
  78. }
  79. @Data
  80. public static class BackGround {
  81. private String image;
  82. private String type;
  83. }
  84. @Data
  85. public static class Material {
  86. private int[] coord;
  87. private String image;
  88. private int level;
  89. private float ratio;
  90. }
  91. }