Guía
Instala loudness-tts
Esta guía instala loudness-tts, crea tu primera voz con subtítulos e inicia el servidor de voz que pueden usar las aplicaciones de chat. Tarda unos cinco minutos, más la descarga de una voz.
1Comprueba lo que necesitas
Para Python: Python 3.9 o posterior. Para JavaScript: Node.js 20 o posterior, Bun o Deno. Cada voz se descarga una sola vez y ocupa entre 20 y 140 MB; la voz inglesa predeterminada ocupa unos 80 MB. FFmpeg es opcional: añade salida MP3, Opus, AAC y FLAC, que esperan aplicaciones de chat como LibreChat y AnythingLLM.
python3 --version node --version2Instala el paquete de Python
En macOS y Linux:
python3 -m venv .venv source .venv/bin/activate python -m pip install loudness-ttsEn Windows, en PowerShell:
py -m venv .venv .venv\Scripts\activate python -m pip install loudness-ttsPara obtener los tiempos por palabra del propio modelo de voz, que dan los subtítulos más exactos, añade el extra opcional:
python -m pip install "loudness-tts[timings]".3Crea tu primera voz
loudness-tts "El Dr. Pérez pagó 5,50 € el 15/10/2026 a las 9:30." --language es-ES -o voz.wav --srt voz.srtLa primera vez se descarga la mejor voz para el idioma y se comprueba con su suma de verificación publicada; después funciona sin conexión. Las voces se guardan en
~/.cache/loudness-tts(en Windows,%LOCALAPPDATA%\loudness-tts). Elige el idioma con--languageo una voz con--voice;loudness-tts voiceslas muestra, de mejor a peor.Desde Python:
import loudness_tts voz = loudness_tts.synthesize("La reunión empieza a las 9:30.", language="es-ES") voz.save("reunion.wav") voz.save_srt("reunion.srt") print(voz.voice.credit) # la línea de crédito que pide la licencia de la voz4O instala el paquete de JavaScript
Instala el archivo del paquete desde la última versión en GitHub. Con Bun, usa
bun addcon la misma dirección.npm install https://github.com/Loudness-ai/loudness-tts/releases/download/v0.1.1/loudness-tts-0.1.1.tgzimport { speak, synthesize } from "loudness-tts"; await speak("Hola, la reunión empieza a las 9:30.", "hola.wav", { language: "es-ES" }); const voz = await synthesize("Hello! How are you?"); await voz.saveSrt("hello.srt");En una página web, impórtalo con tu empaquetador (Vite, webpack o esbuild):
speak(texto)reproduce la voz yvoz.blob()devuelve un archivo WAV. El navegador guarda cada voz tras la primera descarga.5Inicia el servidor de voz
loudness-tts serve --port 8880El servidor responde como la API de voz de OpenAI en
http://127.0.0.1:8880/v1. Pruébalo en macOS o Linux:curl http://127.0.0.1:8880/v1/audio/speech -H "Content-Type: application/json" \ -d '{"model": "tts-1", "input": "Hola desde mi propio servidor.", "voice": "best:es-ES", "response_format": "wav"}' -o hola.wavPara que otros ordenadores o contenedores de Docker lo usen, añade
--host 0.0.0.0y protégelo con--api-keyy una clave secreta que elijas. Las guías de aplicaciones de abajo muestran los ajustes para Open WebUI, LibreChat y AnythingLLM.6O ejecuta el servidor con Docker
docker run -d --name loudness-tts -p 8880:8880 -v loudness-tts:/data ghcr.io/loudness-ai/loudness-ttsLa imagen incluye FFmpeg y guarda las voces en el volumen
loudness-tts. Para descargar idiomas al arrancar el contenedor, añade-e LOUDNESS_TTS_PRELOAD="es-ES en-US".7Úsalo sin conexión
Descarga las voces que necesites mientras tengas conexión:
loudness-tts download --language es-ES loudness-tts download --language es-MXDespués, define
LOUDNESS_TTS_OFFLINE=1para impedir descargas;LOUDNESS_TTS_HOMEcambia la carpeta de las voces.loudness-tts doctor --synthesizecomprueba toda la instalación.
Problemas habituales
Falla la descarga de la voz
Las voces se descargan de huggingface.co y, en el caso de tres voces de la comunidad, de sfo3.digitaloceanspaces.com. Permite esas direcciones en tu cortafuegos o proxy, o descarga las voces en otro ordenador y copia la carpeta de voces.
La salida MP3 dice que necesita FFmpeg
Instala FFmpeg (brew install ffmpeg, sudo apt-get install ffmpeg o winget install --id Gyan.FFmpeg) o pide WAV. La imagen de Docker ya incluye FFmpeg.
«No voice called …»
Ejecuta loudness-tts voices --language es para ver los identificadores de las voces de un idioma. Los nombres de OpenAI, como nova y onyx, corresponden a voces en inglés (EE. UU.).
El puerto 8880 ya está en uso
Inicia el servidor en otro puerto, por ejemplo --port 8890, y usa ese puerto en tu aplicación.
PowerShell no deja activar el entorno
Ejecuta una vez Set-ExecutionPolicy -Scope CurrentUser RemoteSigned y vuelve a activarlo.
Siguientes pasos
Más guías
- Instala AI Noise Remover SDKPython y FFmpeg en Windows, macOS y Linux, tu primera eliminación de ruido y la compilación para JavaScript.
- Texto a voz local y gratuito para Open WebUILee en voz alta las respuestas de Open WebUI con voces naturales que funcionan en tu propio equipo.
- Texto a voz local y gratuito para LibreChatConfigura librechat.yaml para que LibreChat lea los mensajes en voz alta con voces locales gratuitas.
- Texto a voz local y gratuito para AnythingLLMUsa el proveedor OpenAI Compatible de AnythingLLM con voces gratuitas en tu propio equipo.