CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 10 Ago 2020 01:23

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 166 mensajes ]  Ir a página Anterior  1 ... 7, 8, 9, 10, 11, 12  Siguiente
Autor Mensaje
NotaPublicado: 25 Jul 2015 19:09 
Desconectado
Dragón
Dragón

Registrado: 17 Sep 2014 12:58
Mensajes: 114
Hola Sukil

En vez de enviar un parámetro al script de speech para que se detenga, creo que lo mejor seria definir otra ruta a un script que se encargue de detener el proceso de speech. Así habrían dos scripts, uno para el speech como hasta ahora y otro opcional que se encargase de detener el script. Creo que es mejor solución así. Incluso además podría tener ese script de paro para Linux....

Saludos
Cesar


Arriba
 Perfil  
 
NotaPublicado: 26 Jul 2015 23:08 
Desconectado
Implementador
Implementador

Registrado: 09 Jun 2010 14:50
Mensajes: 1677
Ubicación: Argentina
chernandezba escribió:
Hola Sukil

En vez de enviar un parámetro al script de speech para que se detenga, creo que lo mejor seria definir otra ruta a un script que se encargue de detener el proceso de speech. Así habrían dos scripts, uno para el speech como hasta ahora y otro opcional que se encargase de detener el script. Creo que es mejor solución así. Incluso además podría tener ese script de paro para Linux....

Saludos
Cesar


Sí, sería una buena idea. Sería cuestión de que programes el emulador que estos scripts opcionales tengan una variable que se reemplace por el nombre del ejecutable del script de voz, esto porque el emulador permite elegir scripts de voz distintos y hasta los usuarios pueden crear los suyos.
El bat (para Windows, aunque en otros sistemas se tiene que poder hacer sin mayores complicaciones) sería algo como esto:

