mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-06 10:58:17 -05:00
[GH-ISSUE #21281] feat: Audio OpenAI-compatible config parity (auth modes + custom headers) for STT/TTS #34959
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @tariktalay on GitHub (Feb 9, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/21281
Check Existing Issues
Verify Feature Scope
Problem Description
Audio OpenAI-compatible connections (STT/TTS) currently need the same flexibility already expected in Open WebUI’s OpenAI integration layer.
My concrete use case is a self-hosted OpenAI-compatible vLLM endpoint behind auth/proxy controls.
For audio routes, I need parity for:
Related discussion:
https://github.com/open-webui/open-webui/discussions/20953
Desired Solution you'd like
Bring Audio OpenAI-compatible configuration to parity with existing OpenAI integration patterns:
TTS_OPENAI_API_CONFIGSTT_OPENAI_API_CONFIGAlternatives Considered
Additional Context
Implementation Note (Reliability / Resource Safety)
In the STT OpenAI transcription upload path, file handling is performed via a context manager:
Reason:
Validation
Whisper large-v3system_oauth2026-02-10 00:04:39.522 | DEBUG | python_multipart.multipart:callback:627 - Calling on_end with no data
2026-02-10 00:04:39.530 | INFO | open_webui.routers.files:upload_file_handler:225 - file.content_type: audio/mpeg True
2026-02-10 00:04:39.572 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 127.0.0.1:60033 - "POST /api/v1/files/?process=true HTTP/1.1" 200
2026-02-10 00:04:39.604 | INFO | open_webui.routers.audio:transcribe:1073 - transcribe: C:\Users\xxxx\Desktop\myprojects\mychat\backend\data\uploads/71661df1-a62d-46aa-a6be-79c933650210_ElevenLabs_2025-12-31T09_54_16_Mia - Clear, Steady and Warm_pvc_sp98_s50_sb75_se0_b_m2.mp3 {}
2026-02-10 00:04:39.637 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 127.0.0.1:60033 - "GET /api/v1/files/71661df1-a62d-46aa-a6be-79c933650210/process/status?stream=true HTTP/1.1" 200
Chunk paths: ['C:\Users\xxxx\Desktop\myprojects\mychat\backend\data\uploads/71661df1-a62d-46aa-a6be-79c933650210_ElevenLabs_2025-12-31T09_54_16_Mia - Clear, Steady and Warm_pvc_sp98_s50_sb75_se0_b_m2.mp3']
2026-02-10 00:04:40.695 | DEBUG | asyncio.proactor_events:init:633 - Using proactor: IocpProactor
2026-02-10 00:04:40.705 | DEBUG | open_webui.utils.oauth:get_oauth_token:982 - Token refresh needed for user f5c93653-d562-4c70-833f-xxxxx, provider oidc
2026-02-10 00:04:41.279 | DEBUG | open_webui.utils.oauth:_perform_token_refresh:1108 - Token refresh successful for provider oidc
2026-02-10 00:04:41.319 | INFO | open_webui.utils.oauth:_refresh_token:1020 - Successfully refreshed token for session bd787730-f089-4e22-8157-xxxxx
2026-02-10 00:04:41.358 | DEBUG | urllib3.connectionpool:_new_conn:1049 - Starting new HTTPS connection (1): mygateway:443
2026-02-10 00:04:51.651 | DEBUG | urllib3.connectionpool:_make_request:544 - https://mygateway:443 "POST /xxx/stt/v1/audio/transcriptions HTTP/1.1" 200 996