Spaces:
Paused
Paused
0x07CB
commited on
refactor: Amélioration de la robustesse de la conversion texte-parole avec gestion des erreurs détaillée
Browse files- 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 |
-
|
121 |
tts_voice=st.session_state.tts_voice,
|
122 |
tts_model="tts-1",
|
123 |
response_format="mp3",
|
124 |
speed=1.0
|
125 |
-
|
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 |
+
|
|