From 42151f8766c399c13b42ffc1be1b16cb38d4c972 Mon Sep 17 00:00:00 2001 From: linyq Date: Sat, 26 Apr 2025 14:21:37 +0800 Subject: [PATCH 01/31] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3/?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=20faster-whisper=20=E8=87=B3=20v3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + README-cn.md => README-en.md | 0 README.md | 4 ++-- app/services/subtitle.py | 8 ++++---- 4 files changed, 7 insertions(+), 6 deletions(-) rename README-cn.md => README-en.md (100%) diff --git a/.gitignore b/.gitignore index 4bea0a5..8096610 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,5 @@ resource/fonts/*.ttf resource/fonts/*.otf resource/srt/*.srt app/models/faster-whisper-large-v2/* +app/models/faster-whisper-large-v3/* app/models/bert/* diff --git a/README-cn.md b/README-en.md similarity index 100% rename from README-cn.md rename to README-en.md diff --git a/README.md b/README.md index b969811..7528267 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

一站式 AI 影视解说+自动化剪辑工具🎬🎞️

-

📖 English | 简体中文 | 日本語

+

📖 English | 简体中文 | 日本語

[//]: # ( harry0703%2FNarratoAI | Trendshift) @@ -83,7 +83,7 @@ _**注意⚠️:近期在 x (推特) 上发现有人冒充作者在 pump.fun ## 配置要求 📦 - 建议最低 CPU 4核或以上,内存 8G 或以上,显卡非必须 -- Windows 10 或 MacOS 11.0 以上系统 +- Windows 10/11 或 MacOS 11.0 以上系统 - [Python 3.10+](https://www.python.org/downloads/) ## 反馈建议 📢 diff --git a/app/services/subtitle.py b/app/services/subtitle.py index e7f037d..b5d9a29 100644 --- a/app/services/subtitle.py +++ b/app/services/subtitle.py @@ -33,7 +33,7 @@ def create(audio_file, subtitle_file: str = ""): """ global model, device, compute_type if not model: - model_path = f"{utils.root_dir()}/app/models/faster-whisper-large-v2" + model_path = f"{utils.root_dir()}/app/models/faster-whisper-large-v3" model_bin_file = f"{model_path}/model.bin" if not os.path.isdir(model_path) or not os.path.isfile(model_bin_file): logger.error( @@ -403,7 +403,7 @@ def extract_audio_and_create_subtitle(video_file: str, subtitle_file: str = "") logger.info("音频提取完成,开始生成字幕") # 使用create函数生成字幕 - create(audio_file, subtitle_file) + create("/Users/apple/Desktop/WhisperX-zhuanlu/1_qyn2-2_Vocals.wav", subtitle_file) # 删除临时音频文件 if os.path.exists(audio_file): @@ -422,8 +422,8 @@ if __name__ == "__main__": task_id = "123456" task_dir = utils.task_dir(task_id) subtitle_file = f"{task_dir}/subtitle_123456.srt" - audio_file = f"{task_dir}/audio.wav" - video_file = "/Users/apple/Desktop/home/NarratoAI/resource/videos/merged_video_1702.mp4" + audio_file = "/Users/apple/Desktop/WhisperX-zhuanlu/1_qyn2-2_Vocals.wav" + video_file = "/Users/apple/Desktop/home/NarratoAI/storage/temp/merge/qyn2-2-720p.mp4" extract_audio_and_create_subtitle(video_file, subtitle_file) From 2914cd924d26e3ca911025a91e70e5b98253e5b5 Mon Sep 17 00:00:00 2001 From: linyq Date: Tue, 6 May 2025 21:43:20 +0800 Subject: [PATCH 02/31] =?UTF-8?q?feat(task):=20=E9=87=8D=E6=9E=84=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E5=89=AA=E8=BE=91=E6=B5=81=E7=A8=8B=E5=B9=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -重构了 start_subclip 函数,优化了视频剪辑流程 - 新增 clip_video 函数,用于裁剪视频片段 - 改进了字幕生成和处理逻辑- 优化了音频合并和处理 - 更新了任务状态管理 --- app/services/audio_merger.py | 2 +- app/services/clip_video.py | 227 +++++++++++++ app/services/merger_video.py | 543 ++++++++++++++++++++++++++++++++ app/services/subtitle_merger.py | 154 +++++++++ app/services/task.py | 235 +++++++------- app/services/video.py | 1 - app/services/voice.py | 144 +++++++-- webui.py | 25 +- 8 files changed, 1170 insertions(+), 161 deletions(-) create mode 100644 app/services/clip_video.py create mode 100644 app/services/merger_video.py create mode 100644 app/services/subtitle_merger.py diff --git a/app/services/audio_merger.py b/app/services/audio_merger.py index c7edc77..73cab3b 100644 --- a/app/services/audio_merger.py +++ b/app/services/audio_merger.py @@ -46,7 +46,7 @@ def merge_audio_files(task_id: str, audio_files: list, total_duration: float, li tts_audio = AudioSegment.from_file(audio_file) # 获取片段的开始和结束时间 - start_time, end_time = segment['new_timestamp'].split('-') + start_time, end_time = segment['timestamp'].split('-') start_seconds = utils.time_to_seconds(start_time) end_seconds = utils.time_to_seconds(end_time) diff --git a/app/services/clip_video.py b/app/services/clip_video.py new file mode 100644 index 0000000..d5c591a --- /dev/null +++ b/app/services/clip_video.py @@ -0,0 +1,227 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +''' +@Project: NarratoAI +@File : clip_video +@Author : 小林同学 +@Date : 2025/5/6 下午6:14 +''' + +import os +import subprocess +import json +import hashlib +import logging +from typing import Dict, List, Optional +from pathlib import Path + +# 配置日志 +logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') +logger = logging.getLogger(__name__) + + +def parse_timestamp(timestamp: str) -> tuple: + """ + 解析时间戳字符串,返回开始和结束时间 + + Args: + timestamp: 格式为'HH:MM:SS-HH:MM:SS'的时间戳字符串 + + Returns: + tuple: (开始时间, 结束时间) 格式为'HH:MM:SS' + """ + start_time, end_time = timestamp.split('-') + return start_time, end_time + + +def calculate_end_time(start_time: str, duration: float, extra_seconds: float = 1.0) -> str: + """ + 根据开始时间和持续时间计算结束时间 + + Args: + start_time: 开始时间,格式为'HH:MM:SS' + duration: 持续时间,单位为秒 + extra_seconds: 额外添加的秒数,默认为1秒 + + Returns: + str: 计算后的结束时间,格式为'HH:MM:SS' + """ + h, m, s = map(int, start_time.split(':')) + total_seconds = h * 3600 + m * 60 + s + duration + extra_seconds + + h_new = int(total_seconds // 3600) + m_new = int((total_seconds % 3600) // 60) + s_new = int(total_seconds % 60) + + return f"{h_new:02d}:{m_new:02d}:{s_new:02d}" + + +def check_hardware_acceleration() -> Optional[str]: + """ + 检查系统支持的硬件加速选项 + + Returns: + Optional[str]: 硬件加速参数,如果不支持则返回None + """ + # 检查NVIDIA GPU支持 + try: + nvidia_check = subprocess.run( + ["ffmpeg", "-hwaccel", "cuda", "-i", "/dev/null", "-f", "null", "-"], + stderr=subprocess.PIPE, stdout=subprocess.PIPE, text=True, check=False + ) + if nvidia_check.returncode == 0: + return "cuda" + except Exception: + pass + + # 检查MacOS videotoolbox支持 + try: + videotoolbox_check = subprocess.run( + ["ffmpeg", "-hwaccel", "videotoolbox", "-i", "/dev/null", "-f", "null", "-"], + stderr=subprocess.PIPE, stdout=subprocess.PIPE, text=True, check=False + ) + if videotoolbox_check.returncode == 0: + return "videotoolbox" + except Exception: + pass + + # 检查Intel Quick Sync支持 + try: + qsv_check = subprocess.run( + ["ffmpeg", "-hwaccel", "qsv", "-i", "/dev/null", "-f", "null", "-"], + stderr=subprocess.PIPE, stdout=subprocess.PIPE, text=True, check=False + ) + if qsv_check.returncode == 0: + return "qsv" + except Exception: + pass + + return None + + +def clip_video( + video_origin_path: str, + tts_result: List[Dict], + output_dir: Optional[str] = None, + task_id: Optional[str] = None +) -> Dict[str, str]: + """ + 根据时间戳裁剪视频 + + Args: + video_origin_path: 原始视频的路径 + tts_result: 包含时间戳和持续时间信息的列表 + output_dir: 输出目录路径,默认为None时会自动生成 + task_id: 任务ID,用于生成唯一的输出目录,默认为None时会自动生成 + + Returns: + Dict[str, str]: 时间戳到裁剪后视频路径的映射 + """ + # 检查视频文件是否存在 + if not os.path.exists(video_origin_path): + raise FileNotFoundError(f"视频文件不存在: {video_origin_path}") + + # 如果未提供task_id,则根据输入生成一个唯一ID + if task_id is None: + content_for_hash = f"{video_origin_path}_{json.dumps(tts_result)}" + task_id = hashlib.md5(content_for_hash.encode()).hexdigest() + + # 设置输出目录 + if output_dir is None: + output_dir = os.path.join( + os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), + "storage", "temp", "clip_video", task_id + ) + + # 确保输出目录存在 + Path(output_dir).mkdir(parents=True, exist_ok=True) + + # 检查硬件加速支持 + hwaccel = check_hardware_acceleration() + hwaccel_args = [] + if hwaccel: + hwaccel_args = ["-hwaccel", hwaccel] + logger.info(f"使用硬件加速: {hwaccel}") + + # 存储裁剪结果 + result = {} + + for item in tts_result: + timestamp = item["timestamp"] + start_time, _ = parse_timestamp(timestamp) + + # 根据持续时间计算真正的结束时间(加上1秒余量) + duration = item["duration"] + calculated_end_time = calculate_end_time(start_time, duration) + + # 格式化输出文件名 + output_filename = f"vid-{start_time.replace(':', '-')}-{calculated_end_time.replace(':', '-')}.mp4" + output_path = os.path.join(output_dir, output_filename) + + # 构建FFmpeg命令 + ffmpeg_cmd = [ + "ffmpeg", "-y", *hwaccel_args, + "-i", video_origin_path, + "-ss", start_time, + "-to", calculated_end_time, + "-c:v", "h264_videotoolbox" if hwaccel == "videotoolbox" else "libx264", + "-c:a", "aac", + "-strict", "experimental", + output_path + ] + + # 执行FFmpeg命令 + try: + logger.info(f"裁剪视频片段: {timestamp} -> {start_time}到{calculated_end_time}") + logger.debug(f"执行命令: {' '.join(ffmpeg_cmd)}") + + process = subprocess.run( + ffmpeg_cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + check=True + ) + + result[timestamp] = output_path + logger.info(f"成功裁剪视频片段: {timestamp} -> {output_path}") + + except subprocess.CalledProcessError as e: + logger.error(f"裁剪视频片段失败: {timestamp}") + logger.error(f"错误信息: {e.stderr}") + raise RuntimeError(f"视频裁剪失败: {e.stderr}") + + return result + + +if __name__ == "__main__": + video_origin_path = "/Users/apple/Desktop/home/NarratoAI/resource/videos/qyn2-2无片头片尾.mp4" + + tts_result = [{'timestamp': '00:00:00-00:01:15', + 'audio_file': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_00_00-00_01_15.mp3', + 'subtitle_file': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_00_00-00_01_15.srt', + 'duration': 25.55, + 'text': '好的各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!上集片尾那个巨大的悬念,这一集就立刻揭晓了!范闲假死归来,他面临的第一个,也是最大的难关,就是如何面对他最敬爱的,同时也是最可怕的那个人——庆帝!'}, + {'timestamp': '00:01:15-00:04:40', + 'audio_file': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_01_15-00_04_40.mp3', + 'subtitle_file': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_01_15-00_04_40.srt', + 'duration': 13.488, + 'text': '但我们都知道,他绝不可能就这么轻易退场!第二集一开场,范闲就已经秘密回到了京都。他的生死传闻,可不像我们想象中那样只是小范围流传,而是…'}, + {'timestamp': '00:04:58-00:05:45', + 'audio_file': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_04_58-00_05_45.mp3', + 'subtitle_file': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_04_58-00_05_45.srt', + 'duration': 21.363, + 'text': '"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。但范闲是谁啊?他偏要反其道而行之!他竟然决定,直接去见庆帝!冒着天大的风险,用"假死"这个事实去赌庆帝的态度!'}, + {'timestamp': '00:05:45-00:06:00', + 'audio_file': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_05_45-00_06_00.mp3', + 'subtitle_file': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_05_45-00_06_00.srt', + 'duration': 7.675, 'text': '但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!'}] + + # 使用方法示例 + try: + result = clip_video(video_origin_path, tts_result) + print("裁剪结果:") + print(json.dumps(result, indent=4, ensure_ascii=False)) + except Exception as e: + print(f"发生错误: {e}") diff --git a/app/services/merger_video.py b/app/services/merger_video.py new file mode 100644 index 0000000..e900845 --- /dev/null +++ b/app/services/merger_video.py @@ -0,0 +1,543 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +''' +@Project: NarratoAI +@File : merger_video +@Author : 小林同学 +@Date : 2025/5/6 下午7:38 +''' + +import os +import subprocess +import logging +from enum import Enum +from typing import List, Optional, Tuple, Dict, Any +import shutil + +# 设置日志 +logger = logging.getLogger(__name__) + + +class VideoAspect(Enum): + """视频宽高比枚举""" + portrait = "portrait" # 竖屏 9:16 + landscape = "landscape" # 横屏 16:9 + square = "square" # 方形 1:1 + + def to_resolution(self) -> Tuple[int, int]: + """根据宽高比返回标准分辨率""" + if self == VideoAspect.portrait: + return 1080, 1920 # 竖屏 9:16 + elif self == VideoAspect.landscape: + return 1920, 1080 # 横屏 16:9 + elif self == VideoAspect.square: + return 1080, 1080 # 方形 1:1 + else: + return 1080, 1920 # 默认竖屏 + + +def check_ffmpeg_installation() -> bool: + """ + 检查ffmpeg是否已安装 + + Returns: + bool: 如果安装则返回True,否则返回False + """ + try: + subprocess.run(['ffmpeg', '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=True) + return True + except (subprocess.SubprocessError, FileNotFoundError): + logger.error("ffmpeg未安装或不在系统PATH中,请安装ffmpeg") + return False + + +def get_hardware_acceleration_option() -> Optional[str]: + """ + 根据系统环境选择合适的硬件加速选项 + + Returns: + Optional[str]: 硬件加速参数,如果不支持则返回None + """ + try: + # 检查NVIDIA GPU支持 + nvidia_check = subprocess.run( + ['ffmpeg', '-hide_banner', '-hwaccels'], + stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True + ) + output = nvidia_check.stdout.lower() + + if 'cuda' in output: + return 'cuda' + elif 'nvenc' in output: + return 'nvenc' + elif 'qsv' in output: # Intel Quick Sync + return 'qsv' + elif 'videotoolbox' in output: # macOS + return 'videotoolbox' + elif 'vaapi' in output: # Linux VA-API + return 'vaapi' + else: + logger.info("没有找到支持的硬件加速器,将使用软件编码") + return None + except Exception as e: + logger.warning(f"检测硬件加速器时出错: {str(e)},将使用软件编码") + return None + + +def check_video_has_audio(video_path: str) -> bool: + """ + 检查视频是否包含音频流 + + Args: + video_path: 视频文件路径 + + Returns: + bool: 如果视频包含音频流则返回True,否则返回False + """ + if not os.path.exists(video_path): + logger.warning(f"视频文件不存在: {video_path}") + return False + + probe_cmd = [ + 'ffprobe', '-v', 'error', + '-select_streams', 'a:0', + '-show_entries', 'stream=codec_type', + '-of', 'csv=p=0', + video_path + ] + + try: + result = subprocess.run(probe_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=False) + return result.stdout.strip() == 'audio' + except Exception as e: + logger.warning(f"检测视频音频流时出错: {str(e)}") + return False + + +def create_ffmpeg_concat_file(video_paths: List[str], concat_file_path: str) -> str: + """ + 创建ffmpeg合并所需的concat文件 + + Args: + video_paths: 需要合并的视频文件路径列表 + concat_file_path: concat文件的输出路径 + + Returns: + str: concat文件的路径 + """ + with open(concat_file_path, 'w', encoding='utf-8') as f: + for video_path in video_paths: + # 使用绝对路径并转义特殊字符 + abs_path = os.path.abspath(video_path).replace('\\', '\\\\').replace(':', '\\:') + f.write(f"file '{abs_path}'\n") + return concat_file_path + + +def process_single_video( + input_path: str, + output_path: str, + target_width: int, + target_height: int, + keep_audio: bool = True, + hwaccel: Optional[str] = None +) -> str: + """ + 处理单个视频:调整分辨率、帧率等 + + Args: + input_path: 输入视频路径 + output_path: 输出视频路径 + target_width: 目标宽度 + target_height: 目标高度 + keep_audio: 是否保留音频 + hwaccel: 硬件加速选项 + + Returns: + str: 处理后的视频路径 + """ + if not os.path.exists(input_path): + raise FileNotFoundError(f"找不到视频文件: {input_path}") + + # 构建基本命令 + command = ['ffmpeg', '-y'] + + # 添加硬件加速参数 + if hwaccel: + if hwaccel == 'cuda' or hwaccel == 'nvenc': + command.extend(['-hwaccel', 'cuda']) + elif hwaccel == 'qsv': + command.extend(['-hwaccel', 'qsv']) + elif hwaccel == 'videotoolbox': + command.extend(['-hwaccel', 'videotoolbox']) + elif hwaccel == 'vaapi': + command.extend(['-hwaccel', 'vaapi', '-vaapi_device', '/dev/dri/renderD128']) + + # 输入文件 + command.extend(['-i', input_path]) + + # 处理音频 + if not keep_audio: + command.extend(['-an']) # 移除音频 + else: + # 检查输入视频是否有音频流 + has_audio = check_video_has_audio(input_path) + if has_audio: + command.extend(['-c:a', 'aac', '-b:a', '128k']) # 音频编码为AAC + else: + logger.warning(f"视频 {input_path} 没有音频流,将会忽略音频设置") + command.extend(['-an']) # 没有音频流时移除音频设置 + + # 视频处理参数:缩放并添加填充以保持比例 + scale_filter = f"scale={target_width}:{target_height}:force_original_aspect_ratio=decrease" + pad_filter = f"pad={target_width}:{target_height}:(ow-iw)/2:(oh-ih)/2" + command.extend([ + '-vf', f"{scale_filter},{pad_filter}", + '-r', '30', # 设置帧率为30fps + ]) + + # 选择编码器 + if hwaccel == 'cuda' or hwaccel == 'nvenc': + command.extend(['-c:v', 'h264_nvenc', '-preset', 'p4', '-profile:v', 'high']) + elif hwaccel == 'qsv': + command.extend(['-c:v', 'h264_qsv', '-preset', 'medium']) + elif hwaccel == 'videotoolbox': + command.extend(['-c:v', 'h264_videotoolbox', '-profile:v', 'high']) + elif hwaccel == 'vaapi': + command.extend(['-c:v', 'h264_vaapi', '-profile', '100']) + else: + command.extend(['-c:v', 'libx264', '-preset', 'medium', '-profile:v', 'high']) + + # 设置视频比特率和其他参数 + command.extend([ + '-b:v', '5M', + '-maxrate', '8M', + '-bufsize', '10M', + '-pix_fmt', 'yuv420p', # 兼容性更好的颜色格式 + ]) + + # 输出文件 + command.append(output_path) + + # 执行命令 + try: + logger.info(f"处理视频 {input_path} -> {output_path}") + subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + return output_path + except subprocess.CalledProcessError as e: + logger.error(f"处理视频失败: {e.stderr.decode() if e.stderr else str(e)}") + raise RuntimeError(f"处理视频失败: {str(e)}") + + +def combine_clip_videos( + output_video_path: str, + video_paths: List[str], + video_ost_list: List[int], + video_aspect: VideoAspect = VideoAspect.portrait, + threads: int = 4, +) -> str: + """ + 合并子视频 + Args: + output_video_path: 合并后的存储路径 + video_paths: 子视频路径列表 + video_ost_list: 原声播放列表 (0: 不保留原声, 1: 只保留原声, 2: 保留原声并保留解说) + video_aspect: 屏幕比例 + threads: 线程数 + + Returns: + str: 合并后的视频路径 + """ + # 检查ffmpeg是否安装 + if not check_ffmpeg_installation(): + raise RuntimeError("未找到ffmpeg,请先安装") + + # 准备输出目录 + output_dir = os.path.dirname(output_video_path) + os.makedirs(output_dir, exist_ok=True) + + # 获取目标分辨率 + aspect = VideoAspect(video_aspect) + video_width, video_height = aspect.to_resolution() + + # 检测可用的硬件加速选项 + hwaccel = get_hardware_acceleration_option() + if hwaccel: + logger.info(f"将使用 {hwaccel} 硬件加速") + + # 重组视频路径和原声设置为一个字典列表结构 + video_segments = [] + + # 检查视频路径和原声设置列表长度是否匹配 + if len(video_paths) != len(video_ost_list): + logger.warning(f"视频路径列表({len(video_paths)})和原声设置列表({len(video_ost_list)})长度不匹配") + # 调整长度以匹配较短的列表 + min_length = min(len(video_paths), len(video_ost_list)) + video_paths = video_paths[:min_length] + video_ost_list = video_ost_list[:min_length] + + # 创建视频处理配置字典列表 + for i, (video_path, video_ost) in enumerate(zip(video_paths, video_ost_list)): + if not os.path.exists(video_path): + logger.warning(f"视频不存在,跳过: {video_path}") + continue + + # 检查是否有音频流 + has_audio = check_video_has_audio(video_path) + + # 构建视频片段配置 + segment = { + "index": i, + "path": video_path, + "ost": video_ost, + "has_audio": has_audio, + "keep_audio": video_ost > 0 and has_audio # 只有当ost>0且实际有音频时才保留 + } + + # 记录日志 + if video_ost > 0 and not has_audio: + logger.warning(f"视频 {video_path} 设置为保留原声(ost={video_ost}),但该视频没有音频流") + + video_segments.append(segment) + + # 处理每个视频片段 + processed_videos = [] + temp_dir = os.path.join(output_dir, "temp_videos") + os.makedirs(temp_dir, exist_ok=True) + + try: + # 第一阶段:处理所有视频片段到中间文件 + for segment in video_segments: + # 处理单个视频,去除或保留音频 + temp_output = os.path.join(temp_dir, f"processed_{segment['index']}.mp4") + try: + process_single_video( + input_path=segment['path'], + output_path=temp_output, + target_width=video_width, + target_height=video_height, + keep_audio=segment['keep_audio'], + hwaccel=hwaccel + ) + processed_videos.append({ + "index": segment["index"], + "path": temp_output, + "keep_audio": segment["keep_audio"] + }) + logger.info(f"视频 {segment['index'] + 1}/{len(video_segments)} 处理完成") + except Exception as e: + logger.error(f"处理视频 {segment['path']} 时出错: {str(e)}") + continue + + if not processed_videos: + raise ValueError("没有有效的视频片段可以合并") + + # 按原始索引排序处理后的视频 + processed_videos.sort(key=lambda x: x["index"]) + + # 第二阶段:分步骤合并视频 - 避免复杂的filter_complex滤镜 + try: + # 1. 首先,将所有没有音频的视频或音频被禁用的视频合并到一个临时文件中 + video_paths_only = [video["path"] for video in processed_videos] + video_concat_path = os.path.join(temp_dir, "video_concat.mp4") + + # 创建concat文件,用于合并视频流 + concat_file = os.path.join(temp_dir, "concat_list.txt") + create_ffmpeg_concat_file(video_paths_only, concat_file) + + # 合并所有视频流,但不包含音频 + concat_cmd = [ + 'ffmpeg', '-y', + '-f', 'concat', + '-safe', '0', + '-i', concat_file, + '-c:v', 'libx264', + '-preset', 'medium', + '-profile:v', 'high', + '-an', # 不包含音频 + '-threads', str(threads), + video_concat_path + ] + + subprocess.run(concat_cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + logger.info("视频流合并完成") + + # 2. 提取并合并有音频的片段 + audio_segments = [video for video in processed_videos if video["keep_audio"]] + + if not audio_segments: + # 如果没有音频片段,直接使用无音频的合并视频作为最终结果 + shutil.copy(video_concat_path, output_video_path) + logger.info("无音频视频合并完成") + return output_video_path + + # 创建音频中间文件 + audio_files = [] + for i, segment in enumerate(audio_segments): + # 提取音频 + audio_file = os.path.join(temp_dir, f"audio_{i}.aac") + extract_audio_cmd = [ + 'ffmpeg', '-y', + '-i', segment["path"], + '-vn', # 不包含视频 + '-c:a', 'aac', + '-b:a', '128k', + audio_file + ] + subprocess.run(extract_audio_cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + audio_files.append({ + "index": segment["index"], + "path": audio_file + }) + logger.info(f"提取音频 {i+1}/{len(audio_segments)} 完成") + + # 3. 计算每个音频片段的时间位置 + audio_timings = [] + current_time = 0.0 + + # 获取每个视频片段的时长 + for i, video in enumerate(processed_videos): + duration_cmd = [ + 'ffprobe', '-v', 'error', + '-show_entries', 'format=duration', + '-of', 'csv=p=0', + video["path"] + ] + result = subprocess.run(duration_cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) + duration = float(result.stdout.strip()) + + # 如果当前片段需要保留音频,记录时间位置 + if video["keep_audio"]: + for audio in audio_files: + if audio["index"] == video["index"]: + audio_timings.append({ + "file": audio["path"], + "start": current_time, + "index": video["index"] + }) + break + + current_time += duration + + # 4. 创建静音音频轨道作为基础 + silence_audio = os.path.join(temp_dir, "silence.aac") + create_silence_cmd = [ + 'ffmpeg', '-y', + '-f', 'lavfi', + '-i', f'anullsrc=r=44100:cl=stereo', + '-t', str(current_time), # 总时长 + '-c:a', 'aac', + '-b:a', '128k', + silence_audio + ] + subprocess.run(create_silence_cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + # 5. 创建复杂滤镜命令以混合音频 + filter_script = os.path.join(temp_dir, "filter_script.txt") + with open(filter_script, 'w') as f: + f.write(f"[0:a]volume=0.0[silence];\n") # 首先静音背景轨道 + + # 添加每个音频文件 + for i, timing in enumerate(audio_timings): + f.write(f"[{i+1}:a]adelay={int(timing['start']*1000)}|{int(timing['start']*1000)}[a{i}];\n") + + # 混合所有音频 + mix_str = "[silence]" + for i in range(len(audio_timings)): + mix_str += f"[a{i}]" + mix_str += f"amix=inputs={len(audio_timings)+1}:duration=longest[aout]" + f.write(mix_str) + + # 6. 构建音频合并命令 + audio_inputs = ['-i', silence_audio] + for timing in audio_timings: + audio_inputs.extend(['-i', timing["file"]]) + + mixed_audio = os.path.join(temp_dir, "mixed_audio.aac") + audio_mix_cmd = [ + 'ffmpeg', '-y' + ] + audio_inputs + [ + '-filter_complex_script', filter_script, + '-map', '[aout]', + '-c:a', 'aac', + '-b:a', '128k', + mixed_audio + ] + + subprocess.run(audio_mix_cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + logger.info("音频混合完成") + + # 7. 将合并的视频和混合的音频组合在一起 + final_cmd = [ + 'ffmpeg', '-y', + '-i', video_concat_path, + '-i', mixed_audio, + '-c:v', 'copy', + '-c:a', 'aac', + '-map', '0:v:0', + '-map', '1:a:0', + '-shortest', + output_video_path + ] + + subprocess.run(final_cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + logger.info("视频最终合并完成") + + return output_video_path + + except subprocess.CalledProcessError as e: + logger.error(f"合并视频过程中出错: {e.stderr.decode() if e.stderr else str(e)}") + + # 尝试备用合并方法 - 最简单的无音频合并 + logger.info("尝试备用合并方法 - 无音频合并") + try: + concat_file = os.path.join(temp_dir, "concat_list.txt") + video_paths_only = [video["path"] for video in processed_videos] + create_ffmpeg_concat_file(video_paths_only, concat_file) + + backup_cmd = [ + 'ffmpeg', '-y', + '-f', 'concat', + '-safe', '0', + '-i', concat_file, + '-c:v', 'copy', + '-an', # 无音频 + output_video_path + ] + + subprocess.run(backup_cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + logger.warning("使用备用方法(无音频)成功合并视频") + return output_video_path + except Exception as backup_error: + logger.error(f"备用合并方法也失败: {str(backup_error)}") + raise RuntimeError(f"无法合并视频: {str(backup_error)}") + + except Exception as e: + logger.error(f"合并视频时出错: {str(e)}") + raise + finally: + # 清理临时文件 + try: + if os.path.exists(temp_dir): + shutil.rmtree(temp_dir) + logger.info("已清理临时文件") + except Exception as e: + logger.warning(f"清理临时文件时出错: {str(e)}") + + +if __name__ == '__main__': + video_paths = [ + '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-00-00-00-00-26.mp4', + '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-01-15-00-01-29.mp4', + '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-04-41-00-04-58.mp4', + '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-04-58-00-05-20.mp4', + '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-05-45-00-05-53.mp4', + '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-06-00-00-06-03.mp4' + ] + + combine_clip_videos( + output_video_path="/Users/apple/Desktop/home/NarratoAI/storage/temp/merge/merged_123.mp4", + video_paths=video_paths, + video_ost_list=[1, 0, 1, 0, 0, 1], + video_aspect=VideoAspect.portrait + ) diff --git a/app/services/subtitle_merger.py b/app/services/subtitle_merger.py new file mode 100644 index 0000000..1388b76 --- /dev/null +++ b/app/services/subtitle_merger.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +''' +@Project: NarratoAI +@File : subtitle_merger +@Author : viccy +@Date : 2025/5/6 下午4:00 +''' + +import re +import os +from datetime import datetime, timedelta + + +def parse_time(time_str): + """解析时间字符串为timedelta对象""" + hours, minutes, seconds_ms = time_str.split(':') + seconds, milliseconds = seconds_ms.split(',') + + td = timedelta( + hours=int(hours), + minutes=int(minutes), + seconds=int(seconds), + milliseconds=int(milliseconds) + ) + return td + + +def format_time(td): + """将timedelta对象格式化为SRT时间字符串""" + total_seconds = int(td.total_seconds()) + hours = total_seconds // 3600 + minutes = (total_seconds % 3600) // 60 + seconds = total_seconds % 60 + milliseconds = td.microseconds // 1000 + + return f"{hours:02d}:{minutes:02d}:{seconds:02d},{milliseconds:03d}" + + +def extract_time_range_from_filename(filename): + """从文件名中提取时间范围""" + pattern = r'subtitle_(\d{2})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2})' + match = re.search(pattern, filename) + + if not match: + return None, None + + start_h, start_m, start_s, end_h, end_m, end_s = map(int, match.groups()) + + start_time = timedelta(hours=start_h, minutes=start_m, seconds=start_s) + end_time = timedelta(hours=end_h, minutes=end_m, seconds=end_s) + + return start_time, end_time + + +def merge_subtitle_files(subtitle_files, output_file=None): + """ + 合并多个SRT字幕文件 + + 参数: + subtitle_files: 包含SRT文件路径的列表 + output_file: 输出文件的路径,如果为None则自动生成 + + 返回: + 合并后的字幕文件路径 + """ + # 按文件名中的开始时间排序 + sorted_files = sorted(subtitle_files, + key=lambda x: extract_time_range_from_filename(x)[0]) + + merged_subtitles = [] + subtitle_index = 1 + + for file_path in sorted_files: + # 从文件名获取起始时间偏移 + offset_time, _ = extract_time_range_from_filename(file_path) + + if offset_time is None: + print(f"警告: 无法从文件名 {os.path.basename(file_path)} 中提取时间范围,跳过该文件") + continue + + with open(file_path, 'r', encoding='utf-8') as file: + content = file.read() + + # 解析字幕文件 + subtitle_blocks = re.split(r'\n\s*\n', content.strip()) + + for block in subtitle_blocks: + lines = block.strip().split('\n') + if len(lines) < 3: # 确保块有足够的行数 + continue + + # 解析时间轴行 + time_line = lines[1] + time_parts = time_line.split(' --> ') + if len(time_parts) != 2: + continue + + start_time = parse_time(time_parts[0]) + end_time = parse_time(time_parts[1]) + + # 应用时间偏移 + adjusted_start_time = start_time + offset_time + adjusted_end_time = end_time + offset_time + + # 重建字幕块 + adjusted_time_line = f"{format_time(adjusted_start_time)} --> {format_time(adjusted_end_time)}" + text_lines = lines[2:] + + new_block = [ + str(subtitle_index), + adjusted_time_line, + *text_lines + ] + + merged_subtitles.append('\n'.join(new_block)) + subtitle_index += 1 + + # 合并所有字幕块 + merged_content = '\n\n'.join(merged_subtitles) + + # 确定输出文件路径 + if output_file is None: + # 自动生成输出文件名 + first_file_path = sorted_files[0] + last_file_path = sorted_files[-1] + _, first_end = extract_time_range_from_filename(first_file_path) + _, last_end = extract_time_range_from_filename(last_file_path) + + dir_path = os.path.dirname(first_file_path) + first_start_str = os.path.basename(first_file_path).split('-')[0].replace('subtitle_', '') + last_end_h, last_end_m, last_end_s = int(last_end.seconds // 3600), int((last_end.seconds % 3600) // 60), int(last_end.seconds % 60) + last_end_str = f"{last_end_h:02d}_{last_end_m:02d}_{last_end_s:02d}" + + output_file = os.path.join(dir_path, f"merged_subtitle_{first_start_str}-{last_end_str}.srt") + + # 写入合并后的内容 + with open(output_file, 'w', encoding='utf-8') as file: + file.write(merged_content) + + return output_file + + +if __name__ == '__main__': + subtitle_files = [ + "/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_00_00-00_01_15.srt", + "/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_01_15-00_04_40.srt", + "/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_04_58-00_05_45.srt", + "/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_05_45-00_06_00.srt", + ] + + output_file = merge_subtitle_files(subtitle_files) + print(f"字幕文件已合并至: {output_file}") diff --git a/app/services/task.py b/app/services/task.py index 6704f0d..1f3e797 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -9,7 +9,7 @@ from loguru import logger from app.config import config from app.models import const from app.models.schema import VideoConcatMode, VideoParams, VideoClipParams -from app.services import llm, material, subtitle, video, voice, audio_merger +from app.services import llm, material, subtitle, video, voice, audio_merger, subtitle_merger, clip_video from app.services import state as sm from app.utils import utils @@ -158,18 +158,25 @@ def get_video_materials(task_id, params, video_terms, audio_duration): def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: dict): - """后台任务(自动剪辑视频进行剪辑)""" + """ + 后台任务(自动剪辑视频进行剪辑) + Args: + task_id: 任务ID + params: 视频参数 + subclip_path_videos: 视频片段路径 + """ logger.info(f"\n\n## 开始任务: {task_id}") - - # 初始化 ImageMagick - if not utils.init_imagemagick(): - logger.warning("ImageMagick 初始化失败,字幕可能无法正常显示") - - sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=5) + sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=0) - # tts 角色名称 - voice_name = voice.parse_voice_name(params.voice_name) + # # 初始化 ImageMagick + # if not utils.init_imagemagick(): + # logger.warning("ImageMagick 初始化失败,字幕可能无法正常显示") + # # tts 角色名称 + # voice_name = voice.parse_voice_name(params.voice_name) + """ + 1. 加载剪辑脚本 + """ logger.info("\n\n## 1. 加载视频脚本") video_script_path = path.join(params.video_clip_json_path) @@ -187,111 +194,102 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di logger.debug(f"解说时间戳列表: \n{time_list}") # 获取视频总时长(单位 s) - last_timestamp = list_script[-1]['new_timestamp'] - end_time = last_timestamp.split("-")[1] - total_duration = utils.time_to_seconds(end_time) - + last_timestamp = list_script[-1]['timestamp'].split("-")[1] + total_duration = utils.time_to_seconds(last_timestamp) + except Exception as e: - logger.error(f"无法读取视频json脚本,请检查配置是否正确。{e}") - raise ValueError("无法读取视频json脚本,请检查配置是否正确") + logger.error(f"无法读取视频json脚本,请检查脚本格式是否正确") + raise ValueError("无法读取视频json脚本,请检查脚本格式是否正确") else: logger.error(f"video_script_path: {video_script_path} \n\n", traceback.format_exc()) raise ValueError("解说脚本不存在!请检查配置是否正确。") + """ + 2. 使用 TTS 生成音频素材 + """ logger.info("\n\n## 2. 根据OST设置生成音频列表") - # 只为OST=0或2的片段生成TTS音频 + # 只为OST=0 or 2的判断生成音频, OST=0 仅保留解说 OST=2 保留解说和原声 tts_segments = [ segment for segment in list_script if segment['OST'] in [0, 2] ] logger.debug(f"需要生成TTS的片段数: {len(tts_segments)}") - - # 初始化音频文件路径 - audio_files = [] - final_audio = "" - - if tts_segments: - audio_files, sub_maker_list = voice.tts_multiple( - task_id=task_id, - list_script=tts_segments, # 只传入需要TTS的片段 - voice_name=voice_name, - voice_rate=params.voice_rate, - voice_pitch=params.voice_pitch, - force_regenerate=True - ) - if audio_files is None: - sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) - logger.error("TTS转换音频失败, 可能是网络不可用! 如果您在中国, 请使用VPN.") - return - if audio_files: - logger.info(f"合并音频文件: {audio_files}") - try: - # 传入OST信息以便正确处理音频 - final_audio = audio_merger.merge_audio_files( - task_id=task_id, - audio_files=audio_files, - total_duration=total_duration, - list_script=list_script # 传入完整脚本以便处理OST - ) - logger.info("音频文件合并成功") - except Exception as e: - logger.error(f"合并音频文件失败: {str(e)}") - final_audio = "" - else: - # 如果没有需要生成TTS的片段,创建一个空白音频文件 - # 这样可以确保后续的音频处理能正确进行 - logger.info("没有需要生成TTS的片段,将保留原声和背景音乐") - final_audio = path.join(utils.task_dir(task_id), "empty.mp3") + tts_results = voice.tts_multiple( + task_id=task_id, + list_script=tts_segments, # 只传入需要TTS的片段 + voice_name=params.voice_name, + voice_rate=params.voice_rate, + voice_pitch=params.voice_pitch, + force_regenerate=True + ) + audio_files = [ + tts_result["audio_file"] for tts_result in tts_results + ] + subtitle_files = [ + tts_result["subtitle_file"] for tts_result in tts_results + ] + if tts_results: + logger.info(f"合并音频/字幕文件") try: - from moviepy.editor import AudioClip - # 创建一个与视频等长的空白音频 - empty_audio = AudioClip(make_frame=lambda t: 0, duration=total_duration) - empty_audio.write_audiofile(final_audio, fps=44100) - logger.info(f"已创建空白音频文件: {final_audio}") - except Exception as e: - logger.error(f"创建空白音频文件失败: {str(e)}") - final_audio = "" - - sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=30) - - subtitle_path = "" - if params.subtitle_enabled: - if audio_files: - subtitle_path = path.join(utils.task_dir(task_id), f"subtitle.srt") - subtitle_provider = config.app.get("subtitle_provider", "").strip().lower() - logger.info(f"\n\n## 3. 生成字幕、提供程序是: {subtitle_provider}") - - subtitle.create( - audio_file=final_audio, - subtitle_file=subtitle_path, + # 合并音频文件 + merged_audio_path = audio_merger.merge_audio_files( + task_id=task_id, + audio_files=audio_files, + total_duration=total_duration, + list_script=list_script # 传入完整脚本以便处理OST ) + logger.info(f"音频文件合并成功->{merged_audio_path}") + # 合并字幕文件 + merged_subtitle_path = subtitle_merger.merge_subtitle_files( + subtitle_files=subtitle_files, + ) + logger.info(f"字幕文件合并成功->{merged_subtitle_path}") + except Exception as e: + logger.error(f"合并音频文件失败: {str(e)}") + merged_audio_path = "" + merged_subtitle_path = "" + else: + logger.error("TTS转换音频失败, 可能是网络不可用! 如果您在中国, 请使用VPN.") + return + sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=20) - subtitle_lines = subtitle.file_to_subtitles(subtitle_path) + """ + 3. (可选) 使用 whisper 生成字幕 + """ + if merged_subtitle_path is None: + if audio_files: + merged_subtitle_path = path.join(utils.task_dir(task_id), f"subtitle.srt") + subtitle_provider = config.app.get("subtitle_provider", "").strip().lower() + logger.info(f"\n\n使用 {subtitle_provider} 生成字幕") + + subtitle.create( + audio_file=merged_audio_path, + subtitle_file=merged_subtitle_path, + ) + subtitle_lines = subtitle.file_to_subtitles(merged_subtitle_path) if not subtitle_lines: - logger.warning(f"字幕文件无效: {subtitle_path}") - subtitle_path = "" + logger.warning(f"字幕文件无效: {merged_subtitle_path}") sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=40) + """ + 4. 裁剪视频 - 将超出音频长度的视频进行裁剪 + """ logger.info("\n\n## 4. 裁剪视频") + result = clip_video.clip_video(params.video_origin_path, tts_results) + subclip_path_videos.update(result) subclip_videos = [x for x in subclip_path_videos.values()] - # logger.debug(f"\n\n## 裁剪后的视频文件列表: \n{subclip_videos}") - if not subclip_videos: - sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) - logger.error( - "裁剪视频失败,可能是 ImageMagick 不可用") - return - - sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=50) + sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=60) + """ + 5. 合并视频 + """ final_video_paths = [] combined_video_paths = [] - _progress = 50 - index = 1 - combined_video_path = path.join(utils.task_dir(task_id), f"combined.mp4") + combined_video_path = path.join(utils.task_dir(task_id), f"merger.mp4") logger.info(f"\n\n## 5. 合并视频: => {combined_video_path}") video.combine_clip_videos( @@ -302,14 +300,15 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di video_aspect=params.video_aspect, threads=params.n_threads # 多线程 ) + sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=80) - _progress += 50 / 2 - sm.state.update_task(task_id, progress=_progress) - final_video_path = path.join(utils.task_dir(task_id), f"final-{index}.mp4") + """ + 6. 合并字幕/BGM/配音/视频 + """ + final_video_path = path.join(utils.task_dir(task_id), f"combined.mp4") + logger.info(f"\n\n## 6. 最后一步: 合并字幕/BGM/配音/视频 -> {final_video_path}") - logger.info(f"\n\n## 6. 最后合成: {index} => {final_video_path}") - # 获取背景音乐 bgm_path = None if params.bgm_type or params.bgm_file: @@ -340,18 +339,15 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di font_path = utils.font_dir(params.font_name) video.generate_video_v3( video_path=combined_video_path, - subtitle_path=subtitle_path, + subtitle_path=merged_subtitle_path, bgm_path=bgm_path, - narration_path=final_audio, + narration_path=merged_audio_path, output_path=final_video_path, volume_config=volume_config, # 添加音量配置 subtitle_style=subtitle_style, font_path=font_path ) - _progress += 50 / 2 - sm.state.update_task(task_id, progress=_progress) - final_video_paths.append(final_video_path) combined_video_paths.append(combined_video_path) @@ -400,35 +396,20 @@ def validate_params(video_path, audio_path, output_file, params): if __name__ == "__main__": - # task_id = "test123" - # subclip_path_videos = {'00:41-01:58': 'E:\\projects\\NarratoAI\\storage\\cache_videos/vid-00_41-01_58.mp4', - # '00:06-00:15': 'E:\\projects\\NarratoAI\\storage\\cache_videos/vid-00_06-00_15.mp4', - # '01:10-01:17': 'E:\\projects\\NarratoAI\\storage\\cache_videos/vid-01_10-01_17.mp4', - # '00:47-01:03': 'E:\\projects\\NarratoAI\\storage\\cache_videos/vid-00_47-01_03.mp4', - # '01:03-01:10': 'E:\\projects\\NarratoAI\\storage\\cache_videos/vid-01_03-01_10.mp4', - # '02:40-03:08': 'E:\\projects\\NarratoAI\\storage\\cache_videos/vid-02_40-03_08.mp4', - # '03:02-03:20': 'E:\\projects\\NarratoAI\\storage\\cache_videos/vid-03_02-03_20.mp4', - # '03:18-03:20': 'E:\\projects\\NarratoAI\\storage\\cache_videos/vid-03_18-03_20.mp4'} - # - # params = VideoClipParams( - # video_clip_json_path="E:\\projects\\NarratoAI\\resource/scripts/test003.json", - # video_origin_path="E:\\projects\\NarratoAI\\resource/videos/1.mp4", - # ) - # start_subclip(task_id, params, subclip_path_videos=subclip_path_videos) + task_id = "qyn2-2-demo" - task_id = "test456" - subclip_path_videos = {'01:10-01:17': './storage/cache_videos/vid-01_10-01_17.mp4', - '01:58-02:04': './storage/cache_videos/vid-01_58-02_04.mp4', - '02:25-02:31': './storage/cache_videos/vid-02_25-02_31.mp4', - '01:28-01:33': './storage/cache_videos/vid-01_28-01_33.mp4', - '03:14-03:18': './storage/cache_videos/vid-03_14-03_18.mp4', - '00:24-00:28': './storage/cache_videos/vid-00_24-00_28.mp4', - '03:02-03:08': './storage/cache_videos/vid-03_02-03_08.mp4', - '00:41-00:44': './storage/cache_videos/vid-00_41-00_44.mp4', - '02:12-02:25': './storage/cache_videos/vid-02_12-02_25.mp4'} + # 提前裁剪是为了方便检查视频 + subclip_path_videos = { + '00:00:00-00:01:15': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-00-00-00-01-15.mp4', + '00:01:15-00:04:40': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-01-15-00-04-40.mp4', + '00:04:41-00:04:58': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-04-41-00-04-58.mp4', + '00:04:58-00:05:45': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-04-58-00-05-45.mp4', + '00:05:45-00:06:00': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-05-45-00-06-00.mp4', + '00:06:00-00:06:03': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-06-00-00-06-03.mp4', + } params = VideoClipParams( - video_clip_json_path="/Users/apple/Desktop/home/NarratoAI/resource/scripts/test004.json", - video_origin_path="/Users/apple/Desktop/home/NarratoAI/resource/videos/1.mp4", + video_clip_json_path="/Users/apple/Desktop/home/NarratoAI/resource/scripts/demo.json", + video_origin_path="/Users/apple/Desktop/home/NarratoAI/resource/videos/qyn2-2无片头片尾.mp4", ) - start_subclip(task_id, params, subclip_path_videos=subclip_path_videos) + start_subclip(task_id, params, subclip_path_videos) diff --git a/app/services/video.py b/app/services/video.py index f840c66..dbe7986 100644 --- a/app/services/video.py +++ b/app/services/video.py @@ -443,4 +443,3 @@ def generate_video_v3( bgm.close() if narration_path: narration.close() - diff --git a/app/services/voice.py b/app/services/voice.py index eba3c6d..f5570e4 100644 --- a/app/services/voice.py +++ b/app/services/voice.py @@ -5,10 +5,11 @@ import traceback import edge_tts import asyncio from loguru import logger -from typing import List +from typing import List, Union from datetime import datetime from xml.sax.saxutils import unescape from edge_tts import submaker, SubMaker +from edge_tts.submaker import mktimestamp from moviepy.video.tools import subtitles import time @@ -1036,7 +1037,7 @@ def is_azure_v2_voice(voice_name: str): def tts( text: str, voice_name: str, voice_rate: float, voice_pitch: float, voice_file: str -) -> [SubMaker, None]: +) -> Union[SubMaker, None]: if is_azure_v2_voice(voice_name): return azure_tts_v2(text, voice_name, voice_file) return azure_tts_v1(text, voice_name, voice_rate, voice_pitch, voice_file) @@ -1064,7 +1065,7 @@ def convert_pitch_to_percent(rate: float) -> str: def azure_tts_v1( text: str, voice_name: str, voice_rate: float, voice_pitch: float, voice_file: str -) -> [SubMaker, None]: +) -> Union[SubMaker, None]: voice_name = parse_voice_name(voice_name) text = text.strip() rate_str = convert_rate_to_percent(voice_rate) @@ -1087,11 +1088,6 @@ def azure_tts_v1( ) return sub_maker, audio_data - # 判断音频文件是否已存在 - if os.path.exists(voice_file): - logger.info(f"voice file exists, skip tts: {voice_file}") - continue - # 获取音频数据和字幕信息 sub_maker, audio_data = asyncio.run(_do()) @@ -1105,8 +1101,6 @@ def azure_tts_v1( # 数据有效,写入文件 with open(voice_file, "wb") as file: file.write(audio_data) - - logger.info(f"completed, output file: {voice_file}") return sub_maker except Exception as e: logger.error(f"生成音频文件时出错: {str(e)}") @@ -1115,7 +1109,7 @@ def azure_tts_v1( return None -def azure_tts_v2(text: str, voice_name: str, voice_file: str) -> [SubMaker, None]: +def azure_tts_v2(text: str, voice_name: str, voice_file: str) -> Union[SubMaker, None]: voice_name = is_azure_v2_voice(voice_name) if not voice_name: logger.error(f"invalid voice name: {voice_name}") @@ -1240,7 +1234,7 @@ def create_subtitle_from_multiple(text: str, sub_maker_list: List[SubMaker], lis if script_item['OST']: continue - start_time, end_time = script_item['new_timestamp'].split('-') + start_time, end_time = script_item['timestamp'].split('-') if sub_maker_index >= len(sub_maker_list): logger.error(f"Sub maker list index out of range: {sub_maker_index}") break @@ -1317,6 +1311,97 @@ def create_subtitle_from_multiple(text: str, sub_maker_list: List[SubMaker], lis traceback.print_exc() +def create_subtitle(sub_maker: submaker.SubMaker, text: str, subtitle_file: str): + """ + 优化字幕文件 + 1. 将字幕文件按照标点符号分割成多行 + 2. 逐行匹配字幕文件中的文本 + 3. 生成新的字幕文件 + """ + + text = _format_text(text) + + def formatter(idx: int, start_time: float, end_time: float, sub_text: str) -> str: + """ + 1 + 00:00:00,000 --> 00:00:02,360 + 跑步是一项简单易行的运动 + """ + start_t = mktimestamp(start_time).replace(".", ",") + end_t = mktimestamp(end_time).replace(".", ",") + return f"{idx}\n" f"{start_t} --> {end_t}\n" f"{sub_text}\n" + + start_time = -1.0 + sub_items = [] + sub_index = 0 + + script_lines = utils.split_string_by_punctuations(text) + + def match_line(_sub_line: str, _sub_index: int): + if len(script_lines) <= _sub_index: + return "" + + _line = script_lines[_sub_index] + if _sub_line == _line: + return script_lines[_sub_index].strip() + + _sub_line_ = re.sub(r"[^\w\s]", "", _sub_line) + _line_ = re.sub(r"[^\w\s]", "", _line) + if _sub_line_ == _line_: + return _line_.strip() + + _sub_line_ = re.sub(r"\W+", "", _sub_line) + _line_ = re.sub(r"\W+", "", _line) + if _sub_line_ == _line_: + return _line.strip() + + return "" + + sub_line = "" + + try: + for _, (offset, sub) in enumerate(zip(sub_maker.offset, sub_maker.subs)): + _start_time, end_time = offset + if start_time < 0: + start_time = _start_time + + sub = unescape(sub) + sub_line += sub + sub_text = match_line(sub_line, sub_index) + if sub_text: + sub_index += 1 + line = formatter( + idx=sub_index, + start_time=start_time, + end_time=end_time, + sub_text=sub_text, + ) + sub_items.append(line) + start_time = -1.0 + sub_line = "" + + if len(sub_items) == len(script_lines): + with open(subtitle_file, "w", encoding="utf-8") as file: + file.write("\n".join(sub_items) + "\n") + try: + sbs = subtitles.file_to_subtitles(subtitle_file, encoding="utf-8") + duration = max([tb for ((ta, tb), txt) in sbs]) + logger.info( + f"已创建字幕文件: {subtitle_file}, duration: {duration}" + ) + return subtitle_file, duration + except Exception as e: + logger.error(f"failed, error: {str(e)}") + os.remove(subtitle_file) + else: + logger.warning( + f"字幕创建失败, 字幕长度: {len(sub_items)}, script_lines len: {len(script_lines)}" + ) + + except Exception as e: + logger.error(f"failed, error: {str(e)}") + + def get_audio_duration(sub_maker: submaker.SubMaker): """ 获取音频时长 @@ -1339,20 +1424,25 @@ def tts_multiple(task_id: str, list_script: list, voice_name: str, voice_rate: f """ voice_name = parse_voice_name(voice_name) output_dir = utils.task_dir(task_id) - audio_files = [] - sub_maker_list = [] + tts_results = [] for item in list_script: + tts_item = { + "audio_file": "", + "subtitle_file": "", + "duration": 0, + } if item['OST'] != 1: # 将时间戳中的冒号替换为下划线 - timestamp = item['new_timestamp'].replace(':', '_') + timestamp = item['timestamp'].replace(':', '_') audio_file = os.path.join(output_dir, f"audio_{timestamp}.mp3") + subtitle_file = os.path.join(output_dir, f"subtitle_{timestamp}.srt") - # 检查文件是否已存在,如存在且不强制重新生成,则跳过 - if os.path.exists(audio_file) and not force_regenerate: - logger.info(f"音频文件已存在,跳过生成: {audio_file}") - audio_files.append(audio_file) - continue + # # 检查文件是否已存在,如存在且不强制重新生成,则跳过 + # if os.path.exists(audio_file) and not force_regenerate: + # logger.info(f"音频文件已存在,跳过生成: {audio_file}") + # tts_item["audio_file"] = audio_file + # continue text = item['narration'] @@ -1369,9 +1459,17 @@ def tts_multiple(task_id: str, list_script: list, voice_name: str, voice_rate: f f"如果您在中国,请使用VPN; " f"或者使用其他 tts 引擎") continue + else: + # 为当前片段生成字幕文件 + _, duration = create_subtitle(sub_maker=sub_maker, text=text, subtitle_file=subtitle_file) - audio_files.append(audio_file) - sub_maker_list.append(sub_maker) + tts_results.append({ + "timestamp": item['timestamp'], + "audio_file": audio_file, + "subtitle_file": subtitle_file, + "duration": duration, + "text": text, + }) logger.info(f"已生成音频文件: {audio_file}") - return audio_files, sub_maker_list + return tts_results diff --git a/webui.py b/webui.py index 434cbb9..1f605b5 100644 --- a/webui.py +++ b/webui.py @@ -3,7 +3,8 @@ import os import sys from uuid import uuid4 from app.config import config -from webui.components import basic_settings, video_settings, audio_settings, subtitle_settings, script_settings, review_settings, merge_settings, system_settings +from webui.components import basic_settings, video_settings, audio_settings, subtitle_settings, script_settings, \ + review_settings, merge_settings, system_settings from webui.utils import cache, file_utils from app.utils import utils from app.models.schema import VideoClipParams, VideoAspect @@ -28,6 +29,7 @@ hide_streamlit_style = """ """ st.markdown(hide_streamlit_style, unsafe_allow_html=True) + def init_log(): """初始化日志配置""" from loguru import logger @@ -41,11 +43,11 @@ def init_log(): "torch.cuda.is_available()", "CUDA initialization" ] - + for msg in ignore_messages: if msg in record["message"]: return "" - + file_path = record["file"].path relative_path = os.path.relpath(file_path, config.root_dir) record["file"].path = f"./{relative_path}" @@ -74,6 +76,7 @@ def init_log(): filter=log_filter ) + def init_global_state(): """初始化全局状态""" if 'video_clip_json' not in st.session_state: @@ -85,6 +88,7 @@ def init_global_state(): if 'subclip_videos' not in st.session_state: st.session_state['subclip_videos'] = {} + def tr(key): """翻译函数""" i18n_dir = os.path.join(os.path.dirname(__file__), "webui", "i18n") @@ -92,13 +96,14 @@ def tr(key): loc = locales.get(st.session_state['ui_language'], {}) return loc.get("Translation", {}).get(key, key) + def render_generate_button(): """渲染生成按钮和处理逻辑""" if st.button(tr("Generate Video"), use_container_width=True, type="primary"): try: from app.services import task as tm import torch - + # 重置日志容器和记录 log_container = st.empty() log_records = [] @@ -152,7 +157,7 @@ def render_generate_button(): video_files = result.get("videos", []) st.success(tr("视生成完成")) - + try: if video_files: player_cols = st.columns(len(video_files) * 2 + 1) @@ -167,15 +172,16 @@ def render_generate_button(): finally: PerformanceMonitor.cleanup_resources() + def main(): """主函数""" init_log() init_global_state() utils.init_resources() - + st.title(f"NarratoAI :sunglasses:📽️") st.write(tr("Get Help")) - + # 渲染基础设置面板 basic_settings.render_basic_settings(tr) # 渲染合并设置 @@ -192,12 +198,13 @@ def main(): subtitle_settings.render_subtitle_panel(tr) # 渲染系统设置面板 system_settings.render_system_panel(tr) - + # 渲染视频审查面板 review_settings.render_review_panel(tr) - + # 渲染生成按钮和处理逻辑 render_generate_button() + if __name__ == "__main__": main() From c2711b97c784d1887302fbb99c1d3bb8c9b3bee8 Mon Sep 17 00:00:00 2001 From: linyq Date: Tue, 6 May 2025 21:53:01 +0800 Subject: [PATCH 03/31] =?UTF-8?q?refactor(app):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=90=88=E5=B9=B6=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了未使用的日志设置代码 - 替换 logging 为 loguru 库以简化日志记录 - 删除了多余的类型导入 - 移除了处理视频时不必要的日志信息 --- app/services/merger_video.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/app/services/merger_video.py b/app/services/merger_video.py index e900845..8dbc1f2 100644 --- a/app/services/merger_video.py +++ b/app/services/merger_video.py @@ -9,14 +9,11 @@ ''' import os -import subprocess -import logging -from enum import Enum -from typing import List, Optional, Tuple, Dict, Any import shutil - -# 设置日志 -logger = logging.getLogger(__name__) +import subprocess +from enum import Enum +from typing import List, Optional, Tuple +from loguru import logger class VideoAspect(Enum): @@ -221,7 +218,6 @@ def process_single_video( # 执行命令 try: - logger.info(f"处理视频 {input_path} -> {output_path}") subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) return output_path except subprocess.CalledProcessError as e: From 2ed627890f5405877b6c1ce4308b306a25b23828 Mon Sep 17 00:00:00 2001 From: linyq Date: Tue, 6 May 2025 22:22:20 +0800 Subject: [PATCH 04/31] =?UTF-8?q?feat(video):=20=E5=A2=9E=E5=8A=A04:3=20?= =?UTF-8?q?=E7=94=BB=E5=B9=85=E8=A7=86=E9=A2=91=E5=90=88=E5=B9=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 VideoAspect 枚举中添加 landscape_2 (4:3) 和 portrait_2 (3:4) 选项 - 更新 combine_clip_videos 函数,支持 4:3 画幅的视频合并 - 修改任务处理流程,使用新的 merger_video 模块进行视频合并 --- app/models/schema.py | 2 ++ app/services/merger_video.py | 12 +++++++++--- app/services/task.py | 8 ++++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/models/schema.py b/app/models/schema.py index 5e2e909..f10daef 100644 --- a/app/models/schema.py +++ b/app/models/schema.py @@ -20,7 +20,9 @@ class VideoConcatMode(str, Enum): class VideoAspect(str, Enum): landscape = "16:9" + landscape_2 = "4:3" portrait = "9:16" + portrait_2 = "3:4" square = "1:1" def to_resolution(self): diff --git a/app/services/merger_video.py b/app/services/merger_video.py index 8dbc1f2..7f8e590 100644 --- a/app/services/merger_video.py +++ b/app/services/merger_video.py @@ -18,16 +18,22 @@ from loguru import logger class VideoAspect(Enum): """视频宽高比枚举""" - portrait = "portrait" # 竖屏 9:16 - landscape = "landscape" # 横屏 16:9 - square = "square" # 方形 1:1 + landscape = "16:9" # 横屏 16:9 + landscape_2 = "4:3" + portrait = "9:16" # 竖屏 9:16 + portrait_2 = "3:4" + square = "1:1" # 方形 1:1 def to_resolution(self) -> Tuple[int, int]: """根据宽高比返回标准分辨率""" if self == VideoAspect.portrait: return 1080, 1920 # 竖屏 9:16 + elif self == VideoAspect.portrait_2: + return 720, 1280 # 竖屏 4:3 elif self == VideoAspect.landscape: return 1920, 1080 # 横屏 16:9 + elif self == VideoAspect.landscape_2: + return 1280, 720 # 横屏 4:3 elif self == VideoAspect.square: return 1080, 1080 # 方形 1:1 else: diff --git a/app/services/task.py b/app/services/task.py index 1f3e797..66a7761 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -9,7 +9,8 @@ from loguru import logger from app.config import config from app.models import const from app.models.schema import VideoConcatMode, VideoParams, VideoClipParams -from app.services import llm, material, subtitle, video, voice, audio_merger, subtitle_merger, clip_video +from app.services import (llm, material, subtitle, video, voice, audio_merger, + subtitle_merger, clip_video, merger_video) from app.services import state as sm from app.utils import utils @@ -292,11 +293,10 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di combined_video_path = path.join(utils.task_dir(task_id), f"merger.mp4") logger.info(f"\n\n## 5. 合并视频: => {combined_video_path}") - video.combine_clip_videos( - combined_video_path=combined_video_path, + merger_video.combine_clip_videos( + output_video_path=combined_video_path, video_paths=subclip_videos, video_ost_list=video_ost, - list_script=list_script, video_aspect=params.video_aspect, threads=params.n_threads # 多线程 ) From 5c4ff41274ea7a283687ae8fe418e2cf81254fc6 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 00:26:59 +0800 Subject: [PATCH 05/31] =?UTF-8?q?refactor(task):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A4=84=E7=90=86=E6=B5=81=E7=A8=8B=E5=B9=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新了音频合并逻辑,现在基于脚本中的 duration 字段 - 添加了视频裁剪步骤,根据音频长度调整视频 - 新增了 update_script 模块,用于更新脚本中的时间戳和持续时间 - 优化了任务处理流程,提高了代码可读性和可维护性 --- app/services/audio_merger.py | 102 +++++++++++++++----------- app/services/clip_video.py | 19 +++-- app/services/task.py | 84 ++++++++++----------- app/services/update_script.py | 134 ++++++++++++++++++++++++++++++++++ 4 files changed, 248 insertions(+), 91 deletions(-) create mode 100644 app/services/update_script.py diff --git a/app/services/audio_merger.py b/app/services/audio_merger.py index 73cab3b..510c6b7 100644 --- a/app/services/audio_merger.py +++ b/app/services/audio_merger.py @@ -18,15 +18,14 @@ def check_ffmpeg(): return False -def merge_audio_files(task_id: str, audio_files: list, total_duration: float, list_script: list): +def merge_audio_files(task_id: str, total_duration: float, list_script: list): """ - 合并音频文件,根据OST设置处理不同的音频轨道 + 合并音频文件 Args: task_id: 任务ID - audio_files: TTS生成的音频文件列表 total_duration: 总时长 - list_script: 完整脚本信息,包含OST设置 + list_script: 完整脚本信息,包含duration时长和audio路径 Returns: str: 合并后的音频文件路径 @@ -39,32 +38,34 @@ def merge_audio_files(task_id: str, audio_files: list, total_duration: float, li # 创建一个空的音频片段 final_audio = AudioSegment.silent(duration=total_duration * 1000) # 总时长以毫秒为单位 + # 计算每个片段的开始位置(基于duration字段) + current_position = 0 # 初始位置(秒) + # 遍历脚本中的每个片段 - for segment, audio_file in zip(list_script, audio_files): + for segment in list_script: try: - # 加载TTS音频文件 - tts_audio = AudioSegment.from_file(audio_file) - - # 获取片段的开始和结束时间 - start_time, end_time = segment['timestamp'].split('-') - start_seconds = utils.time_to_seconds(start_time) - end_seconds = utils.time_to_seconds(end_time) - - # 根据OST设置处理音频 - if segment['OST'] == 0: - # 只使用TTS音频 - final_audio = final_audio.overlay(tts_audio, position=start_seconds * 1000) - elif segment['OST'] == 1: - # 只使用原声(假设原声已经在视频中) - continue - elif segment['OST'] == 2: - # 混合TTS音频和原声 - original_audio = AudioSegment.silent(duration=(end_seconds - start_seconds) * 1000) - mixed_audio = original_audio.overlay(tts_audio) - final_audio = final_audio.overlay(mixed_audio, position=start_seconds * 1000) + # 获取片段时长(秒) + duration = segment['duration'] + + # 检查audio字段是否为空 + if segment['audio'] and os.path.exists(segment['audio']): + # 加载TTS音频文件 + tts_audio = AudioSegment.from_file(segment['audio']) + + # 将TTS音频添加到最终音频 + final_audio = final_audio.overlay(tts_audio, position=current_position * 1000) + else: + # audio为空,不添加音频,仅保留间隔 + logger.info(f"片段 {segment.get('timestamp', '')} 没有音频文件,保留 {duration} 秒的间隔") + + # 更新下一个片段的开始位置 + current_position += duration except Exception as e: - logger.error(f"处理音频文件 {audio_file} 时出错: {str(e)}") + logger.error(f"处理音频片段时出错: {str(e)}") + # 即使处理失败,也要更新位置,确保后续片段位置正确 + if 'duration' in segment: + current_position += segment['duration'] continue # 保存合并后的音频文件 @@ -93,7 +94,7 @@ def time_to_seconds(time_str): # 分割时间部分 parts = time_part.split(':') - + if len(parts) == 3: # HH:MM:SS h, m, s = map(int, parts) seconds = h * 3600 + m * 60 + s @@ -118,11 +119,11 @@ def extract_timestamp(filename): # 从文件名中提取时间部分 time_part = filename.split('_', 1)[1].split('.')[0] # 获取 "00_06,500-00_24,800" 部分 start_time, end_time = time_part.split('-') # 分割成开始和结束时间 - + # 将下划线格式转换回冒号格式 start_time = start_time.replace('_', ':') end_time = end_time.replace('_', ':') - + # 将时间戳转换为秒 start_seconds = time_to_seconds(start_time) end_seconds = time_to_seconds(end_time) @@ -135,17 +136,36 @@ def extract_timestamp(filename): if __name__ == "__main__": # 示例用法 - audio_files =[ - "/Users/apple/Desktop/home/NarratoAI/storage/tasks/test456/audio_00:06-00:24.mp3", - "/Users/apple/Desktop/home/NarratoAI/storage/tasks/test456/audio_00:32-00:38.mp3", - "/Users/apple/Desktop/home/NarratoAI/storage/tasks/test456/audio_00:43-00:52.mp3", - "/Users/apple/Desktop/home/NarratoAI/storage/tasks/test456/audio_00:52-01:09.mp3", - "/Users/apple/Desktop/home/NarratoAI/storage/tasks/test456/audio_01:13-01:15.mp3", - ] - total_duration = 38 - video_script_path = "/Users/apple/Desktop/home/NarratoAI/resource/scripts/test003.json" - with open(video_script_path, "r", encoding="utf-8") as f: - video_script = json.load(f) + total_duration = 90 - output_file = merge_audio_files("test456", audio_files, total_duration, video_script) + video_script = [ + {'picture': '【解说】好的,各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!', + 'timestamp': '00:00:00-00:00:26', + 'narration': '好的各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!上集片尾那个巨大的悬念,这一集就立刻揭晓了!范闲假死归来,他面临的第一个,也是最大的难关,就是如何面对他最敬爱的,同时也是最可怕的那个人——庆帝!', + 'OST': 0, 'duration': 26, + 'audio': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_00_00-00_01_15.mp3'}, + {'picture': '【解说】上一集我们看到,范闲在北齐遭遇了惊天变故,生死不明!', 'timestamp': '00:01:15-00:01:29', + 'narration': '但我们都知道,他绝不可能就这么轻易退场!第二集一开场,范闲就已经秘密回到了京都。他的生死传闻,可不像我们想象中那样只是小范围流传,而是…', + 'OST': 0, 'duration': 14, + 'audio': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_01_15-00_04_40.mp3'}, + {'picture': '画面切到王启年小心翼翼地向范闲汇报。', 'timestamp': '00:04:41-00:04:58', + 'narration': '我发现大人的死讯不光是在民间,在官场上也它传开了,所以呢,所以啊,可不是什么好事,将来您跟陛下怎么交代,这可是欺君之罪', + 'OST': 1, 'duration': 17, + 'audio': ''}, + {'picture': '【解说】"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。', + 'timestamp': '00:04:58-00:05:20', + 'narration': '"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。但范闲是谁啊?他偏要反其道而行之!他竟然决定,直接去见庆帝!冒着天大的风险,用"假死"这个事实去赌庆帝的态度!', + 'OST': 0, 'duration': 22, + 'audio': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_04_58-00_05_45.mp3'}, + {'picture': '【解说】但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', + 'timestamp': '00:05:45-00:05:53', + 'narration': '但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', + 'OST': 0, 'duration': 8, + 'audio': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_05_45-00_06_00.mp3'}, + {'picture': '画面切换到范闲蒙面闯入皇宫,被侍卫包围的场景。', 'timestamp': '00:06:00-00:06:03', + 'narration': '抓刺客', + 'OST': 1, 'duration': 3, + 'audio': ''}] + + output_file = merge_audio_files("test456", total_duration, video_script) print(output_file) diff --git a/app/services/clip_video.py b/app/services/clip_video.py index d5c591a..73b7456 100644 --- a/app/services/clip_video.py +++ b/app/services/clip_video.py @@ -12,14 +12,10 @@ import os import subprocess import json import hashlib -import logging +from loguru import logger from typing import Dict, List, Optional from pathlib import Path -# 配置日志 -logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') -logger = logging.getLogger(__name__) - def parse_timestamp(timestamp: str) -> tuple: """ @@ -174,7 +170,7 @@ def clip_video( # 执行FFmpeg命令 try: logger.info(f"裁剪视频片段: {timestamp} -> {start_time}到{calculated_end_time}") - logger.debug(f"执行命令: {' '.join(ffmpeg_cmd)}") + # logger.debug(f"执行命令: {' '.join(ffmpeg_cmd)}") process = subprocess.run( ffmpeg_cmd, @@ -185,7 +181,6 @@ def clip_video( ) result[timestamp] = output_path - logger.info(f"成功裁剪视频片段: {timestamp} -> {output_path}") except subprocess.CalledProcessError as e: logger.error(f"裁剪视频片段失败: {timestamp}") @@ -217,10 +212,18 @@ if __name__ == "__main__": 'audio_file': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_05_45-00_06_00.mp3', 'subtitle_file': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_05_45-00_06_00.srt', 'duration': 7.675, 'text': '但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!'}] + subclip_path_videos = { + '00:00:00-00:01:15': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-00-00-00-01-15.mp4', + '00:01:15-00:04:40': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-01-15-00-04-40.mp4', + '00:04:41-00:04:58': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-04-41-00-04-58.mp4', + '00:04:58-00:05:45': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-04-58-00-05-45.mp4', + '00:05:45-00:06:00': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-05-45-00-06-00.mp4', + '00:06:00-00:06:03': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-06-00-00-06-03.mp4', + } # 使用方法示例 try: - result = clip_video(video_origin_path, tts_result) + result = clip_video(video_origin_path, tts_result, subclip_path_videos) print("裁剪结果:") print(json.dumps(result, indent=4, ensure_ascii=False)) except Exception as e: diff --git a/app/services/task.py b/app/services/task.py index 66a7761..ae2ea29 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -10,7 +10,7 @@ from app.config import config from app.models import const from app.models.schema import VideoConcatMode, VideoParams, VideoClipParams from app.services import (llm, material, subtitle, video, voice, audio_merger, - subtitle_merger, clip_video, merger_video) + subtitle_merger, clip_video, merger_video, update_script) from app.services import state as sm from app.utils import utils @@ -193,11 +193,6 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di logger.debug(f"解说完整脚本: \n{video_script}") logger.debug(f"解说 OST 列表: \n{video_ost}") logger.debug(f"解说时间戳列表: \n{time_list}") - - # 获取视频总时长(单位 s) - last_timestamp = list_script[-1]['timestamp'].split("-")[1] - total_duration = utils.time_to_seconds(last_timestamp) - except Exception as e: logger.error(f"无法读取视频json脚本,请检查脚本格式是否正确") raise ValueError("无法读取视频json脚本,请检查脚本格式是否正确") @@ -224,19 +219,54 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di voice_pitch=params.voice_pitch, force_regenerate=True ) - audio_files = [ - tts_result["audio_file"] for tts_result in tts_results - ] + + sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=20) + + # """ + # 3. (可选) 使用 whisper 生成字幕 + # """ + # if merged_subtitle_path is None: + # if audio_files: + # merged_subtitle_path = path.join(utils.task_dir(task_id), f"subtitle.srt") + # subtitle_provider = config.app.get("subtitle_provider", "").strip().lower() + # logger.info(f"\n\n使用 {subtitle_provider} 生成字幕") + # + # subtitle.create( + # audio_file=merged_audio_path, + # subtitle_file=merged_subtitle_path, + # ) + # subtitle_lines = subtitle.file_to_subtitles(merged_subtitle_path) + # if not subtitle_lines: + # logger.warning(f"字幕文件无效: {merged_subtitle_path}") + # + # sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=40) + + """ + 3. 裁剪视频 - 将超出音频长度的视频进行裁剪 + """ + logger.info("\n\n## 3. 裁剪视频") + clip_result = clip_video.clip_video(params.video_origin_path, tts_results) + subclip_path_videos.update(clip_result) + # 更新 list_script 中的时间戳 + list_script = update_script.update_script_timestamps(list_script, clip_result) + subclip_videos = [x for x in subclip_path_videos.values()] + + sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=60) + + """ + 4. 合并音频和字幕 + """ + logger.info("\n\n## 4. 合并音频和字幕") + subtitle_files = [ tts_result["subtitle_file"] for tts_result in tts_results ] + total_duration = sum([script["duration"] for script in list_script]) if tts_results: - logger.info(f"合并音频/字幕文件") try: # 合并音频文件 merged_audio_path = audio_merger.merge_audio_files( task_id=task_id, - audio_files=audio_files, total_duration=total_duration, list_script=list_script # 传入完整脚本以便处理OST ) @@ -253,39 +283,9 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di else: logger.error("TTS转换音频失败, 可能是网络不可用! 如果您在中国, 请使用VPN.") return - sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=20) """ - 3. (可选) 使用 whisper 生成字幕 - """ - if merged_subtitle_path is None: - if audio_files: - merged_subtitle_path = path.join(utils.task_dir(task_id), f"subtitle.srt") - subtitle_provider = config.app.get("subtitle_provider", "").strip().lower() - logger.info(f"\n\n使用 {subtitle_provider} 生成字幕") - - subtitle.create( - audio_file=merged_audio_path, - subtitle_file=merged_subtitle_path, - ) - subtitle_lines = subtitle.file_to_subtitles(merged_subtitle_path) - if not subtitle_lines: - logger.warning(f"字幕文件无效: {merged_subtitle_path}") - - sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=40) - - """ - 4. 裁剪视频 - 将超出音频长度的视频进行裁剪 - """ - logger.info("\n\n## 4. 裁剪视频") - result = clip_video.clip_video(params.video_origin_path, tts_results) - subclip_path_videos.update(result) - subclip_videos = [x for x in subclip_path_videos.values()] - - sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=60) - - """ - 5. 合并视频 + 6. 合并视频 """ final_video_paths = [] combined_video_paths = [] diff --git a/app/services/update_script.py b/app/services/update_script.py new file mode 100644 index 0000000..5dd10a9 --- /dev/null +++ b/app/services/update_script.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +''' +@Project: NarratoAI +@File : update_script +@Author : 小林同学 +@Date : 2025/5/6 下午11:00 +''' + +import re +import os +from typing import Dict, List, Any, Tuple + + +def extract_timestamp_from_video_path(video_path: str) -> str: + """ + 从视频文件路径中提取时间戳 + + Args: + video_path: 视频文件路径 + + Returns: + 提取出的时间戳,格式为 'HH:MM:SS-HH:MM:SS' + """ + # 使用正则表达式从文件名中提取时间戳 + filename = os.path.basename(video_path) + match = re.search(r'vid-(\d{2}-\d{2}-\d{2})-(\d{2}-\d{2}-\d{2})\.mp4', filename) + + if match: + # 提取并格式化时间戳 + start_time = match.group(1).replace('-', ':') + end_time = match.group(2).replace('-', ':') + return f"{start_time}-{end_time}" + + return "" + + +def calculate_duration(timestamp: str) -> float: + """ + 计算时间戳范围的持续时间(秒) + + Args: + timestamp: 格式为 'HH:MM:SS-HH:MM:SS' 的时间戳 + + Returns: + 持续时间(秒) + """ + try: + start_time, end_time = timestamp.split('-') + + # 解析时间 + start_h, start_m, start_s = map(int, start_time.split(':')) + end_h, end_m, end_s = map(int, end_time.split(':')) + + # 转换为秒 + start_seconds = start_h * 3600 + start_m * 60 + start_s + end_seconds = end_h * 3600 + end_m * 60 + end_s + + # 计算时间差(秒) + return round(end_seconds - start_seconds, 2) + except (ValueError, AttributeError): + return 0.0 + + +def update_script_timestamps(script_list: List[Dict[str, Any]], tts_result: Dict[str, str]) -> List[Dict[str, Any]]: + """ + 根据 tts_res 中的视频文件更新 list_script 中的时间戳,并添加持续时间 + + Args: + script_list: 原始脚本列表 + tts_result: TTS 结果字典,键为原时间戳,值为视频文件路径 + + Returns: + 更新后的脚本列表 + """ + # 创建副本,避免修改原始数据 + updated_script = [] + + # 建立原始时间戳到新时间戳的映射 + timestamp_mapping = {} + for orig_timestamp, video_path in tts_result.items(): + new_timestamp = extract_timestamp_from_video_path(video_path) + if new_timestamp: + timestamp_mapping[orig_timestamp] = new_timestamp + + # 更新脚本中的时间戳 + for item in script_list: + item_copy = item.copy() + if item_copy.get('timestamp') in timestamp_mapping: + # 更新时间戳 + new_timestamp = timestamp_mapping[item_copy['timestamp']] + item_copy['timestamp'] = new_timestamp + + # 计算并添加持续时间 + item_copy['duration'] = calculate_duration(new_timestamp) + elif 'timestamp' in item_copy: + # 对于未更新的时间戳,也计算并添加持续时间 + item_copy['duration'] = calculate_duration(item_copy['timestamp']) + + updated_script.append(item_copy) + + return updated_script + + +if __name__ == '__main__': + list_script = [ + {'picture': '【解说】好的,各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!', + 'timestamp': '00:00:00-00:01:15', + 'narration': '好的各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!上集片尾那个巨大的悬念,这一集就立刻揭晓了!范闲假死归来,他面临的第一个,也是最大的难关,就是如何面对他最敬爱的,同时也是最可怕的那个人——庆帝!', + 'OST': 0}, + {'picture': '【解说】上一集我们看到,范闲在北齐遭遇了惊天变故,生死不明!', 'timestamp': '00:01:15-00:04:40', + 'narration': '但我们都知道,他绝不可能就这么轻易退场!第二集一开场,范闲就已经秘密回到了京都。他的生死传闻,可不像我们想象中那样只是小范围流传,而是…', + 'OST': 0}, {'picture': '画面切到王启年小心翼翼地向范闲汇报。', 'timestamp': '00:04:41-00:04:58', + 'narration': '我发现大人的死讯不光是在民间,在官场上也它传开了,所以呢,所以啊,可不是什么好事,将来您跟陛下怎么交代,这可是欺君之罪', + 'OST': 1}, + {'picture': '【解说】"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。', + 'timestamp': '00:04:58-00:05:45', + 'narration': '"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。但范闲是谁啊?他偏要反其道而行之!他竟然决定,直接去见庆帝!冒着天大的风险,用"假死"这个事实去赌庆帝的态度!', + 'OST': 0}, {'picture': '【解说】但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', + 'timestamp': '00:05:45-00:06:00', + 'narration': '但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', 'OST': 0}, + {'picture': '画面切换到范闲蒙面闯入皇宫,被侍卫包围的场景。', 'timestamp': '00:06:00-00:06:03', + 'narration': '抓刺客', 'OST': 1}] + tts_res = { + '00:00:00-00:01:15': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-00-00-00-00-26.mp4', + '00:01:15-00:04:40': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-01-15-00-01-29.mp4', + '00:04:58-00:05:45': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-04-58-00-05-20.mp4', + '00:05:45-00:06:00': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-05-45-00-05-53.mp4'} + + # 更新并打印结果 + updated_list_script = update_script_timestamps(list_script, tts_res) + for item in updated_list_script: + print(f"Picture: {item['picture'][:20]}... | Timestamp: {item['timestamp']} | Duration: {item['duration']} 秒") From 8b5ff0658b17a6f5d8a5f8dc460cb7431b186916 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 00:59:07 +0800 Subject: [PATCH 06/31] =?UTF-8?q?feat(task):=20=E4=BC=98=E5=8C=96=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E6=97=B6=E9=97=B4=E6=88=B3=E6=9B=B4=E6=96=B0=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=B9=B6=E6=B7=BB=E5=8A=A0=E9=9F=B3=E9=A2=91=E8=B7=AF?= =?UTF-8?q?=E5=BE=84-=20=E4=BF=AE=E6=94=B9=20update=5Fscript=5Ftimestamps?= =?UTF-8?q?=20=E5=87=BD=E6=95=B0=EF=BC=8C=E6=94=AF=E6=8C=81=E5=90=8C?= =?UTF-8?q?=E6=97=B6=E6=9B=B4=E6=96=B0=E8=A7=86=E9=A2=91=E5=92=8C=E9=9F=B3?= =?UTF-8?q?=E9=A2=91=E8=B7=AF=E5=BE=84=20-=20=E5=9C=A8=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=A4=84=E7=90=86=E6=B5=81=E7=A8=8B=E4=B8=AD=E7=94=9F=E6=88=90?= =?UTF-8?q?=20tts=5Fclip=5Fresult=20=E5=AD=97=E5=85=B8=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E6=9B=B4=E6=96=B0=E8=84=9A=E6=9C=AC=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E9=9F=B3=E9=A2=91=E8=B7=AF=E5=BE=84=20-=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E5=88=97=E8=A1=A8=E7=9A=84=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E7=A1=AE=E4=BF=9D=E6=89=80=E6=9C=89?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=88=B3=E9=83=BD=E8=AE=A1=E7=AE=97=E6=8C=81?= =?UTF-8?q?=E7=BB=AD=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/task.py | 4 +- app/services/update_script.py | 69 ++++++++++++++++++++++------------- 2 files changed, 45 insertions(+), 28 deletions(-) diff --git a/app/services/task.py b/app/services/task.py index ae2ea29..42853f2 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -248,7 +248,8 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di clip_result = clip_video.clip_video(params.video_origin_path, tts_results) subclip_path_videos.update(clip_result) # 更新 list_script 中的时间戳 - list_script = update_script.update_script_timestamps(list_script, clip_result) + tts_clip_result = {tts_result['timestamp']: tts_result['audio_file'] for tts_result in tts_results} + list_script = update_script.update_script_timestamps(list_script, clip_result, tts_clip_result) subclip_videos = [x for x in subclip_path_videos.values()] sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=60) @@ -257,7 +258,6 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di 4. 合并音频和字幕 """ logger.info("\n\n## 4. 合并音频和字幕") - subtitle_files = [ tts_result["subtitle_file"] for tts_result in tts_results ] diff --git a/app/services/update_script.py b/app/services/update_script.py index 5dd10a9..3213b6d 100644 --- a/app/services/update_script.py +++ b/app/services/update_script.py @@ -26,13 +26,13 @@ def extract_timestamp_from_video_path(video_path: str) -> str: # 使用正则表达式从文件名中提取时间戳 filename = os.path.basename(video_path) match = re.search(r'vid-(\d{2}-\d{2}-\d{2})-(\d{2}-\d{2}-\d{2})\.mp4', filename) - + if match: # 提取并格式化时间戳 start_time = match.group(1).replace('-', ':') end_time = match.group(2).replace('-', ':') return f"{start_time}-{end_time}" - + return "" @@ -48,58 +48,69 @@ def calculate_duration(timestamp: str) -> float: """ try: start_time, end_time = timestamp.split('-') - + # 解析时间 start_h, start_m, start_s = map(int, start_time.split(':')) end_h, end_m, end_s = map(int, end_time.split(':')) - + # 转换为秒 start_seconds = start_h * 3600 + start_m * 60 + start_s end_seconds = end_h * 3600 + end_m * 60 + end_s - + # 计算时间差(秒) return round(end_seconds - start_seconds, 2) except (ValueError, AttributeError): return 0.0 -def update_script_timestamps(script_list: List[Dict[str, Any]], tts_result: Dict[str, str]) -> List[Dict[str, Any]]: +def update_script_timestamps(script_list: List[Dict[str, Any]], video_result: Dict[str, str], audio_result: Dict[str, str] = None) -> List[Dict[str, Any]]: """ - 根据 tts_res 中的视频文件更新 list_script 中的时间戳,并添加持续时间 + 根据 video_result 中的视频文件更新 script_list 中的时间戳,添加持续时间,并根据 audio_result 添加音频路径 Args: script_list: 原始脚本列表 - tts_result: TTS 结果字典,键为原时间戳,值为视频文件路径 + video_result: 视频结果字典,键为原时间戳,值为视频文件路径 + audio_result: 音频结果字典,键为原时间戳,值为音频文件路径 Returns: 更新后的脚本列表 """ # 创建副本,避免修改原始数据 updated_script = [] - - # 建立原始时间戳到新时间戳的映射 + + # 建立原始时间戳到视频路径和新时间戳的映射 timestamp_mapping = {} - for orig_timestamp, video_path in tts_result.items(): + for orig_timestamp, video_path in video_result.items(): new_timestamp = extract_timestamp_from_video_path(video_path) if new_timestamp: - timestamp_mapping[orig_timestamp] = new_timestamp - + timestamp_mapping[orig_timestamp] = { + 'new_timestamp': new_timestamp, + 'video_path': video_path + } + # 更新脚本中的时间戳 for item in script_list: item_copy = item.copy() - if item_copy.get('timestamp') in timestamp_mapping: + orig_timestamp = item_copy.get('timestamp', '') + + # 初始化音频路径为空字符串 + item_copy['audio'] = "" + + # 如果提供了音频结果字典且时间戳存在于音频结果中,直接使用对应的音频路径 + if audio_result and orig_timestamp in audio_result: + item_copy['audio'] = audio_result[orig_timestamp] + + if orig_timestamp in timestamp_mapping: # 更新时间戳 - new_timestamp = timestamp_mapping[item_copy['timestamp']] - item_copy['timestamp'] = new_timestamp - - # 计算并添加持续时间 - item_copy['duration'] = calculate_duration(new_timestamp) - elif 'timestamp' in item_copy: - # 对于未更新的时间戳,也计算并添加持续时间 + item_copy['timestamp'] = timestamp_mapping[orig_timestamp]['new_timestamp'] + # 计算持续时间 item_copy['duration'] = calculate_duration(item_copy['timestamp']) - + elif orig_timestamp: + # 对于未更新的时间戳,也计算并添加持续时间 + item_copy['duration'] = calculate_duration(orig_timestamp) + updated_script.append(item_copy) - + return updated_script @@ -122,13 +133,19 @@ if __name__ == '__main__': 'narration': '但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', 'OST': 0}, {'picture': '画面切换到范闲蒙面闯入皇宫,被侍卫包围的场景。', 'timestamp': '00:06:00-00:06:03', 'narration': '抓刺客', 'OST': 1}] - tts_res = { + video_res = { '00:00:00-00:01:15': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-00-00-00-00-26.mp4', '00:01:15-00:04:40': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-01-15-00-01-29.mp4', '00:04:58-00:05:45': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-04-58-00-05-20.mp4', '00:05:45-00:06:00': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-05-45-00-05-53.mp4'} + audio_res = { + '00:00:00-00:01:15': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_00_00-00_01_15.mp3', + '00:01:15-00:04:40': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_01_15-00_04_40.mp3', + '00:04:58-00:05:45': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_04_58-00_05_45.mp3', + '00:05:45-00:06:00': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_05_45-00_06_00.mp3'} # 更新并打印结果 - updated_list_script = update_script_timestamps(list_script, tts_res) + updated_list_script = update_script_timestamps(list_script, video_res, audio_res) for item in updated_list_script: - print(f"Picture: {item['picture'][:20]}... | Timestamp: {item['timestamp']} | Duration: {item['duration']} 秒") + print( + f"Picture: {item['picture'][:20]}... | Timestamp: {item['timestamp']} | Duration: {item['duration']} 秒 | Audio: {item['audio']}") From aaea6d913cc88da108b405044535cb294938a979 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 11:00:22 +0800 Subject: [PATCH 07/31] =?UTF-8?q?refactor(task):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A4=84=E7=90=86=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改音频合并文件名 - 优化视频裁剪结果处理 - 更新脚本处理逻辑,支持字幕路径 - 调整 TTS 多重处理函数,移除未使用的参数 --- app/services/audio_merger.py | 2 +- app/services/clip_video.py | 3 +- app/services/task.py | 26 +++---- app/services/update_script.py | 141 +++++++++++++++++++++++----------- app/services/voice.py | 15 +--- 5 files changed, 115 insertions(+), 72 deletions(-) diff --git a/app/services/audio_merger.py b/app/services/audio_merger.py index 510c6b7..bedb585 100644 --- a/app/services/audio_merger.py +++ b/app/services/audio_merger.py @@ -69,7 +69,7 @@ def merge_audio_files(task_id: str, total_duration: float, list_script: list): continue # 保存合并后的音频文件 - output_audio_path = os.path.join(utils.task_dir(task_id), "final_audio.mp3") + output_audio_path = os.path.join(utils.task_dir(task_id), "merger_audio.mp3") final_audio.export(output_audio_path, format="mp3") logger.info(f"合并后的音频文件已保存: {output_audio_path}") diff --git a/app/services/clip_video.py b/app/services/clip_video.py index 73b7456..c10faf4 100644 --- a/app/services/clip_video.py +++ b/app/services/clip_video.py @@ -144,6 +144,7 @@ def clip_video( result = {} for item in tts_result: + _id = item["_id"] timestamp = item["timestamp"] start_time, _ = parse_timestamp(timestamp) @@ -180,7 +181,7 @@ def clip_video( check=True ) - result[timestamp] = output_path + result[_id] = output_path except subprocess.CalledProcessError as e: logger.error(f"裁剪视频片段失败: {timestamp}") diff --git a/app/services/task.py b/app/services/task.py index 42853f2..640d821 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -217,7 +217,6 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di voice_name=params.voice_name, voice_rate=params.voice_rate, voice_pitch=params.voice_pitch, - force_regenerate=True ) sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=20) @@ -245,12 +244,13 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di 3. 裁剪视频 - 将超出音频长度的视频进行裁剪 """ logger.info("\n\n## 3. 裁剪视频") - clip_result = clip_video.clip_video(params.video_origin_path, tts_results) - subclip_path_videos.update(clip_result) + video_clip_result = clip_video.clip_video(params.video_origin_path, tts_results) # 更新 list_script 中的时间戳 - tts_clip_result = {tts_result['timestamp']: tts_result['audio_file'] for tts_result in tts_results} - list_script = update_script.update_script_timestamps(list_script, clip_result, tts_clip_result) - subclip_videos = [x for x in subclip_path_videos.values()] + tts_clip_result = {tts_result['_id']: tts_result['audio_file'] for tts_result in tts_results} + subclip_clip_result = { + tts_result['_id']: tts_result['subtitle_file'] for tts_result in tts_results + } + list_script = update_script.update_script_timestamps(list_script, video_clip_result, tts_clip_result, subclip_clip_result) sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=60) @@ -268,14 +268,14 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di merged_audio_path = audio_merger.merge_audio_files( task_id=task_id, total_duration=total_duration, - list_script=list_script # 传入完整脚本以便处理OST + list_script=list_script ) logger.info(f"音频文件合并成功->{merged_audio_path}") - # 合并字幕文件 - merged_subtitle_path = subtitle_merger.merge_subtitle_files( - subtitle_files=subtitle_files, - ) - logger.info(f"字幕文件合并成功->{merged_subtitle_path}") + # # 合并字幕文件 + # merged_subtitle_path = subtitle_merger.merge_subtitle_files( + # subtitle_files=subtitle_files, + # ) + # logger.info(f"字幕文件合并成功->{merged_subtitle_path}") except Exception as e: logger.error(f"合并音频文件失败: {str(e)}") merged_audio_path = "" @@ -285,7 +285,7 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di return """ - 6. 合并视频 + 5. 合并视频 """ final_video_paths = [] combined_video_paths = [] diff --git a/app/services/update_script.py b/app/services/update_script.py index 3213b6d..7083a23 100644 --- a/app/services/update_script.py +++ b/app/services/update_script.py @@ -10,7 +10,7 @@ import re import os -from typing import Dict, List, Any, Tuple +from typing import Dict, List, Any, Tuple, Union def extract_timestamp_from_video_path(video_path: str) -> str: @@ -63,14 +63,21 @@ def calculate_duration(timestamp: str) -> float: return 0.0 -def update_script_timestamps(script_list: List[Dict[str, Any]], video_result: Dict[str, str], audio_result: Dict[str, str] = None) -> List[Dict[str, Any]]: +def update_script_timestamps( + script_list: List[Dict[str, Any]], + video_result: Dict[Union[str, int], str], + audio_result: Dict[Union[str, int], str] = None, + subtitle_result: Dict[Union[str, int], str] = None +) -> List[Dict[str, Any]]: """ - 根据 video_result 中的视频文件更新 script_list 中的时间戳,添加持续时间,并根据 audio_result 添加音频路径 + 根据 video_result 中的视频文件更新 script_list 中的时间戳,添加持续时间, + 并根据 audio_result 添加音频路径,根据 subtitle_result 添加字幕路径 Args: script_list: 原始脚本列表 - video_result: 视频结果字典,键为原时间戳,值为视频文件路径 - audio_result: 音频结果字典,键为原时间戳,值为音频文件路径 + video_result: 视频结果字典,键为原时间戳或_id,值为视频文件路径 + audio_result: 音频结果字典,键为原时间戳或_id,值为音频文件路径 + subtitle_result: 字幕结果字典,键为原时间戳或_id,值为字幕文件路径 Returns: 更新后的脚本列表 @@ -78,12 +85,12 @@ def update_script_timestamps(script_list: List[Dict[str, Any]], video_result: Di # 创建副本,避免修改原始数据 updated_script = [] - # 建立原始时间戳到视频路径和新时间戳的映射 - timestamp_mapping = {} - for orig_timestamp, video_path in video_result.items(): + # 建立ID和时间戳到视频路径和新时间戳的映射 + id_timestamp_mapping = {} + for key, video_path in video_result.items(): new_timestamp = extract_timestamp_from_video_path(video_path) if new_timestamp: - timestamp_mapping[orig_timestamp] = { + id_timestamp_mapping[key] = { 'new_timestamp': new_timestamp, 'video_path': video_path } @@ -91,19 +98,35 @@ def update_script_timestamps(script_list: List[Dict[str, Any]], video_result: Di # 更新脚本中的时间戳 for item in script_list: item_copy = item.copy() + item_id = item_copy.get('_id') orig_timestamp = item_copy.get('timestamp', '') - # 初始化音频路径为空字符串 + # 初始化音频和字幕路径为空字符串 item_copy['audio'] = "" + item_copy['subtitle'] = "" - # 如果提供了音频结果字典且时间戳存在于音频结果中,直接使用对应的音频路径 - if audio_result and orig_timestamp in audio_result: - item_copy['audio'] = audio_result[orig_timestamp] + # 如果提供了音频结果字典且ID存在于音频结果中,直接使用对应的音频路径 + if audio_result: + if item_id and item_id in audio_result: + item_copy['audio'] = audio_result[item_id] + elif orig_timestamp in audio_result: + item_copy['audio'] = audio_result[orig_timestamp] - if orig_timestamp in timestamp_mapping: - # 更新时间戳 - item_copy['timestamp'] = timestamp_mapping[orig_timestamp]['new_timestamp'] - # 计算持续时间 + # 如果提供了字幕结果字典且ID存在于字幕结果中,直接使用对应的字幕路径 + if subtitle_result: + if item_id and item_id in subtitle_result: + item_copy['subtitle'] = subtitle_result[item_id] + elif orig_timestamp in subtitle_result: + item_copy['subtitle'] = subtitle_result[orig_timestamp] + + # 更新时间戳和计算持续时间 + if item_id and item_id in id_timestamp_mapping: + # 根据ID找到对应的新时间戳 + item_copy['timestamp'] = id_timestamp_mapping[item_id]['new_timestamp'] + item_copy['duration'] = calculate_duration(item_copy['timestamp']) + elif orig_timestamp in id_timestamp_mapping: + # 根据原始时间戳找到对应的新时间戳 + item_copy['timestamp'] = id_timestamp_mapping[orig_timestamp]['new_timestamp'] item_copy['duration'] = calculate_duration(item_copy['timestamp']) elif orig_timestamp: # 对于未更新的时间戳,也计算并添加持续时间 @@ -116,36 +139,66 @@ def update_script_timestamps(script_list: List[Dict[str, Any]], video_result: Di if __name__ == '__main__': list_script = [ - {'picture': '【解说】好的,各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!', - 'timestamp': '00:00:00-00:01:15', - 'narration': '好的各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!上集片尾那个巨大的悬念,这一集就立刻揭晓了!范闲假死归来,他面临的第一个,也是最大的难关,就是如何面对他最敬爱的,同时也是最可怕的那个人——庆帝!', - 'OST': 0}, - {'picture': '【解说】上一集我们看到,范闲在北齐遭遇了惊天变故,生死不明!', 'timestamp': '00:01:15-00:04:40', - 'narration': '但我们都知道,他绝不可能就这么轻易退场!第二集一开场,范闲就已经秘密回到了京都。他的生死传闻,可不像我们想象中那样只是小范围流传,而是…', - 'OST': 0}, {'picture': '画面切到王启年小心翼翼地向范闲汇报。', 'timestamp': '00:04:41-00:04:58', - 'narration': '我发现大人的死讯不光是在民间,在官场上也它传开了,所以呢,所以啊,可不是什么好事,将来您跟陛下怎么交代,这可是欺君之罪', - 'OST': 1}, - {'picture': '【解说】"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。', - 'timestamp': '00:04:58-00:05:45', - 'narration': '"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。但范闲是谁啊?他偏要反其道而行之!他竟然决定,直接去见庆帝!冒着天大的风险,用"假死"这个事实去赌庆帝的态度!', - 'OST': 0}, {'picture': '【解说】但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', - 'timestamp': '00:05:45-00:06:00', - 'narration': '但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', 'OST': 0}, - {'picture': '画面切换到范闲蒙面闯入皇宫,被侍卫包围的场景。', 'timestamp': '00:06:00-00:06:03', - 'narration': '抓刺客', 'OST': 1}] + { + 'picture': '【解说】好的,各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!', + 'timestamp': '00:00:00-00:01:15', + 'narration': '好的各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!上集片尾那个巨大的悬念,这一集就立刻揭晓了!范闲假死归来,他面临的第一个,也是最大的难关,就是如何面对他最敬爱的,同时也是最可怕的那个人——庆帝!', + 'OST': 0, + '_id': 1 + }, + { + 'picture': '【解说】上一集我们看到,范闲在北齐遭遇了惊天变故,生死不明!', + 'timestamp': '00:01:15-00:04:40', + 'narration': '但我们都知道,他绝不可能就这么轻易退场!第二集一开场,范闲就已经秘密回到了京都。他的生死传闻,可不像我们想象中那样只是小范围流传,而是…', + 'OST': 0, + '_id': 2 + }, + { + 'picture': '画面切到王启年小心翼翼地向范闲汇报。', + 'timestamp': '00:04:41-00:04:58', + 'narration': '我发现大人的死讯不光是在民间,在官场上也它传开了,所以呢,所以啊,可不是什么好事,将来您跟陛下怎么交代,这可是欺君之罪', + 'OST': 1, + '_id': 3 + }, + { + 'picture': '【解说】"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。', + 'timestamp': '00:04:58-00:05:45', + 'narration': '"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。但范闲是谁啊?他偏要反其道而行之!他竟然决定,直接去见庆帝!冒着天大的风险,用"假死"这个事实去赌庆帝的态度!', + 'OST': 0, + '_id': 4 + }, + { + 'picture': '【解说】但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', + 'timestamp': '00:05:45-00:06:00', + 'narration': '但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', + 'OST': 0, + '_id': 5 + }, + { + 'picture': '画面切换到范闲蒙面闯入皇宫,被侍卫包围的场景。', + 'timestamp': '00:06:00-00:06:03', + 'narration': '抓刺客', + 'OST': 1, + '_id': 6 + }] video_res = { - '00:00:00-00:01:15': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-00-00-00-00-26.mp4', - '00:01:15-00:04:40': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-01-15-00-01-29.mp4', - '00:04:58-00:05:45': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-04-58-00-05-20.mp4', - '00:05:45-00:06:00': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/0ac14d474144b54d614c26a5c87cffe7/vid-00-05-45-00-05-53.mp4'} + 1: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/2c0c2ae91b4f58596634a0b2f64d3eb0/vid-00-00-00-00-00-26.mp4', + 2: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/2c0c2ae91b4f58596634a0b2f64d3eb0/vid-00-01-15-00-01-29.mp4', + 4: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/2c0c2ae91b4f58596634a0b2f64d3eb0/vid-00-04-58-00-05-20.mp4', + 5: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/2c0c2ae91b4f58596634a0b2f64d3eb0/vid-00-05-45-00-05-53.mp4'} audio_res = { - '00:00:00-00:01:15': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_00_00-00_01_15.mp3', - '00:01:15-00:04:40': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_01_15-00_04_40.mp3', - '00:04:58-00:05:45': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_04_58-00_05_45.mp3', - '00:05:45-00:06:00': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_05_45-00_06_00.mp3'} + 1: '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_00_00-00_01_15.mp3', + 2: '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_01_15-00_04_40.mp3', + 4: '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_04_58-00_05_45.mp3', + 5: '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_05_45-00_06_00.mp3'} + sub_res = { + 1: '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_00_00-00_01_15.srt', + 2: '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_01_15-00_04_40.srt', + 4: '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_04_58-00_05_45.srt', + 5: '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_05_45-00_06_00.srt'} # 更新并打印结果 - updated_list_script = update_script_timestamps(list_script, video_res, audio_res) + updated_list_script = update_script_timestamps(list_script, video_res, audio_res, sub_res) for item in updated_list_script: print( - f"Picture: {item['picture'][:20]}... | Timestamp: {item['timestamp']} | Duration: {item['duration']} 秒 | Audio: {item['audio']}") + f"ID: {item['_id']} | Picture: {item['picture'][:20]}... | Timestamp: {item['timestamp']} | Duration: {item['duration']} 秒 | Audio: {item['audio']} | Subtitle: {item['subtitle']}") diff --git a/app/services/voice.py b/app/services/voice.py index f5570e4..48197a8 100644 --- a/app/services/voice.py +++ b/app/services/voice.py @@ -1411,7 +1411,7 @@ def get_audio_duration(sub_maker: submaker.SubMaker): return sub_maker.offset[-1][1] / 10000000 -def tts_multiple(task_id: str, list_script: list, voice_name: str, voice_rate: float, voice_pitch: float, force_regenerate: bool = True): +def tts_multiple(task_id: str, list_script: list, voice_name: str, voice_rate: float, voice_pitch: float): """ 根据JSON文件中的多段文本进行TTS转换 @@ -1419,7 +1419,6 @@ def tts_multiple(task_id: str, list_script: list, voice_name: str, voice_rate: f :param list_script: 脚本列表 :param voice_name: 语音名称 :param voice_rate: 语音速率 - :param force_regenerate: 是否强制重新生成已存在的音频文件 :return: 生成的音频文件列表 """ voice_name = parse_voice_name(voice_name) @@ -1427,22 +1426,11 @@ def tts_multiple(task_id: str, list_script: list, voice_name: str, voice_rate: f tts_results = [] for item in list_script: - tts_item = { - "audio_file": "", - "subtitle_file": "", - "duration": 0, - } if item['OST'] != 1: # 将时间戳中的冒号替换为下划线 timestamp = item['timestamp'].replace(':', '_') audio_file = os.path.join(output_dir, f"audio_{timestamp}.mp3") subtitle_file = os.path.join(output_dir, f"subtitle_{timestamp}.srt") - - # # 检查文件是否已存在,如存在且不强制重新生成,则跳过 - # if os.path.exists(audio_file) and not force_regenerate: - # logger.info(f"音频文件已存在,跳过生成: {audio_file}") - # tts_item["audio_file"] = audio_file - # continue text = item['narration'] @@ -1464,6 +1452,7 @@ def tts_multiple(task_id: str, list_script: list, voice_name: str, voice_rate: f _, duration = create_subtitle(sub_maker=sub_maker, text=text, subtitle_file=subtitle_file) tts_results.append({ + "_id": item['_id'], "timestamp": item['timestamp'], "audio_file": audio_file, "subtitle_file": subtitle_file, From ecab257b75f7492066eb597624923bec25383d29 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 11:05:43 +0800 Subject: [PATCH 08/31] =?UTF-8?q?refactor(task):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A4=84=E7=90=86=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改音频合并文件名 - 优化视频裁剪结果处理 - 更新脚本处理逻辑,支持字幕路径 - 调整 TTS 多重处理函数,移除未使用的参数 --- app/services/update_script.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/services/update_script.py b/app/services/update_script.py index 7083a23..4e7b59a 100644 --- a/app/services/update_script.py +++ b/app/services/update_script.py @@ -122,14 +122,15 @@ def update_script_timestamps( # 更新时间戳和计算持续时间 if item_id and item_id in id_timestamp_mapping: # 根据ID找到对应的新时间戳 - item_copy['timestamp'] = id_timestamp_mapping[item_id]['new_timestamp'] - item_copy['duration'] = calculate_duration(item_copy['timestamp']) + item_copy['sourceTimeRange'] = id_timestamp_mapping[item_id]['new_timestamp'] + item_copy['duration'] = calculate_duration(item_copy['sourceTimeRange']) elif orig_timestamp in id_timestamp_mapping: # 根据原始时间戳找到对应的新时间戳 - item_copy['timestamp'] = id_timestamp_mapping[orig_timestamp]['new_timestamp'] - item_copy['duration'] = calculate_duration(item_copy['timestamp']) + item_copy['sourceTimeRange'] = id_timestamp_mapping[orig_timestamp]['new_timestamp'] + item_copy['duration'] = calculate_duration(item_copy['sourceTimeRange']) elif orig_timestamp: # 对于未更新的时间戳,也计算并添加持续时间 + item_copy['sourceTimeRange'] = orig_timestamp item_copy['duration'] = calculate_duration(orig_timestamp) updated_script.append(item_copy) @@ -201,4 +202,4 @@ if __name__ == '__main__': updated_list_script = update_script_timestamps(list_script, video_res, audio_res, sub_res) for item in updated_list_script: print( - f"ID: {item['_id']} | Picture: {item['picture'][:20]}... | Timestamp: {item['timestamp']} | Duration: {item['duration']} 秒 | Audio: {item['audio']} | Subtitle: {item['subtitle']}") + f"ID: {item['_id']} | Picture: {item['picture'][:20]}... | Timestamp: {item['timestamp']} | SourceTimeRange: {item['sourceTimeRange']} | Duration: {item['duration']} 秒 | Audio: {item['audio']} | Subtitle: {item['subtitle']}") From fcf568963acbf155ad9c25e0db2a0e416e0fc363 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 11:09:21 +0800 Subject: [PATCH 09/31] =?UTF-8?q?feat(update=5Fscript):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=88=90=E5=93=81=E8=A7=86=E9=A2=91=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E8=8C=83=E5=9B=B4=E8=AE=A1=E7=AE=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 update_script_timestamps 函数中添加 calculate_edited_timerange 参数 - 实现成品视频时间范围的计算并添加到脚本列表中 - 修改输出格式,增加 EditedTimeRange 字段 --- app/services/update_script.py | 40 ++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/app/services/update_script.py b/app/services/update_script.py index 4e7b59a..30f0082 100644 --- a/app/services/update_script.py +++ b/app/services/update_script.py @@ -67,7 +67,8 @@ def update_script_timestamps( script_list: List[Dict[str, Any]], video_result: Dict[Union[str, int], str], audio_result: Dict[Union[str, int], str] = None, - subtitle_result: Dict[Union[str, int], str] = None + subtitle_result: Dict[Union[str, int], str] = None, + calculate_edited_timerange: bool = True ) -> List[Dict[str, Any]]: """ 根据 video_result 中的视频文件更新 script_list 中的时间戳,添加持续时间, @@ -78,6 +79,7 @@ def update_script_timestamps( video_result: 视频结果字典,键为原时间戳或_id,值为视频文件路径 audio_result: 音频结果字典,键为原时间戳或_id,值为音频文件路径 subtitle_result: 字幕结果字典,键为原时间戳或_id,值为字幕文件路径 + calculate_edited_timerange: 是否计算并添加成品视频中的时间范围 Returns: 更新后的脚本列表 @@ -95,6 +97,9 @@ def update_script_timestamps( 'video_path': video_path } + # 计算累积时长,用于生成成品视频中的时间范围 + accumulated_duration = 0.0 + # 更新脚本中的时间戳 for item in script_list: item_copy = item.copy() @@ -120,18 +125,41 @@ def update_script_timestamps( item_copy['subtitle'] = subtitle_result[orig_timestamp] # 更新时间戳和计算持续时间 + current_duration = 0.0 if item_id and item_id in id_timestamp_mapping: # 根据ID找到对应的新时间戳 item_copy['sourceTimeRange'] = id_timestamp_mapping[item_id]['new_timestamp'] - item_copy['duration'] = calculate_duration(item_copy['sourceTimeRange']) + current_duration = calculate_duration(item_copy['sourceTimeRange']) + item_copy['duration'] = current_duration elif orig_timestamp in id_timestamp_mapping: # 根据原始时间戳找到对应的新时间戳 item_copy['sourceTimeRange'] = id_timestamp_mapping[orig_timestamp]['new_timestamp'] - item_copy['duration'] = calculate_duration(item_copy['sourceTimeRange']) + current_duration = calculate_duration(item_copy['sourceTimeRange']) + item_copy['duration'] = current_duration elif orig_timestamp: # 对于未更新的时间戳,也计算并添加持续时间 item_copy['sourceTimeRange'] = orig_timestamp - item_copy['duration'] = calculate_duration(orig_timestamp) + current_duration = calculate_duration(orig_timestamp) + item_copy['duration'] = current_duration + + # 计算片段在成品视频中的时间范围 + if calculate_edited_timerange and current_duration > 0: + start_time_seconds = accumulated_duration + end_time_seconds = accumulated_duration + current_duration + + # 将秒数转换为 HH:MM:SS 格式 + start_h = int(start_time_seconds // 3600) + start_m = int((start_time_seconds % 3600) // 60) + start_s = int(start_time_seconds % 60) + + end_h = int(end_time_seconds // 3600) + end_m = int((end_time_seconds % 3600) // 60) + end_s = int(end_time_seconds % 60) + + item_copy['editedTimeRange'] = f"{start_h:02d}:{start_m:02d}:{start_s:02d}-{end_h:02d}:{end_m:02d}:{end_s:02d}" + + # 更新累积时长 + accumulated_duration = end_time_seconds updated_script.append(item_copy) @@ -202,4 +230,6 @@ if __name__ == '__main__': updated_list_script = update_script_timestamps(list_script, video_res, audio_res, sub_res) for item in updated_list_script: print( - f"ID: {item['_id']} | Picture: {item['picture'][:20]}... | Timestamp: {item['timestamp']} | SourceTimeRange: {item['sourceTimeRange']} | Duration: {item['duration']} 秒 | Audio: {item['audio']} | Subtitle: {item['subtitle']}") + f"ID: {item['_id']} | Picture: {item['picture'][:20]}... | Timestamp: {item['timestamp']} | " + + f"SourceTimeRange: {item['sourceTimeRange']} | EditedTimeRange: {item.get('editedTimeRange', '')} | " + + f"Duration: {item['duration']} 秒 | Audio: {item['audio']} | Subtitle: {item['subtitle']}") From 6001e8038f636a6d0901ad81470fe928935c9e0b Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 11:32:11 +0800 Subject: [PATCH 10/31] =?UTF-8?q?feat(subtitle):=20=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E5=AD=97=E5=B9=95=E6=96=87=E4=BB=B6=E5=90=88=E5=B9=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重构 subtitle_merger.py,增加对 editedTimeRange 的解析和排序 - 更新 merge_subtitle_files 函数,支持处理字幕项列表 - 在 task.py 中集成字幕合并逻辑 --- app/services/subtitle_merger.py | 114 +++++++++++++++++++++++--------- app/services/task.py | 21 +++--- 2 files changed, 89 insertions(+), 46 deletions(-) diff --git a/app/services/subtitle_merger.py b/app/services/subtitle_merger.py index 1388b76..9097586 100644 --- a/app/services/subtitle_merger.py +++ b/app/services/subtitle_merger.py @@ -38,15 +38,20 @@ def format_time(td): return f"{hours:02d}:{minutes:02d}:{seconds:02d},{milliseconds:03d}" -def extract_time_range_from_filename(filename): - """从文件名中提取时间范围""" - pattern = r'subtitle_(\d{2})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2})' - match = re.search(pattern, filename) - - if not match: +def parse_edited_time_range(time_range_str): + """从editedTimeRange字符串中提取时间范围""" + if not time_range_str: return None, None - start_h, start_m, start_s, end_h, end_m, end_s = map(int, match.groups()) + parts = time_range_str.split('-') + if len(parts) != 2: + return None, None + + start_time_str, end_time_str = parts + + # 将HH:MM:SS格式转换为timedelta + start_h, start_m, start_s = map(int, start_time_str.split(':')) + end_h, end_m, end_s = map(int, end_time_str.split(':')) start_time = timedelta(hours=start_h, minutes=start_m, seconds=start_s) end_time = timedelta(hours=end_h, minutes=end_m, seconds=end_s) @@ -54,33 +59,36 @@ def extract_time_range_from_filename(filename): return start_time, end_time -def merge_subtitle_files(subtitle_files, output_file=None): +def merge_subtitle_files(subtitle_items, output_file=None): """ 合并多个SRT字幕文件 参数: - subtitle_files: 包含SRT文件路径的列表 + subtitle_items: 字典列表,每个字典包含subtitle文件路径和editedTimeRange output_file: 输出文件的路径,如果为None则自动生成 返回: 合并后的字幕文件路径 """ - # 按文件名中的开始时间排序 - sorted_files = sorted(subtitle_files, - key=lambda x: extract_time_range_from_filename(x)[0]) + # 按照editedTimeRange的开始时间排序 + sorted_items = sorted(subtitle_items, + key=lambda x: parse_edited_time_range(x.get('editedTimeRange', ''))[0] or timedelta()) merged_subtitles = [] subtitle_index = 1 - for file_path in sorted_files: - # 从文件名获取起始时间偏移 - offset_time, _ = extract_time_range_from_filename(file_path) + for item in sorted_items: + if not item.get('subtitle') or not os.path.exists(item.get('subtitle')): + continue + + # 从editedTimeRange获取起始时间偏移 + offset_time, _ = parse_edited_time_range(item.get('editedTimeRange', '')) if offset_time is None: - print(f"警告: 无法从文件名 {os.path.basename(file_path)} 中提取时间范围,跳过该文件") + print(f"警告: 无法从项目 {item.get('_id')} 的editedTimeRange中提取时间范围,跳过该项") continue - with open(file_path, 'r', encoding='utf-8') as file: + with open(item['subtitle'], 'r', encoding='utf-8') as file: content = file.read() # 解析字幕文件 @@ -117,24 +125,23 @@ def merge_subtitle_files(subtitle_files, output_file=None): merged_subtitles.append('\n'.join(new_block)) subtitle_index += 1 - # 合并所有字幕块 - merged_content = '\n\n'.join(merged_subtitles) - # 确定输出文件路径 if output_file is None: - # 自动生成输出文件名 - first_file_path = sorted_files[0] - last_file_path = sorted_files[-1] - _, first_end = extract_time_range_from_filename(first_file_path) - _, last_end = extract_time_range_from_filename(last_file_path) + dir_path = os.path.dirname(sorted_items[0]['subtitle']) + first_start = parse_edited_time_range(sorted_items[0]['editedTimeRange'])[0] + last_end = parse_edited_time_range(sorted_items[-1]['editedTimeRange'])[1] - dir_path = os.path.dirname(first_file_path) - first_start_str = os.path.basename(first_file_path).split('-')[0].replace('subtitle_', '') + first_start_h, first_start_m, first_start_s = int(first_start.seconds // 3600), int((first_start.seconds % 3600) // 60), int(first_start.seconds % 60) last_end_h, last_end_m, last_end_s = int(last_end.seconds // 3600), int((last_end.seconds % 3600) // 60), int(last_end.seconds % 60) + + first_start_str = f"{first_start_h:02d}_{first_start_m:02d}_{first_start_s:02d}" last_end_str = f"{last_end_h:02d}_{last_end_m:02d}_{last_end_s:02d}" output_file = os.path.join(dir_path, f"merged_subtitle_{first_start_str}-{last_end_str}.srt") + # 合并所有字幕块 + merged_content = '\n\n'.join(merged_subtitles) + # 写入合并后的内容 with open(output_file, 'w', encoding='utf-8') as file: file.write(merged_content) @@ -143,12 +150,53 @@ def merge_subtitle_files(subtitle_files, output_file=None): if __name__ == '__main__': - subtitle_files = [ - "/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_00_00-00_01_15.srt", - "/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_01_15-00_04_40.srt", - "/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_04_58-00_05_45.srt", - "/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_05_45-00_06_00.srt", + # 测试数据 + test_data = [ + {'picture': '【解说】好的,各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!', + 'timestamp': '00:00:00-00:01:15', + 'narration': '好的各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!上集片尾那个巨大的悬念,这一集就立刻揭晓了!范闲假死归来,他面临的第一个,也是最大的难关,就是如何面对他最敬爱的,同时也是最可怕的那个人——庆帝!', + 'OST': 0, + '_id': 1, + 'audio': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_00_00-00_01_15.mp3', + 'subtitle': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_00_00-00_01_15.srt', + 'sourceTimeRange': '00:00:00-00:00:26', + 'duration': 26, + 'editedTimeRange': '00:00:00-00:00:26' + }, + {'picture': '【解说】上一集我们看到,范闲在北齐遭遇了惊天变故,生死不明!', + 'timestamp': '00:01:15-00:04:40', + 'narration': '但我们都知道,他绝不可能就这么轻易退场!第二集一开场,范闲就已经秘密回到了京都。他的生死传闻,可不像我们想象中那样只是小范围流传,而是…', + 'OST': 0, + '_id': 2, + 'audio': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_01_15-00_04_40.mp3', + 'subtitle': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_01_15-00_04_40.srt', + 'sourceTimeRange': '00:01:15-00:01:29', + 'duration': 14, + 'editedTimeRange': '00:00:26-00:00:40' + }, + {'picture': '【解说】"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。', + 'timestamp': '00:04:58-00:05:45', + 'narration': '"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。但范闲是谁啊?他偏要反其道而行之!他竟然决定,直接去见庆帝!冒着天大的风险,用"假死"这个事实去赌庆帝的态度!', + 'OST': 0, + '_id': 4, + 'audio': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_04_58-00_05_45.mp3', + 'subtitle': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_04_58-00_05_45.srt', + 'sourceTimeRange': '00:04:58-00:05:20', + 'duration': 22, + 'editedTimeRange': '00:00:57-00:01:19' + }, + {'picture': '【解说】但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', + 'timestamp': '00:05:45-00:06:00', + 'narration': '但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', + 'OST': 0, + '_id': 5, + 'audio': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_05_45-00_06_00.mp3', + 'subtitle': '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/subtitle_00_05_45-00_06_00.srt', + 'sourceTimeRange': '00:05:45-00:05:53', + 'duration': 8, + 'editedTimeRange': '00:01:19-00:01:27' + } ] - output_file = merge_subtitle_files(subtitle_files) + output_file = merge_subtitle_files(test_data) print(f"字幕文件已合并至: {output_file}") diff --git a/app/services/task.py b/app/services/task.py index 640d821..93ccf86 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -250,7 +250,7 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di subclip_clip_result = { tts_result['_id']: tts_result['subtitle_file'] for tts_result in tts_results } - list_script = update_script.update_script_timestamps(list_script, video_clip_result, tts_clip_result, subclip_clip_result) + new_script_list = update_script.update_script_timestamps(list_script, video_clip_result, tts_clip_result, subclip_clip_result) sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=60) @@ -258,24 +258,19 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di 4. 合并音频和字幕 """ logger.info("\n\n## 4. 合并音频和字幕") - subtitle_files = [ - tts_result["subtitle_file"] for tts_result in tts_results - ] - total_duration = sum([script["duration"] for script in list_script]) + total_duration = sum([script["duration"] for script in new_script_list]) if tts_results: try: # 合并音频文件 merged_audio_path = audio_merger.merge_audio_files( task_id=task_id, total_duration=total_duration, - list_script=list_script + list_script=new_script_list ) logger.info(f"音频文件合并成功->{merged_audio_path}") - # # 合并字幕文件 - # merged_subtitle_path = subtitle_merger.merge_subtitle_files( - # subtitle_files=subtitle_files, - # ) - # logger.info(f"字幕文件合并成功->{merged_subtitle_path}") + # 合并字幕文件 + merged_subtitle_path = subtitle_merger.merge_subtitle_files(new_script_list) + logger.info(f"字幕文件合并成功->{merged_subtitle_path}") except Exception as e: logger.error(f"合并音频文件失败: {str(e)}") merged_audio_path = "" @@ -292,10 +287,10 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di combined_video_path = path.join(utils.task_dir(task_id), f"merger.mp4") logger.info(f"\n\n## 5. 合并视频: => {combined_video_path}") - + videos_clips = [new_script['video_path'] for new_script in new_script_list] merger_video.combine_clip_videos( output_video_path=combined_video_path, - video_paths=subclip_videos, + video_paths=videos_clips, video_ost_list=video_ost, video_aspect=params.video_aspect, threads=params.n_threads # 多线程 From ba4871715c1ffdae951ce8cd526f2460634d9f8e Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 11:34:46 +0800 Subject: [PATCH 11/31] =?UTF-8?q?feat(update=5Fscript):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=A7=86=E9=A2=91=E8=B7=AF=E5=BE=84=E5=B9=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=89=93=E5=8D=B0=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 item_copy 中初始化 video 字段为空字符串- 根据 item_id 或 orig_timestamp 在 video_result 中查找并添加视频路径 - 更新打印信息,增加视频路径输出 --- app/services/update_script.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/services/update_script.py b/app/services/update_script.py index 30f0082..43f2ff8 100644 --- a/app/services/update_script.py +++ b/app/services/update_script.py @@ -109,6 +109,7 @@ def update_script_timestamps( # 初始化音频和字幕路径为空字符串 item_copy['audio'] = "" item_copy['subtitle'] = "" + item_copy['video'] = "" # 初始化视频路径为空字符串 # 如果提供了音频结果字典且ID存在于音频结果中,直接使用对应的音频路径 if audio_result: @@ -124,6 +125,12 @@ def update_script_timestamps( elif orig_timestamp in subtitle_result: item_copy['subtitle'] = subtitle_result[orig_timestamp] + # 添加视频路径 + if item_id and item_id in video_result: + item_copy['video'] = video_result[item_id] + elif orig_timestamp in video_result: + item_copy['video'] = video_result[orig_timestamp] + # 更新时间戳和计算持续时间 current_duration = 0.0 if item_id and item_id in id_timestamp_mapping: @@ -232,4 +239,4 @@ if __name__ == '__main__': print( f"ID: {item['_id']} | Picture: {item['picture'][:20]}... | Timestamp: {item['timestamp']} | " + f"SourceTimeRange: {item['sourceTimeRange']} | EditedTimeRange: {item.get('editedTimeRange', '')} | " + - f"Duration: {item['duration']} 秒 | Audio: {item['audio']} | Subtitle: {item['subtitle']}") + f"Duration: {item['duration']} 秒 | Audio: {item['audio']} | Video: {item['video']} | Subtitle: {item['subtitle']}") From e40046d05dbc396a014aa1a59227008d928b1238 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 11:52:49 +0800 Subject: [PATCH 12/31] =?UTF-8?q?fix(task):=20=E4=BF=AE=E5=A4=8D=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E8=A7=86=E9=A2=91=E8=B7=AF=E5=BE=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复了 new_script_list 中没有 video 时的处理逻辑 - 使用 subclip_path_videos 中的视频进行合并 - 优化了视频合并路径的生成方式 --- app/services/task.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/services/task.py b/app/services/task.py index 93ccf86..f2bf284 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -287,17 +287,17 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di combined_video_path = path.join(utils.task_dir(task_id), f"merger.mp4") logger.info(f"\n\n## 5. 合并视频: => {combined_video_path}") - videos_clips = [new_script['video_path'] for new_script in new_script_list] + # 如果 new_script_list 中没有 video,则使用 subclip_path_videos 中的视频 + video_clips = [new_script['video'] if new_script.get('video') else subclip_path_videos.get(new_script.get('_id', '')) for new_script in new_script_list] merger_video.combine_clip_videos( output_video_path=combined_video_path, - video_paths=videos_clips, + video_paths=video_clips, video_ost_list=video_ost, video_aspect=params.video_aspect, - threads=params.n_threads # 多线程 + threads=params.n_threads ) sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=80) - """ 6. 合并字幕/BGM/配音/视频 """ @@ -395,12 +395,12 @@ if __name__ == "__main__": # 提前裁剪是为了方便检查视频 subclip_path_videos = { - '00:00:00-00:01:15': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-00-00-00-01-15.mp4', - '00:01:15-00:04:40': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-01-15-00-04-40.mp4', - '00:04:41-00:04:58': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-04-41-00-04-58.mp4', - '00:04:58-00:05:45': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-04-58-00-05-45.mp4', - '00:05:45-00:06:00': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-05-45-00-06-00.mp4', - '00:06:00-00:06:03': '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-06-00-00-06-03.mp4', + 1: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-00-00-00-01-15.mp4', + 2: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-01-15-00-04-40.mp4', + 3: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-04-41-00-04-58.mp4', + 4: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-04-58-00-05-45.mp4', + 5: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-05-45-00-06-00.mp4', + 6: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-06-00-00-06-03.mp4', } params = VideoClipParams( From 4bc20c290216841d5880d8679d6e1d2842652a32 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 12:29:55 +0800 Subject: [PATCH 13/31] =?UTF-8?q?refactor(video):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=90=88=E5=B9=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了 video.py 中的 combine_clip_videos 函数- 新增 generate_video.py 文件,实现更强大的视频生成功能 - 新增 merge_materials 函数,支持合并视频、音频、BGM 和字幕素材 - 优化了字幕处理和音频混合逻辑 - 增加了更多可配置选项,提高灵活性 --- app/services/generate_video.py | 383 +++++++++++++++++++++++++++++++++ app/services/video.py | 80 ------- 2 files changed, 383 insertions(+), 80 deletions(-) create mode 100644 app/services/generate_video.py diff --git a/app/services/generate_video.py b/app/services/generate_video.py new file mode 100644 index 0000000..04db992 --- /dev/null +++ b/app/services/generate_video.py @@ -0,0 +1,383 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +''' +@Project: NarratoAI +@File : generate_video +@Author : 小林同学 +@Date : 2025/5/7 上午11:55 +''' + +import os +import traceback +from typing import Optional, Dict, Any, Union +from loguru import logger +from moviepy import ( + VideoFileClip, + AudioFileClip, + CompositeAudioClip, + CompositeVideoClip, + TextClip, + concatenate_videoclips, + afx +) +from moviepy.video.tools.subtitles import SubtitlesClip +from PIL import ImageFont + +from app.utils import utils + + +def merge_materials( + video_path: str, + audio_path: str, + output_path: str, + subtitle_path: Optional[str] = None, + bgm_path: Optional[str] = None, + options: Optional[Dict[str, Any]] = None +) -> str: + """ + 合并视频、音频、BGM和字幕素材生成最终视频 + + 参数: + video_path: 视频文件路径 + audio_path: 音频文件路径 + output_path: 输出文件路径 + subtitle_path: 字幕文件路径,可选 + bgm_path: 背景音乐文件路径,可选 + options: 其他选项配置,可包含以下字段: + - voice_volume: 人声音量,默认1.0 + - bgm_volume: 背景音乐音量,默认0.3 + - original_audio_volume: 原始音频音量,默认0.0 + - keep_original_audio: 是否保留原始音频,默认False + - subtitle_font: 字幕字体,默认None,系统会使用默认字体 + - subtitle_font_size: 字幕字体大小,默认40 + - subtitle_color: 字幕颜色,默认白色 + - subtitle_bg_color: 字幕背景颜色,默认透明 + - subtitle_position: 字幕位置,可选值'bottom', 'top', 'center',默认'bottom' + - stroke_color: 描边颜色,默认黑色 + - stroke_width: 描边宽度,默认1 + - threads: 处理线程数,默认2 + - fps: 输出帧率,默认30 + + 返回: + 输出视频的路径 + """ + # 合并选项默认值 + if options is None: + options = {} + + # 设置默认参数值 + voice_volume = options.get('voice_volume', 1.0) + bgm_volume = options.get('bgm_volume', 0.3) + original_audio_volume = options.get('original_audio_volume', 0.0) # 默认为0,即不保留原声 + keep_original_audio = options.get('keep_original_audio', False) # 是否保留原声 + subtitle_font = options.get('subtitle_font', None) + subtitle_font_size = options.get('subtitle_font_size', 40) + subtitle_color = options.get('subtitle_color', '#FFFFFF') + subtitle_bg_color = options.get('subtitle_bg_color', 'transparent') + subtitle_position = options.get('subtitle_position', 'bottom') + stroke_color = options.get('stroke_color', '#000000') + stroke_width = options.get('stroke_width', 1) + threads = options.get('threads', 2) + fps = options.get('fps', 30) + + # 处理透明背景色问题 - MoviePy 2.1.1不支持'transparent'值 + if subtitle_bg_color == 'transparent': + subtitle_bg_color = None # None在新版MoviePy中表示透明背景 + + # 创建输出目录(如果不存在) + output_dir = os.path.dirname(output_path) + os.makedirs(output_dir, exist_ok=True) + + logger.info(f"开始合并素材...") + logger.info(f" ① 视频: {video_path}") + logger.info(f" ② 音频: {audio_path}") + if subtitle_path: + logger.info(f" ③ 字幕: {subtitle_path}") + if bgm_path: + logger.info(f" ④ 背景音乐: {bgm_path}") + logger.info(f" ⑤ 输出: {output_path}") + + # 加载视频 + try: + video_clip = VideoFileClip(video_path) + logger.info(f"视频尺寸: {video_clip.size[0]}x{video_clip.size[1]}, 时长: {video_clip.duration}秒") + + # 提取视频原声(如果需要) + original_audio = None + if keep_original_audio and original_audio_volume > 0: + try: + original_audio = video_clip.audio + if original_audio: + original_audio = original_audio.with_effects([afx.MultiplyVolume(original_audio_volume)]) + logger.info(f"已提取视频原声,音量设置为: {original_audio_volume}") + else: + logger.warning("视频没有音轨,无法提取原声") + except Exception as e: + logger.error(f"提取视频原声失败: {str(e)}") + original_audio = None + + # 移除原始音轨,稍后会合并新的音频 + video_clip = video_clip.without_audio() + + except Exception as e: + logger.error(f"加载视频失败: {str(e)}") + raise + + # 处理背景音乐和所有音频轨道合成 + audio_tracks = [] + + # 先添加主音频(配音) + if audio_path and os.path.exists(audio_path): + try: + voice_audio = AudioFileClip(audio_path).with_effects([afx.MultiplyVolume(voice_volume)]) + audio_tracks.append(voice_audio) + logger.info(f"已添加配音音频,音量: {voice_volume}") + except Exception as e: + logger.error(f"加载配音音频失败: {str(e)}") + + # 添加原声(如果需要) + if original_audio is not None: + audio_tracks.append(original_audio) + logger.info(f"已添加视频原声,音量: {original_audio_volume}") + + # 添加背景音乐(如果有) + if bgm_path and os.path.exists(bgm_path): + try: + bgm_clip = AudioFileClip(bgm_path).with_effects([ + afx.MultiplyVolume(bgm_volume), + afx.AudioFadeOut(3), + afx.AudioLoop(duration=video_clip.duration), + ]) + audio_tracks.append(bgm_clip) + logger.info(f"已添加背景音乐,音量: {bgm_volume}") + except Exception as e: + logger.error(f"添加背景音乐失败: \n{traceback.format_exc()}") + + # 合成最终的音频轨道 + if audio_tracks: + final_audio = CompositeAudioClip(audio_tracks) + video_clip = video_clip.with_audio(final_audio) + logger.info(f"已合成所有音频轨道,共{len(audio_tracks)}个") + else: + logger.warning("没有可用的音频轨道,输出视频将没有声音") + + # 处理字体路径 + font_path = None + if subtitle_path and subtitle_font: + font_path = os.path.join(utils.font_dir(), subtitle_font) + if os.name == "nt": + font_path = font_path.replace("\\", "/") + logger.info(f"使用字体: {font_path}") + + # 处理视频尺寸 + video_width, video_height = video_clip.size + + # 字幕处理函数 + def create_text_clip(subtitle_item): + """创建单个字幕片段""" + phrase = subtitle_item[1] + max_width = video_width * 0.9 + + # 如果有字体路径,进行文本换行处理 + wrapped_txt = phrase + txt_height = 0 + if font_path: + wrapped_txt, txt_height = wrap_text( + phrase, + max_width=max_width, + font=font_path, + fontsize=subtitle_font_size + ) + + # 创建文本片段 + try: + _clip = TextClip( + text=wrapped_txt, + font=font_path, + font_size=subtitle_font_size, + color=subtitle_color, + bg_color=subtitle_bg_color, # 这里已经在前面处理过,None表示透明 + stroke_color=stroke_color, + stroke_width=stroke_width, + ) + except Exception as e: + logger.error(f"创建字幕片段失败: {str(e)}, 使用简化参数重试") + # 如果上面的方法失败,尝试使用更简单的参数 + _clip = TextClip( + text=wrapped_txt, + font=font_path, + font_size=subtitle_font_size, + color=subtitle_color, + ) + + # 设置字幕时间 + duration = subtitle_item[0][1] - subtitle_item[0][0] + _clip = _clip.with_start(subtitle_item[0][0]) + _clip = _clip.with_end(subtitle_item[0][1]) + _clip = _clip.with_duration(duration) + + # 设置字幕位置 + if subtitle_position == "bottom": + _clip = _clip.with_position(("center", video_height * 0.95 - _clip.h)) + elif subtitle_position == "top": + _clip = _clip.with_position(("center", video_height * 0.05)) + else: # center + _clip = _clip.with_position(("center", "center")) + + return _clip + + # 创建TextClip工厂函数 + def make_textclip(text): + return TextClip( + text=text, + font=font_path, + font_size=subtitle_font_size, + color=subtitle_color, + ) + + # 处理字幕 + if subtitle_path and os.path.exists(subtitle_path): + try: + # 加载字幕文件 + sub = SubtitlesClip( + subtitles=subtitle_path, + encoding="utf-8", + make_textclip=make_textclip + ) + + # 创建每个字幕片段 + text_clips = [] + for item in sub.subtitles: + clip = create_text_clip(subtitle_item=item) + text_clips.append(clip) + + # 合成视频和字幕 + video_clip = CompositeVideoClip([video_clip, *text_clips]) + logger.info(f"已添加{len(text_clips)}个字幕片段") + except Exception as e: + logger.error(f"处理字幕失败: \n{traceback.format_exc()}") + + # 导出最终视频 + try: + video_clip.write_videofile( + output_path, + audio_codec="aac", + temp_audiofile_path=output_dir, + threads=threads, + fps=fps, + ) + logger.success(f"素材合并完成: {output_path}") + except Exception as e: + logger.error(f"导出视频失败: {str(e)}") + raise + finally: + # 释放资源 + video_clip.close() + del video_clip + + return output_path + + +def wrap_text(text, max_width, font="Arial", fontsize=60): + """ + 文本换行函数,使长文本适应指定宽度 + + 参数: + text: 需要换行的文本 + max_width: 最大宽度(像素) + font: 字体路径 + fontsize: 字体大小 + + 返回: + 换行后的文本和文本高度 + """ + # 创建ImageFont对象 + try: + font_obj = ImageFont.truetype(font, fontsize) + except: + # 如果无法加载指定字体,使用默认字体 + font_obj = ImageFont.load_default() + + def get_text_size(inner_text): + inner_text = inner_text.strip() + left, top, right, bottom = font_obj.getbbox(inner_text) + return right - left, bottom - top + + width, height = get_text_size(text) + if width <= max_width: + return text, height + + processed = True + + _wrapped_lines_ = [] + words = text.split(" ") + _txt_ = "" + for word in words: + _before = _txt_ + _txt_ += f"{word} " + _width, _height = get_text_size(_txt_) + if _width <= max_width: + continue + else: + if _txt_.strip() == word.strip(): + processed = False + break + _wrapped_lines_.append(_before) + _txt_ = f"{word} " + _wrapped_lines_.append(_txt_) + if processed: + _wrapped_lines_ = [line.strip() for line in _wrapped_lines_] + result = "\n".join(_wrapped_lines_).strip() + height = len(_wrapped_lines_) * height + return result, height + + _wrapped_lines_ = [] + chars = list(text) + _txt_ = "" + for word in chars: + _txt_ += word + _width, _height = get_text_size(_txt_) + if _width <= max_width: + continue + else: + _wrapped_lines_.append(_txt_) + _txt_ = "" + _wrapped_lines_.append(_txt_) + result = "\n".join(_wrapped_lines_).strip() + height = len(_wrapped_lines_) * height + return result, height + + +if __name__ == '__main__': + merger_mp4 = '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/merger.mp4' + merger_sub = '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/merged_subtitle_00_00_00-00_01_30.srt' + merger_audio = '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/merger_audio.mp3' + bgm_path = '/Users/apple/Desktop/home/NarratoAI/resource/songs/bgm.mp3' + output_video = '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/combined_test.mp4' + + # 调用示例 + options = { + 'voice_volume': 1.0, # 配音音量 + 'bgm_volume': 0.1, # 背景音乐音量 + 'original_audio_volume': 1.0, # 视频原声音量,0表示不保留 + 'keep_original_audio': True, # 是否保留原声 + 'subtitle_font': 'MicrosoftYaHeiNormal.ttc', # 这里使用相对字体路径,会自动在 font_dir() 目录下查找 + 'subtitle_font_size': 40, + 'subtitle_color': '#FFFFFF', + 'subtitle_bg_color': None, # 直接使用None表示透明背景 + 'subtitle_position': 'bottom', + 'threads': 2 + } + + try: + merge_materials( + video_path=merger_mp4, + audio_path=merger_audio, + subtitle_path=merger_sub, + bgm_path=bgm_path, + output_path=output_video, + options=options + ) + except Exception as e: + logger.error(f"合并素材失败: \n{traceback.format_exc()}") diff --git a/app/services/video.py b/app/services/video.py index dbe7986..e588a8b 100644 --- a/app/services/video.py +++ b/app/services/video.py @@ -105,86 +105,6 @@ def manage_clip(clip): del clip -def combine_clip_videos(combined_video_path: str, - video_paths: List[str], - video_ost_list: List[int], - list_script: list, - video_aspect: VideoAspect = VideoAspect.portrait, - threads: int = 2, - ) -> str: - """ - 合并子视频 - Args: - combined_video_path: 合并后的存储路径 - video_paths: 子视频路径列表 - video_ost_list: 原声播放列表 (0: 不保留原声, 1: 只保留原声, 2: 保留原声并保留解说) - list_script: 剪辑脚本 - video_aspect: 屏幕比例 - threads: 线程数 - - Returns: - str: 合并后的视频路径 - """ - from app.utils.utils import calculate_total_duration - audio_duration = calculate_total_duration(list_script) - logger.info(f"音频的最大持续时间: {audio_duration} s") - - output_dir = os.path.dirname(combined_video_path) - aspect = VideoAspect(video_aspect) - video_width, video_height = aspect.to_resolution() - - clips = [] - for video_path, video_ost in zip(video_paths, video_ost_list): - try: - clip = VideoFileClip(video_path) - - if video_ost == 0: # 不保留原声 - clip = clip.without_audio() - # video_ost 为 1 或 2 时都保留原声,不需要特殊处理 - - clip = clip.set_fps(30) - - # 处理视频尺寸 - clip_w, clip_h = clip.size - if clip_w != video_width or clip_h != video_height: - clip = resize_video_with_padding( - clip, - target_width=video_width, - target_height=video_height - ) - logger.info(f"视频 {video_path} 已调整尺寸为 {video_width} x {video_height}") - - clips.append(clip) - - except Exception as e: - logger.error(f"处理视频 {video_path} 时出错: {str(e)}") - continue - - if not clips: - raise ValueError("没有有效的视频片段可以合并") - - try: - video_clip = concatenate_videoclips(clips) - video_clip = video_clip.set_fps(30) - - logger.info("开始合并视频... (过程中出现 UserWarning: 不必理会)") - video_clip.write_videofile( - filename=combined_video_path, - threads=threads, - audio_codec="aac", - fps=30, - temp_audiofile=os.path.join(output_dir, "temp-audio.m4a") - ) - finally: - # 确保资源被正确放 - video_clip.close() - for clip in clips: - clip.close() - - logger.success("视频合并完成") - return combined_video_path - - def resize_video_with_padding(clip, target_width: int, target_height: int): """ 调整视频尺寸并添加黑边 From 3d9b4b6d93e021d20752a8b8d5630f8fd98ce32f Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 13:17:53 +0800 Subject: [PATCH 14/31] =?UTF-8?q?refactor(app):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新导入路径:从 moviepy.editor 改为 moviepy - 优化合并字幕、BGM、配音、视频的逻辑 - 移除硬编码路径,使用参数化配置 -简化字幕样式和音量配置 - 调整 generate_video 函数的参数结构 --- app/services/llm.py | 2 +- app/services/subtitle.py | 2 +- app/services/task.py | 58 +++++++++++++++------------------------- app/services/video.py | 4 +-- requirements.txt | 2 +- 5 files changed, 27 insertions(+), 41 deletions(-) diff --git a/app/services/llm.py b/app/services/llm.py index d054eb1..0db7920 100644 --- a/app/services/llm.py +++ b/app/services/llm.py @@ -7,7 +7,7 @@ from typing import List from loguru import logger from openai import OpenAI from openai import AzureOpenAI -from moviepy.editor import VideoFileClip +from moviepy import VideoFileClip from openai.types.chat import ChatCompletion import google.generativeai as gemini from googleapiclient.errors import ResumableUploadError diff --git a/app/services/subtitle.py b/app/services/subtitle.py index b5d9a29..34aa2cb 100644 --- a/app/services/subtitle.py +++ b/app/services/subtitle.py @@ -8,7 +8,7 @@ from faster_whisper import WhisperModel from timeit import default_timer as timer from loguru import logger import google.generativeai as genai -from moviepy.editor import VideoFileClip +from moviepy import VideoFileClip import os from app.config import config diff --git a/app/services/task.py b/app/services/task.py index f2bf284..5ac0c13 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -10,7 +10,7 @@ from app.config import config from app.models import const from app.models.schema import VideoConcatMode, VideoParams, VideoClipParams from app.services import (llm, material, subtitle, video, voice, audio_merger, - subtitle_merger, clip_video, merger_video, update_script) + subtitle_merger, clip_video, merger_video, update_script, generate_video) from app.services import state as sm from app.utils import utils @@ -301,49 +301,35 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di """ 6. 合并字幕/BGM/配音/视频 """ - final_video_path = path.join(utils.task_dir(task_id), f"combined.mp4") - logger.info(f"\n\n## 6. 最后一步: 合并字幕/BGM/配音/视频 -> {final_video_path}") + output_video_path = path.join(utils.task_dir(task_id), f"combined.mp4") + logger.info(f"\n\n## 6. 最后一步: 合并字幕/BGM/配音/视频 -> {output_video_path}") - # 获取背景音乐 - bgm_path = None - if params.bgm_type or params.bgm_file: - try: - bgm_path = utils.get_bgm_file(bgm_type=params.bgm_type, bgm_file=params.bgm_file) - if bgm_path: - logger.info(f"使用背景音乐: {bgm_path}") - except Exception as e: - logger.error(f"获取背景音乐失败: {str(e)}") + bgm_path = '/Users/apple/Desktop/home/NarratoAI/resource/songs/bgm.mp3' + # bgm_path = params.bgm_file - # 示例:自定义字幕样式 - subtitle_style = { - 'fontsize': params.font_size, # 字体大小 - 'color': params.text_fore_color, # 字体颜色 - 'stroke_color': params.stroke_color, # 描边颜色 - 'stroke_width': params.stroke_width, # 描边宽度, 范围0-10 - 'bg_color': params.text_back_color, # 半透明黑色背景 - 'position': (params.subtitle_position, 0.2), # 距离顶部60%的位置 - 'method': 'caption' # 渲染方法 + # 调用示例 + options = { + 'voice_volume': params.tts_volume, # 配音音量 + 'bgm_volume': params.bgm_volume, # 背景音乐音量 + 'original_audio_volume': params.original_volume, # 视频原声音量,0表示不保留 + 'keep_original_audio': True, # 是否保留原声 + 'subtitle_font': 'MicrosoftYaHeiNormal.ttc', # 这里使用相对字体路径,会自动在 font_dir() 目录下查找 + 'subtitle_font_size': params.font_size, + 'subtitle_color': '#FFFFFF', + 'subtitle_bg_color': None, # 直接使用None表示透明背景 + 'subtitle_position': params.subtitle_position, + 'threads': params.n_threads } - - # 示例:自定义音量配置 - volume_config = { - 'original': params.original_volume, # 原声音量80% - 'bgm': params.bgm_volume, # BGM音量20% - 'narration': params.tts_volume or params.voice_volume, # 解说音量100% - } - font_path = utils.font_dir(params.font_name) - video.generate_video_v3( + generate_video.merge_materials( video_path=combined_video_path, + audio_path=merged_audio_path, subtitle_path=merged_subtitle_path, bgm_path=bgm_path, - narration_path=merged_audio_path, - output_path=final_video_path, - volume_config=volume_config, # 添加音量配置 - subtitle_style=subtitle_style, - font_path=font_path + output_path=output_video_path, + options=options ) - final_video_paths.append(final_video_path) + final_video_paths.append(output_video_path) combined_video_paths.append(combined_video_path) logger.success(f"任务 {task_id} 已完成, 生成 {len(final_video_paths)} 个视频.") diff --git a/app/services/video.py b/app/services/video.py index e588a8b..83214f9 100644 --- a/app/services/video.py +++ b/app/services/video.py @@ -4,10 +4,10 @@ import pysrt from typing import Optional from typing import List from loguru import logger -from moviepy.editor import * +from moviepy import * from PIL import ImageFont from contextlib import contextmanager -from moviepy.editor import ( +from moviepy import ( VideoFileClip, AudioFileClip, TextClip, diff --git a/requirements.txt b/requirements.txt index 55c7972..9d26499 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ requests~=2.31.0 -moviepy==2.0.0.dev2 +moviepy==2.1.1 faster-whisper~=1.0.1 uvicorn~=0.27.1 fastapi~=0.115.4 From c3ea0bcc69c898c65393882156a0c286ad87afd4 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 13:52:18 +0800 Subject: [PATCH 15/31] =?UTF-8?q?build:=20=E6=9B=B4=E6=96=B0=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E5=B9=B6=E9=87=8D=E6=9E=84=E9=83=A8=E5=88=86=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新 moviepy 依赖版本 - 添加 edge-tts、streamlit 等新依赖 - 移除 g4f、dashscope 等未使用的依赖- 重构 merge_video.py 中的导入语句 - 注释掉 task.py 中的多个函数定义 --- app/services/task.py | 238 ++++++++++++++++++------------------- requirements.txt | 38 +++--- webui/utils/merge_video.py | 2 +- 3 files changed, 139 insertions(+), 139 deletions(-) diff --git a/app/services/task.py b/app/services/task.py index 5ac0c13..018d149 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -15,147 +15,147 @@ from app.services import state as sm from app.utils import utils -def generate_script(task_id, params): - logger.info("\n\n## generating video script") - video_script = params.video_script.strip() - if not video_script: - video_script = llm.generate_script( - video_subject=params.video_subject, - language=params.video_language, - paragraph_number=params.paragraph_number, - ) - else: - logger.debug(f"video script: \n{video_script}") +# def generate_script(task_id, params): +# logger.info("\n\n## generating video script") +# video_script = params.video_script.strip() +# if not video_script: +# video_script = llm.generate_script( +# video_subject=params.video_subject, +# language=params.video_language, +# paragraph_number=params.paragraph_number, +# ) +# else: +# logger.debug(f"video script: \n{video_script}") - if not video_script: - sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) - logger.error("failed to generate video script.") - return None +# if not video_script: +# sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) +# logger.error("failed to generate video script.") +# return None - return video_script +# return video_script -def generate_terms(task_id, params, video_script): - logger.info("\n\n## generating video terms") - video_terms = params.video_terms - if not video_terms: - video_terms = llm.generate_terms( - video_subject=params.video_subject, video_script=video_script, amount=5 - ) - else: - if isinstance(video_terms, str): - video_terms = [term.strip() for term in re.split(r"[,,]", video_terms)] - elif isinstance(video_terms, list): - video_terms = [term.strip() for term in video_terms] - else: - raise ValueError("video_terms must be a string or a list of strings.") +# def generate_terms(task_id, params, video_script): +# logger.info("\n\n## generating video terms") +# video_terms = params.video_terms +# if not video_terms: +# video_terms = llm.generate_terms( +# video_subject=params.video_subject, video_script=video_script, amount=5 +# ) +# else: +# if isinstance(video_terms, str): +# video_terms = [term.strip() for term in re.split(r"[,,]", video_terms)] +# elif isinstance(video_terms, list): +# video_terms = [term.strip() for term in video_terms] +# else: +# raise ValueError("video_terms must be a string or a list of strings.") - logger.debug(f"video terms: {utils.to_json(video_terms)}") +# logger.debug(f"video terms: {utils.to_json(video_terms)}") - if not video_terms: - sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) - logger.error("failed to generate video terms.") - return None +# if not video_terms: +# sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) +# logger.error("failed to generate video terms.") +# return None - return video_terms +# return video_terms -def save_script_data(task_id, video_script, video_terms, params): - script_file = path.join(utils.task_dir(task_id), "script.json") - script_data = { - "script": video_script, - "search_terms": video_terms, - "params": params, - } +# def save_script_data(task_id, video_script, video_terms, params): +# script_file = path.join(utils.task_dir(task_id), "script.json") +# script_data = { +# "script": video_script, +# "search_terms": video_terms, +# "params": params, +# } - with open(script_file, "w", encoding="utf-8") as f: - f.write(utils.to_json(script_data)) +# with open(script_file, "w", encoding="utf-8") as f: +# f.write(utils.to_json(script_data)) -def generate_audio(task_id, params, video_script): - logger.info("\n\n## generating audio") - audio_file = path.join(utils.task_dir(task_id), "audio.mp3") - sub_maker = voice.tts( - text=video_script, - voice_name=voice.parse_voice_name(params.voice_name), - voice_rate=params.voice_rate, - voice_file=audio_file, - ) - if sub_maker is None: - sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) - logger.error( - """failed to generate audio: -1. check if the language of the voice matches the language of the video script. -2. check if the network is available. If you are in China, it is recommended to use a VPN and enable the global traffic mode. - """.strip() - ) - return None, None, None +# def generate_audio(task_id, params, video_script): +# logger.info("\n\n## generating audio") +# audio_file = path.join(utils.task_dir(task_id), "audio.mp3") +# sub_maker = voice.tts( +# text=video_script, +# voice_name=voice.parse_voice_name(params.voice_name), +# voice_rate=params.voice_rate, +# voice_file=audio_file, +# ) +# if sub_maker is None: +# sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) +# logger.error( +# """failed to generate audio: +# 1. check if the language of the voice matches the language of the video script. +# 2. check if the network is available. If you are in China, it is recommended to use a VPN and enable the global traffic mode. +# """.strip() +# ) +# return None, None, None - audio_duration = math.ceil(voice.get_audio_duration(sub_maker)) - return audio_file, audio_duration, sub_maker +# audio_duration = math.ceil(voice.get_audio_duration(sub_maker)) +# return audio_file, audio_duration, sub_maker -def generate_subtitle(task_id, params, video_script, sub_maker, audio_file): - if not params.subtitle_enabled: - return "" +# def generate_subtitle(task_id, params, video_script, sub_maker, audio_file): +# if not params.subtitle_enabled: +# return "" - subtitle_path = path.join(utils.task_dir(task_id), "subtitle111.srt") - subtitle_provider = config.app.get("subtitle_provider", "").strip().lower() - logger.info(f"\n\n## generating subtitle, provider: {subtitle_provider}") +# subtitle_path = path.join(utils.task_dir(task_id), "subtitle111.srt") +# subtitle_provider = config.app.get("subtitle_provider", "").strip().lower() +# logger.info(f"\n\n## generating subtitle, provider: {subtitle_provider}") - subtitle_fallback = False - if subtitle_provider == "edge": - voice.create_subtitle( - text=video_script, sub_maker=sub_maker, subtitle_file=subtitle_path - ) - if not os.path.exists(subtitle_path): - subtitle_fallback = True - logger.warning("subtitle file not found, fallback to whisper") +# subtitle_fallback = False +# if subtitle_provider == "edge": +# voice.create_subtitle( +# text=video_script, sub_maker=sub_maker, subtitle_file=subtitle_path +# ) +# if not os.path.exists(subtitle_path): +# subtitle_fallback = True +# logger.warning("subtitle file not found, fallback to whisper") - if subtitle_provider == "whisper" or subtitle_fallback: - subtitle.create(audio_file=audio_file, subtitle_file=subtitle_path) - logger.info("\n\n## correcting subtitle") - subtitle.correct(subtitle_file=subtitle_path, video_script=video_script) +# if subtitle_provider == "whisper" or subtitle_fallback: +# subtitle.create(audio_file=audio_file, subtitle_file=subtitle_path) +# logger.info("\n\n## correcting subtitle") +# subtitle.correct(subtitle_file=subtitle_path, video_script=video_script) - subtitle_lines = subtitle.file_to_subtitles(subtitle_path) - if not subtitle_lines: - logger.warning(f"subtitle file is invalid: {subtitle_path}") - return "" +# subtitle_lines = subtitle.file_to_subtitles(subtitle_path) +# if not subtitle_lines: +# logger.warning(f"subtitle file is invalid: {subtitle_path}") +# return "" - return subtitle_path +# return subtitle_path -def get_video_materials(task_id, params, video_terms, audio_duration): - if params.video_source == "local": - logger.info("\n\n## preprocess local materials") - materials = video.preprocess_video( - materials=params.video_materials, clip_duration=params.video_clip_duration - ) - if not materials: - sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) - logger.error( - "no valid materials found, please check the materials and try again." - ) - return None - return [material_info.url for material_info in materials] - else: - logger.info(f"\n\n## downloading videos from {params.video_source}") - downloaded_videos = material.download_videos( - task_id=task_id, - search_terms=video_terms, - source=params.video_source, - video_aspect=params.video_aspect, - video_contact_mode=params.video_concat_mode, - audio_duration=audio_duration * params.video_count, - max_clip_duration=params.video_clip_duration, - ) - if not downloaded_videos: - sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) - logger.error( - "failed to download videos, maybe the network is not available. if you are in China, please use a VPN." - ) - return None - return downloaded_videos +# def get_video_materials(task_id, params, video_terms, audio_duration): +# if params.video_source == "local": +# logger.info("\n\n## preprocess local materials") +# materials = video.preprocess_video( +# materials=params.video_materials, clip_duration=params.video_clip_duration +# ) +# if not materials: +# sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) +# logger.error( +# "no valid materials found, please check the materials and try again." +# ) +# return None +# return [material_info.url for material_info in materials] +# else: +# logger.info(f"\n\n## downloading videos from {params.video_source}") +# downloaded_videos = material.download_videos( +# task_id=task_id, +# search_terms=video_terms, +# source=params.video_source, +# video_aspect=params.video_aspect, +# video_contact_mode=params.video_concat_mode, +# audio_duration=audio_duration * params.video_count, +# max_clip_duration=params.video_clip_duration, +# ) +# if not downloaded_videos: +# sm.state.update_task(task_id, state=const.TASK_STATE_FAILED) +# logger.error( +# "failed to download videos, maybe the network is not available. if you are in China, please use a VPN." +# ) +# return None +# return downloaded_videos def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: dict): diff --git a/requirements.txt b/requirements.txt index 9d26499..723fa43 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,38 +1,38 @@ -requests~=2.31.0 +requests~=2.32.0 moviepy==2.1.1 -faster-whisper~=1.0.1 -uvicorn~=0.27.1 -fastapi~=0.115.4 -tomli~=2.0.1 -streamlit~=1.40.0 +edge-tts==6.1.19 +streamlit~=1.45.0 + +openai~=1.77.0 +google-generativeai>=0.8.5 + loguru~=0.7.2 +fastapi~=0.115.4 +uvicorn~=0.27.1 +pydantic~=2.11.4 + +faster-whisper~=1.0.1 +tomli~=2.0.1 aiohttp~=3.10.10 +httpx==0.27.2 urllib3~=2.2.1 -pydantic~=2.6.3 -g4f~=0.3.0.4 -dashscope~=1.15.0 -google.generativeai>=0.8.3 + python-multipart~=0.0.9 redis==5.0.3 opencv-python~=4.10.0.84 -# for azure speech -# https://techcommunity.microsoft.com/t5/ai-azure-ai-services-blog/9-more-realistic-ai-voices-for-conversations-now-generally/ba-p/4099471 azure-cognitiveservices-speech~=1.37.0 git-changelog~=2.5.2 watchdog==5.0.2 pydub==0.25.1 psutil>=5.9.0 -opencv-python~=4.10.0.84 scikit-learn~=1.5.2 -google-generativeai~=0.8.3 pillow==10.3.0 python-dotenv~=1.0.1 -openai~=1.53.0 + tqdm>=4.66.6 tenacity>=9.0.0 tiktoken==0.8.0 -yt-dlp==2024.11.18 pysrt==1.1.2 -httpx==0.27.2 -transformers==4.47.0 -edge-tts==6.1.19 +transformers==4.50.0 + +# yt-dlp==2025.4.30 \ No newline at end of file diff --git a/webui/utils/merge_video.py b/webui/utils/merge_video.py index 65e13aa..6c8503c 100644 --- a/webui/utils/merge_video.py +++ b/webui/utils/merge_video.py @@ -1,7 +1,7 @@ """ 合并视频和字幕文件 """ -from moviepy.editor import VideoFileClip, concatenate_videoclips +from moviepy import VideoFileClip, concatenate_videoclips import pysrt import os From f6c3f1640b50b8b6854eaa88f01a9f9f23389343 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 15:41:01 +0800 Subject: [PATCH 16/31] =?UTF-8?q?=E7=A7=BB=E9=99=A4=20opencv=20=E5=92=8C?= =?UTF-8?q?=20sklearn=20=E6=8F=90=E5=8F=96=E5=85=B3=E9=94=AE=E5=B8=A7?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/script_service.py | 24 +- app/services/subtitle.py | 41 ++- app/services/video.py | 2 +- app/utils/script_generator.py | 14 +- app/utils/video_processor.py | 498 +++++++++++++++++----------- app/utils/video_processor_v2.py | 382 --------------------- config.example.toml | 2 +- requirements.txt | 57 ++-- webui.py | 92 +++-- webui/components/merge_settings.py | 4 +- webui/tools/generate_script_docu.py | 25 +- webui/utils/merge_video.py | 2 +- webui/utils/performance.py | 31 +- 13 files changed, 478 insertions(+), 696 deletions(-) delete mode 100644 app/utils/video_processor_v2.py diff --git a/app/services/script_service.py b/app/services/script_service.py index 37644a7..f4a6f95 100644 --- a/app/services/script_service.py +++ b/app/services/script_service.py @@ -3,10 +3,11 @@ import json import time import asyncio import requests +from app.utils import video_processor from loguru import logger from typing import List, Dict, Any, Callable -from app.utils import utils, gemini_analyzer, video_processor, video_processor_v2 +from app.utils import utils, gemini_analyzer, video_processor from app.utils.script_generator import ScriptProcessor from app.config import config @@ -105,20 +106,13 @@ class ScriptGenerator: os.makedirs(video_keyframes_dir, exist_ok=True) try: - if config.frames.get("version") == "v2": - processor = video_processor_v2.VideoProcessor(video_path) - processor.process_video_pipeline( - output_dir=video_keyframes_dir, - skip_seconds=skip_seconds, - threshold=threshold - ) - else: - processor = video_processor.VideoProcessor(video_path) - processor.process_video( - output_dir=video_keyframes_dir, - skip_seconds=skip_seconds - ) - + processor = video_processor.VideoProcessor(video_path) + processor.process_video_pipeline( + output_dir=video_keyframes_dir, + skip_seconds=skip_seconds, + threshold=threshold + ) + for filename in sorted(os.listdir(video_keyframes_dir)): if filename.endswith('.jpg'): keyframe_files.append(os.path.join(video_keyframes_dir, filename)) diff --git a/app/services/subtitle.py b/app/services/subtitle.py index 34aa2cb..c443c3f 100644 --- a/app/services/subtitle.py +++ b/app/services/subtitle.py @@ -4,7 +4,7 @@ import re import traceback from typing import Optional -from faster_whisper import WhisperModel +# from faster_whisper import WhisperModel from timeit import default_timer as timer from loguru import logger import google.generativeai as genai @@ -45,12 +45,25 @@ def create(audio_file, subtitle_file: str = ""): ) return None - # 尝试使用 CUDA,如果失败则回退到 CPU + # 首先使用CPU模式,不触发CUDA检查 + use_cuda = False try: - import torch - if torch.cuda.is_available(): + # 在函数中延迟导入torch,而不是在全局范围内 + # 使用安全的方式检查CUDA可用性 + def check_cuda_available(): + try: + import torch + return torch.cuda.is_available() + except (ImportError, RuntimeError) as e: + logger.warning(f"检查CUDA可用性时出错: {e}") + return False + + # 仅当明确需要时才检查CUDA + use_cuda = check_cuda_available() + + if use_cuda: + logger.info(f"尝试使用 CUDA 加载模型: {model_path}") try: - logger.info(f"尝试使用 CUDA 加载模型: {model_path}") model = WhisperModel( model_size_or_path=model_path, device="cuda", @@ -63,18 +76,18 @@ def create(audio_file, subtitle_file: str = ""): except Exception as e: logger.warning(f"CUDA 加载失败,错误信息: {str(e)}") logger.warning("回退到 CPU 模式") - device = "cpu" - compute_type = "int8" + use_cuda = False else: - logger.info("未检测到 CUDA,使用 CPU 模式") - device = "cpu" - compute_type = "int8" - except ImportError: - logger.warning("未安装 torch,使用 CPU 模式") + logger.info("使用 CPU 模式") + except Exception as e: + logger.warning(f"CUDA检查过程出错: {e}") + logger.warning("默认使用CPU模式") + use_cuda = False + + # 如果CUDA不可用或加载失败,使用CPU + if not use_cuda: device = "cpu" compute_type = "int8" - - if device == "cpu": logger.info(f"使用 CPU 加载模型: {model_path}") model = WhisperModel( model_size_or_path=model_path, diff --git a/app/services/video.py b/app/services/video.py index 83214f9..087dbdf 100644 --- a/app/services/video.py +++ b/app/services/video.py @@ -1,6 +1,6 @@ import traceback -import pysrt +# import pysrt from typing import Optional from typing import List from loguru import logger diff --git a/app/utils/script_generator.py b/app/utils/script_generator.py index 6493e82..7020782 100644 --- a/app/utils/script_generator.py +++ b/app/utils/script_generator.py @@ -2,7 +2,7 @@ import os import json import traceback from loguru import logger -import tiktoken +# import tiktoken from typing import List, Dict from datetime import datetime from openai import OpenAI @@ -94,12 +94,12 @@ class OpenAIGenerator(BaseGenerator): "user": "script_generator" } - # 初始化token计数器 - try: - self.encoding = tiktoken.encoding_for_model(self.model_name) - except KeyError: - logger.warning(f"未找到模型 {self.model_name} 的专用编码器,使用默认编码器") - self.encoding = tiktoken.get_encoding("cl100k_base") + # # 初始化token计数器 + # try: + # self.encoding = tiktoken.encoding_for_model(self.model_name) + # except KeyError: + # logger.warning(f"未找到模型 {self.model_name} 的专用编码器,使用默认编码器") + # self.encoding = tiktoken.get_encoding("cl100k_base") def _generate(self, messages: list, params: dict) -> any: """实现OpenAI特定的生成逻辑""" diff --git a/app/utils/video_processor.py b/app/utils/video_processor.py index 5949e6b..a754d50 100644 --- a/app/utils/video_processor.py +++ b/app/utils/video_processor.py @@ -1,237 +1,349 @@ -import cv2 -import numpy as np -from sklearn.cluster import MiniBatchKMeans +""" +视频帧提取工具 + +这个模块提供了简单高效的视频帧提取功能。主要特点: +1. 使用ffmpeg进行视频处理,支持硬件加速 +2. 按指定时间间隔提取视频关键帧 +3. 支持多种视频格式 +4. 支持高清视频帧输出 +5. 直接从原视频提取高质量关键帧 + +不依赖OpenCV和sklearn等库,只使用ffmpeg作为外部依赖,降低了安装和使用的复杂度。 +""" + import os import re -from typing import List, Tuple, Generator +import time +import subprocess +from typing import List, Dict from loguru import logger -import gc from tqdm import tqdm class VideoProcessor: - def __init__(self, video_path: str, batch_size: int = 100): + def __init__(self, video_path: str): """ 初始化视频处理器 - + Args: video_path: 视频文件路径 - batch_size: 批处理大小,控制内存使用 """ if not os.path.exists(video_path): raise FileNotFoundError(f"视频文件不存在: {video_path}") - + self.video_path = video_path - self.batch_size = batch_size - self.cap = cv2.VideoCapture(video_path) - - if not self.cap.isOpened(): - raise RuntimeError(f"无法打开视频文件: {video_path}") - - self.total_frames = int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT)) - self.fps = int(self.cap.get(cv2.CAP_PROP_FPS)) + self.video_info = self._get_video_info() + self.fps = float(self.video_info.get('fps', 25)) + self.duration = float(self.video_info.get('duration', 0)) + self.width = int(self.video_info.get('width', 0)) + self.height = int(self.video_info.get('height', 0)) + self.total_frames = int(self.fps * self.duration) - def __del__(self): - """析构函数,确保视频资源被释放""" - if hasattr(self, 'cap'): - self.cap.release() - gc.collect() + def _get_video_info(self) -> Dict[str, str]: + """ + 使用ffprobe获取视频信息 - def preprocess_video(self) -> Generator[Tuple[int, np.ndarray], None, None]: - """ - 使用生成器方式分批读取视频帧 - - Yields: - Tuple[int, np.ndarray]: (帧索引, 视频帧) - """ - self.cap.set(cv2.CAP_PROP_POS_FRAMES, 0) - frame_idx = 0 - - while self.cap.isOpened(): - ret, frame = self.cap.read() - if not ret: - break - - # 降低分辨率以减少内存使用 - frame = cv2.resize(frame, (0, 0), fx=0.5, fy=0.5) - yield frame_idx, frame - - frame_idx += 1 - - # 定期进行垃圾回收 - if frame_idx % 1000 == 0: - gc.collect() - - def detect_shot_boundaries(self, threshold: int = 70) -> List[int]: - """ - 使用批处理方式检测镜头边界 - - Args: - threshold: 差异阈值 - Returns: - List[int]: 镜头边界帧的索引列表 + Dict[str, str]: 包含视频基本信息的字典 """ - shot_boundaries = [] - prev_frame = None - prev_idx = -1 - - pbar = tqdm(self.preprocess_video(), - total=self.total_frames, - desc="检测镜头边界", - unit="帧") - - for frame_idx, curr_frame in pbar: - if prev_frame is not None: - prev_gray = cv2.cvtColor(prev_frame, cv2.COLOR_BGR2GRAY) - curr_gray = cv2.cvtColor(curr_frame, cv2.COLOR_BGR2GRAY) - - diff = np.mean(np.abs(curr_gray.astype(float) - prev_gray.astype(float))) - if diff > threshold: - shot_boundaries.append(frame_idx) - pbar.set_postfix({"检测到边界": len(shot_boundaries)}) - - prev_frame = curr_frame.copy() - prev_idx = frame_idx - - del curr_frame - if frame_idx % 100 == 0: - gc.collect() - - return shot_boundaries + cmd = [ + "ffprobe", + "-v", "error", + "-select_streams", "v:0", + "-show_entries", "stream=width,height,r_frame_rate,duration", + "-of", "default=noprint_wrappers=1:nokey=0", + self.video_path + ] - def process_shot(self, shot_frames: List[Tuple[int, np.ndarray]]) -> Tuple[np.ndarray, int]: - """ - 处理单个镜头的帧 - - Args: - shot_frames: 镜头中的帧列表 + try: + result = subprocess.run(cmd, capture_output=True, text=True, check=True) + lines = result.stdout.strip().split('\n') + info = {} + for line in lines: + if '=' in line: + key, value = line.split('=', 1) + info[key] = value + # 处理帧率(可能是分数形式) + if 'r_frame_rate' in info: + try: + num, den = map(int, info['r_frame_rate'].split('/')) + info['fps'] = str(num / den) + except ValueError: + info['fps'] = info.get('r_frame_rate', '25') + + return info + + except subprocess.CalledProcessError as e: + logger.error(f"获取视频信息失败: {e.stderr}") + return { + 'width': '1280', + 'height': '720', + 'fps': '25', + 'duration': '0' + } + + def extract_frames_by_interval(self, output_dir: str, interval_seconds: float = 5.0, + use_hw_accel: bool = True, skip_seconds: float = 0.0) -> List[int]: + """ + 按指定时间间隔提取视频帧 + + Args: + output_dir: 输出目录 + interval_seconds: 帧提取间隔(秒) + use_hw_accel: 是否使用硬件加速 + skip_seconds: 跳过视频开头的秒数 + Returns: - Tuple[np.ndarray, int]: (关键帧, 帧索引) + List[int]: 提取的帧号列表 """ - if not shot_frames: - return None, -1 - - frame_features = [] - frame_indices = [] + if not os.path.exists(output_dir): + os.makedirs(output_dir) - for idx, frame in tqdm(shot_frames, - desc="处理镜头帧", - unit="帧", - leave=False): - gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) - resized_gray = cv2.resize(gray, (32, 32)) - frame_features.append(resized_gray.flatten()) - frame_indices.append(idx) - - frame_features = np.array(frame_features) + # 计算起始时间和帧提取点 + start_time = skip_seconds + end_time = self.duration + extraction_times = [] - kmeans = MiniBatchKMeans(n_clusters=1, batch_size=min(len(frame_features), 100), - random_state=0).fit(frame_features) + current_time = start_time + while current_time < end_time: + extraction_times.append(current_time) + current_time += interval_seconds - center_idx = np.argmin(np.sum((frame_features - kmeans.cluster_centers_[0]) ** 2, axis=1)) - - return shot_frames[center_idx][1], frame_indices[center_idx] + if not extraction_times: + logger.warning("未找到需要提取的帧") + return [] - def extract_keyframes(self, shot_boundaries: List[int]) -> Generator[Tuple[np.ndarray, int], None, None]: - """ - 使用生成器方式提取关键帧 + # 确定硬件加速器选项 + hw_accel = [] + if use_hw_accel: + # 尝试检测可用的硬件加速器 + hw_accel_options = self._detect_hw_accelerator() + if hw_accel_options: + hw_accel = hw_accel_options + logger.info(f"使用硬件加速: {' '.join(hw_accel)}") + else: + logger.warning("未检测到可用的硬件加速器,使用软件解码") - Args: - shot_boundaries: 镜头边界列表 + # 提取帧 + frame_numbers = [] + for i, timestamp in enumerate(tqdm(extraction_times, desc="提取视频帧")): + frame_number = int(timestamp * self.fps) + frame_numbers.append(frame_number) - Yields: - Tuple[np.ndarray, int]: (关键帧, 帧索引) - """ - shot_frames = [] - current_shot_start = 0 + # 格式化时间戳字符串 (HHMMSSmmm) + hours = int(timestamp // 3600) + minutes = int((timestamp % 3600) // 60) + seconds = int(timestamp % 60) + milliseconds = int((timestamp % 1) * 1000) + time_str = f"{hours:02d}{minutes:02d}{seconds:02d}{milliseconds:03d}" + + output_path = os.path.join(output_dir, f"keyframe_{frame_number:06d}_{time_str}.jpg") + + # 使用ffmpeg提取单帧 + cmd = [ + "ffmpeg", + "-hide_banner", + "-loglevel", "error", + ] + + # 添加硬件加速参数 + cmd.extend(hw_accel) + + cmd.extend([ + "-ss", str(timestamp), + "-i", self.video_path, + "-vframes", "1", + "-q:v", "1", # 最高质量 + "-y", + output_path + ]) + + try: + subprocess.run(cmd, check=True, capture_output=True) + except subprocess.CalledProcessError as e: + logger.warning(f"提取帧 {frame_number} 失败: {e.stderr}") - for frame_idx, frame in self.preprocess_video(): - if frame_idx in shot_boundaries: - if shot_frames: - keyframe, keyframe_idx = self.process_shot(shot_frames) - if keyframe is not None: - yield keyframe, keyframe_idx - - # 清理内存 - shot_frames.clear() - gc.collect() + logger.info(f"成功提取了 {len(frame_numbers)} 个视频帧") + return frame_numbers + + def _detect_hw_accelerator(self) -> List[str]: + """ + 检测系统可用的硬件加速器 + + Returns: + List[str]: 硬件加速器ffmpeg命令参数 + """ + # 检测操作系统 + import platform + system = platform.system().lower() + + # 测试不同的硬件加速器 + accelerators = [] + + if system == 'darwin': # macOS + # 测试 videotoolbox (Apple 硬件加速) + test_cmd = [ + "ffmpeg", + "-hide_banner", + "-loglevel", "error", + "-hwaccel", "videotoolbox", + "-i", self.video_path, + "-t", "0.1", + "-f", "null", + "-" + ] + try: + subprocess.run(test_cmd, capture_output=True, check=True) + return ["-hwaccel", "videotoolbox"] + except subprocess.CalledProcessError: + pass - current_shot_start = frame_idx + elif system == 'linux': + # 测试 VAAPI + test_cmd = [ + "ffmpeg", + "-hide_banner", + "-loglevel", "error", + "-hwaccel", "vaapi", + "-i", self.video_path, + "-t", "0.1", + "-f", "null", + "-" + ] + try: + subprocess.run(test_cmd, capture_output=True, check=True) + return ["-hwaccel", "vaapi"] + except subprocess.CalledProcessError: + pass - shot_frames.append((frame_idx, frame)) - - # 控制单个镜头的最大帧数 - if len(shot_frames) > self.batch_size: - keyframe, keyframe_idx = self.process_shot(shot_frames) - if keyframe is not None: - yield keyframe, keyframe_idx - shot_frames.clear() - gc.collect() + # 尝试 CUDA + test_cmd = [ + "ffmpeg", + "-hide_banner", + "-loglevel", "error", + "-hwaccel", "cuda", + "-i", self.video_path, + "-t", "0.1", + "-f", "null", + "-" + ] + try: + subprocess.run(test_cmd, capture_output=True, check=True) + return ["-hwaccel", "cuda"] + except subprocess.CalledProcessError: + pass + + elif system == 'windows': + # 测试 CUDA + test_cmd = [ + "ffmpeg", + "-hide_banner", + "-loglevel", "error", + "-hwaccel", "cuda", + "-i", self.video_path, + "-t", "0.1", + "-f", "null", + "-" + ] + try: + subprocess.run(test_cmd, capture_output=True, check=True) + return ["-hwaccel", "cuda"] + except subprocess.CalledProcessError: + pass + + # 测试 D3D11VA + test_cmd = [ + "ffmpeg", + "-hide_banner", + "-loglevel", "error", + "-hwaccel", "d3d11va", + "-i", self.video_path, + "-t", "0.1", + "-f", "null", + "-" + ] + try: + subprocess.run(test_cmd, capture_output=True, check=True) + return ["-hwaccel", "d3d11va"] + except subprocess.CalledProcessError: + pass + + # 测试 DXVA2 + test_cmd = [ + "ffmpeg", + "-hide_banner", + "-loglevel", "error", + "-hwaccel", "dxva2", + "-i", self.video_path, + "-t", "0.1", + "-f", "null", + "-" + ] + try: + subprocess.run(test_cmd, capture_output=True, check=True) + return ["-hwaccel", "dxva2"] + except subprocess.CalledProcessError: + pass - # 处理最后一个镜头 - if shot_frames: - keyframe, keyframe_idx = self.process_shot(shot_frames) - if keyframe is not None: - yield keyframe, keyframe_idx + # 如果没有找到可用的硬件加速器 + return [] - def process_video(self, output_dir: str, skip_seconds: float = 0) -> None: + def process_video_pipeline(self, + output_dir: str, + skip_seconds: float = 0.0, + threshold: int = 20, # 此参数保留但不使用 + compressed_width: int = 320, # 此参数保留但不使用 + keep_temp: bool = False, # 此参数保留但不使用 + interval_seconds: float = 5.0, + use_hw_accel: bool = True) -> None: """ - 处理视频并提取关键帧,使用分批处理方式 + 执行简化的视频处理流程,直接从原视频按固定时间间隔提取帧 Args: output_dir: 输出目录 skip_seconds: 跳过视频开头的秒数 + threshold: 保留参数,不使用 + compressed_width: 保留参数,不使用 + keep_temp: 保留参数,不使用 + interval_seconds: 帧提取间隔(秒) + use_hw_accel: 是否使用硬件加速 """ + # 创建输出目录 + os.makedirs(output_dir, exist_ok=True) + try: - # 创建输出目录 - os.makedirs(output_dir, exist_ok=True) - - # 计算要跳过的帧数 - skip_frames = int(skip_seconds * self.fps) - self.cap.set(cv2.CAP_PROP_POS_FRAMES, skip_frames) - - # 检测镜头边界 - logger.info("开始检测镜头边界...") - shot_boundaries = self.detect_shot_boundaries() - - # 提取关键帧 - logger.info("开始提取关键帧...") - frame_count = 0 - - pbar = tqdm(self.extract_keyframes(shot_boundaries), - desc="提取关键帧", - unit="帧") - - for keyframe, frame_idx in pbar: - if frame_idx < skip_frames: - continue - - # 计算时间戳 - timestamp = frame_idx / self.fps - hours = int(timestamp // 3600) - minutes = int((timestamp % 3600) // 60) - seconds = int(timestamp % 60) - time_str = f"{hours:02d}{minutes:02d}{seconds:02d}" - - # 保存关键帧 - output_path = os.path.join(output_dir, - f'keyframe_{frame_idx:06d}_{time_str}.jpg') - cv2.imwrite(output_path, keyframe) - frame_count += 1 - - pbar.set_postfix({"已保存": frame_count}) - - if frame_count % 10 == 0: - gc.collect() - - logger.info(f"关键帧提取完成,共保存 {frame_count} 帧到 {output_dir}") + # 直接从原视频提取关键帧 + logger.info("从视频直接提取关键帧...") + self.extract_frames_by_interval( + output_dir, + interval_seconds=interval_seconds, + use_hw_accel=use_hw_accel, + skip_seconds=skip_seconds + ) + logger.info(f"处理完成!视频帧已保存在: {output_dir}") + except Exception as e: - logger.error(f"视频处理失败: {str(e)}") + import traceback + logger.error(f"视频处理失败: \n{traceback.format_exc()}") raise - finally: - # 确保资源被释放 - self.cap.release() - gc.collect() + + +if __name__ == "__main__": + import time + + start_time = time.time() + + # 使用示例 + processor = VideoProcessor("./resource/videos/test.mp4") + + # 设置间隔为3秒提取帧 + processor.process_video_pipeline( + output_dir="output", + interval_seconds=3.0, + use_hw_accel=True + ) + + end_time = time.time() + print(f"处理完成!总耗时: {end_time - start_time:.2f} 秒") diff --git a/app/utils/video_processor_v2.py b/app/utils/video_processor_v2.py deleted file mode 100644 index 825306b..0000000 --- a/app/utils/video_processor_v2.py +++ /dev/null @@ -1,382 +0,0 @@ -import cv2 -import numpy as np -from sklearn.cluster import KMeans -import os -import re -from typing import List, Tuple, Generator -from loguru import logger -import subprocess -from tqdm import tqdm - - -class VideoProcessor: - def __init__(self, video_path: str): - """ - 初始化视频处理器 - - Args: - video_path: 视频文件路径 - """ - if not os.path.exists(video_path): - raise FileNotFoundError(f"视频文件不存在: {video_path}") - - self.video_path = video_path - self.cap = cv2.VideoCapture(video_path) - - if not self.cap.isOpened(): - raise RuntimeError(f"无法打开视频文件: {video_path}") - - self.total_frames = int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT)) - self.fps = int(self.cap.get(cv2.CAP_PROP_FPS)) - - def __del__(self): - """析构函数,确保视频资源被释放""" - if hasattr(self, 'cap'): - self.cap.release() - - def preprocess_video(self) -> Generator[np.ndarray, None, None]: - """ - 使用生成器方式读取视频帧 - - Yields: - np.ndarray: 视频帧 - """ - self.cap.set(cv2.CAP_PROP_POS_FRAMES, 0) # 重置到视频开始 - while self.cap.isOpened(): - ret, frame = self.cap.read() - if not ret: - break - yield frame - - def detect_shot_boundaries(self, frames: List[np.ndarray], threshold: int = 30) -> List[int]: - """ - 使用帧差法检测镜头边界 - - Args: - frames: 视频帧列表 - threshold: 差异阈值,默认值调低为30 - - Returns: - List[int]: 镜头边界帧的索引列表 - """ - shot_boundaries = [] - if len(frames) < 2: # 添加帧数检查 - logger.warning("视频帧数过少,无法检测场景边界") - return [len(frames) - 1] # 返回最后一帧作为边界 - - for i in range(1, len(frames)): - prev_frame = cv2.cvtColor(frames[i - 1], cv2.COLOR_BGR2GRAY) - curr_frame = cv2.cvtColor(frames[i], cv2.COLOR_BGR2GRAY) - - # 计算帧差 - diff = np.mean(np.abs(curr_frame.astype(float) - prev_frame.astype(float))) - - if diff > threshold: - shot_boundaries.append(i) - - # 如果没有检测到任何边界,至少返回最后一帧 - if not shot_boundaries: - logger.warning("未检测到场景边界,将视频作为单个场景处理") - shot_boundaries.append(len(frames) - 1) - - return shot_boundaries - - def extract_keyframes(self, frames: List[np.ndarray], shot_boundaries: List[int]) -> Tuple[ - List[np.ndarray], List[int]]: - """ - 从每个镜头中提取关键帧 - - Args: - frames: 视频帧列表 - shot_boundaries: 镜头边界列表 - - Returns: - Tuple[List[np.ndarray], List[int]]: 关键帧列表和对应的帧索引 - """ - keyframes = [] - keyframe_indices = [] - - for i in tqdm(range(len(shot_boundaries)), desc="提取关键帧"): - start = shot_boundaries[i - 1] if i > 0 else 0 - end = shot_boundaries[i] - shot_frames = frames[start:end] - - if not shot_frames: - continue - - # 将每一帧转换为灰度图并展平为一维数组 - frame_features = np.array([cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY).flatten() - for frame in shot_frames]) - - try: - # 尝试使用 KMeans - kmeans = KMeans(n_clusters=1, random_state=0).fit(frame_features) - center_idx = np.argmin(np.sum((frame_features - kmeans.cluster_centers_[0]) ** 2, axis=1)) - except Exception as e: - logger.warning(f"KMeans 聚类失败,使用备选方案: {str(e)}") - # 备选方案:选择镜头中间的帧作为关键帧 - center_idx = len(shot_frames) // 2 - - keyframes.append(shot_frames[center_idx]) - keyframe_indices.append(start + center_idx) - - return keyframes, keyframe_indices - - def save_keyframes(self, keyframes: List[np.ndarray], keyframe_indices: List[int], - output_dir: str, desc: str = "保存关键帧") -> None: - """ - 保存关键帧到指定目录,文件名格式为:keyframe_帧序号_时间戳.jpg - 时间戳精确到毫秒,格式为:HHMMSSmmm - """ - if not os.path.exists(output_dir): - os.makedirs(output_dir) - - for keyframe, frame_idx in tqdm(zip(keyframes, keyframe_indices), - total=len(keyframes), - desc=desc): - # 计算精确到毫秒的时间戳 - timestamp = frame_idx / self.fps - hours = int(timestamp // 3600) - minutes = int((timestamp % 3600) // 60) - seconds = int(timestamp % 60) - milliseconds = int((timestamp % 1) * 1000) # 计算毫秒部分 - time_str = f"{hours:02d}{minutes:02d}{seconds:02d}{milliseconds:03d}" - - output_path = os.path.join(output_dir, - f'keyframe_{frame_idx:06d}_{time_str}.jpg') - cv2.imwrite(output_path, keyframe) - - def extract_frames_by_numbers(self, frame_numbers: List[int], output_folder: str) -> None: - """ - 根据指定的帧号提取帧,如果多个帧在同一毫秒内,只保留一个 - """ - if not frame_numbers: - raise ValueError("未提供帧号列表") - - if any(fn >= self.total_frames or fn < 0 for fn in frame_numbers): - raise ValueError("存在无效的帧号") - - if not os.path.exists(output_folder): - os.makedirs(output_folder) - - # 用于记录已处理的时间戳(毫秒) - processed_timestamps = set() - - for frame_number in tqdm(frame_numbers, desc="提取高清帧"): - # 计算精确到毫秒的时间戳 - timestamp = frame_number / self.fps - timestamp_ms = int(timestamp * 1000) # 转换为毫秒 - - # 如果这一毫秒已经处理过,跳过 - if timestamp_ms in processed_timestamps: - continue - - self.cap.set(cv2.CAP_PROP_POS_FRAMES, frame_number) - ret, frame = self.cap.read() - - if ret: - # 记录这一毫秒已经处理 - processed_timestamps.add(timestamp_ms) - - # 计算时间戳字符串 - hours = int(timestamp // 3600) - minutes = int((timestamp % 3600) // 60) - seconds = int(timestamp % 60) - milliseconds = int((timestamp % 1) * 1000) # 计算毫秒部分 - time_str = f"{hours:02d}{minutes:02d}{seconds:02d}{milliseconds:03d}" - - output_path = os.path.join(output_folder, - f"keyframe_{frame_number:06d}_{time_str}.jpg") - cv2.imwrite(output_path, frame) - else: - logger.info(f"无法读取帧 {frame_number}") - - logger.info(f"共提取了 {len(processed_timestamps)} 个不同时间戳的帧") - - @staticmethod - def extract_numbers_from_folder(folder_path: str) -> List[int]: - """ - 从文件夹中提取帧号 - - Args: - folder_path: 关键帧文件夹路径 - - Returns: - List[int]: 排序后的帧号列表 - """ - files = [f for f in os.listdir(folder_path) if f.endswith('.jpg')] - # 更新正则表达式以匹配新的文件名格式:keyframe_000123_010534123.jpg - pattern = re.compile(r'keyframe_(\d+)_\d{9}\.jpg$') - numbers = [] - - for f in files: - match = pattern.search(f) - if match: - numbers.append(int(match.group(1))) - else: - logger.warning(f"文件名格式不匹配: {f}") - - if not numbers: - logger.error(f"在目录 {folder_path} 中未找到有效的关键帧文件") - - return sorted(numbers) - - def process_video(self, output_dir: str, skip_seconds: float = 0, threshold: int = 30) -> None: - """ - 处理视频并提取关键帧 - - Args: - output_dir: 输出目录 - skip_seconds: 跳过视频开头的秒数 - """ - skip_frames = int(skip_seconds * self.fps) - - logger.info("读取视频帧...") - frames = [] - for frame in tqdm(self.preprocess_video(), - total=self.total_frames, - desc="读取视频"): - frames.append(frame) - - frames = frames[skip_frames:] - - if not frames: - raise ValueError(f"跳过 {skip_seconds} 秒后没有剩余帧可以处理") - - logger.info("检测场景边界...") - shot_boundaries = self.detect_shot_boundaries(frames, threshold) - logger.info(f"检测到 {len(shot_boundaries)} 个场景边界") - - keyframes, keyframe_indices = self.extract_keyframes(frames, shot_boundaries) - - adjusted_indices = [idx + skip_frames for idx in keyframe_indices] - self.save_keyframes(keyframes, adjusted_indices, output_dir, desc="保存压缩关键帧") - - def process_video_pipeline(self, - output_dir: str, - skip_seconds: float = 0, - threshold: int = 20, # 降低默认阈值 - compressed_width: int = 320, - keep_temp: bool = False) -> None: - """ - 执行完整的视频处理流程 - - Args: - threshold: 降低默认阈值为20,使场景检测更敏感 - """ - os.makedirs(output_dir, exist_ok=True) - temp_dir = os.path.join(output_dir, 'temp') - compressed_dir = os.path.join(temp_dir, 'compressed') - mini_frames_dir = os.path.join(temp_dir, 'mini_frames') - hd_frames_dir = output_dir - - os.makedirs(temp_dir, exist_ok=True) - os.makedirs(compressed_dir, exist_ok=True) - os.makedirs(mini_frames_dir, exist_ok=True) - os.makedirs(hd_frames_dir, exist_ok=True) - - mini_processor = None - compressed_video = None - - try: - # 1. 压缩视频 - video_name = os.path.splitext(os.path.basename(self.video_path))[0] - compressed_video = os.path.join(compressed_dir, f"{video_name}_compressed.mp4") - - # 获取原始视频的宽度和高度 - original_width = int(self.cap.get(cv2.CAP_PROP_FRAME_WIDTH)) - original_height = int(self.cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) - - logger.info("步骤1: 压缩视频...") - if original_width > original_height: - # 横版视频 - scale_filter = f'scale={compressed_width}:-1' - else: - # 竖版视频 - scale_filter = f'scale=-1:{compressed_width}' - - ffmpeg_cmd = [ - 'ffmpeg', '-i', self.video_path, - '-vf', scale_filter, - '-y', - compressed_video - ] - - try: - subprocess.run(ffmpeg_cmd, check=True, capture_output=True, text=True) - except subprocess.CalledProcessError as e: - logger.error(f"FFmpeg 错误输出: {e.stderr}") - raise - - # 2. 从压缩视频中提取关键帧 - logger.info("\n步骤2: 从压缩视频提取关键帧...") - mini_processor = VideoProcessor(compressed_video) - mini_processor.process_video(mini_frames_dir, skip_seconds, threshold) - - # 3. 从原始视频提取高清关键帧 - logger.info("\n步骤3: 提取高清关键帧...") - frame_numbers = self.extract_numbers_from_folder(mini_frames_dir) - - if not frame_numbers: - raise ValueError("未能从压缩视频中提取到有效的关键帧") - - self.extract_frames_by_numbers(frame_numbers, hd_frames_dir) - - logger.info(f"处理完成!高清关键帧保存在: {hd_frames_dir}") - - except Exception as e: - import traceback - logger.error(f"视频处理失败: \n{traceback.format_exc()}") - raise - - finally: - # 释放资源 - if mini_processor: - mini_processor.cap.release() - del mini_processor - - # 确保视频文件句柄被释放 - if hasattr(self, 'cap'): - self.cap.release() - - # 等待资源释放 - import time - time.sleep(0.5) - - if not keep_temp: - try: - # 先删除压缩视频文件 - if compressed_video and os.path.exists(compressed_video): - try: - os.remove(compressed_video) - except Exception as e: - logger.warning(f"删除压缩视频失败: {e}") - - # 再删除临时目录 - import shutil - if os.path.exists(temp_dir): - max_retries = 3 - for i in range(max_retries): - try: - shutil.rmtree(temp_dir) - break - except Exception as e: - if i == max_retries - 1: - logger.warning(f"清理临时文件失败: {e}") - else: - time.sleep(1) # 等待1秒后重试 - continue - - logger.info("临时文件已清理") - except Exception as e: - logger.warning(f"清理临时文件时出错: {e}") - - -if __name__ == "__main__": - import time - - start_time = time.time() - processor = VideoProcessor("E:\\projects\\NarratoAI\\resource\\videos\\test.mp4") - processor.process_video_pipeline(output_dir="output") - end_time = time.time() - print(f"处理完成!总耗时: {end_time - start_time:.2f} 秒") diff --git a/config.example.toml b/config.example.toml index 5620744..835a8e9 100644 --- a/config.example.toml +++ b/config.example.toml @@ -1,5 +1,5 @@ [app] - project_version="0.5.3" + project_version="0.6.0" # 支持视频理解的大模型提供商 # gemini # qwenvl diff --git a/requirements.txt b/requirements.txt index 723fa43..207865b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,38 +1,45 @@ +# 必须项 requests~=2.32.0 moviepy==2.1.1 edge-tts==6.1.19 streamlit~=1.45.0 +watchdog==6.0.0 +loguru~=0.7.3 +tomli~=2.2.1 openai~=1.77.0 google-generativeai>=0.8.5 -loguru~=0.7.2 -fastapi~=0.115.4 -uvicorn~=0.27.1 -pydantic~=2.11.4 +# 待优化项 +# opencv-python==4.11.0.86 +# scikit-learn==1.6.1 -faster-whisper~=1.0.1 -tomli~=2.0.1 -aiohttp~=3.10.10 -httpx==0.27.2 -urllib3~=2.2.1 +# fastapi~=0.115.4 +# uvicorn~=0.27.1 +# pydantic~=2.11.4 -python-multipart~=0.0.9 -redis==5.0.3 -opencv-python~=4.10.0.84 -azure-cognitiveservices-speech~=1.37.0 -git-changelog~=2.5.2 -watchdog==5.0.2 -pydub==0.25.1 -psutil>=5.9.0 -scikit-learn~=1.5.2 -pillow==10.3.0 -python-dotenv~=1.0.1 +# faster-whisper~=1.0.1 +# tomli~=2.0.1 +# aiohttp~=3.10.10 +# httpx==0.27.2 +# urllib3~=2.2.1 -tqdm>=4.66.6 -tenacity>=9.0.0 -tiktoken==0.8.0 -pysrt==1.1.2 -transformers==4.50.0 +# python-multipart~=0.0.9 +# redis==5.0.3 +# opencv-python~=4.10.0.84 +# azure-cognitiveservices-speech~=1.37.0 +# git-changelog~=2.5.2 +# watchdog==5.0.2 +# pydub==0.25.1 +# psutil>=5.9.0 +# scikit-learn~=1.5.2 +# pillow==10.3.0 +# python-dotenv~=1.0.1 + +# tqdm>=4.66.6 +# tenacity>=9.0.0 +# tiktoken==0.8.0 +# pysrt==1.1.2 +# transformers==4.50.0 # yt-dlp==2025.4.30 \ No newline at end of file diff --git a/webui.py b/webui.py index 1f605b5..5f296cd 100644 --- a/webui.py +++ b/webui.py @@ -1,7 +1,7 @@ import streamlit as st import os import sys -from uuid import uuid4 +from loguru import logger from app.config import config from webui.components import basic_settings, video_settings, audio_settings, subtitle_settings, script_settings, \ review_settings, merge_settings, system_settings @@ -18,7 +18,7 @@ st.set_page_config( initial_sidebar_state="auto", menu_items={ "Report a bug": "https://github.com/linyqh/NarratoAI/issues", - 'About': f"# NarratoAI:sunglasses: 📽️ \n #### Version: v{config.project_version} \n " + 'About': f"# Narrato:blue[AI] :sunglasses: 📽️ \n #### Version: v{config.project_version} \n " f"自动化影视解说视频详情请移步:https://github.com/linyqh/NarratoAI" }, ) @@ -37,17 +37,7 @@ def init_log(): _lvl = "DEBUG" def format_record(record): - # 增加更多需要过滤的警告消息 - ignore_messages = [ - "Examining the path of torch.classes raised", - "torch.cuda.is_available()", - "CUDA initialization" - ] - - for msg in ignore_messages: - if msg in record["message"]: - return "" - + # 简化日志格式化处理,不尝试按特定字符串过滤torch相关内容 file_path = record["file"].path relative_path = os.path.relpath(file_path, config.root_dir) record["file"].path = f"./{relative_path}" @@ -59,23 +49,53 @@ def init_log(): '- {message}' + "\n" return _format - # 优化日志过滤器 - def log_filter(record): - ignore_messages = [ - "Examining the path of torch.classes raised", - "torch.cuda.is_available()", - "CUDA initialization" - ] - return not any(msg in record["message"] for msg in ignore_messages) - + # 替换为更简单的过滤方式,避免在过滤时访问message内容 + # 此处先不设置复杂的过滤器,等应用启动后再动态添加 logger.add( sys.stdout, level=_lvl, format=format_record, - colorize=True, - filter=log_filter + colorize=True ) + # 应用启动后,可以再添加更复杂的过滤器 + def setup_advanced_filters(): + """在应用完全启动后设置高级过滤器""" + try: + for handler_id in logger._core.handlers: + logger.remove(handler_id) + + # 重新添加带有高级过滤的处理器 + def advanced_filter(record): + """更复杂的过滤器,在应用启动后安全使用""" + ignore_messages = [ + "Examining the path of torch.classes raised", + "torch.cuda.is_available()", + "CUDA initialization" + ] + return not any(msg in record["message"] for msg in ignore_messages) + + logger.add( + sys.stdout, + level=_lvl, + format=format_record, + colorize=True, + filter=advanced_filter + ) + except Exception as e: + # 如果过滤器设置失败,确保日志仍然可用 + logger.add( + sys.stdout, + level=_lvl, + format=format_record, + colorize=True + ) + logger.error(f"设置高级日志过滤器失败: {e}") + + # 将高级过滤器设置放到启动主逻辑后 + import threading + threading.Timer(5.0, setup_advanced_filters).start() + def init_global_state(): """初始化全局状态""" @@ -177,11 +197,18 @@ def main(): """主函数""" init_log() init_global_state() - utils.init_resources() + + # 仅初始化基本资源,避免过早地加载依赖PyTorch的资源 + # 检查是否能分解utils.init_resources()为基本资源和高级资源(如依赖PyTorch的资源) + try: + utils.init_resources() + except Exception as e: + logger.warning(f"资源初始化时出现警告: {e}") - st.title(f"NarratoAI :sunglasses:📽️") + st.title(f"Narrato:blue[AI]:sunglasses: 📽️") st.write(tr("Get Help")) + # 首先渲染不依赖PyTorch的UI部分 # 渲染基础设置面板 basic_settings.render_basic_settings(tr) # 渲染合并设置 @@ -196,13 +223,16 @@ def main(): audio_settings.render_audio_panel(tr) with panel[2]: subtitle_settings.render_subtitle_panel(tr) - # 渲染系统设置面板 - system_settings.render_system_panel(tr) - + # 渲染视频审查面板 review_settings.render_review_panel(tr) - - # 渲染生成按钮和处理逻辑 + + # 放到最后渲染可能使用PyTorch的部分 + # 渲染系统设置面板 + with panel[2]: + system_settings.render_system_panel(tr) + + # 放到最后渲染生成按钮和处理逻辑 render_generate_button() diff --git a/webui/components/merge_settings.py b/webui/components/merge_settings.py index 99b8b43..edaa183 100644 --- a/webui/components/merge_settings.py +++ b/webui/components/merge_settings.py @@ -285,8 +285,8 @@ def render_merge_settings(tr): error_message = str(e) if "moviepy" in error_message.lower(): st.error(tr("Error processing video files. Please check if the videos are valid MP4 files.")) - elif "pysrt" in error_message.lower(): - st.error(tr("Error processing subtitle files. Please check if the subtitles are valid SRT files.")) + # elif "pysrt" in error_message.lower(): + # st.error(tr("Error processing subtitle files. Please check if the subtitles are valid SRT files.")) else: st.error(f"{tr('Error during merge')}: {error_message}") diff --git a/webui/tools/generate_script_docu.py b/webui/tools/generate_script_docu.py index 6552ebf..a580f64 100644 --- a/webui/tools/generate_script_docu.py +++ b/webui/tools/generate_script_docu.py @@ -5,6 +5,7 @@ import time import asyncio import traceback import requests +from app.utils import video_processor import streamlit as st from loguru import logger from requests.adapters import HTTPAdapter @@ -12,7 +13,7 @@ from urllib3.util.retry import Retry from app.config import config from app.utils.script_generator import ScriptProcessor -from app.utils import utils, video_processor, video_processor_v2, qwenvl_analyzer +from app.utils import utils, video_processor, qwenvl_analyzer from webui.tools.base import create_vision_analyzer, get_batch_files, get_batch_timestamps, chekc_video_config @@ -64,21 +65,13 @@ def generate_script_docu(tr, params): os.makedirs(video_keyframes_dir, exist_ok=True) # 初始化视频处理器 - if config.frames.get("version") == "v2": - processor = video_processor_v2.VideoProcessor(params.video_origin_path) - # 处理视频并提取关键帧 - processor.process_video_pipeline( - output_dir=video_keyframes_dir, - skip_seconds=st.session_state.get('skip_seconds'), - threshold=st.session_state.get('threshold') - ) - else: - processor = video_processor.VideoProcessor(params.video_origin_path) - # 处理视频并提取关键帧 - processor.process_video( - output_dir=video_keyframes_dir, - skip_seconds=0 - ) + processor = video_processor.VideoProcessor(params.video_origin_path) + # 处理视频并提取关键帧 + processor.process_video_pipeline( + output_dir=video_keyframes_dir, + skip_seconds=st.session_state.get('skip_seconds'), + threshold=st.session_state.get('threshold') + ) # 获取所有关键文件路径 for filename in sorted(os.listdir(video_keyframes_dir)): diff --git a/webui/utils/merge_video.py b/webui/utils/merge_video.py index 6c8503c..9fa2b39 100644 --- a/webui/utils/merge_video.py +++ b/webui/utils/merge_video.py @@ -2,7 +2,7 @@ 合并视频和字幕文件 """ from moviepy import VideoFileClip, concatenate_videoclips -import pysrt +# import pysrt import os diff --git a/webui/utils/performance.py b/webui/utils/performance.py index 0eab5fa..d0af06c 100644 --- a/webui/utils/performance.py +++ b/webui/utils/performance.py @@ -1,7 +1,6 @@ -import psutil +# import psutil import os from loguru import logger -import torch class PerformanceMonitor: @staticmethod @@ -11,19 +10,35 @@ class PerformanceMonitor: logger.debug(f"Memory usage: {memory_info.rss / 1024 / 1024:.2f} MB") - if torch.cuda.is_available(): - gpu_memory = torch.cuda.memory_allocated() / 1024 / 1024 - logger.debug(f"GPU Memory usage: {gpu_memory:.2f} MB") + # 延迟导入torch并检查CUDA + try: + import torch + if torch.cuda.is_available(): + gpu_memory = torch.cuda.memory_allocated() / 1024 / 1024 + logger.debug(f"GPU Memory usage: {gpu_memory:.2f} MB") + except (ImportError, RuntimeError) as e: + # 无法导入torch或触发CUDA相关错误时,静默处理 + logger.debug(f"无法获取GPU内存信息: {e}") @staticmethod def cleanup_resources(): - if torch.cuda.is_available(): - torch.cuda.empty_cache() + # 延迟导入torch并清理CUDA + try: + import torch + if torch.cuda.is_available(): + torch.cuda.empty_cache() + logger.debug("CUDA缓存已清理") + except (ImportError, RuntimeError) as e: + # 无法导入torch或触发CUDA相关错误时,静默处理 + logger.debug(f"无法清理CUDA资源: {e}") import gc gc.collect() - PerformanceMonitor.monitor_memory() + # 仅报告进程内存,不尝试获取GPU内存 + process = psutil.Process(os.getpid()) + memory_info = process.memory_info() + logger.debug(f"Memory usage after cleanup: {memory_info.rss / 1024 / 1024:.2f} MB") def monitor_performance(func): """性能监控装饰器""" From 82823297f2e293823f18d24e2dad00b97e7ef6c4 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 16:43:00 +0800 Subject: [PATCH 17/31] =?UTF-8?q?feat(script):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=B8=A7=E9=97=B4=E9=9A=94=E8=BE=93=E5=85=A5=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=B9=B6=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 GenerateScriptRequest 和 ScriptGenerator 中新增 frame_interval_input 参数,默认为 5 - 更新 VideoProcessor 的 process_video_pipeline 方法,调整帧提取间隔逻辑 - 修改前端界面,增加帧间隔输入框并更新相关翻译文本 - 优化 generate_script_docu 函数,使用新的帧间隔参数进行视频处理 --- app/models/schema_v2.py | 1 + app/services/script_service.py | 1 + app/utils/video_processor.py | 10 ++------ webui/components/script_settings.py | 39 +++++++---------------------- webui/i18n/en.json | 3 ++- webui/i18n/zh.json | 4 ++- webui/tools/generate_script_docu.py | 8 +++--- 7 files changed, 23 insertions(+), 43 deletions(-) diff --git a/app/models/schema_v2.py b/app/models/schema_v2.py index 1611a3b..8584c75 100644 --- a/app/models/schema_v2.py +++ b/app/models/schema_v2.py @@ -6,6 +6,7 @@ class GenerateScriptRequest(BaseModel): video_path: str video_theme: Optional[str] = "" custom_prompt: Optional[str] = "" + frame_interval_input: Optional[int] = 5 skip_seconds: Optional[int] = 0 threshold: Optional[int] = 30 vision_batch_size: Optional[int] = 5 diff --git a/app/services/script_service.py b/app/services/script_service.py index f4a6f95..461978b 100644 --- a/app/services/script_service.py +++ b/app/services/script_service.py @@ -22,6 +22,7 @@ class ScriptGenerator: video_path: str, video_theme: str = "", custom_prompt: str = "", + frame_interval_input: int = 5, skip_seconds: int = 0, threshold: int = 30, vision_batch_size: int = 5, diff --git a/app/utils/video_processor.py b/app/utils/video_processor.py index a754d50..d10f8a7 100644 --- a/app/utils/video_processor.py +++ b/app/utils/video_processor.py @@ -292,10 +292,7 @@ class VideoProcessor: def process_video_pipeline(self, output_dir: str, skip_seconds: float = 0.0, - threshold: int = 20, # 此参数保留但不使用 - compressed_width: int = 320, # 此参数保留但不使用 - keep_temp: bool = False, # 此参数保留但不使用 - interval_seconds: float = 5.0, + interval_seconds: float = 5.0, # 帧提取间隔(秒) use_hw_accel: bool = True) -> None: """ 执行简化的视频处理流程,直接从原视频按固定时间间隔提取帧 @@ -303,9 +300,6 @@ class VideoProcessor: Args: output_dir: 输出目录 skip_seconds: 跳过视频开头的秒数 - threshold: 保留参数,不使用 - compressed_width: 保留参数,不使用 - keep_temp: 保留参数,不使用 interval_seconds: 帧提取间隔(秒) use_hw_accel: 是否使用硬件加速 """ @@ -314,7 +308,7 @@ class VideoProcessor: try: # 直接从原视频提取关键帧 - logger.info("从视频直接提取关键帧...") + logger.info(f"从视频间隔 {interval_seconds} 秒提取关键帧...") self.extract_frames_by_interval( output_dir, interval_seconds=interval_seconds, diff --git a/webui/components/script_settings.py b/webui/components/script_settings.py index ac5c76e..1e681b3 100644 --- a/webui/components/script_settings.py +++ b/webui/components/script_settings.py @@ -47,7 +47,7 @@ def render_script_file(tr, params): (tr("None"), ""), (tr("Auto Generate"), "auto"), (tr("Short Generate"), "short"), - (tr("Upload Script"), "upload_script") # 新增上传脚本选项 + (tr("Upload Script"), "upload_script") ] # 获取已有脚本文件 @@ -214,38 +214,16 @@ def render_script_buttons(tr, params): # 根据脚本类型显示不同的设置 if script_path != "short": # 非短视频模式下显示原有的三个输入框 - input_cols = st.columns(3) + input_cols = st.columns(2) with input_cols[0]: - skip_seconds = st.number_input( - "skip_seconds", + st.number_input( + tr("Frame Interval (seconds)"), min_value=0, - value=st.session_state.get('skip_seconds', config.frames.get('skip_seconds', 0)), - help=tr("Skip the first few seconds"), - key="skip_seconds_input" + value=st.session_state.get('frame_interval_input', config.frames.get('frame_interval_input', 5)), + help=tr("Frame Interval (seconds) (More keyframes consume more tokens)"), + key="frame_interval_input" ) - st.session_state['skip_seconds'] = skip_seconds - - with input_cols[1]: - threshold = st.number_input( - "threshold", - min_value=0, - value=st.session_state.get('threshold', config.frames.get('threshold', 30)), - help=tr("Difference threshold"), - key="threshold_input" - ) - st.session_state['threshold'] = threshold - - with input_cols[2]: - vision_batch_size = st.number_input( - "vision_batch_size", - min_value=1, - max_value=20, - value=st.session_state.get('vision_batch_size', config.frames.get('vision_batch_size', 5)), - help=tr("Vision processing batch size"), - key="vision_batch_size_input" - ) - st.session_state['vision_batch_size'] = vision_batch_size # 生成/加载按钮 if script_path == "auto": @@ -259,7 +237,8 @@ def render_script_buttons(tr, params): if st.button(button_name, key="script_action", disabled=not script_path): if script_path == "auto": - generate_script_docu(tr, params) + # 执行纪录片视频脚本生成(视频无字幕无配音) + generate_script_docu(params) elif script_path == "short": # 获取自定义片段数量参数 custom_clips = st.session_state.get('custom_clips', 5) diff --git a/webui/i18n/en.json b/webui/i18n/en.json index e0f2900..63a2c36 100644 --- a/webui/i18n/en.json +++ b/webui/i18n/en.json @@ -85,6 +85,7 @@ "TTS Provider": "TTS Provider", "Hide Log": "Hide Log", "Upload Local Files": "Upload Local Files", - "File Uploaded Successfully": "File Uploaded Successfully" + "File Uploaded Successfully": "File Uploaded Successfully", + "Frame Interval (seconds)": "Frame Interval (seconds) (More keyframes consume more tokens)" } } \ No newline at end of file diff --git a/webui/i18n/zh.json b/webui/i18n/zh.json index beb48ec..7a7a387 100644 --- a/webui/i18n/zh.json +++ b/webui/i18n/zh.json @@ -192,6 +192,8 @@ "Generate Short Video Script": "AI生成短剧混剪脚本", "Adjust the volume of the original audio": "调整原始音频的音量", "Original Volume": "视频音量", - "Auto Generate": "纪录片解说 (画面解说)" + "Auto Generate": "纪录片解说 (画面解说)", + "Frame Interval (seconds)": "帧间隔 (秒)", + "Frame Interval (seconds) (More keyframes consume more tokens)": "帧间隔 (秒) (更多关键帧消耗更多令牌)" } } diff --git a/webui/tools/generate_script_docu.py b/webui/tools/generate_script_docu.py index a580f64..7069215 100644 --- a/webui/tools/generate_script_docu.py +++ b/webui/tools/generate_script_docu.py @@ -17,9 +17,11 @@ from app.utils import utils, video_processor, qwenvl_analyzer from webui.tools.base import create_vision_analyzer, get_batch_files, get_batch_timestamps, chekc_video_config -def generate_script_docu(tr, params): +def generate_script_docu(params): """ 生成 纪录片 视频脚本 + 要求: 原视频无字幕无配音 + 适合场景: 纪录片、动物搞笑解说、荒野建造等 """ progress_bar = st.progress(0) status_text = st.empty() @@ -69,8 +71,7 @@ def generate_script_docu(tr, params): # 处理视频并提取关键帧 processor.process_video_pipeline( output_dir=video_keyframes_dir, - skip_seconds=st.session_state.get('skip_seconds'), - threshold=st.session_state.get('threshold') + interval_seconds=st.session_state.get('frame_interval_input'), ) # 获取所有关键文件路径 @@ -194,6 +195,7 @@ def generate_script_docu(tr, params): _, _, timestamp_range = get_batch_timestamps(batch_files, prev_batch_files) frame_content = { + "_id": i + 1, "timestamp": timestamp_range, "picture": result['response'], "narration": "", From 2dc83bc18edcf06f52adf928171918d9f657d5b9 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 18:44:37 +0800 Subject: [PATCH 18/31] =?UTF-8?q?perf(vision):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=A7=86=E8=A7=89=E5=88=86=E6=9E=90=E6=B5=81=E7=A8=8B=E5=92=8C?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了 vision_analysis_prompt 配置项 - 优化了 Gemini 和 QwenVL 分析器的批量处理逻辑 - 更新了文档生成脚本和 UI 组件以适应新的分析流程 - 调整了视频帧提取相关函数,移除了不必要的 skip_seconds 参数 - 更新了中文翻译文件,添加了新的批处理大小相关提示 --- app/utils/gemini_analyzer.py | 16 +++++++------ app/utils/qwenvl_analyzer.py | 22 ++++++++++-------- app/utils/video_processor.py | 10 +++----- config.example.toml | 3 +-- webui/components/script_settings.py | 11 ++++++++- webui/i18n/zh.json | 7 +++--- webui/tools/generate_script_docu.py | 36 ++++++++++++++++++++++++----- 7 files changed, 70 insertions(+), 35 deletions(-) diff --git a/app/utils/gemini_analyzer.py b/app/utils/gemini_analyzer.py index 07306c5..7236a9e 100644 --- a/app/utils/gemini_analyzer.py +++ b/app/utils/gemini_analyzer.py @@ -61,7 +61,6 @@ class VisionAnalyzer: try: # 加载图片 if isinstance(images[0], str): - logger.info("正在加载图片...") images = self.load_images(images) # 验证图片列表 @@ -81,11 +80,14 @@ class VisionAnalyzer: images = valid_images results = [] - total_batches = (len(images) + batch_size - 1) // batch_size + # 视频帧总数除以批量处理大小,如果有小数则+1 + batches_needed = len(images) // batch_size + if len(images) % batch_size > 0: + batches_needed += 1 + + logger.debug(f"视频帧总数:{len(images)}, 每批处理 {batch_size} 帧, 需要访问 VLM {batches_needed} 次") - logger.debug(f"共 {total_batches} 个批次,每批次 {batch_size} 张图片") - - with tqdm(total=total_batches, desc="分析进度") as pbar: + with tqdm(total=batches_needed, desc="分析进度") as pbar: for i in range(0, len(images), batch_size): batch = images[i:i + batch_size] retry_count = 0 @@ -93,8 +95,8 @@ class VisionAnalyzer: while retry_count < 3: try: # 在每个批次处理前添加小延迟 - if i > 0: - await asyncio.sleep(2) + # if i > 0: + # await asyncio.sleep(2) # 确保每个批次的图片都是有效的 valid_batch = [img for img in batch if isinstance(img, PIL.Image.Image)] diff --git a/app/utils/qwenvl_analyzer.py b/app/utils/qwenvl_analyzer.py index 54e6e36..ec4de39 100644 --- a/app/utils/qwenvl_analyzer.py +++ b/app/utils/qwenvl_analyzer.py @@ -80,7 +80,7 @@ class QwenAnalyzer: # 添加文本提示 content.append({ "type": "text", - "text": prompt + "text": prompt % (len(content), len(content), len(content)) }) # 调用API @@ -102,7 +102,7 @@ class QwenAnalyzer: async def analyze_images(self, images: Union[List[str], List[PIL.Image.Image]], prompt: str, - batch_size: int = 5) -> List[Dict]: + batch_size: int) -> List[Dict]: """ 批量分析多张图片 Args: @@ -118,7 +118,6 @@ class QwenAnalyzer: # 加载图片 if isinstance(images[0], str): - logger.info("正在加载图片...") images = self.load_images(images) # 验证图片列表 @@ -141,9 +140,14 @@ class QwenAnalyzer: images = valid_images results = [] - total_batches = (len(images) + batch_size - 1) // batch_size + # 视频帧总数除以批量处理大小,如果有小数则+1 + batches_needed = len(images) // batch_size + if len(images) % batch_size > 0: + batches_needed += 1 + + logger.debug(f"视频帧总数:{len(images)}, 每批处理 {batch_size} 帧, 需要访问 VLM {batches_needed} 次") - with tqdm(total=total_batches, desc="分析进度") as pbar: + with tqdm(total=batches_needed, desc="分析进度") as pbar: for i in range(0, len(images), batch_size): batch = images[i:i + batch_size] batch_paths = valid_paths[i:i + batch_size] if valid_paths else None @@ -151,9 +155,9 @@ class QwenAnalyzer: while retry_count < 3: try: - # 在每个批次处理前��加小延迟 - if i > 0: - await asyncio.sleep(2) + # 在每个批次处理前添加小延迟 + # if i > 0: + # await asyncio.sleep(0.5) # 确保每个批次的图片都是有效的 valid_batch = [img for img in batch if isinstance(img, PIL.Image.Image)] @@ -209,7 +213,7 @@ class QwenAnalyzer: for i, result in enumerate(results): response_text = result['response'] - # 如果有图片路径信息,���用它来生成文件名 + # 如果有图片路径信息,用它来生成文件名 if result.get('image_paths'): image_paths = result['image_paths'] img_name_start = Path(image_paths[0]).stem.split('_')[-1] diff --git a/app/utils/video_processor.py b/app/utils/video_processor.py index d10f8a7..1d3dd9b 100644 --- a/app/utils/video_processor.py +++ b/app/utils/video_processor.py @@ -84,7 +84,7 @@ class VideoProcessor: } def extract_frames_by_interval(self, output_dir: str, interval_seconds: float = 5.0, - use_hw_accel: bool = True, skip_seconds: float = 0.0) -> List[int]: + use_hw_accel: bool = True) -> List[int]: """ 按指定时间间隔提取视频帧 @@ -92,7 +92,6 @@ class VideoProcessor: output_dir: 输出目录 interval_seconds: 帧提取间隔(秒) use_hw_accel: 是否使用硬件加速 - skip_seconds: 跳过视频开头的秒数 Returns: List[int]: 提取的帧号列表 @@ -101,7 +100,7 @@ class VideoProcessor: os.makedirs(output_dir) # 计算起始时间和帧提取点 - start_time = skip_seconds + start_time = 0 end_time = self.duration extraction_times = [] @@ -291,7 +290,6 @@ class VideoProcessor: def process_video_pipeline(self, output_dir: str, - skip_seconds: float = 0.0, interval_seconds: float = 5.0, # 帧提取间隔(秒) use_hw_accel: bool = True) -> None: """ @@ -299,7 +297,6 @@ class VideoProcessor: Args: output_dir: 输出目录 - skip_seconds: 跳过视频开头的秒数 interval_seconds: 帧提取间隔(秒) use_hw_accel: 是否使用硬件加速 """ @@ -312,8 +309,7 @@ class VideoProcessor: self.extract_frames_by_interval( output_dir, interval_seconds=interval_seconds, - use_hw_accel=use_hw_accel, - skip_seconds=skip_seconds + use_hw_accel=use_hw_accel ) logger.info(f"处理完成!视频帧已保存在: {output_dir}") diff --git a/config.example.toml b/config.example.toml index 835a8e9..7576350 100644 --- a/config.example.toml +++ b/config.example.toml @@ -4,7 +4,6 @@ # gemini # qwenvl vision_llm_provider="qwenvl" - vision_analysis_prompt = "你是资深视频内容分析专家,擅长分析视频画面信息,分析下面视频画面内容,只输出客观的画面描述不要给任何总结或评价" ########## Vision Gemini API Key vision_gemini_api_key = "" @@ -181,4 +180,4 @@ threshold = 30 version = "v2" # 大模型单次处理的关键帧数量 - vision_batch_size = 5 + vision_batch_size = 10 diff --git a/webui/components/script_settings.py b/webui/components/script_settings.py index 1e681b3..7840886 100644 --- a/webui/components/script_settings.py +++ b/webui/components/script_settings.py @@ -220,10 +220,19 @@ def render_script_buttons(tr, params): st.number_input( tr("Frame Interval (seconds)"), min_value=0, - value=st.session_state.get('frame_interval_input', config.frames.get('frame_interval_input', 5)), + value=st.session_state.get('frame_interval_input', config.frames.get('frame_interval_input', 3)), help=tr("Frame Interval (seconds) (More keyframes consume more tokens)"), key="frame_interval_input" ) + + with input_cols[1]: + st.number_input( + tr("Batch Size"), + min_value=0, + value=st.session_state.get('vision_batch_size', config.frames.get('vision_batch_size', 10)), + help=tr("Batch Size (More keyframes consume more tokens)"), + key="vision_batch_size" + ) # 生成/加载按钮 if script_path == "auto": diff --git a/webui/i18n/zh.json b/webui/i18n/zh.json index 7a7a387..6aa7fbc 100644 --- a/webui/i18n/zh.json +++ b/webui/i18n/zh.json @@ -115,7 +115,6 @@ "Text Generation Model Settings": "文案生成模型设置", "LLM Model Name": "大语言模型名称", "LLM Model API Key": "大语言模型 API 密钥", - "Batch Size": "批处理大小", "Text Model Provider": "文案生成模型提供商", "Text API Key": "文案生成 API 密钥", "Text Base URL": "文案生成接口地址", @@ -194,6 +193,8 @@ "Original Volume": "视频音量", "Auto Generate": "纪录片解说 (画面解说)", "Frame Interval (seconds)": "帧间隔 (秒)", - "Frame Interval (seconds) (More keyframes consume more tokens)": "帧间隔 (秒) (更多关键帧消耗更多令牌)" + "Frame Interval (seconds) (More keyframes consume more tokens)": "帧间隔 (秒) (更多关键帧消耗更多令牌)", + "Batch Size": "批处理大小", + "Batch Size (More keyframes consume more tokens)": "批处理大小, 每批处理越少消耗 token 越多" } -} +} \ No newline at end of file diff --git a/webui/tools/generate_script_docu.py b/webui/tools/generate_script_docu.py index 7069215..ee388dc 100644 --- a/webui/tools/generate_script_docu.py +++ b/webui/tools/generate_script_docu.py @@ -9,7 +9,6 @@ from app.utils import video_processor import streamlit as st from loguru import logger from requests.adapters import HTTPAdapter -from urllib3.util.retry import Retry from app.config import config from app.utils.script_generator import ScriptProcessor @@ -38,8 +37,9 @@ def generate_script_docu(params): if not params.video_origin_path: st.error("请先选择视频文件") return - - # ===================提取键帧=================== + """ + 1. 提取键帧 + """ update_progress(10, "正在提取关键帧...") # 创建临时目录用于存储关键帧 @@ -95,9 +95,11 @@ def generate_script_docu(params): raise Exception(f"关键帧提取失败: {str(e)}") - # 根据不同的 LLM 提供商处理 + """ + 2. 视觉分析 + """ vision_llm_provider = st.session_state.get('vision_llm_providers').lower() - logger.debug(f"Vision LLM 提供商: {vision_llm_provider}") + logger.debug(f"VLM 视觉大模型提供商: {vision_llm_provider}") try: # ===================初始化视觉分析器=================== @@ -131,10 +133,32 @@ def generate_script_docu(params): # 执行异步分析 vision_batch_size = st.session_state.get('vision_batch_size') or config.frames.get("vision_batch_size") + vision_analysis_prompt = """ +我提供了 %s 张视频帧,它们按时间顺序排列,代表一个连续的视频片段。请仔细分析每一帧的内容,并关注帧与帧之间的变化,以理解整个片段的活动。 + +首先,请详细描述每一帧的关键视觉信息(包含:主要内容、人物、动作和场景)。 +然后,基于所有帧的分析,请用**简洁的语言**总结整个视频片段中发生的主要活动或事件流程。 + +请务必使用 JSON 格式输出你的结果。JSON 结构应如下: +{ + "frame_observations": [ + { + "frame_number": 1, // 或其他标识帧的方式 + "observation": "描述每张视频帧中的主要内容、人物、动作和场景。" + }, + // ... 更多帧的观察 ... + ], + "overall_activity_summary": "在这里填写你总结的整个片段的主要活动,保持简洁。" +} + +请务必不要遗漏视频帧,我提供了 %s 张视频帧,frame_observations 必须包含 %s 个元素 + +请只返回 JSON 字符串,不要包含任何其他解释性文字。 + """ results = loop.run_until_complete( analyzer.analyze_images( images=keyframe_files, - prompt=config.app.get('vision_analysis_prompt'), + prompt=vision_analysis_prompt, batch_size=vision_batch_size ) ) From bc732c10fd0abf4542376b5228ec575eb8d91605 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 19:03:21 +0800 Subject: [PATCH 19/31] =?UTF-8?q?feat(video):=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=89=AA=E8=BE=91=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=A1=AC=E4=BB=B6=E5=8A=A0=E9=80=9F=E5=92=8C?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加视频存在性检查,避免处理不存在的源视频 - 引入硬件加速检测,优化视频剪辑性能 - 更新日志信息,提供更清晰的错误提示 - 移除不必要的资源释放代码,简化逻辑 --- app/services/material.py | 193 +++++++++++++++++++++++++++++++-------- config.example.toml | 9 +- 2 files changed, 156 insertions(+), 46 deletions(-) diff --git a/app/services/material.py b/app/services/material.py index 2a84f85..e48ffa4 100644 --- a/app/services/material.py +++ b/app/services/material.py @@ -4,6 +4,7 @@ import random import traceback from urllib.parse import urlencode from datetime import datetime +import json import requests from typing import List @@ -332,14 +333,25 @@ def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> di video_id = f"vid-{timestamp.replace(':', '-').replace(',', '_')}" video_path = os.path.join(save_dir, f"{video_id}.mp4") + # 如果视频已存在,直接返回 if os.path.exists(video_path) and os.path.getsize(video_path) > 0: - logger.info(f"video already exists: {video_path}") + logger.info(f"视频已存在: {video_path}") return {timestamp: video_path} try: - # 加载视频获取总时长 - video = VideoFileClip(origin_video) - total_duration = video.duration + # 检查视频是否存在 + if not os.path.exists(origin_video): + logger.error(f"源视频文件不存在: {origin_video}") + return {} + + # 获取视频总时长 + try: + probe_cmd = ["ffprobe", "-v", "error", "-show_entries", "format=duration", + "-of", "default=noprint_wrappers=1:nokey=1", origin_video] + total_duration = float(subprocess.check_output(probe_cmd).decode('utf-8').strip()) + except subprocess.CalledProcessError as e: + logger.error(f"获取视频时长失败: {str(e)}") + return {} # 解析时间戳 start_str, end_str = timestamp.split('-') @@ -349,7 +361,6 @@ def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> di # 验证时间段 if start >= total_duration: logger.warning(f"起始时间 {format_timestamp(start)} ({start:.3f}秒) 超出视频总时长 {format_timestamp(total_duration)} ({total_duration:.3f}秒)") - video.close() return {} if end > total_duration: @@ -358,57 +369,161 @@ def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> di if end <= start: logger.warning(f"结束时间 {format_timestamp(end)} 必须大于起始时间 {format_timestamp(start)}") - video.close() return {} - # 剪辑视频 + # 计算剪辑时长 duration = end - start logger.info(f"开始剪辑视频: {format_timestamp(start)} - {format_timestamp(end)},时长 {format_timestamp(duration)}") - # 剪辑视频 - subclip = video.subclip(start, end) + # 检测可用的硬件加速选项 + hwaccel = _detect_hardware_acceleration() - try: - # 检查视频是否有音频轨道并写入文件 - subclip.write_videofile( - video_path, - codec='libx264', - audio_codec='aac', - temp_audiofile='temp-audio.m4a', - remove_temp=True, - audio=(subclip.audio is not None), - logger=None - ) + # 构建ffmpeg命令 + ffmpeg_cmd = ["ffmpeg", "-y"] + + # 添加硬件加速参数(如果可用) + if hwaccel: + if hwaccel == "cuda": + ffmpeg_cmd.extend(["-hwaccel", "cuda"]) + elif hwaccel == "videotoolbox": # macOS + ffmpeg_cmd.extend(["-hwaccel", "videotoolbox"]) + elif hwaccel == "qsv": # Intel Quick Sync + ffmpeg_cmd.extend(["-hwaccel", "qsv"]) + elif hwaccel == "vaapi": # Linux VA-API + ffmpeg_cmd.extend(["-hwaccel", "vaapi", "-vaapi_device", "/dev/dri/renderD128"]) + elif hwaccel == "dxva2": # Windows DXVA2 + ffmpeg_cmd.extend(["-hwaccel", "dxva2"]) + logger.info(f"使用硬件加速: {hwaccel}") + + # 设置输入选项和精确剪辑时间范围 + ffmpeg_cmd.extend([ + "-ss", str(start), # 从这个时间点开始 + "-t", str(duration), # 剪辑的持续时间 + "-i", origin_video, # 输入文件 + "-map_metadata", "-1" # 移除元数据 + ]) + + # 设置视频编码参数 + if hwaccel == "cuda": + ffmpeg_cmd.extend(["-c:v", "h264_nvenc", "-preset", "p4", "-profile:v", "high"]) + elif hwaccel == "videotoolbox": + ffmpeg_cmd.extend(["-c:v", "h264_videotoolbox", "-profile:v", "high"]) + elif hwaccel == "qsv": + ffmpeg_cmd.extend(["-c:v", "h264_qsv", "-preset", "medium"]) + elif hwaccel == "vaapi": + ffmpeg_cmd.extend(["-c:v", "h264_vaapi", "-profile", "high"]) + else: + ffmpeg_cmd.extend(["-c:v", "libx264", "-preset", "medium", "-profile:v", "high"]) - # 验证生成的视频文件 - if os.path.exists(video_path) and os.path.getsize(video_path) > 0: - with VideoFileClip(video_path) as clip: - if clip.duration > 0 and clip.fps > 0: - return {timestamp: video_path} - - raise ValueError("视频文件验证失败") + # 音频编码参数(检查是否有音频流) + audio_check_cmd = ["ffprobe", "-i", origin_video, "-show_streams", "-select_streams", "a", + "-loglevel", "error", "-print_format", "json"] + audio_result = subprocess.run(audio_check_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) + audio_info = json.loads(audio_result.stdout) if audio_result.stdout else {"streams": []} + has_audio = len(audio_info.get("streams", [])) > 0 + + if has_audio: + ffmpeg_cmd.extend(["-c:a", "aac", "-b:a", "128k"]) + else: + ffmpeg_cmd.extend(["-an"]) # 没有音频 - except Exception as e: - logger.warning(f"视频文件处理失败: {video_path} => {str(e)}") + # 设置输出视频参数 + ffmpeg_cmd.extend([ + "-pix_fmt", "yuv420p", # 兼容性更好的颜色格式 + "-movflags", "+faststart", # 优化MP4文件结构以便快速开始播放 + video_path # 输出文件 + ]) + + # 执行ffmpeg命令 + logger.debug(f"执行命令: {' '.join(ffmpeg_cmd)}") + + process = subprocess.run( + ffmpeg_cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + check=False # 不抛出异常,我们会检查返回码 + ) + + # 检查是否成功 + if process.returncode != 0: + logger.error(f"视频剪辑失败: {process.stderr}") if os.path.exists(video_path): os.remove(video_path) + return {} + + # 验证生成的视频文件 + if os.path.exists(video_path) and os.path.getsize(video_path) > 0: + # 检查视频是否可播放 + probe_cmd = ["ffprobe", "-v", "error", video_path] + validate_result = subprocess.run(probe_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + if validate_result.returncode == 0: + logger.info(f"视频剪辑成功: {video_path}") + return {timestamp: video_path} - except Exception as e: - logger.warning(f"视频剪辑失败: \n{str(traceback.format_exc())}") + logger.error("视频文件验证失败") if os.path.exists(video_path): os.remove(video_path) - finally: - # 确保视频对象被正确关闭 - try: - video.close() - if 'subclip' in locals(): - subclip.close() - except: - pass + return {} + + except Exception as e: + logger.error(f"视频剪辑过程中发生错误: \n{str(traceback.format_exc())}") + if os.path.exists(video_path): + os.remove(video_path) + return {} return {} +def _detect_hardware_acceleration() -> str: + """ + 检测系统可用的硬件加速器 + + Returns: + str: 可用的硬件加速类型,如果没有找到返回空字符串 + """ + import platform + system = platform.system().lower() + + # 测试常见的硬件加速类型 + acceleration_types = [] + + if system == 'darwin': # macOS + acceleration_types = ["videotoolbox"] + elif system == 'linux': + acceleration_types = ["vaapi", "cuda", "nvenc"] + elif system == 'windows': + acceleration_types = ["cuda", "nvenc", "dxva2", "qsv"] + + for accel in acceleration_types: + test_cmd = [ + "ffmpeg", + "-hide_banner", + "-loglevel", "error", + "-hwaccel", accel, + "-i", "/dev/null", # 这不是实际文件,但是足以测试硬件加速器是否可用 + "-f", "null", + "-" + ] + + try: + result = subprocess.run(test_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=1) + # 某些硬件加速器会报错,但仍然可以使用,我们主要检查的是CUDA和类似的错误 + stderr = result.stderr.decode('utf-8', errors='ignore') + if result.returncode == 0 or ( + "No such file or directory" in stderr and + not any(x in stderr for x in ["Invalid", "Error", "not supported"]) + ): + logger.info(f"检测到可用的硬件加速器: {accel}") + return accel + except (subprocess.SubprocessError, OSError): + continue + + logger.info("未检测到可用的硬件加速器,将使用软件编码") + return "" + + def clip_videos(task_id: str, timestamp_terms: List[str], origin_video: str, progress_callback=None) -> dict: """ 剪辑视频 diff --git a/config.example.toml b/config.example.toml index 7576350..762651b 100644 --- a/config.example.toml +++ b/config.example.toml @@ -172,12 +172,7 @@ speech_region="" [frames] - skip_seconds = 0 - # threshold(差异阈值)用于判断两个连续帧之间是否发生了场景切换 - # 较小的阈值(如 20):更敏感,能捕捉到细微的场景变化,但可能会误判,关键帧图片更多 - # 较大的阈值(如 40):更保守,只捕捉明显的场景切换,但可能会漏掉渐变场景,关键帧图片更少 - # 默认值 30:在实践中是一个比较平衡的选择 - threshold = 30 - version = "v2" + # 提取关键帧的间隔时间 + frame_interval_input = 3 # 大模型单次处理的关键帧数量 vision_batch_size = 10 From bacc1adfadd8c338ce66d50ace62e50f576b0465 Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 20:35:47 +0800 Subject: [PATCH 20/31] =?UTF-8?q?feat(clip=5Fvideo):=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=BA=9A=E7=A7=92=E7=BA=A7=E8=A7=86=E9=A2=91=E8=A3=81=E5=89=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加对带毫秒时间戳的支持 - 优化时间戳解析和格式化逻辑 - 调整FFmpeg命令以支持毫秒级精度 - 更新文件命名规则以适应新时间戳格式 - 修复相关服务和接口以确保兼容性 --- app/models/schema.py | 2 +- app/services/clip_video.py | 55 ++++++++++---- app/services/task.py | 16 ++-- app/services/update_script.py | 68 +++++++++++------ requirements.txt | 1 + webui.py | 134 +++++++++++++++++----------------- 6 files changed, 161 insertions(+), 115 deletions(-) diff --git a/app/models/schema.py b/app/models/schema.py index f10daef..623a3fd 100644 --- a/app/models/schema.py +++ b/app/models/schema.py @@ -368,7 +368,7 @@ class VideoClipParams(BaseModel): tts_volume: Optional[float] = Field(default=1.0, description="解说语音音量(后处理)") original_volume: Optional[float] = Field(default=1.0, description="视频原声音量") - bgm_volume: Optional[float] = Field(default=0.6, description="背景音乐音量") + bgm_volume: Optional[float] = Field(default=0.3, description="背景音乐音量") class VideoTranscriptionRequest(BaseModel): diff --git a/app/services/clip_video.py b/app/services/clip_video.py index c10faf4..1329333 100644 --- a/app/services/clip_video.py +++ b/app/services/clip_video.py @@ -22,10 +22,10 @@ def parse_timestamp(timestamp: str) -> tuple: 解析时间戳字符串,返回开始和结束时间 Args: - timestamp: 格式为'HH:MM:SS-HH:MM:SS'的时间戳字符串 + timestamp: 格式为'HH:MM:SS-HH:MM:SS'或'HH:MM:SS,sss-HH:MM:SS,sss'的时间戳字符串 Returns: - tuple: (开始时间, 结束时间) 格式为'HH:MM:SS' + tuple: (开始时间, 结束时间) 格式为'HH:MM:SS'或'HH:MM:SS,sss' """ start_time, end_time = timestamp.split('-') return start_time, end_time @@ -36,21 +36,40 @@ def calculate_end_time(start_time: str, duration: float, extra_seconds: float = 根据开始时间和持续时间计算结束时间 Args: - start_time: 开始时间,格式为'HH:MM:SS' + start_time: 开始时间,格式为'HH:MM:SS'或'HH:MM:SS,sss'(带毫秒) duration: 持续时间,单位为秒 extra_seconds: 额外添加的秒数,默认为1秒 Returns: - str: 计算后的结束时间,格式为'HH:MM:SS' + str: 计算后的结束时间,格式与输入格式相同 """ - h, m, s = map(int, start_time.split(':')) - total_seconds = h * 3600 + m * 60 + s + duration + extra_seconds - + # 检查是否包含毫秒 + has_milliseconds = ',' in start_time + milliseconds = 0 + + if has_milliseconds: + time_part, ms_part = start_time.split(',') + h, m, s = map(int, time_part.split(':')) + milliseconds = int(ms_part) + else: + h, m, s = map(int, start_time.split(':')) + + # 转换为总毫秒数 + total_milliseconds = ((h * 3600 + m * 60 + s) * 1000 + milliseconds + + int((duration + extra_seconds) * 1000)) + + # 计算新的时、分、秒、毫秒 + ms_new = total_milliseconds % 1000 + total_seconds = total_milliseconds // 1000 h_new = int(total_seconds // 3600) m_new = int((total_seconds % 3600) // 60) s_new = int(total_seconds % 60) - - return f"{h_new:02d}:{m_new:02d}:{s_new:02d}" + + # 返回与输入格式一致的时间字符串 + if has_milliseconds: + return f"{h_new:02d}:{m_new:02d}:{s_new:02d},{ms_new:03d}" + else: + return f"{h_new:02d}:{m_new:02d}:{s_new:02d}" def check_hardware_acceleration() -> Optional[str]: @@ -144,24 +163,30 @@ def clip_video( result = {} for item in tts_result: - _id = item["_id"] + _id = item.get("_id", item.get("timestamp", "unknown")) timestamp = item["timestamp"] start_time, _ = parse_timestamp(timestamp) # 根据持续时间计算真正的结束时间(加上1秒余量) duration = item["duration"] calculated_end_time = calculate_end_time(start_time, duration) + + # 转换为FFmpeg兼容的时间格式(逗号替换为点) + ffmpeg_start_time = start_time.replace(',', '.') + ffmpeg_end_time = calculated_end_time.replace(',', '.') - # 格式化输出文件名 - output_filename = f"vid-{start_time.replace(':', '-')}-{calculated_end_time.replace(':', '-')}.mp4" + # 格式化输出文件名(使用连字符替代冒号和逗号) + safe_start_time = start_time.replace(':', '-').replace(',', '-') + safe_end_time = calculated_end_time.replace(':', '-').replace(',', '-') + output_filename = f"vid_{safe_start_time}@{safe_end_time}.mp4" output_path = os.path.join(output_dir, output_filename) # 构建FFmpeg命令 ffmpeg_cmd = [ "ffmpeg", "-y", *hwaccel_args, "-i", video_origin_path, - "-ss", start_time, - "-to", calculated_end_time, + "-ss", ffmpeg_start_time, + "-to", ffmpeg_end_time, "-c:v", "h264_videotoolbox" if hwaccel == "videotoolbox" else "libx264", "-c:a", "aac", "-strict", "experimental", @@ -170,7 +195,7 @@ def clip_video( # 执行FFmpeg命令 try: - logger.info(f"裁剪视频片段: {timestamp} -> {start_time}到{calculated_end_time}") + logger.info(f"裁剪视频片段: {timestamp} -> {ffmpeg_start_time}到{ffmpeg_end_time}") # logger.debug(f"执行命令: {' '.join(ffmpeg_cmd)}") process = subprocess.run( diff --git a/app/services/task.py b/app/services/task.py index 018d149..cfaf66c 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -377,20 +377,18 @@ def validate_params(video_path, audio_path, output_file, params): if __name__ == "__main__": - task_id = "qyn2-2-demo" + task_id = "demo" # 提前裁剪是为了方便检查视频 subclip_path_videos = { - 1: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-00-00-00-01-15.mp4', - 2: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-01-15-00-04-40.mp4', - 3: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-04-41-00-04-58.mp4', - 4: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-04-58-00-05-45.mp4', - 5: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-05-45-00-06-00.mp4', - 6: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/6e7e343c7592c7d6f9a9636b55000f23/vid-00-06-00-00-06-03.mp4', + 1: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/588c37cba4e2e62714c24c4c9054fc51/vid-00-00-00_000-00-00-27_000.mp4', + 2: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/588c37cba4e2e62714c24c4c9054fc51/vid-00-00-30_000-00-00-57_000.mp4', + 3: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/588c37cba4e2e62714c24c4c9054fc51/vid-00-01-00_000-00-01-27_000.mp4', + 4: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/588c37cba4e2e62714c24c4c9054fc51/vid-00-01-30_000-00-01-57_000.mp4', } params = VideoClipParams( - video_clip_json_path="/Users/apple/Desktop/home/NarratoAI/resource/scripts/demo.json", - video_origin_path="/Users/apple/Desktop/home/NarratoAI/resource/videos/qyn2-2无片头片尾.mp4", + video_clip_json_path="/Users/apple/Desktop/home/NarratoAI/resource/scripts/2025-0507-185159.json", + video_origin_path="/Users/apple/Desktop/home/NarratoAI/resource/videos/test.mp4", ) start_subclip(task_id, params, subclip_path_videos) diff --git a/app/services/update_script.py b/app/services/update_script.py index 43f2ff8..2eb9663 100644 --- a/app/services/update_script.py +++ b/app/services/update_script.py @@ -21,16 +21,25 @@ def extract_timestamp_from_video_path(video_path: str) -> str: video_path: 视频文件路径 Returns: - 提取出的时间戳,格式为 'HH:MM:SS-HH:MM:SS' + 提取出的时间戳,格式为 'HH:MM:SS-HH:MM:SS' 或 'HH:MM:SS,sss-HH:MM:SS,sss' """ # 使用正则表达式从文件名中提取时间戳 filename = os.path.basename(video_path) - match = re.search(r'vid-(\d{2}-\d{2}-\d{2})-(\d{2}-\d{2}-\d{2})\.mp4', filename) - - if match: + + # 匹配新格式: vid_00-00-00-000@00-00-20-250.mp4 + match_new = re.search(r'vid_(\d{2})-(\d{2})-(\d{2})-(\d{3})@(\d{2})-(\d{2})-(\d{2})-(\d{3})\.mp4', filename) + if match_new: + # 提取并格式化时间戳(包含毫秒) + start_h, start_m, start_s, start_ms = match_new.group(1), match_new.group(2), match_new.group(3), match_new.group(4) + end_h, end_m, end_s, end_ms = match_new.group(5), match_new.group(6), match_new.group(7), match_new.group(8) + return f"{start_h}:{start_m}:{start_s},{start_ms}-{end_h}:{end_m}:{end_s},{end_ms}" + + # 匹配旧格式: vid-00-00-00-00-00-00.mp4 + match_old = re.search(r'vid-(\d{2}-\d{2}-\d{2})-(\d{2}-\d{2}-\d{2})\.mp4', filename) + if match_old: # 提取并格式化时间戳 - start_time = match.group(1).replace('-', ':') - end_time = match.group(2).replace('-', ':') + start_time = match_old.group(1).replace('-', ':') + end_time = match_old.group(2).replace('-', ':') return f"{start_time}-{end_time}" return "" @@ -41,7 +50,7 @@ def calculate_duration(timestamp: str) -> float: 计算时间戳范围的持续时间(秒) Args: - timestamp: 格式为 'HH:MM:SS-HH:MM:SS' 的时间戳 + timestamp: 格式为 'HH:MM:SS-HH:MM:SS' 或 'HH:MM:SS,sss-HH:MM:SS,sss' 的时间戳 Returns: 持续时间(秒) @@ -49,13 +58,28 @@ def calculate_duration(timestamp: str) -> float: try: start_time, end_time = timestamp.split('-') - # 解析时间 - start_h, start_m, start_s = map(int, start_time.split(':')) - end_h, end_m, end_s = map(int, end_time.split(':')) + # 处理毫秒部分 + if ',' in start_time: + start_parts = start_time.split(',') + start_time_parts = start_parts[0].split(':') + start_ms = float('0.' + start_parts[1]) if len(start_parts) > 1 else 0 + start_h, start_m, start_s = map(int, start_time_parts) + else: + start_h, start_m, start_s = map(int, start_time.split(':')) + start_ms = 0 + + if ',' in end_time: + end_parts = end_time.split(',') + end_time_parts = end_parts[0].split(':') + end_ms = float('0.' + end_parts[1]) if len(end_parts) > 1 else 0 + end_h, end_m, end_s = map(int, end_time_parts) + else: + end_h, end_m, end_s = map(int, end_time.split(':')) + end_ms = 0 # 转换为秒 - start_seconds = start_h * 3600 + start_m * 60 + start_s - end_seconds = end_h * 3600 + end_m * 60 + end_s + start_seconds = start_h * 3600 + start_m * 60 + start_s + start_ms + end_seconds = end_h * 3600 + end_m * 60 + end_s + end_ms # 计算时间差(秒) return round(end_seconds - start_seconds, 2) @@ -177,51 +201,51 @@ if __name__ == '__main__': list_script = [ { 'picture': '【解说】好的,各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!', - 'timestamp': '00:00:00-00:01:15', + 'timestamp': '00:00:00,001-00:01:15,001', 'narration': '好的各位,欢迎回到我的频道!《庆余年 2》刚开播就给了我们一个王炸!范闲在北齐"死"了?这怎么可能!上集片尾那个巨大的悬念,这一集就立刻揭晓了!范闲假死归来,他面临的第一个,也是最大的难关,就是如何面对他最敬爱的,同时也是最可怕的那个人——庆帝!', 'OST': 0, '_id': 1 }, { 'picture': '【解说】上一集我们看到,范闲在北齐遭遇了惊天变故,生死不明!', - 'timestamp': '00:01:15-00:04:40', + 'timestamp': '00:01:15,001-00:04:40,001', 'narration': '但我们都知道,他绝不可能就这么轻易退场!第二集一开场,范闲就已经秘密回到了京都。他的生死传闻,可不像我们想象中那样只是小范围流传,而是…', 'OST': 0, '_id': 2 }, { 'picture': '画面切到王启年小心翼翼地向范闲汇报。', - 'timestamp': '00:04:41-00:04:58', + 'timestamp': '00:04:41,001-00:04:58,001', 'narration': '我发现大人的死讯不光是在民间,在官场上也它传开了,所以呢,所以啊,可不是什么好事,将来您跟陛下怎么交代,这可是欺君之罪', 'OST': 1, '_id': 3 }, { 'picture': '【解说】"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。', - 'timestamp': '00:04:58-00:05:45', + 'timestamp': '00:04:58,001-00:05:45,001', 'narration': '"欺君之罪"!在封建王朝,这可是抄家灭族的大罪!搁一般人,肯定脚底抹油溜之大吉了。但范闲是谁啊?他偏要反其道而行之!他竟然决定,直接去见庆帝!冒着天大的风险,用"假死"这个事实去赌庆帝的态度!', 'OST': 0, '_id': 4 }, { 'picture': '【解说】但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', - 'timestamp': '00:05:45-00:06:00', + 'timestamp': '00:05:45,001-00:06:00,001', 'narration': '但想见庆帝,哪有那么容易?范闲艺高人胆大,竟然选择了最激进的方式——闯宫!', 'OST': 0, '_id': 5 }, { 'picture': '画面切换到范闲蒙面闯入皇宫,被侍卫包围的场景。', - 'timestamp': '00:06:00-00:06:03', + 'timestamp': '00:06:00,001-00:06:03,001', 'narration': '抓刺客', 'OST': 1, '_id': 6 }] video_res = { - 1: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/2c0c2ae91b4f58596634a0b2f64d3eb0/vid-00-00-00-00-00-26.mp4', - 2: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/2c0c2ae91b4f58596634a0b2f64d3eb0/vid-00-01-15-00-01-29.mp4', - 4: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/2c0c2ae91b4f58596634a0b2f64d3eb0/vid-00-04-58-00-05-20.mp4', - 5: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/2c0c2ae91b4f58596634a0b2f64d3eb0/vid-00-05-45-00-05-53.mp4'} + 1: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/fc3db5844d1ba7d7d838be52c0dac1bd/vid_00-00-00-000@00-00-20-250.mp4', + 2: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/fc3db5844d1ba7d7d838be52c0dac1bd/vid_00-00-30-000@00-00-48-950.mp4', + 4: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/fc3db5844d1ba7d7d838be52c0dac1bd/vid_00-01-00-000@00-01-15-688.mp4', + 5: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/fc3db5844d1ba7d7d838be52c0dac1bd/vid_00-01-30-000@00-01-49-512.mp4'} audio_res = { 1: '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_00_00-00_01_15.mp3', 2: '/Users/apple/Desktop/home/NarratoAI/storage/tasks/qyn2-2-demo/audio_00_01_15-00_04_40.mp3', diff --git a/requirements.txt b/requirements.txt index 207865b..ffc3dc5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,6 +6,7 @@ streamlit~=1.45.0 watchdog==6.0.0 loguru~=0.7.3 tomli~=2.2.1 +pydub==0.25.1 openai~=1.77.0 google-generativeai>=0.8.5 diff --git a/webui.py b/webui.py index 5f296cd..73f64f0 100644 --- a/webui.py +++ b/webui.py @@ -120,77 +120,75 @@ def tr(key): def render_generate_button(): """渲染生成按钮和处理逻辑""" if st.button(tr("Generate Video"), use_container_width=True, type="primary"): + from app.services import task as tm + + # 重置日志容器和记录 + log_container = st.empty() + log_records = [] + + def log_received(msg): + with log_container: + log_records.append(msg) + st.code("\n".join(log_records)) + + from loguru import logger + logger.add(log_received) + + config.save_config() + task_id = st.session_state.get('task_id') + + if not task_id: + st.error(tr("请先裁剪视频")) + return + if not st.session_state.get('video_clip_json_path'): + st.error(tr("脚本文件不能为空")) + return + if not st.session_state.get('video_origin_path'): + st.error(tr("视频文件不能为空")) + return + + st.toast(tr("生成视频")) + logger.info(tr("开始生成视频")) + + # 获取所有参数 + script_params = script_settings.get_script_params() + video_params = video_settings.get_video_params() + audio_params = audio_settings.get_audio_params() + subtitle_params = subtitle_settings.get_subtitle_params() + + # 合并所有参数 + all_params = { + **script_params, + **video_params, + **audio_params, + **subtitle_params + } + + # 创建参数对象 + params = VideoClipParams(**all_params) + + result = tm.start_subclip( + task_id=task_id, + params=params, + subclip_path_videos=st.session_state['subclip_videos'] + ) + + video_files = result.get("videos", []) + st.success(tr("视生成完成")) + try: - from app.services import task as tm - import torch + if video_files: + player_cols = st.columns(len(video_files) * 2 + 1) + for i, url in enumerate(video_files): + player_cols[i * 2 + 1].video(url) + except Exception as e: + logger.error(f"播放视频失败: {e}") - # 重置日志容器和记录 - log_container = st.empty() - log_records = [] + file_utils.open_task_folder(config.root_dir, task_id) + logger.info(tr("视频生成完成")) - def log_received(msg): - with log_container: - log_records.append(msg) - st.code("\n".join(log_records)) - - from loguru import logger - logger.add(log_received) - - config.save_config() - task_id = st.session_state.get('task_id') - - if not task_id: - st.error(tr("请先裁剪视频")) - return - if not st.session_state.get('video_clip_json_path'): - st.error(tr("脚本文件不能为空")) - return - if not st.session_state.get('video_origin_path'): - st.error(tr("视频文件不能为空")) - return - - st.toast(tr("生成视频")) - logger.info(tr("开始生成视频")) - - # 获取所有参数 - script_params = script_settings.get_script_params() - video_params = video_settings.get_video_params() - audio_params = audio_settings.get_audio_params() - subtitle_params = subtitle_settings.get_subtitle_params() - - # 合并所有参数 - all_params = { - **script_params, - **video_params, - **audio_params, - **subtitle_params - } - - # 创建参数对象 - params = VideoClipParams(**all_params) - - result = tm.start_subclip( - task_id=task_id, - params=params, - subclip_path_videos=st.session_state['subclip_videos'] - ) - - video_files = result.get("videos", []) - st.success(tr("视生成完成")) - - try: - if video_files: - player_cols = st.columns(len(video_files) * 2 + 1) - for i, url in enumerate(video_files): - player_cols[i * 2 + 1].video(url) - except Exception as e: - logger.error(f"播放视频失败: {e}") - - file_utils.open_task_folder(config.root_dir, task_id) - logger.info(tr("视频生成完成")) - - finally: - PerformanceMonitor.cleanup_resources() + # finally: + # PerformanceMonitor.cleanup_resources() def main(): From 0ccb019f88c4573f9ec2427b2d94fe5f849a382b Mon Sep 17 00:00:00 2001 From: linyq Date: Wed, 7 May 2025 23:08:26 +0800 Subject: [PATCH 21/31] =?UTF-8?q?refactor(app):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=89=AA=E8=BE=91=E5=8A=9F=E8=83=BD=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了未使用的性能监控模块- 重新实现了硬件加速检测逻辑 - 优化了 FFmpeg命令生成和执行流程- 改进了视频文件命名规则 - 调整了错误处理和日志记录方式 --- app/services/SDP/generate_script_short.so | Bin 85016 -> 89560 bytes app/services/SDP/utils/short_schema.so | Bin 78016 -> 78704 bytes .../utils/step1_subtitle_analyzer_openai.so | Bin 127496 -> 132408 bytes .../SDP/utils/step2_subtitle_analyzer_bert.so | Bin 254448 -> 268128 bytes .../SDP/utils/step3_fragment_check.so | Bin 121784 -> 128936 bytes app/services/SDP/utils/step4_text_generate.so | Bin 152104 -> 177368 bytes app/services/SDP/utils/step5_merge_script.so | Bin 107528 -> 113752 bytes app/services/SDP/utils/utils.so | Bin 102376 -> 108360 bytes app/services/material.py | 206 +++++++----------- app/services/task.py | 25 ++- webui.py | 5 +- webui/__init__.py | 5 +- webui/components/script_settings.py | 3 +- webui/utils/__init__.py | 8 - webui/utils/performance.py | 52 ----- 15 files changed, 102 insertions(+), 202 deletions(-) delete mode 100644 webui/utils/__init__.py delete mode 100644 webui/utils/performance.py diff --git a/app/services/SDP/generate_script_short.so b/app/services/SDP/generate_script_short.so index fb65efd73cdd9ea87ff7c4d2cd5cdd6a347f6cbe..d659cd44e1585ae80f2dd18ee7687a1a27f7970b 100755 GIT binary patch literal 89560 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 literal 85016 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 bCS}J9DVxn^x5vKhdS6=kctr>QlxS}NP|pCq diff --git a/app/services/SDP/utils/short_schema.so b/app/services/SDP/utils/short_schema.so index 161acc5b7562cc100f75a11d45a72a23a185df3d..933ef7318926619dcf4ccd039df4210e3fac7ad7 100755 GIT binary patch literal 78704 zcmeHw3v^V~)&IFO37L@aG9f|GG69i99tjc?q9`*7?`NC@QPfT*lYtrYm@qRDBUCb4 zEsBqfQnfy6sI4XgDr%@wt0q3$SZl>c)mB>*uo{dC6qJmL^Z)I8&z(8BB-(Fv{nz@| z`tEfd?*5&<_j&BI&pG?vdosTM_2=KEGA1!xCZv%_?A~-R-KWclnT`E$`b!irg_?2w|~2c2fJC{(#R@w_Z^@sl3BW z6~b-MyXgWPkXo98|pTC>ZOLiMz|lx{`+9G@mqV9F zb;(zgqR)}+Z|AE3cWT#G6t1*OV03WW!tWZawkv_N?e-dn-QQSS>8-KX2Yf@8*DKE? zD4{$)v~mea_?Meh#&&y^BjAupj>&Fu+}o+ptvrjcSYBLGp~ydKYrS=9zP7*3FDM+f zKZL~blvG82x7#cI@!55<{qE-FnT0~c_G!zbaafFGw=Z9^a@m6UOBC-w4wtlmlrII> z&yFLptVxVD<#9Rkm(kFt@l~(8C5csF?dVU!9hua;aY$QD67xW=G)rQpQH-S^PaTg; zx-H{u{ZKDjkLDmzS&C^FVHuTJZiC;KTjQyuRMzMZxN2t>&#Y<$QZ&!Rjmo(g z{mjEXhhyqDU8i$gkteay;y}sVAO5F;v1Znh6dFF7rT5!^-}coSsqNS*L)(c>#&$-)>@-y{1GqYZCHJjP2b5*(~t0j!g@78`Hv3l+8x5_G75;FzBrYOT;Ag z7eeRARs)OdKpkI#*KJG>7o$Dh#Fh?yvz@jGIt`sB9XPz_$`K=O$#iMiOkdomn)b1 zvv>x#MOt_{WYafKEQ4RBr?Vzow=pB^hHbVo#r|&C27XdrZeaPCV(BzqJ#xJn;dY7T z4@X`y#=qmMqykLQ^fb^cl2ib9Og|m8<(s4eD)YHyy>Sv5jI7W3cid+Gr#rzuI=mf5@ZaJH9{u=ewo;IqC^Tsubcda+%Jjz#1d&W zj_<#U`nld3S!`tOn9hA>^i`IbVu>)w$o=k}8JdK)qaCMEe{r|98rSwOfo=|DD9w{h zeLWjlIqC?V*t7uk&PV+vXh$*HV{QA^`vgA^$QowYP*bD3DWwp@~7kdgH(@O^l^3i2j@0yoJ&JG=$CbiupHQB0BPTw@vc5t$xZ4!9J z9kW8+2UtitwaNAk+D`TK0FysV0^NbUCf2|Sp589EFl^V*%-PBeTI{2Wmtr~6Zizc+0%uTl5Ct2h1 zYN<%>%U_E^)3aFUvuVTHrW=}UpKVEM>orP^$5RYNXIWWj2FiHk)N@0hK4oePqy3*o zliPaBz~5;on&Dufnc)9r#<`)-&r50hbW3Vm?}OkiGZxJVa-J2uXGXMr79H8vdsJ$S z_JOy9^R6eo(QTtp@1ZSY+ImY2jnQohMRJ`lpBtLl$wFT|bqaLT+IsH*Z(3r}^d8=( z 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 diff --git a/app/services/SDP/utils/step2_subtitle_analyzer_bert.so b/app/services/SDP/utils/step2_subtitle_analyzer_bert.so index 2e67bb1490fc3864e9d973f420bb67cd97b44d2f..8b6587d61b31a2a34f121c266afba62b29eb4c63 100755 GIT binary patch literal 268128 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
*6eFn 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
#B*AB8a%8tw3N2X46o#5r) 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 literal 254448 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 NKm9iKz}X?={{fYS*&6@= diff --git a/app/services/SDP/utils/step3_fragment_check.so b/app/services/SDP/utils/step3_fragment_check.so index 2bd0ff3360d696d0d7b7568a027c4b1973c3f117..e57e0269af2211b8f876a07719e3394a0b9ef337 100755 GIT binary patch literal 128936 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 E0WR(BN&o-= literal 121784 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 bS$W3e$*)fQ@;&RmeeGSx{Q31u(#HP*Bj?;~ diff --git a/app/services/SDP/utils/step4_text_generate.so b/app/services/SDP/utils/step4_text_generate.so index 916415ffbe5d312796fb8c96633f58267904dccd..fd536e7a4ff02f1cefa30b07359c21490dd3298d 100755 GIT binary patch literal 177368 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 literal 152104 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 Z}Br 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 Mr!`&lNS{Ca9}v(VbN~PV diff --git a/app/services/material.py b/app/services/material.py index e48ffa4..b3ce063 100644 --- a/app/services/material.py +++ b/app/services/material.py @@ -7,7 +7,7 @@ from datetime import datetime import json import requests -from typing import List +from typing import List, Optional from loguru import logger from moviepy.video.io.VideoFileClip import VideoFileClip @@ -307,7 +307,50 @@ def format_timestamp(seconds: float) -> str: return f"{hours:02d}:{minutes:02d}:{whole_seconds:02d},{milliseconds:03d}" -def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> dict: +def _detect_hardware_acceleration() -> Optional[str]: + """ + 检测系统可用的硬件加速器 + + Returns: + Optional[str]: 硬件加速参数,如果不支持则返回None + """ + # 检查NVIDIA GPU支持 + try: + nvidia_check = subprocess.run( + ["ffmpeg", "-hwaccel", "cuda", "-i", "/dev/null", "-f", "null", "-"], + stderr=subprocess.PIPE, stdout=subprocess.PIPE, text=True, check=False + ) + if nvidia_check.returncode == 0: + return "cuda" + except Exception: + pass + + # 检查MacOS videotoolbox支持 + try: + videotoolbox_check = subprocess.run( + ["ffmpeg", "-hwaccel", "videotoolbox", "-i", "/dev/null", "-f", "null", "-"], + stderr=subprocess.PIPE, stdout=subprocess.PIPE, text=True, check=False + ) + if videotoolbox_check.returncode == 0: + return "videotoolbox" + except Exception: + pass + + # 检查Intel Quick Sync支持 + try: + qsv_check = subprocess.run( + ["ffmpeg", "-hwaccel", "qsv", "-i", "/dev/null", "-f", "null", "-"], + stderr=subprocess.PIPE, stdout=subprocess.PIPE, text=True, check=False + ) + if qsv_check.returncode == 0: + return "qsv" + except Exception: + pass + + return None + + +def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> str: """ 保存剪辑后的视频 @@ -329,20 +372,25 @@ def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> di if not os.path.exists(save_dir): os.makedirs(save_dir) - # 生成更规范的视频文件名 - video_id = f"vid-{timestamp.replace(':', '-').replace(',', '_')}" - video_path = os.path.join(save_dir, f"{video_id}.mp4") + # 解析时间戳 + start_str, end_str = timestamp.split('-') + + # 格式化输出文件名(使用连字符替代冒号和逗号) + safe_start_time = start_str.replace(':', '-').replace(',', '-') + safe_end_time = end_str.replace(':', '-').replace(',', '-') + output_filename = f"vid_{safe_start_time}@{safe_end_time}.mp4" + video_path = os.path.join(save_dir, output_filename) # 如果视频已存在,直接返回 if os.path.exists(video_path) and os.path.getsize(video_path) > 0: logger.info(f"视频已存在: {video_path}") - return {timestamp: video_path} + return video_path try: # 检查视频是否存在 if not os.path.exists(origin_video): logger.error(f"源视频文件不存在: {origin_video}") - return {} + return '' # 获取视频总时长 try: @@ -351,17 +399,16 @@ def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> di total_duration = float(subprocess.check_output(probe_cmd).decode('utf-8').strip()) except subprocess.CalledProcessError as e: logger.error(f"获取视频时长失败: {str(e)}") - return {} + return '' - # 解析时间戳 - start_str, end_str = timestamp.split('-') + # 计算时间点 start = time_to_seconds(start_str) end = time_to_seconds(end_str) # 验证时间段 if start >= total_duration: logger.warning(f"起始时间 {format_timestamp(start)} ({start:.3f}秒) 超出视频总时长 {format_timestamp(total_duration)} ({total_duration:.3f}秒)") - return {} + return '' if end > total_duration: logger.warning(f"结束时间 {format_timestamp(end)} ({end:.3f}秒) 超出视频总时长 {format_timestamp(total_duration)} ({total_duration:.3f}秒),将自动调整为视频结尾") @@ -369,73 +416,38 @@ def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> di if end <= start: logger.warning(f"结束时间 {format_timestamp(end)} 必须大于起始时间 {format_timestamp(start)}") - return {} + return '' # 计算剪辑时长 duration = end - start - logger.info(f"开始剪辑视频: {format_timestamp(start)} - {format_timestamp(end)},时长 {format_timestamp(duration)}") + # logger.info(f"开始剪辑视频: {format_timestamp(start)} - {format_timestamp(end)},时长 {format_timestamp(duration)}") # 检测可用的硬件加速选项 hwaccel = _detect_hardware_acceleration() - - # 构建ffmpeg命令 - ffmpeg_cmd = ["ffmpeg", "-y"] - - # 添加硬件加速参数(如果可用) + hwaccel_args = [] if hwaccel: - if hwaccel == "cuda": - ffmpeg_cmd.extend(["-hwaccel", "cuda"]) - elif hwaccel == "videotoolbox": # macOS - ffmpeg_cmd.extend(["-hwaccel", "videotoolbox"]) - elif hwaccel == "qsv": # Intel Quick Sync - ffmpeg_cmd.extend(["-hwaccel", "qsv"]) - elif hwaccel == "vaapi": # Linux VA-API - ffmpeg_cmd.extend(["-hwaccel", "vaapi", "-vaapi_device", "/dev/dri/renderD128"]) - elif hwaccel == "dxva2": # Windows DXVA2 - ffmpeg_cmd.extend(["-hwaccel", "dxva2"]) + hwaccel_args = ["-hwaccel", hwaccel] logger.info(f"使用硬件加速: {hwaccel}") - # 设置输入选项和精确剪辑时间范围 - ffmpeg_cmd.extend([ - "-ss", str(start), # 从这个时间点开始 - "-t", str(duration), # 剪辑的持续时间 - "-i", origin_video, # 输入文件 - "-map_metadata", "-1" # 移除元数据 - ]) + # 转换为FFmpeg兼容的时间格式(逗号替换为点) + ffmpeg_start_time = start_str.replace(',', '.') + ffmpeg_end_time = end_str.replace(',', '.') - # 设置视频编码参数 - if hwaccel == "cuda": - ffmpeg_cmd.extend(["-c:v", "h264_nvenc", "-preset", "p4", "-profile:v", "high"]) - elif hwaccel == "videotoolbox": - ffmpeg_cmd.extend(["-c:v", "h264_videotoolbox", "-profile:v", "high"]) - elif hwaccel == "qsv": - ffmpeg_cmd.extend(["-c:v", "h264_qsv", "-preset", "medium"]) - elif hwaccel == "vaapi": - ffmpeg_cmd.extend(["-c:v", "h264_vaapi", "-profile", "high"]) - else: - ffmpeg_cmd.extend(["-c:v", "libx264", "-preset", "medium", "-profile:v", "high"]) - - # 音频编码参数(检查是否有音频流) - audio_check_cmd = ["ffprobe", "-i", origin_video, "-show_streams", "-select_streams", "a", - "-loglevel", "error", "-print_format", "json"] - audio_result = subprocess.run(audio_check_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) - audio_info = json.loads(audio_result.stdout) if audio_result.stdout else {"streams": []} - has_audio = len(audio_info.get("streams", [])) > 0 + # 构建FFmpeg命令 + ffmpeg_cmd = [ + "ffmpeg", "-y", *hwaccel_args, + "-i", origin_video, + "-ss", ffmpeg_start_time, + "-to", ffmpeg_end_time, + "-c:v", "h264_videotoolbox" if hwaccel == "videotoolbox" else "libx264", + "-c:a", "aac", + "-strict", "experimental", + video_path + ] - if has_audio: - ffmpeg_cmd.extend(["-c:a", "aac", "-b:a", "128k"]) - else: - ffmpeg_cmd.extend(["-an"]) # 没有音频 - - # 设置输出视频参数 - ffmpeg_cmd.extend([ - "-pix_fmt", "yuv420p", # 兼容性更好的颜色格式 - "-movflags", "+faststart", # 优化MP4文件结构以便快速开始播放 - video_path # 输出文件 - ]) - - # 执行ffmpeg命令 - logger.debug(f"执行命令: {' '.join(ffmpeg_cmd)}") + # 执行FFmpeg命令 + logger.info(f"裁剪视频片段: {timestamp} -> {ffmpeg_start_time}到{ffmpeg_end_time}") + # logger.debug(f"执行命令: {' '.join(ffmpeg_cmd)}") process = subprocess.run( ffmpeg_cmd, @@ -450,7 +462,7 @@ def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> di logger.error(f"视频剪辑失败: {process.stderr}") if os.path.exists(video_path): os.remove(video_path) - return {} + return '' # 验证生成的视频文件 if os.path.exists(video_path) and os.path.getsize(video_path) > 0: @@ -460,68 +472,18 @@ def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> di if validate_result.returncode == 0: logger.info(f"视频剪辑成功: {video_path}") - return {timestamp: video_path} + return video_path logger.error("视频文件验证失败") if os.path.exists(video_path): os.remove(video_path) - return {} + return '' except Exception as e: logger.error(f"视频剪辑过程中发生错误: \n{str(traceback.format_exc())}") if os.path.exists(video_path): os.remove(video_path) - return {} - - return {} - - -def _detect_hardware_acceleration() -> str: - """ - 检测系统可用的硬件加速器 - - Returns: - str: 可用的硬件加速类型,如果没有找到返回空字符串 - """ - import platform - system = platform.system().lower() - - # 测试常见的硬件加速类型 - acceleration_types = [] - - if system == 'darwin': # macOS - acceleration_types = ["videotoolbox"] - elif system == 'linux': - acceleration_types = ["vaapi", "cuda", "nvenc"] - elif system == 'windows': - acceleration_types = ["cuda", "nvenc", "dxva2", "qsv"] - - for accel in acceleration_types: - test_cmd = [ - "ffmpeg", - "-hide_banner", - "-loglevel", "error", - "-hwaccel", accel, - "-i", "/dev/null", # 这不是实际文件,但是足以测试硬件加速器是否可用 - "-f", "null", - "-" - ] - - try: - result = subprocess.run(test_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=1) - # 某些硬件加速器会报错,但仍然可以使用,我们主要检查的是CUDA和类似的错误 - stderr = result.stderr.decode('utf-8', errors='ignore') - if result.returncode == 0 or ( - "No such file or directory" in stderr and - not any(x in stderr for x in ["Invalid", "Error", "not supported"]) - ): - logger.info(f"检测到可用的硬件加速器: {accel}") - return accel - except (subprocess.SubprocessError, OSError): - continue - - logger.info("未检测到可用的硬件加速器,将使用软件编码") - return "" + return '' def clip_videos(task_id: str, timestamp_terms: List[str], origin_video: str, progress_callback=None) -> dict: @@ -544,7 +506,7 @@ def clip_videos(task_id: str, timestamp_terms: List[str], origin_video: str, pro saved_video_path = save_clip_video(timestamp=item, origin_video=origin_video, save_dir=material_directory) if saved_video_path: logger.info(f"video saved: {saved_video_path}") - video_paths.update(saved_video_path) + video_paths.update({index+1:saved_video_path}) # 更新进度 if progress_callback: diff --git a/app/services/task.py b/app/services/task.py index cfaf66c..b798f66 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -166,6 +166,8 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di params: 视频参数 subclip_path_videos: 视频片段路径 """ + global merged_audio_path, merged_subtitle_path + logger.info(f"\n\n## 开始任务: {task_id}") sm.state.update_task(task_id, state=const.TASK_STATE_PROCESSING, progress=0) @@ -259,7 +261,7 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di """ logger.info("\n\n## 4. 合并音频和字幕") total_duration = sum([script["duration"] for script in new_script_list]) - if tts_results: + if tts_segments: try: # 合并音频文件 merged_audio_path = audio_merger.merge_audio_files( @@ -273,11 +275,10 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di logger.info(f"字幕文件合并成功->{merged_subtitle_path}") except Exception as e: logger.error(f"合并音频文件失败: {str(e)}") - merged_audio_path = "" - merged_subtitle_path = "" else: - logger.error("TTS转换音频失败, 可能是网络不可用! 如果您在中国, 请使用VPN.") - return + logger.warning("没有需要合并的音频/字幕") + merged_audio_path = "" + merged_subtitle_path = "" """ 5. 合并视频 @@ -289,6 +290,7 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di logger.info(f"\n\n## 5. 合并视频: => {combined_video_path}") # 如果 new_script_list 中没有 video,则使用 subclip_path_videos 中的视频 video_clips = [new_script['video'] if new_script.get('video') else subclip_path_videos.get(new_script.get('_id', '')) for new_script in new_script_list] + merger_video.combine_clip_videos( output_video_path=combined_video_path, video_paths=video_clips, @@ -381,14 +383,15 @@ if __name__ == "__main__": # 提前裁剪是为了方便检查视频 subclip_path_videos = { - 1: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/588c37cba4e2e62714c24c4c9054fc51/vid-00-00-00_000-00-00-27_000.mp4', - 2: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/588c37cba4e2e62714c24c4c9054fc51/vid-00-00-30_000-00-00-57_000.mp4', - 3: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/588c37cba4e2e62714c24c4c9054fc51/vid-00-01-00_000-00-01-27_000.mp4', - 4: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/588c37cba4e2e62714c24c4c9054fc51/vid-00-01-30_000-00-01-57_000.mp4', + 1: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/113343d127b5a09d0bf84b68bd1b3b97/vid_00-00-05-390@00-00-57-980.mp4', + 2: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/113343d127b5a09d0bf84b68bd1b3b97/vid_00-00-28-900@00-00-43-700.mp4', + 3: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/113343d127b5a09d0bf84b68bd1b3b97/vid_00-01-17-840@00-01-27-600.mp4', + 4: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/113343d127b5a09d0bf84b68bd1b3b97/vid_00-02-35-460@00-02-52-380.mp4', + 5: '/Users/apple/Desktop/home/NarratoAI/storage/temp/clip_video/113343d127b5a09d0bf84b68bd1b3b97/vid_00-06-59-520@00-07-29-500.mp4', } params = VideoClipParams( - video_clip_json_path="/Users/apple/Desktop/home/NarratoAI/resource/scripts/2025-0507-185159.json", - video_origin_path="/Users/apple/Desktop/home/NarratoAI/resource/videos/test.mp4", + video_clip_json_path="/Users/apple/Desktop/home/NarratoAI/resource/scripts/2025-0507-223311.json", + video_origin_path="/Users/apple/Desktop/home/NarratoAI/resource/videos/merged_video_4938.mp4", ) start_subclip(task_id, params, subclip_path_videos) diff --git a/webui.py b/webui.py index 73f64f0..7c65df6 100644 --- a/webui.py +++ b/webui.py @@ -8,7 +8,7 @@ from webui.components import basic_settings, video_settings, audio_settings, sub from webui.utils import cache, file_utils from app.utils import utils from app.models.schema import VideoClipParams, VideoAspect -from webui.utils.performance import PerformanceMonitor + # 初始化配置 - 必须是第一个 Streamlit 命令 st.set_page_config( @@ -187,9 +187,6 @@ def render_generate_button(): file_utils.open_task_folder(config.root_dir, task_id) logger.info(tr("视频生成完成")) - # finally: - # PerformanceMonitor.cleanup_resources() - def main(): """主函数""" diff --git a/webui/__init__.py b/webui/__init__.py index 3c0a334..4d5f92e 100644 --- a/webui/__init__.py +++ b/webui/__init__.py @@ -8,7 +8,7 @@ from webui.components import ( audio_settings, subtitle_settings ) -from webui.utils import cache, file_utils, performance +from webui.utils import cache, file_utils __all__ = [ 'config', @@ -17,6 +17,5 @@ __all__ = [ 'audio_settings', 'subtitle_settings', 'cache', - 'file_utils', - 'performance' + 'file_utils' ] \ No newline at end of file diff --git a/webui/components/script_settings.py b/webui/components/script_settings.py index 7840886..5893dc9 100644 --- a/webui/components/script_settings.py +++ b/webui/components/script_settings.py @@ -354,12 +354,11 @@ def crop_video(tr, params): utils.cut_video(params, update_progress) time.sleep(0.5) progress_bar.progress(100) - status_text.text("剪完成!") st.success("视频剪辑成功完成!") except Exception as e: st.error(f"剪辑过程中发生错误: {str(e)}") finally: - time.sleep(2) + time.sleep(1) progress_bar.empty() status_text.empty() diff --git a/webui/utils/__init__.py b/webui/utils/__init__.py deleted file mode 100644 index 74dd09d..0000000 --- a/webui/utils/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .performance import monitor_performance, PerformanceMonitor -from .cache import * -from .file_utils import * - -__all__ = [ - 'monitor_performance', - 'PerformanceMonitor' -] \ No newline at end of file diff --git a/webui/utils/performance.py b/webui/utils/performance.py deleted file mode 100644 index d0af06c..0000000 --- a/webui/utils/performance.py +++ /dev/null @@ -1,52 +0,0 @@ -# import psutil -import os -from loguru import logger - -class PerformanceMonitor: - @staticmethod - def monitor_memory(): - process = psutil.Process(os.getpid()) - memory_info = process.memory_info() - - logger.debug(f"Memory usage: {memory_info.rss / 1024 / 1024:.2f} MB") - - # 延迟导入torch并检查CUDA - try: - import torch - if torch.cuda.is_available(): - gpu_memory = torch.cuda.memory_allocated() / 1024 / 1024 - logger.debug(f"GPU Memory usage: {gpu_memory:.2f} MB") - except (ImportError, RuntimeError) as e: - # 无法导入torch或触发CUDA相关错误时,静默处理 - logger.debug(f"无法获取GPU内存信息: {e}") - - @staticmethod - def cleanup_resources(): - # 延迟导入torch并清理CUDA - try: - import torch - if torch.cuda.is_available(): - torch.cuda.empty_cache() - logger.debug("CUDA缓存已清理") - except (ImportError, RuntimeError) as e: - # 无法导入torch或触发CUDA相关错误时,静默处理 - logger.debug(f"无法清理CUDA资源: {e}") - - import gc - gc.collect() - - # 仅报告进程内存,不尝试获取GPU内存 - process = psutil.Process(os.getpid()) - memory_info = process.memory_info() - logger.debug(f"Memory usage after cleanup: {memory_info.rss / 1024 / 1024:.2f} MB") - -def monitor_performance(func): - """性能监控装饰器""" - def wrapper(*args, **kwargs): - try: - PerformanceMonitor.monitor_memory() - result = func(*args, **kwargs) - return result - finally: - PerformanceMonitor.cleanup_resources() - return wrapper \ No newline at end of file From ce01c110be33817f841be560c67dbdde4b7cf5b8 Mon Sep 17 00:00:00 2001 From: linyq Date: Thu, 8 May 2025 00:13:19 +0800 Subject: [PATCH 22/31] =?UTF-8?q?refactor(app):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=89=AA=E8=BE=91=E5=8A=9F=E8=83=BD=E5=92=8C?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA-=20?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=E6=8E=89=E9=83=A8=E5=88=86=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=BE=93=E5=87=BA=EF=BC=8C=E5=87=8F=E5=B0=91=E5=86=97=E4=BD=99?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=20-=20=E4=BF=AE=E6=94=B9=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=20ID=20=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=20-=20=E4=BC=98=E5=8C=96=E8=A7=86=E9=A2=91=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=80=BB=E8=BE=91=20-=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E6=9C=AA=E4=BD=BF=E7=94=A8=E7=9A=84=E5=AF=BC=E5=85=A5=20-=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BC=82=E5=B8=B8=E6=97=A5=E5=BF=97=E8=BE=93?= =?UTF-8?q?=E5=87=BA=EF=BC=8C=E6=8F=90=E9=AB=98=E9=94=99=E8=AF=AF=E6=8E=92?= =?UTF-8?q?=E6=9F=A5=E6=95=88=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/material.py | 6 +++--- app/services/video_service.py | 2 -- app/services/voice.py | 9 +++++++-- app/utils/utils.py | 2 +- webui/components/review_settings.py | 2 +- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/services/material.py b/app/services/material.py index b3ce063..c048a92 100644 --- a/app/services/material.py +++ b/app/services/material.py @@ -446,7 +446,7 @@ def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> st ] # 执行FFmpeg命令 - logger.info(f"裁剪视频片段: {timestamp} -> {ffmpeg_start_time}到{ffmpeg_end_time}") + # logger.info(f"裁剪视频片段: {timestamp} -> {ffmpeg_start_time}到{ffmpeg_end_time}") # logger.debug(f"执行命令: {' '.join(ffmpeg_cmd)}") process = subprocess.run( @@ -478,7 +478,7 @@ def save_clip_video(timestamp: str, origin_video: str, save_dir: str = "") -> st if os.path.exists(video_path): os.remove(video_path) return '' - + except Exception as e: logger.error(f"视频剪辑过程中发生错误: \n{str(traceback.format_exc())}") if os.path.exists(video_path): @@ -505,7 +505,6 @@ def clip_videos(task_id: str, timestamp_terms: List[str], origin_video: str, pro try: saved_video_path = save_clip_video(timestamp=item, origin_video=origin_video, save_dir=material_directory) if saved_video_path: - logger.info(f"video saved: {saved_video_path}") video_paths.update({index+1:saved_video_path}) # 更新进度 @@ -516,6 +515,7 @@ def clip_videos(task_id: str, timestamp_terms: List[str], origin_video: str, pro return {} logger.success(f"裁剪 {len(video_paths)} videos") + # logger.debug(json.dumps(video_paths, indent=4, ensure_ascii=False)) return video_paths diff --git a/app/services/video_service.py b/app/services/video_service.py index 2a0a9a6..1b2ddf0 100644 --- a/app/services/video_service.py +++ b/app/services/video_service.py @@ -4,8 +4,6 @@ from loguru import logger from typing import Dict, List, Optional, Tuple from app.services import material -from app.models.schema import VideoClipParams -from app.utils import utils class VideoService: diff --git a/app/services/voice.py b/app/services/voice.py index 48197a8..31f6d66 100644 --- a/app/services/voice.py +++ b/app/services/voice.py @@ -1197,11 +1197,14 @@ def azure_tts_v2(text: str, voice_name: str, voice_file: str) -> Union[SubMaker, def _format_text(text: str) -> str: - # text = text.replace("\n", " ") + text = text.replace("\n", " ") + text = text.replace("\"", " ") text = text.replace("[", " ") text = text.replace("]", " ") text = text.replace("(", " ") text = text.replace(")", " ") + text = text.replace(")", " ") + text = text.replace("(", " ") text = text.replace("{", " ") text = text.replace("}", " ") text = text.strip() @@ -1394,8 +1397,10 @@ def create_subtitle(sub_maker: submaker.SubMaker, text: str, subtitle_file: str) logger.error(f"failed, error: {str(e)}") os.remove(subtitle_file) else: - logger.warning( + logger.error( f"字幕创建失败, 字幕长度: {len(sub_items)}, script_lines len: {len(script_lines)}" + f"\nsub_items:{json.dumps(sub_items, indent=4, ensure_ascii=False)}" + f"\nscript_lines:{json.dumps(script_lines, indent=4, ensure_ascii=False)}" ) except Exception as e: diff --git a/app/utils/utils.py b/app/utils/utils.py index 49d44be..e80cd87 100644 --- a/app/utils/utils.py +++ b/app/utils/utils.py @@ -506,7 +506,7 @@ def cut_video(params, progress_callback=None): st.session_state['subclip_videos'] = subclip_videos for i, video_script in enumerate(video_script_list): try: - video_script['path'] = subclip_videos[video_script['timestamp']] + video_script['path'] = subclip_videos[i+1] except KeyError as err: logger.error(f"裁剪视频失败: {err}") diff --git a/webui/components/review_settings.py b/webui/components/review_settings.py index 932ec9b..c4f3bce 100644 --- a/webui/components/review_settings.py +++ b/webui/components/review_settings.py @@ -33,7 +33,7 @@ def render_video_item(tr, video_list, subclip_videos, index): video_script = video_list[index] # 显示时间戳 - timestamp = video_script.get('timestamp', '') + timestamp = video_script.get('_id', '') st.text_area( tr("Timestamp"), value=timestamp, From 11a15b9b78dea2905bb94fb7abc702c242670851 Mon Sep 17 00:00:00 2001 From: linyq Date: Thu, 8 May 2025 00:42:06 +0800 Subject: [PATCH 23/31] =?UTF-8?q?refactor(app):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E8=B7=AF=E5=BE=84=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新视频路径获取方式,支持Windows和Unix/Mac系统的路径格式 - 增加对路径中单引号的处理,确保路径正确性 - 简化代码逻辑,提高可读性 --- app/services/merger_video.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/services/merger_video.py b/app/services/merger_video.py index 7f8e590..66b58de 100644 --- a/app/services/merger_video.py +++ b/app/services/merger_video.py @@ -131,8 +131,18 @@ def create_ffmpeg_concat_file(video_paths: List[str], concat_file_path: str) -> """ with open(concat_file_path, 'w', encoding='utf-8') as f: for video_path in video_paths: - # 使用绝对路径并转义特殊字符 - abs_path = os.path.abspath(video_path).replace('\\', '\\\\').replace(':', '\\:') + # 获取绝对路径 + abs_path = os.path.abspath(video_path) + # 在Windows上将反斜杠替换为正斜杠 + if os.name == 'nt': # Windows系统 + abs_path = abs_path.replace('\\', '/') + else: # Unix/Mac系统 + # 转义特殊字符 + abs_path = abs_path.replace('\\', '\\\\').replace(':', '\\:') + + # 处理路径中的单引号 (如果有) + abs_path = abs_path.replace("'", "\\'") + f.write(f"file '{abs_path}'\n") return concat_file_path From c2660c6983825ff97b4a5e888f26e38c267701dd Mon Sep 17 00:00:00 2001 From: linyqh Date: Thu, 8 May 2025 00:46:45 +0800 Subject: [PATCH 24/31] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=B7=B7=E5=89=AApyd?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/SDP/generate_script_short.pyd | Bin 49152 -> 46592 bytes app/services/SDP/utils/short_schema.pyd | Bin 34304 -> 34304 bytes .../utils/step1_subtitle_analyzer_openai.pyd | Bin 76288 -> 77824 bytes .../utils/step2_subtitle_analyzer_bert.pyd | Bin 178176 -> 178688 bytes .../SDP/utils/step3_fragment_check.pyd | Bin 68608 -> 70656 bytes .../SDP/utils/step4_text_generate.pyd | Bin 101376 -> 101376 bytes app/services/SDP/utils/step5_merge_script.pyd | Bin 64000 -> 65536 bytes app/services/SDP/utils/utils.pyd | Bin 56320 -> 58880 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/app/services/SDP/generate_script_short.pyd b/app/services/SDP/generate_script_short.pyd index 72c29a7134846abe4e2926fb79a348a013cd9e31..de8b47c310c093560dfd1f62a63913bfa11093d8 100644 GIT binary patch literal 46592 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 literal 49152 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 diff --git a/app/services/SDP/utils/short_schema.pyd b/app/services/SDP/utils/short_schema.pyd index e6b7c2493e080d57b205e747488cbe9f8ddc3e60..7774303b382927346cecdf0886ed82cfed874273 100644 GIT binary patch literal 34304 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

T`i2=4|g-* zH+Y_bn{8w40X+LD958=7>_Ffy0{m)+aAOmJ-G_(LYwbkHUgW}Eu!Tc7!K?A4!sY_} z%|5|H<@5qBe*|^(~1P6fOY&my?Bb{}L9@-3b^gcD4946hA^n_w=U&2ST3 zB;5q>kZyvz@KE|afXd?nXM#<59;0xLy$9KdjM;i2^#U7f}7x1PeOx( z{RDf8vD@${aBl+KhsOwa8{kpcbx?b?_8#2s;PAJETLF9;&vB%01DppN5#j-@9f;O$gzQHiYzHrm({cDR+zQ+T zzrtgLo8Z`^XfNCf;AT8ka5n>P_&vru+#P`5;%R`J>`X0q2v34bVZ*To;kAHaJZ*3j zOnn#cDTCbu!3sPaPr!9}h*kuzdJk(@q*(-b1Wzg4Zvr;Fk2>Hccpo0B>oDLa(tQGO z{0EXIfK}2>&?((@fSaY8;BTb+F~FgJ6!a%J3lEh~&?4OgZQ zM(`aOPVgVno%#`EMF-kR?E>74hvX!|cIkcx@WD?Ihcsk6I0X;kFct7NJkKD!8SryF zZE&Y{f=}@5g4+m4_BeasCP?-+t)Mx}4pNAlbfSOVNOO|HH=R0ip|7*vo2|Xyx( zj1!J&1(R_j411HdI&4GDp1jK8n|#T|DT8O>bvlmvC3qJF3UK*mPsaOsX83T@S#R@A zt9RPHZl8Ope;V%f%&__DvsPqJ#w#3L&ZXFclZPUrHY(~OwJdo0!SVm=pkChJEWEvU z`>E}0NAiwQJ8E}$c96x`P!MKROY1h4s$=8eZf$9AIo?vetzp~RZ5y_2+O`Ec6WMfc z0a)97ygA&=wkB^a+G^fv*;>2Rv$bLCrmb7HHg9d++P3xZ){d>=t-V{5TT)v_wHR9p zT8dg0wN$sPZQ0PWt7Q)_`BV$rrfkdHX5MDmwrHD&*Ry3?^R`{v+O{3u*1j#gt#{j^ x?VjyhwzqLyGj|ww6zs6<=-3h7acW2APUFs^o#vgjJ3Tu$>;y_b{LX>`{|D=ZIT`=} literal 76288 zcmd?Sd3;nw);HcE1i})!0k6gdY%w}PMvO)@7}0J>@HTd9*du~O1&k{h?AD+lfuuF< zrDr08$~Z0=moYjnaR=0FAcRdKDn=PKE~7WLOVkkpF8zMLr*1C+=6Roa|M>m$^CPKS zb=Epnb?Ve|Z~JD|*ivmaTW|b}Ms2pWNco>j{{GK@94R*2pySsMvc1@E#|djwygN>q zR(kb~&ay=duUd5Z_0B6Vzu|_3e&-eQor?lDIIq6JS#a@G=k*Kc%^#hS(Lc*#J>s*I z&RMYH!mDHd79ME7dLHsO_nuVB^wa|?y}7qudWDo;GT=m)oR|ot$o8 z-Lzr5{HI4#tS2j9IWi^CSC5|bXLNW#^xzhMh8`=tO%*Cs`Rg^@4)0jE^R^@PXfNGx zXHE(o(c}rcQuL79k=wKZoZbRaoI(%oBKs8GXeR9Xx07H*(nGVe()Ex(D|4n^`L$Cw z_OGM6ifVgy*=)Met_Pa}gLGruxu4i<4WR)xTjUzuNZUkU6!5gy_!OFuiO1*Sg^#O3 zaJ!&fH_}DCdJ0{by^cL8s@+N)FfRb}k2}EpelXW7N2LV%>BhFGR*3=OHFoOZjCJVl z?zJ2v#%^==I-3nPHD+h!=!QSbrB`lr&fTDgilITqX`%t@nsJh7phJV6h}&J$r_Pw^ zp5~tJp5dOUhp)@}L|^`OD|n*=s(L=t+y&>O2lfnaA z@O-b&=@&CMp*d0e%qE}l+mH5TzD92-(C7(QxKKy1`52Fx7z=p(5|11f zc>E5J|KT#qrK+#8zy9>_O?PvNs(BikFgey1DT;n9V*SICq8(O;AYb`y3vKUv{&_^f<{_&1PmG7<~4i|=>`p^45DaGQ8WlHuCPj{@8&iyhZ7BHl#oYX*Xl~y{OAW=Czg<$3csu zM2l`{u~}(h|Km;3Xf$$MR68@ya0D5SR1Cj3K^RKw#~2<1hF-&@^l{*{Gsfxn;G`2N zTnPL69`c3@(Ld&8W$U4WET?(n9X4CAY4P#vN0a{+v{F=SWCg*eb^S;dzKBAv!EV7W z!S0|Myz{N!z+1b^!tTF*2(i&DG*Uh$Bt4uq4TDbKT#&`71br^!_sm0Zwl|zsf{_6` zj2ChBMAF>~V+Whx$oLipfu;7r>*|Ip(`R@xrS+uyoesjt@o3t|ea4&K&~>n_u~|2E zdqYcLjR{hTcHP(jjJ|sAcJuVL;Ie!pot1m8`!e?&_w2csT{>q&&0mMuY=6YRrT7=X zzw7aDKK{l0JA8pR3l5?n3(~z=>C=-v;8R&e>}bosu18B3=I+&vAK*GN3yp7)n1#k~ zNLmYxFObx^jgOFY;9oudrQ=^a{?XOg@UI*Hy1bZ5^7to*f6Dl$9OV^!DCVCM{wYOK zE&i>+znZA_CCy~CqW8CX!@e%`^lm*o-DWPUk{OLoVOgtJ;utRV-yfMtlf>o>=qAHfXM?gjW(~*1U3OjV-_vj z@EUqxXNgXY(%!_l@)*Ar8gJ@j-RXhT(AzTgVAOxI$8b6HC?-~5dBF&_#Z-i;yiZiy z0wVW1jvIj$hTSP{qZt*__2!P$!rU$Ts5ZD{5CwGe+-jhKI*)AadgW;{|Lw&52QFxh zv9q)C;;OY#wKpyx<7t$4iXd-|YBPYW8%whCz&x}Rt&Ev5s@1Yo@n-c-lInd-9?OLX zdiLf`X#A+2pVoUTOdWcu3poBF9rKg>Y$no^;>wd7jV(PE`AeO|1PYN21OLw-R)^xi08g}c79Ds_1fiVvD42MR?RtKTs@@2cm6LI-fc5?Om{@&ZCkS0s zS@U}E_Ei2p3*8z#qS`V*y{KqTVeaSd^->wb?JO{wn$2GB$_|&m?>aVFWSG%b`Dx$E z1Bj&8i4_J`9_WS2J6QRx>-z%d#FqS>H)R#VUG$Y^j$~ryi5YERWp^(z8qg2;5Mi%} z4Q!rhlP`2}wl{TCfw9wL>@B8y_DTbU=>>z8bxc{1)I7kYea zj;xHP*n>}`0)K4A>j*dlCt`3{K`m$!n=Av!Mn-rHPq}%{EokAR_=st84$;Ee?I1JX z!q|%SDAeE-slla|KIcQ9sP-TrTh#b})0(~X-EX6*G3*NwRdGy3S!)TGGZYGAI1SW?}srPvC><5L(_ zgaSnfk#wU4p++%74GfWD#u~;p^If#1%y@elWQ>-$;mxQvoI>{&7+?5;(Rek3)N=0m z;GbBH|I`GfF?(Yc&q;E6AEDR_W8}bhMKBW}gFun)+|Ujj0h`hjavp`cQLPlx(6wXM z2vg2a=dm6=C%I~H1%q{Q26T~LW5rr<0W&VgqS~=Nnf-~(>V%nA0YYj8$&Ae~Zq2)w zg4CL4P*K&F*O10u5kYGF%6ZR~LrcBq-N&ysibdbY>;% zGs-H2tb?PJ_SaaZ^#cQR28WCVj(ZtAvGICsPiEhcS@$_Y*anjLc!lf0c>Na~bbRh{ zSY3KAX*LQ?Plqv66tKo?a=3h+05TR@0$hiT*LQ&+RaArK03}>uNk|^}KfTIP^eov~ zF%~-8SvC%|K7(Lw-B7mKCh5;K>ghRy`(}sCJDK6(dWx$o7uKvLp?h;2&Y4 zq}lXrVL#ZydlPtYJ&)Q`Y_Bc@L^qbVGvNyKE3|1 zu&XlS2FqE`K8H?ZBJqYN;y3}h5OeN))j!MB^6_ldqMYSpGWC+H_MWMy-BaAMkd}8&x5d5Or zNDw4-NS!J-Tx^j&E@awLh@>or4LQl9@N=-hfFIhZ$R=B4WkObHVpaPU*&}Q>GV;JA z&|5bqm-4J7#JU-wCK=4X0!i&4zz`nMV7A5TBunvRL%jTo7~;zT-2TNL9~84(k!1v5 zPqpS+yxt!}&mLc6E(9Cv_+%p<;|iQ93S4awJqjZ3m3a&-)adI&OR=?<;xR7HWFC^; z>B=`V0Ks}vD$L!twb*^D09S9gAgf#tPs=JZe_28~8K**XkAah!$=HI^b|UHwVB*Wz ziwAD93^KF+#bx2Jf1w~U3V}5vBJ<|2Z>cASlYk)vB}?1RmqdS zb2%tv&QaL4#2%rrHvwBVfu-Vto!b-p31a_SASY0AY&LQ0G~&HT^A?gK@0 z>{W~DF@vADsE2kJiFS>oJG zo*4?b^t-2oYS;rPkbY;f?XE)G$?}dl^t)w54{O~>%%96>3h8$P+zmUZP_0-;^H8XC zIR`W}KfPL2K)fALcM>%qsN2j!5vv_3Bs*c+Jj#8RB&x50U>6ArP>#hJYUsr70v32! zjIAkGob%{Mf%py)u{}rWX5JFwYn0HuLNl z7Eh0J%)D6kRY(Ol&W_>fp%P#s;oVxgM2$?=n;W1F;ZspqH5gEMoZ9kIZj7 zP3=yF*^3~LV{F{^JN%WlT)M`1(k`({*U8dP>S47H<0=HL%C zc6p5V%q5E%P3|<>%}+n30I3L4SyMwl90sj5A78+;Fg5nYDdJCFaF4y}qjXAo6WdVl zV9*vAn-MFRBkv=BADla6#A}*o-gS%k0jhLaLZxG=(pFepx`gQ!Eiz6`qhrD_#eq$A zVnDu(I8g@VOAHvrF2{lZ69MDY#6++gMwJ0+O$4_SJ*?e~#JmQRgf$?YQ046=SZBIe z=M<Og zY?9bJ-_oHeKrR<2xSS?jCR$uRM$iN@bE4vMR9qLCGU~x4Ntb>JE@ucAo5iICTsYKi z;1bnl)%TG7HdgA5Go=3Gglg+^s{U6BmG%fOB7qnSEgMD~JrBG?R2v8`m{h3!T?r27 z3x{fp!wHJRFg@p)%sc|*USoq;4}Lx$^Q$_(7SkO; zYSny`g?fNR{V1qux&a@u0k)Z`k`}_d|B9;%bqt$j*P}994$-QfVdc_Z>cw`#-fImV ztU7T$WV5XZbx%^^E^Jsd&JqjGRrMEmN9QF_0j>xh!wD!J;g7-GOpk>ks`V!)=r0#~ z-J<^q(`WKVe8%^_QPy`=>2KlDij^cF$dIud$4~+}N^8+Bd5Nu62mM zw5|YW=yHUf$2fxF1Vf2H4xLbFX`Z8kvwtq|X zUBJRX%lHLcmI)UgQ+tf%a2uq?aN?7-IXArLVZA;1u-;yPD0~)r%QRfmG14xi;l@r( z$K`=&AFr_~f+I(?#EZ0;k@3LKOqy`yBm?n5>;^Q#4hSjtL93{Cw`gj1ehr7^He5I} zZ<90gPjP0xo_gZUytVR^zLooN2)-T~+ad!i_xHjXyPTQtUdNre6I=7&(PD9TQ_wQK~D;?^!kaGh{#<6Ov!TXWLAK8bor ztjHW9=@CQ@YZ1g+=6P32?H@Y8L;`9jny?lNVXOAN9IXAlVkEQkTh1E1z{T_XyXw#m zhjD8|XlS))%LTKk31+>8*(AU@K;TF1!TW_Hj{84<42_SCljO0}hBCC=Uy$VP#XP5v zosb@wr5iV56}6Yw7H?E;u20g;ct4Qo&q4vGdo2{irMtpxB&hOqC&r$6>^wYUK%%}L z-cw6&Y^P0W&*Jg~+N?j3m|p_Lvn|30T%SS}L^oaoPbF4zXa^4w0QN;7^iD z{lJ`7!(P}XJO<9>JsacWBq#CZqv+8Soa%l_()Q(Tavh@+V-9xE{sJsI=-AB;$;FDy>6axKhZLwlsz@lXMW3qO@^W@BQvj-%WV(2OO!)qvR|U@cmO4VZ|pW`H~I z@6J{tr$f!C=0;&;QW91U3Lw~ud$*gl@UY1`IskV!oC+C`dSOgzRMV9_pAoEqn(*{o z;+Gyg!*OnsDUQ>X%yEUd-iP@Hn~JsEJuN}SYj^<>v)K-F=yl?Pk02CzZy3`Q;AVa? z#rvwwPutY`m)M*dN;ox?n%hcQc}1h9wi@%^nJB~jf(wS24fzKb442m8A2e86bC}5` z2rf7s&E3`;1GlGde}Gn6{8BHw&n3 zXlaFY!|VZ=l9M#%L!K#?z;5n_TVdJG6p@$l&!22I>l`P9O(g6$?xggzjVQ-zheiM0 zfzB=1p?Op7z2GDVBkO}&a9t`~wHt&hz^l68z_8BhYyMb*-hmMG#D|rpvdtCKw2GR} zJf5m(Eq`OuYMvpi)Yi~o^GwN2qkXU|5xEqIPf*~%B&>m`&uSD#i;5$-cdnHYA@U~c zsn`(VQVW63VDrBziq7CMlyVauCUo%?hL~cvQ?Z8O1hUB*z>G1COC3N-gB^VQ^S_wx zcDao=G10jbyVx1j{=^xSCv`DwEk{5Z8Z^cckdu;KI31|Ap^BMO#kBoDqS58n zn%Af%;QtfNnbUMzy}w3sXmBH*c{hjDHYgwP3LF zt0Bkz+&rm`yWXibVxPU{Fsz>@;iW=YjCMxnQjHyQJFx+n1x1Aks=0>M93>S<8_4qT zguY^aH8G;r#E8{8TX>lRP^~1-pp@m?EuCK;OJvA1zuZQn$az!7g}*9+F0&av>k#X| zO3J4#$~^OFq2xXvo6USsvKb4%w|GElS1OdgNy^h^q8!Grzn@7pA#~3!G>=&z7}^-Y z=+Q3gXRCJk>H(#W)h-KARd>S{sxw^F(Vim$9LN5xyamZXNSh&&*dCv&!b0hqQ7wZ2 z^eoE@DQ0bC_SP}v;=-OveFsGNf_np_8x?#P;m--25k6GUG4BUo1S>vcpB{Rk3j~qA z`sNMTXA`HBXRZXCGO>{f1CiTQ=+y_Rnv-K7_{Ssk{7Y~X`9qonFInlv!1jn;m2HtS z@B5h)m}ia>Dtdz`UPDqM2fL%YV{L4&x=sju?HEn%=5dw~tAW1RLUm@-<~|(C%}Fm~jc>2|31dd}oTr5v+NjkF$Es8`strhLE_>B8 zLZN-}R}yZMm5Vu9Xt$yE{mtok_8LD&rocFF-3Q~G83)p7H=u}KJqO_X2-bRl@36r1 z=|6r;5%lTgqoQ_u)o{pn8yCxsg%Ld$MMIMoMQgd3vKMr#5ol!m9n3t&%?@v<9BmS+ zMf;jhw$g-YhRB)Ij*iS?Ys~TuFt|VMS1MU1n5u$)JjW{7^%nrA#(}KhhbW3wa2>&C z_5lCg0<(fc;uR#HSOrhT1nxF2I5bB7-z>l0>aqMvy0U!u<=6h0dG7dz=9x?Lz}tB8 z%s*}x+bl#moKvd0$}E8_4v6z&HbN`1C;#CRQJ)L5D^$r`kmFE-XDoTJDI!;2z4;aP z@?)LbKN1nRnI}?YLiE+6m)DyoONk5y1XG;`ZZ|iA3=U%SV2oMYQHW?&eiZXvN5=C` z<~tI3jrlg@bN2`Z*tr`9v+#9QNLL_*y;)d?!l?ENTAS544$X5c8ikw7xTx$bk=Vx* z)&360EMCA|f)^lU=x~_inAaoACs$N!Ax>Eza>3E`#$;rL>V^-}brsFrgWDi5jFgDR>WZ7C|gldPA- z6rDn(yA|teE!KzJh}d;+T&FnUG!o7Rp}3K#_NFC5d_6@hjft2;%ritpMmj{qV%j<& znD#fM`*nTAmgi7LWJ|!oyCEvb;%-R%s*=6nBdb?4u=Sa|o@AbXX{?80nx_ixh6R*g ze*}1PlOyqB!2crZ+b!3R{)@;jrcuW6sE{Xh8ONCuZm6DhJ#nMdwKqU;K`e?5FAPNt zn^eHD5UKxv2m*KiH#*Ae3tXy-cu!?hFK;U2z?^s-7@B^F6>p*yuNg`rdV;GkVWJ!7 zb#fy^#tCn&$hmB+Pu_pG^cshBHh05fG8hR4^at4>x2~xS0~%Z+1|wPwa~4{xlBmB8 zp{&Fml|$~Q7`|34r&_H`0K6ZttA(d!uiZmJl=HF**J$zED$^^>i)T?>~i|p-$bEgi5-1G&L zLvE~`7UQTW-Xz6qiej};9CTwPx~hl1JBhzi@EKi)n#6>&K#6lqWq56xwAaQ@?aoy^Qrs|3}6FsasL2l+>glE+iadqTNYW5VcV7w3oGTK=s_g6+-fNZQ6 z0=1K<%LR3t85FVF3?Yf%U-@pL#aphWd`*HP5Ma*;^>E6*5d@g+a3JI?vjI4NOT^z< zoJT3nzkE(s49jut2$nPd+=KV`B*E}gIObl=4yeIqArixqt^_R2OG%d`?BAqZFO=KN z21WO~8aOJM#&dG_m?0^|s6qsA=pB|@1-i|=F@~k?u=r!y0^c@~#Es4;@i*gMSQJDj-7^7BA?zy5H1jdzl*F~;P|mc!rd16=M1VgUq@ z&D{IC$_LT#@}K#+l$akP5wr4kOPiHJh<_ctcC%!y+bu65BL^RF$Vmqu9~Ov*yzDc2 z$k-dTPDHSByQL9vqUx5@Np6gL1_jpbmZ4~e`0bW^h#1zsL}ES(zp0{Lx!p1pm1;Dg zG-5r}wezz9s*)H6@0kzIkQoBETY8HC^bf>t2iBC`e2mKf$ialgAjMhqWV-n4w8zEtAL4#+723Lg?T#e(fyj zO^~+p6DAzFIqdSKFo0~(bJA1<7f|Ul1bds=iYN(Ge*qQtMnNTW#~GlC&mD?t5~+Sk z6*O~|qPj9JOD2t9#vdZfN2*Pr;#i*zs;KsIIEgo&(YVFLsue8Fu6Q1NC#4*iGHob| zS){l@QGD1T>~T1W$lSVv;^~QgCDG4U=+6LM?wrV5c;;rzbn&P{RrNYz4+b{(mLJEi z8pCTOI zQ`{@ALyTvTDmL33rKrr0lEleXir+X##o`@RJATNZQ@6x@gbe`ex`eq4&zM#p0h8pr z632F0BXklYZyBL$1asV26eQ-s&nF_k)xmq44-gS6Be6`bsH)u`Vs=Mv)a-=<%s@EA#|!zmS&-#1=3pta z)7<}x^iK18q;j?qG56xpns^H9^zhweig|}gk9mi~oi`s|$Ao7yZPHk1yLR&pFn}kO z%MPyq=5BZ%$~CScA7jiitbwE2a(HFb1t&}9JwVUhV*W{KVBUe0U2qvvoX5zu0i4H> zVHh_D(x;);yr_U4CtowC>Mt~!^rWViwOM?Vjbop!hLCCIrFQR zW$p{jabSPO{2Dp#N4_H|7bhQBPdV{z33IbmpsS6emX=R)nu(Mr`%McZ2 z5VLmYbC8HO{{BuT@%seFjAOOzRi^-|W}9lb7;CoquuPc(;Ysp+f{BykGtE#mS|j3B zG{Mj8AD@ZS<|LmYT4I;M+M8RFrAIYC`ipheHwe+eP&F@nEN(C3l|A?_(lYSEB6BSg zv*9ILBkduS#~0KD9K4`zh@vpU1vLT-^(_E<0akLe*a58@23qGG;5b`2?nFoJZ`Hk#mHN7Yv;BNpO=61n>&n-uAG=o}k1b+g7Zj4Jufj9yu zs$fn+`zGHn_zHAz1g|17KN?S4cVmDt@WQAKpizcfjWS6bwKf9c>646Ab?{Q=tNFB4 zx8)L?wA2ZLxYKlscr6r^ahDrKQ25OYF{iLB<`nRTFPy^X0B{KY6R8Z+pUqG3sGLH$ z_lHmi9^v&`CgHp5ka$B+Gl4(A{G={qn%_iMj?w zu}xGz!QVYE9uE=-zT5(H6Lm*B73VH7`B?T`?rs=MecwVg|EJq3@$J(8T^IY_XIy}@ z{Ws@8R=3X0CX#4z@cm3yAr9 z8g&#flMdP8L(M#(l8Hk=pSv48z-IjaXSj;hs9aS07urBK!qV&D&i6hiy}$p9hB~2krDr)=_%BSG8m5RqZ30Nqju_r0pg>pcYqq+9ilg#w z5L2RTv}QD7QiT`(2l<=^KK((+PYIz0m>q;Vss%)zJ@iaEai0cm;~J2m+4#A#F<&6& zp~=Cq=e@chl!{MgyxD;-fF!<)auuO?#M*tdvZ8gb+Yo9tk-*};bUmGMh=UgJ8xnl=OGgEQcl-Z0LN1?7vNbT@neqNr96 zC|_}JOe0oC=p8WSY>ByqZMeJ%&*};upR74@SkKd@K}n}g@f&zEGvS`LR)7h={nO7A zE#!_^WGLJrzH0_+LE5p9X5GL$2YMYRdVMB(WkN5k<~fgGQ1B1Bw6B5>#r#vkKc$@y z_eNC?dpGa6gT38=*xfvPLDJQ{6O*py9VPQ=qs;rn#x9HlCuhI$LsdS0-zOEPlLc9N zkK1_{WG7a-FJOw1%XzEt0Bg&aLh#{?N@Nq4^D@ptj+>;MO0h{gpU7eDCM4$HWG2k$ z^)?ODfleEsVN(CZ2K!bF6NO3t7lsLechV;|IL#jB-rg)Qv(^riA?L4uq?|61bFaw3 zF)$5XW;Mj&+CT=CJ(wv1ab;@IZRm{snM)dN`%SNrU|%ms*C z@3U9Y9US(G-#Q`W6~DFWB-b07--N(=EwA^TdoEbW^}Y^X@581wE_vPo3Y=imggA*C z(}aaF&ZE$^Q5Ae?GPlXykah%eXi#)7`rJ?JlI} z{-Lh68pxRY;&=Xd39uAp@dD2NJKKoM+5c&R)Pis&YQ71Px4WSq>WccKZBT!;GxQ&; z-FY^8%m3mcVA~;|gW}ht)cE1oqh$Ob9>qmKj2d+lP@)8H>I4Vo2Ty2jj(PsMac$x9 z$7G7OgGJjTl(zgZRvG``(%5`Vc=I@a&f^`mdGG*_z(z@~w&qr{OS_z;xDH;#xDI%F z@(sb+Sw*}en05|3n?#)mzQ#O=rJcLs2$6gr+U@^tCu#KI@a8x_gxEu-nBGzt^=G1) zMMZqx2zM>NxrNNsle*7NKohYK-WSBWI;np3LOh1+EqBAwqU<-)-gDZ- z9?&{&9GFSj3x=Z!jXU6AAsT)Bf4F#9sxBU4MDXTeF#;kC3%Pm7Tjlh+jJ4NHkckN2 z5WE2Xm}AJeKn6`Y9!fcuyrHY0z*T6bt4fpKWB7J4&92zQ?<5wRXS-MoSq4_u5(4qn z>6Fu;FqWWYP~6t|0M$pXoH^Y6tWYWH6MHC$J(ThR{JK>9)s6VeX1;wstACg)__LrB z0j`6mb+-jLB)G_yT5!^S27Sevv{SDjo24DtC^MEiBG@?Rnsv_OjKa8y4b@fffQOuz zf`|@9JH&f!=INrL59^wwukO8u`T~kAlcd7ORbgw7!d0rUu1Dcg7BV79dNbr|g;?JM zahfVj?@@TZDs1mjcnS&+4swnZM4ScPpVbZjfv;@VBT0N^a}K`Dto~yRn$C|II;QL4 zr?PC{N26=`{cdyWji4LVVITQoR+k-@Rz|*-)q%9YKC&vSO+Bp4YEloYv+D7Hq5jbu zNchF!Am0MV0^^NsNWy8e;5`@E7Y=*#9uBCc1qJqnX)AC}kFvA_Oi`eH0-zpVoX1SY zznPI4AnbPWp&V>>f{jcKVYiO77DZLqZ@?oqncPK4TT%1`7BzTmLlK5UVHb+d!i6x*hPtVJ9w)v&P58!D_>u(@!JEoD>TeJQB* zvch`gn}Al>k^-!DjB8?bpwzUb6jT>}1#X2lWF7eMPIciBAZ2ss6i7KJ#m+BE&mpVn zMaW~v75OWGRgU%nR9gyi7DePqDu6s$tQW-GdC1!FaU$w&+Gim+{nT)l!xJE1xXR;6I=3f83P zx)sc(n$iXXLmo{5E>6j%bs#)LPTr6VFQ;vg(-rJGEcuZuQgk#JnoV{tXtpO;3zX}( zO~DTUOo3HxkjTag;@wMhkYFZ~biiPDCmw;39m6<I%xAV?aHIfG^Bk1E83hr#xtgIwbg? z4N;F27;BkDQ>{nJKH9;Q4f81;K+!FEpuNRXt3{c)pouI9QszKW!Nb&O$cRP`SK{gW0)#l(4hMVxtMG9QP zV)*VW1iU#|j?~hwsIGV)rKV`Q%7LJ59Ka?7g~ ztV6+^6#_FAtVY4o`v_eP)@h(~NN)KW1OWP!i>;M(aHzA#Jc+a?3juY>k3lqhdJD$=0)*oV z=2WnD1zW)7c_`SSVA+Hr1cBCAt;^RJ5%++HU;Rg0G|>7(r%>CfXgU%#c`}dQ>r~}AQobp822)V#NCzs)B85?m zgzC;B1}I-DQ{@#_`3jbUat%`SDax!>7?M}4oVZLHQ2foMz@7= zfEe^>sj6EM4UO(ob6&dSmglHO$X2k+Z_Ou3%*fR;pl6tPoh4f|V;+jeaYemnEPo5H46H0||8*f|QimNUaW;qcHLafhRtPsjN7P6rcnNNv|LPq~%C6l+X%=QB4R) z?_>(0ch{=&dMW3W343A|U=|%^EmAbqEafYjB)7a;nY=^6URF(IDp-wzrNc;|`&Pjm zl3Tt;!EzMr;RsGK$s(aJSoH-TDDY>)*Hw({f1#43y9+O1J7#<QF6QrZCDa zj9ZAo&JnIrfLaUiFaaQ4ixd+$dt{TsXe9)#zm+Nba)&DKLPBMJU^yt$QC}<8ci<7~ zW+D;idJOZR%u(eoB%~ZqI4FyeGJK>*`x_e)v!}9X86fB}8&wOIOKy3Gf~`@oYQMBZ zt%8{f)}&znR8FW>!MYU8RInPwvrECc70iKg0eQVw2+vH(Ew`mgE>FSQ)J*46FfP7y zOkoPPM9C{vFo%LwD_DVo)hJk|g4HY7{nqTMU`_>VSFn$rD^z)nRlbVluyY+!YaLgwFxFZa>xlu%V4EuMu*yGWIVii4a_)glx(>)p zN5WpwpD8FGbE@(jB-G^$mV;79YIWiwg;7ihC}%NcuP9UH6-Y?Ag5{uGgVgGYwF;w- z5KunJl-f3_@;0k{7gJE0NIAx!ZI{C6Mnc~FG_#5j9Izl-dZLO=_#I{Rx*TQQYz3R7 z#(0i`tW~bo>s-JRHEDi{aKn$S&Zt;{!2U7kKQq zHTiIAI{@b|QSBmP9U0Yry8`JT!2}Y@k=H|gdAy60#@47d?n)FGw`S{=8?vcZ@H$+r zz!94fuBD>6+s#*fs7CnyEP5r6aVgHeZq0Ptvv2IepIbW$?b#FB@aMuN{Fz$sF+NLd zmCJ@X4jJ~p2u{(HS}x}=Qn_Z}X9jb0<9pmk6xq5Xsy#%tjEwXbkW}uE22RjJX+J-Y z41U1tblpfhy9v+G`Ba?d;|Kq8F595zxB9;T$-7{REr@&OBQbDq?e)2GcUEdy@kl6 zHsitjE)k3)TW_41f4Ud9K*HKJ0>Xs>4?*~VOo7p5v3wjX3xj(X7bcyZ{aI;_A92F_ zVxlax=O-7PR*j8}*2}0cYI!ekp+Iv~`;f|owGlBj-e6wp%0@W*x?RR*Hrv0Twf>5uu%fxh@vx*sq&AnGW#bXYT`V?*L;5RF^F(P-yeM8L0bhMvk& z>-ZP5)SCUZtXeSkqMZ8>-q4F#H53%em;gcejuSZG7jT|=4udb$3o>~f^ZX-ms=w7v zju4me3B*OUSAoeF<7m$ZESQlN03p7(kPfu1g0`Ay#906wuaP#52x0AYs?0BdXKZ_o zqHt*h@7zZ<)ejaAfexnt)7>zEvM&NHz9S3^7Uu49ud~7NP=1zFB zmcrncz&kCl~!kkLXBV(8| z1oKkGbGyQX6BeG+i1{_9JaD`OgB!ocdMP>b9u(#d0;0C{qoFmLtm|na95ag<@l0uY z^bLIXz&Ld`AiD7`E}BHOC&3{0JDr*AV}|bJhZV-IsRNrO{m=`d7*r7le#`9dp!1)C zl40UlGESE2;49YX)VEO1$n!Yb!1bTVcPos06owwd zxCt0zhpk=9cEucfCo1MMRyZNbW319C(a7NU-J@C-%#L?cu7$3X!NlF*r^Rm(O*7_R zLQK?kG-^Z1$8Zp9WvqF4%+*g3inqj3 zg)iGMz!B9BE4v%YDL4g!`TJ318=@GXjKuI92W4aBDI!k#=7U0c3n@1vhDWVdN=rXc zEp_yyLl@JHQK}j|a9&hy&z@af8!gSE=JmJ5L{I4Sa z(3p(?@GEAYg50TO(Q)Bkw#a&S5TB)Hkac#FtN}{ac8s-{tUSnqkoRF2cLRlhe-`+6 z{)};n=S(HbUbP5T$Mv9kAj(6z#tJT6);WOaGw$R70SlMvIcfokIRHQ)meR;PV#jlZ^^DgG zRy5HdD93veE7ZCfH)`=r&(3mu$!djKtrTPx;kn2v$ECa#ITjxmo;$4PJUpA$a}J)% zEqvVCTaj%&JEPij%A9xpgT`orAxdHuE5=TQ$C#AqmTGy7DNay2gmPL|Igi*`T}$Qh zxDUV^z`QuaKSlf@CmpvBm~rt>o(w)-sL9FQ1!}HnYzVTT!;Tr!5`CZp6ex`;@E%qk z9^+0fi_As8gDBNSjzXjDc@mdmdV_(x;U4z0C{WS2HlkR@(p|Ea;vhVIrVLewg}sK@ z3$ZXsIH8%4ZoP2+6dseL1SlmSUX?O>jEGMVE#317@pT%RP@Pq0gn&}PeYVrd7SV1nDSQ_9WViMq!KpC;i7 zRs-LE1*%kfGW0-=&qpQX#W^M8S)wlOA!ELhaZg-^E7`s=8PAb$xRP;gT!u?z>;Z=) z87~m^=pHgsC}U(k9X$fyAE$|`St3#WidyYSEE03DMf(B7uZf~X8_4ZcCHMzSFY=!C zUB&Fntl!+2Y=zxK?3+b)Oj=M$dl|GaJ~!6QGkQwuO5BqZRpG} z&iw5}>L6~>VKLf6Mm*?Bn0C!nVrg3*XTonS+1S}0PSiI>`w?mV7&NHpUxBU6N^Gep z-_w$cDwX*amClL8jyK|HN{Y|jPLYdh-z*QJCL7WP){Xt8+7a@YM{SLaktk-kWGqjo z#MmfNISw6;6Rx$*zEW*#oG3>8#7ifmwS@S;O(9!t*Wa1&g!tC5Xd1s_H$M=tgl&nt89_8JrMdr40#UW23#?H&VGz~{|E8S^FX9yUXm z?eQZZOO2d>-w9&>0`uOvdm;nS*5>PIDhwg0v+Xg0_+uy;VtIZer}HaR1Dh0#P-{`@ z!Ne&4Rls2Qo%pJ(HOQLXiHSZ&-HX&&VuaX`I%6^-wLJ;*k3b&r8~!Hw%R*?;$VtK7 zFo-O!CJRFwP38Fh+=@2oY^z$4U>yo#vAm*ikm6k#cG@qG9z@|1iupY$29x3uMX~i@ z3eLe%Ew?Ad5K{a>QLH(bf|FuYOX*25lob5HHR`b-PSGv}t2m`bwVg#h>Tv`q@KZ^o zI5SRBttjfG9uM@S&`7ZdW<$u<3ltusLgqlspqRLAoLDhwS5yE4zbCI|U@Sw-hBGO| z8Ys$$N0L?SS^?d zRuLWVDlB}2DlL~V*^nPA{`DdR_(fj)9=SK1_KQp=8E&vf$Uj6D#u!(30jE&|Pj|x! z;DqJG*$m?1?&A}{<(Bzd!0BwDaDMjJ5_4g>9!kM#?5|4^!-XpA2oAka&&24Xhx$-a zhs3*o0Us#2^b z!*V#9$b}H;5Run2doHpm$a+Gva@-9wScEWM`}S`n7>_L0jgH7*6z!2Bw-ilEmlZB7 z{4SOydgZu6MA$Zep{Md3oBxBtH*-R@{M%>xaVFPzb?Dox-WZOmV@6yfooin z<#clo(CIbs%WdIBxL^+E@8e5+_CMYTY8?xy{7idQ6`t{io?h9M?#th_B!c%iD^QQz zZ@fkyPky_->PkVLkY2f#eamJK#|qnfiG0w=IcapVb#G z%2YE*LWvuIwomR_;=zSY!~FN{Ro9c&s4S+&@ctvbcqu1$moM0K+j#K9^po!QVe3Qj zZd>wQWE6I$7Rdeyep=l|GVFwAunoV{^LN@;H$~Fcq7;2NaD*q??5S*lk+#`a-hc&D zZd2qK0rGvNHi_N#p(DV4F6s3F?4rJ*S8hTzzO}D>1`AU*z-)em=sN6^V8_wLpOV+H z?dWu0wn4G_D7Hn01z$0L(!7t9Z$Q@zq~igK1#fSw93~u|9CjRP8;v z7{4e~f*%vY1>(uLU+*sQhCHSC5of+|#!t$74D3)Ixkjne2IK_-;GxSQn-d;F)uT_OJk^Nf7)>4(~=c*xM&YQe!a5;d)2>P$h~U* z2hFp=GlqkoE1rZA6F9;xzfHitTe&eC6icWLe^-cHV!s0X3fQPE8GG;*_5ln59q$oJ zamId~&@SD;D=<2ZiXE5W7JF4SFuky6qPOGUPd==7VHL~_4zzYcLcfAJW@_57dhRSyvbeh|g#SD5iD)tF`Zn%C;) z;8uIpKH%@Yz*!MMYawJVKn=LbGZA!qC#Ygf52sqir=i$u%yfA3r#kFGeySX=mSpP2 zg>WX#eh0r)>+jFA4twz5V2m$e78qNMsZOH>+n~MV^=f>azoTzKeycsWi=vyI{=s{j zUF&j?@z@J?=&3s+_-(?A^}Q{Gw7C3z^zhW2NPqm*37M+9`A%Rz`^zZ>_LqA_jzG2- zvacZfO0P(ofdh$N?);{}O`ggFDcCdy<3gj^XMeWEd}lm&^@2?<`|3@RDF|xBE=`{N zZup*Hb6^5Y4j+u?mcZHWwY@+ps~#BU+KGH-NW^JQ``%|MO??%ko|a7hYo12`!e?&_w2bF%0KoPy}yp&t=Zl!k#}WmTH_P_ zlW+Nj)7H?nnO^KQdT-XFg?JaLP>-C1m!Y5sKeS$q z*8t0-+7kuRg{%H1y_4vLK)`!mo5c-r{4A)^#}4){g?~!tIsmx0n(ZRO^9E|=J*YL)F!b&b9X8RH%;mb_1@U|hIkksdH@{9(js8##0U-C z$Poamjm#5hJ*<^0Ki-cm5l)*V4h){`k_mwGG_4B;2H{4|w zEB>0UR87h_h!x+7HL&r4a^K_crFziwE#aPV2J${*un+r)-p~N+^mwQ&|0QVfV+Im` zjeRRvf&+gDgsX@m4wQ|J9{8Qj`*HGS=@W|&t(nA)PSdR$KOivFjk*eS4jo@2!Sd%M zm^3mKWBY3iUVN7nDnedw#60K8M1n1dZBcBax8rx?fXW3m0^rBxQ3b#+fCR0vU7`on z(r_cs?$a{@ip@ZW*b9BxII!2{aOy@`x-8_;(=NebQ^qBtQod5@uqMEVBevno(A4ht z3GMnNX{RaeM#r@K#zpOD#h8jQ#Vikah<@YvUXce5SUL{k!DX1B5+4AVsn!cU^?T)4 z`R0aVaFFtd%}f|EHetA?GIBs?$G$QqIS%q0quTA(V~P5;__q_Gtbd#YdQt5{=_fL; z;kEV*KPebqqYKsXnLoyX{Uc0pTh6yepYu|5tBgs43AE*SkWtBU?4F?|@xZBM>P#!7 z!4N;-HTJuWw>(Cx+jt+pGjkq?xNL_F;9SH3jrA2HBD{0=VpfF>@X(`K)siAeTmEwt zk2j~gUxypEMKX~`f&2B|$hlwZg};UNiC^E`yD&UIijNP}IsHe}xz@o&+14_&uopCY zQa43?gGz+SIhD)XsdEqUAfXgKghMj&l zUIKr+TOYMq&);NUc|VvL7dnk*ggOXw_FB=+VPcs4Hv+>+i)G>49USAS+*5hGgRw>K zIjG@L=sFVq#`+JA&~~E<^wfP4Vr<3_*<6=ZZeKY8gTZ5L@*2uoT+voQ4F()|zgWe$ zar+t>Ka2w`ti3Jq44Ur>2VjJG1s$MU@#oj;C{}z zd}gQOUPzBly+QmLc9Kz@(^wsJFx-U*sNMMaR8A3KLpJVZRXmQRHsWPOC$i4wiW!dd zdwuNHnfBmti066+9alFXGrqD(UbjS{r&7yabqNVV6EnSx0Ss*=`(r-h;geC0&7NX{ z;etnVO{*I_xTu8_Z_2bEPvhbztPl|#;6rTf+`1$Z8RIdU4_e>0_=nOASl?=EP+jAV zS8jB!>J&nPws8F4ZEY)go`_gPaSc z*<3JPhu8EmzA;vDSIL-=EfG}cB3NibHhvPW@{>P>E^$6}}WPgL1e3TFg| zgx=M>VY@3n19Lr>pY}Ca*{fvxD?jaCjJE(bP7p09|1}qt)3Nwu&qYk(!kk#fQ{pr9 z%G=W6;(2LeMBI=`ecVO0NR1A@Gdd$ZGM#~sQ&^*2j^gig;2S*Fh)~#iw1fP1CC1DV zg26ApLN;7OGEZ&NA!f;e`pJVPt^}hWbWm6^X(vIMOy*awaTodzXg}~8!?uF22g`Hz zpEOVYhQJ^mu~PjsuklvobB{3u1sH=vu>s);_2X;#sr&(X;3LIo*}@d&#>yFvJhnfA za}^~7!>k@z6j}Xp-HdLmvXP|pr!mYDeJk4cd-motoTeS#mDjQy+)A(ogI_%ZNp@9%7Fje>R-r^`I`8KT+5O#W!I-UzCYE1`*0k; z*xGD|g}}m-kKfg4;v%sraB_S-ZiKj>MQ%e-sla!>{H-x8e;@UI6y(*m6Bb_3F}~N7 z@HW^})v<$SY{hcvHaFGujQ3zP>8L_tm(O06M=yvz5#MUe+_$0*hQ)s_ z|3LUEvgpjg1f(_^(}~Y58#pHeAGnVVpgfsrTS2CWXQ5MWsPX2f+pD<2Zq*Ijf7}Zl z<40dE%-!P_{TD2NGp(XDXfYs3)1_qzE&cPnF#4h-pM7#-9}>HLblEPrm~{U|J@z8; z0n6rO{)g;GzDZA=ihEgT=b;|_3JTV4-u#d4E6Y${To98TCV;ItmSdU*RjNlmv8;nQ zt%&`V_a<%lJw zp}t`;Kt?W}rEGeK`sfBmH{r1|+^`KDsT+Uhc=m(_d3h{&3x+g4zZk-SV_}E7S3u>* zJ2>%T@rIv0#^S9N`=4WAg@Z=-O;Xl#bYFoo%paKie5NmSo|pfh-@{M1NX5z}JC9MS z5LHj|C`Y1D)(dnOu%DmbM8VIRp`l!iI1`t8Er0kI<*Kj~aIDXmiq+bM_~A+{%~9P6 z$l;pDC*bf6%l*as z?uZZ7>p8)EA{JuE?e}woms37iKgnYGWmLHtjIgYOTU*#2xX5cBLwqjlf=ZoA&9S4Mil3x<35)7Ol*ztTH%K`0eHJ zJqS^9tUl^zPwH=Seqw()wYqn{9= zxv|(f#G*5WRnd}LsaAfoT|R2!!~BD}Cjj?=vE8!4gC8i?pTIIS>YwAOZ0-${q~GlE zhP7WVjz%XKRd?3ZqfJsV6O(K7`h#BP|MHU#)7dhYN2K6sN5yLUHsY1LQ(_(sOvKnOJYL z@!w!8jpa{G$|rZY#Q38>#tslR;br$dM>mdEt5sP84w5zCXmnq0ZO@mTa+G1*9AlMD z#+T9%$LtNjh4zK{J2#;*z4$RF{s+k|~{H}=*2r^)xN-hi^0#va2ysO(7Kms5BH-`E}1R)90NHF?I}H-ZnC z%5IMKBL!l_y681^dQJ3YKd#VKZp?8b!o_@+&OWauH4fe!x3#y`8P(>nT57la46LsB z-Wooqh_#_Q&)I=*E#kaLM0Cqq1#+?0UVz$54;H!dwgCGyM8*%otVWE>kF5uDFw*ee zz-XB78+Gx+UbTZ(G&CL3d4=3q#Vv6&@QnIXr&*0Gn+m*{YWnkCT=}9Z5uP_fKohHW40iTuT z5=#a@7fWV{uj1y>HVB}F+4J!`c%mij<0lEr?-P8)1;+>z8rxnKRLyZOrvNk<`Y3wd zsy1P9h2Y8bg~E5)fuT7VcmPmaNq+3uprD=p(r8cG)ELCt%GU@%#FoM=cYs)Uy+Zo8 z)p}our`;oGc~huzSo&1s^N6SMd`%_;xzR%@Rb6d}WHkxF>XJ=A`gIJKSe#?jB$0R@9>jT3a8( z!%QP>Y{2VdcY=kR}S#X--3!nKN_TfjVHhc^?y73XeSXbm3^^wo`q7fwy z&cKQI9Op+p`H__`JP&RHbIplzn*l*4nCtjSd5V<~6q50C+Q&I!h5T*pZj7T-WE|Cb z4af{)G{RV~g2u+p(u^C}5Mk|JiD=N-9t5@#i2$@Rs{%;kYu>;Yjiak&2a(gR93x1} z+fXeS{x)p+4g5dteG7b)#ntz0k_{mc5|Pk=P#-ZVv66IiB_W~-NpPbH#sHRj+bp{a zSxI)cdw~Qm4Fr_9q~a?o^$H0fuQyWl)d*e!D3@AmK&yDEjW!9JrnS*pMPF;a|CyO* z_t^!MzU|lF`~5x_o}9VQnKNh3oS8ZEJnyS#4nrt{K6P01`x~H!gLY3K6-hiW+wUq- zeKFsvzAtqH%BP96Bze!} zx)LlK)DxJXQNnx~i+oWob1hL`gN5NZ(#xHR`Jl)BaP! z>YF9%dql18y0H3!^guUrdZ3FoAwRmP_yj@}YX~7bB!nM!%iEHDyq1LhR01{b@6*E@ zry-aE+0&NnMTVhQ1?7s-5>%>L$IJt+;eAM&lb}znppRcansYGf(~qE9DaV8S;=jBO zG5v%Pu}%42}Bv)nRty*aBd@eO=IhW z9B2{06YZv@hFBca&R9{h8AW;@31gZV-@V|7O=u-Z@eAlGy!eAZAP2IFB^)?0qy?z` zC0-jRy6h@!HSHioFc%s}dT0iLs{mVpSai2=+=!1$AnIB+Q#$zMiQ}JnRlziZ>BV2a zzLW5xv@{gd{wDqBB=lNCY5fVaiEOyPiKb}i^&<);h440Bed~i9Xz67G9+C9QLXi>l zQaHWpKwMO!Q|YxSjq3gudhsg%X?i`+s|rz(3kj88&4gDZy+ZQhBJjX9NJ1a63L6LK zfN&eBBifQ*=BgnE&P%Cb17{>^D2jGo__qlwT50ux?$(TyR3H{UQbdOZ`Gw~Y?N7nI zIBJJR&b7Ai_z2`t1kY~(gLP4jJU`4`kWPj`d%9}hXMCrVtHnlAUaD!1UzE6JKhLA@ zZiMwK=3Zpl(F=(49JEeVR`*fFNIA`2#IbyZp3sIY{7#C3Sd6fAG+p6YcN3xbvYnru zK%qI03WJh42i7xjM!Iw*H(p<(VGuLYL+^V3iW=P7!dnr#Tl&$t2=$9lP$O$3`D%`t zejz2NR_ZT>YX~+%dN-xzL3QMkWl@00FIJ&kcSqwfXh0ZoeuGg6om38*w@FQ}a8c($ z6B3fl{%FW#}`a%)Sdr=lHdQ>#yY#x1mBXPr}#E1p{zZE{xjJj?*FQ_jj zhN1hXbHI=LjV%Y_ik_r|H@pu5HG*FdE;cw@mtivj>oO8g)Vmn%A#ohkcW|_Oh{)b@ zeLADN_*nlO=0&^`_yXGq2;gEA3-~7xtjS35qsCf9=8Nr?E;{ zTdL#T$5~_?7+nU>5W$>5G{MOtn6rl__-iy0P2|j>2|gx*IcsQwdqgm23{CK}BABy< zCb(S$bB53a`+0DXC9q>EQ1|(ae*b2QL_0&FCWNXz915+V{xpza!NexI_=h>474lBI zNiq6)w}z4@g>`B#bslAhK8x(ZRW|w(Cb6O3K!5lz$9jJcju`jS8e$~vTt(Ymr?PKJ zA`1=wmq!0!8O~eCl%%BP!^9G-NW@AIuBgN{_oA&7=AB>C@@0&d_CY>H@sRs@e8B>_ z|7&blVIPE4eli_H?;pZFN7}=Je7Xr6llX81Spm`&C4Q{{nHM4R(DYF9MKbwil$>_8 zVsefQEk(jnNC>Mi;Fpk!daH0qMoL;EuXE^He0X-KgnUr~q_4=%XJZ;JAT}K%hQ;J31|1q;Ue9ODwzi((78fp z2JXlEn8oQU%HcxQv`>ilR6VI~#tUM6H{$9}l01gTbg*(Nh$XgQX3><1phQWKOwC5X zUwN{GDQE@S)BxST(tmL^r$-&4uoI8n*H^g>LJw_5Msu4Pab`c2kMCb1+0b|}49?P# zaDSke5A@@5BgYttH)k`UFaIPdv?*43ZZ{59)JCB_85J$Zbso~DN70JJpFsUn<%jx2 z{4pgs&x->W>L>6-Qxb`tw&WYIdK-F$J|r;?Jf`zy8vXGVBL``FwIYRAoFA%1|1?xI=!V5e#fT;DAHw&?w7|rBEkGEx&?%upPm1rafrG$zJjWM{D%jEP zjSJ#T#NbG~sl(cmmxUw!+*v_-V8=(rIy9pH0sQ?5iK2=Pyb3|@t3%}r{E4(@6RKXk zD1z$SCn!uvtJM>&Rd)y#?h^V`rC-Ydus16J7YG&rFQn?h1(}=+rh%MIAR!w5C6s8D zs{1F)Rzt@Kp*5MKC5#LZ5lKmI>WcoxK>!_YjLau|xssy6QSL8>>;`7yc!6 zw2Osph~; zoI?JC8uf)u=JoETttZ*L04O#LfL!NF2u`P4}i5Yox7Bro=d&odTH z{rY?8q=|66jMTKEg<7>5@o2~SIe#9SK9c+>FD>C3)Jld?`d=f5ruvcOG1R@dT){6> z;ATZ->vC*R68Tzhs-^ucrLq+S#dez^Ofh_&3W_+keUTSV+CA{o-mlosBhXFQFcqDq z4k*z--16|4}j_{a_^dLXZ_7mxF~*3f=ZS7-#@1`-ef^xH5bj?(?HV(Pdy- zEMHv2fW^dj1;k^9a-=E89i**3L8d}~^6lirOgS2-W<~lI_->qH++>XIE-NfM5J$#B zQ((T1bH{fR*V-`p{P(3cgF`F)4U2N{ak?98EBtTZYk|1nbK@dBwRr02bt8`<5kBt* z%j-m9!%a|7CnPA6BgOn%uGNS-M(7Sw?nBdWEk+GvTDL5~h?serY2mEVR|-iRhPEUH2it6F_rhYqfuuHhv|d>+imkqf^;m5Z=4SUwU3 z(S0$WzfUF`pQ1;`dnqJwO*~jZfc*L;jDtuCzAVf7VlY}J3@VeEkZ zb^I+x%mMw&a3L=nJcvL3j9u`S`S;Vh`n5m?_@mNtysYT&H=aiy&Wk=$=zS{=8@c|m zZy8&syhW?P#I?5}BhG&&po}$ChJGc=C<^#8+vyjQDi>jC&3x4c;703l-9L zprI7fDkGi#Oe9rBWA_wr#9~P30~Z0{MNYsreIMN`1RP96XF*3yyc5?V;Y}e9qWwP7 z*ON#9$g7^*0{vrrx$k`xvIdF(aZ13ZXYAIa>tMc6{EV(;_8FK+SmN53@%MmU2M_U7 zfL;NdOfF9v=p)DOl@vUF@^=pxTZTHU- zMCM|U4=1-H2V3>^hzMMYW^&3XEwjH|2BdvC0TWslpjYn)eisKFCGA6mGc;oexaJ%w zzV)?$9#thieU#JHzi()}K;V2rU<1~vuoPK@xvMy(6$?(h5=`0$7eiMgqw|lkk)2qW z{3jb@KZB+^*pK4d=8Qm_UV$;F-v}-vVX4P#G88wGOy8RFA4O*y$lB&{BnGkkZ-G() zGJ`-=8KThDcW9$xfxn1q8PWOjQC>E((Vc_e1pWw0!#n`Y6nKr+PJX>2>h!{ZN~9S{ zz8~z5Nmk!75>1y8WQ{X5HIhA-egMgW*e0pzMv|{ZxWIZSHs@W!UZ_}&=zwBjtQ+KC zzW)Z}ZMqlpF$RTCAGjAi4l5p7w1Od!JEY(Z-V2=3&+7i^+hj>JeH<|sbP#&y*GRI$ zy$5%Vj$t&8l&dg$Cr}vfl+nVe;8~~zNJp=<#B@1|ztZN_^T6b>=#{{KB9ips0*Jdm zBY@0rpk3lxR;&I-^858~5@^+5Y!xYs;l30>2lVG4gsMHDKMO8m+ynYF>FNSMG2^ms z8ckCv=YbdI=S)I&Qe?_PBexbr*XWzCM&Y}&+kc<&3tDKxRM%^4u_d9F zD(JX-Ia1{q3+2Pm3*qy38?(qw?-_%;ttv(M>7A_pa$NDj7rFNID#jeRbMT#{oIOT- z*qnYS{ako*LRI0waSy2f_p1;EPN_D2-UDwYVT7>`B^`2?mV`fixkY(@Ci0F7w8uc= zO$sc9A7XN=2#(3_9vT(6AD&JaS`HiS1Q{1>WHikOD8mp>5~$(m(hVcVIq+ zUD$s8}Z~yf}G6%wr?qR?p9nE&>n*T(qw|FIrJ`OJvF%H;0Rt4qdzQ!!aD%uB?wmh1HgX$ zWB9A%2;j)>Sv~3ve2G82-!c8|>8iRCw?GT^dFMfKXf#?9>fpfSnnob{SE~xE%fU0I zt}zf8OA1R;dIkz$NKocK%$t|gCcu526oD`V?~)QY0RSUOxXwz6oC zJ07Q6(R(V3y4?_dd((%0kN(0WM4U09Wo0V6kzDcM!&ty5&Xy_rgnYgA?Z6ONG3N;A zGG@)Y(1UJCeuqRCNmZGqdG>1vVYj~RjahTVH#RU4t;2ko2%t8Yc&bf*&UF|^EopC4 zYGJR%KkZhGi&JNXj8-0q!=;w(-k`IHsjXuu8WgnM5borPj zmKUf1|JsARE@J7{wNwou!UIdXHc_p7Zr~p;3-p2y)f||bYhi9%4P~YnZ~;vRkcTMK ze-t7X(+UbK!!~Rigd7}3*r`#4ki*5;?|>7dECHj;8`oxx4(#Ex^?j-ISrNPfga{@! zA>_Gl+tdRYlzTSW>Cgr!mUP@Os|VtaU-T{dy?aoMO7x$!nd8&1v2E(TBJakCyc+t=D{7KIU+1)p7q9tqZ^MU1e-Zxcv%HD{c6qkwm<1r3oI^ zjF*#k$Lg3jeRgeZ6!V@l+eKiqzVnN(pg<`rQjIvyquI#jY60S4y-sz{2!P550_*0-}3dS8*C+QC8G#;VCDY=2mxOp1auO2{b96c3<`-t zA?G45l(ics@lR^B8NZ~)9zh=D5XrkzQGZ#{@C|1QO1!I$#B{l3A!EBCN6;s|Umwul z1+P#PHoz4{;m|YSOx$&Bg6AwG`pW_RPeW0Q;cT5+ClZ{Mh#fI7(?8Q?}^@)gK-D+Q{e=+vR3_BaKSiJ@m|w%P&uHF zffvk$h$y(8MXDa4{l^7p)w#G~(ffBG_#XL+4*9Zq1$$@hE3Of z`aGOS{Wt(N;Qab+a3t;;_?~C1F>%*0wjuR*AfzO5*N10%uv-9Jsi@)-|0~#$G42^m zN*lo{x#fdVt@`b?C~DQAbWqFq`C;R^2|wXwC)5C-Lzd&(<_9ktTNCEU0+T(swgl6E z*sh=H84Zv(9Wg)x7j>W-VQ~l?UrK^DN>=xrDFJi33-t=pVLA<4?2V*Nh7cG@OXYum z!2j0qzq9z?3;5p)`QKvxcMkts$^Xv7-(UZ_Q@0Q0L*Kx>UF9#q+Voer5g$kZsd@E$ zvV*KFo?q@y!6m4YmOmVa#d*nRECx58yl29kIj+i59fS7AFRwlHHWSm{0Yu%P`dV~S--aY374QIq*jt% zUWJd7LUl~3Jin(Zan9?uO8=C!Bw$%p^txx_l9E*)GQ4KtUN$^3QnEjqLVd%Pe&nTH zE~4o^=-c3|ku+L|oV-46l%|d1?hrnpH{@S2?TaZ!{~vFyqRvvT8MM-6c1^Gns6hxR z!wR}F7$Fkx`&>;7H5J>qI^4u0{TBBkU>lfFhX&y6%;jGQUAU??5QF4Y64XX2iRZ{U zw5kAOp&M4U{yhi>6~6oZFQmXrbm11ity2Z;lJJOx0}@8bbc%$z5*j76N_dlm8zp>L z!d?kKlTanaw6jIMDH6_-@Jb1diip2ZLN(uN8NWfob_t)8@O=rFOZcUP<0Hzs;CrI{ zOC+q7aJhs(m#|&JCnS7H!lM!fB>YUm*c4Ij1PNzIc!7lTB(zHCm5{&L7md6}`gch9 zoP@uTuunoZNz^k=LPf$^63&ybRzjDAw@P@QgilMjU&41J{6s=FS=2L8!XHRjEa5x} zQ)TH(B;i*Qjyp@#^Fs*>B%CMVwG!4#c$0*8N%*jYFGzSq!jB}3 znj-r}!c+GSk94G0= zB>ZTi!1qlF_e%Jz}$knmv%H%Pcr!a4~n zB}|tvNy4uui1LOdJSyQq37?j*UBWdIx+ScYaGr#-B>bU-6D2%;rl_Y+!fPe}^hiH% z6#ls0X3dmRg`K|>{+uQ(Vd7aJT^;})% zHaD2(TbwT2)$_}$ul9NE^`5IeUYje+myX>ZAwkEdN?6H}A?s_$y#pm%l8%&mZyURmi-`pBC7q-r^!g9OZHvCmAb!Nv> zn_`8>;b#_b5QYS8r1+W{2W*)Hf-MZA!hKx>9HMDCT;%&1|Ix+8m0#!R2&=3YkicEyM1x zd+p|WyN4I8fG7^9SMm5QUivJ-39(x zZm##Cq$N(b0tQ~;bX$WZa71~wP`xq@*bkgdJm>Mc?T)2E{M7Qnl|F~9(Ir^+lqFZ$ zJsxCNyiG2f;#^DuhF4f38vzt}iv=gx9TunCjWi;Cda!(vXa;YYaEsRn1#iS*f^f9#BJBVFz#cyo$~31~Kdoq`iz|WGY2=L5J&{b_XaZbAaKz zPA7&PiY5XEix)&emQr5bLdRmK&tWaCvY`gv*D6A3HHrt7)?2~p%WWvv>vMx06p#;G z>oq$pAj=YE4#Y}%qs8W;KAyq3JgtT>a+~cQ+bqSV#wnJ1vnSL!W(O;q*RSK4MMUUw5nV{taP?9`2@|6AA)6%V{a)7go*dwn!wHN%AGp+91dAa+zNO=@MCVWq9G*Vl6_Ek2APhZj?ZdC3w! zm_TkR27Deqe+2R6BL{=qWLmc3n=qpWXc0RVK4GQ&Qy7V+o1kfcLB-T^vhI#Rj7Vd$ zI#qRq=-%sbz%-CN!wudTA*bL zSqDiBEk&KPmfPGORHCF=Gt;azD@Y9xQ)CvDg6Rqhm5PlLmKMnTv-&$J=1?0sUJ!6V z1Ac|;c|zgGeBljhgIL$pJE1URvV>l4HG9n}JxW3wTZ`27Q_mzssczUMa&Y}(n^)!e_K?bztA>Czylll*FHJ8@p0rGXjwa>|JkPpT3_hDWtS3GJ3h(Q_xy{; zHtx6#tD}+%rKGw7HOc(Ej)A*w>D&D@0s}8@?7#N`QQScL-2>ZK_y5QGW9x1{w))w4 zlxZ?Gm_a>0YO%-&_5c(V7nE(A32F&gis4MA!R9u5Rl;h>&0J96RE6^t%O9p){{$y1 z)W1RY54upO;w#1cjFm=%3xz`cVDm7Fsrj|FwOIeS8Q9jQE|5IFh6c=_EUfK!Kiz-Z z?Z-AgIJof_ft@@5^4vYNHd$eFql_~2|9ten2_!RJTK*F%mwqS8GY?eHki5LCx_n+q zMJSi0&S}R|NMy!erLXH@(R0UIZy9*}zy8p?I$nwR1$I6odIM~OZU2Tx`gU*Y>+*w3Py*0Cp@i#C2%##bNg_;}rA!;R^Qpe)@6dMlv>7MQ#77t( zdmd!G>ZFNy=~{-&Iz?$GB+NeDggK|1F!yv5=6zGb%*@PbCvECACxqU3LI^tW*p|op zUc6s)BgQ&pK>vny15e%wH}&Vh=I8pKyKRPY(v(V&TNpEBW#{DP<O~GXKQq4|zi_5uX4cH?nK?6aXXee!pE+}8!OX$}LqS$Sc0o=-Zb4o_ ze!+LKTUlgHr#c<}xQ`n$SL6vKU8j|r&} zcswbpRh&hiU@H3gb;E70SdE!2By3b*! z6_lbXGP7tSUFij(>IhvI`u=H;l)f_>hfmfIx{dq8_ zKXSYT70Dnq0}pl3VjxnFrFETHKY17p9l7$h5y`tp{!xB!&I-VLrylK27_BF;3VoF3bm` z_Xxja!(b@P2*ZA3!+ea95tQ~vrrO%ynOYCrlOp`MAsqI@P3o}U*qTJD`WPLnr^^cef*)@4vFPUL<`k5f3wI@;0(jXG#$LhGi|6(?7<&lM z(zh79@+f2L@x;H&SPGsdJTKu%eh-;o>*jiavCY4M;TITlE5g~3m*hvL+iOX! zDB<<=goRzn>p7|oTOiW)hJ}fA0feQDLV1l6AAF&Z`YY2W{OjSbCcmJ0Hk|A|giQ#A zN`8%uC&i#k`JfhJehJ)osq#F#`l#=3);dGJe%Mwu9nbGC{45 z)gn04?QvUD4K)2?Z%fBEg~B*a6#i{LU1BUtw8pW-T)^xxu1VA5VLCO5B@B=09o;jk zTkndgjW$G8KMJ1hL}9wjF)TCpB9^JkXJ-#j?LDh!Qup^<6Kj(}kV*K+-K9JJo6Xtu z6)Rl#cV=k(nx)r`FvS}krQ}9MDLNK42I;7*&A8~GgSB;RO;qhU-;ZP8?~7rRyn1%V zg3(N$8^@AXF?Ky3>nI&Nhk6(B4Dk%{EFyl=)EG8Km&am;qYPAbvyQQI(&JfrUp7{1m(%o`)eV`LD&3s)ph7&*Wci+PW$^yXLF>Fe9%J9VA2|eSxlUzECk(kw>?bOk1>YRzg z6MDz@Bz2E-CDe{J5bZ^Oj|%p;ZbBTJfc8#6dncg16S7eT^-Fe?L6@j!iL1v9kM14i ziZ!6UlR=j^;#l%aXRrio64Ngj$CP%)evBt(wCpFuGsH8*vxs=z_&7FxK|C9uJDQEp z9@jh8HKtaV6~nT;qeOk8Ue`H9Z{VZ{KAqdq^?1CzeDDCm*$Lt3M@>2%^-C`7_K6nM zPsy$}3wqZ~92R{Pk3JfWK0;sBppQ5$$AXq9yGGJ7E{4Tr$GD=aqYNr< z_CATGJ;m5lR3Fg=xR8Gpo^FXlq+gpyH$l%Pv?uj&4g&w2Gd_lm{}lY6JDw%|7x2du zH%2XcH1~HSEJY1_DV~x4Q#=L=BfgICQyIZLh}V{@D~e-9-Z3oS8jo=|n&bue60!>J zM9_j{mT2oJX22Z#@QaMyC+pGrbxE--33-x`Cn9K73r!j0? zpPuPoisj)qA}*KW&{j&P^=tF$7A3GnpT@HJeWTbsZyc+@c$%;pebGI(b_{roemXp7 zBx6i^M{^!e29GCapV365I@AF7=&tZ%~ zltWO?1Jyc=$I%!^I^ttD__!7{PKaR%pm9P?Z1rdw&(kp1$#PzN6LxCQy{b_TK^?we zNd2Ho*0bc?T`XDG#bUW1^nu(+hFne_&&LX8RPiIo^BJU{>KHHFWPnJnY|P_49oz)d z;h%xWfQPMO%tjC=OW$mO=*r15WURnhnYqE5pPT7wva;%?3Y=P*zBwoKh(s!1{O%%q z*bjtmp@zki4R}8N(9x1^f%@$YOXt%))G@i)~&Or>ky)`J^dmLdo7hN!STA zp<;m&tE95Y#%i8zMLBF2n%Gk^&BbIs8_Zfo20E}Dcv^#Ljg9OS@mAANi>hEU3Ny2} zWf?yUs5;IR(C#+6YN(S3;MrZZcKcU?W;%gZ-Wd zC~>3I^+;L4O`=T#RB^-VO51WQf8f**Q1{HL;%)+e#t;l1!TN42gW-lqmAs@s`RGtPFUyw%`D4oR_cv3 z**ZxB*}`Fj3j0{<0cbX%8YOqAT=2XWLqe5VLTN89H7#@yKFgRp6lyek>KGLBAa9il z^Hz2b+FwSNdqAuLCt^Q_4X{9H6KdfcD6H^<%v4dv*vBY|a$F%Sve>dvO)6Pf6v9Mj zP|A7Sw6H^i0g?AIx77}lZT2^!mx&HC&_*Abf=(x@lC>u%#!i$qpSG`I4r~JIUfBG2 zSci%`=tH=x^w}B=C#HNMl3JW%l?a`S0|zhf<}#;maXtF&3*rWh6Y5y|VxQM0`{oBh zY|xbXIDJ6cPEA{=!+uM7#fXxKIK!v{48h0o2%G0?Sd5z?C020TW);_YbjbHhS;kyp zw8XZlv3#hn3YAx5x73y5C>k zMftMF&>(g6e1cSxFL|;9@bmG(efd;3gqf+rGapBj{6uu8hBBAH1dg%qBM;H_GMMGj zv5g>W6Ihl;X02`^Pr(vKreG?3LXZikasm zsiC1niD%)0xdn_ps0pJnp!W3+qN^QexqS3Dh1v%`QG2X_=s?u2p$j3{kqp&`wi4H> zW8g8_9*!XEP|GfH!Qjryyc!(JU{_9Nwm+n@`G}j(WqAqm1gSyu1Q&9`LUAhfj-1NE z#Ub^hpt(PU+Z8afcDl*rpGUQ;TrI~fXrhMjw!f&sjx!l^#GpRPtBNVpr4Hu`2bXH^ z0naL11I97Bk);c)P4m4@7mYY>7|pU#zPxKXmY&-gWu_j%qNl4@AD05B|PV2?Q!e{gnhm{lCp=q%?tbZh1 zLMV#y@&~F3Ek)<^xwR=&OND2F+h=2~p%9>q6|O9Uq^~F=J=n|D+}8AQ>Pc1MkX-e? ztVd4a>}}*Rm6I|OKKCZd(#1Fw<+E6ldL}mzrH<`$CfvN$|f@Sf$gs%;!?|G*FIsDn^f(E9`DB z?prK$U?C3aKcHXez~we;z0DdNYIAX6i)Ma&D~TDnN0Hy=GIc&(xJ+8PAt8`%4TXp zg@%bh79R~vMCUGmfl`SF4X}}mA5^ji!-8ch^?h=9Abn zLZY$Fz_!e`*tc}4&8=d2X?e}O^2(fSPI6X47PPoe=f>jwMdqC_x@)lL`0aFg7oQ%|e3*Y8bnsv}WPF1r=50S-GM^aoWZ0ctL^& zHZ$Zl*>En6i+pu-DG-q+>irbl0fG^NeJLmk!x^ZlD@-ueUyiqzh@7HvY80%1?6}cG z7t^r&7M22PPb0QryhJL-rZHGqK*xpZ9u_eX^-((54!GD-h}vjraN%A8cLlGNo^0#oyRiR-6j0wj_diAL)oYX^OWqJyn5hi)GBd5FX1;r|q<<>OqfIfMg0|Kk40a+_uSwOt~;nm;n#sr-vR z68V&81ZlEc}mg#zAeA2U`J(2Zxo@Tmk znXdU1<*4QMoMyUSnQp_kls9~u>6q;I&TlC%=`_Eb!@$h)n91ct(UrdVBZCc1K1; z_>1?QUOFgdVL5U3#pMCc&cftEdRQurCrjAzG)udqV(HhU;Lhfx@bZcy6a1U}1p@+) z4QB|rTGm_qmGE!AK(yy{<=s(PUhgO2?Mo^a<@B7w9!qWR!9R+8!yN)fn2D*$m=AUX z-~Il56xf`^*ljRlAX^~t3cFzJd(G z8*EJ0!>zS78Mg*DLmRQ%iEx6SGgQa2}qGa1(S(H^C0+CiobTLkRA}(~C3&-@tPmZnhVFy-$n<%)6}UCC~`=9mRmd zcnBYY+h3Nr0cPzN?qa~#@k~MbUcgHZNB4jJ_!6EPr(i0r>EAR~51k>?& z;Whwn#Y4Q^37GL4yv7*e&43T!*#S4%q7LKXxB@Om9v!(zOf0tGlcv!~;IJ+nMG-E1&>G8*g_ zx6|WX;?2N4pIK&4L+0|V>3F4s!@dN2aPqWJ)J8@9NG%JVli>LObx<$wZ`QjtuyuIr z@vUrI(zd#7u5D}>dIAU&*S-VVijGZzyQ{sY{b+k_M`K5G$GVOU9h(qCHr<;5nl~Ta z9N5gZ#BC|wV%$=_rEZIBOXHReTQ+UkyrpYP_m+cOdbb3&3~z~RPijwTH?$YD7q>5J zuWfH`U)R2)y_1)Gyq$F@9qAp$j_Qs@9WGwarjE@WJ36{M4tDf(1UiO07HxHH-L$ov rW17Cru&rQQ^|qtidbbU4JH9P_yJ36rcH{QC?XK-W>AT-)P~iUnZE$M% diff --git a/app/services/SDP/utils/step2_subtitle_analyzer_bert.pyd b/app/services/SDP/utils/step2_subtitle_analyzer_bert.pyd index 1cfa6ea43c59f97571677204c3fd20b6906633ce..1e6913d38573b24db0a5eed6857fc0933d71c802 100644 GIT binary patch literal 178688 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

( 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 S-uE;;<9;Ud8Bp*q`ujg$4TKZ` literal 178176 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 z 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%0DK#L3r5 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 Qo;^s1JcmHRzw7UR0emJ1;s5{u diff --git a/app/services/SDP/utils/step3_fragment_check.pyd b/app/services/SDP/utils/step3_fragment_check.pyd index bbc015d0e0a7f5ee31427b3a3ea1b191d4a5ada9..38f4991030128ce176273bf7168b54292ff329fa 100644 GIT binary patch literal 70656 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 E2TF!C{{R30 literal 68608 zcmeFad3;pG(gr*s3<=9PqjEGVXw;}d1f#hqF`^kr@Qlu26p$!_Q4pfCM4Zv6EP-UM zjLj$_DsETYE?igK0a+5(ut&T~6qmSMoj5AEK|p1`=czukB=~;sdw<`*A3x2RQ&nAE zT~*y(y&m5+b8YE1o2?`MkHu`ZrFimRk^KE%{-oJ#N1U|$2-};Tx1GE+&AaX7VHG#s zmR&hz^7tv&Ps|>3{iI2g{n&Nm&<$rcX zetG==UA-2Te}eZNyUx9y&xd;H=Z;-@*MBPT^RNFyat9C^R;rZE-FD_*kF5}R%8-#gjzR~;N5hwZhUlHIk#5od}ruF=rF z%kXr`?`jlV|L$P3brMkWX)6bo%EZ48@}d)2X#s8jt|55`Y_=+37vnjWiHp)~t$gOC z*_z^+@Vzw6_B9?$ez4hk@cn=ISNXlLNMajpwuP2lNnr9 zw%N-2P8oZ>|9YG49~S@*p0*3|{|fw{@~;S4_tj*!YVvYHCz*Ikfs%xvtLs~-38joE ztI*l-O!)`8qP|mZn=%G4VFBIPpnF^9U(ww-VKNA*BkD@%x*SF~km&#apUvh~SG!8` zcbdwbU82^Q@3ndho7~Q)>bwP4XXCl1B)G%IdzgE;`zrScbLRK6VFXjz18928{B>ri zIH$@~{U)uk*@lEKT;ov@Gvv=H^(y-<_B2~b{@32n*qlnQYH^OJ^QoVHan2~tDe{D? zX=Wxa$L}myo4+eO;n^;MdvnT6wcZ!p$lwqDbIqDan*S8}d$d{8n&u2HBuY(j zNsgu(m`Nt4sV*=>Q*(-o|<(XNa%I?8X#j$LMC`pcFf3U_B~Ku zuX3Ed0|~>9g-GvSnt@CseV(-0^6R3fieJzr=ne1+uaZC8OWQh=c|&Hl87hUJnVF~wtOaarQM7wH(8ptDs4UB; zn$1vUv#EYILsd;)b)+{`(O9DPcte#9C2GGnv?7PCuSX5cG7IcSbW5{&;iV@3@j1 zn?#=7e!Cet=jh3_2Zm?7TXjiUfz4*lpZt{1FtGXYGVk+YmHt*rPA+mkTazeJ4YTjO$z%0lJ zWJJz~o}(~KOsK^LYe#{rsk}M4(txyK+AJ)LtHG4{D*GJ*m=~cogyA>SHN#g@7#=`0 zgSzTPmy#;sgOb+KO_+V|Rh>O_)&l!(1Q$|$p1}`j%c?#D9>l9veO^mepARF?1}Lwz z_g3}!7gQOqJ`*WO*w}#P&8s#@^;wRHlGR7Jc+@6Sedtw#QGGUvM6E2>A@Yn@9}fiy z4LC~ViLv@*u=)(t*|7S=Sberf`rmGe5_8u6lFr}uFf#L~{ZdCRkveh*>c~FUkxNiV zc9^kF6h2u;rXqpV5feU=E7b(PRKODLbVo4T)*Q#v z1XgSI8FL96=hr38(Hm{>Uz+0rk%;Dq{6U^^a~$j>=1_c~fry*q4O$QGk~GJ^;-bJD z#nRx~554nWn&Sr~IIPKd_T-2&w-JciM|VT}+R8#gGB!7nvmTc?%C+i5Avl=?yFlP~NX79=rHW>FVkHRT z{`AzGm4it0Q_!*rHI6~9EeJYn7Jq}u7a+Oy?&AAwz8^2_JMg_K`Tir@`wG4vC-`Q* zmnGk~^4;Y7v4XF|I}F^?kDy}&^ri(m1)!Mm8;uFwW~0%*0>YW9!Bj^@HY{K%owa+A zBxW?f1uiT}0F5O|QHpm{)#fw-s|#$ZYte8cUe5EXvGgU~-=#DSJtWPWIg63TRJxz{ zvH9>w^MQ69@#vf6_h!yq(gb(2X-V{|p8#j7CvuvB^C1{_d1@xwM4)XkW3?oFDF;#` zVcX98SxLAeXQ3qgnhBF7`8$y8HfOGb4>5YXcCCBWb6P{v1*1Fef)FS*&6Q->PP&T( z);8laC1Z{#!j6l;UNqxX+eA&p>=d9gxB5`xORAIcof*>4$aC{pUady2@`DSUxOVxW zSghrr_>&levF>8vG9f1m!>p^!n(xv5w_X}PYYj#fxvk9gr~FNxnRSf683JE38aIJeb@^`Px2{{e4qzI+aqUGk{P=PxQ-`28bPJ!XyjhH zl=>hs8mVH8C8LodbXH839qBYhYEj1Wm*C*hF|0aO(Wx8YTIT>OAU`$w1xOv^sK{Q~+%6^b8*XpxJezVz%!vit?r~fIl zKPC(i50pwM0QV_HJV2%O_cIr?(QTuFUXttgs4Iak@1{A>G7VyZll46l1c=!)(e}Kx z1V0PcIBPEe33`xiKsjss@P$3bXrS5Bpsa=za${{y9m;wdxjxc1{(c>_9(4)A?;R+! zsTMSYF!sJz2GGu0dOJ|7SjO1FLGQ!oZXoM-vzh_ov}0ch0eI;eLkgoW~Rmu z-~$6jK80#gXsBp=etT~YGA3FV9$aub% zaWPt-6dBKn%V;UFD>!-3$YDtqKiWRt36LFWVQ4d0dp8wI+U>XvK_x^kmked;`q zngmr(ckw6O2>l+%U&)61RLY?2PyE6H9r9WuA+P#D2J#FnIdCr7s~KK z?eP9adjIF5a#Sbrfa6&H)ey2T$lf&}J-of;cNss}=f6Vp{)MZX>Q1`42&adIA&|yh z{m-A1u3iRLFW0VK9(VO}hQ1i7`fg=u4s-R3Bv)~DO1BFGVv!CeeD_+a_cThEjJ}Ql zJw4x}{($o@eHm|b{$BL=LVF{y&e|S)q4Qr4wDw*&e_xc@vfJHc{0K%lDcXJuv>r7W zjJKyczZDtR-jCEkwQ+v`G(fbQ_c43ram))ZpFo+E`9u#H5a;kd^? zh2P*e8~hULRLG{K9u>~=^$wP=U#2BpfgZ%YG$CmTps6|=$JAq(T73N?WN;X|nCLL( z6yWO^CEb!8#eBlWrkadecrpElKAv>&fy`LhPsPKl_M7TA6LU3e&S_k<(`?Z_1sH^7 zdSV%z^5`Zt{8VT}JZX2}7?kljjOtdM4bpcXr-*%|fX2AJERE|3l5z-Lj)Fz*6dz=} z1%F@?%O9R(!h6^XB!zqaMG@}rcz6m*G7-Q*c#ry&LLhMZhsX|h-W{Odo$8t znCwQ8oiaY#Lpd%4M$1u3Iex0-t5iutQdx4mz=Sb+Z&Hq)BF8S1nLhdg(;?G3$@B$` z)1(;8^ev{1NLmT+BtbJ1pz?Us_tuQec41+E6%S9rU{P%+k2=Is!Py!lGYA$7xGb6K z$(Pfmn6#2g)m=DPN@S5O!Yw2m*jD&*D}O8VD|F`P@*$baU>cdDk&YRcB{Qc=w<082 zb*`n-U1ZM13HXcpk^W-;{$G5XTPAu&r&U-NxXe_SyEsTb!{lt$zy8D=5#nT3RE`!X zHWw~oiw?oW8%XZV*xwXQcdK>doRjK)aehJJQkvz;h!yNh%MGS$8l%7+(iG=hV?#CGFfwhV8=luL1KBmeM&k0>*Jd1DJS~ zo*4BZuns#;d>PHS+MwQ#jJ=1#y=lc$m@fF<@z_uUsqzkV%bE<{7Z3Ol0BDNyyFgyW~ z&3!GR&}6*Ns4N>XKPHqB_2=&!68;<3Pg)7Cf@Agmo@rYU`d8E87{W>1?^Or>o2cKT zKGaeFw#YeS$>)EF`u`0t0_|T%{o8cZ?;2-C{gh8-`-ZyoiQ({sbdzX)m*^&Dn&!cX`%*$6?FSsr~w9xAXhmGg*_a&{m zM(hZ)dc%J^h<17Kca-y9ldT75dBw8G9`dD*=N<*bqwpWrvS`5Q>9Tm0ug&+l{ci?78yVWXa)Hg+EW9PGSS+j$H+ezX8vLF-<6C1j3VUn6$D5+#SZ z27%TrFwuu2j-1yFvtT0nl?up#0P}X}jQvqIoZ)!Qs0NIde+%9gx1+%=n$Fb$J#_yc zMu;>+=1>d|Wt}GiIk3RvRbRR>xrw--8UQz!bEf8$@lPrLRPs+1(Hyw)rJOIh)=LFn zTzo0G%Z0gmF3zq&n?UBAvKT#bE#r)4yykCW@WF_K^MZ}?)a_)ke;Gp@N_~76P-KHzEg5!hvy0hTKI5Z#~haM20aU*q#;G*pu zR+g3korbe^OD3dA4u$`Gn!=T2`WQhPi|{4`f}>#qbm6O!&{>O#XV9SIEhSoaytUtS zBA?_`*qeg81a7_q3a2I2l4jT@hQ$WX6*z0}LJDA4f*YVZ5Oda!)ldQ&NEYl4KxFhd zR%qw!vx)6>wiN*B{KfXN#Qdihy$eQ7Ovt4m43$x*&J;;7waPM~RV!^z&{+r^v;IS6 z#g}2GBGPmQ|4DCB_SJYH&tY7sP(7F6wdEV2Jj%ymZU<+u2#)Cs2Xw6NQKJy6%b0XD zG^xj<>8aXzc%k@V%OHeQ)=G?C4*f9l{zzsizGtoHd<3l{cUca7lCp-4eTyioUeEdN zDLCz4t>+v-Cgh~-i@xSB*g}>=pZ*bVp`PFI0ndmphfdMiB$h+BM=Gw>47ieFQuE5b z5}C!M&#BFUWGKdbd2&@}OJY^$O$m4+6K}9Q zw{0LY8r;NfpRt2MvT6+moZ${yunCwmOO17U3(E1_SEBKxfnWRqEib0@?APE2jcYAa zUxwGeTG%PPhFPTA#Z6mScCk~}VPiBLCT^E2|M5TA<$95bc5ycW?XtwO3!m-nvKX+)2jzchmkm!^ zcKIY7;w0_z3gFWFa!n1UsY2cJU}TzFKko%i%(xKpNK=KDp_)vT@zWQ4G;qrUIyvbo zV@5a7u_Y+cG}}M}g`+tF1^b(r@g4Y)qMN385fng^3z`O5{EZoumo)Enkeu#G(x7#a z_1u{8j79UX&{%=7GDeD2T>ZWC2_~LbL_Eh|8Ifify#X3hG`R78-7D>PzLDx#8z{u;3ai2O~(>L+!;a+68K9uI8Hh{A_bHpSGE z3B!8#>Z_@g$wD+8^6AzqkPZL1P8h0>G)qlAlGGcICY}A*PgzJuH6DzzF$$AmPcG(G zOl-O1!l@pqj;mx@+35tZ52jB>GV@Vj$4E-GwoCz2G?!~WA!My?VHmSxz8aGU7zdq* zq+8K^=hqdhy{gp`|2hhE9@8eRJ}Jfb zN3q%`mo(o1tJG%TS+Y*%G#{_|Xg0nl7{xmlGUk%;aMA4~3U@SxTgI(P_&0+?0U4KI zhZ1L<6n5xLz@{nAf)-$+%IU?Q@YON&oiiL{{Qy|QDA58_%>elpvu0yv%(z=anWr6* zY4illvS*pS516WBff-6O!`PL^?I_W-!1o9>M6ml2ZmlX4!TwIcX0fb_6PUX^A!H9; zdLDDt!$j=z6->im<@8LOZJhI@TBH+l$k46PjA87I)qU)`G1X6u*J&ylvFzkR^O>@| zvl;VdU#{owd&*nR_XMD$q7US25#Rq>G2@6Ua1ayC$H-)aWy;rTF!vF6`GAEZwpt zPH&6Y2-q`#VOs=#m4is{z}OM!Dl?=TP$tzHj5%lT?M$BB!6S$OND;3CQ+qr@YbfHY zkN9AT(ttyW*xOqrnhXbJzk5E|#burdhDi33B%}T|&reAv`s;5cvq>_oh@MF1UW%X! zi5o?f$0VHuezjc3Op$U2P@)KkYAIp`sSA6a29|9U0obE}>HQ%iK$K8~XnQ5fq!n>9 zvPjYO1dvh-jUtipDN3!i@cV=Om8ylC;GxvQIiepe@beP38~;QyL|I+zctQ{U{ND@tuye#B|d}=(3hT2HiS4YY&MG*q>Nv--k3@W9XQJCAsK8 zaO?&M+cT`C*kf0gVHQ>y&GV319B?E6GmtG>yxf>!fIRL=Ven0D**-!tw;Gb|UcrMa z`|67VC#w3K9v5~DWUKi2~YngeNp zjO9||ZWshFXNghVe=ma#ZKpOAet3IM2?G5LF=RAL$hCqnIAL+MgHETzZgINI;o2CDB7m-7AIm61j4=~nM31p_Y(^EI zTOdrfv@ym6!cu*%D{|F7_cTy(pSziCleKajP;@zzlm2!}+}~D<_K$|Yt+xDaDSgse z+=}wN_HX*a?FparVRnR0SEZe<%A;qB?XTTW39N#O*PS#>7xdc{iB>b_)?UYQSzh;< z6!cYaXzz73+f=~P4T*EK&e5N*SXR6+id@h@4cseufA}X<$GdJ z_+BeqRV%AoO=|~H7JTo37dy3!u|EU8=fTtvoDW0Et&z(sD5@6lA#~5FKD7Hj;*4SM z(^zYhJ`yuLPz$~8Qg-M`+r5AUUiF;BE?fzc{$3#j@DvVrIp=(}KNd@klkOJ&7*lPH zG;NK=IHU@?#mV|)K803s930fWdhC%1Lw-kJ73Yi*oDV}>jNdr@&*L<8@c|qFdIXon zSV<;MFHH>LkR)oD9K&Hl-95-##&8}Qn_F{H1AgROe>wN%ID^HE#EhmeGB3a{#B6?y z$5$aDmoWST7Z9!Nz*L`+sfhQ9_*^3f5;4k3v5ANc8qq5iv5|wf#^fTIF0x$6>%C7K8;wPia3>sziGrvsfc5VI6)&GOhp((bkK;qQV~ZIaY#C^ zKGzdbZi$;gM59KSsfdn5Y}JUfQxSi#mutl9L|ki$yMl=GG~&@z#4;i>HKIBd@eUCkHDY`!;w>Vg(kJ&BLc|y= zj}n%Ar$+Q60`aK0&kIbkOe1=vA{G&$G$I{{_&|mU-K(D`c9zEe2V?oR*k_65tTKlL z(-musthRH&@eZh0-6TvVQK%O{rcW?@;wzZS1&1v5AZpLJxw_h@Zmpi!MpGT&@=Aq7 z?d{f%SKP~xW|HKidzS_1SFKLx{yEHEPk-Mjy|~eB2Sk_w5zy)6BCSk*SVt7FI*<{0 zaENY;M}lR1vb}dQ0_X;C0Lup08iK_Vy*?B5p@BNVVis?L842tOfkzy`fakvLWXgai zhvXPxaeW7qZW0l!kbW_eGF9>!7${$MeymL|q&s!?Lh-1_>V+^oHF`@H6Qvg-b5Cdp zJE00r*FuBHY+!{aG&q~(r+9k$P4)+7L>|VB2SeJ?e<9s5BAxWS89=k=O@n2kmmt#< zQwz$H|27+}Q%gR78}nkx&y-ws476Mt+BsSa)=tFlkQ9NCj)F{VE?_D6Pa>jj%V<2r zJ`nVD)mZaoM$N&rK(}Rhx1g??gB{S3x%8{Ecyr2CbN#1FpwlMV~myA zz_yt^A#4pJkx#zPCnd~!`ZAr*O)2^85w|ox+mezGlf;bQk)DNGPl{xr{syot&!|J5 z0$=uY%wFbmxT4)X>fe|!i5X$dB{&&eQhWO!{>}__=j|(GlQ8G! z-`Vjo=uDaISPwew(Wz?>uL5dqbmFw91pbHss^J?P2xLj20Z5>&oQee2yi7| zM!HwO!RHY7>Lq**cCTK{=SA+-|K#&L_v**^?3=&Iy?OzDakhn(H`>F!dOk6o-K*!} z$tIZ_R&>=~b&E*Z=dp)aS~gOtCjF#VYs*Nr{zd_|I}GqTfbCaa{~?5JPaE7TbZz(S z-%c1jL|Wt2>_-6+_ebsu(k_Ja$7a}Z0QJQS$HXyZgl*d0unCDfl&YyUEI1?LFW0*v zWS0eE#Ztmb2`l3-YzE*08g_V-bL5{lXgT)_|8jYF&YyBits0EeRgA7ZakL8Zc-XQKz>Ys4w*KYF~JE zHS+axhqou3IBH!6zjW4K2Ml*W!148w>Yn<@fKT8&FpHCfJoJFDz9@>lG}vyCc*V|P z{>H(FB2!Iskx8amb12Q!S<^+0v^M%wso9Z zh@Y^CO;B>3cn2zo^S(1Ff7qS@%cSmEDPl-1M-iY#Yg5wQZnk50c3FPIQK$%;kyTR2 zmM`&&_FFuq&fjJENYeaMXdF{&KpM86$}TeH40KoNGWEuld(gUJQa#fm$wre5?ww=C zD>KncjRLdiwK3yXi@js{P(rXR=1>R!Sj@@0bPo0GC?PnvKfNr!HTPbc`wIkdTTFs` zDY;JuFYIRV&Z7tp1GMg?0puUKw49+@3&s+V1=gX>F5@n!t7k!5*adY)d>2$R01&^P z;#2CzYKS)+dc6cq7e_B9_A74kp9^|_Bft@9=djitHlCL>jv?UCc5~F5#k(JNtPEN9uh3*2r<=kYCNZN;yoOa+F%!oEyxr*J@Y}b~0h7&G4Zqw+n|;hcji-z!fI{x?;P5a6w9WOZa-280aW%Qyy@g)} zj*xkHSP=Ie)JL0TS-c3!E!hD%u!(GwAIE`3n2xeN2-OS#vfi{-1c6B3PUo-G9X-Pb z!ORFCdsb6@4E&w7V~!w|eIAm@Vu^MBrR1-6^!$KysQ&Sw{eS~$Qr0%NONRDEc%UuA zhAP?BgN+eqm`ZPqz^A>hOPOq?NJ)s3&(USkLa!L!9I$A-mvw8&O|bTT{E-@237meDnc;rt+bcPdRj6 z2O#=~f_e%AoymFbqY<(OM#0|>ZblM#E%%vtRlg`+r3v?_C3~Sb4_YxS3Ps*OpG-JL z49viJD_Rjh{b+`tri@|ZU=0cM-k%@uhT6(34vB-@HV{IN*Xo3mY&*mfSI99NS$aeL zZpDKErXBOf(Ni%0uJiC?IqWxmkb81}NeLbk!Gqm>e>vY16O#^xoZCHWZY%8l7l&k) ziz?x&sA_LZ0{cA>6Wczpq$pe7hMG#B0>9L&X6VX+lRAklZ+C*)y_C*mh620H@NnEH zGVyb6VjXc2U~qAGE36&Bzz!STFQpES1=;69u5c82;^&dGNQ#OZnm7YNn6tLK_*)_m z1BsS(Ko;1KD5li%ewfK3-FOFY!eA@o4V7odjD;YMSCA(_fhsk8H6PfUVlR~B^B5sv z+z(1NfTM*EW(Vb7mhuZh94dhzP)To~QmW~kyMRO4p?hmr+g$?bjVR<#LQpv>2vNiD z$9W0(92P=-_v5;oHmijtAb~KeR;9Y0Z4+E?B3y4#0~o;djuzJ&umG>9%QIS*K>_XD zZ&*Jqt3KuC3}QYO<+_T6g!I8`yuuZap+>^SyW*HTVTQ5oT`{2LIvsM6Bb1PI z$LmFm0bTImm$31qf2rZrf#nj?(z+&6E68JeC=CEhFy)@BkKwwK-?t{SuXhw z$i*cwB@_4-jV!4nkCIe1!P4T9AKRHSkwp#CSRSeEt;KzURBgQRC@4DajpK+_#>N$V z&>R1}gTE|qYz9kuV=kys7bFPwnBJN2e;u2+Fu#x-jwnTfjscn5nv;Y1$t667W!J1 zOVOpuL>CWzOyV%)DXO3FTXZEV!xzLp4R+$o(UP>68zL_!_umdNN=yw}UxMbp^Jq zG{lUrh_RxGGbrJpY`uQ-UoIaemT=lHA94vNzI%jbW?(w0pcNuqfr~fv1Io<9NwAzR&n?i2j_x4|G52 z#EY1C2H$0`@gHjtCLGy?qUi0+BQ=+=Zv!Z73`b|1vf=GBKrsgR95MZ>IjD2)6@G-` zEh}J;l%iyT1y&LxnQ(i=7U*Pr<0J3(C;3#8PX#%+JPI!PyNhujM`+Y|i`@j`|3P+0 zv+5D{1|i>g_llX_0dL8$;14I@cM$&G;c!3UT&xp5N&1O|KYcj-2Es#!!$%W-YaISi zBHvQNuRa`pA>r;g9Ai>T{yv2FIvjo$;YS`0Ka=nSy7L*oD#_;*!oN5iej?$U4u^Lk z{I$d3nS?(YhhxxZ$$5bKpLsaEmGGMmhwmf&io@YQ5?*jP{5!%=J{3@|h5?3}XEq0go&%A(9!7opid6^@q%QRQL~>OkP?E z@&`da0_4b35BbMqtZyaYuDg~gSU`>ZXDEt`-j{DF%dCSf9PQaS#wh#5~$LHe5MWoT!H zNX^C+4%M2=;gX4YshF`3By98grsB~TVCV&6xrdK>b;vr?)SMyaw=MN{tKVwXcUav#LJJ9Ik(ZaF^Ek1ROmuolBU1=1?c zGNi|uT-nKhz==_9+cC*&!ietL4za*O=GNB@<4;Sgw|^R4+O8H4@QFmI*n+ zdmIa26_V0+p)H=EC6(jg5>ZB}~ha zLxR>x+DlS;|Ko*r2ZNXqBu@@OY``D}wle9?gh#BJEdtu`f)otuIXel9z&KSL6)NB4 zxO3Fqg7HYN(P7?9u+i&Mni$ z*vpFKp>L_Y@N||#0&weC)<8N96nzJ5)`>a|8`q&3jo(r^^k%3J$FhVADpul_${R%Z zCR5p6uaYO6R*q$ziMSBQf4cIKax7~%S;LQU{O427&g_W1r$yn!D=(;oA@-otUGOlq$?;PS1rQHP)+*n`uzuivR0n~?G^)?LGY4vX8Vc2XLEMeIq^4?h#8w1F;YgTJ+ zV)unsU|-;P$TTu3(;~a;eg~Pj%!deN5WK&cjeyCazp^4L8G! zn|?#lW`3XD714aJ%80X96%BmsA_%}GuOPQK!%uiG0M=?aCqB+OdB6xfOY-aR(|%Ts zfE>dBVjo^+hVSf;b?PGOzLXH$foQ)SV@&vOH4s?YDp?57(dZBGb1^_5E5X{feeazD zY6J)oLdjl$4rov-K;-~s0VMaXhDx#lLex-F1kh76B_ZMqcO^g-0Og?p#?MNCs?1PO z8sD(}0+A!QfGt*dW;Gw7;8Ji0uq(twOn3r08v#(AqrOGF>Yg!Vi6a-m+#IQ;e{HGwpYW^5ktyg10I@v zuu)Sq;eo7!AM-)WT}h>d4TWOkwcn|D#k1$T)uM)GkU@`tIxfZW@p7uAXufYXK1Y+?w6iUC*05D5L-t70HfyUcj zjce677senk=Rf^|q*mHSP#bu7rXW8t2lu*&27RcCEP@ zM>B&`rrN^xNjg8?Uxxg$HLgjg>!jsu);Kx?((w}kX4rm&#%1D-Myf_xpuxF#prHxQ z;}aTO$RchGF2)1RFm1I2KS8(@52|`Oo+NA_*g50nMvZPJ7<|4I^u}N-o=0g0Hb?^o znRt*v7d&a~=d(3D&w`&zII=eJ)J<8iR8y2$6xWafDIcoT@M;S_i*Te|faei9&xM*| zu|@F$DVVZO!y7I5PQsBgf~V!0do@L?MRAZ6NEvofZySTzc(4?w;0gF-`)bza@XS1| z>s)}L>l1a8k|%F7`)gdO#(jvu2UaQ5xFU^XlZ$low7*nqoT+gOHBR?u!NnR^s&Ne( zcOob4L%~LkE7Q2W8n=Oi`cSY{%dMQyOSQ)FxD@jH63sA_8C(KksJsqZ?mA*O2KxhwUv#=662KSm zptdi?lU8`ST*E6Z_!PpCayFhlb;`M#Vu3~R7%9N1&U#U*VavwKkgphBmwFPAwvDGv{htCMKSMo2^?Hm%PnfpmBK` zccHdke~nwHab+53)8109af>ysTI2kjNeBgJYuplzTdZ+;m4aKMaZ5F>QRAv~ZQ$oa zP=-2MP^96d7MzzaGGzsx5P~TyHAR(0 z!Am>DsB<-Zp#^`2aHL#{r{zd>nxes?*h~uM*{tDvE%?ubBPI8iTdlJTKOt=vML>CY z08q-Ar{P5wd?4XSS%xQuB$T#XQ&bSc=6obI67=0Sd!3YvnJ{ZxQ`g zr{DJKw}^gg)o(783~uPrjX{>Y&9tFY0MGs!w@tfYk;Y|eT)D=btaGo>IG4uF*0>*Z zy15#crEyC%?tsQE)wpbpYtlHM=Gm-qxf(}3Le9>Dd#H+KKqn|gG5iy#kr}~8yizl@ zx-gkY0`NoC1fvJVgQ}m0Csn){PpcPNqA8XVgW9}YDA09ka5ElE_@xEjizm{z;$gKC zbPwc^i3ihn;S)JOpRM6}c#y%lgd?Si=TX|YrJAD5qPT_>NcmQ!hF4qgS%f3y0z9pX zvrtnkwkTd81ya6Tr{Rqjd?(>Z8Nt(X#l4!M)uK2^3Zx9Ws4w)KB!jf4;0gF-dw^9K zJ*PHAF2FFvUfqu5$=l5S8ds`u|GtgZ36^PGk;YYNT<$G`tJXME;}&XMGk8*va=c>a zBv>pK1n;*&uY=!RwAPC76Ox*EP~VsGiT6r*M-`cZA4oA957tOjqPh49iUmTkA@~@d z$ZF*h4X?w4WnM!#$QuZzN8yRrX1*39%ES}wzrzDF1K?>Zv&cZT`%dQG6|?Q!a#x*ATN4G)>s> zzj>U;IlYe4d|gX;zGM55j z6fZadv+?S#D?UZF}+O?q-kr%9;qUHoX=N z#qhrxWyIWH|0gk%0yg+Ps}T>cx;G0gh*!WZxV-MG*r+oM8z zDFbH^I09z{mD4L82xnEs33-44Wh;Yvc<_g+D%Yyg z0}`zU-DPVvEMQx#=ILfo)bIdULk(*l7d2GHSues5s=-nM+s1?vPHn3M=1iTG>l<-U zV9cBR-<42zm6Xj50nE^>1#tmR=MOb&AP)aZ6$+&{4kJL8P7jP<;<#%%XTj)eE5cs6xgRO zg`3PP0*q3LoAeW|_&AM6U0FnBlxr8jx{|eN+`7h*UJJKi!aTQ>v#p0bJDgfDav%Vd zvoJ0Izv={m7a$w)K^T4^ez&V5b43bWM;2SZSx1_!-z-^T&xDmk!x{WiqnVIo3tpH%{~C-;8SKdLxI>&&pY)|+@E5`$x`P`SIoFh z9M2JX7=$$kVu6#*kbO5_3hVvnn99EY8T>|@*N1xvYS!hAUTYRM_`iWT(`XgkBZdkp zTdJoG<-(>#!!7eb7D%Hx0qZx|9f4WMTyCj^OI;x);v$3fg)BCxPk;fJ5->+@?HqcY z5X`>bAbZ$W@J)7x`UisdPm(d#t2!o_`G<2icG%b~D4fZ;f--_7E-kTGUI!*6!F_j@ zq|72;1{fP|$j2iI5EjyNQ6SqYjdDaJ4{RL29JEkJeav`>;)IP^aWPnay>Q~s(_)N_ zi?Nxh+lbM0rHJ929e~-QxLw8Z_jnFJ07bowq(zOhbuNF4=W^^}xj5pvj6E!uDe+vK z@m#Xwx!hyr@*C#)@!cN0p)B8_8I&c!*YJ)Na#;rQpN9o2rt=%RSZ@jywEGKW!6bfi z^``@w?z{8UmZxO(z#;bIcKhS3-0qRwMlv_Gw&h;DS$!WLZhlTonk!|`Mzxh`?^^jH z8ys=cLQZtYv@aIc2QsknpWktV>UL`#c||Vd_Dd?Q%u^x-f{1?zR_CC(q? z`DRX)JXhqHc=9TDHeF`Ok%4UBH&@_AIbMH=Fx&)L7wEFG<`^uC>|oc9nt<=%vQ*=6ND%$BiT%y<#766|nTjvAlF22(W*a=zU?Gk;U{!Mv#_Rv#?5<2Y<$a=yJL z+$|LLLj_2jvX1X2wf5kENTD32y`R4XyPH=R+kSENF?^A11{pQtX5} zf4hq8UVwq2v7SM@uAqBFbvHsWv9X7y-y0x>&1*Y znqr%#D2r2YE73CE(;hQ!77F7(wLP?sq}}D5Cwi*w1v`kKzS%s7Avb!%+iGi+&Gs+*l3xfv9k}NnUEz>t?N&b znq~cpZA{F59>`lhl6K`mA5+o_u<{CKcp5U4qgY@!oa})*8I|v32p5O<5q_v?{HjpP zFLv^9EEVJ4ieQRsw;x70GPGEqhxK$80IYh0a)?N6EJ6br-^cv87wFJ{mk`XYTuY|^ zAk)x*#~IyW$-aw*a+WKSfsKAVv$b+P2?LV5{Q}8-akeNF4eb;%wEXiI@k`@aA!$IQ zQU|IC2hCbOC$GW7Z{s)7BPlXTu?iG=Z>j%$G#!Qg)7G`Wi51-wlXO3U7v1+tao?}- z7QG~9jFjRWg7U6_jH0y%bXnmOlYoRm?tGW?jw?T*R(=w9HMITw*pG8Ov)_k(`@)C@ z$M?6Ckq&Mc!=aaAlwtA+<5BqjhGylH_wz2 zOz55kOvoPK0b#*b;AUhD9ayPbnED51n`jswy;LMSN=x=G9*|5%4SyjShb>yNYf>dU zm6H8J-Z2s=$GZD0$sUjt6yyu!BZ3I=ZzLYuMi3VWV#XT$O_aDF`Nl}f;SVo9pWI^IrhxP<|c^ z5pX=}8rYKxJr?C2OofDv%fUx_{K23>X7?i*k6DW&?#Ip#9hvgBA4aMt)bZ3jV^`vI zG>g$6&UZ_l%HJA!r8oG@TvrMbx4wrz@qGmskKAU-4jlQeTDF&;iVjc7LJWyJ&(VxK z@4F4@co@1c3p-iy8^NJjQ_y_>@ z*T{>_R)l-h0OgqgHJdPe+~at6VmE9Nzc08YvMLv*Yhmi;UmWkOp-FwJ%$2{%$1g{} zP6pv39NvRG|H6wItEW7k!YxyyXybk1(kzd{A#8V2h)E#ZFPj+fqX>h>!jGJ_6PZ@k zlu=@I6Q_7pkt=^Eru(K31V4N&HPi3og^I$vaq6BZ`t-G!Vk~B|Y8#VbBePY*2c!xix9Mj{c0uv)F_cwMQnL!7};Bn`%fIGMCt2jmAbG+37XC+zbuo|Ck3G zT+wDf-tIxjzunfajfA1>+3j~*y&?$tswX5i87HG?EUMl`71s{FX9o!~`2~?|-matG zLuLEv9&+_$M(P+W%HF#`Zp_$B4Z$2ZGVZvKmJS==qBn}~yW2gGsc`g;mVqg(&svZ_ zs?r2jCBzrWPr)NcZcp}xZ_UcD!xt{_jRfpAcHYO{08MP-d~{)fv$laA#ky4wC)hYO zio>ESO=#K4?-87679yN}iX`~1JPMAX3@-SW$c$U?5S9h8(|kYZ_g#`*9l+LMG=iUi zkOA>vq}w-0gW-AWE%4a@d({Y+w{WOSH~aeT)5}n~>iN~0)|kHw=YE{QU%^;ij(ci0 zsiE0wjk~_3gIt}4i~5=~iVGW@!JW*yKHGofzWSnNd3fO&7u`v)#65Q5DK7X z_^^3?uP=OI9bO~+YJ#Z_ss(H`XMTl09YdqaeQLXIk9ao$wjyJfH9F=^_?~PLi|4~6 zDmbO?cfA`309lhxL%tDDVF|vH{XYD_qlT@A_YTKFgpM0=m0QFcDlwy{dBc=rn>Soi zhU0G$d=KejajDwJkp{;`L0$p^C$BbOvrr4s#?3Vgj`UCC%?WHg0T29$?|H~IiX|oj zTI{vPv0``f7=+7N8$&`5Vli0c?zz~v3cL&VG~u2Ck9sd=dQ4_`c%? zlN6zD>*$ftT0y=VRgUj7fX-96-|vPzohTBnfw(9k*C`^`rIf1)a&^UidO8)dhbuxR zo?H;m*&nDwD-uF8kI8|sk&Pc{T#iFR=&nk7`dTap@vdM;I-sEW8)y>9@jybXwuXFN z1I;$peG)*K-HPVpbQsE~6QLsOZvjpNo{08aqi+OU`iTB=8^tI$?xTorMHL@z7cW>X zsT)RW#oZJ9IEq?aZDZ+w2w;Y4C43}06d}<%bRPKLskn^4Bl^ILq#?x-ge@@)*_$wa zWr4BL7@^SR@>7RGmmvxC@SJo$i2n*P>y&7BlRaX*1-9h#=eXjcxlmj76}hraRhfyL zchj<0V=BsVj)?R=N(@gsD$&Vuo40VYKAi>;A>F?zhL-L%`KhIQ8L1&%r?_-aVqQhg zu_r`~3ud(dhsif!%1pX@lPTsxd@uug^g@rPHU$dNlD){>)QCLkp$?rW!rth?eUd0s zNB_wDogSPB(BVN`@|OK{>zd!w0vCe8&8ZAlY6iHWN*HAN(Yqb<7aZQA!>d8@dYOr6 z7coy!f1m1}?!z&Q6J-dEN`pg+?X&m9z9bOJf*+62@uP$<3HjbZY>;5kPI$y7v!TRz zgNgM{>8n4+IFpt~rMfL<^rhPIvs`~p_5DQL*wH`0S_u3~EFtas1*lFvn1bOJT&Re@ zc|-swP0_<4?!vHa;w*96yVLf$TVtNnIcuV{cdzKhQ^EMspq-9#Mj=q}I*S{S4+`=QfboJ@Pg!5djv2!wm%V5iS(}};LDm^%tb{E5Aa%bJY3M*# zaSG;)C6&V?s3KGSzeG@vQlxefRFE(pp<=tAdQM`3AP_<65~qCsm$9UyAJ865sJne* z8og+b5jEl#5nhB>zZM~Q{HuLztIN$;xeG@P_BVmZ>A@83m$Ab_^|8oag0$OiY2 zos9G8p58dH{eknOYGeUrbv%Nz`@F8b=DRe+_Y4~PikW0G;Rrd={wIWP>5Ke0r)_$} zb3{O%q(f(aEtZThshx}7(-;2Ro|y4Sf8BFFFByEs?<1FbdVl6q->e42)%Ly|#0zct zk(Dnz7N5aJ$9bxZu3!ndV#fO74JV3_GcMlk;o_IJ7lJEZa#~|X56L>Pm|y2E4I(or55<5NKP9m(s=)U1(Wgb(AI-_B1`&q0n1sg7^Rf9kv+>U9Zn+9ZrtWgV z8xA)egRX9$#e15g35;Pu@bjq=QPoZWxNe3{=~LeHRU}R26Z(5nHS5aUqpll0YOOR6 z2;)D5^J|b9Yld6I+XI|9KpP1!#Bd(o!@Knn-54=r5Q`8Rgj&UK8R$Bz>_I}Q7W>`& zrNMj$p}fRB4*r#kV_T-P*tkN{bbz}f2D_q+10{Twk>5p@LtYm^H&R*Jj4=}Op?D%+ z4>a7656W!OlA)un!*^CwL@-lCVE$-WcycVCcU2`?HkbcY`4XDP^n^;=cJ@ooOGpA6 zZiZa2;qOIwFxxJ`#+#8`v?4gZ!GgO>WoY!j=U0mSO4|e%MQ!rCM(6iNJio^fizo9- z=%dKe2TZgS>0u(YLG2V#l%fdBAW8YqTH|{il8fUTa$w>5w8^ZE!m=@q7dECML3Eqe zToFowOj8bh-Oh1C9db?B5Q;$qM*Wm){V2PK1r*=87{A&LC~+@A1-$As($H;6)_^pH zM*4dz6#1A#PAsP3s)?SzN(mefY2}>M41o3cm7hB6xD} zX%-q!gQfq)Hah4ScpM(F6s3eJo|ZrWN^8x>JCnxE6d$~%)GvKLM7!`vQ|V(Lr~ziI zQJ*^XW3+;)mr#w!CK^LiSF?};vSW?gJ7s*Hs;_mV zRgN2}wy^OqijtzQ5rpz=@coi~=qY)m>MM*Q!_aN?bt_o5(^t0WYc_=r8)-(N%ri(O;5A<|j9LDJasZpUII`d%bj?7}l< z975^hYhi1Nh?TJKqQ}Z~rsK~5inEhz&%mOFIGYj zR;;tZxRtBU-%)?E{VXO6)krCldmWAuIW!d7I45S*3dBB<`e7;UWAH1AIU4&5d2!G} z{<3(HMyE%YS!(S(ky~7;7(JhbS~vkyO=v2!p~3tg(Bo9ncnF1Vsf^b|MW(pUC636B zBc^CXQ5;beM_jED($|m`x+y()EYb++6o@E|BhJtWMzoT7;;z{vG@?9?D37Q3?QD^% zB95qtBR=dnMvUXB%<5BS~xnKM7R$1_`Hr1|w8q z-C9_2L=?IOBY*5AV)Mj(MQ9CEK9L)*UmwMc15{$o-MKdIEycLyKws)^OXL8LyJEn_ zW)$)B#{gT6DIV;9w14PXeK?2*K^r{8i{U!Ti1@Y99s7`zD1%UU;x2N8sXnm4XKAoF zNDA1{U~!KW@F5fuOvE`-z~5@HxJC-NQG>-XQozeJSll87{EP;RL!^MQ1cNLSE`bSu zEqWjT=t3e<&Ls3YK;srpLOrx+9vc>PY}&+U=I<*IqfO5?m6$b2?rLMyW*X1B!2-!) z&4ev6MW3_=?4hnGWqcQQtiiYg=DMs;s=1QiyGF&rdQ4&xgEIu`ps8AlRVl*B%1n37 zmrgfEB+lB`Q9}IcpcnNC^AB~`9PEfSc6{fIP7*daev@|p53B%TQxrpfP8GuXn_|W# zBtrW%-K#Ehd1MwA^RZbibE&(qQHI1(-jZsOXIbQzlN{hc$NZhq@gU3qAttLJpQ9MX z^5ND5_BBf+&*-H-e(F(XT|bNtAUiCNBlk@pWlM@>7bFcE$BC?t4k;WaX%3n3lRJyVE7oaSQEwi0(=iyj4s$r8d1k!Gprt^C$CT+D1Qx44;( zm+{?eiS0O@>!@*523bTOPK!%_*fc>th#t&4V+Z-WO0a;1BREd>|vu7VXRLz#99BVS0aRf z-jIVQHYW4Gl6M3$2m1(Qj58gUWcru#ZiNh5-lIfb463k>u?G9vESaec5qciDLg-uC z3jJ$tLTJp(#HCKw=>I}~Y+2NQX|Gligmn* zl__EY(O#3Xv;lj2@vUg}zB@LQ@=B1BBBP9lSohkrZ+afbF@6H=>&c556KPh|%qCPT zXYI#mheAuGH40VbnxP6L=GddElJgwsYOFhYKHv;Ex{7cDaZUz&$M&fN~X$$|DSk87x2bbv>)K(c>Xq^WdZ=@s-_Y3l%ZU74v;Of_FK;Buj}6?n$Ynb z21d#Cjsy9-QH3(~h~2ro`NZ1_Wg!EL-I%y6q3`gX+IPT{e&`Io%wLC1;v+J-8Zu%z z>(2f6(EahR$Ul)gaL*B+r5pMEGMZxl6*G3S#4>P_o%v8=78r1zc?jYJcHQpe#tUa~ zBD9Hu_t1K>Lr?LQ^_iz)F11{vsVAthZ(NN7fU`RP_-aC1g%l0v0S2h_C-oiJ8x<4^ zomZeUS|z9tQ;TeZ&>mnAMTbXQIj%x>B74>CW#-1gWh^S5NC}y=UtpGf z*hjHs=am0iFK^ayd~z!cSm4PDbi?G%=XhzEE!6f0#{cm5C2Gh)Wqq*jhk$H70bmB-#) z-V@o!jNUXDmLg>70XsRoq1!Pb@6XBghNhz)uo{J+P}GmSHUpuqWYlgoV*knH#nEiL z)rijo0W)DIhc;Tg3z7Z<``e4dS3(URVedIQ%qo{}%w}Kuron~9n=)sZfJ{Hv8jrcL zL!tNDM|-b%uhpHt7E2Lk`ljN-;w_oe?8T}v+G%=^;&547N#Vy+KL9dZnij`9hcvPu z!)}o_4kn#kFdYA@8AiR($- z`vG2>g> z79NNGnsX+g>nUk>2d+8n<1XpIw7+I=&q;(qv_CMWWGm?m^5PS;lr3N5nUWp8tIND_ zbL`Xj>Q0$Y-H1|7LlGyI`A|e(C?I3T#B9Ms!nxf?XQ}~g?}`%uD^}0tRNGJ+_W3*R z|16sBR`{gmfXx#Lan^RBB-ofeV41BW^)(L#fqI;^KOsq|5{)pvdxuX;%DrtH?Fz|? zfZ1rDhF?f)YiYnA)n^J`abp+{1?-6Qfq!_%v=$fsIjt9#Rm}9A1^!)`8~}8~S5$iJ z;;cvfa_mi56Kts^5Bs^`Q5XsI4ObL_i#g^4v;NDDF=H1CrcHQVsE-3gs!uxpLa2^> zjNy30Q@CR~MuzV(iJ893=^D7#jBPT*SMGHlInV{{jPJ42h5ck*sLy&tWFh~?OmC>; zMqJq&g&S)fp=nrlgY2Y6!_I{*1(mGMPUMg6dkw{*^08RgC$L@pKGc)2wzp$_2N>HA zG{|h)@e5^RMX6b5y0H-fp$ZxS#FuiB<`d9^2b+y*AH)yL$d!q8>ilPUF+N7GghlG< zSpLE0Jv7hQsy3NhHf~OASX?vp+x$8>F9xL6{=GGr--EO7!6CjfNDLO9!kuna$4x_Z zfzuQFvs8%2B)6l`z6JL93OC28{GIfiG~V^LJO~UK1D&K}M{WrzdwG?K9foQ%Mpx6_ z6w_N^^EV~-FK(K;N3B`QbwJEZ>iin~-6cP6#kao=Lu11iXk?6rXQF+S`QSBP^f-l^ z16}l*0!MRL(MaxsxI&%c#>K?J-JWQqz*-2*sD3D&0ftu9#x+_51z1ha=+$wn3$D) z4eWfh2TPUMJLE0=+&QNb<;8G`u9yw9wXcIkr9$<%DEft^9Ry5G@L&c+g^v4rAWlYu zuNuJ{@11~wz3^+@@xTD+?%If>6Ien&?M%=n%x9S~MczV3!PQuub(!_`u5tV8W3fQm zTC;wWtL5+MoH*k66C=g~&idr?&oLZ2rr13)sS}!Pd*os~oNw2O=-hWogF2ymF48}Q zZL@gI604%elXz0>8=o{p_x4l%rpRYtQi~>!7LMF#x7qG(nvGMlMen553^@5l0G+}0 z_`A`5BwlFQ2ybJlt@B?Vd9gFzct1?!NPrO2{Xgw}4}4U`wf}6$<{yNFkkEk8UX(Pk zl5`=dMU_bCVb8lS{OaSR?qk-0VlGUnY-Cnt$;X+^Ud(cnBKIqoVvx^5uSCCxOggVvg5~(HKv>}&vV^-u zc9=UU9Wjp+=rDh2ouI5l{L4TcHZKB(sy%GJ3^5wGhs~dnu>p)HX5BDIv#FFy9!@pU zsE^|#*?(yOzN0o((UI7zWh-kW5(PiNop5v#I@pGm;U=>ZKQu+73wvy=>-ivz{P;AO zmct?r@>ewZ$>$!*L0hk|w!0QAfdqJwoj%puh}TX@Em+K7BqX-GwF^qY zn>^e;nR4?FspsHhNEVPX3)fh=FD$yoTuDMdwYd9trQf0h#Veo3&(pN4xu~TM_h7ei zp_XGVET5Px@E{c#v@W9fS`qK8D-`KUN-u}YU)=)|IBJ+VWils?+zpR79}y)aT5u`O7sVC)|d{B&OTfo|(ymQ zM=Qiv|3Kz_u=mywGU0=7Yfa92&3=^07??XQ2aB%i{@wW*Te;Y z3&nmcF<4{phxa>{zk>sHH(+~ph50X)*f?yqI;qF_ zFq*HZDhxN&UiMthlV8loadV+{%8{HWtKg&rhqp@?bCv z8^$RI@dMyN7{BLAPW}%4g++))Mt=L21?;O7%fdKJ15Dw=vhaCfU+;b`dJ;pi{8i{> z>egRlA9QEIAINl(Rh2Yt%YFw8yZbdQb?d9)Y0+6|9oEYn0KLI9raH}EZ^S%mFFHZg z!v5n+xw{us((k9<`sN_$Bd0M>7^;7Q7X=vV1huamxmXN_>8xaGs-?xZi{aofkO4>|wS z!tyoF`t~7S7Y*r-+o>87gd?j49->;wWxj)dLpC~sacGT*5?GoW;ksbMGE)iIK+6H_ zA$UfP!Ng)&0mB;HK6S##A!5b4OBKQnSHd3*QOvSz%rY&b(>f)3kgwK{ETGT6;pH$= zm^dVp@5yw|yYtgjdRZF)J&?kY!yvt3YlBsz%`$xZf+xhRq`4^ifL0I1+BxsbqHIG_ zS^Dbt*~&hL!At8vF6}`J*U%n^uLrs1gXJ&fbk{@<)x55JJvEV^ z;nN-EFY*0cPWSSu!&nijZvE4>sxRDeITU91P{xM9l4& zSXJ#qrkW1(W<*b>1LsEshsjluKP`_OS&q}G_P?dytX6earIYNCD)Kf2g1it2;^Z9o zeP(DXn52M7Im%+QcJpld;u-6-zE6#P6=hIDkPj?CM$MHIH_sHB__Z+;%cY|ZZ*ann zK(8ZzJ8ZrlNwHC|Ax0YlSdC?f<{UVlAG!!cf5g5bo^>&z9rH>A!9_VZ8^(ZqDaSO7 zg961mbr^4iC@4BNr~Mt`6uObR+dJh~ANFrtxk(>kL9}7*h<{X$PMAm9xs&Wqe`^*qdvmh(6s;r9q z3@3)xgC}x}CUJ_>{ziI-dEZ*Fy7i?JXv_NU5$h${^xnF)BRdZO9kOw%wfzlz^glaA zGAsz?6GPN9GBcD3@R{S+;WLIb{>gb7J4(oSC>Og?`f?W^lz`=fSC~gYhvhWkW)J=v zQ)xVo^1tK!Z^<;mywBqw@V|fKf9W%GlSL`~?==2*I{yCr=l!PV!5{k#tbh0l70ymx z#v3WoY^a)7&lfw`%F5NtBe*I5RaN`%Pvd}~>K&F^8#$uQtinr}bxvFAyT@v$9Kk7Q z?IlN6I-mc1BtIAavAO*B0;@CLsWDB-(Wc_-X{IUdBNMe#hHA@E%}ZZC@lSY$K3Q}n z7qJw7QB(32zn|q!yvf-=H{=(+KOMbHe%^{T@`tbl^WDWMJb&XNiyMhz8b;OC6D1Yfz z`ZOtye-1_t0uNn&bp3y*fn53k7_NzQ0aNMd3fIRaTrA-#2|W_FNw{6YehFWea74m) zBwQ%#xkf@>3I6zG+9lx~681{CosN}p-7O(c;LpFv{NG6UmV_CS?o$#zC-Ey}`YTC% zGU$8fxC$j)DBZ_w@Ubkgu5ktS;F5)J-sMlzl7Zq-YuafVY7q{ z5>`rRkuYDv_xYZMv2h81DdC`mk4v~+!mSeeB(zC*m4p{dh@WxbdOkJD0UMTZK*C-L zACj<5!hnSJ5>`rBCgB_jvm|`yZ-W0Z2@gs5D>?8VRar3@mT`th$-cBST&EXA%NVN0tJ6~}Y@c1=*!0+~HA?9&- zn_LcE(*piC_?H>^Ib1h|Lt2vX=a>In#aJlZq`5VZs`nLF2Kb$=cZ@Asi957lAgJQ6 z;%ssF)~kvO38$vIlu|`&afcMI-xc<#iqqj!{60^s(xfULzrzIrXvq(pN|6|s061X? zI@M694C|{y3>mwfmkHYKjER_#!ftPNLuz0d^9SAQ-98;3a5y(O(ARbra0D?_<9Mw_ z&=Usj7V@Ftj-ayz)i@oR+wYSKs1w2$pG^?~_=9MBnNqKo zx_xfV?eMrmoS_0$`23m@3I`+&)!!6$do;IR8)ME^t;O%N2g5!wS?qS5Ldg8#LtA@#YJn1b+KG3=A7yxndow8ibr*Xq}F)a>qk=E>~LzHR;G`SqO!#nOQ_^h zMRROWLrPKE68zcXQUd-E8t?ZxJc=W@K1{ZvsBBS4DWS~u?v1Js9)P%tsO);E#T$km z0vIP79iA{aHT#3g2DNpQKj?~a-~#hvELN|i!7#&ops^Lwf|%AZ`E>pmePN%vIUt7S zIXNqvS}>k4SUnzaQ5=emcZlL|BAdwAsx`H>N>B|!T4j?PeHGReH5i1jZXamBz{%{@ zC@$pG{C>sj@U`mA!hjF^XlN=WF=3z*p$ru9shAgDe^ABTfyksSt`M%gSYbTYbB97C zpw=2tW5S_)l~guV#d}7KQMb?O4+hZyL2sy<6D{ODAPPuH>~bKM+b#A*c!gzk3nr0E zsTSJcwF-KD{5TRtIX6Ac8LdTCHU<5VKjhw`E>yH&E0pT=djoD#JKAxcZe?~mjbOVy z-t8(H=SPQ${?~P4xBqk4;khtc>apgq&q?F9IHb7TJm!FGUPmjRyBJMUm=Me(>Uym)p(7=#fO5@>~X9YR=2u!g`5N^e^q?cDMf1(EDJ?}&jBB^zrybO zF!QA4Nwo1vbaMINi@shUVNFP)2j65DXMEJLfYl#uc@jVAYqP;7V){lCVtbyGhw2PVqH^y$l77x|Ql>kdS8F~*{G+MY~%Z4yUdLcl4 zVJWItLRdUJF6<#Ts^FuAgIIn^a_j~)htCN+(5zhJ2&v0AJJkS5v5?R5qIzN%bhtz6 zQbpDC6sN}#iZ6mNgW)EDO6DSjDWYx)EiKYl9+w|$E^SY|4$avjXy~u7$yklBOV-yy zY@S09M=5fZ6}d=Cxx>Sfvk04kVg=0Q21ZGs1;4-V{sK1=@`7rDV%y7@apK={RPJka|xiFxOBpmsS6X`SCJ?-K-t*qEy>aqoco#Vr%FN%!Z#$YrJd6*c1E5I=(yJe*5v;_8(xMs0gwG4zyE-| zy!Cqe%=;0phxq+kiLRGRv$7OiWBqpsaUtLF-Mym&KZ-uHd%UxIbl|}8@7_QDKtHGA zf3UL&E#)yPsPj=upyW%JDoI?>^zp8z$DY1#toJtMVvA)d{x4dz@bV>=i{l*Y`J^*2 zZN{C2wp0-!jBUFYiZV#S6%uQ=yvIwnx6lt?=on!ZP#kvyREqYVvHBngxmI|)~3LCrU_OWe0Fpe7< zBDW8S@@J@qmRl4uR4u9#S~3c)NIuj{wBCqYB3%<_+<=~=(F=Lg$%-Z3mL{kq+TT9@ zz}|$)M+f#8bu#+YuCaUepSZpAL&pCFYfPVGV|P6m-O)!w?1}qE2fmM4CzQztCFX-S zKsvxgi;dPZni1~?!@Nx9%O|U39XB${*!}k?G%aZgoTImB*kDdPym$PY{i26r9W5$} zNya1fw3ry?LEH%F6AQyj%%>CEzZHGr30{g1>GK_k1Tb!BD|ChiVeoBCot=PIE_s%R7@VKdR z>^eBV^W92+So_PaqQeAF=yQnhqabXYV#e91P7I~71KVNqaLj<^trWdmyj0=!pV6KY zxw27<7oIsk7UF))up%vM2!>VN);`i_oCTOEuqWdkKRy2N& zf<>R*KKAgVw8R|P9-CRb|M{OpLt~IlH_Qp#`I_{hhMBC!8Dr%`W(yaB3MDjKDQWWi zJ+N}re9YD3I}eDqjy>Hr_T7kRD;l=~y_1lC{Hbq@f9ElgA8+It)(~qBSx|0R?&^=J ziz1?eyS{k_C*GY2=YxcattaSnO6wDw;&jF4?eV7%jP-w=dYw-PVPM1{SqeJZXa)cs zp;n*M?JtYn1BmT1^SXUu%mBvc8|X@@434S*#F`YlqXnY!zDmN=MScawE7h1l+?mPHpT18= zJdFC5esRL{7Q(Lx^IyNnHFHYal(s_fs6f0HPyxK}0DdX(DZ~+uJk8i~gzrAf*tZAa zz<}`i=TSGpeuUIRjIBYSUw!WHWo%?090MTSC~)mS?|Xr<`vI@5Zm1=iwx2LoreOoW z!0Q8=wILrbSI2M*ES6XqL5CG+n6WNQo-((~p*a?OhRUID*%B&eu{fKdkz+{Hd?~B0 zhbv@t714|&;^0ICAGQSCN=`SCh~spp6L2<8$9`d~!^Y_{5^xQiE*Cg7Rm#%9=@j5b zpzyLFwE>ybZ$!h>3pV;an%9Li_2)YDtHf{Fvc=Uz9X>Q6>kewp1uLs~J;MpO8+bj( zjJO6tH2! z&+*=Zagt@JdqHSo^mC(SviTFUOpJcyu&gO0tgOYv$j7xTAPHbB8d0n)7z#QUSQZhB zM&KTbS@CEG@QJioG7Wr9g;}i7HG>sG#zM$gcz^yx-bil1l$XZxO!L^( ziOj+D#x%?PIcaRp(K#$ny9m0U%Nk1=`z69|l8yRfbT&^<0QWSPSLDaj)CY5**NYO% zlCFVI;767P{B(MjRNw56XRw@CA=yac*lMA%Rh-3&A@@ZSvqwHQTrfB@kk>fFl53k? zK9ya(xu1Q!<%evJw%#K_w=njpHps#G!UP-Ara4)VIg`zCWw1F7>1<8~`eN~{5!0e6 zY*9l7OT7ks%_+?6%48Gwz=5UM8E@G;1P%ByTu(aC#uS zahhc+^li$|VEJfEKH8EGKKYA5o0G72z=1H2Cw%f48QzM%G@E!(~c-5^x_ zMYd1N;OWwZs^AT;2qIEW7?FPhB1`Ma#1FC@wAco)Hhl>#schN5609^3{6?im^Rrm zn5_bJxu&w5hAfs-FLh3GOiyLggIN<9BbfKzEaug6SpHG;%b|3Z<(kgS=*uNpr-i)rL12|ho(9?3P+h*{2mBF&=(*jf$60lo9_b9?EvaE*q zj}XRX`YFU;G~`qIupvK_>~=*Cn-j#W49sjKz9jEoLG!EqjJ*#&1f|Whnc%~hN&S?O z$})nf0rZl^l%2}5(P!E9X|_xnzZYWjg8$JXh86EAW7JNcL$0S@~v{kop~9Eb5L zqyg6tTpMsh23!mL9|wRt*Y%Me$RAYb<0F4ip@)zBL51b`f8`IF1v5zx zb)}(W@5BUP{f6|)Sdq_95kZ;;*xKXI~YgLUMML9g&v!faz0IMZVbHC&WB9pOCn!s_h(_Swe)(FiXP~HIi3iyw5##pfg)paUW zPtO)jskT;ot%_&g^(xNZL#T{9P2B^^mE4KWE`V^rt5r9u9w{;#kTR_D2fc8w+Y*05 zPH!EF7Jk9WPxM_lQH^UCZ;Yuyw-cJ+O8x|N+(3_mufgMByHzERjXJYEQEh8{+{IOO zk^YJjTPxc#0c;)jLm(|Oc1OHM*`Ip9Jp;;GI0@LPGbzHHaoTIE?Q47_&juEZW37%* z3kw)VL$%-MbZ9uqLQ8ANHwA*N)Ku@6@CZc+^bqMV?ok=*{*^V1{Ry0?#P#ACKHCtl zNmmQ|3+ceV3XYkOJ4}vC#iS|nP2vrF0%caK{~T7~q+o|Q8lG&2uo0H>pv@$Y-sYV# zJbH@#G+6^&3$?(mpogzqF*W{hlLvkA9`z;07Il`p3CGt`-=B<01CdvI+)mK;8#F|n za0z5w74|l%L3^F>ENsQmmlzumPzvWyXg#FH$jpkDta4%ed=|2i6!C{**s1AlT7^?U z_Cv{c1&v2&YnPtOC+4m3I_lldmTEY;!Ih4&%VMn%^Y<9nI)5S|)qXqmqnHb5sF(@d=NcJUu%zjqGX*KvI)v=*oZ4TjsTJfA!e#oL4MoCp@O~Z;M zj6G(+(X`Ziv5z!{Cy`=Kx5nFtQK9$664C=qxV@fSfN}B}uMcgdajVaQJ+eJqK-Q!4 zt_lR`!H;H;p++U64^K|e#9B`lo0}@(xiXJ>LoOkSMveMS=r|IW<$5>+`h(m5NN$O3m!sx&$+u3hWv`)(eK{HM#I-R;au@SV8pAZQ z)l|7O8tgJjwYn8|VqQV@pt05!aOFN-&mh86gJuk1-Q#GZa2$ZaH{@GYQ5&Eb_B?& zfR-MzzkelMt>3>P9MJbf&>oGeR5Nm}cLz220I%`kb`|z~+`PsI*J_tXb;YLF3OM1D z?cZre^Us;RI0b{SS~%I-#2X6ikhwt(;^8WGSUQUJO<5U|34d^f>L6Kda14TPE(@f7 zF{}n#ZLqtvT3`jOh94tUUVbL`l`i&K16J(jfMi)yAc^SU20Rh23ZVfi#aM-@2JahS z`4q&p?xr9dm`VL1cJ~yTE%Zjh7Iih5HY=w>g3YEyXqdNrs^dEN5*Rm*G37ju=f zDtfw%cO!y0o3-1kxo4BR+3mCoH9~Jiz=t%rq>wFi`)+koKN0b}sN-SRzBS?zO5dKANxdK+o zbP^S_yG5V?)eOk!3U!` z+4jp25XYEeUoI8=jXoXZE28^?5WM<2_>h5~;0p+EB2MrPgbxrWm{kjT;15CYXdUj? z5g!5EXM;`<9|U{~P9H9c10KQ|@6Cu0177r1$bz`hUxWNM++V}_8}I~QxCOLC5BRAz z$cH$=lnCy|P6;>{@e;%pz$knxmLP8Qg)sU_7=0+nx8m0bTR~6oj|dMTPVf{$AL0Z} z_u|7yi01-sKo~+i0C?v%v>EYjfGfU%IuW-4{s%$^{0=4n@7T`RT*S8l4m=>@gMhYg zGPaQLfaD87z7hm=p9q5U9t0im1Q#K=5GQyAf`+)!XTj*tVDxn$pNGr71zOM(d=%j* z;sgf}MiD3Y3c@MGv2SA~-xjiA@5WRFdftxx7yE(4V-Lo#f8u!TpBVN?JWg;g0<{bK zC3fi}5)WAN9icbu2iW%zhz4soTl=WMHv+zfKzOX#Z1rQJEY@-MO$5SYt!A%xF*XhI zV4aHjTae$yE(8nk1fN8xK^$u^s1dy^P%h z`~+avcZECzukVwx0lp#Q6M*gC10CqM0saxb7kmsDd@#rtBfJ|r0u8~(5RM_<1^6n$ z2Z)aV{(g@bCq|zMqdx`tRowanbo#DLozK(DVaq?reJSo~vaK!*)zX9F~IE0{_7I0!e#wX$g zOAm;)SO8rJ)E5Ll`xH(`K(hq!dkDJ`-wn9-X^cn23H~nx8hd?!&&&8Bz`x2kdj|6c zfoKS>l<`_XO~wg!$oM^gZz52?5S;r{QI?=Z#tGge;~v0w5lH6KfZLvhP9Ph>y$FOS z_*)sD09Soe~$)CI3a>wVd4@?!+!<{%UST5 zsn9v{$S?QniG_ITs;f79J^EX$%ZeA3S&H%U6;9~!lyg}zo*&Y(Z!Z`Mlje(h36$Xm8? zQ89fd!rhE>Gx=;z)JCj6t@A?SEHeI&Mh)}+W?eh`cJ}Wa*g3d!cxTBj%Puwo`v%2S zc8_!q?H<`3-5uC-*Pd;A9@^8jrw{g;e7Rw|SzFh!u4otAk+Gw4hjoW-N6U`Dj?Fu^ z?RaQM*N%Z5gFA+HjO>W+nAnlgo!ed5ZRuXpUD>_1yRo~i`>yW3?*8uK?ql7jyIGIY zQ_^GYvGuI&3G{64Y3q5Yr>m#0XRv3eXSgTYGtsklXJF?;knZ$Owu|IjvdgyX*shUX t6T43DV!gS&g}v5ZTW@1;OYdF1+j{$Y`+Em_hkA#5N3fQCbe&rR{|Qzgoc#a* diff --git a/app/services/SDP/utils/step4_text_generate.pyd b/app/services/SDP/utils/step4_text_generate.pyd index 77cef0301e93c221c56cc8789db86cf70ea3717d..2454e49188078c7316fdb2bb21d0968845f51663 100644 GIT binary patch literal 101376 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 V~f*R$r@o8-?gSU;1e==c=a>QK13|($3WV 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 DOuv$2 literal 101376 zcmeFad3;n=);3xJ%0#57awv%dT4K~VM-dGoT7`+6f+~#z5*0KGN*sU)NfVJFAxWF! zSQ=3@+S;aDZR5~wv>n1=C_o{ALPW(VD#5X0q>U5CvF`J%bt+XAxbMC1_x-;2{&W3F z_St)ld#$zSeNF|hth4pE*=z&wFBY@envwE9ul)Ug_>*R{4L)-DVB3rPzIjx0THwv2 zE-Suqwx?v)%xSZ(o$i@(?Ti^SOFh?J@0nFL!*k;dPu@kBdZy2udi^O5$G|L$^YNXTjhGq#_x6?lnE5gCn;t)7Mmy4buGDnX<7dv$^3!H)6?o2!_mB>mc*czPk$y1j zjG6l)z2foFGqy`Q!b&&J)cjeJzvRX##grAVSwX(dHucZ@*v@GAWm>$f+cwOzU%$a8 z*bYDi7inq7L3nn_a|NFCxu4CpkAizsTL+*tCjRSZE9xb(Xi=(6;tBDjWLBE39M9!e zYKx@VdI)SvgL(O2{nwUe%LUhp>(Xq8$IJGTdaq5hc|}nRn3HD9jw`zt{8LJ=FE2%T z`M?)N4zxwb_0vL@9XMu0(n;(xm^q2%l3F&DMAb0Cj*5Mq085 zUgVS#MU*-=0X`6T3--YCo-%9ptSJDAO<)@s*Ji8T8{YM|%mgBBWNWkV7Vm*K2GIZi zKUl!1*;xwl|XhGeVQHGK|nIS(%ql^j&ULeO)ko_l4mz*7(gH zBUGAI9x&}k!3}=1(_a~>L%^`q2!!&oyuq3c&gus!!(4CF#7Z-bs-84wjVUGl{N@!d z18C)4M+QyMZ<7M^&FIGG$piqSCQ|A*Vw;Sb?asTFfhrKTPd}Ejwvm615hhY-URHJh zPhP`(lVqOgQ~$QvY9hC#FMr%&vvo}|ObVG7bMKG3k*8z%qXdjIs$yxS*BYjyZ5RMy z`?)6|0lS<)*pYuCpYzDt{_`;eyT`C-Jp?eA40GR@yB3ejp98Oe={RW=ksO}`*VjB0 z7|~C@u-S%3x^6Mdeuime0H^gRC_idL>3CSC><|cEFM{3KgxIYV zYdVH2P8M*2rax1vD98gLy=yT$0Q=x9dTxXb*vPul|*{llcSoK|U{+wpZA0Epy9YgL%EzB*3`Afj`dVS`4e^t4szb#KS@j=lSGIHM>d&7_od%&nz-(c9-@yV*41OIfX$!`|)gU354bp1GfbK%46iBhnBv z^rB&yw`3I)6?AS+`68sufZ36=wM%zIct_%C4In3->W=`&+K zb4ShA(hI77L94sdZbQSFkP|eo_xQ}9H)xjS`pq)K2wj%t35Mo-LU(4>fS6@Gv5W{mz@HSErKr)wo{H~9o;LlX$-{l6qump zc;R&v$zBJUG0Ohz;c2$A<3M&Ptrm8lK{De13V?;5Mf|12k0JK2clmas^;MJ&^_y?R z+~YxqR_?NJvx$2naD8SV%VVzgo0ny|R(JNR+Lubq@Ld^#L-Y zgZ+Q#vIk*m!*Bj%jQY+QJ`NSG`Z=vEeT?(vL1%Wks($WQmhN-DGU!iT1AOM7mwlmN zX3Xt^x8l*)0h6IGbXT!|LaC8yjC72>7nMX0V?P)V?0TH23Bn>B+0MT~y5DSUlf=j{ z%y**~J%hSxgQ!`A@|b%vtpfwkfu;Nu7j}Pwej#AKF2>pi#_GDt;$oPsU=lF%q1tp< zot#X2)gnHDy$?;o{?ZcULPP(|q-J}m9dX%pSj@eftf8OXZ|-29@@Dk2xGHFpze%%u zPl9~FVQDrqiXf@|n59*xO7w4ux%)#EMzY_GS?%FlpjQ2!R(g=Bp=H1&9wWA{^T9u2 zG1RBCk`>w4Pt8W!O{gTcdioyK#j@33kQG}Q=2Ns48ot=-=%@SI>NKr{*lH;2A9lZt zmKL|w2Zz#D78k#{q1RSEYA&{#2#pf9`k9J^h8`;VBy6>jtW#{&99Ly~Zwtv|IDP!FQ7-JzR%AHvhw^jGYHi%1>pezzyvH9Z%MOOha($tEFP@F)J{YU~=KA$jWDLLB zIv(89Ej4l)Vxet&!A_NbJPFu|pxD;dV ze1WwF!T}wnA^tv5C3-2UXv8C7VIyyKO22CvYk3BzOgvonO*(_C37BAwh;3Q%E4nP3~-t1ybI$%yd&Em zYIhYH=8eV4z1Z!nELfQKd*<;e-s8`P9!6;NvrG`x=<(Cp;}1|7?D2oo9{;NmJSl6N2DaG7ZyD7e#N{#WYdJQnKPQV;-1}1SyjpuhDLX5NeBbb#9%~|s{pV)|Y z0@nGul=n8aH;JFsnr6QUaQ^#lQOT2W*0(U*N7zjM~edQ`OVD%^P8Ca z&sg*#4?$U$0 zF!Ss1SDhmL(B_!?1Mm!(TxI|z*T9ou&GjD6s(_Rr=Ar1grrU(z&6xWsA-DxA9I!)A zMNSBG#4iAT^cPjH75XMw(|qYa3bA4A+;A zcrNL`#lkHc^PND*+b&DCN1#ONlI9b_R_^C^_&Cwx`g8~L9hpkEj@g*Ay*>+!$ zR`c%OmuzA;Pjok850klp%k!LQPfv}Ji=u4$c5Vlh=L*XR@h#{ z25l|e?&RofE!=V`IqVLxC}rWc1)CeoF9N%+^JI1A_yYyTNCQLfcTQJ{t7{PEQZaYW z{%JO6cJ~d=Q$}3xO|#8Cwd~}WdlO|spJB_#g8?S>r=LtIj!)50ea$&gJsQPw1uMS{ zXZGeO_h_8irC9}m@T9CFzj>9*Z{FXJj*B|8SF@wf zGk*_+irVwc&(Ytv<(azzp_0}-^G7(e*?D|M=`tS0bE_?HNX}0ft&Z{HQ zZVcivw}-Vt^rGt@edkGOwiRbUnU+N~<8IEBo!PBMs5+}oR9ue+6Kw&VbK-6QQ0a9m z*tF&jFyAcgXKuQ|dFr?3>&~&OZ*b0teDC}s0!ddyL~ah{Ity2;>{5~aIBXY}?V{`v zlzkUv&$47Yv)2dAXmlL#DJ?Dt9&l_s7qiUQA+lQq_CR2a0(&5*2ZYgsEGnovcR*P` z^P{+aYkT#hM$Rkj4}n+AeNd7<6XoN#0he_R+1Q-u_coK0-fTD%6!J=&B~sMNOc80L2_o3^ONx z|65(b(1qElI_8Luf5!@=SI2GC5svzw)bYkL>iCAGBYNURvLV40nmoapUT9hv?ZN!M zSJR!;^gh_^f6AIc)8|^wxbs&<`oow;p#Qo&a}$QB=#lY7TBPiPmM9cMBtC|Pw?tyn zkTY#CgY`ve=>hEPgdHO=bmW<9F^e7b4yW{gaHu-E>wqMp(?MjIT}h*}2PJvVY%DCC z*%-grt$8_!VS+a=3v(Hac!v3KRs(e1V-WkyK^1Pv!fr~RdHF_xOwB6lJL!HN00Rr% zs@KYW*I;Ta|9LOfeGhJ1ReoIoQO@H#p(r9*Z1@(L** zhuPJk+=apZ$)qfA7v|5HEA?gv>N6(zUc;R4viM|>L+OcK4wD%xQ-W&CDhfnrK;UH^o zH2hakGa31-@$(1@&e-g2Zb1FpQSUx_7NP7F_yBWK&E3T^VV>? zKiFZoJ=8++z@DJQJiBN=47Zn%+22G$ttG*=++g9I#H;$FpA6}FDo5spP@j9T%Q)g% zGXBYK9P4@(aY*l#@!LSim9c-EMHPi}ln|A|6n zOfLcljOkZ%?=|e02x-3N(aQxt04nIQvJfPHg4=Hi#7N$yAJWJ_B;P z&V}J-0|4jbQE}6o37ji{le(3A9+CHVW+NuvMvoNb*o09AD{^|L*ckpsbih|Sk0>!J zU#kFE7L8moUS%~5Ym+x%emLP$fB5Ehv<}QjAk%(GF+{UrEf~5T(~m!V&f{k{ zJF~GK#ikkm6!K32{}l003IAX=Q&z!;V*bhDpIrX&#@zdWv$)h63|%Y6u}&?GjEDU( z$;Jj6mtp-%{R>Wp5eE}L?4AkB`MCQFIBZP)EW#!dwsWJkW<$9>x(!pvWJn7kv_6(a zXtg;QkMQix;K7G9d3O5PqKK~?&!jvwUm)7Y%;fVXs}8a=TNmY~q(nkR9kjvTXsO*7 zYvY#9r3?f{D*~#_wIV3>+C=q6iW2VcX6Paujo4h0Yv+9NQF7}^CU}zs8A6bx)}tBV zjr9!F31FuZy_vxslUfv`(|8b!4f7Abwe%Zlk6>Y5HW^j88xM?cYfG&H+0F(i<~N%< zP!m6nC$Q>@w%t!X*b$X2h`B#OQ1Wp$?7vyA$=Ct4i1W-~9qM%Rz3 z%3x8YJ-!nfa*Ut`p`rVTBGz8oQ8D)dl~Foi_;xNrH%F&qWegQin@!V6fz=%LDPhL~ zvEv6c%eVWf@nHqOSyzY(1k63$@CG@<4Z7c8k$*_?7lb^?s(#cY0Pp7v-wj*!M~=%m zAmrgtioM6VemQs{3AUtiuwjXlg*2ISF_uJ%wR!dXJ`l@D@-3Ghl5D~Bk6YmL@R)u^ zDA=hqd;h%+H#geOFN<{D#lM}OnQw&)e;B{dou6G=N`4P=f61U0ZfVb$qd z*6HJcN|F-~;4;x;hXyT!cM?bGKcdq=m;T?i;$pEU=6C3nL0mQ!leR)?$*mv9KG@1Y zbb1+`g`y88`Y2J+{sRV9wkET# zjkVu<8*(z-#H>1pb*;Ee~+II{r2jh zNg(sdo&gu|*)V+*Z4EExH;xMrcpY+Va00rnrf8eAOS-*}BZjbg2}h`MXHdBbq8#~I z0rB;KG}|)vSTXnN{_$E#&!AMfq&iZoR0mwzUpphl%>tAdA?%MsSL7WnSg~VS=;2m+ zPPFMSw1m}fC_69NwPmn8Nr`D-gC^B23a~3S$7c9PVY+b!M~G4OnW&Gm`Z#8Ak_zw^ zn4^}@*?6eq1A6ZKdOmpZ&=7M^1+VzdwB?@hN&CF#f)gf<(QS{BxD0AWn_EP{c<6?$*$Y7`gk(aGN!ki&RCYqu=*+~Y~ z$N4WtemOs!O8Jw>N+$TXP=e$8G&o!~S?~u3r}K0_*NeV42i=4p?4b?zIM^^sj8Uu0 zE|N1iUNG3#9~+RxjmDde@R&5?soyc{z+hzhigyi0=6rRM?LLQkSJ~K5F!O*L8c<_f6_M)`x?(xVrh&_U6`e zV(#A%QC%lO)n}kZ*}+sbUo_oMH2s`l)f78>>C{yGBt3%aT1Q|C@<$EZ~QCe>dps@@6k2vCtA8;8UPB)Sgi zU*7LJb@&FH(^+mn=YU3=P-7Vx1}%ni=F`h{$L}F?Z) z$adXkn4v~!6&)BRDMonS?lB|S*a?_zUB!m^Ai;8^@^-*HACuW^F&!GA{anaN9I15A zqOaT+iDHeh87Nda@K%uNF3#sFq{=nqkgovZ~8b%0>6 z`;B3Mi4^*8uYaUBgI6I`Ay z9=&$|12FPV0&k2;hB;z`tgW%Tqbk9Fc*?IZLih((<@9JdpGx>t!lxoW74fNnPX&A` zON6g46@6 z9W28>BzKRv;fN#l-ea+~fN_tq2TJ#~)ssR8e+SH!SsYH-xN#EJJ3aifAmG|ru#KA~ z@3jM^@-^;%TovCqwDw256E01YV>@g@=C6lQoz+hw_Gx9h zE{n{?M%3v>Xg+SGm96h`Gh zF=R~vCv2pC&6yQ9Qh~~i)RoLbe_lAv<}ev{zh$9#5J}2>2$(PbGnsvgqL}--xdoi3w9b6*Jkg|n@ywfzOz8EggZ z4i>TUoE&&!?o+A7KOhj6e;aE(bdp)1_cdP&w$Tu{506-Pr)FicL0FBU^FrJ#gRtX( z%o`G1<*qJ0Ku)y_6m$?lqq!tafJP|DPS7x17;*hzvz6jxn6ul}rDqEH{))3pdVR-V z;RsaaZt9J-R_bof0!|nf6PdQDUx_2aSx-=*gmwb$teNz1PVa`VAN!)4AS@mL}%p zT27yaU;sG;n+z+a(zPwl1JR<|4`-WQ0c%FjY*1sK^Vu;E` zc5H%h3JJFzBKpTB#0i_h6ok3ZJ?3sq5boNySK?F>J_17Q>i~h{LXHmnqT5->E)!B9tX*7p zY(m)03Bsi$JVOcdK&Vj#qHfXfTgbIEJTsx;{UnMFNzw3|U6kdvfk%*$iS~;w=I3gZ z!mF@BZ^Z3NhuYfg8_4KoFiLK!Pk<9{!Y1`K_mX#LJ~l%RVU*zh>enpDZ!pZ-I@I5J zWCi{L;LAWMI%OQu8Kc&4w8DP6Sur}ivD_X=j8?hGc0MD*9Rq~oL6=xv2dx`#r&_GKv!(`EG4~w$5N&TR z2CXTuE(WdNq+8TM%Y&MAT@5*}aI`n;m6^3kQ6)C!!1bU&Rk@ITHrD7ExSnMazxRoO zYmkac3|zlj+L$|d(1uk6Zg#9#1hsrEE%e0cE^2E(N0{^6CReJ$Q}8`H$%$Z&g@e_d zr|^o9*B4IkO5C(=>k`&GFJ`S|8=$TOBL!Wy7v{gvFd8u_oY#``o#f1OhEevv!&+rn zB%@uKXlXp|i0#w)7~L_-zUwOh;q5tSbQVM=vt~&Nnrbl@tVab#&d4Y|j9XmqiER-O zk7<5VPejxHQ~~XVZmX_HT*8IQ9xi#!3J*kAiq%@l_j2Le zd!N*+d@mNh91poTp;h<7_ZINA#x|D~E}O`*f2yjxIz`ogAsHUS9@lpN$O|&cPV}1# z;2lIv zr+lWP0XqrkRSj&VM?YI=)r1?Vi-mL;N&gK}Ic4Qc;XJH?lWzv!9mNKjA|FfSDpA8; z2MKz{+AU+@Ufb$3()e1fw(448ip*THIZxUA{3SO)cp%9$*5d=_ZLs?e?#&DhnAf`e z>a+OPV1MYM2dnX8RCtKzt7wDsbKp1lEV=+@-;2N2LsF`HRGR>`d49iC_dEn-ME?rN z^N-BWC_5N0p^0_N;211&KF13$a>jxKmNQXF)DYVru&VMbAkWFdGjYZG0`TOd5VY?v-GH zK{JJFo<+4~pisRZux1EyBYcsICoC~Yd|IB&C1e!66Wz7tvqQN-Z>+c%8i+2wmJsV! zDco?kWt9B^2rZp~huxp!;d*2JTHg2JIE+`kQo+C*9PK zeMV7s7bt?}*9eHjTw%~8%oQ+?wVPL=abn!ivx(93knQ4Pb^ACr+E6R{l<2fl^6BZ~ zN_ef5*Rz~Qcycgtw`j&O{|SM{$NVSBJ2X05L?jlgnFs@l>|Ly;D}TA<4+|ZJY9MN_ z056H*YsxFOqd@@V$MAW#0nqM5;ZS%cQ6czlw8+|&K>x^DV}xJw$*Q(ARBzFg~i8@w6!^jmN}I5x>BpWl?i za$jL-KNKueT>d_m!DZM+vUlKt_P5>udJEakMQF9~`saptJ;J7a>ns+*tC&lmUykrt z>L!q{7MyzG^hQ8fWHJIC6KFgFuBWKb=oun05djC&ZOIW}S6KlQ8?n0fe-CwXR(~i1 zhW(G7+V#V!V=~H)@tb(<3{E}V&%HKyG?pHB=OCERC;r4t8W%(+6d0lW!u+tWpU+%P zZ|bEcbgI~MDl3T2o3~fTz7B!n$qT7K!ju0*IqY7?i@YC#NnMKN?*?>Pe^?UtQ92UN z>L-8tJ6XSzX(YSW?j(6qjXiJU3%f(R8TC!7E-bR&+bL z#tT@{6QGb*G#lt~`$eHr(!^^QsBo1f>4k$q%NC-R@)|63SZ}GT z>X&}YXaGTS=4~9c`A^5ndk5mpu0yLj(lMDTOILgCSJl%`?B&e+E`Uxa&)n>fMf^Ox z4)$NS9EL|--iUsmSanq&DoQ3^4IRt6;r?4bYs7OkYp^{M{balccolrCleboGJ$_#m zw`J+PGD@X~d&^a;|x;630D&H~CuC0S?_@e`4;5?L80@g5^iAS!V331=5m za!KbqJ+at|zd{jTOMx5XEhitm3T8;5tf71@K|qv)ZuH^;ap!b#b|1v?dqK?WMSN6v zV^!vB@$LojuvA2f!t267WYw(IoP9_S^usAO)bB3CITY4DAAUrY?Z4yDK$PtK5Wdhl zBuPATFA|>uqOauyKvpOwM5>@fJ!=Ff8#rAb_*$}eAJ;VyR^CVv()uF)Q;nGxuAWx0ng3s+@DlKDw{vH57CDP~4dT;W76!j3sonha;e3 zQdxw{0ny8<>G{&x*vCa-vj0D1HZc`lfjl>d@J-qgu2ok&Q_G?Bi5o0hXCI5=}p8xvoO zxMiDSNdbnr=oPam1dA%Xcex@gR=JrJC-$yGUYVP!b2@akFlPc&HoWYI%IN{73bE3I zCBV^jApo{-r$%<}Z}3!dh_)RB2fpdBN?{#<@jE16a;X9PcB8%rGl;2Zq}@ZJa-sM3>%3a1ZYtaVxod#pB}JDmQwP17*mxUoHZ; z^w+LsuS@@1AwYXY*>OA_EG1WxRhS#Hw%h`W^s`}BUT zy#l2OQJ?vGAT+%qADid08A(6tVhB$~BcU0-e1Tq0FKIlEW^G;4*caUoTO&VeP{L0S z6=B*_5nVJxR(P2BqC^aW^Aq>??6mHJU4(V#BUZO5wLlyWG-7zqb0B>C40Yvf3-8bS z(gHlW>&N#{H^$rsq6EV>S_5BWAF&#TF20sWz>@)7q*06~+)f*eQ0dH)9@Vk5{mYyTSW>nh%AkH0xrZlo zC%=z9J&L7&Hv%^LXPIttDpWQSvUyJAYx(=$WCtLdy#>xmxh;kcnSU)05@&WG>$+FXCO=fQg==ID_3q z0oFDlJn^5R`He^$DFCX=ffdJ zalSaefXDp;)916V8IG>eO70I z{wsPJx@7ARh36?No&-luHWzJ50Pcx*=Xo;kdOy#+ZT{|i_CiACj| z$ad0!cq1o*&K%t*MyGAj->zfzbYNNtaLhfB?E?*wUzga;%Htk`^yvCt&%fVBmC*AF zm)`e!h5`}loJn=~VjBM9%s=GFhdLO828%M*7&I*A{s%&W%EiAfu{nC*6ww1bz8gu! zW85kju^YR{zLtYgYiqY?D!&~!H7hsfK3}4$r}KH~F|o66Zo%6=4bma+vCI82<>@ul z(Y}^U@B{M)!CaW}kFd>&xxbc*^e}v#H3h;Oear=@bmti65@CHh$`BaeZ>2GR2%4|S zs_|08oSn&?qH(eqi|xY?gC%yJe+Rbif*PT+C_2O__ME!;t}do3;C>1^Hkj|@GAyZZ zQ+PAbyN0me6m-1S1?*@cQR%Z7cZ^27^)=l#oQk6&IoyI|g?ue1TXxIE+T2-Pg>E0W zTobz73g*_C$c3m&*#ce4CROnw!EhAi(yKU|2-V6IHo~Z|V&-1N40H%W2Ymj=5{Pf6 zB^>q8I}8n2^h8+n4?)L9_z!P^jvoR6p{+BF+cTJNKF7j7>&hyYC9f;Do<(iAfNm4? zb_9~M<^pV7`dUtd0-Z;ZS)!VY1z)L`#jm^=ba<-N~&yzQA0?T1d=iV@tuJ&T;) z!;1(>=J0}3@2K+jOrR&EWQmj!`CYWbIeW9i64;n_z)G#iZ{86fS900t4Qd8oX2^Jg zwu1*8Hp)92!CH)?fshB^dC0&&S9IhJ(lvPe=0(NBv7tS!Flf%iFcNI{hsGA-ALc`2 zi@Pv|lOFmO#I}jJKu_78r10!E#;vHqHA?}7oA@w@S?)4IE=-X-j8Flx6KavVQYJ{b zAnkjkk|kxS9luLNTm~jt_Q_52B;9eyhQ}5o6RfhE`3{MxtK6V-^g{gMhSE#Xz7%bwQ zwk!Y1dOV!f#A#^dYb8h$ciZ~h#?|i`qA~RS9_5~28C@})(^-CHG@A$9kq2X`i+(D4lIYZpPa5!pHU;>gjRzmJ$-xJ0a{cC~ zbhLb?(zm~hKX-ri?X9FoGHYK4njQWMKLUSUx9fs;LQI4#DLf#+3D>W(Z@vX`s9=0L!+rC|SQanfzWH}}5m4th-Gbi3`AzjI z+BH#umjE&^Letv86N1C^grM}ms-1`9NWg_}lk#Ig>+oHsZZ!7>a15B&xcs;h;WsOL zv>rk89zOZZG0EHS>9YNf@BPGg-qU60y=zc>(;a*_W5fNpqz(7OQa9WO#W&o6x;u#P z5g|ra1^a&=3{A*J)XZJap7Wk&?kLH(H=^y6(1F0i+2Tg6?+RJuh#8+pT~p3kYQdrJ zG;tEklFj(c$#FA2CFt#9Ms8px&FE$TWS$SBU^lV%lSluDPav*x!6go87wrGBKQtL# zW2KElA-`dJ51;yYzd$zwW?%{c-<(`pOse3|6cKm^3tey@XfZ~)W=QsTN zM)|8OOLotolj80fxQ^)R^$^)6qI?Uea5{u2|DSWuHFVF66D{}5_rg8gxL5b^>Hj1v;@nl)JO6!@8;*{1i4jlTno+DV6?4Ic-#NBhVplj<{ zLqjB1z&QZ@Pq&`)<@~NH(hp6ifaiA^?2B>tX?PK% zKN6pgT`)v8O?aUvbU5BH@ul%_)Wvt__<^06`*%=qS=q?GG7*sHq8JnOg_x~RGtBuI zaLZP8cH-0xjFSvA1Zbqp!ECL8@TF@hg!SH-Nd&pE0O1`d^Nc@8XmD?ee`FL+EU`+#L%q?Wa_ z3=98cyiF`?NiEyJvZqtaRTYc(-mCw1~A@d4P7{jr3UQelhn*6n4%4f^Ve>I+^GUkC^Senl<`y zY`pdLL-A_bJh&=ld2=ZX`>dDFlQL{t$SnZbB6_huX|Y9gG+>?oKrZ>PcQ6Y1Sph`f zj+nb+6>#B1>r1IeKpi*KY56x0uoM2CZ>0;qgo`_G5U%bokHxL$g@j`An1+Pcz2wP< zZvv*=4bac*@oqr;Yk=0>0Ia-AI0DZMhVX{HxugxOqc=>T#NO%ae!i85FpA#mM^Ww) zh(#+vZ?l;in@h?EpawYc;HRfg1StpW+i8nXKAJ!)=YwEz7+Ks07HR>^8_|#kMaUrt zG~BZuW&a#m_C`3s*x7X=&POL*x+@d6Z}k5!MZ& z2f=|Ki}3hh3NE)JY=^xcH2i-t!PzuwlQqE+>v#1|aN-{`?CJfO;dX!j(ku)a?om)P z7`nmZHy359tAgfYKKV@Fe|LiQ-;;kU+`C1-qBv@F*{iTG?rAKBoe?f+BD+=UzO(mZ zjz_^H__$-bPi{#phmCAq4rF>i==e6ic}pHX6y0YZ=R5!b0^zTFoFN=d7y~_dgK4l7+K+=bVUl2?Cr`9s4@rm(wqJLc^LU-W&U=`kHoray_ zEzv_R(dzN|0JVJq3-*>zU@qUv>)2fWBFzP7*Em>oqK#id9eFoT4i<6S(g>yVU=e-V zH=;gFxtr~KCaHf0BaBbMVQiG!Fg|e?0^<|foYk$J4VmXcrf=n~Am9QE|K{KyzFd75 z#t_})#VTE1p=n61i$z0;<-a9CRa=S!NDrwO71Lj+K8`+wpr$Pqn zV$}(Y$K_(A_THny;6iv}4wOcia2xjl6=OTM*cH90Kz50; zctSWlf`hw4Ac1y#G156Hr-YcEu+N@84IM8q@)shVlQi#mbUE!IN0!*Qg<$O8mSDpN z1AuJlzG7|Z;+4}rTe{bivd>iHVwCkADo2Y13g>`|YK+W@!LXpt<#eopiPi_H& z_QIrR*`C5aLs`qG5)qSEVbI@#wuI{{6L7~R|4SS*#&D~mPQYk8+{7xTEfHF}!OMeJ zyhM7SQFTIE8E!S;RD21gn6PBBI`dJuN7F5q!qhF#%Shd)`Fo`-^~UK*q?KlQK%}=> zrY{uH@1Y~XR?Def!K7&VwHYvczywud)!?UeRyF$e)uchSKaP)MZxOT44CGao@m*Ej zh{FD91B~)t?4NpZEdI4;_|^b!TUOoXDKOWVjza7QIPZ(_w|dsptSR;BZ}n_Nsr*!r zF=chgaRze6fALE_)s`YvuX(OoyXOz~lzqxyrNOr+c{>fBD$UB|r^Y=p4G74Iq3^27hDjOCSLadzcZv9q8w0pyzuIn_c(}cMd&_Idy|#U^YJ9 zg_mgHXGp>gNNXN&&nvXmcuySQi37?7Fa#fmo8ky?o1khgf4wMzT@$bK;dM3ZN{_}y z=Ndvnhi{C*8pq0J!X%zvAjhDMQcW4jQB z#>tbf;0AnZLa=85TerN!_RT!e3guS-0XqN6zohw>r6vI0?n$6}O*xe*=8FF|Rol*+LV z0I#(XP*cysu=WI@nr6w_TOp8DKs{#K50fg?M1&fjNI}gP;#mI%Y?$MyVO?IuXw( zxbQC!szIfRf%*Z3wUc|@;mUfJ!=>&Z+zhjHAP*y*hhY~vE*W8@1}34J42EdfK1zI7 zBg=?zWuwA!6!s(!BtkVf<|Q5VL9S3?Lv~88NMX$it5Dc^%9G6)bP5p|s~iAJW!Y(EbYL5&ycH4?qgv)xZz6n9$8_MqIrHR0HMM_&6s{=&z7e)hRkxK(u96M{tX^UBc=R5sX;4^? z!XgTLSYfRSgJFmnRhXPFpkq^5hQeg7jQ&9BS@?s|Dka4_D2$~qz}PU z-hm9;10PAQSYaN8)k@B8Xfvo&7(ETTCWTethz+@Bh2uVa3q{9-3tR}^17L0W@%bC*akF+VELjVXE{ty93dyouPQX52q zc?J?;K9G6m!hd?SJSSd$Ivzl2ASqVL0>vndV_eBR;-y5(E8^vg@BqqsB*T=lK`|QR z7*8_~b)SeRpbZH_a4Qi&8bu0?S<`OC=plqH;1}l6Qtx2!gzdkn9W!7#_|2sFXe<@G46L}7gS3-Vr5I({}1btqSuS78x_@qJFfDil_%u;`njXNkgU6;`LP zBCSI`a&XZjF35$`JxIig!>Gslnp`CKpLX^l1%`n{Fvc+t$|5Zm911M{e;D1uq zAq8bU5}|yEc~CZKc_d!G1`nWYM}q%J*?|<4Q6xh774r-Wc5VRh$Ws6Zuu|wqkyv4o zqZqkJ7&vDml?L!cfdYywz;y(Gv>d5LTA>)VgfOBOGmkKC(DJ5u`3uaW7jsBFU;+UH zBk~-t!n8<7AET-LO{T!Jzk?wGanlSsc=cG#MI={QuioiU*eo84pwCiRgTgW}a{ygG znH|-*Bv;v}upEV5qOe?rH7Tr6VK?w(6@8Y%niW=I(XA6$t->M-YgE{ObOO+%uvUe& zDeNZY*{-lQh4m=x%yq((JrW|bU11){*)P;yF(n$G71T{%uD>?|pz& zych0PfDIxD=!cZv%S1|Ckb3Y4Qu*CsV4OeFWWiwJs-H2keS{NIN!HDV5@@}jAJC=ho1J%w}ZC!YTwwXw%)uBkG zqBS`R@LGT|0>FH`fF2IJPs2=?z1(TYB6W9SQUm82KtqUZ+90_C$yG+x^d$-#tAkFt z!nze!udoMR7rF+8^(ZW&u)ALqSgXR=Rv<5`uy58%u3KRl3Ug(k5W}eEay6H!xgyEg ze^t6-g?SWKtFXHjR;RFRg*7Q`ybjdO3d<4L(oE(;OTAL)F1I3+IZREU8J-v)MRXcHzB33o~Y3BI;(sM%R$+QltrLyLJG=eWC)AA0h{1cXgvIi+04@$}g zWd>CMe!CFsHndDI=>y%PWwO<06)WvL2~L*`OGW z7RJ-W0Oit%mbY2uTUidXbsz8xLlYOx_1+RD(owTUiCw^sHuv3hPl=iNZ1m zQfvFs8VnxERhBEvtFR+g7eiqc3M*FFbE`$q5{1<&tWII~ZV*^Ka&T=AjRr^jf|TaW zfEpaB!Y)2wU`0X)4r2;C=OVQnTBIHn!8dh^QBMd* zs)v{dX-$&?B1lNOh6o^SM@mIO+MyUxLP+`*^OVXTLx;jHBqTimDM_=D0)?bGijiw! zoJ|apK2e~6A`5UG0U#|$%C-U03dN`;M21#8Ak^w$S;Xce4FqFZutL{>%>uQLRxd;p zw_d%_p|EeU&|^QOum*)?z_RfA=nVpMNv^U{VL1x(tJiZC)}*jPg)Ln#bVUklR#=6? zj#7EG3X3SLQDN7&3SE=JS{2r&FiT#$!rBzpqcFEdybTwoI8Z9gBRTtnDlc1M9SSp$ zgNvF_X~xtGOkw9%r1+n9ZbJ%;c4pzk50J9)Khmw`5_%}_2L(u(i4^~n(t{L~*~|jt z1fb}sV>i*TI+8jz6X--!UyW~2uxX+$wvEsTxC zfVxj~Xn8mDWceK)K$(I1TLI-#Q)D6`??aJlEaoV{YXQax0F$!@&X@7~>fB%t)fAu@ zHjk=ZOC)E{*C~9t!nze!udr`*6l_pfkHR7f8;$b{@N88W&4OH1VYg}wcPor*E5KZs zJ{V#96YC_GDLH-35BnwxTdFXx!ZMYvNMRFHmtuu^6jrOSA0xuEPGQ*!Yf@N^)~{J% zISP~Cu?gGXQl1@zVc3Ma)(}>NN5n-j5*qp@q-y921=Lx9B?N%95h=XIkZMwlW(#9E zF&G$+v?-v&0(?RMNPCc4Q!-AlAT+_ey0UN6kl%p_1VFe2NW`)odDy%?Z^O~t9)*=CEYm4^4#xou;@2a&%5sHy751gp z&rn!}!ip7kbc@iHD6CdtbqYI6>FSY#wI6XoEP>#d1*AA|0TVb&64MVLU_(%52i|h*i#?qa|fK()g&U7*Px3D`HTljap;S zL_%#3KuXGNqzndVo1+-H7RK4cklwLC0Yw(zIs!mij?@as3dN|kFcuR7LjT!-2M(Sv zBV;!T7+z_XV*8g7v2{d|>ebdA3LCDyQB+|K3d?Yjo&6_`L6_tz8x@wLuxXowXRgAU z6jrFPi8|Wy$IPHqv%)GAcB$%8tFVZ|8Z8*Mf1x#hObc|a3TsoCwT@|5SewFn6n2O5 zwCyi+?F#cq&VH}9hirv)D9ljUaY|Q!9EMIlQ(3{bx0)$#(XoIgrO%3`Dx0+}U>QEp+(C58^23TR*f z)creCkTxT=`niZ=v?8ItViZ~!R}urkR8ykm6;}BomV>e$sTKPTiqU9cJWULV;D`d+EWlO*KpI7A3GG&l z9t-0a!N72NAj}!I*Q$*(BvoGN&hE386c zg$ip>SjLOOvr%D13TstZk;ZeI!ip8vt*|EDI_XhZiNZ25zlFR>D$gUi%5sHy73NW% zhQcZoR;;jW?Z!$JR;w_6A`LvfTK9V7;Grj6kPD}KkkGfokkZV#NUgB&Du!WUj3Wjp zUoFz|603X`%RyO-)Ea;46r-LH1k^)J>Dxz|6c9l|p=$^LX**Kr$}sLwjHre26)_<6 z5l;M}t_uk%4?s%FY@`-tj$-iJfW$bP7!ptg3MgU$w7HHcNXwC0u~?xPwHC%=rmSg$ zmNy|G%NJPA@soDN5P&RAg@9_tBlg%nUnZ8`jL8ni1r~;CA_A+dS7&rc&OYijfkhS8 zps)-#$txQ*m!r8R%@s<{{*2DQiWJtYunL9Ed0u$dDlDR~Mum-fL10Y^YgJgA!tPL> z?FwsCSdYR!)j+iIR39r%g?S`rKajNz)nqHILt%!(hA7Vh2A!06zxkans0v5xymk1dBCsM0hEK!Vd zBxEp`7>uVnEpK2Rl>EvAgQ6L!B|4%Qtw>0@kr)zB9SZ2S0N)V+(hStqB6VrC`Gz-1 z4@D}ZH8~3KvH()YFa>ELQY#dT6r&gkNpBJitT)xVCCH*F&wp7gUoN@IZiUq=ENBg( z$l*o}6|Sj}=MAu99iDhG1MkGGt69Pfq&Fh9q&MLaXw66{eK|2;t(pkSVedAkd1$3b zv55KviM&32AMl;7{qSp8=X;#4OYw_X`{SiY=gWCnzJYkS!8!Z=j2jH+f(@mkE9Pa5 zv6bRxP4fe|{dNvEZ`Kg96*%p za$FI_rMpsGZEuaamw}yO-i}`!TANLsYHq~8$Iy(8b5eSRDMjE~^YrA_#ARRjJ^sly9{d%O>d`%LEP zpXSC#&eM1saV%9d-Hm`7p+!7b;%(6CXZU~*pTT7EMLPUWmLe`xL~k5%ks{V75PyW7 z!SQlMG~$R?C}Kkb@eM^hSrK`FC8Bc#aS=DD|Fw|p^Adib_$Id8cPg*JSn62Ef2xWala z(ogW=WlP-U;oIIoHu&V_pIqDzLqQI1K!QOwr$o561T8LDBGtYITELJzWs}-m$GC^h zkt~ye$6Q>lwb5NKumZRQMU<0`=Uky!lFbA~VEx#=te|6nRIsur&N>|!e*9V|e$^aT zspS{BdMlQbs91;<^NDa)^?$K?)9ztC+!a4jt3`Ej9jd4}KBdp<$;8K8?7}mgRRaG} z|000fthyB9xzKtpz;m5dZ3E94R=F3?UaK5e#TMztp_-{M$xJ2iBVQ`C$Y7><@Ib&E z`q6I2K~-^FMcO%tZ+-ei!Jv7mM;e0Pyf*?!06vva7%djVPk8`9i_zId>g+DG0a8fNS4Xs$Xv{&9n4f~RjC}{CaW$bc-GNY zKJAiX$_#RXe40}C_vE*@7BLc8PE%%DI5eflDyJzuRyiY1PslXlRPc}-v)(xi9P>Y4eH0cXfwxP=wO5@8{#_b zFMfBw5{4=9XhZu~n}7ZT5f_!m5u+4pE{eba@s?-V++*39c8J@MEsyR&NX1QwkUAc$ z5mJl68X;8?XARj_NU=#vNKqAr6w=<1dWISxM*jCgY8Rxz4*N*;DjTW8Pwj_Aerk`k z;!bM?WL&itFRChO+i1MlG5zkg+1_}=dpWL^qR!vq_Z-D!hAZZd$&;h_ zTOd~b94kA@2-&Y<20zzxnqk@>;Lqk_{5lygEZ{O{&edy;QLUw4K%o&}is|GR=zZly z`0$;4cizH5pXdefcn%u)A_1ZjzXL5lc8VYH!S7s%RCzzEdJ(O}!SM|+;0%C6j3ll>`sm&Ph-YJ4{C;q-(W~CDXW(1(+0>YQdj zthvf@&nq}Aokwo*&V?-(5neztGrVm!cp ziOMbqPgK@f>x@f@5Qp{H0uTrKAMx^6%zc{HsDuZwPX-(8sZZN_>8B-BYtHz9lu?5;t(=(Ok{9`-MOM0>K6;yY|<(^ z2NHolPXBOLIT?kX&EnL@2)&q9i!^|=K=O`f@XKTPy#Z0W6|sMBH_aOd2n$N5(i`9?)<2hI4Y}4Xrz8 zaZbNe$_DvXcVZU12CprZweZ){ z!zb5a>^ue{Vl6O*4P)WJ{-rkq6u>7o{${hSj=FsEbztYqt;?|;Wy3_mi#h(^0Q0T> z3ip=r{k}YOb-5fsa@gdvF)(@t0yXBIg6P6qIQ(!=38%|PON6s-U$Ab=4??h^`0G1h z3cMm`+7JB(Pa*jwEL#36V%i^$XB$S(=9v_Ih- zQDjWM#iw5rnTv4no&Ghhnm3;n*WrG}%&{>4LrfPj@w@hn->_qzVA$6zz)s}UM{ z0V?8a8A8VVL1vVkff9~}ouKRK!n65Q2TU6mGC4)a%p@UKsgNJ;N(jkRAvY$3oS{M{ zT0*KJN3wGZ*=v8L4zTvM7&d@Xq9}EkIYob?0wKHn{w-0?1xj?zw~S)8 z^+Q;d%`PfzA4#(C$v26Ui@jj<9OECar5J{Ju?wHXF-C1$a1Itd(^y`$+T%PD21@f; z@4rBtvl_L+3rZXC(bJL59&}sy&`K-;xxJOsvgkzz*5iyCF=nCjL+;gO@a zVp;60d7KUoJ31d^n64lq0_QaLmdAoObljpkwgUn0cZ$^4Py~~og|9ZVGFOS@*68$W z(QS{o9c{;33yiv3Sg^KsLPhYEO(p@RQaK>dx$Mce+ec~I*y$~?7JKQ9zWdr zEWj>I6y-~Ql-tXEA7RcP;Opd(D42f~Wm4Hn%W+`66u!`02p@Igr}-NCL&cU;h}J_x zxLTCUdE|0PiqLWq>gJ~fWE;IMhgqw7N;`(M_mI|fTm@{co+!cTRz|#fik(O7 z=LP}0w|avq>G-p(X{t@+I`$X2p++hkPF6Tws(lgJ+^#~u_>w}`8|FR47MtD+CSp^? zzL?nZ`#HU09;_6Fp9U@L;-Z*ilf`6+n5#&5kcwH@D~8x2=A^h7#hy&;JEU&$+MF(8 zFjD+Y9xS8pE6k@6{S~5{j$xulWez#hbrb12$>Rcq(HsrHRx65Fx-JNv#fpl3E3tnV2<%=fUJ6N= zmG-*we39(9OeBXoD7Nh+vbR(QF&e}?GHOw=$BS6JCwC9A#j4xDM8qog0%Fe>vGE4+ z;X(|Fum^euzeu#$gC*G4lHeL;zwvW2#VcksDiXE{T2$X(>TM)VAT&Z_Fl4cnbg&`U zpGZo}Vam9UjK7C55*5A#n!wakL=4``yrd+0Ub2sr@Lm$mU=>V9E>NY3TnuesnCWQN49GQ>Q^Y}AqG*`<-ju}U#~%B z{q)R1VznMXPe@`OvY!Fw_z>*%!aDK8BahI>5Y_wBGj~dhgm3T@SuKOb>5sEEH=#E2 zo+>u5{LLume-$tqekL0mN71}YFp9^b(*1*UZ=?Mt>b+ooYEaKW9u-^oDJ@zlvqbaa zVsYMyFp)S9QwT)f3uN{=nBn&X#dua+VtN4R3PRUYl<7Vl%+NM5Rg+mPel#+TRNEm+ z_$kG!q*#fb%f%nREic-6ez{!PvSBx3PUL7q*AOR#Su#Ja9;{84`c59 zREh{GzTQW)x~VS(*RV17fvFU$NwHiha{E#g3B}HNDK%e1idvy?>;no7{?=9N$lR9XxZ)5<6hwPI((?$zDZo4*7w<+1k(#e1NbBx?D+k)ICrJkLW3yN0YVH^{5VSk)v$zh3d6IB$&#oICtssI{|U-O0km^HEODhdMPa9 zs;PP)P4rQUPe^g8nrbL1!j3=f5L3xc``%5}NZSMCiS|2(YFW)pIetoxX=3N*Ce*_) zF}37Llr_P4^fs0`nji&Hh0zQ12Jt0~bycczUy_yl5KwPiT?^`%dlc|`#ll;N!EcG% zDPiQk47^j~ihK3gHv_FyT`9gN#p8${#MQ7~3d_7aM2NXJrBeJridjn0{jnuuOgREq zZToO4`j15Cj|L$OR}($#I2#EDKDcXhNyi|$|Qaq#-Q~Odhi&lV>l1aKHC}<#w(p)0QxQ+WRuHcLdfeGZ^AZ~FH+r|RCm z9dPD--}`-k|NLGcsayN0b55N)b!uz8m%0iRqVUGVPJ<~aE_u1`2F`L5XSsu_V2Ru_ z8z$6q6M;^nD&C>e%uX{5xnr*GNN0lc9Fuk+rG1&fah=6wlQ32&$zZhaMqZFM#k2Wz zB#zbsd4Kzy3bKf8$^8$RDbJvk8j!Y^QsSOlIN`s*I+5FjQC<1q;L~+5EeF+DBDuYtk zR*K?pLh)MTxa*_HAEet}XCRr@I9db;7T{hKn9bh-`U@Ac71V>51p197upBwaKsJvY zx@|+-Wgkif;3srG?ALXG0@wdPO)Lkg4MTxrJ0YRPm5hRT{67t8P}`5+5(bnN``7^u zpJdq9^yk^oeOfDBfl`kUUNX{GNPBwr+mXLdMye${NLlgtaZ881f1^@eLPF~`ZV#;) zxqWmqX-h4h-$q%V;-VYp?VGp;m}%0TP4D6x?}TZMtto{$I~PUq(9dyzO>cFds^xs< zYlBs#t(cs6`J(Al^PUp{>Xm;Sl)_Lt$+TE?fNg~1Qa()TVpf*l{emdWXJvF8Gh z&3KGPExzFxUloCDxxwqSoKJ%fS>T2_5^(Pa+&51onE8I-F)7Zb8_13p+a_V(w<`MZ)~f#aT^f7*SX?4_;GzTgcX#bH^I`N zL=|_25Z3SB)EajJL4S3wD8s@Fk#ZJoKA`71`KlIvDXVdZ+jH%9t|9uRWpRe?XKDNn zQy%j{XzkIWhc%yMg238w;*P>#q0OX>zLAximkBmgOF*LMz=WKqBP)oOt zSnkeS-zY3IMvqW!lIQ70p)~65VuU44Mnnq3Co`@cKe~r4j=O;~nA3gRrA5*)$DUnuSTuJ?mm}@^_2o%N3*N)A<#dnMA zYG?*57$LuIs-|3EUZM{OqOJi~_XEZ6cc1E+=D7-MX52#;rukZao1We3rMnxy!8~=Qqr>eKQgME)~&3!!!9pPO9#XS=FL^x>%a2q$=^jk*YxCV z(T_|n^kGrXP5TYfrcJr(YLCGk`gdRubn${3dP!Ihl>77!kNz$$hC|ON)Vz9UVap}h z%Myy<_2(2#|5?A6MDLP6<4nRQ?EsWy?O%C_ zKp^#`A*eUv%_+cj=N~XPPJI)mr)jtlEqRv~D~R}TtxY8>L#@!Q#$*L`?Sh?*fvv~!wh(qX6l#UxB#6U-0T!d5_r3m-l zK^zIJjmg$$7dxAuLOO5Gv7iU=bSIGT*ubSGT!R>{83fk>z|{-y4S;8;daxp3`W#n) zG3Oi$wL*&A0bw8QfsYJQ6?BJ(D4`eBv$`<&dPJUv&=}G8Y!nXlAKeWf(1+6aJ~kdwq^#xMl#5|-I<_KcVK6rhTb^R@F8W@`@1M(Qo}l+C`Fs}+Ef@O&1` zXT4Nc?^Y4#hx_>GVT&7q#~ElD z)R%&T(%?(Lk58ik8_%|6a1Y;&_cbd}dzXQ7E{7$Kk&_Vyy`zw7E(~AlqyLvBFijTa zqQ+U}#Az}RO}7lr-4Q6aGhz4x{(|&?*dn|v(zqj+7$?p#UG!D+(mafS8d2d>O<&VM z_-p=4C?)1{fdBCFU5jG}bPn8)%ov6>wKaMv54^acb8id_zE~ujfuxXLA?V*j`BUoO zrO1MQ^91WG;F|mAQKQs29oM6b5nI8BJ8uF*#FHu#Y$+t8!TVG4sg#^gw0k3m6SpkI()Kv*-8P zn2K~~^O-DMao4a8>lx}aH9M=`_8!&8vu9`1HIxBYBm3x~5Z$!`l=9_3AHW^RkgD>= zAaGD7>AIT!4k^26IVrnD2CQ*H0{=`Oaa}zcy~wL??V|5)!{wAf1C({wI#jQ}nW*)$ z`l!2Hh(h&2T%L@<=;^uCVS-@6ytJdaY3@)SzS5~vjm7q*Z~!y25zyR0{&(J`O*E|# zCD?DkxI0eCZn5ZmOHr5>zBygVmnq1tt0lsl__7Wo;(769%E^-U{p%4A=oCBd8XilY6n|^f`Ys6pn zVqgPaNwDPLOu8Bq>vRc_cO0W(wDIq@5HO@GDg0Mi+{B7h7PRaTPAGIDF|o%3gBz$LHtwkLZ-?H)P$Y&ubV3-bmQx@~c*+6J z{uvKOdGzF^`Kvk7(_+#*bxbb)iicMFmWS^_aW*S*Fa?7t@Wbq(R`v+&26ztx+x zGn(wxCurELNQPYfuVjq6eJf(Ujl0sl`dM*an$ayn#CgsIGj1Qm)?9!6RH2J|n z()}MVLJNPz6vZUd;5P{LQ>mLJ9pfp$E^J-F*MA*Z(n&hay6%S}VPGgNyas>q1Dh31MG5+1T<#15#jQpRww~qujovK( zi0{vSwS?uI3mwqe^a}EL^}mt@t$7k?j4{BFOJv%xrLB zNIM7y<=}+@7VkF@UJ|r{U4DWp7M$qQCqc%1<%wIRoXubGoWyYfiUl@@kq)XhouwdK z$3H2$#Wjo7X@{Lskq-Sb>ZaY$xmLWx_`&!J>YuIU|hO-sy zR7)vxwmSL7Tx{)v;=2c1uSj*?w%v;-PPAt*sK@nR zIoGs2q?WAMGc%QT7S+0>|S-h6})6 z^>z#!m{;r2+LG`l*~By_y|qf|paxz7V)p3hB!7y}=!33_@wVsh}opxNy1!BfQCp{9B+<_knLBA==HT*w;AB}I~OY^GpEKP^K z6f-t2E~}^QNuF{V1qRSgc=||#FeXiu^ynMREKGc9UF69jCT0+%duDA^#RWY9KF$2a|`E@Yh?dmRi5Wp z5(-)}$GDaee{Dh9ow3Iq+_pFJ)sLjNN`yh=0IkDk5ELhr6Yrq}urXESO`xy_;f+~h zTukFEm-ky{%Lf2nSHZZ0!xClUItoMOYC_4C(u3TEK0QopD`eX{2L}n$@JcSGZ7y$% z7wam0>DW&zZK?Ii?dP-O>sJsQtLueulv$Rxn6wJ}&vVkFP-!4Qar0L-UU|_7v zIGcXQoNUe$hxzoPGz?}?!f!r<=84o^z*J2pu0K2w`R6M(__! zTfnfRN!MWoS!2Y$NUq@dXjK5uR8zkw$o^cGuGXVYp*1?Sh_|@L(#|rX zTdk$B=UQlcxwHY${69F+Le?XA=@N5)O#YitJ@KbWUt_)NW19IVp>3e+Dc;z2vc39p zzH+Xp!N@@9fMp2dC|HB%snkZoo&-AjHF+>@ZUpnQyutedtgW&g=2K?Qoz!w-&P@z~ zh1{gZ#K|38D9vj;Jtft%;|!Yj%icr7OIt(OWUloGM z_bGgZW1dU_M~C|ITc?p}1etT04?$l26ArucYD!Im7e*yAS>~ELZZ{E3#krtjq!!Tu zKK+q2e9@!K4sO>KTw3TV)&)XT49Xa-=~<-AXF+>M6@@x29%20d2#Em{l7tq;T-D@@ zzlqa2Rfxt#gNsGzDikkQ3}EYqETtnIp4f+mY=-Fz2)zTzNsP{fMpQ`O^vKUdZA^7K z8Mysv^e}1sm|H1Qc*AEh!lPHSy%_JVq9n4&CUuARBIxamMVbLeO;Y*{W7~pN) z@R@w%FMA4VYH>A{(0EgTbKDrBpolC&u%v7`F-zQ99yfhT`HeoELVcPCjVv-K(Amx> z2?B|JQitAsoyIrp6{7R%Zr~k}P!6CRm0d;O#~DyeSAd4)1Q7HwFi|dbDGl{!(eoXN zel=vBpie@=q5ihX0RJ!QS*fOXxI&i(C|D_5ttDd!e(7st2zE9-B2%1erZ|q7e`F=6 zAnFExt>uh6fJW(W>L2OvP~XTIxBfTOOSa*w3e`ax_Ikh9J|Y2TZL^RTOz|sjn56GZ zNJLXaka(1ZkoQqADB`vxy_LdK< z{6b)y?!|#@0>)wFaMPL)Vf!ePC1R=RbgD_335(=XAF$14LW$tqDbv*4nyf`o(0}sD zN1I6}GS<~EavI*xDB1ucm#e#6MI080zO5A)Z2rwuprrP>ihOp*2_7li0u2N|6#zfW61!Ew96rGJnb1Xjut6O30d#%Nh zk8F7Nn#yA_fy1uU;F#Eu$qk=~l}H{HVNZ#@wF-g;;sPie!3`%Y z((QYv(hR7-7p!#)u{zt-ljSPB_3?BNI(R+-} zY-}Z9toigWyx}Q$k?u-n z7KRDRi#646ZLs$fs@n^xrNm>QKFERnqG)_5*t5>G-$dHqg;{qf-ej8cA9Uc(YPDeH?UrwSRNHs*ir_u3dQdn-mQd1 zHWaSuO-;+~K0u;1M1pW$?g@yLi?Qx+1Z07KFJWuUcHaksK#f$Y*VleNiAtu|4{P&GcqAG?+;DU^fMly47%eLiM*Yd zcFVaQx9VvMrDx_>-bcR!Zd>J zJz;$gWBhby6U~d!`BuGvGlm#@@x6vlQO8_g5~g^3b~bINh*$xQUBt0$YjDg)mhAoJ zWFwq`rmsN}G1q?(qA;dG9V3MYs>=W>3`+TU?A}Y!NZC?`ulESpWVvuZdjIE6vE(rrYzjfk-_BG-t>H6qTI5j@sVQ5dG=*3=Xk z!Gi)tz}P4wjucRHuf*6ZD+iP^;$s<6Y(x|r5u0R0xe-xrL_8rQMx*%A6lv~@)j2{p zB;qMr_&NSoHC4*!M~LXiM$!DOq6=lT!QK?j-zqv&Ml%&vZb?zu3@1n5R8QP+B{AY? z{cmHQYd~E$pJ(ce&IEA3$OlvH)EalCeMd2$u$-@b&dPcO~&e)J1Ps zdugeM8T|`O*XL26YP=~!&^>*a2=Cz{_C|hU8_!-IJ7GwA48gK*(q9^XB!9@=HRxhq zC~e>n+GT?_LVw-oiG2)pv^ftQ0MIdu^Z}!*;9)YD8N?FolEKU#mf(M)ktl?j!xDU0 z1~Y3|g7?W_W(-R(rrA^ovxO!2F&WGZVF}hb*kp-R1N2Zx)AdIv677tK`VneSI3DUH zdS=n&0Rx*P@%h4)#KD)eW8f-yB5b} zniR)|T##oam)xIC{TUt0^2ll$?O0(uSU&90w6(_5_>I$p8Ht=Z3+18!h%yg zjXx*T!iZxkF-eQ-O`aQKEL-6rIo`1mDao7;>hFoUE<_+n>zjRec@;~EJOP}N-m!{s z*W!vGb987txlqX`QE~)_lC$?mu@dLHhiBLYfX`8hW)7KAb_ljlEkGDq2XM&WfJeZrOgGKU|X*-!bAlrxn*R8I3}F zhI{c&d>v`i_pnLD(F*Jq>QFZU+Y^_W%&$>i7Recn`C6$dP7&_s2{B zHN3NsMZ(*U;l-p1`}nt|m@pGE80ZZ|uolMCSjO>HmWCF8{ctI_)F?jKHZ8@?7tfgE|4q$UKnf# z7i2OQ3<9;bf-Y$Ia&EYU>Y;H8tI#pxU=3ujQWz{mbj2iZ?FZ_7xU7rTb*B)#tfW|A z9T^%)voS=Yie_o%PYbh=p* zY?nl;Q#j8}0n@ecO}Y5R277F!$t%Vq(nau6@MzYsVBELlDGzUKKm|BXxr`kM|M13p zWymAaStA`*6~Y^7@X!m>mVCVuM&QPdq+nTNhb=h0u_HNnMPtW}!Aq9>BoIS8_#7XC zzCdmPStY1{^}YljaTD7n^6I;yBej-s9!P-b0DP=LKgao~mT_PG10UEaKki(7KqjC8 zz|Genjz;?dFe4!ukRStdr_m-_1bt7&SV!nFst%nu)Du)`+%X!a6(Rxf0VR?QPgy>F zE}nVEDzQ($VY;?!!gRC_cSlbsC)bB$ZXfM>*)^e<0zjTL+)qKRVtZw9mX8*I9WVa@ z^M*0r^iXe1ZjZs!!N}C@|M4i9<@RX$s^d12f#Wed*ut$Q+R}YK*RT&;z|Yu%d~C`I zJIe4Gg@|+f5&3cMn=(_~k<;EHR2(Pz{f4c$`*SGfjG4enb1Np`XV@qpu7l4YFYM>% zX*p-Kj|Ew9-0uuJw@))zh}qSMM`0Ia|0Rm8SZ{M_j&Z1!HX_?!Mh;8$G1nAs`o!tH z6-d7psJj6MNkU)v=3=sExqV?E6y~+81V!)zDhPTbHUVA8<10*ITexu2=DX|;lIOWW zCRpAj(Tpy{{Rc~)`7M)yhEF~Eb_k66w8GN23X}Fs$jRT6a*KwLn@1{r6xZWn73y{)>`>Kux(_y*8j>7q1WxW&V#R7Dz=h%U0 zQa(5rLvIZ+U@r09XyUOfEKCOra1wCGT8XAHy6YwS#K_na%c$7r0^j1(wR^Rs*8DN~ zyHaQa`sp~HgPRpTcQyym-_(9luReczcC1ieT4nmB)YA(~hi4zbQ`&X#6#$%kkJA2t{uc=fkqE)9WQ zS#cD?^0AY%0muRQl8=2!OWHqzA|qd<5N8vgR>d_g<6alZgs*K9Jd>+ioTGIY8 z!B0|PxYc`qqJ>ZYgrejm!niG(s+%5y;$t@I;p>o>{J!>D1B zg#PgG5EALbug6~iRY^`M>092M_ilz}{61yTl0I>!jqlWA*mFO*)7f`?8e(tx4kz7c zV{B`9_;6$k2Y03T!pXb5G3;|Ra0JmX;6YwO!&pa#eH{>f6=xx=74Oau7nj9cwT!34 zoh~~sK9K@{Kp4pn2xQ(Tz?O09D6~s?wrAG0Y$2xp&-+>Vj1SUYL&r+>Yl?XnJJ}*} zh-Y?|7M=|`G;OpNCgU|snqk_m^m%9!Z6?S0xbvA8aQpiu1c^S|-Bkh&=5YJpMj@Jw z5>fgJcc;o`DNUKi65XB(vfyZj4`-;Gp8<7HQs@+fZ!of+u?}C+Ntn;k&KWYQ%*+L+ zM2DLj7m|aynAoP-uuP@TBralu$U?J#YWmU(-G*`Cwu`u$px38Q8|~9)XGMEPKKPvO z@C#kswShB{mXdfe=sKH^0zhn*?}$h@^1>ICE0~RwQKNAj%8kQM7-0`{lk8cH1IQUV z&V*gmo_=K2P}prUF7WB8qffnY%~mfy>@@a6cXGfJ1kkK)3YC-%knsTJs37y-=5!I_gUa z7GgAq@`xp`FjjQKSX%+d0A%7AO$W!MQej;NvZL7)me`DMC=4wa4F--|G^oCGu1{am zK-|JsUf^>i)iV_)%%vkSG+&94|2(2H?k;AF8C0kD5h0rZZlNOSxWFK)79?^sa`Tbw z8&EAF85?R4PQ^9el7TWO0ZE-fm_?~|t=Mv{7vXn8I(b-;r0+0xfapvp3Y}_Me8i38i`s-8h+e2}`BJw4l`c1JZ*?dH>yV6v-L%}871@WQ3Pb_G@gAg9 zq=9!O=xR`a#&Gp&Lxq)A1ch4PFG7dj3Ng%=9piTShS#b2fEwF5u0do6 z8yl`3fuI)GBWxxEDb9i)#)gR)oa1LJaPb3j;+QYsa5jc5^Lf z{Ady)w38^Z5aT}(+~KFBIri(oSI*`YT)S&p7RbY^tT}*WFAiG&6TAs6@DuE-MI4#6 zlp$o-^juB%VWBq1(H&Vh{vsp(PKt+;I*J3PB2~O62sF>D zf7!8YE7GaW6Q;gq4S@Vt9`cNCf1EC@FcTQHpw8s*g>Xz*t=nRLwq;%N)HK7KTF0@Q%L zkyPSNInm^;_AGikz>jf;+>6a6G^2|=vhRA?iL^m3n3593bX2M@| zhPv7gJ8$8op9Uy%e6^iBQn3f;W(?HxF7elp6*vz$wt#tJ%O2t~PF00jW{WG4&a(3f z{Z6d}#Epz`d0}=@2#srs*u?SLaMaV{662}GVE$X+PZX8ZCHDYaboa4$CSm~7`JAHB zq14Fl0b|FllqkpbC(tLf0H}R?nB--Qo?es+4w->6{z>FB`kaSpiE49!H`(X1(C1bo zC-=Fngarc2P4Vb+tsH=JVTPbw$?#$i3nuwlNU{1LpfJQPssueD=*ap?VyvU}XA&H) z5vU;2^b>s>QSm8FM=ul+7q@JGl}jln!QTRu1pKw;DnKuTU*b=bBN8!QE=xA-mZUNG z1DflMj?6{>!8lPwTX$IaFEHiyMk+II5O^NmW~|^K7tL@S9~wyMh3*Nn8RkQ;AE&~0 z6X#u|(K%?KDnzB|j-!;i#kIfy@SzJRm|$w9#w#eX&x=bvfFhht-vR+3RUYw%j*-k> z!jWlwDb6m6#9r2>&73MPWz4!Y_;R+i;IH*^oW&H6QLaCq1Kb;VV!xdDb=<-k&AV|f z#8``Vy^FLr103w99y1!JU*!g4XjqGmG#`ylwC=Yx_n-EsE`sy6<8r}Bxwz>9DF^fQ zM)<%M74*Ry06O@fzp)2(F8iHL$1(EZTp?q_e)jp)QuC+~Yqt&x>pJ!s;~(a^bewR> zcWNYA4_6I@#fnP`^{?qFql0K{AtoT`aD0gQCmt4asqhw8m@Nn3?-ckkEZS*2GmjkN zNL>Mz?jU)wv()t`(33Xh5fAl?^Z+u6RNpf$$pjwhPh&gS#=NGZj$1XUh#AZmt~MEL z1|ph|*7qsYckt%dcO#MAxLJo;sp=@Pk|EGrQK@fCxfJNxjI6johcJgw_l3)0@hC4Q z!JeRv{&*f5(?y^kD(*iS++_-WuX zq@<2%GzjC*qQOOEcAFlVgOfvY1m+{z7=hPim_=JaybqzM!P(4x5g<{KStr0%hh)(I zmb$@ImjlE^+}8a?#(ISzK?7ra}-hF0bmK9J18F%$r6?Z<~sa9svFcx-2W@rXBuB`An5?Y zIafsK0|eDbc_>nLdA27*f5mxv?k=4;fHz&!(e3p5ax_NX7*wb@->D%mX*gppY71{0c?cqU)P1rn# z0a&iD{j2?uu(M!ENNmU zf`a1p&yn??W7MCTSU=5Il>Nn14~8JJVPRt-I!r9&f;v`vHlsyO=WnQfh?}2a-(~_HKoQQSPr+8Ggvf&A*Kb(j8fnLXTdQunBVzLUEgwwEm+Kq<11CO(fO%NG{hhcc4#F z19BYig2p(t=h64^Nf5`2XF+GClOT>VREdLet)5={a25o|xra(;cn$F{~|A=`Fs>z=fZTa#$wLj413_ZZsskwJe>rKMxb>A*-;cXWBo-QhT2 zmAwLE81;@0r=YcnR_9%Op06X_26PznXGmUS{*2C#<(==d_e8!#Ax&V7-N+aT*o9br zU>U4Ixv$w8$K3%X4ThOF@pqSf2|OrGMAjiuQ)_TikeVdFweGvqf_?B3$#ql|u zNFN8w)AJ&QGPxV^8)W=*6d&nLg$_fZ-B4)m$k_6|kw5gnS5qu>S>!mrXa-N0nPU6F z?nsQm3}WBJ&JC1-G-*8v54Bv3!aT9}WA=hDga84EZI7+8uRy?Iyj~>72TZ76N2wz6 zJpQf%Q5Y}WPjZ+4q}%CTq~_LJl&X;{SuD0YY^OOwQx-8+m4 zR9H(<_a)`x2n1bn@;x>dJIA;xQU5LUKjbgclQ@(~46|IQlK9q`Mj#+WU1G0Gc>Y;-5iyOD2!X($9> zrpS9d656w5ok3jaCDUMCA3X?ThP^SCM3?2L8h>r6k?t3>A4M_~+B72_=648}P)ECG ze@@WT3fwGp@fKfRWb!W&%MIm?49wr7Q-tghx~UKHh&B;{Ay_dcqLWPQxF0Zs&Za&< z7g`({NQ{Lc{!4t|{Rj5$-q15yP(O0hkoE7~M$#MaUuzfzrq`_{9%5g1V*#4hLfOcO+!C||67YiK=-+K|W%l_!CLQu84 z?Dyjf%|O_b>T5mtNod!%Qg3yNK(rBBo3$`-Iuv=D`F9QoK+ z!+%c`w4Cjspw<{jLoJ2agRq>crX6G9f=LFT-z|md(yx)f09Q~Ic4}J> zy0vV4XBTv8*;}>OG0npdN;(Ig?08jBNVWp|@6=Nzv|r-bK6w90UWk1xd_nFKQ>Ecf z<;x-61zBNwpdywkNP|-$K@VJ#^VWyR}nuzT`+pfuX;SlrnyuEqaXP z7UjJ~=Is%A41y^-ATkerh{-2paPr93XphK)@T{|Og_H-vemK|+!u~EA6Hq-$yo zQKo(odhi0C9+8Fkh<<0u&viuR#0xcKD5<)jnX$JKmkyEuLm%yk9OzC>44q0hY4v59 zq3Q2n6vw`TGpN0I>==`|BGq#fHokQ1M_z90@3;_5HCi0$5Yp73j&~3i`An8>kG#oA zX=9aa=O*Rvc$q&ip5mUBo%Z+97j2OmlGyhnLbbVndNmkOEk$hPA`S!hv^bWNe~3(z39M%0A#b~j8r--$29vS< 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 ZW1+FFV}oPSvGK9Vv8jh>^8du&KLOFRjxzuN diff --git a/app/services/SDP/utils/step5_merge_script.pyd b/app/services/SDP/utils/step5_merge_script.pyd index 4ceaf8bf2caf7a7191e96f2325519b991d1a996c..b2849503ca0c7fb9a0aad69e545c6eb560796a4a 100644 GIT binary patch literal 65536 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

#P;X?%GUK4O_o}w5 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 D`8wg# diff --git a/app/services/SDP/utils/utils.pyd b/app/services/SDP/utils/utils.pyd index ad16a2c90e7eefe92173476e5fea3f379bdac0a6..8c70c3d55e6d2da7c8bdccf4e06f6114f5174a39 100644 GIT binary patch literal 58880 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

I8p>H0>mW}qU6zhW?UVxp7 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 From 6c6ceeebea234156c311d2729a90ad2cba264cd4 Mon Sep 17 00:00:00 2001 From: linyq Date: Thu, 8 May 2025 11:00:47 +0800 Subject: [PATCH 25/31] =?UTF-8?q?=E4=BC=98=E5=8C=96qwenvl=5Fanalyzer.py?= =?UTF-8?q?=E4=B8=AD=E7=9A=84base=5Furl=E9=85=8D=E7=BD=AE=EF=BC=8C?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E9=BB=98=E8=AE=A4=E5=80=BC=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=EF=BC=9B=E5=9C=A8utils.py=E4=B8=AD=E6=96=B0=E5=A2=9Eformat=5Ft?= =?UTF-8?q?ime=E5=87=BD=E6=95=B0=E4=BB=A5=E6=94=AF=E6=8C=81=E7=A7=92?= =?UTF-8?q?=E6=95=B0=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=B8=BAHH:MM:SS,mmm?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=EF=BC=9B=E5=9C=A8generate=5Fscript=5Fdocu.py?= =?UTF-8?q?=E4=B8=AD=E9=87=8D=E6=9E=84=E5=88=86=E6=9E=90=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E6=89=B9=E6=AC=A1=E5=88=86=E6=9E=90=E7=BB=93=E6=9E=9C=E5=B9=B6?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E4=B8=BAJSON=E6=A0=BC=E5=BC=8F=EF=BC=8C?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E5=85=BC=E5=AE=B9=E6=97=A7=E7=9A=84=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E6=A0=BC=E5=BC=8F=E8=BE=93=E5=87=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/utils/qwenvl_analyzer.py | 2 +- app/utils/utils.py | 22 ++++ webui/tools/generate_script_docu.py | 188 ++++++++++++++++++++++------ 3 files changed, 175 insertions(+), 37 deletions(-) diff --git a/app/utils/qwenvl_analyzer.py b/app/utils/qwenvl_analyzer.py index ec4de39..6d1669a 100644 --- a/app/utils/qwenvl_analyzer.py +++ b/app/utils/qwenvl_analyzer.py @@ -30,7 +30,7 @@ class QwenAnalyzer: self.model_name = model_name self.api_key = api_key - self.base_url = base_url or "https://dashscope.aliyuncs.com/compatible-mode/v1" + self.base_url = base_url # 配置API客户端 self._configure_client() diff --git a/app/utils/utils.py b/app/utils/utils.py index e80cd87..56eba09 100644 --- a/app/utils/utils.py +++ b/app/utils/utils.py @@ -197,6 +197,28 @@ def time_convert_seconds_to_hmsm(seconds) -> str: return "{:02d}:{:02d}:{:02d},{:03d}".format(hours, minutes, seconds, milliseconds) +def format_time(seconds: float) -> str: + """ + 将秒数转换为格式化的时间字符串 (HH:MM:SS,mmm) + + 参数: + seconds: 需要转换的秒数,可以是整数或浮点数 + + 返回: + 格式化的时间字符串,格式为 HH:MM:SS,mmm + """ + # 计算小时、分钟、秒和毫秒 + hours = int(seconds // 3600) + remaining_seconds = seconds % 3600 + minutes = int(remaining_seconds // 60) + remaining_seconds = remaining_seconds % 60 + secs = int(remaining_seconds) + milliseconds = int((remaining_seconds - secs) * 1000) + + # 格式化为时间字符串 + return "{:02d}:{:02d}:{:02d},{:03d}".format(hours, minutes, secs, milliseconds) + + def text_to_srt(idx: int, msg: str, start_time: float, end_time: float) -> str: start_time = time_convert_seconds_to_hmsm(start_time) end_time = time_convert_seconds_to_hmsm(end_time) diff --git a/webui/tools/generate_script_docu.py b/webui/tools/generate_script_docu.py index ee388dc..21abcab 100644 --- a/webui/tools/generate_script_docu.py +++ b/webui/tools/generate_script_docu.py @@ -96,7 +96,7 @@ def generate_script_docu(params): raise Exception(f"关键帧提取失败: {str(e)}") """ - 2. 视觉分析 + 2. 视觉分析(批量分析每一帧) """ vision_llm_provider = st.session_state.get('vision_llm_providers').lower() logger.debug(f"VLM 视觉大模型提供商: {vision_llm_provider}") @@ -167,37 +167,138 @@ def generate_script_docu(params): # ===================处理分析结果=================== update_progress(60, "正在整理分析结果...") - # 合并所有批次的析结果 + # 合并所有批次的分析结果 frame_analysis = "" + merged_frame_observations = [] # 合并所有批次的帧观察 + overall_activity_summaries = [] # 合并所有批次的整体总结 prev_batch_files = None - + frame_counter = 1 # 初始化帧计数器,用于给所有帧分配连续的序号 + logger.debug(json.dumps(results, indent=4, ensure_ascii=False)) + for result in results: if 'error' in result: logger.warning(f"批次 {result['batch_index']} 处理出现警告: {result['error']}") - - # 获取当前批次的文件列表 keyframe_001136_000045.jpg 将 000045 精度提升到 毫秒 + continue + + # 获取当前批次的文件列表 batch_files = get_batch_files(keyframe_files, result, vision_batch_size) logger.debug(f"批次 {result['batch_index']} 处理完成,共 {len(batch_files)} 张图片") - # logger.debug(batch_files) - - first_timestamp, last_timestamp, _ = get_batch_timestamps(batch_files, prev_batch_files) + + # 获取批次的时间戳范围 + first_timestamp, last_timestamp, timestamp_range = get_batch_timestamps(batch_files, prev_batch_files) logger.debug(f"处理时间戳: {first_timestamp}-{last_timestamp}") - - # 添加带时间戳的分析结果 - frame_analysis += f"\n=== {first_timestamp}-{last_timestamp} ===\n" - frame_analysis += result['response'] - frame_analysis += "\n" - + + # 解析响应中的JSON数据 + response_text = result['response'] + try: + # 处理可能包含```json```格式的响应 + if "```json" in response_text: + json_content = response_text.split("```json")[1].split("```")[0].strip() + elif "```" in response_text: + json_content = response_text.split("```")[1].split("```")[0].strip() + else: + json_content = response_text.strip() + + response_data = json.loads(json_content) + + # 提取frame_observations和overall_activity_summary + if "frame_observations" in response_data: + frame_obs = response_data["frame_observations"] + overall_summary = response_data.get("overall_activity_summary", "") + + # 添加时间戳信息到每个帧观察 + for i, obs in enumerate(frame_obs): + if i < len(batch_files): + # 从文件名中提取时间戳 + file_path = batch_files[i] + file_name = os.path.basename(file_path) + # 提取时间戳字符串 (格式如: keyframe_000675_000027000.jpg) + # 格式解析: keyframe_帧序号_毫秒时间戳.jpg + timestamp_parts = file_name.split('_') + if len(timestamp_parts) >= 3: + timestamp_str = timestamp_parts[-1].split('.')[0] + try: + timestamp_seconds = int(timestamp_str) / 1000 # 转换为秒 + formatted_time = utils.format_time(timestamp_seconds) # 格式化时间戳 + except ValueError: + logger.warning(f"无法解析时间戳: {timestamp_str}") + timestamp_seconds = 0 + formatted_time = "00:00:00,000" + else: + logger.warning(f"文件名格式不符合预期: {file_name}") + timestamp_seconds = 0 + formatted_time = "00:00:00,000" + + # 添加额外信息到帧观察 + obs["frame_path"] = file_path + obs["timestamp"] = formatted_time + obs["timestamp_seconds"] = timestamp_seconds + + # 使用全局递增的帧计数器替换原始的frame_number + if "frame_number" in obs: + obs["original_frame_number"] = obs["frame_number"] # 保留原始编号作为参考 + obs["frame_number"] = frame_counter # 赋值连续的帧编号 + frame_counter += 1 # 增加帧计数器 + + # 添加到合并列表 + merged_frame_observations.append(obs) + + # 添加批次整体总结信息 + if overall_summary: + # 从文件名中提取时间戳数值 + first_time_str = first_timestamp.split('_')[-1].split('.')[0] + last_time_str = last_timestamp.split('_')[-1].split('.')[0] + + # 转换为毫秒并计算持续时间(秒) + try: + first_time_ms = int(first_time_str) + last_time_ms = int(last_time_str) + batch_duration = (last_time_ms - first_time_ms) / 1000 + except ValueError: + # 使用 utils.time_to_seconds 函数处理格式化的时间戳 + first_time_seconds = utils.time_to_seconds(first_time_str.replace('_', ':').replace('-', ',')) + last_time_seconds = utils.time_to_seconds(last_time_str.replace('_', ':').replace('-', ',')) + batch_duration = last_time_seconds - first_time_seconds + + overall_activity_summaries.append({ + "batch_index": result['batch_index'], + "time_range": f"{first_timestamp}-{last_timestamp}", + "duration_seconds": batch_duration, + "summary": overall_summary + }) + except Exception as e: + logger.error(f"解析批次 {result['batch_index']} 的响应数据失败: {str(e)}") + # 添加原始响应作为回退 + frame_analysis += f"\n=== {first_timestamp}-{last_timestamp} ===\n" + frame_analysis += response_text + frame_analysis += "\n" + # 更新上一个批次的文件 prev_batch_files = batch_files - + + # 将合并后的结果转为JSON字符串 + merged_results = { + "frame_observations": merged_frame_observations, + "overall_activity_summaries": overall_activity_summaries + } + + # 保存完整的分析结果为JSON + analysis_json_path = os.path.join(utils.task_dir(), "frame_analysis.json") + with open(analysis_json_path, 'w', encoding='utf-8') as f: + json.dump(merged_results, f, ensure_ascii=False, indent=2) + + # 同时保存原始文本格式的分析结果(兼容性) + if not frame_analysis.strip() and merged_frame_observations: + # 如果没有原始文本但有合并结果,则从合并结果生成文本 + frame_analysis = json.dumps(merged_results, ensure_ascii=False, indent=2) + if not frame_analysis.strip(): raise Exception("未能生成有效的帧分析结果") - - # 保存分析结果 - analysis_path = os.path.join(utils.temp_dir(), "frame_analysis.txt") - with open(analysis_path, 'w', encoding='utf-8') as f: - f.write(frame_analysis) + + # # 保存文本格式分析结果 + # analysis_path = os.path.join(utils.temp_dir(), "frame_analysis.txt") + # with open(analysis_path, 'w', encoding='utf-8') as f: + # f.write(frame_analysis) update_progress(70, "正在生成脚本...") @@ -211,26 +312,41 @@ def generate_script_docu(params): frame_content_list = [] prev_batch_files = None - for i, result in enumerate(results): - if 'error' in result: - continue + # 使用合并后的观察结果构建帧内容列表 + if merged_frame_observations: + for obs in merged_frame_observations: + frame_content = { + "_id": obs.get("frame_number", 0), # 使用全局连续的帧编号作为ID + "timestamp": obs.get("timestamp", ""), + "picture": obs.get("observation", ""), + "narration": "", + "OST": 2, + "timestamp_seconds": obs.get("timestamp_seconds", 0) + } + frame_content_list.append(frame_content) + logger.debug(f"添加帧内容: ID={obs.get('frame_number', 0)}, 时间={obs.get('timestamp', '')}, 描述长度={len(obs.get('observation', ''))}") + else: + # 兼容旧的处理方式,如果没有合并后的观察结果 + for i, result in enumerate(results): + if 'error' in result: + continue - batch_files = get_batch_files(keyframe_files, result, vision_batch_size) - _, _, timestamp_range = get_batch_timestamps(batch_files, prev_batch_files) + batch_files = get_batch_files(keyframe_files, result, vision_batch_size) + _, _, timestamp_range = get_batch_timestamps(batch_files, prev_batch_files) - frame_content = { - "_id": i + 1, - "timestamp": timestamp_range, - "picture": result['response'], - "narration": "", - "OST": 2 - } - frame_content_list.append(frame_content) + frame_content = { + "_id": i + 1, + "timestamp": timestamp_range, + "picture": result['response'], + "narration": "", + "OST": 2 + } + frame_content_list.append(frame_content) - logger.debug(f"添加帧内容: 时间范围={timestamp_range}, 分析结果长度={len(result['response'])}") + logger.debug(f"添加帧内容: 时间范围={timestamp_range}, 分析结果长度={len(result['response'])}") - # 更新上一个批次的文件 - prev_batch_files = batch_files + # 更新上一个批次的文件 + prev_batch_files = batch_files if not frame_content_list: raise Exception("没有有效的帧内容可以处理") From 017f398cb111261b5200574ed8b9be1bd06608cf Mon Sep 17 00:00:00 2001 From: linyq Date: Thu, 8 May 2025 11:23:34 +0800 Subject: [PATCH 26/31] =?UTF-8?q?=E5=9C=A8generate=5Fscript=5Fdocu.py?= =?UTF-8?q?=E4=B8=AD=E6=96=B0=E5=A2=9E=E6=97=B6=E9=97=B4=E6=88=B3=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E4=BC=98=E5=8C=96=E5=88=86=E6=9E=90=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E4=BF=9D=E5=AD=98=E9=80=BB=E8=BE=91=EF=BC=8C=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E5=88=86=E6=9E=90=E7=BB=93=E6=9E=9C=E4=BB=A5JSON?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E4=BF=9D=E5=AD=98=E5=88=B0=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=EF=BC=8C=E5=B9=B6=E8=AE=B0=E5=BD=95=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E8=B7=AF=E5=BE=84=E3=80=82=E7=A7=BB=E9=99=A4=E6=97=A7?= =?UTF-8?q?=E7=9A=84=E6=96=87=E6=9C=AC=E6=A0=BC=E5=BC=8F=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E7=AE=80=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webui/tools/generate_script_docu.py | 32 ++++++++++++++++------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/webui/tools/generate_script_docu.py b/webui/tools/generate_script_docu.py index 21abcab..60ef2c0 100644 --- a/webui/tools/generate_script_docu.py +++ b/webui/tools/generate_script_docu.py @@ -9,6 +9,7 @@ from app.utils import video_processor import streamlit as st from loguru import logger from requests.adapters import HTTPAdapter +from datetime import datetime from app.config import config from app.utils.script_generator import ScriptProcessor @@ -164,6 +165,9 @@ def generate_script_docu(params): ) loop.close() + """ + 3. 处理分析结果(格式化为 json 数据) + """ # ===================处理分析结果=================== update_progress(60, "正在整理分析结果...") @@ -282,24 +286,24 @@ def generate_script_docu(params): "overall_activity_summaries": overall_activity_summaries } + # 使用当前时间创建文件名 + now = datetime.now() + timestamp_str = now.strftime("%Y%m%d_%H%M") + + # 确保分析目录存在 + analysis_dir = os.path.join(utils.storage_dir(), "temp", "analysis") + os.makedirs(analysis_dir, exist_ok=True) + # 保存完整的分析结果为JSON - analysis_json_path = os.path.join(utils.task_dir(), "frame_analysis.json") + analysis_filename = f"frame_analysis_{timestamp_str}.json" + analysis_json_path = os.path.join(analysis_dir, analysis_filename) with open(analysis_json_path, 'w', encoding='utf-8') as f: json.dump(merged_results, f, ensure_ascii=False, indent=2) - - # 同时保存原始文本格式的分析结果(兼容性) - if not frame_analysis.strip() and merged_frame_observations: - # 如果没有原始文本但有合并结果,则从合并结果生成文本 - frame_analysis = json.dumps(merged_results, ensure_ascii=False, indent=2) - - if not frame_analysis.strip(): - raise Exception("未能生成有效的帧分析结果") - - # # 保存文本格式分析结果 - # analysis_path = os.path.join(utils.temp_dir(), "frame_analysis.txt") - # with open(analysis_path, 'w', encoding='utf-8') as f: - # f.write(frame_analysis) + logger.info(f"分析结果已保存到: {analysis_json_path}") + """ + 4. 生成文案 + """ update_progress(70, "正在生成脚本...") # 从配置中获取文本生成相关配置 From e1b694824bf7c3766b73c520fbd9dd18d1dca7a5 Mon Sep 17 00:00:00 2001 From: linyq Date: Thu, 8 May 2025 15:13:13 +0800 Subject: [PATCH 27/31] =?UTF-8?q?=E5=9C=A8generate=5Fscript=5Fdocu.py?= =?UTF-8?q?=E4=B8=AD=E4=BF=AE=E6=AD=A3=E6=97=B6=E9=97=B4=E6=88=B3=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E9=80=BB=E8=BE=91=EF=BC=8C=E6=94=AF=E6=8C=81=E6=96=B0?= =?UTF-8?q?=E6=97=A7=E6=A0=BC=E5=BC=8F=E5=85=BC=E5=AE=B9=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E7=A1=AE=E4=BF=9D=E5=88=86=E6=9E=90=E7=BB=93=E6=9E=9C=E4=BB=A5?= =?UTF-8?q?JSON=E6=A0=BC=E5=BC=8F=E4=BF=9D=E5=AD=98=E5=88=B0=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E7=9B=AE=E5=BD=95=E3=80=82=E7=A7=BB=E9=99=A4=E5=86=97?= =?UTF-8?q?=E4=BD=99=E7=9A=84=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/generate_narration_script.py | 98 +++++++++++++++++++++++ webui/tools/generate_script_docu.py | 58 +++++++++++--- 2 files changed, 146 insertions(+), 10 deletions(-) create mode 100644 app/services/generate_narration_script.py diff --git a/app/services/generate_narration_script.py b/app/services/generate_narration_script.py new file mode 100644 index 0000000..28e8469 --- /dev/null +++ b/app/services/generate_narration_script.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +''' +@Project: NarratoAI +@File : 生成介绍文案 +@Author : 小林同学 +@Date : 2025/5/8 上午11:33 +''' + +import json +import os +import traceback + + +def parse_frame_analysis_to_markdown(json_file_path): + """ + 解析视频帧分析JSON文件并转换为Markdown格式 + + :param json_file_path: JSON文件路径 + :return: Markdown格式的字符串 + """ + # 检查文件是否存在 + if not os.path.exists(json_file_path): + return f"错误: 文件 {json_file_path} 不存在" + + try: + # 读取JSON文件 + with open(json_file_path, 'r', encoding='utf-8') as file: + data = json.load(file) + + # 初始化Markdown字符串 + markdown = "" + + # 获取总结和帧观察数据 + summaries = data.get('overall_activity_summaries', []) + frame_observations = data.get('frame_observations', []) + + # 按批次组织数据 + batch_frames = {} + for frame in frame_observations: + batch_index = frame.get('batch_index') + if batch_index not in batch_frames: + batch_frames[batch_index] = [] + batch_frames[batch_index].append(frame) + + # 生成Markdown内容 + for i, summary in enumerate(summaries, 1): + batch_index = summary.get('batch_index') + time_range = summary.get('time_range', '') + batch_summary = summary.get('summary', '') + + # 处理可能过长的文本行,保证格式对齐 + batch_summary_lines = [batch_summary[i:i+80] for i in range(0, len(batch_summary), 80)] + + markdown += f"## 片段 {i}\n" + markdown += f"- 时间范围:{time_range}\n" + + # 添加片段描述,处理长文本 + markdown += f"- 片段描述:{batch_summary_lines[0]}\n" if batch_summary_lines else f"- 片段描述:\n" + for line in batch_summary_lines[1:]: + markdown += f" {line}\n" + + markdown += "- 详细描述:\n" + + # 添加该批次的帧观察详情 + frames = batch_frames.get(batch_index, []) + for frame in frames: + timestamp = frame.get('timestamp', '') + observation = frame.get('observation', '') + + # 处理可能过长的观察文本,并确保observation不为空 + observation_lines = [observation[i:i+80] for i in range(0, len(observation), 80)] if observation else [""] + markdown += f" - {timestamp}: {observation_lines[0] if observation_lines else ''}\n" + for line in observation_lines[1:]: + markdown += f" {line}\n" + + markdown += "\n" + + return markdown + + except Exception as e: + return f"处理JSON文件时出错: {traceback.format_exc()}" + + +if __name__ == '__main__': + video_frame_description_path = "/Users/apple/Desktop/home/NarratoAI/storage/temp/analysis/frame_analysis_20250508_1139.json" + + # 测试新的JSON文件 + test_file_path = "/Users/apple/Desktop/home/NarratoAI/storage/temp/analysis/frame_analysis_20250508_1458.json" + markdown_output = parse_frame_analysis_to_markdown(test_file_path) + print(markdown_output) + + # 输出到文件以便检查格式 + output_file = "/Users/apple/Desktop/home/NarratoAI/storage/temp/narration_script.md" + with open(output_file, 'w', encoding='utf-8') as f: + f.write(markdown_output) + print(f"\n已将Markdown输出保存到: {output_file}") diff --git a/webui/tools/generate_script_docu.py b/webui/tools/generate_script_docu.py index 60ef2c0..7fd9668 100644 --- a/webui/tools/generate_script_docu.py +++ b/webui/tools/generate_script_docu.py @@ -177,8 +177,15 @@ def generate_script_docu(params): overall_activity_summaries = [] # 合并所有批次的整体总结 prev_batch_files = None frame_counter = 1 # 初始化帧计数器,用于给所有帧分配连续的序号 - logger.debug(json.dumps(results, indent=4, ensure_ascii=False)) + # logger.debug(json.dumps(results, indent=4, ensure_ascii=False)) + # 确保分析目录存在 + analysis_dir = os.path.join(utils.storage_dir(), "temp", "analysis") + os.makedirs(analysis_dir, exist_ok=True) + origin_res = os.path.join(analysis_dir, "frame_analysis.json") + with open(origin_res, 'w', encoding='utf-8') as f: + json.dump(results, f, ensure_ascii=False, indent=2) + # 开始处理 for result in results: if 'error' in result: logger.warning(f"批次 {result['batch_index']} 处理出现警告: {result['error']}") @@ -222,8 +229,23 @@ def generate_script_docu(params): if len(timestamp_parts) >= 3: timestamp_str = timestamp_parts[-1].split('.')[0] try: - timestamp_seconds = int(timestamp_str) / 1000 # 转换为秒 - formatted_time = utils.format_time(timestamp_seconds) # 格式化时间戳 + # 修正时间戳解析逻辑 + # 格式为000100000,表示00:01:00,000,即1分钟 + # 需要按照对应位数进行解析: + # 前两位是小时,中间两位是分钟,后面是秒和毫秒 + if len(timestamp_str) >= 9: # 确保格式正确 + hours = int(timestamp_str[0:2]) + minutes = int(timestamp_str[2:4]) + seconds = int(timestamp_str[4:6]) + milliseconds = int(timestamp_str[6:9]) + + # 计算总秒数 + timestamp_seconds = hours * 3600 + minutes * 60 + seconds + milliseconds / 1000 + formatted_time = utils.format_time(timestamp_seconds) # 格式化时间戳 + else: + # 兼容旧的解析方式 + timestamp_seconds = int(timestamp_str) / 1000 # 转换为秒 + formatted_time = utils.format_time(timestamp_seconds) # 格式化时间戳 except ValueError: logger.warning(f"无法解析时间戳: {timestamp_str}") timestamp_seconds = 0 @@ -237,6 +259,7 @@ def generate_script_docu(params): obs["frame_path"] = file_path obs["timestamp"] = formatted_time obs["timestamp_seconds"] = timestamp_seconds + obs["batch_index"] = result['batch_index'] # 使用全局递增的帧计数器替换原始的frame_number if "frame_number" in obs: @@ -255,9 +278,28 @@ def generate_script_docu(params): # 转换为毫秒并计算持续时间(秒) try: - first_time_ms = int(first_time_str) - last_time_ms = int(last_time_str) - batch_duration = (last_time_ms - first_time_ms) / 1000 + # 修正解析逻辑,与上面相同的方式解析时间戳 + if len(first_time_str) >= 9 and len(last_time_str) >= 9: + # 解析第一个时间戳 + first_hours = int(first_time_str[0:2]) + first_minutes = int(first_time_str[2:4]) + first_seconds = int(first_time_str[4:6]) + first_ms = int(first_time_str[6:9]) + first_time_seconds = first_hours * 3600 + first_minutes * 60 + first_seconds + first_ms / 1000 + + # 解析第二个时间戳 + last_hours = int(last_time_str[0:2]) + last_minutes = int(last_time_str[2:4]) + last_seconds = int(last_time_str[4:6]) + last_ms = int(last_time_str[6:9]) + last_time_seconds = last_hours * 3600 + last_minutes * 60 + last_seconds + last_ms / 1000 + + batch_duration = last_time_seconds - first_time_seconds + else: + # 兼容旧的解析方式 + first_time_ms = int(first_time_str) + last_time_ms = int(last_time_str) + batch_duration = (last_time_ms - first_time_ms) / 1000 except ValueError: # 使用 utils.time_to_seconds 函数处理格式化的时间戳 first_time_seconds = utils.time_to_seconds(first_time_str.replace('_', ':').replace('-', ',')) @@ -290,10 +332,6 @@ def generate_script_docu(params): now = datetime.now() timestamp_str = now.strftime("%Y%m%d_%H%M") - # 确保分析目录存在 - analysis_dir = os.path.join(utils.storage_dir(), "temp", "analysis") - os.makedirs(analysis_dir, exist_ok=True) - # 保存完整的分析结果为JSON analysis_filename = f"frame_analysis_{timestamp_str}.json" analysis_json_path = os.path.join(analysis_dir, analysis_filename) From dac23c7c3187dc5b941cb88c5a2c9e15a573f357 Mon Sep 17 00:00:00 2001 From: linyq Date: Thu, 8 May 2025 17:02:02 +0800 Subject: [PATCH 28/31] =?UTF-8?q?(webfeatui):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E8=A7=86=E9=A2=91=E8=A7=A3=E8=AF=B4?= =?UTF-8?q?=E6=96=87=E6=A1=88=E7=94=9F=E6=88=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -优化了基本设置组件,增加了对 DeepSeek 和 Siliconflow 的支持- 重构了 generate_narration_script 模块,提高了代码可读性和可维护性 -改进了 generate_script_docu 工具,简化了文案生成流程- 添加了异常处理和日志记录,提高了系统稳定性 --- app/services/generate_narration_script.py | 176 ++++++++++++++++++++-- webui/components/basic_settings.py | 34 +++-- webui/tools/generate_script_docu.py | 85 +++-------- 3 files changed, 196 insertions(+), 99 deletions(-) diff --git a/app/services/generate_narration_script.py b/app/services/generate_narration_script.py index 28e8469..3f50d16 100644 --- a/app/services/generate_narration_script.py +++ b/app/services/generate_narration_script.py @@ -11,6 +11,7 @@ import json import os import traceback +from openai import OpenAI def parse_frame_analysis_to_markdown(json_file_path): @@ -50,16 +51,11 @@ def parse_frame_analysis_to_markdown(json_file_path): time_range = summary.get('time_range', '') batch_summary = summary.get('summary', '') - # 处理可能过长的文本行,保证格式对齐 - batch_summary_lines = [batch_summary[i:i+80] for i in range(0, len(batch_summary), 80)] - markdown += f"## 片段 {i}\n" markdown += f"- 时间范围:{time_range}\n" - # 添加片段描述,处理长文本 - markdown += f"- 片段描述:{batch_summary_lines[0]}\n" if batch_summary_lines else f"- 片段描述:\n" - for line in batch_summary_lines[1:]: - markdown += f" {line}\n" + # 添加片段描述 + markdown += f"- 片段描述:{batch_summary}\n" if batch_summary else f"- 片段描述:\n" markdown += "- 详细描述:\n" @@ -69,11 +65,8 @@ def parse_frame_analysis_to_markdown(json_file_path): timestamp = frame.get('timestamp', '') observation = frame.get('observation', '') - # 处理可能过长的观察文本,并确保observation不为空 - observation_lines = [observation[i:i+80] for i in range(0, len(observation), 80)] if observation else [""] - markdown += f" - {timestamp}: {observation_lines[0] if observation_lines else ''}\n" - for line in observation_lines[1:]: - markdown += f" {line}\n" + # 直接使用原始文本,不进行分割 + markdown += f" - {timestamp}: {observation}\n" if observation else f" - {timestamp}: \n" markdown += "\n" @@ -83,16 +76,167 @@ def parse_frame_analysis_to_markdown(json_file_path): return f"处理JSON文件时出错: {traceback.format_exc()}" -if __name__ == '__main__': - video_frame_description_path = "/Users/apple/Desktop/home/NarratoAI/storage/temp/analysis/frame_analysis_20250508_1139.json" +def generate_narration(markdown_content, api_key, base_url, model): + """ + 调用OpenAI API根据视频帧分析的Markdown内容生成解说文案 + :param markdown_content: Markdown格式的视频帧分析内容 + :param api_key: OpenAI API密钥 + :param base_url: API基础URL,如果使用非官方API + :param model: 使用的模型名称 + :return: 生成的解说文案 + """ + try: + # 构建提示词 + prompt = """ +我是一名荒野建造解说的博主,以下是一些同行的对标文案,请你深度学习并总结这些文案的风格特点跟内容特点: + + +解压助眠的天花板就是荒野建造,沉浸丝滑的搭建过程可以说每一帧都是极致享受,我保证强迫症来了都找不出一丁点毛病。更别说全屋严丝合缝的拼接工艺,还能轻松抵御零下二十度气温,让你居住的每一天都温暖如春。 +在家闲不住的西姆今天也打算来一次野外建造,行走没多久他就发现许多倒塌的树,任由它们自生自灭不如将其利用起来。想到这他就开始挥舞铲子要把地基挖掘出来,虽然每次只能挖一点点,但架不住他体能惊人。没多长时间一个 2x3 的深坑就赫然出现,这深度住他一人绰绰有余。 +随后他去附近收集来原木,这些都是搭建墙壁的最好材料。而在投入使用前自然要把表皮刮掉,防止森林中的白蚁蛀虫。处理好一大堆后西姆还在两端打孔,使用木钉固定在一起。这可不是用来做墙壁的,而是做庇护所的承重柱。只要木头间的缝隙足够紧密,那搭建出的木屋就能足够坚固。 +每向上搭建一层,他都会在中间塞入苔藓防寒,保证不会泄露一丝热量。其他几面也是用相同方法,很快西姆就做好了三面墙壁,每一根木头都极其工整,保证强迫症来了都要点个赞再走。 +在继续搭建墙壁前西姆决定将壁炉制作出来,毕竟森林夜晚的气温会很低,保暖措施可是重中之重。完成后他找来一块大树皮用来充当庇护所的大门,而上面刮掉的木屑还能作为壁炉的引火物,可以说再完美不过。 +测试了排烟没问题后他才开始搭建最后一面墙壁,这一面要预留门和窗,所以在搭建到一半后还需要在原木中间开出卡口,让自己劈砍时能轻松许多。此时只需将另外一根如法炮制,两端拼接在一起后就是一扇大小适中的窗户。而随着随后一层苔藓铺好,最后一根原木落位,这个庇护所的雏形就算完成。 +大门的安装他没选择用合页,而是在底端雕刻出榫头,门框上则雕刻出榫眼,只能说西姆的眼就是一把尺,这完全就是严丝合缝。此时他才开始搭建屋顶。这里西姆用的方法不同,他先把最外围的原木固定好,随后将原木平铺在上面,就能得到完美的斜面屋顶。等他将四周的围栏也装好后,工整的屋顶看起来十分舒服,西姆躺上去都不想动。 +稍作休息后,他利用剩余的苔藓,对屋顶的缝隙处密封。可这样西姆觉得不够保险,于是他找来一些黏土,再次对原本的缝隙二次加工,保管这庇护所冬天也暖和。最后只需要平铺上枯叶,以及挖掘出的泥土,整个屋顶就算完成。 +考虑到庇护所的美观性,自然少不了覆盖上苔藓,翠绿的颜色看起来十分舒服。就连门口的庭院旁,他都移植了许多小树做点缀,让这木屋与周边环境融为一体。西姆才刚完成好这件事,一场大雨就骤然降临。好在此时的他已经不用淋雨,更别说这屋顶防水十分不错,室内没一点雨水渗透进来。 +等待温度回升的过程,西姆利用墙壁本身的凹槽,把床框镶嵌在上面,只需要铺上苔藓,以及自带的床单枕头,一张完美的单人床就做好。辛苦劳作一整天,西姆可不会亏待自己。他将自带的牛肉腌制好后,直接放到壁炉中烤,只需要等待三十分钟,就能享受这美味的一顿。 +在辛苦建造一星期后,他终于可以在自己搭建的庇护所中,享受最纯正的野外露营。后面西姆回家补给了一堆物资,再次回来时森林已经大雪纷飞,让他原本翠绿的小屋,更换上了冬季限定皮肤。好在内部设施没受什么影响,和他离开时一样整洁。 +就是房间中已经没多少柴火,让西姆今天又得劈柴。寒冷干燥的天气,让木头劈起来十分轻松。没多久他就收集到一大堆,这些足够燃烧好几天。虽然此时外面大雪纷飞,但小屋中却开始逐渐温暖。这次他除了带来一些食物外,还有几瓶调味料,以及一整套被褥,让自己的居住舒适度提高一大截。 +而秋天他有收集干草的缘故,只需要塞入枕套中密封起来,就能作为靠垫用。就这居住条件,比一般人在家过的还要奢侈。趁着壁炉木头变木炭的过程,西姆则开始不紧不慢的处理食物。他取出一块牛排,改好花刀以后,撒上一堆调料腌制起来。接着用锡纸包裹好,放到壁炉中直接炭烤,搭配上自带的红酒,是一个非常好的选择。 +随着时间来到第二天,外面的积雪融化了不少,西姆简单做顿煎蛋补充体力后,决定制作一个室外篝火堆,用来晚上驱散周边野兽。搭建这玩意没什么技巧,只需要找到一大堆木棍,利用大树的夹缝将其掰弯,然后将其堆积在一起,就是一个简易版的篝火堆。看这外形有点像帐篷,好在西姆没想那么多。 +等待天色暗淡下来后,他才来到室外将其点燃,顺便处理下多余的废料。只可惜这场景没朋友陪在身边,对西姆来说可能是个遗憾。而哪怕森林只有他一个人,都依旧做了好几个小时。等到里面的篝火彻底燃尽后,西姆还找来雪球,覆盖到上面将火熄灭,这防火意识可谓十分好。最后在室内二十五度的高温下,裹着被子睡觉。 + + + +解压助眠的天花板就是荒野建造,沉浸丝滑的搭建过程每一帧都是极致享受,全屋严丝合缝的拼接工艺,能轻松抵御零下二十度气温,居住体验温暖如春。 +在家闲不住的西姆开启野外建造。他发现倒塌的树,决定加以利用。先挖掘出 2x3 的深坑作为地基,接着收集原木,刮掉表皮防白蚁蛀虫,打孔用木钉固定制作承重柱。搭建墙壁时,每一层都塞入苔藓防寒,很快做好三面墙。 +为应对森林夜晚低温,西姆制作壁炉,用大树皮当大门,刮下的木屑做引火物。搭建最后一面墙时预留门窗,通过在原木中间开口拼接做出窗户。大门采用榫卯结构安装,严丝合缝。 +搭建屋顶时,先固定外围原木,再平铺原木形成斜面屋顶,之后用苔藓、黏土密封缝隙,铺上枯叶和泥土。为美观,在木屋覆盖苔藓,移植小树点缀。完工时遇大雨,木屋防水良好。 +西姆利用墙壁凹槽镶嵌床框,铺上苔藓、床单枕头做成床。劳作一天后,他用壁炉烤牛肉享用。建造一星期后,他开始野外露营。 +后来西姆回家补给物资,回来时森林大雪纷飞。他劈柴储备,带回食物、调味料和被褥,提高居住舒适度,还用干草做靠垫。他用壁炉烤牛排,搭配红酒。 +第二天,积雪融化,西姆制作室外篝火堆防野兽。用大树夹缝掰弯木棍堆积而成,晚上点燃处理废料,结束后用雪球灭火,最后在室内二十五度的环境中裹被入睡。 + + + +如果战争到来,这个深埋地下十几米的庇护所绝对是 bug 般的存在。即使被敌人发现,还能通过快速通道一秒逃出。里面不仅有竹子、地暖、地下水井,还自制抽水机。在解决用水问题的同时,甚至自研无土栽培技术,过上完全自给自足的生活。 +阿伟的老婆美如花,但阿伟从来不回家,来到野外他乐哈哈,一言不合就开挖。众所周知当战争来临时,地下堡垒的安全性是最高的。阿伟苦苦研习两载半,只为练就一身挖洞本领。在这双逆天麒麟臂的加持下,如此坚硬的泥土都只能当做炮灰。 +得到了充足的空间后,他便开始对这些边缘进行打磨。随后阿伟将细线捆在木棍上,以此描绘出圆柱的轮廓。接着再一点点铲掉多余的部分。虽然是由泥土一体式打造,但这样的桌子保准用上千年都不成问题。 +考虑到十几米的深度进出非常不方便,于是阿伟找来两根长达 66.6 米的木头,打算为庇护所打造一条快速通道。只见他将木桩牢牢地插入地下,并顺着洞口的方向延伸出去,直到贯穿整个山洞。接着在每个木桩的连接处钉入铁钉,确保轨道不能有一毫米的偏差。完成后再制作一个木质框架,从而达到前后滑动的效果。 +不得不说阿伟这手艺简直就是大钢管子杵青蛙。在上面放上一个木制的车斗,还能加快搬运泥土的速度。没多久庇护所的内部就已经初见雏形。为了住起来更加舒适,还需要为自己打造一张床。虽然深处的泥土同样很坚固,但好处就是不用担心垮塌的风险。 +阿伟不仅设计了更加符合人体工学的拱形,并且还在一旁雕刻处壁龛。就是这氛围怎么看着有点不太吉利。别看阿伟一身腱子肉,但这身体里的艺术细菌可不少。每个边缘的地方他都做了精雕细琢,瞬间让整个卧室的颜值提升一大截。 +住在地下的好处就是房子面积全靠挖,每平方消耗两个半馒头。不仅没有了房贷的压力,就连买墓地的钱也省了。阿伟将中间的墙壁挖空,从而得到取暖的壁炉。当然最重要的还有排烟问题,要想从上往下打通十几米的山体是件极其困难的事。好在阿伟年轻时报过忆坤年的古墓派补习班,这打洞技术堪比隔壁学校的土拨鼠专业。虽然深度长达十几米,但排烟效果却一点不受影响,一个字专业! +随后阿伟继续对壁炉底部雕刻,打通了底部放柴火的空间,并制作出放锅的灶头。完成后阿伟从侧面将壁炉打通,并制作出一条导热的通道,以此连接到床铺的位置。毕竟住在这么一个风湿宝地,不注意保暖除湿很容易得老寒腿。 +阿伟在床面上挖出一条条管道,以便于温度能传输到床的每个角落。接下来就可以根据这些通道的长度裁切出同样长短的竹子,根据竹筒的大小凿出相互连接的孔洞,最后再将竹筒内部打通,以达到温度传送的效果。 +而后阿伟将这些管道安装到凹槽内,在他严谨的制作工艺下,每根竹子刚好都能镶嵌进去。在铺设床面之前还需要用木塞把圆孔堵住,防止泥土掉落进管道。泥土虽然不能隔绝湿气,但却是十分优良的导热材料。等他把床面都压平后就可以小心的将这些木塞拔出来,最后再用黏土把剩余的管道也遮盖起来,直到整个墙面恢复原样。 +接下来还需要测试一下加热效果,当他把火点起来后,温度很快就传送到了管道内,把火力一点点加大,直到热气流淌到更远的床面。随着小孔里的青烟冒出,也预示着阿伟的地暖可以投入使用。而后阿伟制作了一些竹条,并用细绳将它们喜结连理。 +千里之行始于足下,美好的家园要靠自己双手打造。明明可以靠才艺吃饭的阿伟偏偏要用八块腹肌征服大家,就问这样的男人哪个野生婆娘不喜欢?完成后阿伟还用自己 35 码的大腚感受了一下,真烫! +随后阿伟来到野区找到一根上好的雷击木,他当即就把木头咔嚓成两段,并取下两节较为完整的带了回去,刚好能和圆桌配套。另外一个在里面凿出凹槽,并插入木棍连接,得到一个夯土的木锤。住过农村的小伙伴都知道,这样夯出来的地面堪比水泥地,不仅坚硬耐磨,还不用担心脚底打滑。忙碌了一天的阿伟已经饥渴难耐,拿出野生小烤肠,安安心心住新房,光脚爬上大热炕,一觉能睡到天亮。 +第二天阿伟打算将房间扩宽,毕竟吃住的地方有了,还要解决个人卫生的问题。阿伟在另一侧增加了一个房间,他打算将这里打造成洗澡的地方。为了防止泥土垮塌,他将顶部做成圆弧形,等挖出足够的空间后,旁边的泥土已经堆成了小山。 +为了方便清理这些泥土,阿伟在之前的轨道增加了转弯,交接处依然是用铁钉固定,一直延伸到房间的最里面。有了运输车的帮助,这些成吨的泥土也能轻松的运送出去,并且还能体验过山车的感觉。很快他就完成了清理工作。 +为了更方便的在里面洗澡,他将底部一点点挖空,这么大的浴缸,看来阿伟并不打算一个人住。完成后他将墙面雕刻的凹凸有致,让这里看起来更加豪华。接着用洛阳铲挖出排水口,并用一根相同大小的竹筒作为开关。 +由于四周都是泥土还不能防水,阿伟特意找了一些白蚁巢,用来制作可以防水的野生水泥。现在就可以将里里外外,能接触到水的地方都涂抹一遍。细心的阿伟还找来这种 500 克一斤的鹅卵石,对池子表面进行装饰。 +没错,水源问题阿伟早已经考虑在内,他打算直接在旁边挖个水井,毕竟已经挖了这么深,再向下挖一挖,应该就能到达地下水的深度。经过几日的奋战,能看得出阿伟已经消瘦了不少,但一想到马上就能拥有的豪宅,他直接化身为无情的挖土机器,很快就挖到了好几米的深度。 +考虑到自己的弹跳力有限,阿伟在一旁定入木桩,然后通过绳子爬上爬下。随着深度越来越深,井底已经开始渗出水来,这也预示着打井成功。没多久这里面将渗满泉水,仅凭一次就能挖到水源,看来这里还真是块风湿宝地。 +随后阿伟在井口四周挖出凹槽,以便于井盖的安置。这一量才知道,井的深度已经达到了足足的 5 米。阿伟把木板组合在一起,再沿着标记切掉多余部分,他甚至还给井盖做了把手。可是如何从这么深的井里打水还是个问题,但从阿伟坚定的眼神来看,他应该想到了解决办法。 +只见他将树桩锯成两半,然后用凿子把里面一点点掏空,另外一半也是如法炮制。接着还要在底部挖出圆孔,要想成功将水从 5 米深的地方抽上来,那就不得不提到大家熟知的勾股定理。没错,这跟勾股定理没什么关系。 +阿伟给竹筒做了一个木塞,并在里面打上安装连接轴的孔。为了增加密闭性,阿伟不得不牺牲了自己的 AJ,剪出与木塞相同的大小后,再用木钉固定住。随后他收集了一些树胶,并放到火上加热融化。接下来就可以涂在木塞上增加使用寿命。 +现在将竹筒组装完成,就可以利用虹吸原理将水抽上来。完成后就可以把井盖盖上去,再用泥土在上面覆盖,现在就不用担心失足掉下去了。 +接下来阿伟去采集了一些大漆,将它涂抹在木桶接缝处,就能将其二合为一。完了再接入旁边浴缸的入水口,每个连接的地方都要做好密封,不然后面很容易漏水。随后就可以安装上活塞,并用一根木桩作为省力杠杆,根据空气压强的原理将井水抽上来。 +经过半小时的来回拉扯,硕大的浴缸终于被灌满,阿伟也是忍不住洗了把脸。接下来还需要解决排水的问题,阿伟在地上挖出沟渠,一直贯穿到屋外,然后再用竹筒从出水口连接,每个接口处都要抹上胶水,就连门外的出水口他都做了隐藏。 +在野外最重要的就是庇护所、水源还有食物。既然已经完成了前二者,那么阿伟还需要拥有可持续发展的食物来源。他先是在地上挖了两排地洞,然后在每根竹筒的表面都打上无数孔洞,这就是他打算用来种植的载体。在此之前,还需要用大火对竹筒进行杀菌消毒。 +趁着这时候,他去搬了一麻袋的木屑,先用芭蕉叶覆盖在上面,再铺上厚厚的黏土隔绝温度。在火焰的温度下,能让里面的木屑达到生长条件。 +等到第二天所有材料都晾凉后,阿伟才将竹筒内部掏空,并将木屑一点点地塞入竹筒。一切准备就绪,就可以将竹筒插入提前挖好的地洞。最后再往竹筒里塞入种子,依靠房间内的湿度和温度,就能达到大棚种植的效果。稍加时日,这些种子就会慢慢发芽。 +虽然暂时还吃不上自己培养的食物,但好在阿伟从表哥贺强那里学到不少钓鱼本领,哪怕只有一根小小的竹竿,也能让他钓上两斤半的大鲶鱼。新鲜的食材,那肯定是少不了高温消毒的过程。趁着鱼没熟,阿伟直接爬进浴缸,冰凉的井水瞬间洗去了身上的疲惫。这一刻的阿伟是无比的享受。 +不久后鱼也烤得差不多了,阿伟的生活现在可以说是有滋有味。住在十几米的地下,不仅能安全感满满,哪怕遇到危险,还能通过轨道快速逃生。 + + + +%s + + +我正在尝试做这个内容的解说纪录片视频,我需要你以 中的内容为解说目标,根据我刚才提供给你的对标文案 特点,以及你总结的特点,帮我生成一段关于荒野建造的解说文案,文案需要符合平台受欢迎的解说风格,请使用 json 格式进行输出;使用 中的输出格式: + + +{ + "items": [ + { + "_id": 1, # 唯一递增id + "timestamp": "00:00:05,390-00:00:10,430", + "picture": "画面描述", + "narration": "解说文案", + } +} + + + +1. 只输出 json 内容,不要输出其他任何说明性的文字 +2. 解说文案的语言使用 简体中文 +3. 严禁虚构画面,所有画面只能从 中摘取 + +""" % (markdown_content) + + # 使用OpenAI SDK初始化客户端 + client = OpenAI( + api_key=api_key, + base_url=base_url + ) + + # 使用SDK发送请求 + response = client.chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "你是一名专业的视频解说文案撰写专家。"}, + {"role": "user", "content": prompt} + ], + temperature=0.7, + response_format={"type": "json_object"}, + ) + + # 提取生成的文案 + if response.choices and len(response.choices) > 0: + narration_script = response.choices[0].message.content + # 打印消耗的tokens + print(response.usage.total_tokens) + return narration_script + else: + return "生成解说文案失败: 未获取到有效响应" + + except Exception as e: + return f"调用API生成解说文案时出错: {traceback.format_exc()}" + + +if __name__ == '__main__': + text_provider = 'openai' + text_api_key = "sk-lyxttmuwgcmocfmupotkaenxnfofednrqappdrypwtrboang" + text_model = "deepseek-ai/DeepSeek-R1" + text_base_url = "https://api.siliconflow.cn/v1" + video_frame_description_path = "/Users/apple/Desktop/home/NarratoAI/storage/temp/analysis/frame_analysis_20250508_1139.json" + # 测试新的JSON文件 test_file_path = "/Users/apple/Desktop/home/NarratoAI/storage/temp/analysis/frame_analysis_20250508_1458.json" markdown_output = parse_frame_analysis_to_markdown(test_file_path) - print(markdown_output) + # print(markdown_output) # 输出到文件以便检查格式 output_file = "/Users/apple/Desktop/home/NarratoAI/storage/temp/narration_script.md" with open(output_file, 'w', encoding='utf-8') as f: f.write(markdown_output) - print(f"\n已将Markdown输出保存到: {output_file}") + # print(f"\n已将Markdown输出保存到: {output_file}") + + # 生成解说文案 + narration = generate_narration( + markdown_output, + text_api_key, + base_url=text_base_url, + model=text_model + ) + + # 保存解说文案 + print(narration) + print(type(narration)) + narration_file = "/Users/apple/Desktop/home/NarratoAI/storage/temp/final_narration_script.json" + with open(narration_file, 'w', encoding='utf-8') as f: + f.write(narration) + print(f"\n已将解说文案保存到: {narration_file}") diff --git a/webui/components/basic_settings.py b/webui/components/basic_settings.py index e6165fe..cae4c16 100644 --- a/webui/components/basic_settings.py +++ b/webui/components/basic_settings.py @@ -1,7 +1,10 @@ +import traceback + import streamlit as st import os from app.config import config from app.utils import utils +from loguru import logger def render_basic_settings(tr): @@ -266,7 +269,7 @@ def test_text_model_connection(api_key, base_url, model_name, provider, tr): elif provider.lower() == 'moonshot': base_url = "https://api.moonshot.cn/v1" elif provider.lower() == 'deepseek': - base_url = "https://api.deepseek.com/v1" + base_url = "https://api.deepseek.com" # 构建测试URL test_url = f"{base_url.rstrip('/')}/chat/completions" @@ -288,7 +291,7 @@ def test_text_model_connection(api_key, base_url, model_name, provider, tr): "messages": [ {"role": "user", "content": "直接回复我文本'当前网络可用'"} ], - "max_tokens": 10 + "stream": False } # 发送测试请求 @@ -296,7 +299,6 @@ def test_text_model_connection(api_key, base_url, model_name, provider, tr): test_url, headers=headers, json=test_data, - timeout=10 ) if response.status_code == 200: @@ -313,7 +315,7 @@ def render_text_llm_settings(tr): st.subheader(tr("Text Generation Model Settings")) # 文案生成模型提供商选择 - text_providers = ['DeepSeek', 'OpenAI', 'Qwen', 'Moonshot', 'Gemini'] + text_providers = ['DeepSeek', 'OpenAI', 'Siliconflow', 'Qwen', 'Moonshot', 'Gemini'] saved_text_provider = config.app.get("text_llm_provider", "DeepSeek").lower() saved_provider_index = 0 @@ -331,9 +333,9 @@ def render_text_llm_settings(tr): config.app["text_llm_provider"] = text_provider # 获取已保存的文本模型配置 - text_api_key = config.app.get(f"text_{text_provider}_api_key", "") - text_base_url = config.app.get(f"text_{text_provider}_base_url", "") - text_model_name = config.app.get(f"text_{text_provider}_model_name", "") + text_api_key = config.app.get(f"text_{text_provider}_api_key") + text_base_url = config.app.get(f"text_{text_provider}_base_url") + text_model_name = config.app.get(f"text_{text_provider}_model_name") # 渲染文本模型配置输入框 st_text_api_key = st.text_input(tr("Text API Key"), value=text_api_key, type="password") @@ -342,6 +344,8 @@ def render_text_llm_settings(tr): # 添加测试按钮 if st.button(tr("Test Connection"), key="test_text_connection"): + logger.debug(st_text_base_url) + logger.debug(st_text_model_name) with st.spinner(tr("Testing connection...")): success, message = test_text_model_connection( api_key=st_text_api_key, @@ -364,11 +368,11 @@ def render_text_llm_settings(tr): if st_text_model_name: config.app[f"text_{text_provider}_model_name"] = st_text_model_name - # Cloudflare 特殊配置 - if text_provider == 'cloudflare': - st_account_id = st.text_input( - tr("Account ID"), - value=config.app.get(f"text_{text_provider}_account_id", "") - ) - if st_account_id: - config.app[f"text_{text_provider}_account_id"] = st_account_id + # # Cloudflare 特殊配置 + # if text_provider == 'cloudflare': + # st_account_id = st.text_input( + # tr("Account ID"), + # value=config.app.get(f"text_{text_provider}_account_id", "") + # ) + # if st_account_id: + # config.app[f"text_{text_provider}_account_id"] = st_account_id diff --git a/webui/tools/generate_script_docu.py b/webui/tools/generate_script_docu.py index 7fd9668..d9f6aed 100644 --- a/webui/tools/generate_script_docu.py +++ b/webui/tools/generate_script_docu.py @@ -342,83 +342,32 @@ def generate_script_docu(params): """ 4. 生成文案 """ - update_progress(70, "正在生成脚本...") - + logger.info("开始准备生成解说文案") + update_progress(80, "正在生成文案...") + from app.services.generate_narration_script import parse_frame_analysis_to_markdown, generate_narration # 从配置中获取文本生成相关配置 text_provider = config.app.get('text_llm_provider', 'gemini').lower() text_api_key = config.app.get(f'text_{text_provider}_api_key') text_model = config.app.get(f'text_{text_provider}_model_name') text_base_url = config.app.get(f'text_{text_provider}_base_url') - # 构建帧内容列表 - frame_content_list = [] - prev_batch_files = None + # 整理帧分析数据 + markdown_output = parse_frame_analysis_to_markdown(analysis_json_path) - # 使用合并后的观察结果构建帧内容列表 - if merged_frame_observations: - for obs in merged_frame_observations: - frame_content = { - "_id": obs.get("frame_number", 0), # 使用全局连续的帧编号作为ID - "timestamp": obs.get("timestamp", ""), - "picture": obs.get("observation", ""), - "narration": "", - "OST": 2, - "timestamp_seconds": obs.get("timestamp_seconds", 0) - } - frame_content_list.append(frame_content) - logger.debug(f"添加帧内容: ID={obs.get('frame_number', 0)}, 时间={obs.get('timestamp', '')}, 描述长度={len(obs.get('observation', ''))}") - else: - # 兼容旧的处理方式,如果没有合并后的观察结果 - for i, result in enumerate(results): - if 'error' in result: - continue - - batch_files = get_batch_files(keyframe_files, result, vision_batch_size) - _, _, timestamp_range = get_batch_timestamps(batch_files, prev_batch_files) - - frame_content = { - "_id": i + 1, - "timestamp": timestamp_range, - "picture": result['response'], - "narration": "", - "OST": 2 - } - frame_content_list.append(frame_content) - - logger.debug(f"添加帧内容: 时间范围={timestamp_range}, 分析结果长度={len(result['response'])}") - - # 更新上一个批次的文件 - prev_batch_files = batch_files - - if not frame_content_list: - raise Exception("没有有效的帧内容可以处理") - - # ===================开始生成文案=================== - update_progress(80, "正在生成文案...") - # 校验配置 - api_params = { - "vision_api_key": vision_api_key, - "vision_model_name": vision_model, - "vision_base_url": vision_base_url or "", - "text_api_key": text_api_key, - "text_model_name": text_model, - "text_base_url": text_base_url or "" - } - chekc_video_config(api_params) - custom_prompt = st.session_state.get('custom_prompt', '') - processor = ScriptProcessor( - model_name=text_model, - api_key=text_api_key, - prompt=custom_prompt, - base_url=text_base_url or "", - video_theme=st.session_state.get('video_theme', '') + # 生成文案 + # 生成解说文案 + narration = generate_narration( + markdown_output, + text_api_key, + base_url=text_base_url, + model=text_model ) - - # 处理帧内容生成脚本 - script_result = processor.process_frames(frame_content_list) - + narration_dict = json.loads(narration)['items'] + # 为 narration_dict 中每个 item 新增一个 OST: 2 的字段, 代表保留原声和配音 + narration_dict = [{**item, "OST": 2} for item in narration_dict] + logger.debug(f"解说文案创作完成:\n{"\n".join([item['narration'] for item in narration_dict])}") # 结果转换为JSON字符串 - script = json.dumps(script_result, ensure_ascii=False, indent=2) + script = json.dumps(narration_dict, ensure_ascii=False, indent=2) except Exception as e: logger.exception(f"大模型处理过程中发生错误\n{traceback.format_exc()}") From b762bf8d93c739e11c7a43346783d293681965e4 Mon Sep 17 00:00:00 2001 From: linyq Date: Thu, 8 May 2025 17:37:07 +0800 Subject: [PATCH 29/31] =?UTF-8?q?refactor(app):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E7=94=9F=E6=88=90=E8=A7=A3=E8=AF=B4=E6=96=87=E6=A1=88=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=B9=B6=E6=94=AF=E6=8C=81=20deepseek-reasoner=20?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入 loguru 库用于日志记录 - 优化 API 请求流程,支持非 JSON 输出的模型- 更新 API 密钥和基础 URL - 修改系统提示语以更符合短视频解说文案的需求 - 优化日志输出,使用 debug 级别记录 token 消耗 - 清理生成的解说文案中的多余字符 - 更新文档生成工具中的日志级别 --- app/services/generate_narration_script.py | 62 +++++++++++++++-------- webui/tools/generate_script_docu.py | 2 +- 2 files changed, 43 insertions(+), 21 deletions(-) diff --git a/app/services/generate_narration_script.py b/app/services/generate_narration_script.py index 3f50d16..8480682 100644 --- a/app/services/generate_narration_script.py +++ b/app/services/generate_narration_script.py @@ -12,6 +12,7 @@ import json import os import traceback from openai import OpenAI +from loguru import logger def parse_frame_analysis_to_markdown(json_file_path): @@ -184,24 +185,45 @@ def generate_narration(markdown_content, api_key, base_url, model): ) # 使用SDK发送请求 - response = client.chat.completions.create( - model=model, - messages=[ - {"role": "system", "content": "你是一名专业的视频解说文案撰写专家。"}, - {"role": "user", "content": prompt} - ], - temperature=0.7, - response_format={"type": "json_object"}, - ) - - # 提取生成的文案 - if response.choices and len(response.choices) > 0: - narration_script = response.choices[0].message.content - # 打印消耗的tokens - print(response.usage.total_tokens) - return narration_script + if model not in ["deepseek-reasoner"]: + # deepseek-reasoner 不支持 json 输出 + response = client.chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "你是一名专业的短视频解说文案撰写专家。"}, + {"role": "user", "content": prompt} + ], + temperature=1.5, + response_format={"type": "json_object"}, + ) + # 提取生成的文案 + if response.choices and len(response.choices) > 0: + narration_script = response.choices[0].message.content + # 打印消耗的tokens + logger.debug(f"消耗的tokens: {response.usage.total_tokens}") + return narration_script + else: + return "生成解说文案失败: 未获取到有效响应" else: - return "生成解说文案失败: 未获取到有效响应" + # 不支持 json 输出,需要多一步处理 ```json ``` 的步骤 + response = client.chat.completions.create( + model=model, + messages=[ + {"role": "system", "content": "你是一名专业的短视频解说文案撰写专家。"}, + {"role": "user", "content": prompt} + ], + temperature=1.5, + ) + # 提取生成的文案 + if response.choices and len(response.choices) > 0: + narration_script = response.choices[0].message.content + # 打印消耗的tokens + logger.debug(f"文案消耗的tokens: {response.usage.total_tokens}") + # 清理 narration_script 字符串前后的 ```json ``` 字符串 + narration_script = narration_script.replace("```json", "").replace("```", "") + return narration_script + else: + return "生成解说文案失败: 未获取到有效响应" except Exception as e: return f"调用API生成解说文案时出错: {traceback.format_exc()}" @@ -209,9 +231,9 @@ def generate_narration(markdown_content, api_key, base_url, model): if __name__ == '__main__': text_provider = 'openai' - text_api_key = "sk-lyxttmuwgcmocfmupotkaenxnfofednrqappdrypwtrboang" - text_model = "deepseek-ai/DeepSeek-R1" - text_base_url = "https://api.siliconflow.cn/v1" + text_api_key = "sk-6f7bb9d1cbee4012921268ecfe733851" + text_model = "deepseek-reasoner" + text_base_url = "https://api.deepseek.com" video_frame_description_path = "/Users/apple/Desktop/home/NarratoAI/storage/temp/analysis/frame_analysis_20250508_1139.json" # 测试新的JSON文件 diff --git a/webui/tools/generate_script_docu.py b/webui/tools/generate_script_docu.py index d9f6aed..5f958ba 100644 --- a/webui/tools/generate_script_docu.py +++ b/webui/tools/generate_script_docu.py @@ -376,7 +376,7 @@ def generate_script_docu(params): if script is None: st.error("生成脚本失败,请检查日志") st.stop() - logger.info(f"脚本生成完成") + logger.success(f"剪辑脚本生成完成") if isinstance(script, list): st.session_state['video_clip_json'] = script elif isinstance(script, str): From fef3b3c8fda19cc9090f07a42c65b9eb30e4cf71 Mon Sep 17 00:00:00 2001 From: linyq Date: Thu, 8 May 2025 20:45:14 +0800 Subject: [PATCH 30/31] =?UTF-8?q?feat(subtitle):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=AD=97=E5=B9=95=E8=87=AA=E5=AE=9A=E4=B9=89=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 generate_video.py 中实现自定义字幕位置的逻辑 - 在 schema.py 中添加 custom_position 字段 - 更新 webui 组件以支持自定义位置设置 - 调整任务处理逻辑,支持新的自定义位置参数 --- app/models/schema.py | 5 +++-- app/services/generate_video.py | 16 +++++++++++++--- app/services/task.py | 9 +++++---- webui/components/subtitle_settings.py | 2 +- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/app/models/schema.py b/app/models/schema.py index 623a3fd..ddf0ad1 100644 --- a/app/models/schema.py +++ b/app/models/schema.py @@ -362,9 +362,10 @@ class VideoClipParams(BaseModel): text_back_color: Optional[str] = None # 文本背景色 stroke_color: str = "black" # 描边颜色 stroke_width: float = 1.5 # 描边宽度 - subtitle_position: str = "bottom" # top, bottom, center, custom + subtitle_position: str = "bottom" # top, bottom, center, custom + custom_position: float = 70.0 # 自定义位置 - n_threads: Optional[int] = Field(default=16, description="解说语音音量") # 线程���,有助于提升视频处理速度 + n_threads: Optional[int] = Field(default=16, description="线程数") # 线程数,有助于提升视频处理速度 tts_volume: Optional[float] = Field(default=1.0, description="解说语音音量(后处理)") original_volume: Optional[float] = Field(default=1.0, description="视频原声音量") diff --git a/app/services/generate_video.py b/app/services/generate_video.py index 04db992..f125c05 100644 --- a/app/services/generate_video.py +++ b/app/services/generate_video.py @@ -10,7 +10,7 @@ import os import traceback -from typing import Optional, Dict, Any, Union +from typing import Optional, Dict, Any from loguru import logger from moviepy import ( VideoFileClip, @@ -18,7 +18,6 @@ from moviepy import ( CompositeAudioClip, CompositeVideoClip, TextClip, - concatenate_videoclips, afx ) from moviepy.video.tools.subtitles import SubtitlesClip @@ -54,6 +53,7 @@ def merge_materials( - subtitle_color: 字幕颜色,默认白色 - subtitle_bg_color: 字幕背景颜色,默认透明 - subtitle_position: 字幕位置,可选值'bottom', 'top', 'center',默认'bottom' + - custom_position: 自定义位置 - stroke_color: 描边颜色,默认黑色 - stroke_width: 描边宽度,默认1 - threads: 处理线程数,默认2 @@ -71,11 +71,12 @@ def merge_materials( bgm_volume = options.get('bgm_volume', 0.3) original_audio_volume = options.get('original_audio_volume', 0.0) # 默认为0,即不保留原声 keep_original_audio = options.get('keep_original_audio', False) # 是否保留原声 - subtitle_font = options.get('subtitle_font', None) + subtitle_font = options.get('subtitle_font', '') subtitle_font_size = options.get('subtitle_font_size', 40) subtitle_color = options.get('subtitle_color', '#FFFFFF') subtitle_bg_color = options.get('subtitle_bg_color', 'transparent') subtitle_position = options.get('subtitle_position', 'bottom') + custom_position = options.get('custom_position', 70) stroke_color = options.get('stroke_color', '#000000') stroke_width = options.get('stroke_width', 1) threads = options.get('threads', 2) @@ -222,6 +223,15 @@ def merge_materials( _clip = _clip.with_position(("center", video_height * 0.95 - _clip.h)) elif subtitle_position == "top": _clip = _clip.with_position(("center", video_height * 0.05)) + elif subtitle_position == "custom": + margin = 10 + max_y = video_height - _clip.h - margin + min_y = margin + custom_y = (video_height - _clip.h) * (custom_position / 100) + custom_y = max( + min_y, min(custom_y, max_y) + ) + _clip = _clip.with_position(("center", custom_y)) else: # center _clip = _clip.with_position(("center", "center")) diff --git a/app/services/task.py b/app/services/task.py index b798f66..c257d39 100644 --- a/app/services/task.py +++ b/app/services/task.py @@ -306,8 +306,8 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di output_video_path = path.join(utils.task_dir(task_id), f"combined.mp4") logger.info(f"\n\n## 6. 最后一步: 合并字幕/BGM/配音/视频 -> {output_video_path}") - bgm_path = '/Users/apple/Desktop/home/NarratoAI/resource/songs/bgm.mp3' - # bgm_path = params.bgm_file + # bgm_path = '/Users/apple/Desktop/home/NarratoAI/resource/songs/bgm.mp3' + bgm_path = utils.get_bgm_file() # 调用示例 options = { @@ -315,11 +315,12 @@ def start_subclip(task_id: str, params: VideoClipParams, subclip_path_videos: di 'bgm_volume': params.bgm_volume, # 背景音乐音量 'original_audio_volume': params.original_volume, # 视频原声音量,0表示不保留 'keep_original_audio': True, # 是否保留原声 - 'subtitle_font': 'MicrosoftYaHeiNormal.ttc', # 这里使用相对字体路径,会自动在 font_dir() 目录下查找 + 'subtitle_font': params.font_name, # 这里使用相对字体路径,会自动在 font_dir() 目录下查找 'subtitle_font_size': params.font_size, - 'subtitle_color': '#FFFFFF', + 'subtitle_color': params.text_fore_color, 'subtitle_bg_color': None, # 直接使用None表示透明背景 'subtitle_position': params.subtitle_position, + 'custom_position': params.custom_position, 'threads': params.n_threads } generate_video.merge_materials( diff --git a/webui/components/subtitle_settings.py b/webui/components/subtitle_settings.py index cb624dc..ee27985 100644 --- a/webui/components/subtitle_settings.py +++ b/webui/components/subtitle_settings.py @@ -127,7 +127,7 @@ def get_subtitle_params(): 'font_name': st.session_state.get('font_name', ''), 'font_size': st.session_state.get('font_size', 60), 'text_fore_color': st.session_state.get('text_fore_color', '#FFFFFF'), - 'position': st.session_state.get('subtitle_position', 'bottom'), + 'subtitle_position': st.session_state.get('subtitle_position', 'bottom'), 'custom_position': st.session_state.get('custom_position', 70.0), 'stroke_color': st.session_state.get('stroke_color', '#000000'), 'stroke_width': st.session_state.get('stroke_width', 1.5), From afeeb7c51625e607c5a2c0890cd2f0e1605f4617 Mon Sep 17 00:00:00 2001 From: linyq Date: Thu, 8 May 2025 20:56:38 +0800 Subject: [PATCH 31/31] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=96=B0=E6=96=87?= =?UTF-8?q?=E6=9C=AC=20API=E5=AF=86=E9=92=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 OpenAI 的 API 密钥从具体的值替换为占位符 "sk-xxx" - 此修改旨在保护敏感信息,避免在代码中直接暴露真实密钥 --- app/services/generate_narration_script.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/generate_narration_script.py b/app/services/generate_narration_script.py index 8480682..f21aa6a 100644 --- a/app/services/generate_narration_script.py +++ b/app/services/generate_narration_script.py @@ -231,7 +231,7 @@ def generate_narration(markdown_content, api_key, base_url, model): if __name__ == '__main__': text_provider = 'openai' - text_api_key = "sk-6f7bb9d1cbee4012921268ecfe733851" + text_api_key = "sk-xxx" text_model = "deepseek-reasoner" text_base_url = "https://api.deepseek.com" video_frame_description_path = "/Users/apple/Desktop/home/NarratoAI/storage/temp/analysis/frame_analysis_20250508_1139.json"