|
| 1 | +# 🎙️ Ellipsis — One Click. Infinite Conversations. |
| 2 | + |
| 3 | +<div align="center"> |
| 4 | +<img width="513" alt="Screenshot 2025-05-28 at 1 47 50 PM" src="https://github.com/user-attachments/assets/4eae019c-0795-41e5-b693-3c7a91a86e6b" /> |
| 5 | +</div> |
| 6 | + |
| 7 | +<br></br> |
| 8 | +A next-gen podcast generation agent that brings human-like, high-quality audio content to life—on *any* topic, with just **one click**. |
| 9 | +Whether it’s **breaking news**, **deep-dive tech explainers**, **movie reviews**, or **post-match sports breakdowns**, ellipsis crafts intelligent podcast episodes that sound like they were created by seasoned hosts in a professional studio. |
| 10 | + |
| 11 | +--- |
| 12 | + |
| 13 | +## Introduction |
| 14 | + |
| 15 | +### 🚀 What Makes ellipsis Unique? |
| 16 | + |
| 17 | +- **🧠 Intelligent Multi-Speaker Dialogue** |
| 18 | + Automatically generates natural, engaging conversations with multiple distinct voices and personalities. |
| 19 | + |
| 20 | +- **📚 Covers *Everything*** |
| 21 | + From LLM architectures to lunar eclipses, ellipsis understands the depth and nuance of any topic. |
| 22 | + |
| 23 | +- **✅ Custom Evaluation Engine** |
| 24 | + Each episode is passed through rigorous evaluation pipelines to ensure: |
| 25 | + - Factual accuracy 🧾 |
| 26 | + - Legal and ethical soundness ⚖️ |
| 27 | + - High conversational quality 🎧 |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +## Feature Comparison |
| 32 | + |
| 33 | +| Feature | Ellipsis | NotebookLM | NoteGPT | |
| 34 | +|---------------------------------|----------------------------------------------------|----------------------------------------------|----------------------------------------------------| |
| 35 | +| 🎙️ Podcast Generation | ✅ fully automated | ✅ fully automated | ✅ fully automated | |
| 36 | +| 🧠 Multi-Speaker Support | ✅ Multiple distinct voices | ❌ Two-speaker conversations | ✅ Multiple distinct voices | |
| 37 | +| 📚 Topic Versatility | ✅ Covers news, tech, movies, sports, etc. | ⚠️ No web search capability yet | ⚠️ Limited to provided notebook context | |
| 38 | +| ✅ Factual & Legal Evaluation | ✅ Built-in evaluators for accuracy & legality | ⚠️ Not Clearly specified | ❌ No evaluation engine | |
| 39 | +| 🎧 Audio Output Quality | ✅ Human-like, podcast-ready audio | ✅ Human-like, podcast-ready audio | ❌ Conversations at this point sound more robotic | |
| 40 | +| 🛠️ Custom Input formats | ⚠️ Currently working on Documents | ✅ Supports Documents, Video URLs etc | ⚠️ Supports Documents but not other sources | |
| 41 | + |
| 42 | + |
| 43 | +## Example Usecases |
| 44 | + |
| 45 | +* **Movie Reviews** |
| 46 | + |
| 47 | + |
| 48 | +https://github.com/user-attachments/assets/824bab23-2aa9-4443-bc87-0ccb013f86fc |
| 49 | + |
| 50 | + |
| 51 | +* **Sports News** |
| 52 | + |
| 53 | + |
| 54 | +https://github.com/user-attachments/assets/c2880157-e577-4997-b108-3771b327e2be |
| 55 | + |
| 56 | + |
| 57 | + |
| 58 | +## Tech Stack |
| 59 | + |
| 60 | +* **Backend**: Python, Flask, Redis (pub/sub), llama.cpp, Orpheus TTS |
| 61 | +* **Frontend**: React, Vite, Tailwind CSS, Lucide Icons |
| 62 | +* **Integration**: Perplexity API, Podbean MCP, Server-Sent Events (SSE) |
| 63 | + |
| 64 | +## Prerequisites |
| 65 | + |
| 66 | +* Node.js v16+ and npm/yarn |
| 67 | +* Python 3.10+ and pip |
| 68 | +* Redis server running (default on `localhost:6380`) |
| 69 | + |
| 70 | +## Configuration |
| 71 | + |
| 72 | +* Copy this to `backend/.env` and set: |
| 73 | + |
| 74 | + ```ini |
| 75 | + REDIS_URL=redis://localhost:6379 |
| 76 | + PERPLEXITY_API_KEY=your_key_here |
| 77 | + PODBEAN_CLIENT_ID=... |
| 78 | + PODBEAN_CLIENT_SECRET=... |
| 79 | + ``` |
| 80 | + |
| 81 | +* Copy this to `frontend/.env` and set: |
| 82 | + |
| 83 | + ```ini |
| 84 | + # VCL: default set to localhost |
| 85 | + REACT_APP_API_URL=http://127.0.0.1:5000 |
| 86 | + ``` |
| 87 | + |
| 88 | +## Installation |
| 89 | + |
| 90 | +1. **Clone the repo** |
| 91 | + |
| 92 | + ```bash |
| 93 | + git clone https://github.com/dineshkannan010/Ellipsis.git |
| 94 | + cd Ellipsis |
| 95 | + ``` |
| 96 | + |
| 97 | +2. **Backend setup** |
| 98 | + |
| 99 | + ```bash |
| 100 | + cd backend |
| 101 | + python -m venv venv |
| 102 | + source venv/bin/activate # macOS/Linux |
| 103 | + venv\Scripts\activate # Windows |
| 104 | + pip install -r requirements.txt |
| 105 | + ``` |
| 106 | + Install native & extra-index packages |
| 107 | + Some packages aren’t available on PyPI and must be pulled from alternate indexes or GitHub: |
| 108 | + |
| 109 | + ```bash |
| 110 | + # llama.cpp (CPU wheel) |
| 111 | + pip install llama-cpp-python \ |
| 112 | + --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu |
| 113 | + |
| 114 | + # Orpheus TTS bindings |
| 115 | + pip install git+https://github.com/freddyaboulton/orpheus-cpp.git |
| 116 | + |
| 117 | + # HuggingFace XET backend |
| 118 | + pip install huggingface_hub[hf_xet] hf_xet |
| 119 | + |
| 120 | + ``` |
| 121 | + |
| 122 | +3. **Frontend setup** |
| 123 | + |
| 124 | + ```bash |
| 125 | + cd frontend |
| 126 | + npm install # or yarn install |
| 127 | + ``` |
| 128 | + |
| 129 | +## Usage |
| 130 | + |
| 131 | +### Content Generation |
| 132 | + |
| 133 | +* Launch backend: |
| 134 | + |
| 135 | + ```bash |
| 136 | + cd backend |
| 137 | + python app.py |
| 138 | + ``` |
| 139 | + |
| 140 | +* Launch Redis Server |
| 141 | + |
| 142 | + ```bash |
| 143 | + redis-server --port 6380 |
| 144 | + ``` |
| 145 | +* Launch frontend: |
| 146 | + |
| 147 | + ```bash |
| 148 | + cd frontend |
| 149 | + npm run dev # or yarn dev |
| 150 | + ``` |
| 151 | + |
| 152 | + * Launch Podbean Server |
| 153 | + |
| 154 | + ```bash |
| 155 | + cd backend/integrations/podbean_mcp |
| 156 | + pip install -e . |
| 157 | + python server.py |
| 158 | + |
| 159 | + ``` |
| 160 | + * Launch Podbean Client |
| 161 | + |
| 162 | + ```bash |
| 163 | + cd backend/integrations/podbean_mcp |
| 164 | + python client.py server.py |
| 165 | + |
| 166 | + ``` |
| 167 | + |
| 168 | +* Enter a topic in the homepage textbox and hit **Enter**. Switch to the `ContentGenerationView` to see live script & audio progress. |
| 169 | + |
| 170 | +### Streaming Updates (SSE) |
| 171 | + |
| 172 | +* The frontend subscribes to `/stream` via EventSource. |
| 173 | +* Backend publishes events of types `status`, `script`, and `audio`. |
| 174 | + |
| 175 | +### Trending Topics |
| 176 | + |
| 177 | +* Click **Trending** in the post box. |
| 178 | +* Fetches `/api/trending`, which queries Perplexity with a custom prompt. |
| 179 | + |
| 180 | +### Podbean Publishing |
| 181 | + |
| 182 | +* After audio is ready, enter a prompt like `Post this podcast to Podbean`. |
| 183 | +* The client detects `podbean` intent and calls `/api/podbean/publish` via Beacon or `fetch`. |
| 184 | + |
| 185 | +## 🙏 Acknowledgments |
| 186 | + |
| 187 | +Huge thanks to [amurshak ](mailto:[email protected]) for creating and maintaining the Podbean MCP Server. |
| 188 | + |
| 189 | +## License |
| 190 | + |
| 191 | +[MIT © Ellipsis]((https://github.com/dineshkannan010/Ellipsis/blob/master/LICENSE.md)) |
| 192 | + |
| 193 | +## Contact |
| 194 | + |
| 195 | +For questions or feedback, open an issue or reach out to |
| 196 | + |
| 197 | + <table> |
| 198 | + <tr> |
| 199 | + <td align="center"> |
| 200 | + <a href="https://github.com/dineshkannan010"> |
| 201 | + <sub><b>Dinesh Kannan</b></sub> |
| 202 | + </a><br /> |
| 203 | + </td> |
| 204 | + <td align="center"> |
| 205 | + <a href="https://github.com/lohithsowmiyan"> |
| 206 | + <sub><b>Lohith Senthilkumar</b></sub> |
| 207 | + </a><br /> |
| 208 | + </td> |
| 209 | + <td align="center"> |
| 210 | + <a href="https://github.com/ParinitadasUX"> |
| 211 | + <sub><b>Parinita Das</b></sub> |
| 212 | + </a><br /> |
| 213 | + </td> |
| 214 | + <td align="center"> |
| 215 | + <a href="https://github.com/manideepika21"> |
| 216 | + <sub><b>Manideepika Myaka</b></sub> |
| 217 | + </a><br /> |
| 218 | + </td> |
| 219 | + </tr> |
| 220 | + </table> |
| 221 | + |
| 222 | +## Links |
| 223 | + |
| 224 | +- **[GitHub Repository](https://github.com/dineshkannan010/Ellipsis)** - Full source code |
| 225 | +- **[Demo Video](https://www.youtube.com/watch?v=XUPsSuCBTFw)** - Watch it in action |
| 226 | +- **[Devpost Submission](https://devpost.com/software/ellipsis)** - Hackathon entry |
0 commit comments