mirror of
https://github.com/siteboon/claudecodeui.git
synced 2025-12-11 23:59:47 +00:00
37 lines
1.1 KiB
JavaScript
Executable File
37 lines
1.1 KiB
JavaScript
Executable File
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;
|
|
}
|
|
} |