[PR #22606] [CLOSED] feat: add CAMB AI as TTS engine #42406

Closed
opened 2026-04-25 14:18:50 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/22606
Author: @neilruaro-camb
Created: 3/12/2026
Status: Closed

Base: devHead: feat/camb-ai-tts


📝 Commits (1)

  • 1216bd4 feat: add CAMB AI as TTS engine

📊 Changes

4 files changed (+268 additions, -0 deletions)

View changed files

📝 backend/open_webui/config.py (+15 -0)
📝 backend/open_webui/main.py (+5 -0)
📝 backend/open_webui/routers/audio.py (+164 -0)
📝 src/lib/components/admin/Settings/Audio.svelte (+84 -0)

📄 Description

Pull Request Checklist

  • Target branch: Verify that the pull request targets the dev branch.
  • Description: Provided below.
  • Changelog: Included below.
  • Documentation: Will add docs for CAMB AI TTS configuration.
  • Dependencies: No new dependencies added.
  • Testing: Manually tested TTS streaming, translated TTS, voice listing, and model selection with CAMB AI API.
  • Agentic AI Code: This PR was authored and tested by a human.
  • Code review: Self-reviewed.
  • Design & Architecture: Follows existing TTS provider patterns in the codebase.
  • Git Hygiene: Single atomic commit rebased on dev.
  • Title Prefix: feat:

Changelog Entry

Description

Add CAMB AI as a new text-to-speech provider in Admin Settings > Audio. Supports standard streaming TTS via /tts-stream and translated TTS via /translated-tts with configurable target language.

Added

  • CAMB AI TTS engine option in Admin Settings > Audio
  • Support for CAMB AI models: mars-flash, mars-pro, mars-instruct
  • Voice listing and model selection for CAMB AI
  • Configurable target language for translated TTS
  • Shared API key configuration for CAMB AI
  • Config variables in config.py and main.py for CAMB AI (API base URL, API key, target language)
  • TTS handler, voice/model listing, config endpoints, and async poll helper in routers/audio.py
  • CAMB AI option in TTS dropdown with API key input, target language field, voice/model selectors in Audio.svelte

Changed

  • Dockerfile — Enable NODE_OPTIONS for build memory

Deprecated

  • N/A

Removed

  • N/A

Fixed

  • N/A

Security

  • N/A

Breaking Changes

  • N/A

Additional Information

  • CAMB AI provides multilingual TTS with translation capabilities
  • The implementation follows the same patterns used by existing TTS providers (OpenAI, ElevenLabs, etc.)

Screenshots or Videos

  • TTS configuration UI with CAMB AI selected, voice/model dropdowns, and target language field tested manually.

Contributor License Agreement


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/open-webui/open-webui/pull/22606 **Author:** [@neilruaro-camb](https://github.com/neilruaro-camb) **Created:** 3/12/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `feat/camb-ai-tts` --- ### 📝 Commits (1) - [`1216bd4`](https://github.com/open-webui/open-webui/commit/1216bd447b7529bde646d51d48a5fe993ca91762) feat: add CAMB AI as TTS engine ### 📊 Changes **4 files changed** (+268 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `backend/open_webui/config.py` (+15 -0) 📝 `backend/open_webui/main.py` (+5 -0) 📝 `backend/open_webui/routers/audio.py` (+164 -0) 📝 `src/lib/components/admin/Settings/Audio.svelte` (+84 -0) </details> ### 📄 Description <!-- ⚠️ CRITICAL CHECKS FOR CONTRIBUTORS (READ, DON'T DELETE) ⚠️ 1. Target the `dev` branch. PRs targeting `main` will be automatically closed. 2. Do NOT delete the CLA section at the bottom. It is required for the bot to accept your PR. --> # Pull Request Checklist - [x] **Target branch:** Verify that the pull request targets the `dev` branch. - [x] **Description:** Provided below. - [x] **Changelog:** Included below. - [ ] **Documentation:** Will add docs for CAMB AI TTS configuration. - [x] **Dependencies:** No new dependencies added. - [x] **Testing:** Manually tested TTS streaming, translated TTS, voice listing, and model selection with CAMB AI API. - [x] **Agentic AI Code:** This PR was authored and tested by a human. - [x] **Code review:** Self-reviewed. - [x] **Design & Architecture:** Follows existing TTS provider patterns in the codebase. - [x] **Git Hygiene:** Single atomic commit rebased on `dev`. - [x] **Title Prefix:** `feat:` # Changelog Entry ### Description Add CAMB AI as a new text-to-speech provider in Admin Settings > Audio. Supports standard streaming TTS via `/tts-stream` and translated TTS via `/translated-tts` with configurable target language. ### Added - CAMB AI TTS engine option in Admin Settings > Audio - Support for CAMB AI models: mars-flash, mars-pro, mars-instruct - Voice listing and model selection for CAMB AI - Configurable target language for translated TTS - Shared API key configuration for CAMB AI - Config variables in `config.py` and `main.py` for CAMB AI (API base URL, API key, target language) - TTS handler, voice/model listing, config endpoints, and async poll helper in `routers/audio.py` - CAMB AI option in TTS dropdown with API key input, target language field, voice/model selectors in `Audio.svelte` ### Changed - `Dockerfile` — Enable `NODE_OPTIONS` for build memory ### Deprecated - N/A ### Removed - N/A ### Fixed - N/A ### Security - N/A ### Breaking Changes - N/A --- ### Additional Information - CAMB AI provides multilingual TTS with translation capabilities - The implementation follows the same patterns used by existing TTS providers (OpenAI, ElevenLabs, etc.) ### Screenshots or Videos - TTS configuration UI with CAMB AI selected, voice/model dropdowns, and target language field tested manually. ### Contributor License Agreement - [x] By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-25 14:18:50 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#42406