FocusLec lee documentos en voz alta y marca la palabra que suena, como un karaoke. La marca avanza al ritmo de la voz, un poco por delante, para que la vista la encuentre cuando se oye. De ahí el nombre: pone el foco en lo que se lee. Además trae opciones para ajustar la lectura: tamaño y tipo de letra, espaciado, contraste, velocidad y pausas. Y un modo para recorrer el texto sílaba a sílaba, sin voz.
FocusLec en la web depende tanto de las voces que tengas instaladas en el sistema como del navegador que utilices. Para un mejor funcionamiento, es recomendable utilizar la versión iOS o Android.
Se abre un documento, se toca Leer y la voz del propio dispositivo empieza a pronunciarlo. Mientras suena, se resalta cada palabra, frase o párrafo que se está leyendo.
Puede servir para practicar la lectura en otro idioma, para seguir un texto largo sin perder el sitio o para quien quiera controlar la velocidad, la tipografía, el interlineado y el resto de opciones mientras escucha el documento.
Las opciones de lectura se eligieron a partir de estudios publicados sobre presentación del texto, voz sintética y dislexia. Aun así, la aplicación no la ha diseñado ni validado nadie especializado en dislexia, baja visión u otras dificultades de lectura. Se ofrecen para que cada persona pruebe qué le va mejor.
Se puede marcar la palabra, la frase o el párrafo. La marca de palabra es un recuadro que se estira hacia la siguiente y suelta la anterior sin saltos. Mantiene el mismo compás al pasar por comas y puntos. También se pueden atenuar los párrafos que no se están leyendo.
Cuatro tipografías, entre ellas OpenDyslexic y Atkinson Hyperlegible. Tamaño de 14 a 44 píxeles, interlineado, espacio entre letras y entre palabras, ancho de columna de 28 a 72 caracteres y fondos con distintos contrastes.
Los documentos se abren y se leen en el propio aparato. No hay cuentas de usuario ni registro. Ni se guardan ni se comparten datos personales.
Android e iOS traen su motor de voz y la aplicación usa ese. La voz es lo que más cambia cómo suena la lectura. En iPhone, iPad y el navegador de un Mac, si hay una voz de más calidad sin elegir, o ninguna en el idioma del documento, la aplicación lo avisa y explica cómo descargarla gratis.
La voz se estira hasta 0,6×; por debajo, lo que crece son las pausas. Se reparten por grupos de sentido (“en un lugar”, “de la Mancha”): un hueco corto entre las palabras del grupo, el doble al cerrarlo y más en las comas. Junto a la velocidad se ven las palabras por minuto, medidas mientras se lee.
Mientras suena la voz, la pantalla se mantiene encendida. Al pausar, el sistema vuelve a apagarla cuando le toque.
El botón “Sílaba a sílaba”, en la cabecera, cambia la forma de leer: la voz se calla y el texto se recorre sílaba a sílaba. La sílaba que toca se agranda dentro del recuadro; lo leído se queda en el color normal y lo que falta, atenuado. Sirve para quien todavía descifra al leer y necesita fijarse en una sílaba cada vez.
Se avanza con “Siguiente” y se vuelve con “Anterior”. También se puede deslizar el dedo en horizontal por el texto o por los botones (una sílaba cada 20 píxeles) o tocar una palabra para ir a su primera sílaba. El botón de reproducir pone el “Avance automático”, de 30 a 180 sílabas por minuto. Al final de cada palabra espera media sílaba más; tras una coma, una sílaba entera; al acabar la frase, dos.
El modo sílaba a sílaba, ocultar el menú y el reparto de las pausas por grupos llegan con la versión 1.1.0. Ya están en Android y en la versión web; en iPhone y iPad, cuando la App Store publique esa versión.
Encima de los botones, la palabra en curso partida por puntos (“a·cor·dar·me”) y con la sílaba marcada. Al tocarla, se oye la palabra.
La voz lee la frase o el párrafo, según se elija. Con “Sílaba con la voz” puesta, la marca va de sílaba en sílaba a la par que la voz. Al acabar, o al pulsar el botón de pausa, la marca vuelve a la sílaba en la que estaba.
La flecha hacia arriba de la cabecera la esconde entera y deja un botón en la esquina para sacarla otra vez. En un teléfono, con las opciones del modo abiertas, es lo que deja sitio al texto.
Parte en sílabas los seis idiomas de lectura. El español sigue la Ortografía de la RAE; el inglés usa el diccionario de pronunciación CMUdict y reglas para las palabras que no están en él. Italiano, portugués, francés y alemán tienen reglas propias, comprobadas con listas sacadas de sus diccionarios de referencia.
Las reglas no aciertan siempre. En francés coinciden con el diccionario Lexique en el 93 % de sus palabras y en alemán con Wiktionary en el 98 %; donde fallan, la palabra sale partida de otra manera. Las palabras compuestas largas del alemán son las que más se equivocan.
Con el nombre que llevan en la aplicación, para poder buscarlos.
El botón grande de la derecha. Cambia de nombre según lo que esté pasando.
Elige un fichero del dispositivo. También se llega compartiendo un documento desde otra aplicación.
La lupa abre un campo de texto. Lleva la vista a la primera aparición desde donde estás. Con las flechas se pasa a la anterior o a la siguiente; el botón de la izquierda vuelve a la primera del libro. No distingue mayúsculas ni tildes. Sí distingue la eñe.
Se arrastra para moverse por el libro. Mientras el dedo está puesto dice el capítulo al que se llega y el tanto por ciento, o la página en un PDF. Mueve la vista y no la lectura: para seguir leyendo desde ahí se toca una palabra.
El porcentaje leído, el índice sacado de los capítulos del libro y las flechas de frase anterior y siguiente, que sirven para repetir lo que no se ha entendido. En un PDF, además, la página del original.
Aparece junto al idioma y los ajustes cuando la voz se puede mejorar. Si hay una voz de más calidad instalada, la propone con un botón. Si no hay ninguna, explica dónde se descarga. Sale en iPhone, iPad y el navegador de un Mac, que son los sistemas que indican la calidad de cada voz.
El botón de las dos sílabas pone y quita el modo de leer sílaba a sílaba, sin voz. Está explicado en su apartado.
La flecha hacia arriba esconde la cabecera entera y deja un botón en la esquina para sacarla otra vez. Se recuerda al cerrar la aplicación.
Qué hace la aplicación, qué formatos abre, los créditos de las tipografías y el aviso de privacidad.
La palabra, la frase o el párrafo.
Seis posiciones, de “Bastante antes” a “Un poco después”. Con las de “antes”, el recuadro llega a cada palabra un poco antes de que suene, para que la vista la encuentre a tiempo. Viene en “Un poco antes”.
De un fondo apenas insinuado a uno bien marcado. El recuadro va por detrás del texto, nunca por encima.
Baja el contraste de todo lo que queda fuera del párrafo en curso.
De 0,2× a 2×; empieza en 0,85×. Con “Separar las palabras al leer despacio” puesto, la voz no se estira por debajo de 0,6× (sin él, de 0,7×) y el resto lo ponen las pausas. Junto al número aparecen las palabras por minuto, medidas mientras se lee, porque el mismo número suena distinto en cada voz.
“Seguida”, “Corta” o “Larga”: unos 0,3, 0,8 o 1,2 segundos de silencio entre una frase y la siguiente.
Viene activado. Cuanto más despacio se lee, más hueco queda entre las palabras: corto dentro de cada grupo de sentido, el doble al cerrarlo y más en las comas. A 0,5× son unos 110, 230 y 440 milisegundos. A velocidad normal no cambia nada. En la versión web la frase se parte en grupos y dentro de ellos no hay hueco: el navegador no admite marcas de pausa. Si se desactiva, aparecen “Separación entre palabras” y “Pausa tras las comas” para elegirlo a mano.
El motor de voz no pronuncia el bolo de una lista ni una flecha: los describe. En mitad de un párrafo se oye "bolo negro". Viene puesto en saltarlos. En pantalla siguen estando.
Español, inglés, francés, italiano, portugués (de Portugal o de Brasil) o alemán. Se propone solo a partir del documento y se puede cambiar. La voz se elige entre las que haya instaladas; las mejoradas y premium salen primero. Las que sintetizan en un servidor salen marcadas “por internet” y nunca se eligen solas.
Sistema, Con remate, Atkinson y OpenDyslexic. Se ofrecen como preferencia personal: cuál va mejor depende de cada persona y la única forma de saberlo es probarlas.
De 14 a 44 píxeles; empieza en 24. El texto se vuelve a repartir y la lectura sigue donde estaba.
Los tres por separado. Al subir el espacio entre letras, el de palabras sube con él para que las palabras no se junten; después se puede ajustar cada uno.
De 28 a 72 caracteres por línea, medido en caracteres y no en píxeles, que es como se decide el ancho cómodo de una columna.
Crema, Blanco, Noche y Alto contraste, este último en blanco y negro puros.
Español, inglés, francés, italiano, portugués o alemán, aparte del idioma en que se lee el documento.
Libros en EPUB sin protección anticopia, ficheros de texto, PDF y documentos de Word. Todos se pueden elegir desde el selector de ficheros o compartir desde otra aplicación: en Android sale en el menú de compartir y en "Abrir con"; en iPhone e iPad, en "Abrir con" y "Copiar en FocusLec".
Para empezar sin comprar nada, los clásicos que ya no tienen derechos de autor se descargan gratis en EPUB. El Quijote está en Project Gutenberg, que tiene miles de títulos en español y en inglés. Para literatura en inglés, Standard Ebooks publica ediciones revisadas y maquetadas con cuidado. A FocusLec le llegan limpias. Hay una lista de diez para empezar más abajo.
Cuando un documento no se puede abrir, la aplicación dice por qué y qué se puede hacer. Un PDF escaneado no tiene letras que leer, solo la foto de unas letras. Haría falta reconocimiento óptico. Un PDF con contraseña, o uno cuyo autor ha marcado que no se copie su texto, no se abre tampoco; leer en voz alta es copiar. Un EPUB con DRM está en el mismo caso. Una hoja de cálculo o una presentación se rechazan antes de intentarlo.
El PDF guarda dónde va cada letra en la página, no en qué orden se leen. Reconstruir ese orden es lo más difícil que hace la aplicación. A dos columnas todavía se le escapa algún sitio.
Cinco en inglés y cinco en español, ordenados por dificultad para quien lee en ese idioma o lo está aprendiendo. Todos se descargan sin registro y se abren tal cual en FocusLec.
| Nivel | Libro | Por qué | Dónde |
|---|---|---|---|
| Básico | Esopo, Fables | 284 fábulas de una página | Standard Ebooks |
| Básico–intermedio | Oscar Wilde, Children’s Stories | The Happy Prince, The Selfish Giant; 49.000 palabras | Standard Ebooks |
| Intermedio | Charles Dickens, A Christmas Carol | Corto: 28.600 palabras, unas dos horas | Standard Ebooks |
| Intermedio | Arthur Conan Doyle, The Adventures of Sherlock Holmes | Doce relatos independientes | Standard Ebooks |
| Avanzado | Jane Austen, Pride and Prejudice | 122.000 palabras, frases largas | Standard Ebooks |
| Básico | Wilkins y Luria, Lecturas fáciles con ejercicios | Escrito para aprender español: cuentos y fábulas con vocabulario | Project Gutenberg |
| Básico–intermedio | Félix María Samaniego, Fábulas | Fábulas cortas en verso, del siglo XVIII | Project Gutenberg |
| Intermedio | Gustavo Adolfo Bécquer, Obras escogidas | Incluye las Leyendas y las Rimas | Project Gutenberg |
| Intermedio | Benito Pérez Galdós, Marianela | Novela corta, prosa clara | Project Gutenberg |
| Avanzado | Miguel de Cervantes, Don Quijote | Las dos partes | Project Gutenberg |
Standard Ebooks da un índice de legibilidad para cada libro. Conviene no fiarse de él para elegir. Mide la longitud de frases y palabras, no lo raro que es el vocabulario: Dickens y Doyle salen "fáciles", con un 80. Un lector que empieza en inglés tropieza con palabras de 1843.
Los EPUB de Project Gutenberg llevan la licencia de Gutenberg al principio y al final. La aplicación la lee como parte del libro. Para empezar por la historia se toca la primera palabra del primer capítulo, o se busca con la lupa. Los de Standard Ebooks llegan sin ese añadido. De Samaniego, mejor la versión sin imágenes: 239 kB frente a 24 MB.
Todos figuran como dominio público en Estados Unidos. Los otros ocho son de autores muertos antes de 1931. En España también son libres. La traducción de Esopo (1912) y las Lecturas fáciles (1916) dependen de cuándo murieron sus traductores y autores. Eso no está comprobado.
Los documentos no salen. Se abren y se leen en el propio aparato. El texto del último que abriste, junto con las preferencias y la posición de lectura, se guarda en el almacenamiento privado de la aplicación para retomarlo al volver. Desinstalar la aplicación lo borra todo.
La aplicación hace una sola conexión al abrirse, siempre la misma: pide un fichero fijo del servidor del proyecto para saber si hay algún aviso publicado. No lleva parámetros, ni identificadores, ni nada sobre lo que estés leyendo.
Hay un caso en el que el texto sí sale y conviene conocerlo: algunas voces de Android sintetizan en un servidor. Cuando se elige una de ellas, el sistema operativo manda el texto a ese servidor y recibe el audio. Lo hace el sistema, no FocusLec. En la lista de voces aparecen marcadas "por internet" y la aplicación nunca las elige sola.
Se descarga desde una carpeta compartida. Sin la tienda de por medio no hay cadena de confianza, así que aquí se publican dos huellas SHA-256: la del certificado de firma y la del fichero de esta versión. El certificado identifica al desarrollador y no cambia entre versiones.
Versión 1.1.0 · Android 7.0 o posterior. Antes de instalarla, comprueba las huellas.
Descargar el APKSe instala desde la App Store y las actualizaciones llegan por la propia tienda. La firma la comprueba Apple al instalar, así que aquí no hace falta mirar huellas.
iOS 15.0 o iPadOS 15.0 o posterior.
Abrir en la App StoreLa misma aplicación, compilada para un servidor web. Sirve para ver de qué va antes de instalarla. La voz la pone el navegador, así que suena distinta a la del móvil. El resaltado palabra a palabra también depende de él: Chrome y Edge lo emiten, Safari no de forma fiable y ahí la marca cae a la frase.
Abrir en el navegadorUna huella SHA-256 es un resumen del fichero: si cambia un solo byte, sale una huella completamente distinta. Si la del fichero descargado coincide con la que se publica aquí, el fichero es el original y nadie lo ha tocado por el camino.
Identifica a quien firma la aplicación y es la misma en todas las versiones. Basta con apuntarla una vez para comprobar cualquier actualización.
SHA-256: 1bb51d477ee7c9a951d86027b92218c2b6c8ef37b8b5fcb8b5ca7e954990b36a
Titular: CN=Luis Julve Larraz, O=Nonsense Development Group, L=Zaragoza, C=ES
Solo vale para este fichero. Cambia con cada versión y aquí se publica siempre la vigente.
SHA-256: 7005674c4e918cf225c522d3d46e08dfa7ef097b53b2d0223c5f18a0a2fbac84
Tamaño: 4.387.751 bytes (4,2 MiB) · Fichero: FocusLec.apk
En macOS o Linux. Abre una terminal en la carpeta de descarga y ejecuta:
shasum -a 256 FocusLec.apk
En Windows. Abre PowerShell en esa misma carpeta:
certutil -hashfile FocusLec.apk SHA256
En el propio móvil Android. Hay aplicaciones gratuitas en Google Play que calculan la huella SHA-256 de un fichero. Se abre el APK desde una de ellas y se compara el resultado.
El resultado tiene que coincidir carácter a carácter con la huella publicada aquí. Si no coincide, no instales el fichero y vuelve a descargarlo desde el enlace original.
Hace falta el SDK de Android con sus build-tools. En la carpeta de descarga:
apksigner verify --print-certs FocusLec.apk
En la salida, la línea Signer #1 certificate SHA-256 digest tiene que coincidir con la huella del certificado publicada arriba.
El proyecto se plantea también como ejemplo del proceso de desarrollo de una aplicación de este tamaño: las épicas, las decisiones que se toman, los diagramas, etc.
Me llamo Luis Julve y llevo más de treinta años trabajando en informática, últimamente en gestión de equipos, procesos y proyectos. FocusLec es uno de los proyectos de Nonsense Development Group, que es como llamo a mi laboratorio de aplicaciones móviles: las hago solo, de la interfaz al servidor. Luego las publico.
Escribo el código con ayuda de herramientas de IA, con la metodología que ahora se denomina Spec Driven Development: los requisitos se dejan escritos primero y el código sale de ellos. Lo reviso y lo pruebo antes de publicarlo.