diff --git a/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java b/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java index 1dfc5b1..4164e08 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java @@ -184,12 +184,12 @@ public class VoiceMouldController extends BaseController { return new ResultData(voiceInfoService.previewVoice(aiPreviewParam)); } - @ApiOperation("TTS音色预览") + @ApiOperation("TTS音色预览(慧影用)") @PostMapping("/loginPreview") @ApiImplicitParams({}) public ResultData loginPreview(@RequestBody AiPreviewParam aiPreviewParam) { logger.debug("[" + getIpAddr() + "] MouldPatchController::voicePreview"); - PreviewVoiceVO pv = voiceInfoService.previewVoice(aiPreviewParam); + PreviewVoiceVO pv = voiceInfoService.loginPreviewVoice(aiPreviewParam); Double time = pv.getTime();//秒 if (time > 5*60 ) { return new ResultData(Result.ERROR,"视频最大时长为300秒,当前时长为"+time+"秒"); diff --git a/suimangService/src/main/java/com/iformall/service/sm/VoiceInfoService.java b/suimangService/src/main/java/com/iformall/service/sm/VoiceInfoService.java index d285b2d..e91710f 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/VoiceInfoService.java +++ b/suimangService/src/main/java/com/iformall/service/sm/VoiceInfoService.java @@ -2,6 +2,7 @@ package com.iformall.service.sm; import com.iformall.domain.vo.sm.PreviewVoiceVO; +import com.iformall.common.ResultData; import com.iformall.domain.po.sm.VoiceInfo; import com.iformall.sm.AiPreviewParam; @@ -13,5 +14,7 @@ public interface VoiceInfoService { VoiceInfo getById(Long voiceMouldId); - PreviewVoiceVO previewVoice(AiPreviewParam aiPreviewParam); + ResultData previewVoice(AiPreviewParam aiPreviewParam); + + PreviewVoiceVO loginPreviewVoice(AiPreviewParam aiPreviewParam); } diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceInfoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceInfoServiceImpl.java index cadda70..83b6b82 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceInfoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceInfoServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.google.common.collect.Lists; import com.iformall.common.ErrorCode; +import com.iformall.common.ResultData; import com.iformall.domain.vo.sm.PreviewVoiceVO; import com.iformall.domain.po.sm.VoiceInfo; import com.iformall.domain.vo.VoiceInfoVo; @@ -78,12 +79,37 @@ public class VoiceInfoServiceImpl implements VoiceInfoService { } @Override - public PreviewVoiceVO previewVoice(AiPreviewParam aiPreviewParam) { + public ResultData previewVoice(AiPreviewParam aiPreviewParam) { VoiceInfo voiceInfo = voiceMapper.selectOne(new LambdaQueryWrapper() .eq(VoiceInfo::getIsDel, 0) .eq(VoiceInfo::getId, aiPreviewParam.getVoice_id())); voiceInfo = Optional.ofNullable(voiceInfo).orElseThrow(() -> new BizException(ErrorCode.SYS_SERVER_ERROR.getCode(), "声音信息不存在")); + AiPreviewParam param = new AiPreviewParam(); + param.setGen_txt(aiPreviewParam.getGen_txt().replaceAll(Constant.text_pause,"[*]")); + param.setVoice_id(voiceInfo.getMouldSmId()); + param.setVoice_style(StringUtils.isBlank(aiPreviewParam.getVoice_style()) ? EnumSpeakType.default_0.getMessage() : aiPreviewParam.getVoice_style()); + param.setGender(voiceInfo.getSex() == 1 ? "male" : "female"); + AiPreviewResult result = null; + if (!AiVideoHelper.localDeploy) { + result = AiVideoHelper.voicePreview(param); + }else { +// AiPreviewResult result = AiVideoHelper.voicePreview(param); + result = SmSdkUtils.preview(SmPreviewVideoDTO.mapping(param)); + } + if (result.isSuccess()){ + return new ResultData(result.getTime()); + } + throw new BizException(result.getCode(), result.getMsg()); + } + + @Override + public PreviewVoiceVO loginPreviewVoice(AiPreviewParam aiPreviewParam) { + VoiceInfo voiceInfo = voiceMapper.selectOne(new LambdaQueryWrapper() + .eq(VoiceInfo::getIsDel, 0) + .eq(VoiceInfo::getId, aiPreviewParam.getVoice_id())); + voiceInfo = Optional.ofNullable(voiceInfo).orElseThrow(() -> new BizException(ErrorCode.SYS_SERVER_ERROR.getCode(), "声音信息不存在")); + AiPreviewParam param = new AiPreviewParam(); param.setGen_txt(aiPreviewParam.getGen_txt().replaceAll(Constant.text_pause,"[*]")); param.setVoice_id(voiceInfo.getMouldSmId()); @@ -103,6 +129,6 @@ public class VoiceInfoServiceImpl implements VoiceInfoService { return vo; } throw new BizException(result.getCode(), result.getMsg()); - } + } }