diff --git a/suimangAdmin/src/main/resources/db/migration/V202306291619_voice_info.sql b/suimangAdmin/src/main/resources/db/migration/V202306291619_voice_info.sql index 8424ca5..fa16801 100644 --- a/suimangAdmin/src/main/resources/db/migration/V202306291619_voice_info.sql +++ b/suimangAdmin/src/main/resources/db/migration/V202306291619_voice_info.sql @@ -8,4 +8,7 @@ ALTER TABLE `mallink_suimang_test`.`photo_speak_video` ADD COLUMN `is_hy` smallint NULL DEFAULT 0 COMMENT '是否超分(1、是,2、否)' AFTER `video_hy_status`, ALTER TABLE `mallink_suimang_test`.`voice_material` - ADD COLUMN `time` double NULL COMMENT '视频时长' AFTER `type`; \ No newline at end of file + ADD COLUMN `time` double NULL COMMENT '视频时长' AFTER `type`; + +ALTER TABLE `mallink_suimang_test`.`photo_speak_video` + ADD COLUMN `audio_path` varchar(255) NULL DEFAULT NULL COMMENT 'audio_path' AFTER `save_dir`, \ No newline at end of file diff --git a/suimangCApi/src/main/java/com/iformall/controller/PhotoSpeakVideoController.java b/suimangCApi/src/main/java/com/iformall/controller/PhotoSpeakVideoController.java index 3c8d69d..235ca98 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/PhotoSpeakVideoController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/PhotoSpeakVideoController.java @@ -216,11 +216,11 @@ public class PhotoSpeakVideoController extends BaseController { if(StringUtils.isBlank(voiceMaterialUrl)){ voiceMaterialService.handVideoUrl(voiceMaterial); voiceMaterialUrl = voiceMaterial.getMaterial(); - videoUpd.setVoiceMaterialUrl(voiceMaterialUrl); } if(StringUtils.isBlank(voiceMaterialUrl)){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"未找到上传声音文件"); } + videoUpd.setVoiceMaterialUrl(voiceMaterialUrl); // videoUpd.setVideoTime(String.valueOf(voiceMaterial.getTime())); } else if (EnumVoiceFrom.MUSIC.getCode().equals(voiceFrom)) { Long musicId = mouldVideo.getMusicId(); 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 145604c..55e1657 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 @@ -151,6 +151,8 @@ public class PhotoSpeakVideo extends TenantEntity { @TableField(exist = false) private List videoStatuss; + private String audioPath; + 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 9cfc3f0..19a4f99 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 @@ -227,6 +227,7 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); if (video.isSuccess()) { photoSpeakVideo.setSaveDir(video.getSaveDir()); + photoSpeakVideo.setAudioPath(video.getAudioPath()); photoSpeakVideo.setVideoPath(video.getUrl()); this.updateById(photoSpeakVideo); return new ResultData(); @@ -335,6 +336,7 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { try { AiVideoHqParam param = new AiVideoHqParam(); param.setSave_dir(speakVideo.getSaveDir()); + param.setAudio_path(speakVideo.getAudioPath()); AiVideoHqResult result = AiVideoHelper.videoHq(param); if (result.isSuccess()) { speakVideo.setVideoHyStatus(EnumVideoStatus.success.getCode()); diff --git a/suimangService/src/main/java/com/iformall/sm/AiPhotoSpeakResult.java b/suimangService/src/main/java/com/iformall/sm/AiPhotoSpeakResult.java index a313797..628d112 100644 --- a/suimangService/src/main/java/com/iformall/sm/AiPhotoSpeakResult.java +++ b/suimangService/src/main/java/com/iformall/sm/AiPhotoSpeakResult.java @@ -9,6 +9,7 @@ public class AiPhotoSpeakResult { private String msg; private String url; private String saveDir; + private String audioPath; public String getMsgInfo(Integer code, String msg) { if (code == 4000 && msg.equals("img_talk success")) { diff --git a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java index 49671b8..e55ecb2 100644 --- a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java +++ b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java @@ -31,8 +31,11 @@ public class AiVideoHelper { // http://nas.pucao.cn:2001/gen_dh_video public static String uri = "http://nas.pucao.cn:2001"; - public static String url1 = "http://nas.pucao.cn:2002"; - public static String url = "http://111.198.0.15:22299"; + public static String url = "http://nas.pucao.cn:2002"; + public static String hy_url = "http://nas.pucao.cn:2002"; +// public static String url = "http://111.198.0.15:22299"; +// public static String hy_url = "http://111.198.0.15:22288"; + public static String photo_speak_suffix = "/img_talking"; public static String image_quality_suffix = "/image_qualit"; public static String voice_preview = "/tts_wav"; @@ -126,9 +129,11 @@ public class AiVideoHelper { JSONObject data = jsonObject.getJSONObject("data"); String videoUrl = data.getString("url"); String saveDir = data.getString("save_dir"); + String audioPath = data.getString("audio_path"); result.setSuccess(true); result.setUrl(videoUrl); result.setSaveDir(saveDir); + result.setAudioPath(audioPath); String resultMsg = result.getMsgInfo(code, msg); result.setMsg(resultMsg); } else { @@ -216,7 +221,7 @@ public class AiVideoHelper { } public static AiVideoHqResult videoHq(AiVideoHqParam param) { - String response = doPost(url + video_hq, JSONObject.toJSONString(param)); + String response = doPost(hy_url + video_hq, JSONObject.toJSONString(param)); log.info("视频超分 end response:" + response); AiVideoHqResult result = new AiVideoHqResult(); @@ -277,13 +282,22 @@ 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/personphoto/16564099737021232.png")); +// param.setGender("male"); +// param.setVoice_id("yue-CN-YunSongNeural"); +// param.setVoice_style("default"); +// 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/personphoto/16564099737021232.png")); - param.setGender("male"); - param.setVoice_id("yue-CN-YunSongNeural"); + param.setGen_txt("None"); + param.setImg(Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/personphoto/seed50258.png")); + param.setGender("None"); + param.setVoice_id("default"); param.setVoice_style("default"); - param.setUrl("None"); + param.setUrl("https://video.metavatar.cc/sv/43a5c16d-189251d6a98/43a5c16d-189251d6a98.mp3"); AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); // AiCheckPhotoParam param = new AiCheckPhotoParam(); diff --git a/suimangService/src/main/java/com/iformall/sm/AiVideoHqParam.java b/suimangService/src/main/java/com/iformall/sm/AiVideoHqParam.java index b369b88..85e0a09 100644 --- a/suimangService/src/main/java/com/iformall/sm/AiVideoHqParam.java +++ b/suimangService/src/main/java/com/iformall/sm/AiVideoHqParam.java @@ -5,5 +5,6 @@ import lombok.Data; @Data public class AiVideoHqParam { private String save_dir; + private String audio_path; }