rick commited on
Commit
cbefa53
·
unverified ·
1 Parent(s): 75125dd

minors changes

Browse files
Files changed (2) hide show
  1. core/core.py +2 -1
  2. core/speech_to_text.py +44 -0
core/core.py CHANGED
@@ -107,4 +107,5 @@ def init_process_mode(
107
  dest_lang=f"{to_lang}"
108
  )
109
  return system_prompt, operation_prompt
110
- return "", ""
 
 
107
  dest_lang=f"{to_lang}"
108
  )
109
  return system_prompt, operation_prompt
110
+ return "", ""
111
+
core/speech_to_text.py CHANGED
@@ -114,6 +114,50 @@ def transcribe_audio(filepath: Union[str, IO], language: Optional[str] = None) -
114
  return ""
115
 
116
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
 
118
 
119
 
 
114
  return ""
115
 
116
 
117
+ # ############################################################
118
+
119
+ def translate_audio(filepath: Union[str, IO]) -> str:
120
+ """
121
+ Traduit un fichier audio temporaire en Anglais.
122
+
123
+ Args:
124
+ filepath Chemin vers le fichier audio temporaire à traduire.
125
+
126
+ Returns:
127
+ str: Le texte traduit.
128
+ """
129
+ translated_text = []
130
+ client = OpenAI(api_key=getenv("OPENAI_API_KEY"))
131
+ try:
132
+ with open(filepath if isinstance(filepath, str) else filepath.name, "rb") as f:
133
+ # filepath peut etre un chemin vers un fichier audio ou un objet IO
134
+ f.seek(0)
135
+ audio = AudioSegment.from_file(f)
136
+ duration_ms = len(audio)
137
+ segment_duration_ms = int(
138
+ (max_size_mb * 1024 * 1024 * 8) /
139
+ (audio.frame_rate * audio.sample_width * audio.channels)
140
+ )
141
+
142
+ for start in range(0, duration_ms, segment_duration_ms):
143
+ end = min(start + segment_duration_ms, duration_ms)
144
+ segment = audio[start:end]
145
+
146
+ buffer = BytesIO()
147
+ segment.export(buffer, format="mp3")
148
+ buffer.seek(0)
149
+
150
+ translation = client.audio.translations.create(
151
+ model="whisper-1",
152
+ file=audio_file
153
+ )
154
+ translated_text.append(translation)
155
+
156
+ return " ".join(translated_text)
157
+ except Exception as e:
158
+ print(f"Erreur lors de la traduction de l'audio : {e}")
159
+ return ""
160
+
161
 
162
 
163