Skip to content

feat: add Typecast TTS provider#303

Open
jaebong-human wants to merge 1 commit into
souzatharsis:mainfrom
jaebong-human:feat/typecast-tts-provider
Open

feat: add Typecast TTS provider#303
jaebong-human wants to merge 1 commit into
souzatharsis:mainfrom
jaebong-human:feat/typecast-tts-provider

Conversation

@jaebong-human

Copy link
Copy Markdown

Summary

  • Add Typecast as a new TTS provider using the typecast-python SDK
  • Follows the exact same pattern as the existing ElevenLabs integration
  • Supports 37 languages and multiple AI voices

Changes

  • podcastfy/tts/providers/typecast.py — new TypecastTTS provider class
  • podcastfy/tts/factory.py — register 'typecast' in TTSProviderFactory
  • podcastfy/utils/config.py — add TYPECAST_API_KEY env var support
  • podcastfy/conversation_config.yaml — add typecast default voices/model config
  • podcastfy/client.py — update CLI help text to include typecast
  • podcastfy/api/fast_app.py — support typecast_key in REST API endpoint

Usage

# Set TYPECAST_API_KEY in .env
tts = TextToSpeech(model="typecast")
tts.convert_to_speech("<Person1>...</Person1><Person2>...</Person2>", "output.mp3")
podcastfy --url "https://example.com" --tts-model typecast

Test plan

  • Set TYPECAST_API_KEY in .env
  • Run poetry run python -c "from podcastfy.text_to_speech import TextToSpeech; tts = TextToSpeech(model='typecast'); tts.convert_to_speech('<Person1>Hello.</Person1><Person2>Hi!</Person2>', 'out.mp3')"
  • Verify out.mp3 is generated successfully

🤖 Generated with Claude Code

Add Typecast as a new TTS provider using the typecast-python SDK.
Follows the same pattern as ElevenLabs integration.

- Add TypecastTTS provider class (tts/providers/typecast.py)
- Register 'typecast' in TTSProviderFactory
- Add TYPECAST_API_KEY to config
- Add typecast voices/model defaults to conversation_config.yaml
- Update CLI help text to include typecast
- Support typecast_key in REST API endpoint

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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