Lenylvt commited on
Commit
b695a26
·
verified ·
1 Parent(s): 4d23772

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -37
app.py CHANGED
@@ -101,45 +101,40 @@ def segmenter_texte(texte):
101
  st.set_page_config(layout="wide")
102
  st.title('Générateur de Dictée')
103
 
104
- # Create a form for the user to fill out
105
  with st.form("dictation_form"):
106
- mode = st.radio("Mode:", ["S'entrainer: Vous aurez uniquement les audios suivi d'une correction par IA (Pour 1 seul personne)", "Entrainer: Vous aurez uniquement le texte de la dictée pour entrainer quelqu'un d'autre (Pour 2 ou + personnes)"])
107
  classe = st.selectbox("Classe", ["CP", "CE1", "CE2", "CM1", "CM2", "6ème", "5ème", "4ème", "3ème", "Seconde", "Premiere", "Terminale"], index=2)
108
  longueur = st.slider("Longueur de la dictée (nombre de mots)", 50, 500, 200)
109
-
110
- # Submit button for the form
111
  submitted = st.form_submit_button("Générer la Dictée")
112
 
113
- if submitted:
114
- with st.spinner("Génération de la dictée en cours..."):
115
- dictee = generer_dictee(classe, longueur)
116
- if mode == "S'entrainer: Vous aurez uniquement les audios suivi d'une correction par IA (Pour 1 seul personne)":
117
- audio_urls = dictee_to_audio_segmented(dictee)
118
- concatenated_audio_path = concatenate_audio(audio_urls)
119
-
120
- col1, col2 = st.columns(2)
121
-
122
- with col1:
123
- st.audio(concatenated_audio_path, format='audio/wav', start_time=0)
124
- with st.expander("Phrases de la Dictée"):
125
- for idx, url in enumerate(audio_urls, start=1):
126
- st.markdown(f"**Phrase {idx}:**")
127
- st.audio(url, format='audio/wav')
128
-
129
- with col2:
130
- # Create a new form for the user's dictation
131
- with st.form("user_dictation_form"):
132
- dictee_user = st.text_input("Écrivez la dictée ici:")
133
- submitted_user_dictation = st.form_submit_button("Correction")
134
-
135
- if submitted_user_dictation:
136
- st.session_state.dictee_user = dictee_user
137
-
138
- if 'dictee_user' in st.session_state:
139
- with st.spinner("Génération de la correction en cours..."):
140
- correction = correction_dictee(dictee, st.session_state.dictee_user)
141
- st.markdown("Voici la correction :")
142
- st.markdown(correction)
143
-
144
- elif mode == "Entrainer: Vous aurez uniquement le texte de la dictée pour entrainer quelqu'un d'autre (Pour 2 ou + personnes)":
145
- st.text_area("Voici votre dictée :", dictee, height=300)
 
101
  st.set_page_config(layout="wide")
102
  st.title('Générateur de Dictée')
103
 
 
104
  with st.form("dictation_form"):
105
+ mode = st.radio("Mode:", ["S'entrainer: Vous aurez uniquement les audios suivi d'une correction par IA (Pour 1 seul personne)", "Entrainer: Vous aurez uniquement le texte de la dictée pour entrainer quelqu'un d'autre (Pour 2 ou + personnes)"])
106
  classe = st.selectbox("Classe", ["CP", "CE1", "CE2", "CM1", "CM2", "6ème", "5ème", "4ème", "3ème", "Seconde", "Premiere", "Terminale"], index=2)
107
  longueur = st.slider("Longueur de la dictée (nombre de mots)", 50, 500, 200)
 
 
108
  submitted = st.form_submit_button("Générer la Dictée")
109
 
110
+ if submitted or 'dictee' in st.session_state:
111
+ if 'dictee' not in st.session_state:
112
+ st.session_state.dictee = generer_dictee(classe, longueur)
113
+ dictee = st.session_state.dictee
114
+ if mode.startswith("S'entrainer"):
115
+ if 'audio_urls' not in st.session_state:
116
+ st.session_state.audio_urls = dictee_to_audio_segmented(dictee)
117
+ audio_urls = st.session_state.audio_urls
118
+ if 'concatenated_audio_path' not in st.session_state:
119
+ st.session_state.concatenated_audio_path = concatenate_audio(audio_urls)
120
+ concatenated_audio_path = st.session_state.concatenated_audio_path
121
+
122
+ col1, col2 = st.columns(2)
123
+ with col1:
124
+ st.audio(concatenated_audio_path, format='audio/wav', start_time=0)
125
+ with st.expander("Phrases de la Dictée"):
126
+ for idx, url in enumerate(audio_urls, start=1):
127
+ st.markdown(f"**Phrase {idx}:**")
128
+ st.audio(url, format='audio/wav')
129
+
130
+ with col2:
131
+ dictee_user = st.text_input("Écrivez la dictée ici:", key="dictee_user")
132
+ if st.button("Correction", key="submit_correction"):
133
+ st.session_state.correction = correction_dictee(dictee, dictee_user)
134
+
135
+ if 'correction' in st.session_state:
136
+ st.markdown("Voici la correction :")
137
+ st.markdown(st.session_state.correction)
138
+
139
+ elif mode.startswith("Entrainer"):
140
+ st.text_area("Voici votre dictée :", dictee, height=300)