nia2 commited on
Commit
1c0ebe4
1 Parent(s): 655b3e9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -12
app.py CHANGED
@@ -3,25 +3,32 @@ import google.generativeai as genai
3
  from yolov5 import YOLOv5
4
  from PIL import Image
5
  from transformers import AutoProcessor, BarkModel
 
 
 
6
 
7
- #Clé Api
8
  genai.configure(api_key="AIzaSyB_Hnl_77gd1I8xs6iuLqKIoGHgsZMXm1M")
9
 
10
-
11
  # Le modèle Gemini Pro
12
  gemini_model = genai.GenerativeModel('gemini-pro')
13
 
14
  # Le modèle de détection YOLOv5
15
  yolo_model_path = "yolov5s.pt"
16
- yolo_model = YOLOv5(yolo_model_path, device="cpu")
 
 
 
 
17
 
18
  # Modèle Bark
19
  processor = AutoProcessor.from_pretrained("suno/bark")
20
  model = BarkModel.from_pretrained("suno/bark")
21
 
22
-
23
  # Détection d'ingrédients
24
  def detect_ingredients(image):
 
 
25
  results = yolo_model.predict(image)
26
  ingredients = results.pandas().xyxy[0]['name'].tolist()
27
  return ingredients
@@ -54,20 +61,22 @@ def generate_recipe(ingredients):
54
  response = gemini_model.generate_content(prompt)
55
  return response.text
56
 
57
-
58
-
59
  # Interface Gradio
60
  def process_image(image):
61
- image = Image.open(image)
62
- ingredients = detect_ingredients(image)
63
- recipe = generate_recipe(ingredients)
64
- return f"Ingrédients détectés : {', '.join(ingredients)}\n\nRecette générée :\n{recipe}"
65
 
66
  # Fonction pour générer de l'audio avec le modèle Bark
67
  def generate_audio(text):
68
  inputs = processor(text=text, return_tensors="pt")
69
  audio_output = model.generate(**inputs)
70
- return audio_output
 
 
 
 
71
 
72
  # Mise à jour de l'interface Gradio
73
  iface = gr.Interface(
@@ -77,6 +86,7 @@ iface = gr.Interface(
77
  title="Générateur de Recettes par Ingrédients",
78
  description="Téléchargez une image d'ingrédients pour générer une recette.",
79
  )
 
80
  # Interface Gradio pour générer de l'audio
81
  audio_iface = gr.Interface(
82
  fn=generate_audio,
@@ -89,4 +99,4 @@ audio_iface = gr.Interface(
89
  # Pour lancer l'application
90
  if __name__ == "__main__":
91
  iface.launch()
92
- audio_iface.launch()
 
3
  from yolov5 import YOLOv5
4
  from PIL import Image
5
  from transformers import AutoProcessor, BarkModel
6
+ import torch
7
+ import soundfile as sf
8
+ import tempfile
9
 
10
+ # Clé API
11
  genai.configure(api_key="AIzaSyB_Hnl_77gd1I8xs6iuLqKIoGHgsZMXm1M")
12
 
 
13
  # Le modèle Gemini Pro
14
  gemini_model = genai.GenerativeModel('gemini-pro')
15
 
16
  # Le modèle de détection YOLOv5
17
  yolo_model_path = "yolov5s.pt"
18
+ try:
19
+ yolo_model = YOLOv5(yolo_model_path, device="cpu")
20
+ except Exception as e:
21
+ print(f"Erreur lors du chargement du modèle YOLOv5 : {e}")
22
+ yolo_model = None
23
 
24
  # Modèle Bark
25
  processor = AutoProcessor.from_pretrained("suno/bark")
26
  model = BarkModel.from_pretrained("suno/bark")
27
 
 
28
  # Détection d'ingrédients
29
  def detect_ingredients(image):
30
+ if yolo_model is None:
31
+ return []
32
  results = yolo_model.predict(image)
33
  ingredients = results.pandas().xyxy[0]['name'].tolist()
34
  return ingredients
 
61
  response = gemini_model.generate_content(prompt)
62
  return response.text
63
 
 
 
64
  # Interface Gradio
65
  def process_image(image):
66
+ image = Image.open(image)
67
+ ingredients = detect_ingredients(image)
68
+ recipe = generate_recipe(ingredients)
69
+ return f"Ingrédients détectés : {', '.join(ingredients)}\n\nRecette générée :\n{recipe}"
70
 
71
  # Fonction pour générer de l'audio avec le modèle Bark
72
  def generate_audio(text):
73
  inputs = processor(text=text, return_tensors="pt")
74
  audio_output = model.generate(**inputs)
75
+
76
+ # Enregistrer l'audio dans un fichier temporaire
77
+ with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as temp_audio_file:
78
+ sf.write(temp_audio_file.name, audio_output.numpy(), samplerate=16000)
79
+ return temp_audio_file.name
80
 
81
  # Mise à jour de l'interface Gradio
82
  iface = gr.Interface(
 
86
  title="Générateur de Recettes par Ingrédients",
87
  description="Téléchargez une image d'ingrédients pour générer une recette.",
88
  )
89
+
90
  # Interface Gradio pour générer de l'audio
91
  audio_iface = gr.Interface(
92
  fn=generate_audio,
 
99
  # Pour lancer l'application
100
  if __name__ == "__main__":
101
  iface.launch()
102
+ audio_iface.launch()