|
@@ -63,6 +63,9 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { |
|
|
@Autowired |
|
|
@Autowired |
|
|
private UserCreateVideoNumService userCreateVideoNumService; |
|
|
private UserCreateVideoNumService userCreateVideoNumService; |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
|
private MusicInfoService musicInfoService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public PageInfo<PhotoSpeakVideo> listAsPage(PhotoSpeakVideo record, Integer pageIndex, Integer pageSize) { |
|
|
public PageInfo<PhotoSpeakVideo> listAsPage(PhotoSpeakVideo record, Integer pageIndex, Integer pageSize) { |
|
@@ -131,6 +134,12 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { |
|
|
} |
|
|
} |
|
|
voiceMaterialService.handVideoUrl(voiceMaterial); |
|
|
voiceMaterialService.handVideoUrl(voiceMaterial); |
|
|
record.setVoiceMaterialUrl(voiceMaterial.getMaterial()); |
|
|
record.setVoiceMaterialUrl(voiceMaterial.getMaterial()); |
|
|
|
|
|
}else if(EnumVoiceFrom.MUSIC.getCode().equals(record.getVoiceFrom())){ |
|
|
|
|
|
if(record.getVoiceMaterialId() == null){ |
|
|
|
|
|
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"未选择音乐文件"); |
|
|
|
|
|
} |
|
|
|
|
|
MusicInfo musicInfo = musicInfoService.getById(record.getVoiceMaterialId()); |
|
|
|
|
|
record.setVoiceMaterialUrl(musicInfo.getUrl()); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@@ -222,7 +231,17 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { |
|
|
if(StringUtils.isBlank(voiceMaterialUrl)){ |
|
|
if(StringUtils.isBlank(voiceMaterialUrl)){ |
|
|
msg = "未找到上传声音文件"; |
|
|
msg = "未找到上传声音文件"; |
|
|
} |
|
|
} |
|
|
} else{ |
|
|
|
|
|
|
|
|
} else if (EnumVoiceFrom.MUSIC.getCode().equals(voiceFrom)) { |
|
|
|
|
|
Long materialId = photoSpeakVideo.getVoiceMaterialId(); |
|
|
|
|
|
MusicInfo musicInfo = musicInfoService.getById(materialId); |
|
|
|
|
|
if (ObjectUtils.isEmpty(musicInfo)){ |
|
|
|
|
|
msg = "未找到音乐文件"; |
|
|
|
|
|
} |
|
|
|
|
|
voiceMaterialUrl = musicInfo.getUrl(); |
|
|
|
|
|
if (StringUtils.isBlank(voiceMaterialUrl)) { |
|
|
|
|
|
msg = "音乐文件错误"; |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
msg = "声音数据异常"; |
|
|
msg = "声音数据异常"; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@@ -263,6 +282,9 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
try { |
|
|
try { |
|
|
|
|
|
AiPreviewParam previewParam = new AiPreviewParam(); |
|
|
|
|
|
previewParam.setVoice_id(voiceMouldSmId); |
|
|
|
|
|
|
|
|
AiPhotoSpeakParam param = new AiPhotoSpeakParam(); |
|
|
AiPhotoSpeakParam param = new AiPhotoSpeakParam(); |
|
|
param.setImg(Base64Util.imageUrlToBase64(photoSpeakVideo.getPersonPhotoUrl())); |
|
|
param.setImg(Base64Util.imageUrlToBase64(photoSpeakVideo.getPersonPhotoUrl())); |
|
|
param.setVoice_id(voiceMouldSmId); |
|
|
param.setVoice_id(voiceMouldSmId); |
|
@@ -271,15 +293,22 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { |
|
|
JSONObject jsonObject = JSON.parseObject(voiceMouldSm); |
|
|
JSONObject jsonObject = JSON.parseObject(voiceMouldSm); |
|
|
Integer speakTypeStr = jsonObject.getInteger("speakType"); |
|
|
Integer speakTypeStr = jsonObject.getInteger("speakType"); |
|
|
param.setVoice_style(StringUtils.isBlank(voiceType) ? "default" : EnumSpeakType.getEnum(speakTypeStr).getType()); |
|
|
param.setVoice_style(StringUtils.isBlank(voiceType) ? "default" : EnumSpeakType.getEnum(speakTypeStr).getType()); |
|
|
|
|
|
|
|
|
|
|
|
previewParam.setVoice_style(StringUtils.isBlank(voiceType) ? "default" : EnumSpeakType.getEnum(speakTypeStr).getType()); |
|
|
|
|
|
|
|
|
Integer sex = jsonObject.getInteger("sex"); |
|
|
Integer sex = jsonObject.getInteger("sex"); |
|
|
if (EnumVoiceFrom.FROM_MOULD.getCode().equals(voiceFrom)) { |
|
|
if (EnumVoiceFrom.FROM_MOULD.getCode().equals(voiceFrom)) { |
|
|
param.setGen_txt(paperwork); |
|
|
param.setGen_txt(paperwork); |
|
|
|
|
|
previewParam.setGen_txt(paperwork); |
|
|
if (sex == 1){ |
|
|
if (sex == 1){ |
|
|
param.setGender("male"); |
|
|
param.setGender("male"); |
|
|
|
|
|
previewParam.setGender("male"); |
|
|
}else if (sex == 2){ |
|
|
}else if (sex == 2){ |
|
|
param.setGender("female"); |
|
|
param.setGender("female"); |
|
|
|
|
|
previewParam.setGender("female"); |
|
|
}else { |
|
|
}else { |
|
|
param.setGender("unknown"); |
|
|
param.setGender("unknown"); |
|
|
|
|
|
previewParam.setGender("unknown"); |
|
|
} |
|
|
} |
|
|
param.setUrl("None"); |
|
|
param.setUrl("None"); |
|
|
} else if (EnumVoiceFrom.FROM_UPD.getCode().equals(voiceFrom)) { |
|
|
} else if (EnumVoiceFrom.FROM_UPD.getCode().equals(voiceFrom)) { |
|
@@ -288,6 +317,21 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { |
|
|
param.setUrl(voiceMaterialUrl); |
|
|
param.setUrl(voiceMaterialUrl); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//TTS音色预览 |
|
|
|
|
|
AiPreviewResult result = AiVideoHelper.voicePreview(previewParam); |
|
|
|
|
|
if (!result.isSuccess()) { |
|
|
|
|
|
videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode()); |
|
|
|
|
|
videoUpd.setVideoMsg(result.getMsgInfo(result.getCode(), result.getMsg())); |
|
|
|
|
|
videoUpd.setCreateVideoDate(new Date()); |
|
|
|
|
|
this.saveOrUpdate(videoUpd); |
|
|
|
|
|
|
|
|
|
|
|
if (flag) { |
|
|
|
|
|
//如果生成视频失败了,就把创建视频的次数加回去 |
|
|
|
|
|
userCreateVideoNumService.addOrSubtractNumberOfTimes(2, createVideoNum); |
|
|
|
|
|
} |
|
|
|
|
|
return new AsyncResult<>(0); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); |
|
|
AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); |
|
|
if (video.isSuccess()) { |
|
|
if (video.isSuccess()) { |
|
|
videoUpd.setVideoPath(video.getUrl()); |
|
|
videoUpd.setVideoPath(video.getUrl()); |
|
|