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

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

2 días hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

1 semana hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

1 semana hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

1 semana hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

1 semana hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

1 semana hace

Esta web usa cookies.