import { api } from './api'; export async function transcribeWithWhisper(audioBlob, onStatusChange) { const formData = new FormData(); const fileName = `recording_${Date.now()}.webm`; const file = new File([audioBlob], fileName, { type: audioBlob.type }); formData.append('audio', file); const whisperMode = window.localStorage.getItem('whisperMode') || 'default'; formData.append('mode', whisperMode); try { // Start with transcribing state if (onStatusChange) { onStatusChange('transcribing'); } const response = await api.transcribe(formData); if (!response.ok) { const errorData = await response.json().catch(() => ({})); throw new Error( errorData.error || `Transcription error: ${response.status} ${response.statusText}` ); } const data = await response.json(); return data.text || ''; } catch (error) { if (error.name === 'TypeError' && error.message.includes('fetch')) { throw new Error('Cannot connect to server. Please ensure the backend is running.'); } throw error; } }