B1J1M1 commited on
Commit
dbe26df
·
verified ·
1 Parent(s): 6ab9be2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -35
app.py CHANGED
@@ -1,7 +1,9 @@
1
- import gradio as gr
2
  from transformers import pipeline
3
  from diffusers import StableDiffusionPipeline
4
  import torch
 
 
5
 
6
  # 1. Pipeline pour la transcription vocale (Wav2Vec2)
7
  asr_pipeline = pipeline("automatic-speech-recognition", model="facebook/wav2vec2-large-960h")
@@ -14,8 +16,8 @@ device = "cuda" if torch.cuda.is_available() else "cpu"
14
  image_pipeline = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4").to(device)
15
 
16
  # Fonction pour transcrire l'audio
17
- def transcribe(audio):
18
- transcription = asr_pipeline(audio)["text"]
19
  return transcription
20
 
21
  # Fonction pour résumer le texte transcrit
@@ -28,40 +30,35 @@ def generate_image(summary):
28
  image = image_pipeline(summary).images[0]
29
  return image
30
 
31
- # Pipeline complet pour générer des diapositives
32
- def generate_slides(audio):
33
- # Étape 1 : Transcription de l'audio
34
- transcription = transcribe(audio)
35
-
36
- # Étape 2 : Résumé de la transcription
37
- summary = summarize(transcription)
38
-
39
- # Étape 3 : Génération de l'image correspondante
40
- image = generate_image(summary)
41
-
42
- return transcription, summary, image
43
 
44
- # Interface utilisateur avec Gradio
45
- with gr.Blocks() as demo:
46
- gr.Markdown("# Générateur de diapositives intelligent")
47
 
48
- with gr.Row():
49
- audio_input = gr.Audio(type="filepath", label="Enregistrez votre audio")
50
- transcription_output = gr.Textbox(label="Transcription")
51
-
52
- with gr.Row():
53
- summary_output = gr.Textbox(label="Résumé")
54
- image_output = gr.Image(label="Image générée")
55
 
56
- generate_button = gr.Button("Générer des diapositives")
57
 
58
- # Liaison du bouton à la fonction de génération
59
- generate_button.click(
60
- generate_slides,
61
- inputs=audio_input,
62
- outputs=[transcription_output, summary_output, image_output]
63
- )
64
 
65
- # Lancer l'application
66
- if __name__ == "__main__":
67
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
  from transformers import pipeline
3
  from diffusers import StableDiffusionPipeline
4
  import torch
5
+ import os
6
+ import tempfile
7
 
8
  # 1. Pipeline pour la transcription vocale (Wav2Vec2)
9
  asr_pipeline = pipeline("automatic-speech-recognition", model="facebook/wav2vec2-large-960h")
 
16
  image_pipeline = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4").to(device)
17
 
18
  # Fonction pour transcrire l'audio
19
+ def transcribe(audio_path):
20
+ transcription = asr_pipeline(audio_path)["text"]
21
  return transcription
22
 
23
  # Fonction pour résumer le texte transcrit
 
30
  image = image_pipeline(summary).images[0]
31
  return image
32
 
33
+ # Interface utilisateur avec Streamlit
34
+ st.title("Générateur de diapositives intelligent")
 
 
 
 
 
 
 
 
 
 
35
 
36
+ # Étape 1 : Upload d'un fichier audio
37
+ audio_file = st.file_uploader("Téléchargez un fichier audio", type=["wav", "mp3"])
 
38
 
39
+ if audio_file is not None:
40
+ # Sauvegarde temporaire du fichier audio
41
+ with tempfile.NamedTemporaryFile(delete=False) as tmp_file:
42
+ tmp_file.write(audio_file.read())
43
+ tmp_filename = tmp_file.name
 
 
44
 
45
+ st.audio(audio_file, format='audio/wav')
46
 
47
+ # Étape 2 : Transcription de l'audio
48
+ if st.button("Transcrire l'audio"):
49
+ transcription = transcribe(tmp_filename)
50
+ st.text_area("Transcription", transcription)
 
 
51
 
52
+ # Étape 3 : Résumer la transcription
53
+ if st.button("Résumer la transcription"):
54
+ summary = summarize(transcription)
55
+ st.text_area("Résumé", summary)
56
+
57
+ # Étape 4 : Générer une image correspondante
58
+ if st.button("Générer une image basée sur le résumé"):
59
+ image = generate_image(summary)
60
+ st.image(image, caption="Image générée à partir du résumé")
61
+
62
+ # Nettoyage du fichier temporaire
63
+ if audio_file is not None:
64
+ os.remove(tmp_filename)