List<AllProjectDemeritInfo> allProjectDemeritInfos = allProjectDemeritInfoService.queryAllProjects();

List<AllProjectDemeritInfo> allProjectDemeritInfoList = new ArrayList<>();

List<AllProjectDemeritInfo> allProjectDemeritInfosByAudio = new ArrayList<>();

List<AudioFile> audioFileList = new ArrayList<>();

//只生成科目2
for (AllProjectDemeritInfo info : allProjectDemeritInfos) {
    if (info.getDemeritState() == 0) {
        //不生成语音包
        log.info('不生成语音包');

        info.setAudioFileId(0L);//语音文件id

        allProjectDemeritInfoList.add(info);
    } else if (!''.equals(info.getVoiceBroadcastText())) {
        //语音文字
        String audioText = info.getVoiceBroadcastText() + ',扣' + info.getDemeritState() + '分';
        //拿到当前项目类型(语音包名称需要)
        Project project = projectService.queryOneProjectByID(info.getProjectId());
        //名称(2(科目)-1(倒车入库的编号)-10(所有项目扣分参考编号))
        String audioFileFirstName = project.getProjectTypeId().toString() + '-' + info.getProjectId().toString() + '-' + info.getAllPrDemeritInfoId().toString();
        //文件名(当前时间.音频格式)
        //yyyy-MM-dd--HH-mm-ss.mp3
        String audioFileSecondName = System.currentTimeMillis() + '.wma';
        //路径D:/file/2(科目)-1(倒车入库的编号)-10(所有项目扣分参考编号)--yyyy-MM-dd--HH-mm-ss.mp3
        String pathName = audioPath + audioFileFirstName + '_' + audioFileSecondName;

        //生成语音包
        SpeechUtil.SpeechSynthesizer(audioText, pathName);

        //新增一个语音包
        AudioFile audioFile = new AudioFile();
        audioFile.setAudioFileFirstName(audioFileFirstName);
        audioFile.setAudioFileSecondName(audioFileSecondName);
        audioFile.setAudioFilePath(pathName);

        audioFileList.add(audioFile);

        info.setAudioFileId(audioFile.getAudioFileId());//语音文件id

        allProjectDemeritInfosByAudio.add(info);
    }
}

if (!audioFileList.isEmpty()) {
    boolean batch = audioFileService.saveBatch(audioFileList);
    if (batch) {
        boolean batchAll = allProjectDemeritInfoService.updateBatchById(allProjectDemeritInfosByAudio);

        if (batchAll) {
            log.info('批量修改成功!');
        } else {
            log.info('批量修改失败!');
        }
    } else {
        log.info('批量新增语音失败!');
    }
} else {
    boolean batch = allProjectDemeritInfoService.updateBatchById(allProjectDemeritInfoList);

    if (batch) {
        log.info('批量修改成功!');
    } else {
        log.info('批量修改失败!');
    }
}

原文地址: https://www.cveoy.top/t/topic/oAB6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录