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