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.
hola siempre que usó la librería » pyttsx3″ me sale este ERROR::: ImportError: No system module ‘pywintypes’ (pywintypes38.dll)
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.