Dynamic AI story reader and narrator web application powered by ElevenLabs API, supporting multi-character voice acting and real-time audio streaming.
Assign distinct character voices (Narrator, Hero, Villain, Tavern Maid) to bring prose to life with distinct pitch and timbre.
Powered by the ultra-low latency eleven_turbo_v2_5 model for fast synthesis and continuous audio streaming.
Distraction-free text editing workspace with preset story snippets, active voice selection, and instant audio playback controls.
Local MP3 asset caching system to eliminate duplicate TTS calls and reduce API latency during repeated playbacks.
# Flask TTS Generation Route
@app.route('/generate', methods=['POST'])
def generate_audio():
data = request.json
voice_id = VOICES.get(data.get('voice'), VOICES['narrator'])
url = f"https://api.elevenlabs.io/v1/text-to-speech/{voice_id}"
response = requests.post(url, json={"text": data['text'], "model_id": "eleven_turbo_v2_5"}, headers=headers)
return send_file(io.BytesIO(response.content), mimetype='audio/mpeg')
| Feature | Implementation | Benefit |
|---|---|---|
| Backend API | Flask Server | Lightweight python web wrapper |
| Voice Provider | ElevenLabs Turbo v2.5 | Ultra-fast neural speech generation |
| Audio Playback | HTML5 Audio API + Web Blob | Zero-lag browser playback |
| Storage | Static File Caching | API quota optimization |