← Back to PRs

#7485: TTS: add Resemble AI provider support

by devshahofficial open 2026-02-02 21:50 View on GitHub →
gateway
## Summary - Add Resemble AI as a new TTS provider alongside ElevenLabs, OpenAI, and Edge TTS - Implement `resembleTTS()` function using Resemble's synthesis API - Add config options: `apiKey`, `voiceUuid`, `sampleRate`, `outputFormat` - Update gateway RPC handlers, CLI commands, and UI labels ## Test plan - [x] Verified TTS generation works with Resemble API - [x] Confirmed Resemble config section appears in Control UI - [x] Tested `/tts provider resemble` command 🤖 Generated with [Claude Code](https://claude.ai/code) <!-- greptile_comment --> <h2>Greptile Overview</h2> <h3>Greptile Summary</h3> Adds **Resemble AI** as a new TTS provider across config/schema, gateway RPC handlers, and runtime TTS execution. Key updates: - Extends `TtsProvider`/zod schemas to include `resemble` and adds config fields (`apiKey`, `voiceUuid`, `sampleRate`, `outputFormat`). - Adds a `resembleTTS()` fetch-based implementation and wires it into `textToSpeech()` provider selection. - Updates gateway `tts.status`, `tts.providers`, and provider validation to expose/configure Resemble. - Updates `/tts provider …` command output to show Resemble key status. Main concern is correctness of returned metadata for Resemble (reported `outputFormat`/file extension), plus a small UX inconsistency in `/tts help` provider listing. <h3>Confidence Score: 3/5</h3> - Mostly safe to merge, but there is a correctness issue in Resemble output metadata that can misreport formats to callers. - The PR is straightforward schema/plumbing plus a new provider implementation. However, the current `textToSpeech()` success response reports `outputFormat` as if the provider were ElevenLabs for any non-OpenAI provider, which will be wrong for Resemble and likely impacts UI/status consumers. No other high-confidence runtime breakers were found in the reviewed files. - src/tts/tts.ts (provider output/format handling) <!-- greptile_other_comments_section --> <sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub> <!-- /greptile_comment -->

Most Similar PRs