¿Problemas de visión? En Tecsify nos importa la inclusión de personas con discapacidad, por eso, ahora puedes esuchar los articulos narrados en tiempo real
La conversión de texto a voz (TTS – Text-to-Speech) con Python es una herramienta poderosa que permite transformar cualquier texto en audio de manera sencilla y en pocos segundos. Con esta tecnología, podemos:
✅ Guardar el audio en formato MP3 para reproducirlo más tarde.
✅ Elegir entre diferentes idiomas y voces según nuestras necesidades.
✅ Automatizar la generación de audio para asistentes virtuales, audiolibros o accesibilidad.
En este tutorial/guía, usaremos gTTS (Google Text-to-Speech), una librería ligera y fácil de usar en Python, para generar archivos de audio en español con una voz masculina. Además, utilizaremos Flask para crear una API sencilla que convierta texto en audio de forma dinámica.
Pero antes de comenzar, necesitamos instalar algunas dependencias.
Instalación de librerías necesarias
Para este proyecto, instalaremos gTTS para la conversión de texto a voz y mpg321 como reproductor de audio. Asegúrate de ejecutar estos comandos en un entorno virtual:
pip install gTTS
sudo apt-get install mpg321 # Solo necesario en sistemas Linux
Si usas Windows, puedes instalar un reproductor como VLC o usar Python con playsound
.
Conversión básica de texto a voz con Python: Código paso a paso
Una vez que hemos instalado las librerías necesarias, podemos proceder con el código. En este ejemplo, leeremos texto desde una variable o ingresado por el usuario y lo convertiremos en un archivo de audio MP3.
Guarda el siguiente código en un archivo llamado app.py
:
Código en Python para convertir texto en voz
# Convierte texto a voz con Python por Tecsify
from gtts import gTTS
import os
# Pedimos al usuario que ingrese un texto
texto = input("Escribe el texto que quieres convertir a voz: ")
# Convertimos el texto a voz en español
tts = gTTS(text=texto, lang='es')
# Guardamos el audio generado
tts.save("voz_generada.mp3")
# Reproducimos el archivo de audio (puede variar según el sistema operativo)
os.system("voz_generada.mp3")
print("✅ ¡Audio generado y reproducido con éxito!")
Explicación del código:
🔹 Importamos gtts
y os
→ gtts
se usa para la conversión de texto a voz y os
nos permite reproducir el audio.
🔹 Solicitamos un texto al usuario → Lo guardamos en una variable llamada texto
.
🔹 Usamos gTTS()
→ Especificamos el texto y el idioma ('es'
para español).
🔹 Guardamos el archivo en formato MP3 → Se genera el archivo "voz_generada.mp3"
.
🔹 Reproducimos el audio → Usamos os.system()
para abrir el archivo MP3 con el reproductor predeterminado.
💡 Nota:
- En Windows, puedes necesitar un reproductor compatible o usar la librería
playsound
. - En Linux, puedes instalar
mpg321
consudo apt-get install mpg321
.
Leer texto desde un archivo 📄
En lugar de ingresar el texto manualmente, también podemos leer desde un archivo de texto y convertirlo a voz.
with open("texto.txt", "r", encoding="utf-8") as archivo:
texto = archivo.read()
tts = gTTS(text=texto, lang='es')
tts.save("voz_desde_archivo.mp3")
os.system("voz_desde_archivo.mp3")
🔹 Este código abre un archivo texto.txt
, lee su contenido y lo convierte en audio. ¡Útil para generar audiolibros o narraciones! 📚🔊
También te puede interesar: Los 10 lenguajes de programación más populares en 2025, la era de la IA
Crear una API de Texto a Voz con Flask 🚀
Ahora que sabemos cómo convertir texto a voz con Python, llevemos este proyecto al siguiente nivel creando una API con Flask. Esto permitirá enviar texto desde cualquier aplicación y recibir un archivo de audio en respuesta.
1️⃣ Instalación de Flask y dependencias
Si aún no tienes Flask instalado, puedes hacerlo con:
pip install flask gtts
2️⃣ Creando la API con Flask
Guarda el siguiente código en un archivo llamado app.py
:
from flask import Flask, request, send_file
from gtts import gTTS
import os
app = Flask(__name__)
@app.route('/tts', methods=['POST'])
def texto_a_voz():
# Recibimos el texto desde el cliente
data = request.get_json()
texto = data.get("texto", "")
if not texto:
return {"error": "No se recibió texto para convertir"}, 400
# Convertimos el texto a voz
tts = gTTS(text=texto, lang='es')
archivo_audio = "voz_generada.mp3"
tts.save(archivo_audio)
# Enviamos el archivo MP3 al cliente
return send_file(archivo_audio, as_attachment=True)
if __name__ == '__main__':
app.run(debug=True)
3️⃣ ¿Cómo funciona esta API?
📌 Ruta /tts
(POST) → Recibe un texto en formato JSON y devuelve un archivo de audio MP3.
📌 gTTS()
→ Convierte el texto en voz usando Google Text-to-Speech.
📌 send_file()
→ Envía el archivo MP3 al cliente para su descarga.
4️⃣ Probando la API con Postman o cURL
Para probar nuestra API, podemos usar Postman o un simple comando cURL en la terminal:
curl -X POST http://127.0.0.1:5000/tts -H "Content-Type: application/json" -d '{"texto": "Hola, bienvenido a mi API de voz con Python"}' --output audio.mp3
🔹 Esto enviará el texto a la API y descargará un archivo audio.mp3
con la voz generada.
También te puede interesar: DeepSeek-R1: Cómo instalar y ejecutar IA localmente [Guía paso a paso]
¡Ya tienes lo básico! Ahora te toca a ti:
Este es un ejemplo sencillo para convertir texto en voz con puro Python, pero las posibilidades son enormes. Hoy en día existen herramientas avanzadas con inteligencia artificial, pero entender estos fundamentos te permitirá explorar aún más. Puedes mejorar este código usando directorios, librerías como playsound para una mejor reproducción o incluso crear asistentes virtuales, apps de narración, audiolibros y sistemas de apoyo para personas con discapacidad visual. 🚀 ¡La creatividad es el límite! ¡Manos a la obra!

¡Danos tu opinión!