0x07CB commited on
Commit
23bc671
·
unverified ·
1 Parent(s): 68acb68

refactor: Amélioration de la robustesse de la conversion texte-parole avec gestion des erreurs détaillée

Browse files
Files changed (1) hide show
  1. core/text_to_speech.py +32 -7
core/text_to_speech.py CHANGED
@@ -116,22 +116,47 @@ class openai_tts(object):
116
 
117
 
118
  def process_tts_message(text_response: str) -> Tuple[Optional[bytes], Optional[float]]:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  try:
120
- tts_output_ = openai_tts(
121
  tts_voice=st.session_state.tts_voice,
122
  tts_model="tts-1",
123
  response_format="mp3",
124
  speed=1.0
125
- ).text_to_speech(text_response)
126
-
127
  return tts_output_["data_bytes"], tts_output_["audio_duration"]
 
 
 
 
 
 
 
 
 
 
 
128
  except Exception as e:
 
129
  st.error(f"Une erreur s'est produite lors de la conversion texte-parole : {e}")
130
  return None, None
131
-
132
- """
133
  if __name__ == "__main__":
134
 
135
  openai_tts().text_to_speech("Hello, I am an AI assistant. How can I help you?")
136
-
137
- """
 
116
 
117
 
118
  def process_tts_message(text_response: str) -> Tuple[Optional[bytes], Optional[float]]:
119
+ """
120
+ Convertit un texte en parole en utilisant l'API OpenAI TTS.
121
+
122
+ Args:
123
+ text_response (str): Le texte à convertir en parole.
124
+
125
+ Returns:
126
+ Tuple[Optional[bytes], Optional[float]]: Un tuple contenant les données audio encodées en base64
127
+ et la durée de l'audio, ou (None, None) en cas d'erreur.
128
+ """
129
+ if not text_response or not isinstance(text_response, str):
130
+ st.error("Erreur : Le texte à convertir est invalide ou vide")
131
+ return None, None
132
+
133
  try:
134
+ tts = openai_tts(
135
  tts_voice=st.session_state.tts_voice,
136
  tts_model="tts-1",
137
  response_format="mp3",
138
  speed=1.0
139
+ )
140
+ tts_output_ = tts.text_to_speech(text_response)
141
  return tts_output_["data_bytes"], tts_output_["audio_duration"]
142
+
143
+ except ValueError as ve:
144
+ # Erreurs de validation (voix invalide, format non supporté, etc.)
145
+ st.error(f"Erreur de configuration TTS : {ve}")
146
+ return None, None
147
+
148
+ except (KeyError, AttributeError) as ke:
149
+ # Erreurs liées aux variables de session manquantes
150
+ st.error("Erreur : Configuration TTS incomplète ou invalide")
151
+ return None, None
152
+
153
  except Exception as e:
154
+ # Autres erreurs (réseau, API, etc.)
155
  st.error(f"Une erreur s'est produite lors de la conversion texte-parole : {e}")
156
  return None, None
157
+
158
+
159
  if __name__ == "__main__":
160
 
161
  openai_tts().text_to_speech("Hello, I am an AI assistant. How can I help you?")
162
+