From cfd9db0bcdfc885322f3a3e28b9e07671f75f684 Mon Sep 17 00:00:00 2001 From: shenrongliang <1328040932@qq.com> Date: 星期二, 15 四月 2025 09:36:29 +0800 Subject: [PATCH] 根据所选声音模型合成视频 --- yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/voices/AuditionVO.java | 4 ++++ yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java | 8 +++++++- yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/voices/VoicesServiceImpl.java | 12 +++++++++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/voices/AuditionVO.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/voices/AuditionVO.java index 80a89db..1a03ea0 100644 --- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/voices/AuditionVO.java +++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/voices/AuditionVO.java @@ -8,7 +8,11 @@ */ @Data public class AuditionVO { + //鍙f挱鍐呭 private String text; + //鏁板瓧浜篒D private String humanId; + //澹伴煶妯″瀷ID + private String voiceId; } diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java index 9a5c497..d36104f 100644 --- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java +++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java @@ -110,10 +110,16 @@ boolean success; List<String> videoUrls = new ArrayList<>(); AuditionVO auditionVO = new AuditionVO(); - auditionVO.setHumanId(String.valueOf(digitalHumansDO.getId())); + +// auditionVO.setVoiceId(String.valueOf(digitalHumansDO.getId())); for (AppCourseScenesMegerReqVO scene : scenes) { //TODO 鍏堝垽鏂槸鍚︽湁澶囨敞鍐呭 auditionVO.setText(scene.getBackground().getPptRemark()); + if (scene.getVoice().getVoiceId() == null){ + auditionVO.setHumanId(String.valueOf(digitalHumansDO.getId())); + }else{ + auditionVO.setVoiceId(String.valueOf(scene.getVoice().getVoiceId())); + } String audition = serviceImpl.audition(auditionVO); // 鎻愬彇闊抽鏂囦欢鍚嶏紙璺緞鐨勬渶鍚庝竴閮ㄥ垎锛� String substring = configApi.getConfigValueByKey("easegen.url") + audition.substring(audition.lastIndexOf("/")); diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/voices/VoicesServiceImpl.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/voices/VoicesServiceImpl.java index 3f5604f..4f677b7 100644 --- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/voices/VoicesServiceImpl.java +++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/voices/VoicesServiceImpl.java @@ -137,12 +137,18 @@ private static final String HEYGEM_CORE_URL = "heygem.core.url"; @Override public String audition(AuditionVO auditionVO) { - DigitalHumansDO digitalHumansDO = digitalHumansMapper.selectById(auditionVO.getHumanId()); InvokeVO invokeVO = new InvokeVO(); invokeVO.setSpeaker(InvokeVO.generateUUID()); - invokeVO.setReferenceText(digitalHumansDO.getReferenceAudioText()); - invokeVO.setReferenceAudio(digitalHumansDO.getAsrFormatAudioUrl()); invokeVO.setText(auditionVO.getText()); + if (auditionVO.getVoiceId() == null) { + DigitalHumansDO digitalHumansDO = digitalHumansMapper.selectById(auditionVO.getHumanId()); + invokeVO.setReferenceText(digitalHumansDO.getReferenceAudioText()); + invokeVO.setReferenceAudio(digitalHumansDO.getAsrFormatAudioUrl()); + }else if (auditionVO.getHumanId() == null){ + VoicesDO voicesDO = voicesMapper.selectById(auditionVO.getVoiceId()); + invokeVO.setReferenceText(voicesDO.getReferenceAudioText()); + invokeVO.setReferenceAudio(voicesDO.getAsrFormatAudioUrl()); + } ObjectMapper objectMapper = new ObjectMapper(); String jsonString = null; try { -- Gitblit v1.9.3