调整 音频合成

This commit is contained in:
spllzh
2025-10-06 12:17:34 +08:00
parent 725a5294d0
commit 20378e8115
43 changed files with 508 additions and 60 deletions

View File

@@ -53,9 +53,16 @@ public class FaceDetectLogServiceImpl extends ServiceImpl<FaceDetectLogMapper, F
* 执行人脸检测并保存日志
*/
public FaceDetectLog detectFaceAndSave(String imageUrl) {
return detectFaceAndSave(imageUrl, null, null, null);
}
/**
* 执行人脸检测并保存日志(带扩展信息)
*/
public FaceDetectLog detectFaceAndSave(String imageUrl, String ownerName, String ownerPhone, String avatarName) {
if (apiKey == null || apiKey.trim().isEmpty()) {
log.error("DASHSCOPE_API_KEY未配置");
return createErrorLog(imageUrl, "DASHSCOPE_API_KEY未配置");
return createErrorLog(imageUrl, "DASHSCOPE_API_KEY未配置", ownerName, ownerPhone, avatarName);
}
// 创建日志记录
@@ -66,6 +73,9 @@ public class FaceDetectLogServiceImpl extends ServiceImpl<FaceDetectLogMapper, F
faceDetectLog.setRequestId(requestId);
faceDetectLog.setModel("liveportrait-detect");
faceDetectLog.setImageUrl(imageUrl);
faceDetectLog.setOwnerName(ownerName);
faceDetectLog.setOwnerPhone(ownerPhone);
faceDetectLog.setAvatarName(avatarName);
faceDetectLog.setRequestTime(requestTime);
long startTime = System.currentTimeMillis();
@@ -217,10 +227,20 @@ public class FaceDetectLogServiceImpl extends ServiceImpl<FaceDetectLogMapper, F
* 创建错误日志
*/
private FaceDetectLog createErrorLog(String imageUrl, String errorMessage) {
return createErrorLog(imageUrl, errorMessage, null, null, null);
}
/**
* 创建错误日志(带扩展信息)
*/
private FaceDetectLog createErrorLog(String imageUrl, String errorMessage, String ownerName, String ownerPhone, String avatarName) {
FaceDetectLog faceDetectLog = new FaceDetectLog();
faceDetectLog.setRequestId(UUID.randomUUID().toString());
faceDetectLog.setModel("liveportrait-detect");
faceDetectLog.setImageUrl(imageUrl);
faceDetectLog.setOwnerName(ownerName);
faceDetectLog.setOwnerPhone(ownerPhone);
faceDetectLog.setAvatarName(avatarName);
faceDetectLog.setRequestTime(LocalDateTime.now());
faceDetectLog.setResponseTime(LocalDateTime.now());
faceDetectLog.setSuccess(false);

View File

@@ -3,10 +3,14 @@ package com.rj.service.impl;
import com.rj.entity.TtsRequestLog;
import com.rj.mapper.TtsRequestLogMapper;
import com.rj.service.ITtsRequestLogService;
import com.rj.utils.MinIOUrlGenerator;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* TTS请求日志服务实现类
*
@@ -20,6 +24,9 @@ public class TtsRequestLogServiceImpl implements ITtsRequestLogService {
@Autowired
private TtsRequestLogMapper ttsRequestLogMapper;
@Autowired
private MinIOUrlGenerator urlGenerator;
@Override
public boolean saveTtsRequestLog(TtsRequestLog requestLog) {
try {
@@ -41,4 +48,48 @@ public class TtsRequestLogServiceImpl implements ITtsRequestLogService {
return null;
}
}
@Override
public boolean setShortUrlByAudioName(MinIOUrlGenerator.UrlInfo urlInfo ) {
try {
if (urlInfo == null || urlInfo.getFileName().trim().isEmpty()) {
log.error("音频名称不能为空");
return false;
}
// 根据音频名称查询日志记录
LambdaQueryWrapper<TtsRequestLog> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TtsRequestLog::getAudioName, urlInfo.getFileName());
TtsRequestLog requestLog = ttsRequestLogMapper.selectOne(queryWrapper);
if (requestLog == null) {
log.error("未找到音频名称为 {} 的日志记录", urlInfo.getFileName());
return false;
}
// 更新日志记录的短链接信息
requestLog.setShortUrl(urlInfo.getUrl());
requestLog.setShortUrlExpireTime(urlInfo.getExpiresAt());
requestLog.setUpdateTime(LocalDateTime.now());
int result = ttsRequestLogMapper.updateById(requestLog);
if (result > 0) {
log.info("成功为音频 {} 设置短链接: {}, 过期时间: {}",
urlInfo.getFileName(), urlInfo.getUrl(), urlInfo.getFormattedExpiresAt());
return true;
} else {
log.error("更新音频 {} 的短链接失败", urlInfo.getFileName());
return false;
}
} catch (Exception e) {
log.error("根据音频名称设置短链接失败: 音频名称={}, 错误={}", urlInfo.getFileName(), e.getMessage(), e);
return false;
}
}
@Override
public boolean setShortUrlByAudioName(String audioName) {
return false;
}
}