Woziii commited on
Commit
bfe62c1
1 Parent(s): f5875da

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -46
app.py CHANGED
@@ -53,63 +53,63 @@ with gr.Blocks() as demo:
53
  """)
54
 
55
  # Étape 1 : Création du Projet
56
- with gr.Box():
57
- gr.Markdown("### 🛠️ Étape 1 : Création du Projet")
58
-
59
  project_name = gr.Textbox(label="Nom du Projet", placeholder="Exemple : Capsule_Video_PLU")
60
  speaker = gr.Dropdown(label="Voix 🎙️", choices=["Margaux"], value="Margaux")
61
  agree = gr.Checkbox(label="✅ J'accepte les conditions d'utilisation")
62
 
63
- next_step_btn = gr.Button("Suivant ➡️")
64
-
65
  # Étape 2 : Ajout des Sections
66
- with gr.Box():
67
- gr.Markdown("### ✍️ Étape 2 : Ajoutez vos Sections")
68
-
69
- sections = gr.State(value=[{"name": "Section_1", "text": ""}])
70
-
71
- section_inputs = gr.Column() # Conteneur pour afficher les sections ajoutées
72
-
73
- def update_section_list(sections):
74
- return [gr.Row([
75
- gr.Textbox(label=f"Nom : {s['name']}", value=s["name"], interactive=False),
76
- gr.Textbox(label="Texte", value=s["text"], lines=2)
77
- ]) for s in sections]
78
-
79
- add_section_btn = gr.Button("+ Ajouter une Section ➕")
80
- remove_section_btn = gr.Button("- Supprimer la dernière Section ")
81
-
82
- add_section_btn.click(lambda sections: (sections + [{"name": f"Section_{len(sections) + 1}", "text": ""}], update_section_list(sections)), inputs=sections, outputs=[sections, section_inputs])
83
-
84
- remove_section_btn.click(lambda sections: (sections[:-1], update_section_list(sections[:-1])) if len(sections) > 1 else (sections, update_section_list(sections)), inputs=sections, outputs=[sections, section_inputs])
 
 
 
 
 
 
85
 
86
  # Étape 3 : Génération des Audios
87
- with gr.Box():
88
- gr.Markdown("### 🎧 Étape 3 : Génération des Audios")
89
-
90
- generate_btn = gr.Button("Générer les Audios ▶️")
91
-
92
- results_output = gr.Column() # Conteneur pour afficher les audios générés
93
 
94
- def generate_audios_and_display(project_name, sections, speaker):
95
- results = generate_all_audios(project_name, sections, speaker)
96
- return [gr.Audio(label=f"Audio : {s['name']}", value=path) for s, path in zip(sections, results)]
97
 
98
- generate_btn.click(generate_audios_and_display,
99
- inputs=[project_name, sections, speaker],
100
- outputs=[results_output])
101
 
102
  # Sauvegarde du Projet
103
- with gr.Box():
104
- save_project_btn = gr.Button("Sauvegarder le Projet ✅")
105
-
106
- def save_project(project_name):
107
- project_path = os.path.join(output_folder, project_name)
108
- if not os.path.exists(project_path):
109
- return "⚠️ Aucun audio généré à sauvegarder."
110
- return f"🎉 Projet '{project_name}' sauvegardé dans le dossier '{project_path}'."
111
-
112
- save_project_btn.click(save_project, inputs=[project_name], outputs=[results_output])
113
 
114
  # Lancement de l'interface
115
  demo.launch(debug=True)
 
53
  """)
54
 
55
  # Étape 1 : Création du Projet
56
+ with gr.Row():
 
 
57
  project_name = gr.Textbox(label="Nom du Projet", placeholder="Exemple : Capsule_Video_PLU")
58
  speaker = gr.Dropdown(label="Voix 🎙️", choices=["Margaux"], value="Margaux")
59
  agree = gr.Checkbox(label="✅ J'accepte les conditions d'utilisation")
60
 
61
+ next_step_btn = gr.Button("Suivant ➡️")
62
+
63
  # Étape 2 : Ajout des Sections
64
+ sections = gr.State(value=[{"name": "Section_1", "text": ""}])
65
+
66
+ section_inputs = gr.Column() # Conteneur pour afficher les sections ajoutées
67
+
68
+ def update_section_list(sections):
69
+ return [gr.Row([
70
+ gr.Textbox(label=f"Nom : {s['name']}", value=s["name"], interactive=False),
71
+ gr.Textbox(label="Texte", value=s["text"], lines=2)
72
+ ]) for s in sections]
73
+
74
+ add_section_btn = gr.Button("+ Ajouter une Section ➕")
75
+ remove_section_btn = gr.Button("- Supprimer la dernière Section ➖")
76
+
77
+ def add_section(sections):
78
+ new_section = {"name": f"Section_{len(sections) + 1}", "text": ""}
79
+ sections.append(new_section)
80
+ return sections, update_section_list(sections)
81
+
82
+ def remove_section(sections):
83
+ if len(sections) > 1: # Ne pas supprimer si c'est la seule section
84
+ sections.pop()
85
+ return sections, update_section_list(sections)
86
+
87
+ add_section_btn.click(add_section, inputs=sections, outputs=[sections, section_inputs])
88
+ remove_section_btn.click(remove_section, inputs=sections, outputs=[sections, section_inputs])
89
 
90
  # Étape 3 : Génération des Audios
91
+ generate_btn = gr.Button("Générer les Audios ▶️")
92
+
93
+ results_output = gr.Column() # Conteneur pour afficher les audios générés
 
 
 
94
 
95
+ def generate_audios_and_display(project_name, sections, speaker):
96
+ results = generate_all_audios(project_name, sections, speaker)
97
+ return [gr.Audio(label=f"Audio : {s['name']}", value=path) for s, path in zip(sections, results)]
98
 
99
+ generate_btn.click(generate_audios_and_display,
100
+ inputs=[project_name, sections, speaker],
101
+ outputs=[results_output])
102
 
103
  # Sauvegarde du Projet
104
+ save_project_btn = gr.Button("Sauvegarder le Projet ✅")
105
+
106
+ def save_project(project_name):
107
+ project_path = os.path.join(output_folder, project_name)
108
+ if not os.path.exists(project_path):
109
+ return "⚠️ Aucun audio généré à sauvegarder."
110
+ return f"🎉 Projet '{project_name}' sauvegardé dans le dossier '{project_path}'."
111
+
112
+ save_project_btn.click(save_project, inputs=[project_name], outputs=[results_output])
 
113
 
114
  # Lancement de l'interface
115
  demo.launch(debug=True)