Files
audiobook/backend
Paul Bailey e6f4e2ea32 Implement TTS service with Kokoro integration
- Created TTSService class with pipeline caching per language
- Implemented text segmentation to identify role markers (colon and bracket patterns)
- Implemented segment synthesis with voice assignment
- Implemented audio concatenation at 24 kHz sample rate
- Added fallback to default voice (af_bella) for unmapped roles
- Supports language codes: a, b, f, j
- Handles long text by chunking on sentence boundaries
- Added comprehensive unit tests (13 tests, all passing)

Requirements: 10.1, 10.3, 10.4, 6.2, 6.3, 6.4, 6.5, 6.6
2025-12-09 01:06:59 +00:00
..
2025-12-09 00:57:46 +00:00

Text to Audiobook Backend

FastAPI backend service for converting text to multi-voice audiobooks using Kokoro TTS.

Setup

Prerequisites

  • Python 3.10 or higher
  • espeak-ng (system dependency)

Install espeak-ng

macOS:

brew install espeak-ng

Linux (Ubuntu/Debian):

sudo apt-get update
sudo apt-get install espeak-ng

Python Environment Setup

  1. Create a virtual environment:
python -m venv venv
  1. Activate the virtual environment:
# macOS/Linux
source venv/bin/activate

# Windows
venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Create environment file:
cp .env.example .env

Running the Server

uvicorn main:app --reload --host 0.0.0.0 --port 8000

The API will be available at http://localhost:8000

API documentation: http://localhost:8000/docs

API Endpoints

  • GET /api/health - Health check endpoint
  • POST /api/tts/roles - Detect roles in text
  • POST /api/tts - Generate audiobook