Skip to content

feat: add 60db TTS provider - #309

Open
60db wants to merge 1 commit into
souzatharsis:mainfrom
60db-ai:main
Open

feat: add 60db TTS provider#309
60db wants to merge 1 commit into
souzatharsis:mainfrom
60db-ai:main

Conversation

@60db

@60db 60db commented Jun 8, 2026

Copy link
Copy Markdown

Adds SixtyDbTTS provider that calls POST https://api.60db.ai/tts-synthesize, decoding the base64-wrapped JSON audio response into raw bytes so the existing pydub merge pipeline treats it the same as ElevenLabs/OpenAI output.

Changes:

  • podcastfy/tts/providers/sixtydb.py: new provider, mirrors ElevenLabsTTS shape; supports voice_id (UUID) or voice (name) via heuristic; 5000-char guard per 60db API limit; Bearer auth.
  • podcastfy/tts/factory.py: register 'sixtydb' -> SixtyDbTTS.
  • podcastfy/utils/config.py: SIXTYDB_API_KEY env-var loading + whitelist
    • missing-config warning.
  • podcastfy/conversation_config.yaml: sixtydb section with documented default voices (Zara, Simmi) and default model 60db-quality-v01.

Usage:
export SIXTYDB_API_KEY=... TextToSpeech(model='sixtydb').convert_to_speech(transcript, 'out.mp3')

Adds SixtyDbTTS provider that calls POST https://api.60db.ai/tts-synthesize,
decoding the base64-wrapped JSON audio response into raw bytes so the
existing pydub merge pipeline treats it the same as ElevenLabs/OpenAI output.

Changes:
- podcastfy/tts/providers/sixtydb.py: new provider, mirrors ElevenLabsTTS
  shape; supports voice_id (UUID) or voice (name) via heuristic; 5000-char
  guard per 60db API limit; Bearer auth.
- podcastfy/tts/factory.py: register 'sixtydb' -> SixtyDbTTS.
- podcastfy/utils/config.py: SIXTYDB_API_KEY env-var loading + whitelist
  + missing-config warning.
- podcastfy/conversation_config.yaml: sixtydb section with documented
  default voices (Zara, Simmi) and default model 60db-quality-v01.

Usage:
  export SIXTYDB_API_KEY=...
  TextToSpeech(model='sixtydb').convert_to_speech(transcript, 'out.mp3')
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.

2 participants