From 7037ff217c7954463a6325a2d2109c13e585b216 Mon Sep 17 00:00:00 2001 From: lrh <1585126058@qq.com> Date: Wed, 28 Jun 2023 16:56:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Esave=5Fdir=20=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E3=80=81=E6=96=B0=E5=A2=9E=E8=B6=85=E5=88=86=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V202306281655_photo_speak_video.sql | 2 + .../domain/po/sm/PhotoSpeakVideo.java | 2 + .../sm/impl/PhotoSpeakVideoServiceImpl.java | 1 + .../com/iformall/sm/AiPhotoSpeakResult.java | 1 + .../java/com/iformall/sm/AiVideoHelper.java | 78 +++++++++++++++---- .../java/com/iformall/sm/AiVideoHqParam.java | 9 +++ .../java/com/iformall/sm/AiVideoHqResult.java | 19 +++++ 7 files changed, 97 insertions(+), 15 deletions(-) create mode 100644 suimangAdmin/src/main/resources/db/migration/V202306281655_photo_speak_video.sql create mode 100644 suimangService/src/main/java/com/iformall/sm/AiVideoHqParam.java create mode 100644 suimangService/src/main/java/com/iformall/sm/AiVideoHqResult.java diff --git a/suimangAdmin/src/main/resources/db/migration/V202306281655_photo_speak_video.sql b/suimangAdmin/src/main/resources/db/migration/V202306281655_photo_speak_video.sql new file mode 100644 index 0000000..4d60bed --- /dev/null +++ b/suimangAdmin/src/main/resources/db/migration/V202306281655_photo_speak_video.sql @@ -0,0 +1,2 @@ +ALTER TABLE `mallink_suimang_test`.`photo_speak_video` + ADD COLUMN `save_dir` varchar(255) NULL COMMENT '超分的视频路径' AFTER `music_id`; \ No newline at end of file diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/PhotoSpeakVideo.java b/suimangService/src/main/java/com/iformall/domain/po/sm/PhotoSpeakVideo.java index d47e883..544b8ef 100644 --- a/suimangService/src/main/java/com/iformall/domain/po/sm/PhotoSpeakVideo.java +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/PhotoSpeakVideo.java @@ -152,5 +152,7 @@ public class PhotoSpeakVideo extends TenantEntity { private List videoStatuss; private Long musicId; + + private String saveDir; } diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java index 3a80625..d716328 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java @@ -397,6 +397,7 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); if (video.isSuccess()) { videoUpd.setVideoPath(video.getUrl()); + videoUpd.setSaveDir(video.getSaveDir()); videoUpd.setVideoStatus(EnumVideoStatus.success.getCode()); videoUpd.setVideoMsg("success"); videoUpd.setCreateVideoDate(new Date()); diff --git a/suimangService/src/main/java/com/iformall/sm/AiPhotoSpeakResult.java b/suimangService/src/main/java/com/iformall/sm/AiPhotoSpeakResult.java index 3fe72ff..a96e1f8 100644 --- a/suimangService/src/main/java/com/iformall/sm/AiPhotoSpeakResult.java +++ b/suimangService/src/main/java/com/iformall/sm/AiPhotoSpeakResult.java @@ -8,6 +8,7 @@ public class AiPhotoSpeakResult { private boolean success; private String msg; private String url; + private String saveDir; public String getMsgInfo(Integer code, String msg) { if (code == 4000 && msg.equals("success")) { diff --git a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java index 7405a5e..b55bc4f 100644 --- a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java +++ b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java @@ -35,6 +35,7 @@ public class AiVideoHelper { public static String photo_speak_suffix = "/img_talking"; public static String image_quality_suffix = "/image_qualit"; public static String voice_preview = "/tts_wav"; + public static String video_hq = "/video_hq"; public static String doPost(String url, String params) { return HttpUtil.doAiVideoPost(url,params); @@ -123,8 +124,10 @@ public class AiVideoHelper { if (code.intValue() == 4000) { JSONObject data = jsonObject.getJSONObject("data"); String videoUrl = data.getString("url"); + String saveDir = data.getString("save_dir"); result.setSuccess(true); result.setUrl(videoUrl); + result.setSaveDir(saveDir); String resultMsg = result.getMsgInfo(code, msg); result.setMsg(resultMsg); } else { @@ -211,6 +214,46 @@ public class AiVideoHelper { return result; } + public static AiVideoHqResult videoHq(AiVideoHqParam param) { + String response = doPost(url + video_hq, JSONObject.toJSONString(param)); + log.info("视频超分 end response:" + response); + AiVideoHqResult result = new AiVideoHqResult(); + + if (StringUtils.isBlank(response)) { + result.setSuccess(false); + result.setMsg("视频超分失败,请稍后重试"); + return result; + } + JSONObject jsonObject = JSON.parseObject(response); + JSONObject status = jsonObject.getJSONObject("status"); + JSONObject data = jsonObject.getJSONObject("data"); + String strURL = null; + if (data != null){ + strURL = data.getString("url"); + } + + Integer code = status.getInteger("code"); + String msg = status.getString("msg"); + if (code == null) { + result.setSuccess(false); + result.setMsg("视频超分异常,请稍后重试"); + return result; + } + if (code.intValue() == 3000) { + result.setCode(200); + result.setSuccess(true); + result.setUrl(url + strURL); + String resultMsg = result.getMsgInfo(code, msg); + result.setMsg(resultMsg); + } else { + result.setCode(code); + result.setSuccess(false); + String resultMsg = result.getMsgInfo(code, msg); + result.setMsg(resultMsg); + } + return result; + } + public static void main(String[] args) { // AiVideoParam videoParam = new AiVideoParam(); // videoParam.setGen_txt("我写了一篇小说,你帮我看看。"); @@ -233,14 +276,14 @@ public class AiVideoHelper { // AiVideoResult video = AiVideoHelper.createVideo(videoParam); // -// AiPhotoSpeakParam param = new AiPhotoSpeakParam(); -// param.setGen_txt("人多泰达股份冲冠怒发代发"); -// param.setImg(Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/digitalperson/16760216806604820_cSHoijDX_matting.png")); -// param.setGender("male"); -// param.setVoice_id("zh-CN-YunxiNeural"); -// param.setVoice_style("sad"); -// param.setUrl("None"); -// AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); + AiPhotoSpeakParam param = new AiPhotoSpeakParam(); + param.setGen_txt("人多泰达股份冲冠怒发代发"); + param.setImg(Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/digitalperson/16760216806604820_cSHoijDX_matting.png")); + param.setGender("male"); + param.setVoice_id("zh-CN-YunyangNeural"); + param.setVoice_style("default"); + param.setUrl("None"); + AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); // AiCheckPhotoParam param = new AiCheckPhotoParam(); // String img = Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/personmould/16760216806604820_cSHoijDX_grace_1080.jpg"); @@ -248,13 +291,18 @@ public class AiVideoHelper { // AiCheckPhotoResult result = AiVideoHelper.checkPhoto(param); // System.out.println(result); // - AiPreviewParam param = new AiPreviewParam(); - param.setGen_txt("今天是个好日子"); - param.setVoice_id("ar-DZ-AminaNeural"); - param.setVoice_style("default"); - param.setGender("female"); - AiPreviewResult result = AiVideoHelper.voicePreview(param); - System.out.println(result); +// AiPreviewParam param = new AiPreviewParam(); +// param.setGen_txt("今天是个好日子"); +// param.setVoice_id("ar-DZ-AminaNeural"); +// param.setVoice_style("default"); +// param.setGender("female"); +// AiPreviewResult result = AiVideoHelper.voicePreview(param); +// System.out.println(result); + +// AiVideoHqParam param = new AiVideoHqParam(); +// param.setSave_dir(); +// AiPreviewResult result = AiVideoHelper.voicePreview(param); +// System.out.println(result); } diff --git a/suimangService/src/main/java/com/iformall/sm/AiVideoHqParam.java b/suimangService/src/main/java/com/iformall/sm/AiVideoHqParam.java new file mode 100644 index 0000000..b369b88 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/sm/AiVideoHqParam.java @@ -0,0 +1,9 @@ +package com.iformall.sm; + +import lombok.Data; + +@Data +public class AiVideoHqParam { + private String save_dir; + +} diff --git a/suimangService/src/main/java/com/iformall/sm/AiVideoHqResult.java b/suimangService/src/main/java/com/iformall/sm/AiVideoHqResult.java new file mode 100644 index 0000000..3e2fe07 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/sm/AiVideoHqResult.java @@ -0,0 +1,19 @@ +package com.iformall.sm; + +import lombok.Data; + +@Data +public class AiVideoHqResult { + private boolean success; + private Integer code; + private String msg; + private String url; + + public String getMsgInfo(Integer code, String msg) { + if (code == 5000 && msg.equals("success")) { + return "成功"; + } + return msg; + } + +}