Código:
rem Message display prevention
@echo off
rem The next command forces the active speech script to terminate. The %speechscriptname% argument for the im parameter will be replazed with the speech script you are using at run time (see Text to Speech options in emulator's GUI Settings).
taskkill /f /im %speechscriptname%


El comando rem no tiene efecto alguno en la ejecución, justamente está pensado para hacer comentarios en los archivos por lotes. Serás tú como desarrollador quien decida en qué medida poner comentarios en los scripts; yo sí suelo hacerlo, lo mismo que en los archivos de mensajes de scripts para JAWS en cuanto a algunas decisiones traductológicas.


Arriba
 Perfil  
 
NotaPublicado: 27 Jul 2015 13:32 
Desconectado
Yiepp
Yiepp

Registrado: 03 Nov 2013 22:56
Mensajes: 69
Hola:
Tengo novedades: no he conseguido que speech Dispatcher se comporte debidamente, pero el JAWS 15 sí que funciona. Seguiré investigando.
Saludos!


Arriba
 Perfil  
 
NotaPublicado: 28 Jul 2015 11:36 
Desconectado
Dragón
Dragón

Registrado: 17 Sep 2014 12:58
Mensajes: 114
Fernando Gregoire escribió:
Sí, sería una buena idea. Sería cuestión de que programes el emulador que estos scripts opcionales tengan una variable que se reemplace por el nombre del ejecutable del script de voz, esto porque el emulador permite elegir scripts de voz distintos y hasta los usuarios pueden crear los suyos.


Hola Fernando.

No, no es exactamente así. La idea es hacerlo simple.
El script de speech se indica tal cual ya se hace ahora.
Y luego se indicará otro script de paro de script, al cual no se enviará ningún parámetro. Ese script será el encargado de detener cualquier proceso que haya de speech activo.

Saludos
César


Arriba
 Perfil  
 
NotaPublicado: 28 Jul 2015 11:37 
Desconectado
Dragón
Dragón

Registrado: 17 Sep 2014 12:58
Mensajes: 114
Louis Creed escribió:
Hola:
Tengo novedades: no he conseguido que speech Dispatcher se comporte debidamente, pero el JAWS 15 sí que funciona. Seguiré investigando.
Saludos!


Genial!
A ver si puedo y esta semana os paso otra beta con lo del parámetro de paro de speech para que podáis probarlo.

Saludos
César


Arriba
 Perfil  
 
NotaPublicado: 29 Jul 2015 14:34 
Desconectado
Dragón
Dragón

Registrado: 17 Sep 2014 12:58
Mensajes: 114
Hola de nuevo.

Os paso una nueva beta con el parámetro de Stop speech program agregado, tanto en linea de comandos con el parámetro:
--textspeechstopprogram

Como en el menú, lo encontraréis justo debajo del Speech program.

Hay la misma restricción con la ruta con espacios del speech program, que no puede estar en una ruta que tenga espacios.

Cada vez que se detenga el texto, se hará como antes (vaciando la cola de speech) y también llamando al script de paro que le indiquéis.
He creado dos de ejemplo, uno para festival (linux stop_festival_filter.sh) y otro de paro de windows para espeak (stop_win_espeak.bat), están en la misma carpeta de los script de speech.

El problema que he visto es que como el stop se lanza, y el emulador no se espera, si tarda en arrancar el script de paro, puede ser que pare no el proceso activo de speech, sino el siguiente... Pero bueno, yo es que lo pruebo con windows en máquina virtual y me va muy lento, supongo que a vosotros os irá bien. En Linux también lo he probado y me va rápido y correcto.

Para descargarlo, aun no me deja sourceforge subir archivos, por tanto hay que recurrir a mi repositorio en google:

https://sites.google.com/site/chernande ... 072015.rar

Saludos
César


Arriba
 Perfil  
 
NotaPublicado: 29 Jul 2015 21:39 
Desconectado
Yiepp
Yiepp

Registrado: 03 Nov 2013 22:56
Mensajes: 69
Hola:
Bien, no he conseguido que mi script funcione en Linux. También lo he intentado con el comando spd-say (que interactúa directamente con Speech Dispatcher), y tampoco. Aunque creo que lo segundo podría deberse a que con eSpeak curiosamente tampoco va.
Veamos: con spd-say y eSpeak lo he probado siguiendo la estructura del script de Festival (cat |...) y la estructura del script que interactúa con say (asignando `cat`a una variable y verbalizándola). En ambos casos no dicen nada. ¿Se os ocurre por qué puede ser o algún otro modo de intentarlo?
Intentaré añadir la funcionalidad de SAPI5 a mi script, a ver si esta vez se comporta. Tanto si lo consigo como si no, lo subiré a GitHub y pasaré fuentes y binarios, a ver si os funciona. Por cierto, aviso de que actualmente compilado ocupa 12,2 MB.
Saludos!


Arriba
 Perfil  
 
NotaPublicado: 30 Jul 2015 13:00 
Desconectado
Yiepp
Yiepp

Registrado: 03 Nov 2013 22:56
Mensajes: 69
Hola:
Al fin he conseguido que tanto los lectores de pantalla soportados por accessible_output2 (JAWS, NVDA, Supernova, Hal, Window Eyes y PC Talker) como SAPI 5 funcionen. No sé si Voiceover funciona, si alguien lo pudiera testear se lo agradecería (ver más abajo).
Así que, como lo prometido es deuda, aquí tenéis el código fuente y la versión 1.0 (que espero que sea la última). De momento el código fuente actualizado y el de la versión 1.0 son el mismo, para los curiosos :) .
No he incluido ningún bat ni shell script, porque creo que son fáciles de crear, basándose en los que ya están incluidos. Sin embargo, si queréis que incluya alguno (mejor que sea solo para Windows, porque ahí sé que seguro funciona) se me avisa.
En Windows, detecta automáticamente el lector de pantalla que se está usando. Si queréis usar SAPI5, tenéis que especificarle --sapi y un número empezando por 1. Si queréis ver qué números podéis introducir con --sapi, podéis ejecutar solo el programa (sin que dependa de ZEsarUX), especificándole un archivo a leer y --sapi, sin número. Para pararlo, pulsad ctrl+c.
Para testear esto en Mac, antes de ejecutar el script tenéis que activar VoiceOver con Comando + F5 (se desactiva igual). El script funciona como el resto de filtros para Unix, es decir, hay que pasarle el texto después del nombre de archivo. Si todo va bien, debería funcionar.
Si no funciona, haced lo siguiente: ejecutad el script main.py en modo interactivo únicamente (python -i main.py) y pasadle algo para que verbalice. Si aun así no funciona y no muestra ningún mensaje de error, entonces me pierdo. Si por el contrario funciona, se me avisa y busco cómo solucionarlo (a ver si tengo suerte).
No sé cómo hacer para que funcione en Linux. Seguiré haciendo pruebas, ya os contaré.
Saludos!


Arriba
 Perfil  
 
NotaPublicado: 30 Jul 2015 18:59 
Desconectado
Dragón
Dragón

Registrado: 17 Sep 2014 12:58
Mensajes: 114
Hola Sukil.

He bajado el código fuente de tu ZEsarUX AO2 pero no he conseguido que funcione en Mac.
Entiendo que para enviar texto a Voiceover debo usar algo asi:

