flocolombari commited on
Commit
ed6818e
1 Parent(s): eca6068

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -8
app.py CHANGED
@@ -11,19 +11,61 @@ model1 = pipeline("image-to-text", model="nlpconnect/vit-gpt2-image-captioning")
11
  #model3 = pipeline("translation", model="Helsinki-NLP/opus-mt-tc-big-en-pt")
12
  #model4 = pipeline("text-to-speech", model="microsoft/speecht5_tts")
13
 
 
 
 
 
 
 
14
  def process_video(video):
15
- # Étape 2: Découper la vidéo en images
16
- clip = mp.VideoFileClip(video.name)
17
- frames = [frame for i, frame in enumerate(clip.iter_frames(fps=2)) if i % 2 == 0]
18
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  output_texts = []
 
 
 
 
 
 
 
 
20
 
21
- for frame in frames:
22
  # Convertir chaque frame en Image pour pouvoir l'utiliser dans le pipeline
23
- image = Image.fromarray(frame)
24
 
25
  # Étape 3: Utiliser le modèle 1
26
- model1_output = model1(image)
27
 
28
  # Étape 4: Utiliser le modèle 2
29
  #model2_output = model2(model1_output["generated_text"])
@@ -32,6 +74,7 @@ def process_video(video):
32
  #model3_output = model3(model2_output["generated_text"])
33
 
34
  #output_texts.append(model1_output["generated_text"])
 
35
 
36
  # Étape 6: Utiliser le modèle 4 pour générer l'audio
37
  #model4_output = model4(" ".join(output_texts))
@@ -39,7 +82,7 @@ def process_video(video):
39
  # Récupérer l'audio et le retourner
40
  #audio_output = model4_output["..."] # Remplacer "..." avec la clé appropriée
41
  #return audio_output
42
- return model1_output["generated_text"]
43
 
44
  # Créer une interface gradio
45
  iface = gr.Interface(
 
11
  #model3 = pipeline("translation", model="Helsinki-NLP/opus-mt-tc-big-en-pt")
12
  #model4 = pipeline("text-to-speech", model="microsoft/speecht5_tts")
13
 
14
+
15
+
16
+
17
+
18
+
19
+
20
  def process_video(video):
21
+
22
+ if not os.path.exists("/images"):
23
+ os.makedirs("/images")
24
+
25
+ # Ouvrir la vidéo
26
+ cap = cv2.VideoCapture(video)
27
+ if not cap.isOpened():
28
+ print("Erreur lors de l'ouverture de la vidéo.")
29
+ return
30
+
31
+ # Fréquence d'images de la vidéo
32
+ fps = int(cap.get(cv2.CAP_PROP_FPS))
33
+
34
+ # Nombre total d'images dans la vidéo
35
+ total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
36
+
37
+ # Calculer le nombre d'images à sauter pour obtenir une image toutes les demi-secondes
38
+ frames_to_skip = int(fps * interval)
39
+
40
+ count = 0
41
+ for i in range(0, total_frames, frames_to_skip):
42
+ cap.set(cv2.CAP_PROP_POS_FRAMES, i)
43
+ ret, frame = cap.read()
44
+
45
+ # Si la lecture a réussi, enregistrez l'image
46
+ if ret:
47
+ output_path = os.path.join("/images/", f"frame_{count}.jpg")
48
+ cv2.imwrite(output_path, frame)
49
+ count += 1
50
+ cap.release()
51
+
52
+ fichiers = os.listdir("/images")
53
  output_texts = []
54
+
55
+ for fichier in fichiers:
56
+
57
+ if fichier.endswith(".jpg") or fichier.endswith(".png"):
58
+ # Construisez le chemin complet vers le fichier
59
+ chemin_complet = os.path.join(chemin_dossier, fichier)
60
+ model1_output = model1(image)
61
+ output_texts.append(model1_output["generated_text"])
62
 
63
+
64
  # Convertir chaque frame en Image pour pouvoir l'utiliser dans le pipeline
65
+ #image = Image.fromarray(frame)
66
 
67
  # Étape 3: Utiliser le modèle 1
68
+ #model1_output = model1(image)
69
 
70
  # Étape 4: Utiliser le modèle 2
71
  #model2_output = model2(model1_output["generated_text"])
 
74
  #model3_output = model3(model2_output["generated_text"])
75
 
76
  #output_texts.append(model1_output["generated_text"])
77
+
78
 
79
  # Étape 6: Utiliser le modèle 4 pour générer l'audio
80
  #model4_output = model4(" ".join(output_texts))
 
82
  # Récupérer l'audio et le retourner
83
  #audio_output = model4_output["..."] # Remplacer "..." avec la clé appropriée
84
  #return audio_output
85
+ return " ".join(output_texts)
86
 
87
  # Créer une interface gradio
88
  iface = gr.Interface(