Two-person dialogue podcast generator with natural conversations and emotions.
Use AI responsibly.
# 1. Install
pip install -r requirements.txt
# 2. Configure
cp config/.env.template config/.env
# Add your API keys
# 3. Run
python podcast_pipeline.py- ✅ Provider-specific emotion tags (auto-selected per provider)
- ✅ Reactions (
[laughs],[sighs],[gasps]) - ✅ Cartesia 5 base emotions + intensity, full ElevenLabs dynamics
- Cartesia - sonic-3 model, API emotion controls (
positivity:high,curiosity:medium, etc.) - ElevenLabs - Premium voices, interruptions & overlapping speech
- Provider config files (
providers/configs/*.yaml) - Template placeholders for easy 3rd provider addition
- Per-voice speed settings
tune_audio.py- Adjust speaker speeds post-generationtranslate_script.py- Translate to other languages
python podcast_pipeline.pyPrompts: Project name → Topic → Duration → Style → Language → Provider → Mode
Output:
projects/myprojectname/
├── scripts/myprojectname_DE_2025-12-06_14-30_CRTS_draft1.txt
├── audio/myprojectname_de_2025-12-06_CRTS_PRODUCTION.mp3
└── sources/myprojectname_sources.txt
myfirstpodcast/
├── config/
│ ├── .env # API keys (gitignored)
│ └── podcast_config.json # Voice IDs, speeds, styles
├── templates/ # Script templates (3 styles × 3 languages)
├── providers/
│ ├── configs/ # Provider-specific emotion configs
│ │ ├── cartesia.yaml
│ │ └── elevenlabs.yaml
│ ├── cartesia.py
│ └── elevenlabs.py
├── projects/ # Your podcasts (gitignored)
├── podcast_pipeline.py # Main generator
├── tune_audio.py # Speed adjustment
└── translate_script.py # Script translation
ANTHROPIC_API_KEY=sk-ant-api03-...
ELEVENLABS_API_KEY=sk_...
CARTESIA_API_KEY=...- 2 providers × 3 languages × 2 speakers = 12 voice IDs
- Optional: Set per-voice default speeds
| Tool | Purpose |
|---|---|
podcast_pipeline.py |
Generate podcasts |
tune_audio.py |
Adjust speaker speeds |
translate_script.py |
Translate scripts |
smart_update.py |
Safe updates with backups |
CC BY-NC-SA 4.0 - Attribution, NonCommercial, ShareAlike
Generate natural, engaging podcasts in minutes! 🎙️