|
@@ -128,6 +128,7 @@ class DeepSeekService
|
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
|
];
|
|
|
if (getProp($data, 'paragraph_audio_url')) $list['paragraph_audio_url'] = getProp($data, 'paragraph_audio_url');
|
|
|
+ DB::beginTransaction();
|
|
|
if ($id) {
|
|
|
$boolen = DB::table('mp_chapter_paragraph_audios')->where('id', $id)->update($list);
|
|
|
}else {
|
|
@@ -136,8 +137,27 @@ class DeepSeekService
|
|
|
$boolen = $id ? true : false;
|
|
|
}
|
|
|
|
|
|
- // 根据ID通过API通知合成音频
|
|
|
+ if ($boolen) {
|
|
|
+ $boolen = false;
|
|
|
+ $client = new Client(['timeout' => 30, 'verify' => false]);
|
|
|
+ // 根据ID通过API通知合成音频
|
|
|
+ for ($i=0;$i<3;$i++) {
|
|
|
+ $result = $client->get("http://47.240.171.155:5000/api/previewTask?taskId={$id}");
|
|
|
+ $response = $result->getBody()->getContents();
|
|
|
+ $response_arr = json_decode($response, true);
|
|
|
+ if (isset($response_arr['code']) && (int)$response_arr['code'] === 0) {
|
|
|
+ $boolen = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ sleep(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ if ($boolen) {
|
|
|
+ DB::commit();
|
|
|
+ }else {
|
|
|
+ DB::rollBack();
|
|
|
+ }
|
|
|
|
|
|
return $boolen;
|
|
|
}
|
|
@@ -252,7 +272,7 @@ class DeepSeekService
|
|
|
DB::rollBack();
|
|
|
Utils::throwError('20003:更新生成数据失败');
|
|
|
}
|
|
|
- $boolen2 = DB::table('mp_audio_tasks')->insert([
|
|
|
+ $id = DB::table('mp_audio_tasks')->insertGetId([
|
|
|
'audio_id' => getProp($chapter_audio, 'id'),
|
|
|
'status' => '执行中',
|
|
|
'generate_json' => $generate_json,
|
|
@@ -266,7 +286,7 @@ class DeepSeekService
|
|
|
'created_at' => date('Y-m-d H:i:s'),
|
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
|
]);
|
|
|
- if (!$boolen2) {
|
|
|
+ if (!$id) {
|
|
|
DB::rollBack();
|
|
|
Utils::throwError('20003:创建任务失败');
|
|
|
}
|
|
@@ -278,6 +298,27 @@ class DeepSeekService
|
|
|
DB::rollBack();
|
|
|
Utils::throwError('20003:更新章节分句音频失败');
|
|
|
}
|
|
|
+
|
|
|
+ // 通知火山生成音频
|
|
|
+ $boolen4 = false;
|
|
|
+ $client = new Client(['timeout' => 30, 'verify' => false]);
|
|
|
+ // 根据ID通过API通知合成音频
|
|
|
+ for ($i=0;$i<3;$i++) {
|
|
|
+ $result = $client->get("http://47.240.171.155:5000/api/chapterTask?taskId={$id}");
|
|
|
+ $response = $result->getBody()->getContents();
|
|
|
+ $response_arr = json_decode($response, true);
|
|
|
+ if (isset($response_arr['code']) && (int)$response_arr['code'] === 0) {
|
|
|
+ $boolen4 = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ sleep(1);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!$boolen4) {
|
|
|
+ DB::rollBack();
|
|
|
+ Utils::throwError('20003:通知火山生成音频失败');
|
|
|
+ }
|
|
|
+
|
|
|
} catch (\Exception $e) {
|
|
|
DB::rollBack();
|
|
|
Utils::throwError('20003:'.$e->getMessage());
|
|
@@ -291,7 +332,7 @@ class DeepSeekService
|
|
|
$timbre_name = getProp($data, 'timbre_name');
|
|
|
$category_id = getProp($data, 'category_id');
|
|
|
|
|
|
- $query = DB::table('mp_timbres')->where('is_enabled', 1)->select('timbre_name as voice_name', 'timbre_type as voice_type', 'gender', 'language', 'emotion', 'label', 'first_category_id', 'first_category_name', 'second_category_id', 'second_category_name', 'third_category_id', 'third_category_name');
|
|
|
+ $query = DB::table('mp_timbres')->where('is_enabled', 1)->select('timbre_name as voice_name', 'timbre_type as voice_type', 'gender', 'language', 'emotion', 'label', 'first_category_id', 'first_category_name', 'second_category_id', 'second_category_name', 'third_category_id', 'third_category_name', 'audio_url');
|
|
|
if ($gender) {
|
|
|
$query->where('gender', $gender);
|
|
|
}
|