python main.py texto.txt

Pero esto me daba la salida, junto con el error en la ultima linea:

Traceback (most recent call last):
File "main.py", line 2, in <module>
import tts, time
File "/Users/chernandezba/Downloads/zesarux-ao2-1.0/src/tts.py", line 1, in <module>
import accessible_output2.outputs as ao2
File "/Users/chernandezba/Downloads/zesarux-ao2-1.0/src/accessible_output2/outputs/__init__.py", line 14, in <module>
from . import voiceover
File "/Users/chernandezba/Downloads/zesarux-ao2-1.0/src/accessible_output2/outputs/voiceover.py", line 2, in <module>
from builtins import str
ImportError: No module named builtins


Me encuentro en ese voiceover.py una sentencia tal como:

"from builtins import str"

Buscando por goole parece que ese builtins está cambiado por "__builtin__" en otras versiones de python.

Por tanto sustituyo la sentencia por :

"from __builtin__ import str"

Y vuelvo a lanzar el script:

cesarmac:src chernandezba$ python main.py /tmp/texto.txt
Traceback (most recent call last):
File "main.py", line 3, in <module>
import fix_win32com
File "/Users/chernandezba/Downloads/zesarux-ao2-1.0/src/fix_win32com.py", line 1, in <module>
import win32com.client
ImportError: No module named win32com.client


Y ahora con ese error, "ImportError: No module named win32com.client", me da a mi que algo no está bien... que esto es un Mac y se queja de algo de Windows.... :(

No te puedo ayudar mucho mas con esto, mis experiencias en el pasado con python no han sido nunca muy favorables y como te comentaba, voy a andar bastante ocupado en los próximos dias...

Saludos!
César


Arriba
 Perfil  
 
NotaPublicado: 30 Jul 2015 19:01 
Desconectado
Dragón
Dragón

Registrado: 17 Sep 2014 12:58
Mensajes: 114
Hola Sukil y Fernando.

Debido a todo el soporte, beta testing, scripting y demás que me estáis haciendo con el tema de la Accesibilidad en ZEsarUX, os quiero agregar a mi archivo de agradecimientos (ACKNOWLEDGEMENTS), si no tenéis inconveniente.
Entiendo "Fernando Gregoire" que ese es tu nombre real y es así como quieres que aparezca en el archivo, no?

Saludos
César


Arriba
 Perfil  
 
NotaPublicado: 30 Jul 2015 19:21 
Desconectado
Dragón
Dragón

Registrado: 17 Sep 2014 12:58
Mensajes: 114
Hola

Actualizo, ya funciona :)
El error ese del módulo win32, lo he solucionado vaciando por completo ese python, dado que solo usa una función de Win32.
Haciendo esto solo sucede este error:

Traceback (most recent call last):
File "main.py", line 17, in <module>
tts.speak(cmd.args.text, False)
AttributeError: 'Namespace' object has no attribute 'text'

En el propio módulo main.py. Parece que la sentencia:
tts.speak(cmd.args.text, False)

No es correcta, ese cmd.args.text no existe.

Entonces lo que he hecho ha sido sustuirlo por:

tts.speak(sys.argv[1], False)

Y ahora sí que funciona :)
Pero el parámetro a enviar no es un archivo sino el texto tal cual, por ejemplo:

python main.py "Hello how are you"

Al ejecutar esto muestra el texto por consola:
/usr/bin/say

Y puedo escuchar el texto que le he pasado en inglés.

