SaidwireDevelopers

Guide · Open WebUI

Saidwire speech-to-text in Open WebUI

Open WebUI sends microphone recordings and uploaded audio to a speech-to-text engine. Its OpenAI engine works with any server that offers the OpenAI transcription API, which includes Saidwire. Setup takes about two minutes and needs admin rights.

you need
Open WebUIan admin account. Labels below match Open WebUI 0.12.
Saidwire API keysk_live_... from saidwire.com/dev (120 free hours, no card)

1. Admin settings

  1. Click your profile icon at the bottom-left of the sidebar, then Admin Panel.
  2. Open the Settings tab, then Audio in the list on the left.
  3. In the Speech-to-Text section, set:
    fieldvalue
    Speech-to-Text EngineOpenAI
    API Base URLhttps://api.saidwire.com/v1 (end it at /v1, with no trailing slash)
    API Keyyour Saidwire key, sk_live_...
    Request FormatMultipart Upload
    STT Modelsaidwire-en
    Supported MIME Typesleave blank
  4. Click Save at the bottom of the page.

Leave the Text-to-Speech section as it is. Saidwire does speech-to-text only.

2. Each user's settings

Each user can override the engine for their own account. Check yours once:

  1. Click your profile icon, then Settings, then Audio.
  2. Under STT Settings, set Speech-to-Text Engine to Default. Web API uses the browser's own recognition and never reaches Saidwire.
  3. Set Language to en or leave it blank.
  4. Click Save.

3. Test it

Open a chat, click the microphone button in the message box, say a sentence, and stop the recording. The transcript appears in the message box. Voice mode (the call button) uses the same engine.

If you get an error instead, see Troubleshooting below.

Using environment variables instead

For Docker or Kubernetes deployments you can set the same values at start-up:

AUDIO_STT_ENGINE=openai
AUDIO_STT_OPENAI_API_BASE_URL=https://api.saidwire.com/v1
AUDIO_STT_OPENAI_API_KEY=sk_live_xxxxxxxx.yyyyyyyyyyyyyyyy
AUDIO_STT_OPENAI_API_REQUEST_FORMAT=multipart
AUDIO_STT_MODEL=saidwire-en
docker run -d -p 3000:8080 \
  -e AUDIO_STT_ENGINE=openai \
  -e AUDIO_STT_OPENAI_API_BASE_URL=https://api.saidwire.com/v1 \
  -e AUDIO_STT_OPENAI_API_KEY=$SAIDWIRE_API_KEY \
  -e AUDIO_STT_MODEL=saidwire-en \
  -v open-webui:/app/backend/data --name open-webui \
  ghcr.io/open-webui/open-webui:main

Open WebUI saves settings in its database. Once someone has clicked Save on the Audio page, the saved values win over the environment variables. If a change does not take effect, check Admin Panel → Settings → Audio.

Troubleshooting

you seefix
404 or Not FoundThe API Base URL must be exactly https://api.saidwire.com/v1. Open WebUI adds /audio/transcriptions itself.
External: Incorrect API key provided.The key is wrong, revoked or has a stray space. Paste it again.
External: ... language ...Saidwire transcribes English only. Set the user's Language to en or blank.
External: ... with a 429Too many recordings at once for your key (trial keys allow 4), or your free hours are used up. The message says which.
Nothing reaches SaidwireThe user's own Speech-to-Text Engine is set to Web API. Set it to Default.

Good to know

Stuck? Email support@saidwire.com with the x-request-id from the failed call.

OpenAI is a trademark of OpenAI. Open WebUI, n8n, LiteLLM, Dify, Flowise, Vercel and the AI SDK belong to their respective owners. Saidwire is not affiliated with OpenAI or with these projects.