#!/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"