Cosa que me hace sospechar que directamente lanza un proceso "say" (lo mismo que yo hago en el script de mac_os_say.sh de ZEsarUX. Y efectivamente veo ese proceso say en memoria:

say -v Alex -r 300 Hello how are you


O sea que estos procesos python acaban llamando a un comando say del mac os.

Resumiendo, los cambios que he hecho, son:

-archivo ./accessible_output2/outputs/voiceover.py
cambiar builtins por __builtin__

-archivo ./fix_win32com.py
vaciarlo

-archivo main.py
cambiar la ultima linea
tts.speak(cmd.args.text, False)
por

tts.speak(sys.argv[1], False)


Saludos
César


Arriba
 Perfil  
 
NotaPublicado: 31 Jul 2015 01:23 
Desconectado
Yiepp
Yiepp

Registrado: 03 Nov 2013 22:56
Mensajes: 69
Hola:
Gracias César por el testeo. Sinceramente, en lo único en lo que tengo excusa es en lo de builtins a __builtin__ (no tenía ni idea). El resto, se ve que en una de tantas revisiones que le hice al código, lo habría quitado, y después olvidé ponerlo de nuevo. Sin duda un fallo imperdonable.
En fin, solucionado está. Además de eso, ahora si no hay lector de pantalla detectado, no es necesario añadir --sapi como antes. Descargad la nueva versión desde aquí.
Dices que en vez de VoiceOver se ejecuta say. Qué raro. Si lo has activado con comando+F5 antes de ejecutar el script, debería ir. Por si acaso lo miraré.
Saludos,
Sukil


Arriba
 Perfil  
 
NotaPublicado: 31 Jul 2015 10:33 
Desconectado
Dragón
Dragón

Registrado: 17 Sep 2014 12:58
Mensajes: 114
Hola Sukil.

Habilitar voiceover o no en el Mac no afecta para nada. Tu programa sigue usando el proceso say independientemente del voiceover.

Saludos
César


Arriba
 Perfil  
 
NotaPublicado: 31 Jul 2015 12:10 
Desconectado
Yiepp
Yiepp

Registrado: 03 Nov 2013 22:56
Mensajes: 69
Hola César:
Gracias por la información. Según veo, puede haber dos factores que causen esto: el primero y más importante, que el control de VoiceOver por AppleScripts esté desactivado (no sé si está activado por defecto). Y el segundo, que al tener say y VoiceOver la misma prioridad, say tome las riendas del asunto.
Para comprobar esto, teniendo VoiceOver activado, hay que pulsar Control + Opción + F8. Se abrirá la utilidad VoiceOver. Mira si en la pestaña general la opción "permitir controlar a VoiceOver usando Apple Script" está activada. Si aun así no funciona, en el archivo say.py, después de la línea:
Código:
 name = 'Apple Say'

añade una con el texto:
Código:
 priority = 101

Y si ya, con todo esto no funciona, me rindo :) .
Tengo un poco abandonado a Linux. Voy a hacer algunas pruebas más con Speech Dispatcher, y si no consigo nada habrá que forzar al usuario final a instalar espeak y python-espeak (una solución que quiero evitar).
Saludos!


Arriba
 Perfil  
 
NotaPublicado: 31 Jul 2015 17:56 
Desconectado
Dragón
Dragón

Registrado: 17 Sep 2014 12:58
Mensajes: 114
Hola Sukil

Ha funcionado lo que me has comentado. Activando "permitir controlar a VoiceOver usando Apple Script" en utilidad voiceover, cada vez que lanzo el script ya no aparece por consola el texto "/usr/bin/say" y el texto a reproducir se integra con voiceover. Es mas, cuando se activa voiceover, aparece un cuadro de texto por encima de la ventana activa que siempre muestra en texto lo que la voz de voiceover reproduce. Pues bien, al lanzar tu script, el texto que se le pasa también aparece en dicho cuadro de texto.

Mirando los procesos del sistema en ejecución, en vez del comando say, veo un comando osascript, por ejemplo:

osascript -e tell application "voiceover" to output "Hola que tal"

Luego lo siguiente que he hecho ha sido crear un script shell para mi ZEsarUX, que cambie al directorio donde está el script de pytohn y lo ejecute con el texto a leer...
El script simple es:

#!/bin/bash

cd /Users/chernandezba/Downloads/zesarux-ao2-1.0/src
TEXTO=`cat`

python main.py "$TEXTO"



Se integra en el emulador pero tiene un gran inconveniente, y es que cuando se lanza el script no se espera a que se reproduzca el texto, sino que se envía a voiceover y el programa finaliza al momento.
Por tanto, en el emulador, las lineas de texto que se tienen que ir enviando una a una (y que el emulador espera a que finalice el proceso), se escuchan todas seguidas, pero de tal manera que se empieza a leer una linea, se leen dos letras quizá y se salta a la siguiente línea.

Así por ejemplo al abrir el menu, que tenemos:

Smart Load
Machine Selection
Snapshot Options
etc..

En ZEsarUX, con los filtros de speech por defecto se va leyendo una a una cada linea. Pero lanzando tu script se oye mas o menos esto:
S
M
S
T
H
A
D
D
G
M
C
H
E
F
Active item: Help L

O sea solo se lee bien la ultima linea.

No se si se podria hacer de alguna manera que el script de python no finalice hasta que no acabe de reproducir el texto que se le envia...

Bueno quizá mire en el propio script a ver si encuentro algo.
Por cierto muy completo el VoiceOver de Mac, tiene montón de opciones...

Saludos
César


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 166 mensajes ]  Ir a página Anterior  1 ... 7, 8, 9, 10, 11, 12  Siguiente

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM