Python: haciendo hablar a un programa

Python text to speech..

Sigo jugando con Python, tenemos una cantidad ingente de librerías disponibles. Es brutal, hay de todo, y así como jugando, sin más complicaciones, que me he llegado a encontrar un par de librerías para hacer hablar a un programa por los altavoces. Esto es lo que se llama Text to Speech, que viene a significar el pasar de texto a voz.

La primera librería funciona offline, no necesita de Internet para funcionar. Se nota una voz de robot cláramente, y puede que no se entienda muy bien. Mientras que la segunda viene de Google y es online. Es decir, la sintetización de la voz la hacen los ordenadores de Google, y luego escuchamos el resultado. Con esta segunda librería el programa hablará muy claro y parecido a los seres humanos.

No me enrollo más.. aquí un resultado..
https://jnjsite.com/wp-content/uploads/2020/02/somethingToSay.mp3

Show me the code, el código fuente

import pyttsx3

engine = pyttsx3.init()
engine.setProperty('rate', 120)
engine.setProperty('voice', 'spanish')
engine.setProperty('volume', 1)


# It's just a text to speech function..
def saySomething(somethingToSay):
    engine.say(somethingToSay)
    engine.runAndWait()


while True:
    something = input("Something to say? ")
    print("Saying something with speakers..")
    saySomething(something)

Página web del proyecto: https://pypi.org/project/pyttsx3/

El segundo código fuente, de Google para síntesis de voz

from gtts import gTTS
import os


# It's just a text to speech function..
def saySomething(somethingToSay):
    myobj = gTTS(text=somethingToSay, lang="es", slow=False)
    myobj.save("somethingToSay.mp3")
    os.system("mpg321 somethingToSay.mp3")


while True:
    something = input("Something to say? ")
    print("Saying something with speakers..")
    saySomething(something)

La página web del proyecto: https://pypi.org/project/gTTS/

Terminando

Sólo me queda decir que ambas librerías funcionan tanto en Python 2 como en la versión 3. Sólo hay que poner estos códigos en un fichero por ejemplo llamado script.py y ejecutarlos desde línea de comandos poniendo:

python3 script.py

Un saludo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *