Volver
TTS Python — Locutor para Casas de Apuestas

TTS Python — Locutor para Casas de Apuestas

TTS Python

Sistema de texto a voz (TTS) offline que convierte texto en audio hablado usando Piper TTS sobre una Jetson Nano (ARM64). Expone una API REST con FastAPI detrás de nginx con SSL, diseñado específicamente para locutar premios y mensajes en casas de apuestas y salones de juego. Todo autocontenido en contenedores Docker sin dependencia de servicios cloud.

Qué hace

El sistema recibe peticiones HTTP con texto en español y devuelve o reproduce audio hablado directamente en el dispositivo de sonido USB conectado a la Jetson Nano. Utiliza tres voces de Piper: davefx (español de España, calidad media), sharvard (español de España, calidad media) y daniela (argentina, calidad alta), todas descargadas como modelos ONNX.

El endpoint /tts/play/ es el núcleo para el caso de uso de apuestas: acepta marcadores de sonido entre corchetes ([fanfarria.wav]) que se intercalan con el texto hablado, y detecta automáticamente cantidades numéricas que tengan un premio asociado para reproducir el efecto de sonido correspondiente justo antes de decir el número. Todo el audio se ensambla en un único WAV y se reproduce con un solo aplay, eliminando cortes entre segmentos.

Incluye un sistema de sonido ambiental de fondo (música, lluvia, etc.) con ducking: cuando se reproduce una locución, el volumen del fondo baja automáticamente con crossfade y se restaura al terminar, sin silencios audibles. La mezcla se hace en memoria con pydub+ffmpeg para sortear la limitación de ALSA sin dmix.

Sistema de premios

El endpoint POST /premios/ permite asociar un sonido a una cantidad numérica (ej: 1000 → jackpot.wav). Cuando /tts/play/ encuentra ese número en el texto, reproduce el sonido del premio inmediatamente antes de decir la cantidad. La configuración persiste en disco y se recarga al iniciar.

Tech stack

Características clave