Spaces:
Sleeping
Sleeping
| import { DiarizationEntry } from '../types'; | |
| /** | |
| * Cette fonction envoie le fichier audio et la clé API de l'utilisateur au backend. | |
| * @param file Le fichier MP3 à analyser. | |
| * @param apiKey La clé API Gemini fournie par l'utilisateur. | |
| * @returns Une promesse qui se résout avec le résultat de la diarisation. | |
| */ | |
| export async function processAudioFile(file: File, apiKey: string): Promise<DiarizationEntry[]> { | |
| const formData = new FormData(); | |
| formData.append('file', file); | |
| try { | |
| const response = await fetch('/api/diarize', { | |
| method: 'POST', | |
| headers: { | |
| // Transmet la clé API de manière sécurisée dans un en-tête | |
| 'X-API-KEY': apiKey, | |
| }, | |
| body: formData, | |
| }); | |
| if (!response.ok) { | |
| const errorData = await response.json(); | |
| throw new Error(`Erreur du serveur (${response.status}): ${errorData.detail || 'Erreur inconnue'}`); | |
| } | |
| const result = await response.json(); | |
| return result as DiarizationEntry[]; | |
| } catch (error) { | |
| console.error("Erreur lors de l'appel au backend pour la diarisation:", error); | |
| if (error instanceof Error) { | |
| throw new Error(`Échec du traitement du fichier : ${error.message}`); | |
| } | |
| throw new Error("Une erreur inconnue est survenue lors du traitement du fichier."); | |
| } | |
| } | |