Para ello vamos a tener que usar la
librería externa “win32com.client” para sistemas operativos Windows.
Dado que se trata de un módulo externo, lo primero que deberemos de
hacer es importarlo. Esto lo haremos mediante el módulo “pip”,
pidiéndole que instale “pypwin32” o “pywin32”:

Ejecutamos el comando, y tras unos
minutos de espera, tendremos instalada nuestra librería
“win32com.client” a la espera de que nos pongamos atrabajar con ella.
Dado que el nombre del módulo es algo
largo, para su empleo en nuestro programa, lo importaremos con el nombre
más corto de “wc”:

Otro de los pasos previos que daremos
para crear nuestro programa es el de llamar (mediante una variable a la
que hemos dado el nombre de “voice”) al método “Dispatch” (dentro del
módulo “win32com”), que es el que vamos a emplear para generar la “voz”
que irá leyendo nuestros textos:

Una vez hecho esto, escribiremos el código de nuestro programa, el cual, tendría el siguiente aspecto:

Así, habremos creado un programa que irá
pidiendo a nuestro usuario (mediante el correspondiente “input” para la
variable “texto”) que introduzca un texto, de modo que, acto seguido,
nuestro programa lo leerá mediante voz, en un idioma que dependerá del
modo en que lo tengamos configurado en nuestro ordenador (en mi caso, en
inglés). La mencionada introducción de texto (y con ella la ejecución
de nuestro programa) solo finalizará cuando introduzcamos un punto (“.”)
en el “input”, motivo por el cual, hemos tenido que definir, antes del
ciclo, la variable “texto” (“texto=(“”)”).

Otra posibilidad que daremos al usuario
es la de “repetir” mediante voz el último texto introducido con la sola
introducción en el “input” de un espacio (” “), lo cual hará que se
reproduzca el último texto reproducido, el cual, se habrá almacenado
previamente en la variable “prev_text”, también definida previamente al
ciclo.

El código completo de este programa puede verse en el siguiente enlace a Github:
https://github.com/antonioam82/textvoice-player
Saludos.
Comentarios
Publicar un comentario