Skip to content

Add Eden AI as a TTS provider - #310

Open
MVS-source wants to merge 1 commit into
souzatharsis:mainfrom
MVS-source:add-edenai-tts-provider
Open

Add Eden AI as a TTS provider#310
MVS-source wants to merge 1 commit into
souzatharsis:mainfrom
MVS-source:add-edenai-tts-provider

Conversation

@MVS-source

Copy link
Copy Markdown

What this adds

This adds Eden AI as a text to speech backend, selectable with tts_model=edenai.

Eden AI is a gateway that routes to many TTS engines (OpenAI, Google, Amazon, Microsoft, ElevenLabs and more) behind a single API and one key. So one integration gives Podcastfy users a range of voices and engines without adding a dependency per vendor. The engine is chosen with the text_to_speech.edenai.model config value, and the list stays open as Eden AI adds engines. Infrastructure is in the EU and prompts and outputs are not stored by default, which some users care about.

Changes

  • New provider podcastfy/tts/providers/edenai.py, mirroring the existing provider structure
  • Registered edenai in TTSProviderFactory
  • Default edenai block in conversation_config.yaml (MALE and FEMALE voices work across every engine)
  • EDENAI_API_KEY loaded in Config
  • Docs updated: usage/config.md, usage/conversation_custom.md, the README and the versioned docs/source copies
  • Tests: mocked unit tests (voice mapping, settings, missing key) that run in CI, plus a skipped end to end test that matches the other paid providers

Testing

Verified end to end against the live Eden AI API with a real key: generated audio for the openai and google engines, with both MALE and FEMALE options and a specific voice id, and confirmed valid MP3 output. The mocked unit tests pass under pytest. No new dependency (uses requests, already required).

Notes

Voices of "MALE" or "FEMALE" work on every engine. You can also set a specific engine voice id (for example "alloy" for the openai engine, or "en-US-Standard-A" for the google engine).

Eden AI is a gateway that exposes many text to speech engines (OpenAI,
Google, Amazon, Microsoft, ElevenLabs and more) behind one API and one
key. This adds it as a new TTS backend, selected with tts_model=edenai.

- New provider podcastfy/tts/providers/edenai.py
- Registered in the TTS factory
- Default edenai block in conversation_config.yaml
- EDENAI_API_KEY loaded in Config
- Docs updated (config and conversation_custom, plus the versioned docs)
- Tests: mocked unit tests plus a skipped end to end test, matching the
  other paid providers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant