Pārlūkot izejas kodu

新增章节分句接口

lh 3 mēneši atpakaļ
vecāks
revīzija
30967e572d

+ 9 - 0
app/Http/Controllers/DeepSeek/DeepSeekController.php

@@ -82,6 +82,15 @@ class DeepSeekController extends BaseController
     }
 
     /**
+     * 获取段落视频
+     */
+    public function paragraphAudios(Request $request) {
+        $data = $request->all();
+        $result = $this->deepseekService->getParagraphAudios($data);
+        return $this->success($result);
+    }
+
+    /**
      * 新增合成任务
      *
      * @param Request $request

+ 33 - 0
app/Services/DeepSeek/DeepSeekService.php

@@ -346,6 +346,39 @@ class DeepSeekService
         return true;
     }
 
+    public function getParagraphAudios($data) {
+        $bid = getProp($data, 'bid');
+        $cid = getProp($data, 'cid');
+        $version_id = getProp($data, 'version_id');
+        $sequence = getProp($data, 'sequence');
+
+        // 获取已生成的音频
+        $query = DB::table('mp_chapter_paragraph_audios')->where('bid', $bid)->where('cid', $cid)->where('version_id', $version_id);
+        if ($sequence) $query->where('sequence', $sequence);
+        $paragraph_audios = $query->orderBy('sequence')->get();
+
+        $result = [];
+        foreach($paragraph_audios as $item) {
+            $result[] = [
+                'sequence'              => getProp($item, 'sequence'),
+                'role'                  => getProp($item, 'role'),
+                'gender'                => getProp($item, 'gender'),
+                'text'                  => trim(getProp($item, 'text')),
+                'emotion'               => getProp($item, 'emotion'),
+                'emotion_type'          => getProp($item, 'emotion_type'),
+                'voice_type'            => getProp($item, 'voice_type'),
+                'voice_name'            => getProp($item, 'voice_name'),
+                'speed_ratio'           => getProp($item, 'speed_ratio'),
+                'loudness_ratio'        => getProp($item, 'loudness_ratio'),
+                'emotion_scale'         => getProp($item, 'emotion_scale'),
+                'paragraph_audio_url'   => getProp($item, 'paragraph_audio_url'),
+                'subtitle_info'         => json_decode(getProp($item, 'subtitle_info'), true),
+            ];
+        }
+
+        return $result;
+    }
+
     // 新增合成任务
     public function addGenerateTask($data) {
         $bid = getProp($data, 'bid');

+ 1 - 0
routes/api.php

@@ -75,6 +75,7 @@ Route::group(['middleware' => ['bindToken', 'bindExportToken', 'checkLogin']], f
     Route::group(['prefix' => 'deepseek'], function () {
         Route::post('chatWithReasoner', [DeepSeekController::class, 'chatWithReasoner']);
         Route::get('timbreList', [DeepSeekController::class, 'timbreList']);
+        Route::get('paragraphAudios', [DeepSeekController::class, 'paragraphAudios']);
         Route::post('addGenerateTask', [DeepSeekController::class, 'addGenerateTask']);
         Route::get('setStsToken', [DeepSeekController::class, 'setStsToken']);
         Route::get('resetParagraphAudio', [DeepSeekController::class, 'resetParagraphAudio']);