mirror of
https://github.com/open-webui/open-webui.git
synced 2026-06-05 00:10:27 -05:00
[GH-ISSUE #17316] issue: Text-to-Speech broken after latest update when using local TTS provider via OpenAI engine #105233
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 @robertbeckey on GitHub (Sep 9, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/17316
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.27
Ollama Version (if applicable)
No response
Operating System
Windows 11
Browser (if applicable)
Brave
Confirmation
README.md.Expected Behavior
In previous versions, text-to-speech generated correctly using the following options:
Text-to-Speech Engine: OpenAI
API base URL: http://host.docker.internal:8880/v1
API key: not-needed
TTS Voice: af_heart
TTS Model: kokoro
Response splitting: Punctuation
This would connect up to a kokoro-fastapi Docker container for local TTS and worked great.
Actual Behavior
Now, the Read Aloud button produces the following pop-up error many times in Open WebUI:
External: 404, message='Not Found', url='http://host.docker.internal:8880/audio/speech'
In the kokoro-fastapi container logs, the following error is posted:
"POST /audio/speech HTTP/1.1" 404 Not Found
Steps to Reproduce
Already described
Logs & Screenshots
Already described
Additional Information
No response
@98h398hrpohpoai commented on GitHub (Sep 9, 2025):
Same. PWA shows the api no longer passing the /v1 endpoint, but rather /audio/speech (without v1)
Edit: Here's the reference for it: https://github.com/open-webui/open-webui/pull/17061#issuecomment-3249144572
@98h398hrpohpoai commented on GitHub (Sep 9, 2025):
This quick fix worked for me (I'm dumb, don't assume this won't break other stuff--I have no idea):
Remove the leading slash from the relative path of the join statement outlined below.
to
In line 342 of open_webui/routers/audio.py
Also ensure the base tts URL ends with a slash (because we can't use a leading slash in the join function) e.g. https://tts.localhost/v1/
This is the LLM-provided guidance.
@tjbck commented on GitHub (Sep 10, 2025):
Reverted with
8339f59cdf