Acceder

Ver la Versión Completa : [ CONSULTA ] Manejar TTS diferente?


alohl669
15/05/13, 00:32:36
Vereis, despues de leerme el tutorial de variables y ver el tema del despertador me ha dado por hacerme un lector de hora que vaya un poco mas allá y lea la hora como la leeriamos todos evitano la lectura estricta de 22.45 para que lea "las 11 menos cuarto de la tarde". No ha resultado muy dificil aunque hay que admitir que una cosa tan tonta como la hora tiene un monton de condiciones. Pero vayamos al tema, nunca antes habia usado el motor tts en tasker y, cuando tenia el S2 habia dos motores para elegir, asi que cuando he dado a "decir" me he imaginado como seria despertarse con semejante pronunciacion y me ha dado un poco de grimita xD(he probado a cambiar los parametros de velocidad y tono y sigue dandome grima)

Conoceis algun motor TTS que este algo mas elaborado? no me digais el de samsung porque ya no tengo un S2

PD: Si quereis pongo el codigo que he usado para la lectura, seguro que alguien ve algun modo de mejorarlo o simplificarlo.

establecer variable %hora, valor %TIME
Seccion de variable %hora desde 1, longitud 2 almacenar en %hora1
Seccion de variable %hora desde 4, longitud 2 almacenar en %hora2

If %hora2>30
- establecer variable %hm11 valor %hora1+1(calcular)
- establecer variable %hm12 valor %hora2-30(calcular)
- establecer variable %hm22 valor 30-%hm12(calcular)
- establecer variable %hm22 valor cuarto If %hora2=45
- establecer variable %hm10 valor %hm11
- establecer variable %hm10 valor %hm11-12 if %hm11>12(calcular)
- establecer variable %horaescrita valor Son las %hm10 menos %hm22
- establecer variable %horaescrita valor Son la una menos %hm22 if %hm10=01
Else if %hora2=30
- establecer variable %hm11 valor %hora1
- establecer variable %hm11 valor %hora1-12 if %hora1>12(calcular)
- establecer variable %hm11 valor 12 if %hora1=00
- establecer variable %horaescrita valor Son las %hm11 y media
- establecer variable %horaescrita valor Son la una y media if %hm11=01
Else
- establecer variable %hm11 valor %hora1
- establecer variable %hm11 valor %hora1-12 if %hora1>12(calcular)
- establecer variable %hm11 valor 12 if %hora1=00
- establecer variable %hm12 valor y %hora2
- establecer variable %hm12 valor y cuarto if %hora2=15
- establecer variable %hm12 valor en punto if %hora2=00
- establecer variable %horaescrita valor Son las %hm11 %hm12
- establecer variable %horaescrita valor Son la una %hm12 if %hm11=01
End If

establecer variable %AMPM valor %horaescrita de la mañana
establecer variable %AMPM valor %horaescrita de la tarde if %hora1>11

