- 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
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
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
# macOS/Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- 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 endpointPOST /api/tts/roles- Detect roles in textPOST /api/tts- Generate audiobook