e92d0349bffd01064930058cf38a3ee86140a6d9
- Created VoiceAssignmentSection component with role-to-voice mapping - Added language selector with American English, British English, French, Japanese - Added speed slider (0.5x - 1.5x range) - Implemented Generate Audiobook button with proper disabled state - Integrated component into App.tsx with state management - Added role detection API call on text submission - Validates all roles have assigned voices before enabling generation Requirements: 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 4.1, 4.2, 4.3, 4.4, 5.1, 5.2, 5.3
Text to Audiobook
A full-stack application that converts long-form text into multi-voice audiobooks using Kokoro TTS (hexgrad/Kokoro-82M). The system automatically detects distinct roles/speakers in text, allows voice assignment per role, and generates high-quality audio.
Features
- 🎭 Automatic role/speaker detection from text
- 🎤 Multi-voice synthesis with Kokoro TTS
- 🌍 Support for multiple languages (English, French, Japanese)
- ⚡ Fast local processing (no cloud dependencies)
- 📱 Responsive web interface
- 🎵 Audio playback and download
Architecture
- Frontend: React + TypeScript + Vite + Tailwind CSS
- Backend: Python + FastAPI + Kokoro TTS
- Deployment: Docker containerization
Quick Start
Prerequisites
- Python 3.10+
- Node.js 20.19+ or 22.12+
- espeak-ng (system dependency)
Backend Setup
- Install espeak-ng:
# macOS
brew install espeak-ng
# Linux (Ubuntu/Debian)
sudo apt-get install espeak-ng
- Set up Python environment:
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
- Run the backend:
uvicorn main:app --reload --host 0.0.0.0 --port 8000
Frontend Setup
- Install dependencies:
cd frontend
npm install
- Configure environment:
cp .env.example .env
- Run the frontend:
npm run dev
- Open http://localhost:5173 in your browser
Usage
- Enter Text: Paste your text with role markers (e.g., "Alice:", "[Narrator]")
- Assign Voices: Select a Kokoro voice for each detected role
- Configure: Choose language and playback speed
- Generate: Create your multi-voice audiobook
- Listen & Download: Play or save the generated audio
Project Structure
.
├── backend/ # FastAPI backend
│ ├── main.py # API endpoints
│ ├── services/ # Business logic
│ ├── requirements.txt # Python dependencies
│ └── README.md
├── frontend/ # React frontend
│ ├── src/
│ │ ├── api/ # API client
│ │ ├── components/ # React components
│ │ └── App.tsx # Main app
│ ├── package.json
│ └── README.md
└── README.md # This file
Documentation
License
MIT
Description
Languages
Python
66.6%
TypeScript
25.8%
Shell
2.8%
CSS
2.1%
JavaScript
1.3%
Other
1.4%