Pārlūkot izejas kodu

超分接口修改

private_deployment
lrh pirms 1 gada
vecāks
revīzija
c6fb7135f8
8 mainītis faili ar 78 papildinājumiem un 61 dzēšanām
  1. +10
    -13
      suimangCApi/src/main/java/com/iformall/controller/PhotoSpeakVideoController.java
  2. +2
    -2
      suimangCApi/src/main/java/com/iformall/controller/VideoCallbackController.java
  3. +7
    -2
      suimangCApi/src/main/java/com/iformall/utils/BaiduImageCheckUtil.java
  4. +2
    -2
      suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java
  5. +1
    -1
      suimangService/src/main/java/com/iformall/domain/po/sm/PhotoSpeakVideo.java
  6. +9
    -1
      suimangService/src/main/java/com/iformall/enums/EnumVideoStatus.java
  7. +20
    -16
      suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java
  8. +27
    -24
      suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java

+ 10
- 13
suimangCApi/src/main/java/com/iformall/controller/PhotoSpeakVideoController.java Parādīt failu

@@ -424,6 +424,7 @@ public class PhotoSpeakVideoController extends BaseController {
return new ResultData();
}

@AuthIgnore
@ApiOperation("视频超分")
@GetMapping("/videoHy")
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
@@ -439,26 +440,22 @@ public class PhotoSpeakVideoController extends BaseController {
if (StringUtils.isEmpty(speakVideo.getSaveDir())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"save_dir为空");
}
if(!speakVideo.getUserId().equals(getMemberId())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"未找到用户数据");
}

if(!EnumVideoStatus.upload_success.getCode().equals(speakVideo.getVideoStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"原始视频生成未完成");
}
// if(!speakVideo.getUserId().equals(getMemberId())){
// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"未找到用户数据");
// }

