CoolFace
Apppublic

stephane09/Diarization

sourceHugging Faceupdated 11mo agoView on Hugging Face
0likes
geminiService.ts39 linesDownload Raw Back to services
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