[GH-ISSUE #22997] bug: Admin Audio Settings - STT/TTS engine dropdowns missing backend-supported options (v0.8.10) #35391

Closed
opened 2026-04-25 09:36:22 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @95256155o on GitHub (Mar 24, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/22997

Describe the bug
In Admin Panel → Settings → Audio, both STT and TTS engine dropdowns are missing most backend-supported options:

  • STT only shows: Default, Web API
  • TTS only shows: Default, Kokoro.js (Browser)

Backend router (audio.py) supports openai, azure, deepgram, mistral for STT and openai, azure, elevenlabs for TTS — none of these appear in the UI.

This is confirmed as a frontend-only issue: after manually writing audio.stt.engine=openai + API key directly into the config table in webui.db, OpenAI Whisper transcription works perfectly (backend logs show POST /api/v1/audio/transcriptions → 200). The dropdown still does not reflect the active engine.

Steps to reproduce

  1. docker run -d --name open-webui -p 4319:8080 -v open-webui-data:/app/backend/data ghcr.io/open-webui/open-webui:main
  2. Log in as admin
  3. Admin Panel → Settings → Audio
  4. Click STT Engine dropdown — only Default / Web API
  5. Click TTS Engine dropdown — only Default / Kokoro.js (Browser)

Expected behavior
Dropdowns should list all engines supported by the backend: OpenAI, Azure, Deepgram, Mistral (STT) and OpenAI, Azure, ElevenLabs (TTS).

Workaround
Directly insert config into webui.db:

# inside container
import sqlite3, json
conn = sqlite3.connect('/app/backend/data/webui.db')
row = conn.execute('SELECT data FROM config WHERE id=1').fetchone()
data = json.loads(row[0])
data['audio.stt.engine'] = 'openai'
data['audio.stt.openai.api_base_url'] = 'https://api.openai.com/v1'
data['audio.stt.openai.api_key'] = 'sk-...'
data['audio.stt.model'] = 'whisper-1'
conn.execute('UPDATE config SET data=? WHERE id=1', (json.dumps(data),))
conn.commit()

Then restart container. Backend works; UI still shows wrong engine name.

Environment

  • Open WebUI: v0.8.10
  • Image: ghcr.io/open-webui/open-webui:main
  • Image digest: sha256:b80a96e14bb15ea79aec96fbdad4aeab6b3ee7b61520d83b5dbc8c4f47d433a9
  • Host: Ubuntu (aarch64), Docker
  • Browser: Chrome (Windows)
Originally created by @95256155o on GitHub (Mar 24, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/22997 **Describe the bug** In Admin Panel → Settings → Audio, both STT and TTS engine dropdowns are missing most backend-supported options: - **STT** only shows: `Default`, `Web API` - **TTS** only shows: `Default`, `Kokoro.js (Browser)` Backend router (`audio.py`) supports `openai`, `azure`, `deepgram`, `mistral` for STT and `openai`, `azure`, `elevenlabs` for TTS — none of these appear in the UI. This is confirmed as a **frontend-only issue**: after manually writing `audio.stt.engine=openai` + API key directly into the `config` table in `webui.db`, OpenAI Whisper transcription works perfectly (backend logs show `POST /api/v1/audio/transcriptions` → 200). The dropdown still does not reflect the active engine. **Steps to reproduce** 1. `docker run -d --name open-webui -p 4319:8080 -v open-webui-data:/app/backend/data ghcr.io/open-webui/open-webui:main` 2. Log in as admin 3. Admin Panel → Settings → Audio 4. Click STT Engine dropdown — only Default / Web API 5. Click TTS Engine dropdown — only Default / Kokoro.js (Browser) **Expected behavior** Dropdowns should list all engines supported by the backend: OpenAI, Azure, Deepgram, Mistral (STT) and OpenAI, Azure, ElevenLabs (TTS). **Workaround** Directly insert config into `webui.db`: ```python # inside container import sqlite3, json conn = sqlite3.connect('/app/backend/data/webui.db') row = conn.execute('SELECT data FROM config WHERE id=1').fetchone() data = json.loads(row[0]) data['audio.stt.engine'] = 'openai' data['audio.stt.openai.api_base_url'] = 'https://api.openai.com/v1' data['audio.stt.openai.api_key'] = 'sk-...' data['audio.stt.model'] = 'whisper-1' conn.execute('UPDATE config SET data=? WHERE id=1', (json.dumps(data),)) conn.commit() ``` Then restart container. Backend works; UI still shows wrong engine name. **Environment** - Open WebUI: v0.8.10 - Image: `ghcr.io/open-webui/open-webui:main` - Image digest: `sha256:b80a96e14bb15ea79aec96fbdad4aeab6b3ee7b61520d83b5dbc8c4f47d433a9` - Host: Ubuntu (aarch64), Docker - Browser: Chrome (Windows)
Author
Owner

@95256155o commented on GitHub (Mar 24, 2026):

Closing to re-submit using the proper bug report template. Apologies for the noise.

<!-- gh-comment-id:4121241709 --> @95256155o commented on GitHub (Mar 24, 2026): Closing to re-submit using the proper bug report template. Apologies for the noise.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#35391