Logo Desarrollo


Utilizar las voces de Microsoft:

Una de las cosas importantes en la programación de scripts para personas con discapacidad visual, es el que este pueda verbalizar mensajes a través de algún tts. Trabajar con Windows Sapi es bastante sencillo, por lo que comenzaremos por ahí.
La interacción con sapi se realiza a través del uso de los métodos de un objeto com. Lo primero que debemos hacer, es agregar el siguiente código a nuestro script.

Sapi := ComObjCreate("SAPI.SpVoice")
Sapi.Rate := 7
Sapi.Volume :=85


En la primer línea pasamos el objeto com a una variable, como ejemplo la denominamos sapi.
Un objeto está compuesto por atributos y métodos, como los usados en el ejemplo.
En la segunda línea, especificamos la velocidad del sintetizador con el atributo Rate.
En la tercera, el porcentaje del volúmen con el atributo volume.
En estos 2 últimos podemos modificar su valor simplemente editando el número.
La llamada al objeto com de la primer línea solo es necesario realizarla una vez, en cambio si necesitamos modificar atributos como la velocidad o el volúmen, tendremos que volver a llamarlos como en el ejemplo. Solo nos queda llamar al método Speak, que es donde hemos de especificar el texto a verbalizar como único parámetro. El mismo puede ser agregado las veces que sea necesario.

Sapi.Speak("Hola. Oigan mi preciosa voz.")


Como habrán observado, todo lo que se quiera verbalizar debe ir entre los paréntesis y entre comillas ya que esta es una cadena de caracteres.
Otra cosa interesante es la posibilidad de verbalizar el texto que tengamos en el portapapeles. Recordemos que el mismo es una variable integrada, que la podemos utilizar simplemente escribiendo Clipboard. Para verbalizar el contenido de una variable, la misma debe ir entre los paréntesis, sin las comillas, y sin los signos de Porciento.

Sapi.Speak(Clipboard)


Un ejemplo insensato sobre el uso de la función Speak:

Sapi := ComObjCreate("SAPI.SpVoice")
Sapi.Rate := 7
Sapi.Volume :=85
Sapi.Speak("Script iniciado")
Return


#n::
Sapi.Speak("Abriendo el block de notas...")
Run Notepad
Return


#q::
Sapi.Speak("Cerrando el script...")
Sleep 2000
ExitApp


Al iniciar el script se va a ejecutar el método Speak, ya que el mismo está en la parte automática del script.
el atajo windows n primero hará que hable el TTS, y luego abrirá el block de notas.
En el último comando, he colocado un sleep de 2 segundos para que el TTS tenga tiempo de despedirse antes del cierre del script.
Se pueden configurar unas cuantas cosas utilizando TTS, como la voz a utilizar, o crear funciones para realizar variadas acciones. Para los que tengan ganas de aventurarse un poco más en este asunto, los invito a buscar en el foro AHK. Por ejemplo.
Aquí

Descargar el ejemplo