if(EnumVideoStatus.ing.getCode().equals(speakVideo.getVideoHyStatus())
|| EnumVideoStatus.success.getCode().equals(speakVideo.getVideoHyStatus())
|| EnumVideoStatus.upload_ing.getCode().equals(speakVideo.getVideoHyStatus())
|| EnumVideoStatus.upload_fail.getCode().equals(speakVideo.getVideoHyStatus())){
if(EnumVideoStatus.hy_ing.getCode().equals(speakVideo.getVideoStatus())
|| EnumVideoStatus.hy_success.getCode().equals(speakVideo.getVideoStatus())
|| EnumVideoStatus.hy_upload_ing.getCode().equals(speakVideo.getVideoStatus())
|| EnumVideoStatus.hy_upload_fail.getCode().equals(speakVideo.getVideoStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"高清晰度视频生成中");
}
if(EnumVideoStatus.upload_success.getCode().equals(speakVideo.getVideoHyStatus())){
if(EnumVideoStatus.hy_upload_success.getCode().equals(speakVideo.getVideoStatus())){
//上传阿里云状态 生成成功
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"高清晰度视频已生成完成");
}

speakVideo.setVideoHyStatus(EnumVideoStatus.ing.getCode());
speakVideo.setVideoStatus(EnumVideoStatus.hy_ing.getCode());
speakVideo.setVideoMsg("");
speakVideo.setIsHy(EnumYesOrNo.YES.getCode());
speakVideo.setUpdateDate(new Date());


+ 2
- 2
suimangCApi/src/main/java/com/iformall/controller/VideoCallbackController.java Parādīt failu

@@ -85,7 +85,7 @@ public class VideoCallbackController extends BaseController {
if (Integer.parseInt(code) != 4000){
String returnMsg;
if (sr){
photoSpeakVideo.setVideoHyStatus(EnumVideoStatus.fail.getCode());
photoSpeakVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode());
returnMsg = "超分视频生成失败";
}else {
photoSpeakVideo.setVideoStatus(EnumVideoStatus.fail.getCode());
@@ -106,7 +106,7 @@ public class VideoCallbackController extends BaseController {
}

if (sr){
photoSpeakVideo.setVideoHyStatus(EnumVideoStatus.success.getCode());
photoSpeakVideo.setVideoStatus(EnumVideoStatus.hy_success.getCode());
}else {
photoSpeakVideo.setVideoStatus(EnumVideoStatus.success.getCode());
}


+ 7
- 2
suimangCApi/src/main/java/com/iformall/utils/BaiduImageCheckUtil.java Parādīt failu

@@ -24,9 +24,10 @@ public class BaiduImageCheckUtil {
// 获取token
private final static String auth_url = "https://aip.baidubce.com/oauth/2.0/token?";
// 百度API Key
private final static String apiKey = "Your API Key";
private final static String apiKey = "qnx99HW0HY9xoOEEVRuvtnQ4";

// 百度Secret Key
private final static String secretKey = "Your Secret Key";
private final static String secretKey = "RY5YCqGejrc32xT5kIxDj0mqP9QRiKfD";
//写死的 access_token
private final static String access_token = "24.c1c7992795301773c60c8cf01abfe759.2592000.1689236723.282335-33618414";

@@ -111,4 +112,8 @@ public class BaiduImageCheckUtil {
System.out.println(response.body().string());
return response.body().string();
}

public static void main(String[] args) throws IOException {
System.out.println(getAuth());
}
}

+ 2
- 2
suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java Parādīt failu

@@ -143,7 +143,7 @@ public class PhotoSpeakSchedule {
video.setVideoPlayUrl(videoDetail.getVideoUrl());
video.setVideoTime(videoDetail.getDuration());
video.setVideoSize(videoDetail.getSize());
video.setVideoHyStatus(EnumVideoStatus.upload_success.getCode());
video.setVideoStatus(EnumVideoStatus.hy_upload_success.getCode());
photoSpeakVideoService.updateById(video);
}
} catch (Exception e) {
@@ -160,7 +160,7 @@ public class PhotoSpeakSchedule {
public void photoSpeakCreateHySchedule() {
PhotoSpeakVideo videoUpd = new PhotoSpeakVideo();
videoUpd.setVideoStartDate(DateUtils.getHourDateBefore(2,new Date()));
videoUpd.setVideoHyStatus(EnumVideoStatus.fail.getCode());
videoUpd.setVideoStatus(EnumVideoStatus.hy_fail.getCode());
List<PhotoSpeakVideo> list = photoSpeakVideoService.findList(videoUpd);
if (list != null && list.size() > 0) {
for (PhotoSpeakVideo video : list) {


+ 1
- 1
suimangService/src/main/java/com/iformall/domain/po/sm/PhotoSpeakVideo.java Parādīt failu

@@ -157,7 +157,7 @@ public class PhotoSpeakVideo extends TenantEntity {

private String saveDir;

private Integer videoHyStatus;
// private Integer videoHyStatus;

private Integer isHy;//是否超分(1、是,0、否)


+ 9
- 1
suimangService/src/main/java/com/iformall/enums/EnumVideoStatus.java Parādīt failu

@@ -15,7 +15,15 @@ public enum EnumVideoStatus {
fail(3, "生成视频失败"),
upload_ing(4,"上传视频中"),
upload_success(5,"上传视频成功"),
upload_fail(6,"上传视频失败")
upload_fail(6,"上传视频失败"),

// 超分视频状态
hy_ing(7, "超分视频生成中"),
hy_success(8,"超分视频生成成功"),
hy_fail(9, "超分视频生成失败"),
hy_upload_ing(10,"超分视频上传中"),
hy_upload_success(11,"超分视频上传成功"),
hy_upload_fail(12,"超分视频上传失败"),
;

public static EnumVideoStatus getEnum(Integer code) {


+ 20
- 16
suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java Parādīt failu

@@ -358,44 +358,47 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService {
try {
AiVideoHqResult result = AiVideoHelper.videoHq(param);
if (result.isSuccess()) {
speakVideo.setVideoHyStatus(EnumVideoStatus.success.getCode());
speakVideo.setVideoStatus(EnumVideoStatus.hy_success.getCode());
speakVideo.setVideoMsg("超分视频生成成功");
speakVideo.setVideoPath(result.getUrl());
this.updateById(speakVideo);
return new ResultData();
}
speakVideo.setVideoHyStatus(EnumVideoStatus.draft.getCode());
speakVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode());
speakVideo.setVideoMsg("Mata视频超分失败");
speakVideo.setIsHy(EnumYesOrNo.NO.getCode());
this.updateById(speakVideo);
return new ResultData(result.getCode(), result.getMsgInfo(result.getCode(),result.getMsg()));
}catch (Exception e){
e.printStackTrace();
speakVideo.setVideoHyStatus(EnumVideoStatus.draft.getCode());
speakVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode());
speakVideo.setVideoMsg("Mata视频超分失败");
speakVideo.setIsHy(EnumYesOrNo.NO.getCode());
this.updateById(speakVideo);
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"Meta接口请求异常");
}
} catch (Exception e) {
e.printStackTrace();
speakVideo.setVideoHyStatus(EnumVideoStatus.draft.getCode());
speakVideo.setVideoMsg("接口请求异常");
speakVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode());
speakVideo.setVideoMsg("超分视频接口请求异常");
speakVideo.setIsHy(EnumYesOrNo.NO.getCode());
this.updateById(speakVideo);
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "接口请求异常");
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "超分视频接口请求异常");
}
}

@Async
@Override
public void uploadHyVideo(PhotoSpeakVideo mouldVideo){
if(EnumVideoStatus.success.getCode().equals(mouldVideo.getVideoHyStatus())
|| EnumVideoStatus.upload_fail.getCode().equals(mouldVideo.getVideoHyStatus())){
if(EnumVideoStatus.hy_success.getCode().equals(mouldVideo.getVideoStatus())
|| EnumVideoStatus.hy_upload_fail.getCode().equals(mouldVideo.getVideoStatus())){
String url = hy_url + mouldVideo.getVideoPath();
VideUploadResult result = videoFactory.getExcutor(videoType).uploadVideoPath(mouldVideo.getTitle(), url);
if(result.isSuccess()){
PhotoSpeakVideo videoUpd = new PhotoSpeakVideo();
videoUpd.setId(mouldVideo.getId());
videoUpd.setVideoId(result.getVideoId());
videoUpd.setVideoHyStatus(EnumVideoStatus.upload_ing.getCode());
videoUpd.setVideoStatus(EnumVideoStatus.hy_upload_ing.getCode());
this.saveOrUpdate(videoUpd);

AtomicInteger integer = new AtomicInteger(30);
@@ -412,22 +415,23 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService {
mouldVideo.setVideoPlayUrl(videoDetail.getVideoUrl());
mouldVideo.setVideoTime(videoDetail.getDuration());
mouldVideo.setVideoSize(videoDetail.getSize());
mouldVideo.setIsHy(2);//超分视频生成成功了状态为2
mouldVideo.setVideoHyStatus(EnumVideoStatus.upload_success.getCode());
mouldVideo.setVideoStatus(EnumVideoStatus.hy_upload_success.getCode());
this.updateById(mouldVideo);
break;
}
}

if (integer.getAndDecrement() <= 0){
mouldVideo.setVideoHyStatus(EnumVideoStatus.fail.getCode());
mouldVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode());
mouldVideo.setIsHy(EnumYesOrNo.NO.getCode());
mouldVideo.setVideoMsg("视频上传失败,点击“编辑”重试");
this.updateById(mouldVideo);
break;
}
} catch (InterruptedException e) {
e.printStackTrace();
mouldVideo.setVideoHyStatus(EnumVideoStatus.fail.getCode());
mouldVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode());
mouldVideo.setIsHy(EnumYesOrNo.NO.getCode());
mouldVideo.setVideoMsg("视频上传失败,点击“编辑”重试");
this.updateById(mouldVideo);
}
@@ -439,7 +443,7 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService {
@Override
public List<PhotoSpeakVideo> getUpLoadHyIngList() {
PhotoSpeakVideo umVideoQ = new PhotoSpeakVideo();
umVideoQ.setVideoHyStatus(EnumVideoStatus.upload_ing.getCode());
umVideoQ.setVideoStatus(EnumVideoStatus.hy_upload_ing.getCode());
return photoSpeakVideoMapper.getSortList(umVideoQ);
}

@@ -447,8 +451,8 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService {
public List<PhotoSpeakVideo> getNotHyUploadList() {
PhotoSpeakVideo umVideoQ = new PhotoSpeakVideo();
List<Integer> videoStatuss = new ArrayList<>();
videoStatuss.add(EnumVideoStatus.success.getCode());
videoStatuss.add(EnumVideoStatus.upload_fail.getCode());
videoStatuss.add(EnumVideoStatus.hy_success.getCode());
videoStatuss.add(EnumVideoStatus.hy_upload_fail.getCode());
umVideoQ.setVideoStatuss(videoStatuss);
return photoSpeakVideoMapper.getSortList(umVideoQ);
}


+ 27
- 24
suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java Parādīt failu

@@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import sun.net.www.content.audio.wav;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
@@ -48,15 +49,13 @@ public class AiVideoHelper {
}
private static String hy_url;
@Value("${photo.hy_url}")

public void setHyUrl(String url){
this.hy_url = url;
public void setHyUrl(String hyUrl){
this.hy_url = hyUrl;
}
private static String talk_url;
@Value("${photo.talk}")

public void setTalkUrl(String url){
this.talk_url = url;
public void setTalkUrl(String talkUrl){
this.talk_url = talkUrl;
}
public static String photo_speak_suffix = "/img_talking";
public static String image_quality_suffix = "/image_qualit";
@@ -248,9 +247,11 @@ public class AiVideoHelper {
}

public static AiVideoHqResult videoHq(AiVideoHqParam param) {
String response = doPost(hy_url + video_hq, JSONObject.toJSONString(param));
// String response = doPost(hy_url + video_hq, JSONObject.toJSONString(param));
String response = doPost("http://111.198.0.15:22288" + video_hq, JSONObject.toJSONString(param));
log.info("视频超分 end response:" + response);
log.info("视频超分 IP:" + hy_url + video_hq);
// log.info("视频超分 IP:" + hy_url + video_hq);
log.info("视频超分 IP:" + "http://111.198.0.15:22288" + video_hq);
AiVideoHqResult result = new AiVideoHqResult();

if (StringUtils.isBlank(response)) {
@@ -273,7 +274,7 @@ public class AiVideoHelper {
result.setMsg("(MetaService)视频超分异常,请稍后重试");
return result;
}
if (code.intValue() == 3000) {
if (code.intValue() == 5000) {
result.setCode(200);
result.setSuccess(true);
result.setUrl(url + strURL);
@@ -319,16 +320,16 @@ public class AiVideoHelper {
// param.setUrl("None");
// AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param);

AiPhotoSpeakParam param = new AiPhotoSpeakParam();
param.setCallback_url("https://phototest.metavatar.cc/C/callback/photo/speak");
param.setTask_id(836805079248850944L);
param.setGen_txt("None");
param.setImg(Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/capi/2023-06-07/6da595fe12ef405bb6434f31e6bad4ec.png"));
param.setGender("None");
param.setVoice_id("default");
param.setVoice_style("default");
param.setUrl("https://video.metavatar.cc/sv/262b03bd-18929af12fd/262b03bd-18929af12fd.mp3");
AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param);
// AiPhotoSpeakParam param = new AiPhotoSpeakParam();
// param.setCallback_url("https://phototest.metavatar.cc/C/callback/photo/speak");
// param.setTask_id(836805079248850944L);
// param.setGen_txt("None");
// param.setImg(Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/capi/2023-06-07/6da595fe12ef405bb6434f31e6bad4ec.png"));
// param.setGender("None");
// param.setVoice_id("default");
// param.setVoice_style("default");
// param.setUrl("https://video.metavatar.cc/sv/262b03bd-18929af12fd/262b03bd-18929af12fd.mp3");
// 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");
@@ -344,11 +345,13 @@ public class AiVideoHelper {
// AiPreviewResult result = AiVideoHelper.voicePreview(param);
// System.out.println(result);

// AiVideoHqParam param = new AiVideoHqParam();
// param.setSave_dir("static/video/2023-07-06/16886220017209544_wav.mp4");
// param.setAudio_path("static/mp3/2023-07-06/291ab7dc-18929b6e89e_convert.wav");
// AiVideoHqResult result = AiVideoHelper.videoHq(param);
// System.out.println(result);
AiVideoHqParam param = new AiVideoHqParam();
param.setSave_dir("static/tts/2023-07-07/16886958135060428.wav.mp4");
param.setAudio_path("static/tts/2023-07-07/16886958135060428.wav");
param.setCallback_url("https://phototest.metavatar.cc/C/callback/photo/speak");
param.setTask_id(836541377936281600L);
AiVideoHqResult result = AiVideoHelper.videoHq(param);
System.out.println(result);
}




Notiek ielāde…
Atcelt
Saglabāt