- Created RoleDetector class with colon and bracket pattern extraction - Implemented role deduplication logic - Added fallback to default 'Narrator' role when no patterns found - Created /api/tts/roles endpoint using RoleDetector - Added comprehensive test suite for role detection - All tests passing (7/7) Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 2.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