python

Texto a voz (TTS) offline con Python

En este tutorial de programación con Python te mostraré cómo convertir texto a voz/audio usando Python y un paquete que trabaja totalmente fuera de línea, es decir, sin conexión a internet.

Anteriormente ya te había mostrado un tutorial pero en ese caso usábamos la API de Google para convertir texto a audio usando Python, ahora te mostraré lo mismo pero usando un paquete que no necesita internet.

De este modo podrás reproducir audio a partir de determinado texto, además de guardar la voz en un archivo de audio MP3.

Instalando librería

Vamos a usar la librería pyttsx3; para ello debes contar con Python y PIP. Una vez que los tengas, ejecuta:

pip install pyttsx3

Dependiendo de tu sistema operativo se van a descargar varias dependencias. Yo te cuento que en Windows funciona perfectamente y pip se encargó de instalar todo.

Según el repositorio oficial esto debería funcionar correctamente en Windows y Linux.

Convertir texto a voz con Python

Veamos el primer ejemplo en donde vamos a convertir el texto a voz y después reproducir el sonido a través de Python. El código queda así:

"""
    https://parzibyte.me/blog
"""

import pyttsx3

engine = pyttsx3.init()
# Control the rate. Higher rate = more speed
engine.setProperty("rate", 150)
text = "Hola mundo. Visita parzibyte.me"
engine.say(text)
"""
Queue another audio
"""
another_text = "I like Python"
engine.say(another_text)
engine.runAndWait()

Primero importamos la librería y creamos un motor. Podemos invocar a setProperty para cambiar varios aspectos (puedes leer la documentación del repositorio). En este caso cambio el rate que controla la velocidad del audio.

Después invocamos a engine.say para encolar un texto que el motor convertirá a audio. Podemos invocar varias veces a say, y el motor va a convertir el texto a audio en ese orden.

Finalmente invocamos a engine.runAndWait para que el motor “arranque” y espere a que se reproduzca el audio.

Convertir texto a audio y guardar en archivo MP3

TTS en Python – Convertir texto a audio usando Python y pyttsx3

Para terminar este tutorial de Python y TTS veamos cómo convertir texto a audio pero guardar el resultado en un archivo MP3. Ahora en lugar de invocar a say, invocamos a save_to_file con dos argumentos: el texto que se guardará dentro del archivo, y el nombre del archivo de salida.

El código queda como se ve a continuación:

"""
    https://parzibyte.me/blog
"""

import pyttsx3

engine = pyttsx3.init()
# Control the rate. Higher rate = more speed
engine.setProperty("rate", 150)
text = "Hola mundo. Este audio quedará guardado en un archivo"
output_file = "audio.mp3"
engine.save_to_file(text, output_file)
engine.runAndWait()

En este caso el código es muy parecido, solo que ahora lo guardamos a un archivo. Es importante invocar runAndWait al final para que los archivos sean creados.

Al ejecutar el código vamos a tener un archivo de audio con el texto que indicamos.

Conclusión

Con este paquete podemos hacer varias cosas como crear APIs que devuelvan el archivo, o, por ejemplo, saltar algunas limitantes que tiene JavaScript (el hecho de no poder reproducir audio sin la interacción del usuario).

La ventaja de pyttsx3 sobre otros paquetes es que éste es totalmente fuera de línea, offline o como le digas. De este modo solo debes asegurarte de instalar la dependencia y luego podrás usarla sin problemas y sin límites.

Recuerda que vas a encontrar toda la documentación en el repositorio oficial. Te dejo aquí con más posts sobre Python.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.