Python: haciendo hablar a un programa

2020-02-03 - Categorías: Python
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.

2 respuestas a “Python: haciendo hablar a un programa”

  1. Mirlon dice:

    hola siempre que usó la librería » pyttsx3″ me sale este ERROR::: ImportError: No system module ‘pywintypes’ (pywintypes38.dll)

    • Jnj dice:

      Buenos días Mirlon!
      Todo apunta a que desde el proyecto no se encuentra instalada la librería de Python pywintypes. Quizá probando de instalarla localmente en el proyecto, o reinstalando Python con todas las librerías se soluciona.
      Un saludo.

Deja una respuesta

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

 

© 2024 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.