Files
audiobook/README.md
Paul Bailey f4bc759007 Task 1: Set up project structure and dependencies
- Created backend directory with FastAPI project structure
- Created frontend directory with React + TypeScript + Vite
- Configured Python virtual environment and installed dependencies (fastapi, uvicorn, kokoro, soundfile, python-multipart)
- Verified espeak-ng system dependency is installed
- Configured Node.js project with TypeScript, React, and Vite
- Set up Tailwind CSS for styling
- Set up environment variable configuration for both projects
- Created comprehensive README documentation

Requirements: 9.6, 10.2, 11.1
2025-12-09 00:47:44 +00:00

2.6 KiB

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

  1. Install espeak-ng:
# macOS
brew install espeak-ng

# Linux (Ubuntu/Debian)
sudo apt-get install espeak-ng
  1. Set up Python environment:
cd backend
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
  1. Run the backend:
uvicorn main:app --reload --host 0.0.0.0 --port 8000

Frontend Setup

  1. Install dependencies:
cd frontend
npm install
  1. Configure environment:
cp .env.example .env
  1. Run the frontend:
npm run dev
  1. Open http://localhost:5173 in your browser

Usage

  1. Enter Text: Paste your text with role markers (e.g., "Alice:", "[Narrator]")
  2. Assign Voices: Select a Kokoro voice for each detected role
  3. Configure: Choose language and playback speed
  4. Generate: Create your multi-voice audiobook
  5. 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