[GH-ISSUE #24021] feat: Populate voice dropdown when using MistralAI as Text-to-Speech Engine #35686

Closed
opened 2026-04-25 09:52:33 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @Lyhtande on GitHub (Apr 22, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/24021

Check Existing Issues

  • I have searched for all existing open AND closed issues and discussions for similar requests. I have found none that is comparable to my request.

Verify Feature Scope

  • I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions.

Problem Description

When configuring MistralAI as the TTS engine in Open WebUI, the voice selection dropdown is empty. Users must manually type the exact voice ID or slug (e.g. for en_paul_neutral, 0fda0527-d5e8-4996-bb0a-afd589ad3ce2) without any guidance. This is not user-friendly, especially for non-technical users who have no way of knowing which voices are available.

Desired Solution you'd like

When Mistral AI is selected as the TTS engine and a valid API key is configured, Open WebUI should automatically fetch the available voices from the Mistral API and populate the voice dropdown accordingly.
Voice dropdown shows all available voices (preset + custom) when Mistral AI is selected as TTS provider, using the configured API key to fetch them dynamically.

The endpoint is already available:

curl "https://api.mistral.ai/v1/audio/voices/$VOICE_ID" \
  -H "Authorization: Bearer $MISTRAL_API_KEY"

This returns a paginated list of voices including both preset voices (e.g. en_paul_neutral, gb_jane_neutral) and user-created cloned voices, each with a unique ID, name, language, and other metadata.

Alternatives Considered

No response

Additional Context

No response

Originally created by @Lyhtande on GitHub (Apr 22, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/24021 ### Check Existing Issues - [x] I have searched for all existing **open AND closed** issues and discussions for similar requests. I have found none that is comparable to my request. ### Verify Feature Scope - [x] I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions. ### Problem Description When configuring MistralAI as the TTS engine in Open WebUI, the voice selection dropdown is empty. Users must manually type the exact voice ID or slug (e.g. for `en_paul_neutral`, `0fda0527-d5e8-4996-bb0a-afd589ad3ce2`) without any guidance. This is not user-friendly, especially for non-technical users who have no way of knowing which voices are available. ### Desired Solution you'd like When Mistral AI is selected as the TTS engine and a valid API key is configured, Open WebUI should automatically fetch the available voices from the Mistral API and populate the voice dropdown accordingly. Voice dropdown shows all available voices (preset + custom) when Mistral AI is selected as TTS provider, using the configured API key to fetch them dynamically. The endpoint is already available: ``` curl "https://api.mistral.ai/v1/audio/voices/$VOICE_ID" \ -H "Authorization: Bearer $MISTRAL_API_KEY" ``` This returns a paginated list of voices including both preset voices (e.g. `en_paul_neutral`, `gb_jane_neutral`) and user-created cloned voices, each with a unique ID, name, language, and other metadata. ### Alternatives Considered _No response_ ### Additional Context _No response_
Author
Owner

@troed commented on GitHub (Apr 23, 2026):

It was my understanding that this should already work, and that it's a bug that it currently doesn't.

https://docs.openwebui.com/features/chat-conversations/audio/text-to-speech/mistral-tts-integration

2026-04-23 16:19:16.850 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.0.6:0 - "POST /api/v1/audio/config/update HTTP/1.1" 200
2026-04-23 16:19:16.891 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.0.6:0 - "GET /api/config HTTP/1.1" 200
2026-04-23 16:19:17.015 | ERROR    | open_webui.routers.audio:get_available_voices:1440 - Error fetching Mistral voices: 'str' object has no attribute 'get'
2026-04-23 16:19:17.015 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.0.6:0 - "GET /api/v1/audio/voices HTTP/1.1" 200
2026-04-23 16:19:17.026 | INFO     | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.0.6:0 - "GET /api/v1/audio/models HTTP/1.1" 200
<!-- gh-comment-id:4306054821 --> @troed commented on GitHub (Apr 23, 2026): It was my understanding that this should already work, and that it's a bug that it currently doesn't. https://docs.openwebui.com/features/chat-conversations/audio/text-to-speech/mistral-tts-integration ``` 2026-04-23 16:19:16.850 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.0.6:0 - "POST /api/v1/audio/config/update HTTP/1.1" 200 2026-04-23 16:19:16.891 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.0.6:0 - "GET /api/config HTTP/1.1" 200 2026-04-23 16:19:17.015 | ERROR | open_webui.routers.audio:get_available_voices:1440 - Error fetching Mistral voices: 'str' object has no attribute 'get' 2026-04-23 16:19:17.015 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.0.6:0 - "GET /api/v1/audio/voices HTTP/1.1" 200 2026-04-23 16:19:17.026 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.0.6:0 - "GET /api/v1/audio/models HTTP/1.1" 200 ```
Author
Owner

@tjbck commented on GitHub (Apr 24, 2026):

Addressed in dev.

<!-- gh-comment-id:4311045817 --> @tjbck commented on GitHub (Apr 24, 2026): Addressed in dev.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#35686