s’ha de substituir gTTS per eSpeak-ng, et mostro com adaptar-la pas a pas per fer servir aquest motor localment i afegir un selector de veus reals.
🛠️ 1. Instal·la espeak-ng
i ffmpeg
al teu Synology
Si tens accés a apt
o ipkg
:
sudo apt install espeak-ng ffmpeg
🐍 2. Modifica generar_tts.py
per fer servir espeak-ng
import sys
import os
import subprocess
text = sys.argv[1] if len(sys.argv) > 1 else "Text per defecte"
voice = sys.argv[2] if len(sys.argv) > 2 else "ca" # idioma per defecte: català
base_dir = os.path.dirname(os.path.abspath(__file__))
output_wav = os.path.join(base_dir, "tts.wav")
output_mp3 = os.path.join(base_dir, "tts.mp3")
# 🗣️ Generar WAV amb eSpeak-ng
espeak_cmd = ["espeak-ng", "-v", voice, text, "--stdout"]
with open(output_wav, "wb") as wav_file:
subprocess.run(espeak_cmd, stdout=wav_file)
# 🎧 Convertir a MP3 amb ffmpeg
subprocess.run(["ffmpeg", "-y", "-i", output_wav, output_mp3])
🌍 3. Actualitza index.php
amb idiomes/veus disponibles
Substitueix la llista de veus per idiomes compatibles amb eSpeak-ng:
$voices = [
"ca", // Català
"es", // Espanyol
"en", // Anglès
"fr", // Francès
"de", // Alemany
"it", // Italià
"pt", // Portuguès
"ru", // Rus
"ja", // Japonès
];
Pots afegir variants com ca+f3
o en+m1
per canviar el timbre (masculí/femení) si vols més control.
🧪 4. Prova-ho
Ara, quan seleccionis una veu (en realitat, un idioma o variant) des del formulari, es passarà com a paràmetre a espeak-ng
, que generarà l’àudio amb la veu corresponent.
🎯 Vols més personalització?
- Puc ajudar-te a llistar totes les veus disponibles amb
espeak-ng --voices
- O afegir un selector de velocitat i to
- O fins i tot fer que el sistema recordi l’última veu usada
Vols que et prepari un script per mostrar totes les veus disponibles al teu sistema?