stephane09/Diarization
0
1import { DiarizationEntry } from '../types';2 3/**4 * Cette fonction envoie le fichier audio et la clé API de l'utilisateur au backend.5 * @param file Le fichier MP3 à analyser.6 * @param apiKey La clé API Gemini fournie par l'utilisateur.7 * @returns Une promesse qui se résout avec le résultat de la diarisation.8 */9export async function processAudioFile(file: File, apiKey: string): Promise<DiarizationEntry[]> {10 const formData = new FormData();11 formData.append('file', file);12 13 try {14 const response = await fetch('/api/diarize', {15 method: 'POST',16 headers: {17 // Transmet la clé API de manière sécurisée dans un en-tête18 'X-API-KEY': apiKey,19 },20 body: formData,21 });22 23 if (!response.ok) {24 const errorData = await response.json();25 throw new Error(`Erreur du serveur (${response.status}): ${errorData.detail || 'Erreur inconnue'}`);26 }27 28 const result = await response.json();29 return result as DiarizationEntry[];30 31 } catch (error) {32 console.error("Erreur lors de l'appel au backend pour la diarisation:", error);33 if (error instanceof Error) {34 throw new Error(`Échec du traitement du fichier : ${error.message}`);35 }36 throw new Error("Une erreur inconnue est survenue lors du traitement du fichier.");37 }38}39 