批量生成语音文件并更新项目扣分信息
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 著作权归作者所有。请勿转载和采集!