Permítanme primero explicar algunas abreviaturas y algunos términos básicos que vamos a utilizar en esta publicación.
Para aquellos que no saben lo que significa TTS, significa Text To Speech.
Lo que queremos hacer es darle un fragmento de texto a nuestro programa y este lo convertirá en voz y nos lo leerá.
Es, en otras palabras, hacer que la computadora nos lea.
Ahora, hay varias formas de hacer este TTS, pero aquí hablaremos de una biblioteca, que personalmente he usado y he obtenido buenos resultados.
Vamos a usar pyttsx3
.
pyttsx3
pyttsx3 es una biblioteca de Python que nos permite convertir texto a voz. Así que le proporcionaremos nuestro texto y convertirá ese texto en audio.
Es un envoltorio alrededor de varios motores de texto a voz, incluido el motor de texto a voz (TTS) de Microsoft.
Ahora veamos cómo usamos esta biblioteca para TTS.
Lo primero y más importante que debemos hacer es instalar esta biblioteca y podemos hacerlo usando el pip
, que viene incluido con la instalación de python.
La sintaxis de esta instalación es similar a todas pip installs
.
pip install pyttsx3
Si en caso de que esta instalación le dé un error cmd not found
, intente usar pip3
en lugar de pip
como:
pip3 install pyttsx3
Después de la instalación, verifiquemos si se instaló correctamente o no ejecutando este comando:
pip3 freeze
Devolverá una lista de todos los paquetes instalados en nuestro env. Si encuentra pyttsx3
en esta lista, entonces instalamos pyttsx3
con éxito y estamos listos para usarlo en nuestro proyecto.
Una vez completada la instalación, debemos importar esta biblioteca a nuestro proyecto y luego debemos inicializar el motor de texto a voz. Este motor es la parte más importante, y es este motor el que realizará el TTS por nosotros.
Importing pyttsx3 and initializing the text-to-speech engine:
import pyttsx3
engine = pyttsx3.init()
.init()
es el método que debe llamarse para inicializar el motor.
Ahora, a medida que nuestro motor se inicializa, podemos usarlo para nuestro TTS llamando al método say(text)
.
engine.say(text)
engine.runAndWait()
Esta velocidad y volumen del texto hablado serán los predeterminados y podemos cambiarlos de las siguientes formas.
Todo lo que necesitamos es establecer algunos valores para nuestro motor. Es como decirle al motor qué usar.
Entonces, tenemos que hacer esto de la siguiente manera:
getProperty(name)
setProperty(name, value)
Fijaremos la velocidad y también el volumen del motor.
Configuración de la velocidad y el volumen del discurso:
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-100)
De forma predeterminada, la tasa es 200, por lo que la bajaremos a 100. La rate
es la tasa de habla y 200 es alta para nosotros. Así que lo bajamos.
El ritmo es simplemente, el ritmo al que el hablante pronunciará el texto pasado.
Después de configurar la tasa, cambiaremos o configuraremos el volumen obteniendo primero la propiedad de volumen y luego configurándola.
volume = engine.getProperty('volume')
engine.setProperty('volume', volume+0.50)
El volumen predeterminado es 1, es decir, 100%, lo aumentaremos a 150% agregando .50 al valor recibido al leer la propiedad de volumen.
Ahora que hemos terminado de configurar estas dos propiedades, llamaremos a say()
y el discurso ahora tendrá nuestro parámetro, es decir, velocidad 1x
y volumen 1.50
.
engine.say("Hello, This is the test for the pyttsx3")
engine.runAndWait()
Ahora bien, este runAndWait
es importante para nosotros. Queremos ejecutar este motor y seguir funcionando hasta que haya completado el TTS del texto pasado.
Además, cambiando el volumen, también podemos cambiar la voz que se está hablando. Ahora hay 2 voces aquí. Uno es para la voz femenina y otro para la voz masculina.
Usaremos la misma sintaxis para establecer nuestra propiedad como lo hicimos anteriormente.
Tenga en cuenta:
voices[0]
es para la voz masculina.voices[1]
es para la voz femenina.
Cambiemos la voz:
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)
Tendremos que llamar a la propiedad id
de la voz seleccionada y luego estamos listos.
Podemos copiar el código superior y esta vez la voz será femenina en lugar de la predeterminada que es masculina.
Una vez que hayamos terminado con la configuración de los parámetros y la prueba del TTS, ahora podemos guardar el archivo de audio del TTS generado.
En lugar de llamar a .say()
, esta vez llamaremos a .save_to_file
y pasaremos el texto y también el nombre del archivo de salida, en el que queremos que se guarde nuestro audio TTS.
Esta vez, no leerá el texto en voz alta, sino que lo guardará en el archivo, cuyo nombre pasamos.
engine.save_to_file("Hello, this is test for pyttsx3.", "test.mp3")
engine.runAndWait()
Después de ejecutar esto, tendremos un archivo llamado test.mp3
con el TTS generado.
Además, pyttsx3 tiene varios otros métodos y propiedades que puede usar para personalizar la salida de texto a voz, como configurar el tono, el idioma, etc. Puede encontrar más información sobre estos en la documentación de pyttsx3 .
Mira, ¿qué tan fácil es generar TTS a partir de un texto o incluso desde el archivo que contiene el texto?
Podemos utilizar estos TTS generados para diversos fines y depende de usted.
Lo sé, ahora podrá realizar este TTS con facilidad y hará proyectos increíbles con esto.
Ahora, haz una cosa, sígueme en Twitter , si te gusta el contenido y quieres estar conectado.
Gracias por leer, disfruta el contenido.