Radio noticias con rotación de voz — 2026-09-06

Setup visto: radio-data.tar.gz contiene radio/queue/*.mp3 + radio/logs/processed.json + FreshRSS. Ya es pre-carga, no en vivo.

Decisión: pre-cargar, no en vivo

  • Noticias no necesitan realtime. Cron cada 30-60 min → lee FreshRSS → sintetiza → deja mp3 en radio/queue/.
  • En vivo solo si quieres última hora con latencia <1 min. Más costo, más fallas, sin beneficio para Surtidito Tech Radio.
  • ElevenLabs no es obligatorio. Úsalo solo para cortinillas premium; noticias en Google TTS por costo/volumen.

Rotación de voz cada cierto tiempo

VOCES_ES = [
  "es-US-Neural2-B",      # masculino base estilo Valentino
  "es-US-Neural2-C",      # segundo masculino
  "es-US-Studio-B",       # broadcast serio para noticias duras
  "es-US-Neural2-A",      # femenina para variar bloque
]
voz = VOCES_ES[hora_del_bloque % len(VOCES_ES)]

Rota por bloque (ej. cada 2 horas o cada 6 noticias), no por nota — por nota marea.

Receta noticias (distinta a cortinilla)

  • Cortinilla Valentino: rate 1.1, pitch +2
  • Noticias: rate 0.98–1.0, pitch 0, con SSML <break time="400ms"/> entre notas
  • Inglés: en-US-Neural2-D con mismos parámetros suaves

Costo

  • Google: ~millón de caracteres gratis/mes, ideal para noticias 24/7 con caché (no regenerar si processed.json ya lo tiene).
  • ElevenLabs: mejor naturalidad, pero cobra por carácter caro. Solo para IDs: “Estás escuchando Surtidito Tech Radio”.

Siguiente paso mínimo

  1. Fijar 3-4 voces es-US + 1 en-US
  2. Cron 30 min que genere máximo N notas nuevas a queue/
  3. Log de qué voz tocó por bloque para debug