Convertir texto a voz en Python

Manav Narula 30 enero 2023
  1. Utilice el módulo gTTS para convertir texto a voz en Python
  2. Utilice el módulo pyttsx3 para convertir texto a voz en Python
Convertir texto a voz en Python

Debido al avance de la tecnología en las últimas décadas, tenemos muchos dispositivos equipados con reconocimiento de voz. Python tiene una amplia variedad de módulos disponibles que pueden funcionar con objetos de audio. Algunos módulos pueden convertir texto escrito en audio.

En este tutorial, discutiremos cómo convertir texto a voz usando Python.

Utilice el módulo gTTS para convertir texto a voz en Python

Google creó una API llamada Google Text-To-Speech que utilizan para leer un texto y dar salida de audio. Esta API está integrada con un módulo de Python llamado gtts, que puede convertir texto a voz, realizar manipulación de audio, entre otras cosas, almacenando audio en un objeto del tamaño de un byte e incluso guardar la salida final.

Usaremos la función gTTS para crear un objeto que leerá el texto y lo convertirá en un objeto de audio. Podemos usar muchos parámetros con esta función. Podemos reducir la velocidad de la salida usando el argumento slow. La API de Google admite diferentes idiomas y podemos mencionar los idiomas admitidos mediante el parámetro lang.

Implementaremos este método en el siguiente código.

from gtts import gTTS
from playsound import playsound

s = gTTS("Sample Text")
s.save("sample.mp3")
playsound("sample.mp3")

En el código anterior, creamos un objeto que lee el texto deseado. Guardamos este objeto que contiene el audio de voz usando la función save() y luego lo reproducimos usando la función playsound(). La función playsound() importada de la biblioteca de playsound puede reproducir un archivo de audio.

Tenga en cuenta que dado que este módulo utiliza la API de Google para convertir texto en voz, requerirá una conexión a Internet activa. Puede considerar el método que se describe a continuación si desea que se ejecute sin conexión.

Utilice el módulo pyttsx3 para convertir texto a voz en Python

El pyttsx3 es otro módulo que puede realizar tales conversiones y funcionar sin conexión a Internet. Primero, crearemos un objeto que haga referencia al pyttsx3.Engine usando el constructor init() de este módulo. Luego, la función decir() aquí agrega el texto requerido para ser hablado en la cola. Luego usamos la función runAndWait() para reproducir el comando de la cola.

Por ejemplo,

import pyttsx3

s = pyttsx3.init()
data = "Sample Text"
s.say(data)
s.runAndWait()

Podemos establecer propiedades como la tasa de reproducción de la salida final usando el método setProperty(). Este módulo es compatible con Python 2 y Python 3.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python Audio