Spaces:
Sleeping
Sleeping
File size: 1,543 Bytes
5b7ca6d 60efa5a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
import os
os.environ['LIBROSA_CACHE_DIR'] = '/tmp'
os.environ['JOBLIB_TEMP_FOLDER'] = '/tmp'
os.environ['NUMBA_CACHE_DIR'] = '/tmp'
from typing import Dict
from extraction.media_extractor import MediaExtractor
from analysis.video_analyser import VideoAnalyzer
from analysis.audio_analyser import AudioAnalyzer
from analysis.llm_analyser import LLMFusion
class DeepfakeDetectionPipeline:
"""Complete deepfake detection pipeline"""
def __init__(self):
self.media_extractor = MediaExtractor(frames_per_interval=5)
self.video_analyzer = VideoAnalyzer()
self.audio_analyzer = AudioAnalyzer()
self.llm_fusion = LLMFusion()
def analyze_video(self, video_path: str, interval_duration: float = 2.0) -> Dict:
timeline, video_info = self.media_extractor.extract_all(video_path, interval_duration)
for i, interval in enumerate(timeline):
video_results = self.video_analyzer.analyze_interval(interval)
interval['video_results'] = video_results
for i, interval in enumerate(timeline):
audio_results = self.audio_analyzer.analyze_interval(interval)
interval['audio_results'] = audio_results
final_report = self.llm_fusion.generate_report(timeline, video_info)
return {
'video_info': video_info,
'timeline': timeline,
'final_report': final_report,
'summary': self.llm_fusion.generate_report(timeline, video_info)
} |