zhangyong 9 месяцев назад
Родитель
Сommit
e74e222016
2 измененных файлов с 57 добавлено и 1 удалено
  1. 56 0
      common/tts_help.py
  2. 1 1
      video_rewriting/video_prep.py

+ 56 - 0
common/tts_help.py

@@ -5,6 +5,7 @@ import json
 import random
 import re
 import time
+from pydub import AudioSegment
 
 class TTS:
 
@@ -67,6 +68,10 @@ class TTS:
                 with open(f"{pw_mp3_path}", "wb") as file:
                     # 将响应内容写入文件
                     file.write(response.content)
+                # 增加音频音量
+                audio = AudioSegment.from_file(pw_mp3_path)
+                louder_audio = audio + 10
+                louder_audio.export(pw_mp3_path, format="mp3")
                 time.sleep(5)
                 return pw_mp3_path
         return ''
@@ -92,6 +97,57 @@ class TTS:
         print(srt_content)
         return srt_content
 
+    @classmethod
+    def process_srt(cls, srt):
+        lines = srt.strip().split('\n')
+        processed_lines = []
+
+        for line in lines:
+            if re.match(r'^\d+$', line):
+                processed_lines.append(line)
+            elif re.match(r'^\d{2}:\d{2}:\d{2}\.\d{1,3}-->\d{2}:\d{2}:\d{2}\.\d{1,3}$', line):
+                processed_lines.append(line.replace('-->', ' --> '))
+            else:
+                line = re.sub(r'[,。!?;、]$', '', line)
+                # 添加换行符
+                processed_lines.append(line + '\n')
+
+        return '\n'.join(processed_lines)
+
+    @classmethod
+    def getSrt(cls, mp3_id):
+        url = "http://api-internal.piaoquantv.com/produce-center/srt/get/content"
+
+        payload = json.dumps({
+            "params": {
+                "resourceChannel": "outer",
+                "videoPath": mp3_id
+            }
+        })
+        headers = {
+            'User-Agent': 'Apifox/1.0.0 (https://apifox.com)',
+            'Content-Type': 'application/json',
+            'Accept': '*/*',
+            'Host': 'api-internal.piaoquantv.com',
+            'Connection': 'keep-alive'
+        }
+
+        response = requests.request("POST", url, headers=headers, data=payload)
+        time.sleep(1)
+        data_list = response.json()
+        code = data_list["code"]
+        if code == 0:
+            srt = data_list["data"]
+            if srt:
+                srt = srt.replace("/n", "\n")
+                # srt = re.sub(r'(\w+)([,。!?])', r'\n\n', srt)
+                new_srt = cls.process_srt(srt)
+                return new_srt
+            else:
+                return None
+        else:
+            return None
+
 
 if __name__ == '__main__':
     text = "真是太实用了,分享给身边的准妈妈们吧!这些孕期禁忌一定要记住,赶紧转发给更多人,帮助更多的宝妈们。一起为宝宝的健康加油!"

+ 1 - 1
video_rewriting/video_prep.py

@@ -183,7 +183,7 @@ class getVideo:
                                         pw_mp3_path = TTS.download_mp3(pw_url, video_path_url, pw_random_id)
                                         pw_url_sec = FFmpeg.get_video_duration(pw_mp3_path)  # 获取片尾秒数
                                         Common.logger("log").info(f"{task_mark}下的视频{url},获取AI片尾秒数成功{pw_url_sec}")
-                                        pw_srt = TTS.get_srt_format(pw_srt_text, pw_url_sec)
+                                        pw_srt = TTS.getSrt(pw_url)
                                         Common.logger("log").info(f"{task_mark}下的视频{url},获取AI片尾srt成功")
                                     else:
                                         continue