B1J1M1 commited on
Commit
5c78fe7
·
verified ·
1 Parent(s): a88a908

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +64 -0
app.py ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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")
10
+
11
+ # 2. Pipeline pour la génération de résumé (BART ou T5)
12
+ summarizer_pipeline = pipeline("summarization", model="facebook/bart-large-cnn")
13
+
14
+ # 3. Pipeline pour la génération d'images (Stable Diffusion)
15
+ device = "cuda" if torch.cuda.is_available() else "cpu"
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
24
+ def summarize(transcription):
25
+ summary = summarizer_pipeline(transcription, max_length=130, min_length=30, do_sample=False)[0]["summary_text"]
26
+ return summary
27
+
28
+ # Fonction pour générer une image basée sur le résumé
29
+ def generate_image(summary):
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)