maid450
15/05/13, 07:22:51
Personalmente uso IVONA (https://play.google.com/store/apps/details?id=com.ivona.tts) para algunas cosas y me gusta bastante, desde luego mucho más que la voz por defecto...
Además por el momento es gratuita, aunque ya avisan que cuando salga de Beta dejará de serlo.

Primero hay que instalar el paquete general (el enlace que he puesto) y luego ya te da opción de descargar entre distintas voces de distintos idiomas.

P.D. Al menos a mi si me interesa ver el código usado para la lectura

Caravantes
15/05/13, 08:27:49
Estoy en una situación similar. Antes tenía un HTC Desire y venía con una voz PICO que era bastante razonable. En este aspecto, cambiar al Nexus 4 ha sido decepcionante, yo diría que me provoca repelús.

maid450 nos recomienda Ivona y he ido a husmear en su web http://www.ivona.com . En esa página, en la parte superior izquierda se ve una bandera, y ahí se pueden escuchar diferentes voces, hay dos para español. Me ha gustado la voz Enrique, parece muy natural.

Creo que me voy a descargar este Ivona-Enrique. Y lo malo es que voy a tener que cambiar ese detalle en tropecientas acciones DECIR que tengo repartidas en múltiples tareas. Tal vez sea buena idea tener una sola tarea para la acción DECIR y desde las otras tareas invocar a esa con el parámetro del texto a vocalizar. De esta forma, cuando quiera cambiar la voz puedo hacerlo en un solo sitio y con rapidez.

Otra opción, al menos para mi software: En las acciones DECIR, usar la opción DEFAULT : DEFAULT, que es de la voz por defecto (recuerdo que antes no se podía hacer así, había que elegir una voz concreta). Esa voz por defecto se establece en los ajustes de Android, Sistema-Accesibilidad, Síntesis de voz. Creo que éste método es mejor.

alohl669, porsupuesto que queremos ver esa tarea que convierte las horas a expresiones coloquiales. Te sugiero que la pongas en un hilo independiente, gracias.

alohl669
16/05/13, 23:28:44
Ya he publicado el codigo arriba. Seguramente se pueda simplificar un poco pero llegados a un punto deberia cambiar alguna variables para no perderme asi que por ahora lo dejo asi xDD

Esta requeteprobado, si os da algun problema decirmelo y lo reviso que igual algo se me haya podido pasar un poco. por supuesto el resultado lo deja en la variable %AMPM a la cual llamo desde el comando decir(aunque dejaria un wait de 2 segundos entre la ejecucion de la hora escrita y el "decir")

He probado Ivona y he decidido dejarlo por varios motivos:
1º lo que comentas de beta, no quiero acostumbrarme a algo bueno sin saber lo que acabarán cobrando
2ª Ocupa 120Mb
3º Con esta tarea lee los ceros mientras que el de base no los lee, por ejemplo el tts que me viene de base en el nexus 4 me dice que "son las uno y media de la mañana" mientras que ivona me dice que "son las cero uno y media de la mañana"

PD: No se como acostumbrais a publicar aqui el codigo, si veis que hay que ponerle color dimelo y si puedo lo coloreo un poco. acabo de leerte caravantes y en cuanto me digais si debo mejorar la gramatica lo publico en uno aparte

Otra cosa, vereis que en algunos casos el numero de lineas crece solo por hacer uso de operaciones simples, ya que no se si podria por ejemplo hacer operaciones del tipo x+y-(JJ+X-Y2)

aun se puede mejorar la expresividad, por ejemplo decir "una" en lugar de "uno" pero habria que añadir alguna condicion mas. pero si quereis me animo y lo pongo xDD

Caravantes
17/05/13, 00:55:33
Hola alohl669.
Ya veo esa tarea, está curiosa. Gracias.
Yo creo que está bastante bien así, no hacen falta colores. Es una tarea sencilla y fácil de comprender. Para otras más complejas solemos añadir algunos comentarios explicativos, ya sea entre parénteis a la derecha de cada acción, insertando párrafos entre las acciones o añadiendo las aclaraciones depués de la tarea; eso cada uno lo organiza como quiere. Te sugerí que la pusieras en un hilo independiente para poder enlazarla mejor desde el recopilatorio de tareas y perfiles. También la puedes dejar así, como tú quieras.
Si quieres ver algún ejemplo de cómo publicamos tareas otras personas, además de los ejemplos del recopilatorio, en el siguiente enlace tienes dos tareas que hemos publicado recientemente Maid450 y yo mismo.
http://www.htcmania.com/showthread.php?p=8699477#post8699477

Otra cosa, vereis que en algunos casos el numero de lineas crece solo por hacer uso de operaciones simples, ya que no se si podria por ejemplo hacer operaciones del tipo x+y-(JJ+X-Y2)

No hay ningún problema en hacer operaciones matemáticas complejas como esa. Tasker las procesa bien siempre que te acuerdes de marcar la casilla "Calcular". Tenemos un hilo dedicado al procesamiento matemático de Tasker: tras el artículo inicial hay ejemplos de fórmulas y cosas similares a la que has planteado.
http://www.htcmania.com/showthread.php?t=571609

Con Ivona... yo me he llevado un chasco porque la voz Ivona-Enrique que me gustó tanto en la web... no está disponible para Android, solo para Windows (y al precio de 39 euros). Me he descargado la voz Ivona-Conchita y parece que me gusta más que la de Google, pero me reservo el derecho a quitarla si Google mejora o si Ivona me pide dinero. Me pregunto si la voz de Google será peor porque quizá han preferido cortarse con los megabytes, los 120 de Conchita son una pasada.