lh 2 päivää sitten
vanhempi
commit
8689207f5f

+ 45 - 4
app/Services/DeepSeek/DeepSeekService.php

@@ -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);
         }

+ 1 - 0
app/Transformer/Timbre/TimbreTransformer.php

@@ -58,6 +58,7 @@ class TimbreTransformer
                 'second_category_name'  => getProp($item, 'second_category_name'),
                 'third_category_id'     => getProp($item, 'third_category_id'),
                 'third_category_name'   => getProp($item, 'third_category_name'),
+                'audio_url'             => getProp($item, 'audio_url'),
                 'label'                 => getProp($item, 'label'),
                 'created_at'            => transDate(getProp($item, 'created_at')),
             ];