Commit inicial: gr-locutor (Locutor IA - GRP)
Locuciones de radio con voz IA local (XTTS-v2) integradas a G Radio Player: interfaz Rust/GTK4 de configuración, motor de generación y enriquecimiento de texto en Python, daemon de monitoreo que dispara locuciones sin pausar playlist-refill. Requiere radio-player >= 0.4.11.
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
# Genera una locución de introducción para un tema musical
|
||||
# Uso: ./generar-intro.sh "/ruta/al/tema.mp3"
|
||||
# Imprime la ruta del MP3 generado en stdout
|
||||
#
|
||||
# 1. Lee metadata ID3 del tema + enriquece con Wikipedia/MusicBrainz
|
||||
# 2. Sintetiza con el motor instalado (~/.gradio/locutor/gr-locutor.sh),
|
||||
# usando la voz de referencia configurada (genérica de GRP o la propia
|
||||
# de la estación si fue reemplazada)
|
||||
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
TEMA="$1"
|
||||
LOCUTOR_BIN="$HOME/.gradio/locutor-venv/gr-locutor.sh"
|
||||
ENRIQUECER="enriquecer-locucion.py"
|
||||
SALIDA_DIR="$HOME/.gradio/data/locutor-ia/salida"
|
||||
|
||||
if [ -z "$TEMA" ]; then
|
||||
echo "Uso: $0 \"/ruta/al/tema.mp3\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$TEMA" ]; then
|
||||
echo "Error: no existe el archivo $TEMA"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -x "$LOCUTOR_BIN" ]; then
|
||||
echo "Error: no está instalado el motor de voz ($LOCUTOR_BIN)."
|
||||
echo "Ejecuta primero el instalador (instalar-locutor-amd64.sh)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TEXTO=""
|
||||
if [ -f "$ENRIQUECER" ]; then
|
||||
TEXTO=$(python3 "$ENRIQUECER" "$TEMA" 2>/dev/null || true)
|
||||
fi
|
||||
|
||||
if [ -z "$TEXTO" ]; then
|
||||
BASENAME=$(basename "$TEMA" .mp3)
|
||||
BASENAME="${BASENAME%.*}"
|
||||
ARTISTA=""
|
||||
TITULO="$BASENAME"
|
||||
if echo "$BASENAME" | grep -q " - "; then
|
||||
ARTISTA=$(echo "$BASENAME" | sed 's/ - .*//')
|
||||
TITULO=$(echo "$BASENAME" | sed 's/.* - //')
|
||||
fi
|
||||
if [ -n "$ARTISTA" ]; then
|
||||
TEXTO="Y ahora, disfruta de ${TITULO} de ${ARTISTA}."
|
||||
else
|
||||
TEXTO="Y ahora, disfruta de ${TITULO}."
|
||||
fi
|
||||
fi
|
||||
|
||||
NOMBRE="intro_$(date +%Y%m%d_%H%M%S)"
|
||||
mkdir -p "$SALIDA_DIR"
|
||||
|
||||
MP3=$("$LOCUTOR_BIN" "$TEXTO" "$NOMBRE")
|
||||
echo "$MP3"
|
||||
Reference in New Issue
Block a user