Añadir mu-plugins y scripts de feadulta

This commit is contained in:
2026-06-28 15:10:46 -04:00
parent bce7e42f44
commit b6116b066d
106 changed files with 17600 additions and 2 deletions
+41
View File
@@ -0,0 +1,41 @@
#!/usr/bin/env python3
"""Genera la muestra de feadulta con Kokoro (TTS local, gratis). Issue #76.
Voces español: ef_dora (fem), em_alex / em_santa (masc). lang_code 'e' = español.
Salida en uploads/tts-samples/ como kokoro-<voz>.wav (+ mp3 si hay ffmpeg).
"""
import subprocess
import sys
from pathlib import Path
import numpy as np
import soundfile as sf
from kokoro import KPipeline
SAMPLE = (
"Bienvenido a Fe Adulta. La humanidad abriga una esperanza: verse liberada de la "
"esclavitud y alcanzar la libertad de los hijos de Dios. Una fe adulta es una fe "
"personal, valiente, sin miedos infantiles. Detente un instante y respira."
)
OUT = Path(__file__).resolve().parent.parent / "wordpress/wp-content/uploads/tts-samples"
SR = 24000
VOICES = sys.argv[1:] or ["ef_dora", "em_alex"]
def main():
OUT.mkdir(parents=True, exist_ok=True)
pipe = KPipeline(lang_code="e") # español
for voice in VOICES:
chunks = [audio for _, _, audio in pipe(SAMPLE, voice=voice)]
audio = np.concatenate(chunks) if len(chunks) > 1 else chunks[0]
wav = OUT / f"kokoro-{voice}.wav"
sf.write(wav, audio, SR)
mp3 = OUT / f"kokoro-{voice}.mp3"
subprocess.run(["ffmpeg", "-y", "-i", str(wav), "-b:a", "96k", str(mp3)],
capture_output=True)
dur = len(audio) / SR
print(f"OK {voice}: {dur:.1f}s -> {mp3.name}")
if __name__ == "__main__":
main()