VoicePaper is a full-stack, containerized application that transforms online articles and research papers into engaging, on-demand podcasts. It leverages a modern Python-based stack, including a FastAPI backend for processing and a Streamlit frontend for user interaction.
- URL & PDF Processing: Generate podcasts from both web articles and uploaded PDF documents.
- AI-Powered Summarization: Uses Google's Gemini API to create concise, podcast-style scripts.
- Podcast History: A full library of previously generated podcasts, stored and retrieved from a PostgreSQL database.
- Responsive UI: An interactive frontend built with Streamlit.
VoicePaper is a multi-service application orchestrated with Docker Compose, featuring a decoupled frontend and backend for scalability and robustness.
User (Uploads URL/PDF) --------+
|
v
+-----------------------------+ +-------------------------------+
| Streamlit Frontend |---->| FastAPI Backend |
| (UI & API Requester) | | (Business Logic) |
+-----------------------------+ +-------------------------------+
| ^
| | (Summary)
v |
+-----------------------------+ +-------------------------------+
| PostgreSQL Database |<----| AI Pipeline |
| (Stores History & Status) | | (Scrape/Extract -> Summarize) |
+-----------------------------+ +-------------------------------+
| ^
| | (Text)
v |
+--------------------+
| Google Gemini |
+--------------------+
- Backend: FastAPI, PostgreSQL, SQLAlchemy
- Frontend: Streamlit
- AI: Google Gemini API, gTTS
- DevOps: Docker, Docker Compose
To run this project locally, ensure you have Docker and Docker Compose installed.
-
Clone the repository:
git clone https://github.com/your-username/voicepaper.git cd voicepaper -
Create your environment file: In the
/backenddirectory, create a.envfile and add your Gemini API key:GEMINI_API_KEY="your_api_key_here" -
Run with Docker Compose: From the root directory, run:
docker-compose up --build
-
Access the application:
- Frontend:
http://localhost:8501 - Backend API Docs:
http://localhost:8000/docs
- Frontend:


