diff --git a/backend/open_webui/apps/audio/main.py b/backend/open_webui/apps/audio/main.py index 345e0390a..8f643ffd3 100644 --- a/backend/open_webui/apps/audio/main.py +++ b/backend/open_webui/apps/audio/main.py @@ -309,7 +309,7 @@ def transcribe( ): log.info(f"file.content_type: {file.content_type}") - if file.content_type not in ["audio/mpeg", "audio/wav"]: + if file.content_type not in ["audio/mpeg", "audio/wav", "audio/ogg"]: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail=ERROR_MESSAGES.FILE_NOT_SUPPORTED, diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index 79bd4531d..ea4400bbc 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -93,20 +93,6 @@ const uploadFileHandler = async (file) => { console.log(file); - // Check if the file is an audio file and transcribe/convert it to text file - if (['audio/mpeg', 'audio/wav'].includes(file['type'])) { - const res = await transcribeAudio(localStorage.token, file).catch((error) => { - toast.error(error); - return null; - }); - - if (res) { - console.log(res); - const blob = new Blob([res.text], { type: 'text/plain' }); - file = blobToFile(blob, `${file.name}.txt`); - } - } - const fileItem = { type: 'file', file: '', @@ -120,6 +106,23 @@ }; files = [...files, fileItem]; + // Check if the file is an audio file and transcribe/convert it to text file + if (['audio/mpeg', 'audio/wav', 'audio/ogg'].includes(file['type'])) { + const res = await transcribeAudio(localStorage.token, file).catch((error) => { + toast.error(error); + return null; + }); + + if (res) { + console.log(res); + const blob = new Blob([res.text], { type: 'text/plain' }); + file = blobToFile(blob, `${file.name}.txt`); + + fileItem.name = file.name; + fileItem.size = file.size; + } + } + try { const uploadedFile = await uploadFile(localStorage.token, file); diff --git a/src/lib/components/workspace/Documents.svelte b/src/lib/components/workspace/Documents.svelte index db101dd0a..f1e77bddd 100644 --- a/src/lib/components/workspace/Documents.svelte +++ b/src/lib/components/workspace/Documents.svelte @@ -55,7 +55,7 @@ const uploadDoc = async (file, tags?: object) => { console.log(file); // Check if the file is an audio file and transcribe/convert it to text file - if (['audio/mpeg', 'audio/wav'].includes(file['type'])) { + if (['audio/mpeg', 'audio/wav', 'audio/ogg'].includes(file['type'])) { const transcribeRes = await transcribeAudio(localStorage.token, file).catch((error) => { toast.error(error); return null;