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