API de texto a voz gratis: precios, Python y opciones ilimitadas
Cada API de texto a voz gratuita tiene reglas distintas: cuotas mensuales que se reinician, pruebas de doce meses que caducan y modelos de código abierto sin contador. Consulta precios reales, código Python que funciona y un flujo de trabajo en el navegador para probar voces primero.
Escribe "API de texto a voz gratis" en un buscador y obtendrás tres respuestas muy distintas. Una cuota mensual de un gigante de la nube. Un paquete de Python que, en silencio, usa los servidores de otro. Un modelo de código abierto que ejecutas en tu propio equipo. Las tres son gratuitas, pero solo una es realmente ilimitada, y no es la que la mayoría espera.
Este artículo ordena las opciones según lo que realmente cuestan, muestra código Python que funciona para cada una y termina con una forma de probar voces en tu navegador antes de escribir cualquier código de integración. Las cifras proceden de las páginas de precios de los proveedores y de resúmenes publicados a octubre de 2026. Los precios cambian, así que confirma los números antes de construir un presupuesto sobre ellos.
Qué significa realmente gratis
Los proveedores usan la palabra "gratis" para tres esquemas distintos, y confundirlos es la forma en que un prototipo se convierte en una factura inesperada.
Cuotas mensuales recurrentes
Google Cloud y Microsoft Azure reinician cada mes una cuota gratuita, sin fecha de caducidad. Google ofrece 4 millones de caracteres de voces Standard, y el nivel F0 de Azure ofrece 0,5 millones de caracteres de voces neuronales. Si te mantienes por debajo del límite, la factura es cero indefinidamente. Si superas el límite en Google, pagas la tarifa normal por carácter. El nivel F0 de Azure tiene un tope, así que llegas a un techo en lugar de recibir una factura.
Pruebas de doce meses
La cuota de Amazon Polly se aplica a las cuentas nuevas durante sus primeros 12 meses. AWS anuncia 1 millón de caracteres neuronales al mes, 500 mil caracteres de formato largo y 100 mil caracteres generativos, y los resúmenes publicados sitúan las voces estándar en 5 millones. Después del mes doce, el mismo tráfico cuesta 4 $ por millón de caracteres en voces estándar y 16 $ en neuronales. Un prototipo que es gratis en enero puede tener una partida real en la factura en enero del año siguiente.
ElevenLabs se sitúa en un punto intermedio. Su plan gratuito ofrece unos 10.000 caracteres al mes, es decir, solo entre diez y quince minutos de audio, y exige atribución y excluye el uso comercial. Es suficiente para probar una voz y demasiado poco para un producto. La misma familia de voces también está disponible en PicassoIA como ElevenLabs v3.
Código abierto e ilimitado
La única opción realmente ilimitada es el software que ejecutas tú mismo. Piper funciona en una CPU normal, con más de 100 voces en más de 30 idiomas. Kokoro es un modelo de 82 millones de parámetros que produce habla natural y, según se informa, funciona unas 100 veces más rápido que el tiempo real en una GPU. Nadie lleva la cuenta de tu uso porque nadie te aloja. El precio es tu propio hardware, el tiempo de configuración y la tarea de revisar la licencia de cada voz antes de vender algo hecho con ella.
Niveles gratuitos comparados lado a lado
La tabla de precios
Proveedor y nivel
Cuota gratuita
¿Caduca?
Tarifa tras superarla
Google Cloud Standard
4M de caracteres al mes
No
4 $ por 1M
Google Cloud Neural2
Unos 1M de caracteres al mes
No
16 $ por 1M
Azure Neural (F0)
0,5M de caracteres al mes
No
Pago por uso
Amazon Polly Standard
5M de caracteres al mes
Tras 12 meses
4 $ por 1M
Amazon Polly Neural
1M de caracteres al mes
Tras 12 meses
16 $ por 1M
ElevenLabs Free
Unos 10K de caracteres al mes
No
Planes de pago
Piper o Kokoro
Sin límite
No
Tu hardware
💡 Las cuotas se cuentan por cuenta, por mes y por nivel de voz. Las voces estándar y las premium usan cupos separados, así que prueba exactamente la voz que pienses publicar.
Lo que compra un millón de caracteres
Los ejemplos de precios de AWS equivalen a unas 23 horas y 8 minutos de habla por cada millón de caracteres. Úsalo como regla orientativa. Los 4 millones de caracteres Standard de Google son unas 90 horas de audio al mes, y los 0,5 millones de Azure, unas 11 horas.
Un artículo de blog de 1.500 palabras ocupa cerca de 9.000 caracteres. Con ese tamaño, el nivel gratuito de Azure narra unos 55 artículos al mes y el de Google narra más de 400. Un botón de lectura en voz alta en un blog de tamaño mediano cabe dentro de un nivel gratuito, siempre que guardes cada archivo de audio en lugar de generarlo de nuevo en cada visita.
Cuenta con cuidado. La mayoría de los proveedores miden cada carácter que envías, incluidos los espacios, la puntuación y las etiquetas de marcado, así que elimina el HTML antes de la síntesis y envía texto plano. Mide una semana de tráfico real antes de confiar en cualquier estimación.
Opciones de Python que no cuestan nada
Tres paquetes resuelven la mayoría de los scripts rápidos. Se instalan con pip, no necesitan una cuenta de facturación y funcionan en unas pocas líneas, pero no son iguales.
gTTS en cuatro líneas
from gtts import gTTS
tts = gTTS("Your order has shipped.", lang="en")
tts.save("order.mp3")
gTTS es un envoltorio no oficial del endpoint de voz que usa Google Translate. No hay credenciales ni cuota publicada, y ese es exactamente el problema: Google puede limitar el endpoint o cambiarlo sin previo aviso. Sirve para un script de clase. Es arriesgado para una función de cara al cliente.
pyttsx3 funciona sin conexión
import pyttsx3
engine = pyttsx3.init()
engine.setProperty("rate", 170)
engine.save_to_file("Your order has shipped.", "order.wav")
engine.runAndWait()
pyttsx3 usa las voces que ya están instaladas en tu sistema operativo: SAPI5 en Windows, NSSpeechSynthesizer en macOS y eSpeak en Linux. No hace llamadas de red ni tiene límite. También hay una voz que suena como un GPS de 2005, así que júzgala con tus propios oídos antes de comprometerte.
edge-tts para mejores voces
import asyncio
import edge_tts
async def main():
speech = edge_tts.Communicate("Your order has shipped.", "en-US-AriaNeural")
await speech.save("order.mp3")
asyncio.run(main())
edge-tts se conecta con el mismo servicio de lectura en voz alta que usa el navegador Edge. Las voces son de calidad neuronal y el paquete es gratuito, pero es un cliente no oficial sin ningún acuerdo de servicio detrás. Trátalo como a gTTS: bueno para proyectos personales, una apuesta arriesgada cuando dependen de él usuarios de pago.
Modelos neuronales locales
Piper y Kokoro son los dos que conviene probar primero. Piper toma un archivo de voz descargado y escribe el audio directamente desde la línea de comandos:
echo "Your order has shipped." | piper --model en_US-lessac-medium.onnx --output_file order.wav
Es lo bastante ligero para una Raspberry Pi 4, por eso es la opción habitual para quioscos sin conexión, domótica y cualquier cosa que deba seguir funcionando sin internet. Kokoro necesita más memoria, pero suena bastante más natural y funciona a toda velocidad en una GPU.
Llamar a una API en la nube desde Python
Cuando necesitas un SLA, marcado SSML o decenas de idiomas, un proveedor en la nube es la vía honesta. El patrón es el mismo en todas partes: autenticarte, enviar texto y recibir bytes de audio.
Un ejemplo con Google Cloud
from google.cloud import texttospeech
client = texttospeech.TextToSpeechClient()
response = client.synthesize_speech(
input=texttospeech.SynthesisInput(text="Your order has shipped."),
voice=texttospeech.VoiceSelectionParams(
language_code="en-US", name="en-US-Standard-C"
),
audio_config=texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.MP3
),
)
with open("order.mp3", "wb") as f:
f.write(response.audio_content)
La autenticación viene de la variable de entorno GOOGLE_APPLICATION_CREDENTIALS, que apunta a un archivo de cuenta de servicio, así que ningún secreto queda dentro del script. Cambia en-US-Standard-C por una voz Neural2 y la llamada sigue igual. Solo cambian el cupo del que se descuenta y el precio.
Guarda en caché antes de pagar
import hashlib
import pathlib
def cached_speech(text, synthesize):
name = hashlib.sha256(text.encode()).hexdigest() + ".mp3"
path = pathlib.Path("audio_cache") / name
if not path.exists():
path.parent.mkdir(exist_ok=True)
path.write_bytes(synthesize(text))
return path
Calcular un hash del texto significa que una frase repetida no cuesta nada la segunda vez. En una función de lectura en voz alta, este hábito por sí solo suele mantener el tráfico dentro del nivel gratuito. Hay dos hábitos más que ayudan: divide los textos largos en los límites entre oraciones, porque la mayoría de los proveedores limitan una sola solicitud a unos pocos miles de caracteres, y envuelve cada llamada en un reintento con retroceso exponencial para las respuestas por límite de tasa.
Opciones ilimitadas y sus letras pequeñas
Busca "ilimitado" y aparecen siempre las mismas tres promesas. Cada una tiene un costo.
Alojarlo tú mismo cuesta tiempo. Instalas modelos, gestionas dependencias, vigilas la memoria de la GPU y actualizas todo cuando una versión rompe algo. Para unos pocos miles de solicitudes al mes, un nivel gratuito en la nube sale más barato que tus horas. Con millones de solicitudes, ejecutar Piper o Kokoro en tu propio servidor empieza a compensar.
Los endpoints no oficiales se rompen. gTTS y edge-tts dependen de servicios cuyos dueños nunca prometieron nada a los desarrolladores. Pueden ralentizarse, cambiar de formato o desaparecer. Si una función importa a tus clientes, dale una voz de respaldo de un proveedor compatible.
Los planes "ilimitados" miden otra cosa. Algunos servicios por suscripción anuncian voz ilimitada y luego limitan la concurrencia, los derechos comerciales o la calidad de la voz. Lee el párrafo de uso razonable antes de comprometer un producto con el plan.
La calidad varía más de lo que sugiere el precio. Una voz Standard y una voz neuronal del mismo proveedor pueden sonar muy distintas, así que una cuota generosa en el nivel más barato puede no ser la voz que de verdad querías.
El volumen es la razón por la que esto importa. Una función de lectura en voz alta que narra cada artículo para los visitantes, incluidas las personas que dependen del audio para leer la web, puede agotar una cuota mensual en una semana ajetreada.
Elegir la ruta gratuita adecuada
Tu situación
Mejor ruta gratuita
Ten cuidado con
Script de fin de semana o demo
gTTS o edge-tts
No oficial, puede romperse
App o dispositivo sin conexión
pyttsx3 o Piper
Voces planas de pyttsx3
Función de producción pequeña
Google Standard o Azure F0
La cuota se reinicia cada mes
Gran volumen, costo fijo
Kokoro o Piper alojados por ti
Tiempo de GPU y licencias de voz
Audiolibro o locución de video
Una herramienta de navegador sin código
Sin acceso a la API
La mayoría de los proyectos reales combinan dos filas: una voz local o en la nube gratuita para desarrollar, y un proveedor compatible para la versión que tocan los clientes.
Antes de publicar, haz una prueba con tres oraciones con la voz que elijas: una con un precio como 1.200,50 $, otra con una abreviatura como Dr. o SQL, y otra con un nombre difícil de pronunciar. Estas tres líneas revelan la mayoría de los problemas de normalización, y cuestan menos de cien caracteres de tu cuota.
Usa Speech 2.8 HD en PicassoIA
A veces no necesitas una integración, solo un buen archivo de locución. Speech 2.8 HD en PicassoIA funciona en el navegador, así que puedes probar voces y ajustes antes de decidir qué construir. En el momento de escribir esto, la API para desarrolladores de PicassoIA ofrece modelos de imagen y video, no de voz, así que se trata de un flujo de trabajo en el navegador, no de un reemplazo directo de los proveedores anteriores.
Pega tu guion
Abre la página del modelo y pega hasta 10.000 caracteres en el campo de texto. Inserta pausas con marcadores como <#0.5#>, que añade medio segundo de silencio. Divide un guion largo en escenas y genera cada una por separado, para que una sola línea mala nunca obligue a rehacerlo todo.
Elige voz y emoción
Elige una voz (la predeterminada es Wise_Woman) y una emoción: auto, happy, sad, angry, fearful, disgusted, surprised, calm, fluent o neutral. La indicación de idioma admite más de 40 idiomas, así que un mismo guion puede convertirse en una versión en español o japonés con un solo cambio en el menú desplegable. Luego ajusta la interpretación:
Velocidad: de 0,5 a 2,0, con 1,0 como predeterminado
Tono: de menos 12 a más 12 semitonos
Volumen: de 0 a 10, con 1,0 como predeterminado
💡 Para videos explicativos, prueba una velocidad de 1,1 y mantén el tono a no más de dos semitonos de cero. Cambios mayores empiezan a sonar artificiales.
Exporta en el formato adecuado
MP3 es el predeterminado y llega a 256 kbps, lo que va bien para podcasts y video. WAV y FLAC son sin pérdida para editar, y PCM ofrece audio sin procesar para flujos de trabajo. Activa los metadatos de subtítulos cuando quieras marcas de tiempo por oración para los subtítulos.
Otros modelos que vale la pena probar con el mismo guion:
El guion, la voz y la banda sonora son tres trabajos separados, y cada uno tiene su modelo. Redacta el guion con Claude Sonnet 5 o Gemini 3.5 Flash, genera la narración con Speech 2.8 HD y luego añade una base musical por debajo a bajo volumen, creada con Lyria 3, Music 2.6 o Stable Audio 2.5.
Un plan sencillo te lleva de cero a una voz funcional en una sola sesión:
Escribe un guion de 150 palabras y genéralo con tres voces distintas.
Elige la mejor y anota sus ajustes de velocidad, tono y emoción.
Elige la ruta gratuita de la tabla que se ajuste a tu volumen mensual.
Guarda cada archivo que generes, para que cada oración se pague una sola vez.
Abre PicassoIA, pega un párrafo de tu propio proyecto y prueba tres voces con tres emociones distintas. Diez minutos de pruebas te dicen más que cualquier página de precios, y fijan la voz antes de escribir una sola línea de código de integración. Mientras estés ahí, genera una miniatura o un video corto para acompañar el audio, y después construye a partir de la voz que más te haya gustado.