main
HuangHai 2 months ago
parent 606d2b0599
commit a43f8f8692

@ -101,7 +101,7 @@ public class ImgSpeak {
} }
/** /**
* LivePortraitAPI * LivePortraitAPI
* *
* @param imageUrl URL * @param imageUrl URL
* @param audioUrl URL * @param audioUrl URL
@ -160,26 +160,26 @@ public class ImgSpeak {
.build(); .build();
// 发送请求并获取响应 // 发送请求并获取响应
log.info("发送灵动人像LivePortrait唱歌视频合成请求: {}", requestBody.toJSONString()); log.info("发送灵动人像LivePortrait视频合成请求: {}", requestBody.toJSONString());
Response response = client.newCall(request).execute(); Response response = client.newCall(request).execute();
// 检查响应状态 // 检查响应状态
if (!response.isSuccessful()) { if (!response.isSuccessful()) {
log.info(response.message()); log.info(response.message());
String errorMsg = "灵动人像LivePortrait唱歌视频合成API请求失败状态码: " + response.code(); String errorMsg = "灵动人像LivePortrait视频合成API请求失败状态码: " + response.code();
log.error(errorMsg); log.error(errorMsg);
throw new Exception(errorMsg); throw new Exception(errorMsg);
} }
// 解析响应 // 解析响应
String responseBody = response.body().string(); String responseBody = response.body().string();
log.info("灵动人像LivePortrait唱歌视频合成响应: {}", responseBody); log.info("灵动人像LivePortrait视频合成响应: {}", responseBody);
JSONObject responseJson = JSON.parseObject(responseBody); JSONObject responseJson = JSON.parseObject(responseBody);
// 获取任务ID // 获取任务ID
String taskId = responseJson.getJSONObject("output").getString("task_id"); String taskId = responseJson.getJSONObject("output").getString("task_id");
log.info("灵动人像LivePortrait唱歌视频合成任务ID: {}", taskId); log.info("灵动人像LivePortrait视频合成任务ID: {}", taskId);
return taskId; return taskId;
} }
@ -207,19 +207,19 @@ public class ImgSpeak {
.build(); .build();
// 发送请求并获取响应 // 发送请求并获取响应
log.info("查询灵动人像LivePortrait唱歌视频合成任务状态: {}", taskId); log.info("查询灵动人像LivePortrait视频合成任务状态: {}", taskId);
Response response = client.newCall(request).execute(); Response response = client.newCall(request).execute();
// 检查响应状态 // 检查响应状态
if (!response.isSuccessful()) { if (!response.isSuccessful()) {
String errorMsg = "灵动人像LivePortrait唱歌视频合成API请求失败状态码: " + response.code(); String errorMsg = "灵动人像LivePortrait视频合成API请求失败状态码: " + response.code();
log.error(errorMsg); log.error(errorMsg);
throw new Exception(errorMsg); throw new Exception(errorMsg);
} }
// 解析响应 // 解析响应
String responseBody = response.body().string(); String responseBody = response.body().string();
log.info("查询灵动人像LivePortrait唱歌视频合成任务状态响应: {}", responseBody); log.info("查询灵动人像LivePortrait视频合成任务状态响应: {}", responseBody);
return JSON.parseObject(responseBody); return JSON.parseObject(responseBody);
} }
@ -285,10 +285,10 @@ public class ImgSpeak {
public static void main(String[] args) { public static void main(String[] args) {
// 图片URL // 图片URL
String imageUrl = "https://dsideal.obs.myhuaweicloud.com/HuangHai/%E5%A4%87%E4%BB%BD/p874897.png"; String imageUrl = "https://dsideal.obs.myhuaweicloud.com/HuangHai/%E5%A4%87%E4%BB%BD/p874897.png";
// 音频URL唱歌音频) // 音频URL音频)
String audioUrl = "https://dsideal.obs.myhuaweicloud.com/HuangHai/%E5%A4%87%E4%BB%BD/p874897.wav"; String audioUrl = "https://dsideal.obs.myhuaweicloud.com/HuangHai/%E5%A4%87%E4%BB%BD/p874897.wav";
// 模板ID - 使用唱歌模板 // 模板ID - 使用模板
String templateId = "sing"; // 可选值normal, dance, rap, sing等 String templateId = "sing"; // 可选值normal, dance, rap, sing等
// 眼睛移动频率 // 眼睛移动频率
double eyeMoveFreq = 0.5; double eyeMoveFreq = 0.5;
@ -301,7 +301,7 @@ public class ImgSpeak {
// 头部动作强度 // 头部动作强度
double headMoveStrength = 0.7; double headMoveStrength = 0.7;
// 调用灵动人像LivePortrait唱歌视频合成API // 调用灵动人像LivePortrait视频合成API
String taskId = synthesisVideo(imageUrl, audioUrl, templateId, eyeMoveFreq, String taskId = synthesisVideo(imageUrl, audioUrl, templateId, eyeMoveFreq,
videoFps, mouthMoveStrength, pasteBack, headMoveStrength); videoFps, mouthMoveStrength, pasteBack, headMoveStrength);

Loading…
Cancel
Save