Browse Source

fix

master
winter 1 year ago
parent
commit
60f7831b21
3 changed files with 34 additions and 5 deletions
  1. +2
    -2
      suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java
  2. +4
    -1
      suimangService/src/main/java/com/iformall/service/sm/VoiceInfoService.java
  3. +28
    -2
      suimangService/src/main/java/com/iformall/service/sm/impl/VoiceInfoServiceImpl.java

+ 2
- 2
suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java View File

@@ -184,12 +184,12 @@ public class VoiceMouldController extends BaseController {
return new ResultData(voiceInfoService.previewVoice(aiPreviewParam)); return new ResultData(voiceInfoService.previewVoice(aiPreviewParam));
} }
@ApiOperation("TTS音色预览")
@ApiOperation("TTS音色预览(慧影用)")
@PostMapping("/loginPreview") @PostMapping("/loginPreview")
@ApiImplicitParams({}) @ApiImplicitParams({})
public ResultData loginPreview(@RequestBody AiPreviewParam aiPreviewParam) { public ResultData loginPreview(@RequestBody AiPreviewParam aiPreviewParam) {
logger.debug("[" + getIpAddr() + "] MouldPatchController::voicePreview"); logger.debug("[" + getIpAddr() + "] MouldPatchController::voicePreview");
PreviewVoiceVO pv = voiceInfoService.previewVoice(aiPreviewParam);
PreviewVoiceVO pv = voiceInfoService.loginPreviewVoice(aiPreviewParam);
Double time = pv.getTime();//秒 Double time = pv.getTime();//秒
if (time > 5*60 ) { if (time > 5*60 ) {
return new ResultData(Result.ERROR,"视频最大时长为300秒,当前时长为"+time+"秒"); return new ResultData(Result.ERROR,"视频最大时长为300秒,当前时长为"+time+"秒");


+ 4
- 1
suimangService/src/main/java/com/iformall/service/sm/VoiceInfoService.java View File

@@ -2,6 +2,7 @@ package com.iformall.service.sm;




import com.iformall.domain.vo.sm.PreviewVoiceVO; import com.iformall.domain.vo.sm.PreviewVoiceVO;
import com.iformall.common.ResultData;
import com.iformall.domain.po.sm.VoiceInfo; import com.iformall.domain.po.sm.VoiceInfo;
import com.iformall.sm.AiPreviewParam; import com.iformall.sm.AiPreviewParam;


@@ -13,5 +14,7 @@ public interface VoiceInfoService {


VoiceInfo getById(Long voiceMouldId); VoiceInfo getById(Long voiceMouldId);


PreviewVoiceVO previewVoice(AiPreviewParam aiPreviewParam);
ResultData previewVoice(AiPreviewParam aiPreviewParam);
PreviewVoiceVO loginPreviewVoice(AiPreviewParam aiPreviewParam);
} }

+ 28
- 2
suimangService/src/main/java/com/iformall/service/sm/impl/VoiceInfoServiceImpl.java View File

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.domain.vo.sm.PreviewVoiceVO; import com.iformall.domain.vo.sm.PreviewVoiceVO;
import com.iformall.domain.po.sm.VoiceInfo; import com.iformall.domain.po.sm.VoiceInfo;
import com.iformall.domain.vo.VoiceInfoVo; import com.iformall.domain.vo.VoiceInfoVo;
@@ -78,12 +79,37 @@ public class VoiceInfoServiceImpl implements VoiceInfoService {
} }


@Override @Override
public PreviewVoiceVO previewVoice(AiPreviewParam aiPreviewParam) {
public ResultData previewVoice(AiPreviewParam aiPreviewParam) {
VoiceInfo voiceInfo = voiceMapper.selectOne(new LambdaQueryWrapper<VoiceInfo>() VoiceInfo voiceInfo = voiceMapper.selectOne(new LambdaQueryWrapper<VoiceInfo>()
.eq(VoiceInfo::getIsDel, 0) .eq(VoiceInfo::getIsDel, 0)
.eq(VoiceInfo::getId, aiPreviewParam.getVoice_id())); .eq(VoiceInfo::getId, aiPreviewParam.getVoice_id()));
voiceInfo = Optional.ofNullable(voiceInfo).orElseThrow(() -> new BizException(ErrorCode.SYS_SERVER_ERROR.getCode(), "声音信息不存在")); 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<VoiceInfo>()
.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(); AiPreviewParam param = new AiPreviewParam();
param.setGen_txt(aiPreviewParam.getGen_txt().replaceAll(Constant.text_pause,"[*]")); param.setGen_txt(aiPreviewParam.getGen_txt().replaceAll(Constant.text_pause,"[*]"));
param.setVoice_id(voiceInfo.getMouldSmId()); param.setVoice_id(voiceInfo.getMouldSmId());
@@ -103,6 +129,6 @@ public class VoiceInfoServiceImpl implements VoiceInfoService {
return vo; return vo;
} }
throw new BizException(result.getCode(), result.getMsg()); throw new BizException(result.getCode(), result.getMsg());
}
}


} }

Loading…
Cancel
Save