Mapas o vistas del sitio

Aquí se muestran diversas maneras de acceder al contenido publicado; en primer lugar en sentido cronológico, luego por categorías principales y finalmente por secuencias temáticas (aún muy incipiente). Hacer clic en cualquiera de los enlaces lleva a una lista de notas que corresponden sea con la fecha, la categoría o el tema respectivo.

Escribir para la ciudad

Me entero por BldgBlog, que a su vez refleja esta nota, del Proyecto Autobiografía llevado a cabo por la alcaldía de Philadelphia y un grupo dedicado al 300 aniversario del nacimiento de Benjamin Franklin (que supongo nació en esa ciudad). Solicitaron autobiografías a quien quisiera hacerlo, con la condición de que no excediesen las 300 palabras.

Más de 300 personas cumplieron con el pedido y de este grupo seleccionaron 20. Todo este proceso se desarrolló entre abril y mayo de este año. Las autobiografías seleccionadas fueron convertidas en grandes posters y colocadas en ciertas paradas de autobús.

Parada con autobiografía

Además, el proyecto apoyó a los potenciales escritores con ideas para empezar y con una lista de cotejo para revisar el propio trabajo. Si esto no es un proyecto interesante -y endógeno- no sé qué lo será. Supongo que a estas cosas se llega después que se resuelven los asuntos de agua, luz y basura.

Y el agua tibia

Dicen que un grupo de científicos, de dos universidades prestigiosas, han realizado un experimento mediante inspección con resonancia magnética de las áreas cerebrales asociadas a la memoria, en el que pusieron a unos veinteañeros a predecir cierto resultado con unas cartas de formas varias. Primero los dejaron hacerlo sin distracción y luego dejándolos oir secuencias de pitos altos y bajos y haciéndolos contar los pitos altos. Al preguntarles sobre el asunto posteriormente, las respuestas eran más certeras sobre la tarea hecha sin distracción. Conclusión: si haces varias cosas mientras intentas aprender algo, te va a costar más que si estás concentrado... !

Para hacerle algo de justicia, en el artículo original los autores plantean que el experimento pretende dilucidar la relación entre las dos áreas principales de la memoria, que denominan 'declarativa' asociada a los lóbulos temporales y la 'procidemental' que almacena los hábitos y demás mañas, localizada en el estratum, un corotico que tenemos en el cerebro y que parece servir para algo entonces. El resultado es que las dos áreas compiten y cuando hay distracciones el estratum toma un papel preponderante, y por eso, no se recuerdan tan bien las cosas que serían 'declarativas'.

Ahora me queda la duda de cuál de las dos versiones es más correcta, o si la segunda no es más que la versión erudita de la primera. En fin, que la ciencia avanza aunque estemos distraídos.

Texto a voz casi automático, o cómo recitar un libro

Ahora que he hecho el proceso completo al menos una vez, creo estar en condiciones de echar el cuento de cómo producir un audiolibro en GNU/Debian(testing)/Linux. Se supone que disponemos de un libro -o cualquier otro texto- en formato PDF, al final se obtiene un cierto número de archivos mp3 u ogg que pueden escucharse en la computadora o en un tocador portátil de esos formatos.

Los programas requeridos -aparte de las herramientas normales del terminal- son: festival (incluye text2wave y voz en español), pdftotext o ps2text, y lame para producir MP3.

Primero, hay que convertir el archivo PDF a texto y el problema puede estar en la codificación del texto. En esta máquina la codificación predeterminada es iso-8859-1 o Latin1. También puede pasar que la conversión no se pueda realizar porque el conversor no "conoce" la codificación. En ese caso, hay que agregar la línea textEncoding Latin1 en el archivo de configuración de xpdf, en debian está en: /etc/xpdf/xpdfrc. Así que hay dos opciones:

  • pdftotext -enc Latin1 archivo.PDF
  • pstotext -output archivo.txt archivo.pdf

Después de probar ambas, me quedo con la última. ps2text hace un mejor trabajo de conversión del texto a Latin1 (de hecho es lo que hace de forma predeterminada), elimina caracteres ocultos y deja el texto más limpio (por ejemplo, convierte los guiones largos en ---). Este proceso tarda unos pocos segundos.

Pero el conversor de texto a voz comete actualmente algunos errores intolerables, como no entender los signos ¿ (pronuncia "equis" y deletrea la palabra que sigue). Así que hay que pulir el texto, esto es, corregir la ortografía (los acentos y demás detalles son importantes para la pronuciación correcta) y eliminar los caracteres no pronunciables o que causan esos errores en el robot-lector, en el caso que nos ocupa ¿ ¡ - y similares. Para ello se puede hacer un pequeño libreto (script) con sed, como líneas como esta: sed -i -e 's/¿/ /g' archivo.txt. Una vez pulido el texto, ya se puede enviar al lector, pero el resultado sería un solo archivo excesivamente largo si se trata de un libro (unas 300 páginas pueden llevar a 200 megabytes de archivo de sonido y eso en un formato comprimido). Así que es preferible 'picar' o dividir el texto original en trozos para que sea más sencillo detener al lector y llegar a un punto dado.

Para dividir el archivo ya corregido en pedazos de (por ejemplo) 300 líneas: split -l 300 -d archivo.txt prefijo. El 'prefijo' es el nombre que tendrán los archivos divididos seguidos de un número secuencial, por lo tanto esa orden crea una serie de archivos con nombre prefijo01, prefijo02, etc. Si text2wave se confunde con los nombres de los archivos, se les puede agregar la extensión .txt de forma automática así: rename 's/$/\.txt/' prefijo*

Hasta aquí, no se ha producido ningún sonido, aparte del típico repiqueteo del teclado. Ahora hay que ordenarle a text2wave que vaya leyendo cada uno de los archivos text2wave prefijo04.txt -o archivodesonido04.wav. Pero, puede pasar -así fue en este caso- que el lector predeterminado no sea el que queremos. Para hacer que la voz elegida por text2wave para leer sea la que realmente se desea hay que modificar -o crear, si no existe- un archivo llamado .festivalrc y colocar esta línea: (set! voice_default 'voice_el_diphone): la voz "el_diphone" que corresponde a un lector español será la que haga el trabajo; de otro modo muy bien puede suceder que el lector sea un gringo y la lectura será consecuentemente errada.

Además, es preferible hacer de una vez la conversión a un formato portátil, sea MP3 u Ogg, de una de estas formas:

  • text2wave prefijo01.txt | lame - prefijo01.mp3
  • text2wave prefijo01.txt | oggenc - -o prefijo01.ogg

Ya que pueden resultar muchos archivos (entre 10 y 100, dependiendo de la longitud que hayamos decidido poner como norma) es mejor hacer un libreto o script, algo como:


cuenta=1
for i in `ls prefijo*`
do
text2wave $i | lame - prefijo${cuenta}.mp3
cuenta=`expr $cuenta + 1`
done

Lo que queda es esperar un rato; según mi cuenta, aproximadamente una décima parte del tiempo de lectura real. Es decir, si la lectura del libro completo dura unas 30 horas, el proceso de conversión de texto a voz tardará unas tres; de hecho algo menos, dependerá de la velocidad de la máquina y demás detalles.