|
|
@@ -975,6 +975,8 @@ class AnimeService
|
|
|
|
|
|
if (!$segment) Utils::throwError('20003:该分镜不存在');
|
|
|
|
|
|
+ $dubTaskId = 0;
|
|
|
+
|
|
|
try {
|
|
|
DB::beginTransaction();
|
|
|
// 准备更新数据
|
|
|
@@ -1020,18 +1022,7 @@ class AnimeService
|
|
|
if (!$dubTaskId) {
|
|
|
Utils::throwError('20003:创建配音任务失败!');
|
|
|
}
|
|
|
-
|
|
|
- // 请求远程服务器执行生成
|
|
|
- $client = new Client(['timeout' => 300, 'verify' => false]);
|
|
|
- $result = $client->get("http://122.9.129.83:5000/api/anime/genAudio?taskId={$dubTaskId}");
|
|
|
- $response = $result->getBody()->getContents();
|
|
|
- $response_arr = json_decode($response, true);
|
|
|
- if (!isset($response_arr['code']) || (int)$response_arr['code'] !== 0) {
|
|
|
- $error_msg = isset($response_arr['msg']) ? $response_arr['msg'] : '未知错误';
|
|
|
- dLog('anime')->error('火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId]);
|
|
|
- logDB('anime', 'error', '火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId]);
|
|
|
- Utils::throwError('20003:火山生成音频失败');
|
|
|
- }
|
|
|
+
|
|
|
$update_data['audio_url'] = '';
|
|
|
} else {
|
|
|
// dialogue为空时,直接写入默认音频信息
|
|
|
@@ -1083,6 +1074,22 @@ class AnimeService
|
|
|
}
|
|
|
|
|
|
DB::commit();
|
|
|
+
|
|
|
+ // 如果有创建音频生成任务则调用API
|
|
|
+ if ($dubTaskId) {
|
|
|
+ // 请求远程服务器执行生成
|
|
|
+ $client = new Client(['timeout' => 300, 'verify' => false]);
|
|
|
+ $result = $client->get("http://122.9.129.83:5000/api/anime/genAudio?taskId={$dubTaskId}");
|
|
|
+ $response = $result->getBody()->getContents();
|
|
|
+ $response_arr = json_decode($response, true);
|
|
|
+ if (!isset($response_arr['code']) || (int)$response_arr['code'] !== 0) {
|
|
|
+ $error_msg = isset($response_arr['msg']) ? $response_arr['msg'] : '未知错误';
|
|
|
+ dLog('anime')->error('火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId, 'segment_id'=>$segment_id]);
|
|
|
+ logDB('anime', 'error', '火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId, 'segment_id'=>$segment_id]);
|
|
|
+ Utils::throwError('20003:火山生成音频失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return true;
|
|
|
} catch (\Exception $e) {
|
|
|
DB::rollBack();
|
|
|
@@ -1193,6 +1200,7 @@ class AnimeService
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
+ $dubTaskId = 0;
|
|
|
// 解析分镜内容,提取画面描述作为主要提示词
|
|
|
$prompt = $segment_content;
|
|
|
$ref_img_urls = [];
|
|
|
@@ -1260,7 +1268,6 @@ class AnimeService
|
|
|
// 如果有对话内容,创建视频配音合成任务
|
|
|
$dialogue = getProp($segment, 'dialogue');
|
|
|
if (!empty($dialogue)) {
|
|
|
- sleep(1);
|
|
|
$now = date('Y-m-d H:i:s');
|
|
|
$generate_json = [
|
|
|
'text' => $dialogue,
|
|
|
@@ -1287,19 +1294,11 @@ class AnimeService
|
|
|
]);
|
|
|
|
|
|
if (!$dubTaskId) {
|
|
|
- Utils::throwError('20003:创建配音任务失败!');
|
|
|
+ dLog('anime')->error('火山生成音频失败', ['segment_id' => $segment_id, 'generate_json'=>$generate_json]);
|
|
|
+ logDB('anime', 'error', '火山生成音频失败', ['segment_id' => $segment_id, 'generate_json'=>$generate_json]);
|
|
|
+ // Utils::throwError('20003:创建配音任务失败!');
|
|
|
}
|
|
|
|
|
|
- // 请求远程服务器执行生成
|
|
|
- $client = new Client(['timeout' => 300, 'verify' => false]);
|
|
|
- $result = $client->get("http://122.9.129.83:5000/api/anime/genAudio?taskId={$dubTaskId}");
|
|
|
- $response = $result->getBody()->getContents();
|
|
|
- $response_arr = json_decode($response, true);
|
|
|
- if (!isset($response_arr['code']) || (int)$response_arr['code'] !== 0) {
|
|
|
- $error_msg = isset($response_arr['msg']) ? $response_arr['msg'] : '未知错误';
|
|
|
- dLog('anime')->error('火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId]);
|
|
|
- Utils::throwError('20003:火山生成音频失败');
|
|
|
- }
|
|
|
} else {
|
|
|
// dialogue为空时,直接写入默认音频信息到分镜表
|
|
|
$update_data['audio_url'] = 'https://zw-audiobook.tos-cn-beijing.volces.com/effects/ellipses_2s.mp3';
|
|
|
@@ -1332,6 +1331,20 @@ class AnimeService
|
|
|
'error' => '更新分镜任务状态失败'
|
|
|
];
|
|
|
}
|
|
|
+
|
|
|
+ if ($dubTaskId) {
|
|
|
+ sleep(1);
|
|
|
+ // 请求远程服务器执行生成
|
|
|
+ $client = new Client(['timeout' => 300, 'verify' => false]);
|
|
|
+ $result = $client->get("http://122.9.129.83:5000/api/anime/genAudio?taskId={$dubTaskId}");
|
|
|
+ $response = $result->getBody()->getContents();
|
|
|
+ $response_arr = json_decode($response, true);
|
|
|
+ if (!isset($response_arr['code']) || (int)$response_arr['code'] !== 0) {
|
|
|
+ $error_msg = isset($response_arr['msg']) ? $response_arr['msg'] : '未知错误';
|
|
|
+ dLog('anime')->error('火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId, 'segment_id' => $segment_id]);
|
|
|
+ logDB('anime', 'error', '火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId, 'segment_id' => $segment_id]);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
$failed_segments[] = [
|
|
|
@@ -1434,6 +1447,7 @@ class AnimeService
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
+ $dubTaskId = 0;
|
|
|
// 分镜剧本数组
|
|
|
$update_data = [
|
|
|
'segment_content' => $final_segment_content,
|
|
|
@@ -1539,17 +1553,6 @@ class AnimeService
|
|
|
Utils::throwError('20003:创建配音任务失败!');
|
|
|
}
|
|
|
|
|
|
- // 请求远程服务器执行生成
|
|
|
- $client = new Client(['timeout' => 300, 'verify' => false]);
|
|
|
- $result = $client->get("http://122.9.129.83:5000/api/anime/genAudio?taskId={$dubTaskId}");
|
|
|
- $response = $result->getBody()->getContents();
|
|
|
- $response_arr = json_decode($response, true);
|
|
|
- if (!isset($response_arr['code']) || (int)$response_arr['code'] !== 0) {
|
|
|
- $error_msg = isset($response_arr['msg']) ? $response_arr['msg'] : '未知错误';
|
|
|
- dLog('anime')->error('火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId]);
|
|
|
- logDB('anime', 'error', '火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId]);
|
|
|
- Utils::throwError('20003:火山生成音频失败');
|
|
|
- }
|
|
|
$update_data['audio_url'] = '';
|
|
|
} else {
|
|
|
// dialogue为空时,直接写入默认音频信息
|
|
|
@@ -1567,6 +1570,20 @@ class AnimeService
|
|
|
if ($boolen && (int)getProp($segment, 'episode_number') === 1 && (int)getProp($segment, 'segment_number') === 1) {
|
|
|
Redis::sadd('anime_first_frame_urls', $segment_id);
|
|
|
}
|
|
|
+
|
|
|
+ if ($dubTaskId) {
|
|
|
+ // 请求远程服务器执行生成
|
|
|
+ $client = new Client(['timeout' => 300, 'verify' => false]);
|
|
|
+ $result = $client->get("http://122.9.129.83:5000/api/anime/genAudio?taskId={$dubTaskId}");
|
|
|
+ $response = $result->getBody()->getContents();
|
|
|
+ $response_arr = json_decode($response, true);
|
|
|
+ if (!isset($response_arr['code']) || (int)$response_arr['code'] !== 0) {
|
|
|
+ $error_msg = isset($response_arr['msg']) ? $response_arr['msg'] : '未知错误';
|
|
|
+ dLog('anime')->error('火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId]);
|
|
|
+ logDB('anime', 'error', '火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId]);
|
|
|
+ Utils::throwError('20003:火山生成音频失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
$failed_segments[] = [
|
|
|
@@ -1742,6 +1759,7 @@ class AnimeService
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
+ $dubTaskId = 0;
|
|
|
DB::beginTransaction();
|
|
|
|
|
|
$new_segment_number = $segment_number + 1;
|
|
|
@@ -1796,17 +1814,8 @@ class AnimeService
|
|
|
if (!$dubTaskId) {
|
|
|
Utils::throwError('20003:创建配音任务失败!');
|
|
|
}
|
|
|
-
|
|
|
- // 请求远程服务器执行生成
|
|
|
- $client = new Client(['timeout' => 300, 'verify' => false]);
|
|
|
- $result = $client->get("http://122.9.129.83:5000/api/anime/genAudio?taskId={$dubTaskId}");
|
|
|
- $response = $result->getBody()->getContents();
|
|
|
- $response_arr = json_decode($response, true);
|
|
|
- if (!isset($response_arr['code']) || (int)$response_arr['code'] !== 0) {
|
|
|
- $error_msg = isset($response_arr['msg']) ? $response_arr['msg'] : '未知错误';
|
|
|
- dLog('anime')->error('火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId]);
|
|
|
- Utils::throwError('20003:火山生成音频失败');
|
|
|
- }
|
|
|
+
|
|
|
+ $insert_data['audio_url'] = '';
|
|
|
} else {
|
|
|
// dialogue为空时,直接写入默认音频信息
|
|
|
$insert_data['audio_url'] = 'https://zw-audiobook.tos-cn-beijing.volces.com/effects/ellipses_2s.mp3';
|
|
|
@@ -1893,6 +1902,19 @@ class AnimeService
|
|
|
Redis::sadd('anime_first_frame_urls', $segment_id);
|
|
|
}
|
|
|
|
|
|
+ if ($dubTaskId) {
|
|
|
+ // 请求远程服务器执行生成
|
|
|
+ $client = new Client(['timeout' => 300, 'verify' => false]);
|
|
|
+ $result = $client->get("http://122.9.129.83:5000/api/anime/genAudio?taskId={$dubTaskId}");
|
|
|
+ $response = $result->getBody()->getContents();
|
|
|
+ $response_arr = json_decode($response, true);
|
|
|
+ if (!isset($response_arr['code']) || (int)$response_arr['code'] !== 0) {
|
|
|
+ $error_msg = isset($response_arr['msg']) ? $response_arr['msg'] : '未知错误';
|
|
|
+ dLog('anime')->error('火山生成音频失败', ['error' => $error_msg, 'task_id' => $dubTaskId]);
|
|
|
+ Utils::throwError('20003:火山生成音频失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
} catch (\Exception $e) {
|
|
|
DB::rollBack();
|
|
|
Utils::throwError('20003:'.$e->getMessage());
|
|
|
@@ -2376,7 +2398,6 @@ class AnimeService
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- sleep(1);
|
|
|
$generate_json = [
|
|
|
'text' => $dialogue,
|
|
|
'role' => getProp($updated_segment, 'voice_actor'),
|
|
|
@@ -2408,6 +2429,7 @@ class AnimeService
|
|
|
|
|
|
// 请求远程服务器执行生成
|
|
|
try {
|
|
|
+ sleep(1);
|
|
|
$client = new Client(['timeout' => 300, 'verify' => false]);
|
|
|
$result = $client->get("http://122.9.129.83:5000/api/anime/genAudio?taskId={$dubTaskId}");
|
|
|
$response = $result->getBody()->getContents();
|