rick commited on
Commit
606dc5d
·
unverified ·
1 Parent(s): c151267

update demorrha

Browse files
Files changed (1) hide show
  1. app.py +38 -13
app.py CHANGED
@@ -108,7 +108,7 @@ def text_to_speech(text):
108
  return audio_bytes
109
 
110
  # Fonction pour traiter les messages de l'utilisateur et générer une réponse
111
- def process_message(message, operation_prompt="", is_audio_input=False):
112
  payload_content = f'{operation_prompt} :\n\"\"\"\n{message}\n\"\"\"'
113
 
114
  st.session_state.messages.append({"role": "user", "content": payload_content})
@@ -130,10 +130,11 @@ def process_message(message, operation_prompt="", is_audio_input=False):
130
 
131
  st.session_state.messages.append({"role": "assistant", "content": full_response})
132
 
133
- if is_audio_input:
134
  tts_audio = text_to_speech(full_response)
135
  st.audio(tts_audio, format="audio/mp3", autoplay=True)
136
 
 
137
  # Classe pour stocker les prompts système globaux
138
  class GlobalSystemPrompts:
139
  # Méthode pour récupérer le prompt système pour la fonctionnalité Linguascribe
@@ -193,6 +194,12 @@ def main():
193
  if "target_language" not in st.session_state:
194
  st.session_state.target_language = "en"
195
 
 
 
 
 
 
 
196
  def init_process_mode():
197
  # Configuration du mode de traduction si nécessaire
198
  if "translation" == st.session_state["process_mode"]:
@@ -225,7 +232,7 @@ def main():
225
  if None == st.session_state.language_detected:
226
  st.session_state.language_detected = language_detection(input_text=user_input, temperature=0.01)
227
  init_process_mode()
228
- process_message(user_input, operation_prompt=f"{OP_PROMPT}")
229
 
230
  # Traitement de l'entrée audio de l'utilisateur
231
  if len(audio) > 0:
@@ -238,7 +245,7 @@ def main():
238
  init_process_mode()
239
  st.write(f"Langue détectée : {st.session_state.language_detected}")
240
  st.write(f"Transcription : {transcription}")
241
- process_message(transcription, operation_prompt=f"{OP_PROMPT}", is_audio_input=True)
242
 
243
  # Configuration de la barre latérale
244
  with st.sidebar:
@@ -254,15 +261,33 @@ def main():
254
  def on_language_change():
255
  st.session_state.target_language = convert_language_name_to_iso6391(st.session_state.language_selector)
256
 
257
- # Sélection de la langue de destination
258
- st.selectbox(
259
- label="Choisissez la langue de destination",
260
- options=tuple(SUPPORTED_LANGUAGES),
261
- placeholder="Sélectionnez une langue",
262
- key="language_selector",
263
- on_change=on_language_change,
264
- index=SUPPORTED_LANGUAGES.index("English")
265
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
266
 
267
  # Point d'entrée de l'application
268
  if __name__ == "__main__":
 
108
  return audio_bytes
109
 
110
  # Fonction pour traiter les messages de l'utilisateur et générer une réponse
111
+ def process_message(message, operation_prompt="", tts_enabled=False):
112
  payload_content = f'{operation_prompt} :\n\"\"\"\n{message}\n\"\"\"'
113
 
114
  st.session_state.messages.append({"role": "user", "content": payload_content})
 
130
 
131
  st.session_state.messages.append({"role": "assistant", "content": full_response})
132
 
133
+ if tts_enabled:
134
  tts_audio = text_to_speech(full_response)
135
  st.audio(tts_audio, format="audio/mp3", autoplay=True)
136
 
137
+
138
  # Classe pour stocker les prompts système globaux
139
  class GlobalSystemPrompts:
140
  # Méthode pour récupérer le prompt système pour la fonctionnalité Linguascribe
 
194
  if "target_language" not in st.session_state:
195
  st.session_state.target_language = "en"
196
 
197
+ if "enable_tts_for_input_from_text_field" not in st.session_state:
198
+ st.session_state["enable_tts_for_input_from_text_field"] = True
199
+
200
+ if "enable_tts_for_input_from_audio_record" not in st.session_state:
201
+ st.session_state["enable_tts_for_input_from_audio_record"] = True
202
+
203
  def init_process_mode():
204
  # Configuration du mode de traduction si nécessaire
205
  if "translation" == st.session_state["process_mode"]:
 
232
  if None == st.session_state.language_detected:
233
  st.session_state.language_detected = language_detection(input_text=user_input, temperature=0.01)
234
  init_process_mode()
235
+ process_message(user_input, operation_prompt=f"{OP_PROMPT}", tts_enabled=st.session_state.enable_tts_for_input_from_text_field)
236
 
237
  # Traitement de l'entrée audio de l'utilisateur
238
  if len(audio) > 0:
 
245
  init_process_mode()
246
  st.write(f"Langue détectée : {st.session_state.language_detected}")
247
  st.write(f"Transcription : {transcription}")
248
+ process_message(transcription, operation_prompt=f"{OP_PROMPT}", tts_enabled=st.session_state.enable_tts_for_input_from_audio_record)
249
 
250
  # Configuration de la barre latérale
251
  with st.sidebar:
 
261
  def on_language_change():
262
  st.session_state.target_language = convert_language_name_to_iso6391(st.session_state.language_selector)
263
 
264
+ with st.container(border=True):
265
+ # Conteneur pour la sélection de la langue
266
+ st.subheader("Sélection de la langue")
267
+
268
+ # Sélection de la langue de destination
269
+ st.selectbox(
270
+ label="Choisissez la langue de destination",
271
+ options=tuple(SUPPORTED_LANGUAGES),
272
+ placeholder="Sélectionnez une langue",
273
+ key="language_selector",
274
+ on_change=on_language_change,
275
+ index=SUPPORTED_LANGUAGES.index("English")
276
+ )
277
+
278
+ with st.container(border=True):
279
+ st.subheader("Paramètres TTS")
280
+ st.checkbox(
281
+ "Activer TTS pour les entrées textuelles",
282
+ key="enable_tts_for_input_from_text_field",
283
+ value=st.session_state.get("enable_tts_for_input_from_text_field", True)
284
+ )
285
+ st.checkbox(
286
+ "Activer TTS pour les entrées audio",
287
+ key="enable_tts_for_input_from_audio_record",
288
+ value=st.session_state.get("enable_tts_for_input_from_audio_record", True)
289
+ )
290
+
291
 
292
  # Point d'entrée de l'application
293
  if __name__ == "__main__":