|
- package com.iformall.sm;
-
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.iformall.common.ErrorCode;
- import com.iformall.douyin.pay.orderQuery.OrderQueryResult;
- import com.iformall.douyin.pay.orderQuery.QueryMerchantResult;
- import com.iformall.douyin.pay.orderQuery.QueryRefundResult;
- import com.iformall.douyin.pay.orderQuery.QuerySettleResult;
- import com.iformall.douyin.pay.preOrder.*;
- import com.iformall.enums.EnumMouldPatchType;
- import com.iformall.enums.EnumPayStatus;
- import com.iformall.enums.EnumVideoType;
- import com.iformall.exception.MallinkException;
- import com.iformall.utils.Base64Util;
- import com.iformall.utils.HttpUtil;
- import com.iformall.utils.sign.SignUtils;
- 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;
- import java.security.NoSuchAlgorithmException;
- import java.util.*;
-
- @Slf4j
- @Component
- public class AiVideoHelper {
-
- public static String oral_broadcasting;
- @Value("${suimang.oral_broadcasting}")
- public void setOralBroadcasting(String oral_broadcasting){
- this.oral_broadcasting = oral_broadcasting;
- }
-
- public static String photo_speak;
- @Value("${suimang.photo_speak}")
- public void setPhotoSpeak(String photo_speak){
- this.photo_speak = photo_speak;
- }
-
- public static String photo_speak_hy;
- @Value("${suimang.photo_speak_hy}")
- public void setPhotoSpeakHy(String photo_speak_hy){
- this.photo_speak_hy = photo_speak_hy;
- }
-
- public static String callbackUrl;
- @Value("${suimang.callbackUrl}")
- public void setCallbackUrl(String callbackUrl){
- this.callbackUrl = callbackUrl;
- }
-
-
- public static String doPost(String url, String params) {
- return HttpUtil.doAiVideoPost(url,params);
- }
-
-
- public static AiVideoResult createVideo(AiVideoParam videoParam) {
-
- // videoParam.setTask_id(taskId);
- if (StringUtils.isNotBlank(videoParam.getCallback_url())) {
- videoParam.setCallback_url(videoParam.getCallback_url());
- } else {
- videoParam.setCallback_url(callbackUrl + "/callback/oral/broadcasting");
- }
-
- log.info("生成视频start request:" + videoParam.neglectImgString());
- String response = doPost(oral_broadcasting+"/gen_dh_video", JSONObject.toJSONString(videoParam));
- log.info("生成视频end response:"+response);
-
- AiVideoResult result = new AiVideoResult();
-
- if(StringUtils.isBlank(response)){
- result.setSuccess(false);
- result.setMsg("请求生成视频异常,请稍后重试");
- return result;
- }
-
- JSONObject jsonObject = JSON.parseObject(response);
- JSONObject status = jsonObject.getJSONObject("status");
- Integer code = status.getInteger("code");
- if(code == null){
- result.setSuccess(false);
- result.setMsg("请求生成视频异常,请稍后重试");
- return result;
- }
-
- if(code.intValue() == 1000){
- JSONObject data = jsonObject.getJSONObject("data");
- JSONObject video = data.getJSONObject("video");
- result.setSuccess(true);
- result.setMsg("success");
- result.setDuration(video.getFloatValue("duration"));
- result.setUrl(video.getString("url"));
- }else{
- result.setSuccess(false);
- result.setMsg(status.getString("msg"));
- }
- return result;
-
- // Integer code = jsonObject.getInteger("err_no");
- // if (null != code && code.intValue() == 0 ) {
- // CreatePreOrderResult result = new CreatePreOrderResult();
- // result.setSuccess(true);
- // result.setOutOrderNo(preOrder.getOutOrderNo());
- // JSONObject data = jsonObject.getJSONObject("data");
- // if (null != data ) {
- // result.setOrderId(data.getString("order_id"));
- // result.setToken(data.getString("order_token"));
- // }else {
- // log.error("createPreOrder reponse empity. request: "+JSON.toJSONString(preOrder.toRequestMap())+" response:"+response);
- // result.setSuccess(false);
- // result.setMsg("createPreOrder reponse empity."+response);
- // }
- // return result;
- // }else {
- // log.error("createPreOrder reponse error. request: "+JSON.toJSONString(preOrder.toRequestMap())+" response:"+response);
- // CreatePreOrderResult result = new CreatePreOrderResult();
- // result.setSuccess(false);
- // result.setMsg("createPreOrder reponse error."+response);
- // return result;
- // }
- }
-
- public static AiCheckPhotoResult checkPhoto(AiCheckPhotoParam param) {
- // String response = doPost("http://111.198.0.15:22299" + "/image_qualit", JSONObject.toJSONString(param));
- String response = doPost(photo_speak + "/image_qualit", JSONObject.toJSONString(param));
- log.info("图片质量审核 end response:" + response);
- AiCheckPhotoResult result = new AiCheckPhotoResult();
-
- if (StringUtils.isBlank(response)) {
- result.setSuccess(false);
- result.setMsg("(MetaService)图片质量审核失败,请稍后重试");
- return result;
- }
- JSONObject jsonObject = JSON.parseObject(response);
- JSONObject status = jsonObject.getJSONObject("status");
- Integer code = status.getInteger("code");
- String msg = status.getString("msg");
- if (code == null) {
- result.setSuccess(false);
- result.setMsg("(MetaService)请求图片质量检查失败,请稍后重试");
- return result;
- }
- if (code.intValue() == 2000) {
- result.setCode(code);
- result.setSuccess(true);
- 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 AiPreviewResult voicePreview(AiPreviewParam param) {
- log.info("TTS音色预览 start request:" + JSONObject.toJSONString(param));
- String response = doPost(photo_speak + "/tts_wav", JSONObject.toJSONString(param));
- log.info("TTS音色预览 end response:" + response);
- AiPreviewResult result = new AiPreviewResult();
-
- if (StringUtils.isBlank(response)) {
- result.setSuccess(false);
- result.setMsg("(MetaService) no result");
- return result;
- }
- JSONObject jsonObject = JSON.parseObject(response);
- JSONObject status = jsonObject.getJSONObject("status");
- JSONObject data = jsonObject.getJSONObject("data");
- String strURL = null;
- String time = null;
- if (data != null){
- strURL = data.getString("url");
- time = data.getString("time");
- }
-
- Integer code = status.getInteger("code");
- String msg = status.getString("msg");
- if (code == null) {
- result.setSuccess(false);
- result.setMsg("(MetaService) error,"+msg);
- return result;
- }
- if (code.intValue() == 3000) {
- result.setCode(200);
- result.setSuccess(true);
- result.setUrl(photo_speak + strURL);
- result.setTime(Double.valueOf(time));
- result.setMsg("(MetaService) error,"+msg);
- } else {
- result.setCode(code);
- result.setSuccess(false);
- result.setMsg("(MetaService) error,"+msg);
- }
- return result;
- }
-
- public static AiPhotoSpeakResult createPhotoSpeakVideo(AiPhotoSpeakParam videoParam,Long taskId) {
-
- videoParam.setTask_id(taskId);
- videoParam.setCallback_url(callbackUrl + "/callback/photo/speak");
-
- log.info("生成视频start request:" + videoParam.neglectImgString());
- String response = doPost(photo_speak + "/img_talking", JSONObject.toJSONString(videoParam));
- log.info("生成视频end response:" + response);
- AiPhotoSpeakResult result = new AiPhotoSpeakResult();
- if (StringUtils.isBlank(response)) {
- result.setSuccess(false);
- result.setMsg("(MetaService) not result");
- return result;
- }
-
- JSONObject jsonObject = JSON.parseObject(response);
- JSONObject status = jsonObject.getJSONObject("status");
- Integer code = status.getInteger("code");
- String msg = status.getString("msg");
- if (code == null) {
- result.setSuccess(false);
- result.setMsg("(MetaService) error."+msg);
- return result;
- }
-
- if (code.intValue() == 4000) {
- 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.setCode(code);
- result.setAudioPath(audioPath);
- result.setMsg("(MetaService) error."+msg);
- } else {
- result.setSuccess(false);
- result.setCode(code);
- result.setMsg("(MetaService) error."+msg);
- }
- return result;
- }
-
- public static AiVideoHqResult videoHq(AiVideoHqParam param,Long taskId) {
-
- param.setTask_id(taskId);
- param.setCallback_url(callbackUrl + "/callback/photo/speak");
-
- String response = doPost(photo_speak_hy + "/video_hq", JSONObject.toJSONString(param));
- log.info("视频超分 end response:" + response);
- AiVideoHqResult result = new AiVideoHqResult();
-
- if (StringUtils.isBlank(response)) {
- result.setSuccess(false);
- result.setMsg("(MetaService)视频超分失败,请稍后重试");
- 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("(MetaService)视频超分异常,请稍后重试");
- return result;
- }
- if (code.intValue() == 5000) {
- result.setCode(200);
- result.setSuccess(true);
- result.setUrl(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("我写了一篇小说,你帮我看看。");
- // videoParam.setVideo_template_id("16776650495633934_PgNAW8Sm");
- // videoParam.setVoice_id("zh-CN-XiaohanNeural");
- // videoParam.setVoice_style("default");
- // AiVideoParam.VideoFiles videoFiles = new AiVideoParam.VideoFiles();
- // AiVideoParam.BackGround backGround = new AiVideoParam.BackGround();
- // backGround.setType("vertical");
- // backGround.setImage(Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/background/grace/1080.jpg"));
- // videoFiles.setBack_ground(backGround);
- // AiVideoParam.Material digitalHuman = new AiVideoParam.Material();
- // int[] digitalHumanCoord = new int[]{0,0};
- // digitalHuman.setCoord(digitalHumanCoord);
- // digitalHuman.setLevel(0);
- // digitalHuman.setRatio(1.0f);
- // videoFiles.setDigital_human(digitalHuman);
- // videoParam.setVideo_files(videoFiles);
- //
- // AiVideoResult video = AiVideoHelper.createVideo(videoParam);
- //
-
- // AiPhotoSpeakParam param = new AiPhotoSpeakParam();
- // param.setGen_txt("道可道,非常道。名可名,非常名。无名天地之始;有名万物之母。故常无欲,以观其妙;常有欲,以观其徼。此两者,同出而异名,同谓之玄。玄之又玄,众妙之门");
- // param.setImg(Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/personphoto/165640997370212321.png"));
- // param.setGender("female");
- // param.setVoice_id("zh-CN-XiaoqiuNeural");
- // param.setCallback_url("https://phototest.metavatar.cc/C/callback/photo/speak");
- // param.setTask_id(837169827124269056L);
- // param.setVoice_style("default");
- // 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);
-
- AiCheckPhotoParam param = new AiCheckPhotoParam();
- String img = Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/personmould/16760216806604820_cSHoijDX_grace_1080.jpg");
- param.setImg(img);
- 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);
-
- // 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);
- }
-
-
- }
|