Open WebUI TTS – How do I remove or configure a custom voice?

Hi everyone,

I’m running Manjaro (kernel 6.12) with an AMD Ryzen 7 9800X3D and an AMD Radeon RX 9070 XT (gfx1201). I have installed Open WebUI (latest version from Docker) and it’s working fine with Ollama.

However, in the Admin Panel → Audio settings, the “Text-to-Speech Engine” dropdown only shows “Predefinito” and “Kokoro (Browser)”. I previously tried to install Kokoro and Piper as external TTS services, but they caused a lot of issues (database corruption, container crashes). I have since removed those services and restored the database to defaults, but “Kokoro (Browser)” still appears in the dropdown.

I want to either:

  1. Remove “Kokoro (Browser)” from the dropdown entirely, so only “Predefinito” remains, OR
  2. Properly configure a working TTS engine (like Piper) with an Italian female voice.

I have tried following various guides, but they all seem to require a different setup or cause more problems. Could someone please guide me through the correct steps to achieve this? My goal is to have a working audio output in Open WebUI with a natural Italian female voice (or at least a clean default setup without the unused Kokoro option).

Thank you in advance!


Mod edit:- Shortened title for brevity. Remedied. No charge.

Welcome to the forum! :waving_hand:

Since this doesn’t really seem to be Manjaro related since you’re running third-party software in a Docker container, I suggest seeking help from upstream. I see that Open WebUI has documentation and their own community, I would start there.

What guides? What did you do? What didn’t work?

No matter where you post, others will need more information to help you.

As far as posting here on the Manjaro forum, please see:

Thank you for the reply. You are right, the first post was too generic. Here are all the technical details I have already dealt with that led me to this situation:

System and Configuration:

Manjaro (kernel 6.12), AMD Ryzen 7 9800X3D, AMD Radeon RX 9070 XT.

Open WebUI (latest version from Docker), connected to local Ollama.

What I have already tried:

I tried to install Kokoro Web via Docker, but it did not expose a compatible API. I removed it.

I tried to install Piper locally and started the server on port 3050. I then recreated the Open WebUI container with the correct environment variables.

During these attempts, I modified the container database, causing a JSON error and a migration error. I restored the database and recreated the container with a clean configuration, and now the system is stable.

Current situation:

In the Text to Speech Engine menu, I only see Predefinito and Kokoro Browser.

The database has been cleaned, but Kokoro Browser still appears in the menu, despite no Kokoro service being active.

Goal:

Remove the Kokoro Browser option from the menu, OR

Correctly configure a TTS engine like Piper with an Italian female voice, without crashing the container.

Specific question:
How can I remove Kokoro Browser if it is not in the database? Is it hardcoded in the frontend? And alternatively, what is the correct procedure to connect a local TTS server to Open WebUI, step by step, without altering the database in an unsafe way?

Please provide a verified path, because every guide I have found so far creates more problems than it solves.

I haven’t used OpenWebUI for quite a while. Regarding TTS or “Read aloud” please notice OpenWebUI has two different options. The first option has nothing to do with OpenWebUI, and I think this is the one called “Predefinito” in Italian. This option just means that the web browser (whichever you use to display OpenWebUI which is a web app) uses the underlying system (Linux in your case) to read the text aloud, that is, the output from the LLM shown in the response box in the web page and there should be a little icon shown to read aloud.

Just shortly, the other option is to use an external web/cloud service. This way the text will be sent via a web api to an external server and transfered back as audio stream. This is specific to OpenWebUI. Kokoro is such a service. I can’t help with this second option. If you would like to configure such a service within OpenWebUI @Yochanan already suggested to ask on the OpenWebUI forum.

Now back to Linux. To setup TTS you first need to install the speech-dispatcher package from the repository using the package manager (add/remove software). This is a precondition. Then, the simplest way to get Piper working locally is to use Pied, which is available as flatpak. I gave already the instructions in a different thread and simply forward you to there, cf.

i used Kokoro together with open webui.
i cloned the github repository from kokoro-fastapi to my local drive and used the install guide
from the README.md section ‘Direct Run (via uv)’

Hi @Fenik67

You have asked many questions, and yet you seem to have missed/ignored the links previously given to you.

The official Open WebUI documentation, together with their community will likely produce more specific results.

As previously indicated, your issue does not appear to be Manjaro related – neither Piper TTS nor the Kokoro browser are provided via the official Manjaro repositories.

Please direct your queries to the resources mentioned.


A few quick forum tips for future reference: :point_down:


[Mini-HowTo] Provide System Information

Basic details provided by *-fetch type apps might give enough information for someone wishing to buy a computer, however, for Support purposes it’s best to ask your system directly.

Output of the inxi command will generate more useful and detailed information for those who may wish to help:


Suggested inxi command (use either):

inxi -zv8 (short-form)
inxi --filter --verbosity=8 (long-form)

Command output should be presented as pre-formatted text in accordance with forum guidelines. :eyes:


Running inxi within a chroot environment

  • Add --color=0 to the long-form command, or…
  • Change the short-form command to inxi -zv8c0

Your privacy is respected


[Mini-HowTo] Present code or command output

Note: Grave accent (or, backtick) characters are used. :eyes:

For inline code or to show a single command:

  • please follow this simple example: code here.

For multi-line command output:

  • place text beween two rows of three (```) backtick characters to form a scrollable text box, or …
  • use the </> button in the Compose window to achieve the same result.

The empty row between these rows of backtick characters is where to paste any multi-line command output (such as inxi).

An example of a pre-formatted text enclosure:

What is a Quark?

A. In Physics, an elementary particle and fundamental constituent of matter. 
B. A character from the Star Trek: "Deep Space Nine" television series.
C. A soft, creamy, usually unsalted cheese traditional to central Europe.