shenrongliang
2025-04-15 cfd9db0bcdfc885322f3a3e28b9e07671f75f684
根据所选声音模型合成视频
已修改3个文件
22 ■■■■ 文件已修改
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/voices/AuditionVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/voices/VoicesServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 {
    //口播内容
    private String text;
    //数字人ID
    private String humanId;
    //声音模型ID
    private String voiceId;
}
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("/"));
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.setText(auditionVO.getText());
        if (auditionVO.getVoiceId() == null) {
            DigitalHumansDO digitalHumansDO = digitalHumansMapper.selectById(auditionVO.getHumanId());
        invokeVO.setReferenceText(digitalHumansDO.getReferenceAudioText());
        invokeVO.setReferenceAudio(digitalHumansDO.getAsrFormatAudioUrl());
        invokeVO.setText(auditionVO.getText());
        }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 {