UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le...

102
INTEGRACIÓN DE PERSONAS NO VIDENTES AL CINE A TRAVÉS DE DISPOSITIVOS MÓVILES MEMORIA PARA OPTAR AL TÍTULO DE INGENIERO CIVIL EN COMPUTACIÓN GUSTAVO RAFAEL GARCÍA GÁRATE PROFESOR GUÍA: JAIME HERNAN SANCHEZ ILABACA MIEMBROS DE LA COMISIÓN: ALEJANDRO HEVIA ANGULO NELSON ANTRANIG BALOIAN TATARYAN SANTIAGO DE CHILE 2007 UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

Transcript of UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le...

Page 1: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

INTEGRACIÓN DE PERSONAS NO VIDENTES AL CINE A TRAVÉ S DE DISPOSITIVOS MÓVILES

MEMORIA PARA OPTAR AL TÍTULO DE INGENIERO CIVIL EN COMPUTACIÓN

GUSTAVO RAFAEL GARCÍA GÁRATE

PROFESOR GUÍA: JAIME HERNAN SANCHEZ ILABACA

MIEMBROS DE LA COMISIÓN: ALEJANDRO HEVIA ANGULO

NELSON ANTRANIG BALOIAN TATARYAN

SANTIAGO DE CHILE 2007

UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

Page 2: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

2

RESUMEN

El cine es una expresión cultural orientada generalmente a entretener a un

público vidente, capaz de disfrutar la recepción de estímulos tanto visibles como

audibles. Por esto, es poco frecuente ver a una persona ciega en una sala de cine.

Si bien es cierto, se ha trabajado constantemente en la adaptación de películas

de cine para gente no vidente en todo el mundo, pero las soluciones alcanzadas

entregan una nueva versión de una película, distinta a la original, con la inclusión de

relatos complementarios (en algunos casos), apta para un público con discapacidad

visual, pero poco grata para personas videntes, formando así cintas exclusivas para

ciegos.

El objetivo de este trabajo es realizar un sistema que rompa esta

segmentación, integrando a personas no videntes a una sala de cine y poder así,

compartir de un filme simultáneamente con gente dotada de visión, reforzando la falta

de estímulos visibles con relatos descriptivos de manera individual.

Para lograr esto, se facilitará un dispositivo móvil a cada espectador no vidente

al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las

escenas gráficas de una película (situaciones, gestos, locaciones, personajes

involucrados en las escenas, etc), dándole la flexibilidad de decidir cuanto apoyo

desee recibir, dependiendo de la capacidad de concentración e imaginación que tenga

el usuario.

La descripción de las escenas gráficas estará contenida en un archivo

denominado “guión descriptivo”, el cual presenta un formato específico y está

almacenado en un portal web, donde se permite aportar con la creación de nuevos

guiones descriptivos a cualquier persona.

Page 3: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

3

TABLA DE CONTENIDOS 1 INTRODUCCIÓN ....................................................................................... 7 2 MARCO TEÓRICO..................................................................................... 9

2.1 Trabajos anteriores.......................................................................... 9 2.2 El Cine y la discapacidad visual .................................................... 12 2.3 Sintetizadores de Voz.................................................................... 14

3 MOTIVACIÓN........................................................................................... 15 4 JUSTIFICACIÓN ...................................................................................... 16

4.1 Sincronización ............................................................................... 16 4.2 Formato del guión.......................................................................... 16 4.3 Origen del archivo ......................................................................... 17 4.4 Dependencia del archivo ............................................................... 17 4.5 Graduación de la pista de audio descripción ................................. 17

5 OBJETIVOS ............................................................................................. 19

5.1 Objetivo General............................................................................ 19 5.2 Objetivos Específicos .................................................................... 19

6 METODOLOGÍA....................................................................................... 20

6.1 Estudio de Factibilidad .................................................................. 20 6.1.1 Factibilidad de usuarios.................................................... 20 6.1.2 Factibilidad de recursos ................................................... 21

6.2 Hello World .................................................................................... 21 6.3 Estudio del dispositivo a utilizar..................................................... 22 6.4 Diseño del sistema ........................................................................ 22 6.5 Estudio de Sincronización ............................................................. 23 6.6 Análisis de velocidad de conexión................................................. 23 6.7 Análisis y toma de requisitos ......................................................... 24 6.8 Implementación de la aplicación.................................................... 24 6.9 Desarrollo del Portal web del sistema ........................................... 24 6.10 Pruebas con usuarios finales y correcciones:................................ 24

7 TRABAJO REALIZADO ........................................................................... 26

7.1 Diseño ........................................................................................... 26 7.1.1 Descripción general ......................................................... 27 7.1.2 IntegraFilm Web............................................................... 28 7.1.3 IntegraFilm Server............................................................ 39 7.1.4 IntegraFilm Client ............................................................. 43

7.2 Implementación ............................................................................. 49 7.2.1 IntegraFilm Client ............................................................. 51 7.2.2 IntegraFilm Server............................................................ 65 7.2.3 IntegraFilm Web............................................................... 74

7.3 Pruebas de usuario ....................................................................... 77

Page 4: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

4

8 INSTALACIÓN Y EJECUCIÓN DE INTEGRAFILM ................................. 83 8.1 Requisitos técnicos........................................................................ 83 8.2 Instalación de IntegraFilm.............................................................. 83 8.3 Ejecución de IntegraFilm ............................................................... 84

9 DISCUSIONES GENERALES.................................................................. 85

9.1 Diseño de Interfaz IntegraFilm Client ............................................ 85 9.2 Diseño lógico del sistema.............................................................. 87 9.3 Protocolo de comunicación Cliente-Servidor ................................. 88

10 CONCLUSIONES..................................................................................... 90

10.1 Posibles mejoras futuras ............................................................... 91 10.1.1 Optimización de uso de red.............................................. 91 10.1.2 Creación de guiones ........................................................ 92 10.1.3 Comunidad de guionistas................................................. 92 10.1.4 Multi Salas........................................................................ 92 10.1.5 Indicador de locaciones.................................................... 93

11 REFERENCIAS........................................................................................ 95 12 ANEXOS .................................................................................................. 97

12.1 Encuesta realizada en pruebas de usuario.................................... 97 12.2 Ejemplo de Guión descriptivo ........................................................ 99

Page 5: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

5

ÍNDICE DE ILUSTRACIONES

Ilustración 1: Resumen de arquitectura e interacción de IntegraFilm............... 26 Ilustración 2: IntegraFilm Web. Casos de uso.................................................. 29 Ilustración 3: IntegraFilm Web. Página de inicio [visita] ................................... 31 Ilustración 4: IntegraFilm Web. Catálogo de guiones [visita] ............................ 32 Ilustración 5: IntegraFilm Web. Aportes [visita] ................................................ 34 Ilustración 6: IntegraFilm Web. Visualización del guión procesado [visita]....... 35 Ilustración 7: IntegraFilm Web. Contacto [visita] ............................................. 36 Ilustración 8: IntegraFilm Web. Catálogo de guiones [administrador] .............. 37 Ilustración 9: IntegraFilm Web. Edición de un guión [administrador]................ 38 Ilustración 10: IntegraFilm Web. Noticias [administrador] ................................ 39 Ilustración 11: IntegraFilm Server. Casos de uso............................................. 40 Ilustración 12: IntegraFilm Server..................................................................... 41 Ilustración 13: IntegraFilm Server. Durante la ejecución .................................. 43 Ilustración 14: IntegraFilm Client. Casos de uso .............................................. 43 Ilustración 15: IntegraFilm Client. Interfaz ........................................................ 46 Ilustración 16: IntegraFilm Client. Confirmación de cierre de aplicación .......... 47 Ilustración 17: Formato SRT............................................................................. 54 Ilustración 18: Formato de guión de IntegraFilm .............................................. 54 Ilustración 19: IntegraFilm Client. Clase Script.cs, lista enlazada. ................... 56 Ilustración 20: IntegraFilm. Multicast para publicar IP del Servidor .................. 59 Ilustración 21: IntegraFilm Client. Vista de Procesos ....................................... 61 Ilustración 22: Estudio de sincronización de aplicación con reproductor DV-CAM ................................................................................................................. 66 Ilustración 23: Catálogo de películas................................................................ 68 Ilustración 24: IntegraFilm Server. Vista de Procesos...................................... 69 Ilustración 25: Pruebas de usuario del sistema IntegraFilm en sala de Micro Cine de la Cineteca Nacional del Centro Cultural Palacio La Moneda............. 79 Ilustración 26: Pruebas de usuario del sistema IntegraFilm en el Auditorio del Departamento de Ciencias de la Computación de la Universidad de Chile ..... 79 Ilustración 27: Pruebas de usuario del sistema IntegraFilm en el Auditorio del Departamento de Ciencias de la Computación de la Universidad de Chile ..... 80 Ilustración 28: IntegraFilm Client: Prototipo de interfaz 1 ................................. 85 Ilustración 29: IntegraFIlm Client. Prototipo de interfaz 2................................. 86

Page 6: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

6

Page 7: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

7

1 INTRODUCCIÓN

Por interés personal se decidió trabajar en un proyecto que a través del uso de

tecnología pueda colaborar con la integración de personas con discapacidad en la

sociedad, específicamente con la inserción social de personas no videntes.

Actualmente, el Centro de Computación y Comunicación para la Construcción del

Conocimiento del Departamento de Ciencias de la Computación la Universidad de

Chile, (en adelante, C5) se encuentra desarrollando un proyecto de gran envergadura

(MUVIS, Mundos Virtuales para la Inclusión Social), orientado a integrar a personas no

videntes en distintos ámbitos de la vida real, tales como el barrio, colegios, museos,

etc.

Teniendo en consideración lo anterior, se decidió acoger esta integración que

proponen los investigadores de C5 e intentar dar mayores facilidades, a través del uso

de tecnología, para que personas no videntes puedan disfrutar de otro espacio público:

el cine.

Sobre este tema ya existe en el mercado una técnica denominada “AUDESC”, o

“Audio descripción” que según una de las principales empresas españolas en el rubro,

Aristía, se define como “un servicio de apoyo a la comunicación que consiste en el

conjunto de técnicas y habilidades aplicadas con objeto de compensar la carencia de

captación de la parte visual contenida en cualquier tipo de mensaje, suministrando una

adecuada información sonora que la traduce o explica” [2].

Hay distintas formas de utilizar esta técnica, pero la más común es, en la

actualidad, agregar a la cinta original una pista de audio adicional, con la audio

descripción (en adelante “guión”), que contiene la información complementaria de

escenas gráficas relevantes para ayudar a comprender mejor la cinta en reproducción.

La cinta resultante (con el guión incluido) se proyecta finalmente en la sala de cine,

permitiendo así entender mayormente la cinta a los asistentes no videntes.

La desventaja que presenta este método es que no aporta a la integración de

asistentes no videntes al cine, pues se proyectan cintas especiales, que resultarían

poco atractivas para un público vidente.

Page 8: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

8

Este trabajo de título apunta justamente a la integración, a permitir que un

asistente no vidente pueda disfrutar de una proyección simultáneamente con uno

vidente en una sala de cine.

Page 9: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

9

2 MARCO TEÓRICO

2.1 Trabajos anteriores

Se han elaborado variados estudios sobre el diseño de aplicaciones para ciegos,

específicamente utilizando dispositivos móviles. En ellos destaca la publicación

llamada “Evaluating the Interaction of Blind Learners with Audio-Based Virtual

Environments”, de J.Sánchez & M. Zúñiga (2006) [2].

En este trabajo se intenta crear una manera eficiente para integrar estas

herramientas en la comunidad con discapacidad visual para así poder mejorar su

educación e integración en la sociedad. Se realizan estudios para analizar la

capacidad de representar mentalmente un ambiente virtual (un laberinto), y poder

recordar caminos y rutas.

En la actualidad existe una línea creciente de investigación de software

educacional para usuarios con discapacidad visual usando el audio como canal

sensorial principal en la construcción de conocimiento y comprensión del medio [9].

Estas investigaciones [3], [7], [8], [9], [11] han mostrado que interfaces basadas en

audio pueden ser usadas para apoyar a usuarios no videntes en aprendizaje y

cognición, ayudando así al desarrollo de habilidades cognitivas y aprendizaje de

contenidos específicos a través de ambientes virtuales representados con sonido.

Sin embargo, existen dos principales problemas en el estudio de interacción de

usuarios no videntes con ambientes virtuales basados en sonido: La obtención de

información valiosa sobre la interacción usuario-software y saber si un ambiente

virtual, a pesar de su nivel de complejidad y su tiempo de interacción puede ser

representado por usuarios con discapacidad visual.

Para investigar sobre el segundo problema, los autores diseñaron un software

capaz de procesar información generada por la interacción usuario/ambiente virtual y

entrega herramientas para el análisis, llamado AudioGram.

El uso de esta aplicación (y otras más: AudioDoom II) ha permitido estudiar y

observar con mejor precisión la capacidad para representar mentalmente diferentes

estructuras virtuales. Finalmente, se señala que se debe crear planes de trabajo para

Page 10: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

10

un ambiente que permita a los usuarios con discapacidad visual mejorar su capacidad

de percepción de audio (memoria auditiva, fidelidad y discriminación de sonidos) y

comprender problemas geométricos como “la distancia más corta” y “simetría”.

Como conclusión de esta publicación se tienen puntos muy importantes que se

consideraron en el desarrollo del trabajo de título:

• Los usuarios con discapacidad visual ocupan estrategias para representar

ambientes virtuales. La principal es memorizar la secuencia de cambios de

dirección y comparar distancias relativas entre puntos de referencias. Esta

estrategia es muy similar a la estrategia que usan en la vida real para realizar

sus viajes.

• Existe una directa relación entre la capacidad de memoria auditiva y la

representación de rutas.

Otra investigación que sirvió de apoyo para este trabajo fue “Cuentos interactivos

móviles a través de audio para aprendices con discapacidad visual”, de Jaime

Sánchez e Iván Galaz (2005) [10]. En esta se hace mención a las dificultades que

presentan los niños con discapacidad visual para el desarrollo de habilidades

cognitivas, como la comunicación, la investigación y el pensamiento abstracto.

Para ayudar a solucionar estas dificultades, los investigadores proporcionan una

vía simple para los niños con discapacidad visual que les permita desarrollar dichas

habilidades a través de la creación de una interfaz de audio mediante un dispositivo

PDA, basado en tecnología Text-To-Speech (herramienta capaz de leer un texto

dado).

La descripción de este software fue de especial interés para este trabajo, pues se

utiliza la tecnología Text-To-Speech de una manera similar a la que se deseaba utilizar

en el trabajo de título. Se puso especial interés en el diseño de software de la

aplicación creada por los investigadores (AudioCuentaCuentos). Se implementó un

feedback auditivo para todas las funciones del proyecto, similar al descrito en

AudioCuentaCuentos, para utilizar el software.

El software mostrado en la aplicación presenta un diseño que utiliza como

metáfora una biblioteca, en la que el lector debe elegir el libro deseado, luego el

capítulo que desea leer y más tarde comienza la lectura.

Page 11: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

11

De manera análoga el software diseñado en este proyecto utilizó como metáfora

una sala de cine, en la que el usuario proyector deberá elegir la película que desea

proyectar. Luego el espectador deberá decidir el nivel de ayuda de audio descripción

que desee y más tarde proceder a ver la película.

Una facilidad de la navegación, es que se sabe a priori qué película desea ver el

usuario (según se mostrará en la sección de Diseño), por lo que éste sólo debería

seleccionar el nivel de ayuda que desee.

Sobre el feedback y diseño de la aplicación, se implementó de manera muy similar

a la mostrada en la aplicación: se consideraron usuarios con discapacidad visual nula

y baja, además de posibles tutores (con capacidad visual).

En la publicación se explica el método utilizado para testear la aplicación: Se

utilizó una muestra de 7 niños de la Escuela Hogar de Ciegos Santa Lucía, con baja

visión y ceguera total, y dos educadoras diferenciales especializadas en trastornos de

la visión.

El procedimiento para realizar el testeo fue el siguiente:

• Introducción al software, de manera verbal y física. Se muestra la ubicación de

los botones.

• Interacción con el software por parte del usuario, dando la posibilidad de

realizar preguntas a las educadoras diferenciales.

• Registro de datos importantes de la interacción

• Aplicación de pauta preliminar, donde se hace un pequeño cuestionario a los

usuarios

• Se registra la sesión fotográficamente

• Redacción de informe por parte de las educadoras diferenciales

• Rediseño y desarrollo por parte del ingeniero

Para realizar las pruebas de usuario en este trabajo se utilizó un método de testeo

similar al descrito en esta publicación. Pudiendo realizarlo reiteradamente hasta llegar

a un diseño de interfaz y navegación óptimo. Se incluye en los anexos la pauta

realizada.

Page 12: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

12

Una última investigación utilizada como base para idear este proyecto fue

“Assisting the mobilization through subway networks by users with visual disabilities”

[12], donde se explica el desarrollo del sistema “AudioMetro”.

En esta publicación se menciona que la gente con discapacidad visual debe

usar técnicas de orientación y movilización, junto con las relaciones espaciales de los

objetos con ellos mismos, para aprender a identificar el medio ambiente en el que se

encuentra. Este hecho fue un soporte teórico importante al desarrollo de este proyecto,

pues lo que se pretendía, entre otras cosas, era lograr el entendimiento del medio

ambiente en el que ocurren las escenas de una película, utilizando la técnica de

descripción oral de escenarios.

2.2 El Cine y la discapacidad visual

En el ámbito de la integración de personas con discapacidad visual al cine, existen

tres métodos explorados: AUDESC (explicado en el capítulo anterior), AUDESC con

interrupciones, y el Cine hecho derechamente para personas con discapacidad visual.

AUDESC con interrupciones es una manera muy simple de entregar mejor

información a los asistentes no videntes: Se proyecta una cinta cualquiera, y cada

cierto tiempo (20 minutos, por ejemplo), se interrumpe la proyección y toma el

micrófono una persona encargada de explicar en detalle lo que ha sucedido, y prepara

al espectador con lo que sucederá próximamente en la cinta.

El Cine hecho para un público no vidente consiste en la explotación de un recurso

llamado “sonido incidente” en la película. Este recurso consiste en incluir un sonido

muy estudiado que sea capaz de expresar sentimientos, escenas y situaciones de

manera casi perfecta, evitando la entrega de información importante de manera visual.

Si bien hay películas que sin ser de este tipo, calzan muy bien con estas

características, como es el caso de la película francesa “Amelie” y la nacional “Taxi

para tres”, ambas destacadas por personas no videntes.

Las técnicas mencionadas anteriormente no apuntan a integrar a discapacitados

visuales a la sociedad, pues las funciones resultan tediosas para gente dotada de

visión.

Page 13: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

13

En respuesta a esto, surgió una nueva forma de utilizar “AUDESC” (“AUDESC”

personalizado en adelante), entregándole un receptor auricular a cada discapacitado y

relatando, desde una cabina especial el guión descriptivo.

En Chile se han realizado funciones ocasionales utilizando esta técnica,

proyectando películas, como “Amelie” y “Lecciones de Piano”, realizados por la

Fundación Telefónica en Agosto y Octubre del año 2005 respectivamente [6].

La difusión de esta función especial fue amplia, tuvo una gran asistencia,

obteniendo muy buenos comentarios por parte de los asistentes no videntes, que esta

vez pudieron disfrutar de la función en compañía de amigos y familiares videntes. Sin

embargo no ha tenido mayor repercusión en el mercado nacional.

Una justificación de la poca recurrencia de estos eventos es lo engorroso y costoso

que resulta realizarlos, pues, para dar una función utilizando “AUDESC”, se necesita,

ante todo, preparar el guión de audio descripción. Luego,

• Si se desea utilizar la inclusión de pista de audio a la cinta:

o Grabar, mezclar y masterizar la pista, en un estudio de grabación

o Mezclar la pista de audio con la cinta original, en un estudio de video

• Si se desea utilizar “AUDESC” con interrupción:

o Un relator profesional que estudie el guión

• Si se desea utilizar “AUDESC” personalizado:

o Un relator profesional que estudie el guión a profundidad, pues el relato

es en vivo

o Instalar cabina de relato, con su sistema de transmisión de audio

o Distribuir dispositivos receptores a los asistentes no videntes

Es por esto que se considera fundamental para potenciar este tipo de funciones

la simplificación del proceso, independiente del costo inicial, se desea que el costo

marginal de incluir una nueva cinta al repertorio de películas aptas para personas no

videntes sea mínimo.

Una alternativa potente para realizar esto, es utilizar un sintetizador Text-To-

Speech, de manera de reemplazar todo el proceso de grabación, mezcla y

masterización del guión descriptivo, mezcla de video, y estudio del guión por un relator

profesional, por la lectura de un sintetizador del guión mismo.

Page 14: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

14

2.3 Sintetizadores de Voz

En el mercado mundial existe gran oferta de sintetizadores de voz (Text-To-

Speech), de distintas calidades y, por consiguiente, distintos precios. El más conocido

es el llamado “Jaws”, de distribución gratuita, pero de baja calidad.

C5, hace un par de años, realizó un estudio de mercado para determinar cuál

era el mejor, en cuanto a calidad de sintetizador e interfaz para la programación de

aplicaciones (API). Se obtuvo como resultado el sintetizador de “Acapela Groups”, por

consiguiente compraron la licencia de desarrollo de este.

Realizando un estudio para este proyecto, se descubrió el sintetizador de

“Loquendo”, que sorprende por su calidad, pero debido a su alto costo (€1.500 la

licencia de desarrollo), se decidió ocupar “Acapela”.

Page 15: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

15

3 MOTIVACIÓN

La principal atracción que ofrece el cine es la alta calidad en la proyección de sus

películas. Si bien la recepción de video por un no vidente es difícil de lograr, aunque se

estudia en la actualidad distintas formas para lograrlo gracias a los avances

tecnológicos, la recepción del audio puede superar a aquella de una persona dotada

de todos sus sentidos.

Desde los años setenta que se ha planteado, principalmente en España, la

manera de ayudar a comprender de mejor manera una cinta audiovisual a las

personas con discapacidad visual. Lo que se ha logrado hasta ahora es la llamada

audio descripción (o AUDESC), que consiste en una pista de audio que describe

escenas gráficas con carencia de guión.

Esta técnica ha demostrado tener muy buenos resultados en cuanto al mejor

entendimiento del material por parte del público no vidente, pero presenta un gran

problema: las películas adaptadas al sistema de audio descripción se realizan con

posterioridad a la proyección de las mismas. Es decir, las personas no videntes no

disponen del producto al mismo tiempo que el colectivo de los videntes, sino que

deben esperar un tiempo hasta que el equipo de profesionales lleve a cabo la

adaptación (explicada en el capitulo anterior). Sumado a esto está el problema de

integración, el cual ya se ha comentado previamente.

Por este motivo, la solución propuesta por este trabajo de título debe poseer al

menos dos características principales: dar la facilidad para que la versión de una cinta

para ciegos esté rápidamente disponible, y ser una herramienta tecnológica de apoyo

que efectivamente integre al público no vidente con el capacitado visual.

Page 16: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

16

4 JUSTIFICACIÓN

Al pensar un poco más a fondo la idea de este trabajo de título y después de

haber entrevistado a personas con discapacidad visual en un estudio previo, surgen

varios nuevos aspectos que aumentan la exigencia técnica del proyecto, como por

ejemplo:

4.1 Sincronización

Una de las primeras dificultades técnicas que se presenta es la sincronización de

la pista de audio descripción del dispositivo móvil con la proyección de la cinta.

Para esta sincronización se estudia la vía de comunicación (inalámbrica) entre el

equipo de proyección de la cinta y el dispositivo móvil. Aunque se sabe de una norma

de DOLBY de emisión de sonidos especiales al comienzo de la cinta para una posible

sincronización con aparatos externos a la cinta, se optó por una sincronización manual

entre un computador que actúa como servidor y los dispositivos móviles, como se

explicará en el desarrollo de este informe.

4.2 Formato del guión

Una ventaja significativa que se considera con respecto a la ya conocida técnica

de las empresas que desarrollan audio descripción en la actualidad, es que la pista de

descripción sea un texto, interpretado online por un motor de Text-To-Speech. El

archivo tendría un formato muy similar al formato que tienen los archivos de subtítulos

de series y películas que hoy se pueden bajar desde Internet.

La ventaja de esto último es que resultaría mucho menos engorroso crear la

pista, pues no se requiere de un estudio de grabación ni de masterización, ni de un

locutor profesional. A la vez, el tamaño del archivo resultante sería notoriamente

menor en formato de texto que en formato de audio.

Page 17: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

17

4.3 Origen del archivo

Se considera crear una comunidad a nivel internacional en la web, en donde

todos puedan elaborar sus propios guiones y subirlos a la red, autorizando la descarga

(gratuita) de estos para cualquier interesado.

4.4 Dependencia del archivo

Sobre el mismo tema, existe otro dilema aún sin respuesta. ¿Deberá cada

usuario adquirir el guión de audio descripción antes de asistir a la función? ¿O este

guión será trasmitido también desde la cabina de proyección de la cinta?

4.5 Graduación de la pista de audio descripción

El archivo del guión está dividido en parlamentos (se usan caracteres especiales

para la división), y cada parlamento tiene dos atributos: texto y tiempo en el cual se

debe ejecutar dicho texto. Este último atributo le da el orden al archivo.

Como resultado de reuniones con personas con discapacidad visual, se

concluyó que hay distintos tipos de usuarios finales. Hay quienes prefieren usar más

su imaginación, y no les agrada mucho la idea que les expliquen todo, y otros usuarios

que necesitan mayor explicación para comprender la cinta.

Se decidió entonces incluir un nuevo atributo a cada parlamento en el archivo del

guión: nivel de importancia para la comprensión global de la cinta.

El nivel de cada parlamento será un número asignado por el autor del guión,

inicialmente de 1 a 3. Así, un parlamento que tenga un nivel 1, tendrá mayor

importancia que un parlamento con nivel 3. Como se verá en el desarrollo del

proyecto, estos niveles fueron reducidos a dos.

Con esto se podrá configurar la aplicación en el dispositivo móvil, indicando qué

nivel de detalle de audio descripción desea recibir el usuario (del 1 al 3). Esto filtrará

los parlamentos y reproducirá sólo aquellos que presenten un nivel menor o igual al

indicado.

Page 18: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

18

Tomando todos los puntos anteriores, se considera este proyecto para el trabajo

de título porque intenta resolver un problema aún no resuelto: que una cinta pueda

ser disfrutada simultáneamente por una persona vide nte y una no vidente, a

través de dispositivos móviles, dándole dinamismo a l guión y mientras la

película este siendo estrenada.

Page 19: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

19

5 OBJETIVOS

5.1 Objetivo General

Desarrollar una aplicación para dispositivos móviles que lea en tiempo real un

guión de audio descripción durante la proyección de una cinta en el cine, permitiendo

de esta manera una mejor comprensión personal de la cinta, contribuyendo a la

integración de personas con discapacidad visual a la sociedad.

5.2 Objetivos Específicos

Los objetivos específicos de este trabajo son:

• Reproducir on-line un guión de audio descripción que está en formato de texto

por medio de un motor de Text-to-Speech en un dispositivo móvil. Esta

reproducción se escucharía a través de un único audífono.

• Seleccionar el nivel de información que se desea recibir.

• Lograr una sincronización del dispositivo móvil con la cinta en cualquier

momento (Por si se llega atrasado).

• Desarrollar un portal en donde se puedan subir y descargar guiones de forma

gratuita.

Page 20: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

20

6 METODOLOGÍA

Para poder llevar a cabo el proyecto, en especial en las etapas de diseño e

implementación, se utilizaron conceptos de metodología ágil de ingeniería de software

(Rapid prototyping). Esto, debido a que se deseaba desarrollar el proyecto por

módulos, testeando de inmediato con los usuarios finales y poder ir mejorando la

aplicación mientras se desarrollaba y no correr el riesgo de testear al final la aplicación

y que no sea aprobada por los usuarios finales.

Los aspectos a considerar para el desarrollo del sistema, son los siguientes:

6.1 Estudio de Factibilidad

6.1.1 Factibilidad de usuarios

Se realizó un estudio de factibilidad antes de comenzar el desarrollo para

determinar si la funcionalidad ofrecida en el proyecto tiene una aplicación efectiva y

atractiva para la comunidad no vidente. Es sabido que la técnica de audio descripción

funciona, pero fue necesario investigar si la modalidad en la que se pretende usar en

la solución planteada daría resultados.

El estudio se realizó con un grupo de 8 personas no videntes en la Biblioteca

Central para Ciegos y en la Escuela Hogar de Ciegos Santa Lucía, de distintas

edades, desde 9 hasta 55 años.

La entrevista no fue mayormente estructurada, se prefirió un diálogo abierto. Se

preguntó si habían asistido al cine alguna vez y si habían asistido a las muestras de

cine con audio descripción (Amelie y Harry Potter) realizadas en el salón de eventos

de Telefónica y la Facultad de Economía de la Universidad de Chile.

Las opiniones fueron variadas, algunos entrevistados se mostraban muy

ilusionados con la técnica de audio descripción, mostrando su aprobación total al

proyecto, y otros no tanto.

Page 21: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

21

Se logró identificar al grupo de los interesados y los desinteresados

rápidamente: Los de menor interés son personas ciegas congénitas. Esto tiene una

explicación muy simple, pues nunca han recibido estímulos visuales, por lo que no los

extrañan y prefieren utilizar sólo su imaginación para comprender la cinta. Con esto, ya

está identificado el usuario final: personas que han visto alguna vez, que es el mayor

porcentaje de las personas no videntes.

Otra conclusión importante de este estudio piloto es que no todos los usuarios

necesitan el mismo detalle de descripción. Por esta razón se incluirá en el guión de

audio descripción un atributo especial a cada parlamento, indicando el nivel de

importancia de éste. Esto dará la posibilidad de filtrar el nivel de descripción que se

desea recibir.

6.1.2 Factibilidad de recursos

Los recursos técnicos básicos requeridos para el desarrollo del proyecto

estaban disponibles en C5. Entre estos se encuentran 40 Pocket PC, dos profesoras

diferenciales disponibles para colaborar con las pruebas de usuario, y profesionales

capacitados involucrados con el desarrollo de proyectos para personas con

discapacidad visual dispuestos a ayudar si fuese necesario. Junto con esto, se tiene

todo un background de investigación sobre el desarrollo de software para ciegos.

Por otra parte, era de vital importancia contar con el espacio de reproducción de

cintas de cine adecuado. Para esto, se contó con la ayuda de la “Cineteca Nacional

del Centro Cultural Palacio la Moneda”, donde se llevaron a cabo diferentes pruebas

del software.

6.2 Hello World

Una de las primeras decisiones que se tomó fue la elección del lenguaje de

programación. No fue tan difícil tomar esta decisión, pues se consideró que en C5

utilizan mayoritariamente C#. Además, este lenguaje posee varias ventajas, siendo la

principal que pertenece a .NET Compact Framework, por lo que se podría acoplar a

Page 22: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

22

otros programas realizados con otros lenguajes (pertenecientes también al

Framework) fácilmente.

Se realizó un primer programa y resultó ser un lenguaje muy amigable y cercano

al ya conocido JAVA.

Con esto, se decidió oficialmente que el lenguaje de programación sería C#.

6.3 Estudio del dispositivo a utilizar

Se utilizaró un dispositivo Pocket PC, por tres motivos:

1. En C5 las personas no videntes ya utilizan Pocket PCs, por lo que están

familiarizados con estos dispositivos.

2. Presenta una interfaz física más cómoda para personas no videntes (presenta

bordes alrededor de la pantalla, lo que delimita la zona de interacción)

3. C5 cuenta con Pocket PCs para desarrollo.

Fue necesario adentrarse al funcionamiento de una Pocket PC, aprender el

modelo mental que poseen, ver otros programas desarrollados para estos dispositivos

y examinar así el comportamiento.

Las Pocket PC de C5 tienen también WIFI, lo que ayudó en el desarrollo del

software que se detallará más adelante.

6.4 Diseño del sistema

Una vez realizado todo lo anterior, se comenzó a trabajar en el desarrollo mismo

del proyecto, partiendo por el diseño (arquitectónico, gráfico y lógico).

Para abordar el diseño del sistema, se incluye más adelante un capítulo

dedicado a él.

Page 23: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

23

6.5 Estudio de Sincronización

Uno de los aspectos que presentó gran dificultad en el sistema fue lograr que un

mensaje perteneciente al guión descriptivo, que hace alusión a una escena en un

momento específico, sea reproducido exactamente en ese momento, y no después ni

antes.

Esto se puede lograr de varias formas (que serán discutidas más adelante), pero

todas ellas tienen un factor en común: determinar cuando comienza a reproducirse la

cinta, es decir, capturar el inicio.

El desarrollo de este tema será abordado también más adelante, en el capítulo

de “Trabajo realizado”.

6.6 Análisis de velocidad de conexión

Hoy en día la velocidad de conexión no es una limitante para sistemas como

este, ya que se enviarán solo algunas cadenas de caracteres de un largo prudente.

Como se verá en el capítulo de diseño, la idea es enviar al dispositivo móvil el

guión descriptivo al comienzo de la sesión, de un tamaño máximo aproximado de

40kb, posteriormente se enviarán instrucciones cortas, de no mas de 10 caracteres

(10bytes).

Es por esto que el sistema no presenta restricciones sobre la cantidad de

usuarios que pueda tener por riesgo a colapsar el ancho de banda. La única limitante

que tiene el sistema es que cada usuario con su Pocket PC deberá estar conectado en

una red, por lo que debe tener una dirección IP propia, y esto, dependiendo del router

que se posea, puede permitir, en el peor caso, a 252 equipos conectados (clase C).

Page 24: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

24

6.7 Análisis y toma de requisitos

Se tomaron requerimientos antes y durante el desarrollo del sistema, para poder

tener un feedback continuo con usuarios finales. De esta manera se alineó el

desarrollo del software con los objetivos del mismo, adaptando el diseño con los

nuevos requisitos que se incorporaron por nuevos usuarios.

6.8 Implementación de la aplicación

Se implementaron las interfaces realizadas, ocupando los estudios previos.

El detalle de la implementación se encuentra en el capítulo de “Trabajo realizado”.

6.9 Desarrollo del Portal web del sistema

Se desarrolló un portal simple donde cualquier persona puede subir sus guiones

de audio descripción, creando así una comunidad de guionistas.

El portal será básicamente un repositorio de guiones, tendrá dos tipos de roles:

administrador y visita. El usuario visita podrá aportar al repositorio un guión de su

propia autoría o de un tercero. Este guión deberá ser aprobado por el administrador

del portal, quien debe verificar que se trate efectivamente de un guión. Una vez

aprobado el guión, este se encontrará disponible para todos los usuarios, quienes no

necesitarán registrarse para descargarlos.

El detalle de este portal web también está incluido en los capítulos de diseño e

implementación.

6.10 Pruebas con usuarios finales y correcciones:

Al terminar cada módulo, se realizaron pruebas de aceptación con usuarios

finales, y se corrigieron las falencias detectadas antes de pasar a la siguiente iteración.

Page 25: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

25

Dentro del capítulo de “Trabajo realizado” se incluye la experiencia obtenida de las

pruebas de usuario.

Page 26: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

26

7 TRABAJO REALIZADO

El sistema desarrollado fue bautizado como IntegraFilm y consta de tres

aplicaciones que interactúan entre sí para cumplir el objetivo de este trabajo:

IntegraFilm Web (repositorio de guiones), IntegraFilm Server , que es la aplicación

principal que proporcione la información necesaria a las Pocket PC’s, e IntegraFilm

Client , que es la aplicación que se estará ejecutando en cada Pocket PC.

En la ilustración 1 se muestra la interacción de las aplicaciones mencionadas

anteriormente:

Ilustración 1: Resumen de arquitectura e interacció n de IntegraFilm

A continuación se detalla su Diseño, Implementación y Pruebas de Usuario.

7.1 Diseño

En general, la arquitectura utilizada corresponde al modelo Cliente-Servidor,

donde se tiene en un servidor único ejecutando la aplicación IntegraFilm Server y en

varios clientes (Pocket PCs) la aplicación IntegraFilm Client.

Page 27: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

27

7.1.1 Descripción general

Para iniciar el proceso, se debe ejecutar IntegraFilm Server en un computador

(en adelante, servidor) en la caseta de reproducción de la sala de cine.

Automáticamente éste interactuará con IntegraFilm Web (en adelante, portal) y

obtendrá el catálogo de guiones disponibles en el repositorio. A su vez se debe

ejecutar IntegraFilm Client en cada Pocket PC (en adelante, cliente). Al ejecutarse esta

aplicación, el dispositivo móvil se conectará al servidor y le avisará que se encuentra

conectado. Esta operación se repite en todos los dispositivos móviles en donde se

ejecute la aplicación.

Posteriormente, en el servidor se elegirá el guión correspondiente a la película

que se proyectará. Al elegir el guión, se descargará y enviará el contenido de éste a

cada cliente.

Al recibir el guión, cada cliente envía un mensaje al servidor (“Guión OK”)

indicando que recibió correctamente el guión.

Una vez que todos los clientes hayan recibido el guión en cuestión, se podrá

dar inicio a la proyección. Para esto, es necesario que simultáneamente se inicie la

proyección (en el equipo de reproducción de la sala de cine) e inicie el cronómetro de

la aplicación en el servidor.

Cuando se inicia el cronómetro en la aplicación del servidor, éste envía un

mensaje específico (“start”) a cada cliente. Con esta instrucción, IntegraFilm Client

comenzará un cronometro particular en su Pocket PC, junto con responder al servidor

un mensaje de notificación de éxito.

Desde este momento, cada dispositivo se puede independizar de IntegraFilm

Server si fuese necesario (si se pierde la señal, o si ocurre un problema en el

computador servidor, por ejemplo).

Una vez realizado el proceso anterior, IntegraFilm Server envía periódicamente

el guión y el tiempo actual a los dispositivos que no lo tengan. Esto permite la posterior

incorporación de usuarios una vez comenzada la proyección, en el caso que lleguen

tarde.

Page 28: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

28

De manera adicional, durante la ejecución de la película, el servidor puede

enviar instrucciones de “control” a los dispositivos (pausar, continuar, y ajustar tiempo,

en caso de ocurrir eventualidades inesperadas). Todas estas instrucciones son

respondidas por los dispositivos cuando las ejecutan correctamente.

Cada aplicación está asociada a distintos tipos, o perfiles, de usuario.

IntegraFilm Web presenta un usuario visitante y un administrador, IntegraFilm Server

un usuario proyector, e IntegraFilm Client un usuario espectador (quien es no vidente).

7.1.2 IntegraFilm Web

IntegraFilm Web es un portal que recopila todos los guiones existentes, dando

la posibilidad a cualquier usuario de la red Internet de aportar con el catálogo,

elaborando su propio guión.

En esta aplicación se distinguen dos usuarios: visita (o guionista) y

administrador, quien debe filtrar los guiones que sean aportados al catálogo.

7.1.2.1 Casos de Uso

En la ilustración 2 se muestran los casos de uso de la aplicación IntegraFIlm

Web, donde interactúan los usuarios visita y administrador:

Page 29: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

29

Ilustración 2: IntegraFilm Web. Casos de uso

visita

IntegraFilm Web

administrador

Aportar Guión Aprobar Guión

Editar Guión

Contactar

Descargar Guión

Publicar Noticia

Procesar Guión

«uses»

«uses»

Tabla 1: [IntegraFilm Web] Descripción de los Casos de uso Nombre CUW 01: Aportar Guión

Actores Visita

Actividades Crear guión y subirlo al portal

Sinopsis El usuario visita puede elaborar su propio guión, basándose en la

estructura que se explica en el portal. Este guión lo puede subir al

portal. El portal procesa el guión, permitiendo la subida de

documentos únicamente bien estructurados, de manera de

minimizar el mal uso de la aplicación.

Nombre CUW 02: Descargar Guión

Actores Visita

Actividades Navegar por el catálogo y descargar guión deseado

Sinopsis El usuario visita puede navegar por el catálogo del portal web y

descargar un guión si así lo desea, para ver el nivel de detalle que

el guión puede tener.

Page 30: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

30

Nombre CUW 03: Contactar

Actores Visita

Actividades Escribir mensaje y enviarlo al administrador

Sinopsis El usuario visita puede enviar un mensaje al administrador. Este

mensaje será recibido por el administrador del portal y lo podrá

responder.

Nombre CUW 04: Aprobar Guión

Actores Administrador

Actividades Listar nuevos guiones y aprobar los fidedignos

Sinopsis El usuario administrador puede revisar los nuevos guiones que los

usuarios visita han aportado (CU 01) y aprobar (o rechazar) su

publicación si así lo determina

Nombre CUW 05: Editar Guión

Actores Administrador

Actividades Seleccionar guión y editarlo

Sinopsis El usuario administrador, en cualquier momento puede editar un

guión seleccionado, cambiando el contenido de éste. Al editar un

guión, el portal lo procesa para verificar su correcta estructura.

Nombre CUW 06: Publicar Noticia

Actores Administrador

Actividades Redactar noticia y publicarla

Sinopsis El usuario administrador tiene derecho a publicar una noticia,

editándola cuantas veces desee.

7.1.2.2 Interfaz

La aplicación tiene una vista para visitas y otra vista para administradores.

Todas ellas están igualmente estructuradas, ofreciendo el siguiente esquema:

• Encabezado. Contiene el formulario de ingreso de administradores y un

banner con el logotipo del sistema

• Menú superior horizontal. Contiene las distintas secciones del portal

• Columna izquierda. Contiene una fotografía de una prueba de usuarios

Page 31: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

31

• Columna derecha. Contiene las últimas noticias del sistema

• Cuerpo central. Contiene la información propia de cada página

• Pie de página. Contiene las secciones del portal y los créditos del

desarrollador

7.1.2.2.1 Página de inicio

Esta es una página introductoria al sistema IntegraFilm. En ella se

explica al visitante los objetivos y alcances del sistema. Al costado derecho se

aprecia una columna de “Noticias”, donde se publicarán los próximos eventos

de IntegraFilm. Esta columna estará presente en todas las secciones del portal.

En la ilustración 3 se presenta la interfaz de la página de inicio.

Ilustración 3: IntegraFilm Web. Página de inicio [visita]

Esta es una página introductoria, donde se invita al usuario a visitar al catálogo

(o repositorio de guiones existentes), a realizar aportes de nuevos guiones y a

Page 32: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

32

contactarse con el administrador del sistema. A continuación se detallan cada una de

estas vistas.

7.1.2.2.2 Catálogo de guiones

En la ilustración 4, se muestra la página de catálogo de guiones. En esta

página, el usuario puede navegar y descubrir los distintos guiones disponibles en el

sistema. Los puede descargar para examinarlos.

Para cada guión, se indica el nombre de la película, el de su creador, y la fecha

en el que fue incorporado al sistema.

Ilustración 4: IntegraFilm Web. Catálogo de guiones [visita]

Page 33: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

33

7.1.2.2.3 Aportes

La ilustración 5 muestra la página donde se plasma el propósito del portal: la

generación de una comunidad de guionistas.

En la parte superior de la pantalla se enseña a confeccionar guiones, explicando

la estructura y significado de cada componente de éste. Posteriormente se entrega un

formulario de ingreso de aportes.

Para incorporar un nuevo guión al catálogo, se solicita, de manera obligatoria, el

nombre y e-mail del guionista, junto con el título de la película y el contenido del guión

propiamente tal.

Page 34: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

34

Ilustración 5: IntegraFilm Web. Aportes [visita]

Page 35: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

35

7.1.2.2.4 Visualización de nuevo guión

El guión que se desea incorporar debe seguir el formato adecuado, y para

asegurarlo, el sistema procesa el guión ingresado y entrega una versión correctamente

estructurada, que corresponde a lo comprendido del guión inicial, basándose en las

reglas de su estructura.

La ilustración 6 muestra la interfaz de visualización del guión procesado:

Ilustración 6: IntegraFilm Web. Visualización del guión procesado [vi sita]

Page 36: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

36

En el cuadro gris se muestra el guión que se ha procesado correctamente, es

decir, el texto mostrado en el cuadro corresponde a un guión correctamente

estructurado. En la parte inferior de la pantalla se pregunta al guionista si ese guión

corresponde completamente al suyo original. Si corresponde, hace clic en el botón “Sí”

y finaliza la creación del guión, quedando éste en un estado transitorio, esperando la

aprobación del administrador. Si la respuesta es negativa, entonces se vuelve a la

interfaz anterior, para que el guionista pueda verificar su posible error.

7.1.2.2.5 Contacto

En la ilustración 7 se entrega un formulario para contactar al administrador del

portal. El mensaje ingresado en este formulario, será enviado por correo electrónico al

administrador del portal.

Ilustración 7: IntegraFilm Web. Contacto [visita]

Page 37: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

37

7.1.2.2.6 Catálogo de guiones (Administrador)

Para ingresar como administrador, es necesario ingresar el nombre de usuario

y password en el formulario superior que se encuentra en todas las pantallas del

sistema. Al ingresar con un usuario correcto, se puede ver la siguiente interfaz inicial:

Ilustración 8: IntegraFilm Web. Catálogo de guiones [administrador]

Esta es la página principal del administrador. En ella puede ver y administrar

los nuevos guiones que han sido aportados por el público, aprobando o rechazando su

publicación. El administrador también puede revisar el detalle de un guión y realizar

cambios si lo considera necesario, como se muestra en la ilustración 9.

7.1.2.2.7 Edición de guiones (Administrador)

Como se mencionó en el punto anterior, en esta página, el administrador puede

revisar el contenido del guión y verificar si efectivamente se trata de un guión de audio

descripción de una película verdadera. Se sabe a priori que la estructura de este guión

es correcta, pues fue procesado antes de aceptarlo. Si considera pertinente, el

administrador puede modificarlo.

Page 38: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

38

Ilustración 9: IntegraFilm Web. Edición de un guión [administrador]

7.1.2.2.8 Noticias (Administrador)

El sistema proporciona un canal de noticias para la comunidad interesada.

Estas noticias las edita el administrador, y para ello utiliza la interfaz que se muestra

en la ilustración 10. La noticia publicada estará visible en todas las páginas del sistema

para la visualización de visitas.

Page 39: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

39

Ilustración 10: IntegraFilm Web. Noticias [administrador]

7.1.3 IntegraFilm Server

IntegraFilm Server es la aplicación que controla a las Pocket PC, dándole

instrucciones e información de acuerdo al protocolo de comunicación mostrado en la

ilustración 1. Esta aplicación se debe ejecutar en un computador contiguo al

reproductor de la sala de cine, pues se requiere dar un inicio simultáneo al reproductor

de la cinta y al sistema IntegraFilm.

El usuario de esta aplicación es el llamado “proyector”.

7.1.3.1 Casos de Uso

En la ilustración 11 se presentan los casos de uso para la aplicación

IntegraFilm Server, donde interactúa únicamente el usuario proyector:

Page 40: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

40

Ilustración 11: IntegraFilm Server. Casos de uso

Tabla 2: [IntgraFilm Server] Descripción de los Cas os de uso Nombre CUS 01: Cargar Guión

Actores Proyector

Actividades Seleccionar guión deseado y descargarlo

Sinopsis El usuario Proyector puede seleccionar el guión de la película que

desea proyectarlo y descargarlo. Una vez descargado, éste será

enviado a los clientes automáticamente.

Nombre CUS 02: Iniciar Cronómetro

Actores Proyector

Actividades Comenzar la reproducción de la cinta e iniciar el cronómetro de

IntegraFilm Server

Sinopsis El usuario Proyector tendrá la interfaz para dar la instrucción a los

dispositivos que inicien sus cronómetros. Esto lo debe realizar al

mismo tiempo que comience a reproducir la cinta.

Page 41: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

41

Nombre CUS 03: Pausar Cronómetro

Actores Proyector

Actividades Pausar el cronómetro

Sinopsis El usuario Proyector tiene la facultad de pausar el cronómetro de los

dispositivos en el caso de presentarse alguna dificultad técnica

Nombre CUS 04: Reanudar Cronómetro

Actores Proyector

Actividades Reanudar el cronómetro

Sinopsis El usuario Proyector puede reanudar el normal funcionamiento del

cronómetro de los dispositivos.

7.1.3.2 Interfaz

Esta aplicación presenta una única interfaz, ya que los casos de uso no exigen

un mapa de navegación de mayor envergadura. En la ilustración 12 se muestra esta

interfaz.

Ilustración 12: IntegraFilm Server.

Page 42: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

42

Las acciones que puede realizar el usuario proyector se pueden reconocer

porque son botones. Los botones pueden ser presionados solo cuando sea posible

realizar la acción.

Los números en rojo fueron montados sobre la imagen original con el fin de

explicar cada componente de la interfaz de usuario de IntegraFilm Server:

1. Área donde se muestra una lista de cada cliente que se conecta al sistema

2. Selector del guión correspondiente a la cinta que se proyectará. Esta lista

corresponde al catálogo de guiones que se encuentran aprobados en la

aplicación web

3. Área que indica el tiempo actual de la proyección, con el formato hh:mm:ss y

en segundos totales acumulados (entre paréntesis), el cual comienza cuando

se presiona el botón “comenzar” (5). Este es el mismo tiempo que tendrán las

Pocket PC

4. Campo de texto que permite ingresar un nuevo tiempo con el fin de ajustar el

tiempo que se observa en la componente anterior (3), en el caso de ocurrir

algún imprevisto que obligue a modificar el cronómetro. Este cambio será

realizado también en cada aplicación cliente

5. Botón que permite dar inicio a la proyección. Se habilitará automáticamente

una vez que se haya cargado el guión. Al hacer clic, se llenará el campo de

tiempo actual (componente 3) y comenzará a avanzar el tiempo en la

aplicación servidor y en los clientes. Junto con lo anterior, cambiará su etiqueta

a “pausar”

6. Botón que ajusta el tiempo actual de la componente 3, con el ingresado en la

componente 4 y envía la instrucción a los clientes de ajustar sus tiempos

individuales

7. Área donde se mantiene un registro constante de todo lo sucedido durante la

ejecución, notifica envíos y recepciones a los clientes. Los mensajes más

nuevos se imprimen en la parte superior del área, para poder tener de fácil

acceso la última información entregada por el sistema

En la ilustración 13, se muestra un ejemplo de esta interfaz en tiempo de

ejecución. Se puede observar que el botón que en la ilustración anterior estaba

etiquetado con “comenzar”, ahora esta etiquetado como “pausar”. Esto sigue el

modelo mental de la mayoría de los usuarios: se utiliza un mismo botón como “play” y

“pause”.

Page 43: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

43

Al presionar este botón, se envía la instrucción a todos los clientes de detener

sus cronómetros individuales. Al mismo tiempo, el botón se re-etiqueta como

“continuar”, lo que, al ser presionado, enviará la correspondiente instrucción a los

clientes de reanudar sus cronómetros.

Ilustración 13: IntegraFilm Server. Durante la ejecución

7.1.4 IntegraFilm Client

IntegraFilm Client es la aplicación que se ejecuta en la Pocket PC de cada

usuario espectador en la sala de cine.

7.1.4.1 Casos de Uso

En la ilustración 14 se muestran los casos de uso para la aplicación IntegraFilm

Client, en la que interactúa solo el usuario espectador:

Ilustración 14: IntegraFilm Client. Casos de uso

Page 44: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

44

espectador

IntegraFilm Client

Cargar Guión

Pausar Cronómetro

Iniciar Cronómetro

Reanudar Cronómetro

Recibir y Enviar

Mensajes de Servidor

«uses»

«uses»

«uses»

«uses»

Reproducir Guión

Seleccionar Nivel

Tabla 3: [IntegraFilm Client] Descripción de los Ca sos de uso Nombre CUC 01: Cargar Guión

Actores Espectador

Actividades Se conecta a la red y se descarga el guión

Sinopsis El usuario Espectador, al iniciar la aplicación, recibirá el guión

automáticamente una vez que haya sido cargado en IntegraFilm

Server por el usuario proyector. Una notificación de correcta

recepción del guión será enviada al servidor.

Nombre CUC 02: Iniciar Cronómetro

Actores Espectador

Actividades Se inicia el cronómetro

Sinopsis El usuario Espectador, al recibir la instrucción adecuada, iniciará su

Page 45: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

45

cronómetro automáticamente. Una notificación del correcto inicio de

cronómetro será enviada al servidor.

Nombre CUC 03: Pausar Cronómetro

Actores Espectador

Actividades Pausa el cronómetro

Sinopsis El usuario Espectador, al recibir la instrucción adecuada, pausará el

cronómetro de su dispositivo automáticamente.

Nombre CUC 04: Reanudar Cronómetro

Actores Espectador

Actividades Reanudar el cronómetro

Sinopsis El usuario Espectador, al recibir la instrucción adecuada desde el

servidor, reanudará el cronómetro de su dispositivo

automáticamente. Una notificación de la correcta detención del

cronómetro será enviada al servidor.

Nombre CUC 05: Reproducir Guión

Actores Espectador

Actividades En el momento indicado, reproducirá el guión

Sinopsis El usuario Espectador podrá escuchar la reproducción del guión en

el momento adecuado automáticamente, justo en la escena donde

suceda lo referido en el texto

Nombre CUC 06: Seleccionar Nivel

Actores Espectador

Actividades En cualquier momento, el espectador puede seleccionar el nivel de

información que desea recibir

Sinopsis El usuario Espectador podrá especificar el nivel de información que

desea recibir: alto o bajo.

Esta es la única interacción humana del usuario con el sistema.

Page 46: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

46

7.1.4.2 Interfaz

El diseño de interfaz de esta aplicación es el resultado de un largo estudio y

desarrollo de diferentes alternativas, puestas a prueba con diferentes usuarios finales

y profesionales experimentados en interfaces de usuarios para personas no videntes.

Estas alternativas serán expuestas en el capítulo de discusiones.

A continuación se exhibe la interfaz resultante. Al igual que en el caso de

IntegraFilm Server, los casos de uso no exigen más de una interfaz.

Ilustración 15: IntegraFilm Client. Interfaz

Se debe tener en consideración que esta aplicación es la que permitirá la

interacción de IntegraFilm con el usuario final no vidente. Es por esto la simplicidad y

las limitadas acciones que permite realizar.

Page 47: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

47

Los números en rojo fueron montados sobre la imagen original, para poder

explicar cada componente de la interfaz:

1. Botón de nivel “alto”. Permite configurar la aplicación (en tiempo de ejecución)

para que reproduzca el guión con un alto nivel de detalle, obteniendo de ésta

manera la mayor información posible. Al presionar este botón el usuario recibe

un feedback sonoro (“escuchar todo el detalle”)

2. Botón de nivel “bajo”. Indica a la aplicación que el usuario desea escuchar

menos información, solo la indispensable para comprender el guión. Al

presionar este botón el usuario también recibe un feedback sonoro (“escuchar

solo lo indispensable”)

3. Área donde se muestra un registro de todos los eventos que suceden en el

tiempo de ejecución. Esto se muestra solo por si algún usuario vidente esta

ejecutando la aplicación, o para que el usuario proyector verifique que todo

esté en orden

4. Área donde se indica el cronómetro individual (en segundos) del dispositivo.

Esto es sólo para tener una referencia, por lo que se evita distraer recursos de

la Pocket PC en trasformar esos segundos a formato hh:mm:ss1. Este valor se

podría utilizar en la eventualidad que se desee verificar el sincronismo de las

aplicaciones, y corresponde al valor entre paréntesis del campo 3 de la interfaz

del servidor

5. Botón “salir”. Para cerrar la aplicación. Está ubicado estratégicamente en esa

posición, es un lugar donde un usuario no vidente presiona menos

inconscientemente. Al presionarlo, aparece una ventana de confirmación, como

se muestra en la ilustración 16.

Ilustración 16: IntegraFilm Client. Confirmación de cierre de aplicación

1 El sintetizador Text-To-Speech Acapela mostró un mejor desempeño al omitir la transformación de formato en el tiempo.

Page 48: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

48

Esta ventana de confirmación aparece en el centro de la pantalla del dispositivo,

para evitar la posibilidad de que se pueda presionar por error el botón “salir” y

seguidamente el botón de confirmación “Sí”.

Para asegurar una acción indeseada, esta ventana desaparece si se presiona

en cualquier lugar de la pantalla del dispositivo diferente al botón “Sí”. El objetivo es

que el usuario espectador no cierre la aplicación.

Page 49: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

49

7.2 Implementación

De acuerdo al diseño desarrollado en la sección anterior, se debe considerar el

desarrollo de tres aplicaciones distintas, estas se instalarán en diferentes lugares

físicos:

• IntegraFilm Client, localizada en cada Pocket PC

• IntegraFilm Server, localizada en el computador servidor

• IntegraFilm Web, localizada en un servidor de hosting web

Utilizando los principios de las metodologías ágiles, se planificó el desarrollo

del sistema pensando en productos entregables, que contienen una o más tareas.

El lenguaje de programación utilizado para desarrollar las aplicaciones cliente y

servidor fue Visual C#. Para la aplicación web fue PHP, junto con JavaScript,

incorporando técnicas AJAX.

En la tabla 1 se muestran los productos con sus respectivas tareas para cada

una de las aplicaciones, en el mismo orden expuesto.

Las tareas se desarrollaron en la medida que fueron necesarias para mantener

una lógica de desarrollo continuo del sistema, permitiendo realizar pruebas de

funcionalidad con usuarios.

En la tabla 4 se detallará el desarrollo de cada tarea dentro de cada aplicación:

Page 50: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

50

Tabla 4: Listado de productos y tareas Producto Tarea

IntegraFilm Client

(C1) Iniciación de Cronómetro Cronómetro

(C2) Control de Cronómetro

(C3) Integración de Sintetizador Text-To-Speech

(C4) Lectura de una frase

(C5) Parser de archivo de guión

(C6) Lectura de guión

Lectura de guión

(C7) Graduación de guión

Interfaz (C8) Diseño de la interfaz

(C9) Conectarse a la red Red

(C10) Recibir Instrucciones de Server

IntegraFilm Server

(S1) Conexión con proyector Cronómetro

(S2) Iniciación de Cronómetro

(S3) Diseño de la interfaz Interfaz

(S4) Agregar archivo de guión

(S5) Descargar archivo de guión

(S6) Detectar clientes conectados

(S7) Enviar instrucciones

Red

(S8) Recibir respuestas

IntegraFilm Web

(W1) Diseño de interfaz Interfaz

(W2) Validadotes de formularios

(W3) Publicación de guión

(W4) Administración de guiones

(W5) Descarga de guión

(W6) Edición de guiones

(W7) Procesamiento de estructura de guión

Guiones

(W8) Creación de archivo de catálogo

(W9) Diseñar Base de Datos Base de Datos

(W10) Guardar información en la Base de Datos

Page 51: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

51

7.2.1 IntegraFilm Client

El desarrollo de IntegraFilm comenzó con la aplicación cliente. Se desarrolló

utilizando el .NET Compact Framework (para dispositivos móviles), realizando las

tareas que se detallan a continuación.

7.2.1.1 C8: Diseño de Interfaz

Utilizando la librería “System.Windows.Forms ” que trae por defecto C#, se

diseñó la interfaz gráfica apoyado por la interfaz gráfica que entrega Microsoft Visual

Studio, y luego los detalles se hicieron modificando el código generado por la interfaz

anterior. El resultado de esta tarea fue la clase “Form1 ”.

Al comenzar un nuevo proyecto en Visual Studio, se crea por defecto la clase

“Program ”, que contiene el método Main(), en un comienzo, vacío. Se decidió respetar

esta clase y dejarla (como se verá también más adelante) como la clase principal en

las dos aplicaciones que se realizarán.

Para finalizar esta tarea, se crea una nueva instancia de la clase recién creada

(Form1) y se ejecuta, de la manera indicada en el extracto de código 1:

Extracto de código 1: IntegraFilm Client. Interfaz gráfica

static void Main() {

Form1 f1 = new Form1(); Application .Run(f1); }

7.2.1.2 C1: Iniciación de cronómetro

El lenguaje de programación C# cuenta con una librería llamada Timer, dentro

del paquete de formularios “Windows.Forms ” que facilita esta tarea. Sin embargo se

presentaron diferentes dificultades para controlar la velocidad en la que se incrementa

el tiempo en un segundo. Esto debido a que al utilizar el emulador de dispositivos que

ofrece la plataforma de desarrollo (Visual Studio), el reloj creado avanzaba más rápido

que lo esperado (velocidad de un reloj corriente), por lo que fue necesario ecualizar el

tiempo e indicar que transcurriera un segundo en la aplicación al cabo de 1083

milisegundos.

Page 52: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

52

Finalmente, al probar la aplicación en un dispositivo real, se obtuvo un

resultado satisfactorio: 1000 milisegundos correspondían efectivamente a un segundo.

El resultado de esta tarea fue la clase “Cronometro ”, que contiene un

constructor y un método ejecutado cada segundo, llamado Timer_Tick() , que esta

encargado, por el momento, de presentar en la interfaz los segundos que llevan

transcurridos desde que se llama a una instancia de la clase.

7.2.1.3 C2: Control de Cronómetro

Una vez finalizada la tarea anterior, se agregó la funcionalidad de pausar y

reanudar el cronómetro. Para verificar su funcionamiento, se realizó una interfaz

provisoria que permitiera realizar estas acciones por medio de botones.

Posteriormente estos botones fueron eliminados de la interfaz, pues estas funciones

de control serán realizadas automáticamente al recibir las instrucciones

correspondientes desde el servidor.

7.2.1.4 C3: Integración de Sintetizador Text-To-Spe ech

El siguiente paso a realizar fue integrar el sintetizador de Text-To-Speech. Se

utilizó una versión de desarrollo de “Acapela Group” disponible en el Centro de

Computación C5.

Para esto, se instalaron los siguientes archivos del sintetizador en la carpeta

“Windows” de cada dispositivo:

• babiledll.dll

• libcwce.dll

• nscube.dll

• nscapi.conf

• y la carpeta “Acapela”, que contiene las voces.

Por tratarse de una versión de desarrollo, el sintetizador reproduce el texto

“Esta es una versión de prueba de la síntesis de Acapela Group” después de leer 11

frases.

Page 53: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

53

7.2.1.5 C4: Lectura de una frase

Con los archivos mencionados instalados fue posible utilizar la API (del inglés

Application Programming Interface) de Acapela, que consiste básicamente en las

siguientes dos llamadas de funciones, mostradas en el extracto de código 2:

Extracto de código 2: IntegraFilm Client. Uso de Acapela

TTS.TTS_Speak( string frase);

TTS.TTS_StopSpeaking();

Al llamar a la primera función, el sintetizador lee el contenido de la variable

frase entregada como parámetro, mientras que con la segunda función se detiene la

lectura si es que hay una en curso.

En general, solo se utilizó la primera función, ya que la versión utilizada de

Acapela no permite comenzar la lectura de alguna frase si es que hay otra lectura en

curso. Si sucede este escenario, la nueva frase es encolada y se reproduce una vez

finalizada la lectura de la frase en curso.

7.2.1.6 C5: Parser de archivo de guión

Teniendo las funcionalidades necesarias para que la aplicación pudiera leer

una frase dada, se prosiguió por entregarle el guión descriptivo. Para esto fue

necesario definir previamente la estructura que éste tendría.

7.2.1.6.1 Estructura del Guión

Inicialmente, se tomó como inspiración la estructura de los archivos de

subtítulo de películas que se utiliza para los reproductores de video en el

computador: el formato SRT.

Los archivos SRT son ficheros de texto que contienen los subtítulos

asociados a un video. Utilizan el formato “subrip”, en el que se almacena esta

información:

• nº de subtítulo

• intervalo de tiempo en el que aparece

• texto del subtítulo

Page 54: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

54

Un ejemplo de este formato se muestra en la ilustración 17:

Ilustración 17: Formato SRT

Como se aprecia en la ilustración 17, este formato cumple su objetivo,

pero no es robusto en cuanto a su estructura, pues presenta varias dificultades

para parsearlo (es difícil asegurar el correcto procesamiento), y es sencillo

cometer errores, basta con borrar un número de subtítulo (los que están en

rojo) y ya se obtendrá un resultado no esperado. Cabe destacar también que el

número es innecesario.

En respuesta a esto, se decidió crear un nuevo formato (influenciado

también por la necesidad de incorporar, como ya se sabe, un nuevo parámetro:

el nivel). Se optó por crear la estructura mostrada en la ilustración 18, utilizando

conceptos de tags o etiquetas XML:

Ilustración 18: Formato de guión de IntegraFilm

Page 55: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

55

Como se ve en la ilustración, se agregó el concepto de etiquetas,

englobando el documento con la etiqueta <movie>, y dentro de ésta las

etiquetas <moviename> y <p>, la primera contiene el nombre de la película que

describe el presente guión, y la segunda contiene el contenido de cada frase

del guión, con sus atributos respectivos de nivel y tiempo de ejecución (start).

Se eliminó la milésima de segundo en el tiempo, y se dejó únicamente

el instante de inicio (ya que la frase durará hasta que el sintetizador termine de

leer).

De esta manera se tiene un guión mejor estructurado, teniendo certeza

del término del archivo (gracias a la etiqueta </movie>).

Teniendo ya la estructura que se utilizaría para almacenar el guión descriptivo,

se pudo proceder a parsearlo para procesar su contenido. Para esto se utilizaron

expresiones regulares , y con la ayuda de la librería de C# llamada

System.Text.RegularExpressions se pudo realizar las siguientes expresiones

regulares:

Extracto de código 3: IntegraFilm Client. Parser de Guión

Regex rn = new Regex( @"<movie>[\r\n\s]*<moviename>(?<name>.*)</moviename >[\r\n\s]*" );

Regex r = new Regex( @"[\r\n]*<p nivel=(?<nivel>\d+) start=(?<start>\d{1,2}:\d{1,2}:\d{1,2})>[\r\n]*(?<f rase>.*)[\r\n]*</p>[\r\n]*" );

Como se aprecia en la figura, se procede creando un objeto de la clase

“Regex ”, el cual luego se comparará con un string (en este caso, el guión).

Con la primera expresión se obtiene el nombre de la cinta, mientras que con la

segunda, se obtienen todas las frases que éste contiene.

Una vez procesado el texto, se almacena la información en una estructura de

datos del tipo cadena enlazada, donde la cadena misma corresponde a un objeto de

la clase “Script ” y cada nodo corresponde a un objeto de la clase “Parrafo ”,

formándose así la siguiente estructura:

Page 56: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

56

Ilustración 19: IntegraFilm Client. Clase Script.cs, lista enlazada.

Esta ilustración corresponde a la lista creada a partir del guión expuesto en la

ilustración anterior.

El objeto de clase “Script ” (la lista) posee la variable de instancia “Parrafo first ”,

que es una referencia hacia el primer nodo (de clase “Parrafo ”) de la lista. Cada nodo

de la lista corresponde a un objeto de la clase “Parrafo ”, que posee las siguientes

variables de instancia:

• int nivel: variable tipo entero que representa el nivel descriptivo de la frase

almacenada en el nodo.

• int start: variable también tipo entero que representa el instante en el que se

debe leer la frase almacenada en el nodo. Cabe destacar que para obtener

este valor, se calcula la cantidad de segundos que representa el valor original.

En el ejemplo de la figura, el primer párrafo del guión tenía el atributo

start=00:01:59, que corresponde a 119 (segundos) en el nodo. Esto se hace

únicamente para exigir menos procesamiento en la ejecución.

• string frase: variable del tipo cadena de caracteres que almacena la frase

propiamente tal del nodo.

• parrafo next: variable que guarda una referencia hacia el nodo siguiente en la

lista.

Esta lista enlazada se crea utilizando un algoritmo de inserción ordenada , de

modo de asegurar que la frase que contiene el nodo de posición i en la lista se debe

reproducir sí y solo sí después de la frase del nodo de posición i-1.

7.2.1.7 C6: Lectura de Guión

Para leer correctamente el guión, en condiciones normales de operación, se

crea una referencia pivote al nodo raíz (Parrafo First) de la lista enlazada explicada

Page 57: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

57

recientemente y esperar hasta el momento indicado para leerlo. Una vez leído, se

avanza hasta el nodo siguiente y se repite el proceso: se espera hasta que sea el

momento de su lectura.

Esto se logró modificando el método Timer_Tick() explicado en la tarea C1.

Ahora en cada incremento de segundo se pregunta si corresponde leer el párrafo en

donde esta la referencia pivote. El método quedó finamente así:

Extracto de código 4: IntegraFilm Client. Método TImer_Tick()

private void Timer_Tick( object Sender, EventArgs e) { //Corresponde leer algun parrafo? if ( this .pivote != null

&& this .pivote.Start == this .tiempoactual) {

if ( this .nivel >= this .pivote.Nivel) { this .pivote.Leer(); } this .pivote = this .pivote.Next; }

//Refresca la interfaz this .clock.Text = this .tiempoactual.ToString();

//Incrementa el reloj en un segundo this .tiempoactual++;

}

Como se observa en el extracto de código, por cada segundo que pasa se

pregunta si corresponde leer algún párrafo. Si la respuesta es afirmativa entonces se

lee sí y sólo sí el nivel descriptivo del párrafo es igual o superior al elegido por el

usuario.

En condiciones anormales de operación, el cronómetro del dispositivo puede

no comenzar desde cero (por ejemplo en el caso que un usuario llegue tarde a la

proyección de la cinta) o bien cuando es ajustado por instrucción del servidor (por

ejemplo en el caso de ocurrir un imprevisto ajeno al sistema). En estos casos se

tendrá especial cuidado con la posición del nodo pivote, pues si está mal posicionado,

es posible que nunca avance.

Para manejar estas condiciones excepcionales, cada vez que se inicia, o ajusta

(por instrucción del servidor) el cronómetro, se recorre la lista con el nodo pivote,

Page 58: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

58

desde el nodo raíz hasta el nodo que se debe leer próximamente. Para avanzar, se

pregunta si la variable de instancia start de cada nodo es menor al tiempo recibido.

7.2.1.8 C7: Graduación del Guión

En la explicación de la tarea anterior se adelantó el concepto del nivel

descriptivo seleccionado por el usuario. La selección de estos niveles (dos) se

presentan en la interfaz por medio de los botones en la parte inferior de la pantalla del

dispositivo (ver Ilustración 15). Al accionarlos, se almacena el valor elegido (1 ó 2) en

una variable de la clase Cronometro llamada nivel (this.nivel en el extracto de código

anterior)

El desarrollo de esta aplicación quedó pendiente y se comenzó el desarrollo de

la aplicación servidor (IntegraFilm Server), pues correspondía comenzar a recibir datos

desde esta aplicación. Una vez avanzado el desarrollo de la aplicación servidor, se

prosiguió con las tareas de esta aplicación.

7.2.1.9 C9: Conectarse a la red

La comunicación entre las aplicaciones IntegraFilm Server e IntegraFilm Client

se logra utilizando el protocolo TCP, donde todos los clientes se conectan al servidor y

establecen una comunicación personalizada y segura con él para poder recibir y enviar

información.

Para poder lograr esto, se debe proporcionar la dirección IP del servidor, para

entregársela de parámetro a los clientes. Si se pudiera asegurar que el servidor tendrá

siempre la misma dirección IP entonces esto no sería una complicación mayor. El

problema es que este escenario es muy poco frecuente.

El método utilizado para solucionar este inconveniente fue crear un MultiCast,

asignando una dirección IP fija para esta red (224.5.6.7 en el caso de IntegraFilm).

Así todos los clientes se suscriben a esta señal cuando se inicia la aplicación y

aguardan escuchando hasta que reciban la dirección IP del servidor y luego se retiran

del MultiCast. Por otro lado en el servidor se lanza un proceso dedicado a mandar su

IP periódicamente a los suscritos de manera paralela al proceso principal de la

Page 59: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

59

aplicación (un thread o hilo). De esta manera los clientes capturan la dirección IP del

servidor y pueden establecer una conexión de envío seguro de datos TCP.

En la ilustración 20 se muestra un diagrama que grafica la solución propuesta:

Ilustración 20: IntegraFilm. Multicast para publicar IP del S ervidor

Para realizar las operaciones de MultiCast se utilizó principalmente la clase

“EnviarMC.cs”, proporcionada por profesionales de C5 (Fernando Aguayo y Tiago

Hassler), en el extracto de código 5 se muestra el código de mayor relevancia:

Extracto de código 5: IntegraFilm Server. Envío de IP en MultiCast

IPHostEntry miIPtmp = Dns.GetHostEntry( Dns.GetHostName()); string ipServer = miIPtmp.AddressList[0].ToString(); EnviarMC e = new EnviarMC ( "224.5.6.7" , "5001" ); e.Enviar(ipServer);

En la primera línea de código se obtiene la lista de direcciones IP del

computador (de la tarjeta de red física y de la tarjeta de red inalámbrica, entre otras).

En la variable ipServer se almacena el valor de la dirección IP de la tarjeta de

red física. Si el computador servidor está conectado vía WiFi, no se enviará la

dirección adecuada. Esto presenta una restricción importante para el sistema: el

computador servidor debe estar conectado físicamente a Internet. De caso contrario,

se debe cambiar esta línea de código y recuperar el segundo elemento del arreglo

AddressList.

Page 60: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

60

Por otro lado, en la aplicación cliente, se ejecuta un código similar, que se

muestra en el extracto de código 6:

Extracto de código 6: IntegraFilm Client. Suscripci ón y recepción de IP

Socket sock = new Socket ( AddressFamily .InterNetwork, SocketType .Dgram, ProtocolType .Udp);

IPEndPoint iep = new IPEndPoint ( IPAddress .Any, 5001); sock.Bind(iep);

sock.SetSocketOption( SocketOptionLevel .IP, SocketOptionName .AddMembership, new MulticastOption ( IPAddress .Parse( "224.5.6.7" )));

byte [] data = new byte [1024]; int recv = sock.Receive(data, data.Length,0); string ipserver = Encoding .ASCII.GetString(data, 0, recv);

sock.Close();

Básicamente, lo que se hace es abrir un Socket (sock) y asociarlo al punto de

conexión (iep), luego se indica que el Socket debe suscribirse al canal del MultiCast de

dirección 224.5.6.7 (el usado también por el servidor).

Posterior a esto, el proceso se pausa en la antepenúltima línea de código,

esperando a recibir alguna información (la dirección IP del servidor). Una vez que la

recibe, se cierra el Socket y se prosigue con lo siguiente: Establecer una conexión

segura con el servidor utilizando el protocolo TCP.

Para la conexión TCP entre cada cliente y el servidor se utilizó como base la

clase AdminNet, proporcionada por Héctor Flores, también profesional de C5.

Esta clase contiene el método “InicializarNet()”, en donde se ejecuta el código

recién expuesto de MultiCast y luego se realiza la conexión TCP de la siguiente

manera:

Extracto de código 7: IntegraFilm Client. Conexión TCP con el servidor. byte [] data = new byte [1024];

IPEndPoint nose = new IPEndPoint ( IPAddress .Parse(ipserver), 8005);

misocket = new Socket ( AddressFamily .InterNetwork, SocketType .Stream, ProtocolType .Tcp);

misocket.Connect(nose);

Page 61: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

61

Una vez lograda la comunicación segura TCP entre cada cliente con el servidor

se envía un primer mensaje con los datos del cliente (“datos@direcciónIPdelCliente”)

Como ya se anticipó, a partir de este momento fue necesario introducir al

desarrollo del sistema procesos que corran de manera paralela al proceso principal de

cada aplicación, denominados procesos threads (o hilos).

En la ilustración 21 se exhibe la vista de Procesos de la aplicación cliente,

donde se muestra de manera gráfica todos los threads de ejecución que correrán en

IntegraFilm Client:

Ilustración 21: IntegraFilm Client. Vista de Procesos

El hilo principal es el originado por la clase “Program”, que se mencionó en la

tarea C8. En este hilo se carga el formulario en pantalla y está el manejo de eventos

originados por la interacción del usuario (espectador): cambio de nivel de graduación y

cierre de aplicación.

Al comenzar este hilo principal, se lanza el thread que se ha explicado

recientemente con el método “InicializarNet()”. Cuando se logra iniciar la red, se lanza

un tercer hilo de ejecución con el método “Conectado()”. En este hilo se espera

constantemente cualquier instrucción de IntegraFilm Server. Cuando se recibe una, se

identifica qué es y se realiza lo indicado.

Page 62: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

62

Junto con este último thread, se lanza otro más con el método

“AvisarPresencia()”, que se ejecuta periódicamente (cada 1 minuto), enviando al

servidor una señal que indica que está conectado en la red.

Resulta coherente dudar sobre el periodo de ejecución de este último thread,

pues se podría ejecutar constantemente de manera de tener un feedback más preciso

en la aplicación servidor y saber el momento exacto en el que el cliente se retiró (o se

produjo un error en su dispositivo). Sin embargo, se debe tener muy presente el alto

consumo de recursos que realiza el sintetizador de voz, presentando problemas de

fluidez en la locución, incluso cuando se ejecuta IntegraFilm Client en el simulador de

dispositivos que ofrece Microsoft Visual Studio 2003, cuando se tienen otras

aplicaciones abiertas en el computador.

Con la configuración establecida (con un periodo de 1 minuto) se obtiene una

locución fluida en los dispositivos Pocket PC usados en las pruebas de usuario.

7.2.1.10 C10: Recibir instrucciones del Server

Como se acaba de explicar, hay un thread dedicado a escuchar

constantemente alguna instrucción de parte del servidor a través de la conexión TCP

con éste. En este thread se ejecuta el método “Conectado()” de la clase AdminNet,

que pausa el proceso de ejecución hasta recibir alguna información por parte del

servidor.

Existen tres tipos de instrucciones: “script”, “tiempo” y “estado”. Cada una de

ellas está compuesta por dos partes: el nombre de la instrucción y el valor asociado,

separados por un “@”.

Por la conexión TCP se envían paquetes de 1024 bytes (1kb), tamaño

suficiente para las dos últimas instrucciones, pues se recibe “tiempo@0” y

“estado@pausar” o “estado@continuar”, donde el valor de la primera instrucción indica

el tiempo con el que debe comenzar el cronómetro (si un usuario llega tarde, no debe

partir en 0) y el valor de la segunda y tercera corresponden a pausar el cronómetro o

reanudarlo respectivamente.

Page 63: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

63

El caso del envío de script (o guión) es ligeramente más complejo, pues se

tiene en la mayoría de los casos guiones de mayor tamaño (el usado en las pruebas

de usuario pesaba 5kb). Lo que se hizo fue despachar (por parte del servidor) el guión

fragmentado, enviando de a una frase, que después son reagrupadas en cada cliente,

reestableciendo así el guión original. Como estas instrucciones son recibidas en un

hilo secundario de ejecución y debían ser traspasadas a otros hilos (al principal

mayoritariamente), fue necesario utilizar delegados (“delegates” en inglés), que son

métodos del framework .NET que permiten la interacción entre distintos threads.

A continuación se exhibe el extracto de código 8, donde se reciben las

instrucciones y se llama a cada delegado dependiendo de la instrucción recibida:

Extracto de código 8: IntegraFilm Client. Recepción de instrucciones int len = 0;

string action; byte [] buffer = new byte [1024]; len = this .misocket.Receive(buffer, buffer.Length, 0); string datos = System.Text. Encoding .UTF8.GetString(buffer, 0,

buffer.Length); char [] delimiterChar ={ '@' }; string [] palabras = datos.Split(delimiterChar); action = palabras[0]; switch (action) { case "script" : try { this .formulario.RecibirGuion(palabras[1],palabras[2]); if (palabras[1].CompareTo( "0" ) == 0) this .MandarMsgServer( "script@ok" ); } catch { MessageBox .Show( "Error al recibir script" ); } break ; case "tiempo" : try { int time = Int32 .Parse(palabras[1]); this .formulario.RecibirTiempo(time); this .MandarMsgServer( "tiempo@ok" ); } catch { MessageBox .Show( "Error al recibir tiempo" ); } break ; case "estado" : try { this .formulario.RecibirEstado(palabras[1]); string m = "estado@" + palabras[1] + "@ok" ; this .MandarMsgServer(m); } catch { MessageBox .Show( "Error al recibir estado" ); } break ; }

Page 64: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

64

Como se puede observar, dependiendo de la instrucción, se ejecutan distintos

delegados, los que pueden ser:

• RecibirGuion(): Delegado encargado de recopilar cada frase del guión, cuando

se termina la recepción completa de éste, crea la lista enlazada explicada en la

tarea C5.

• RecibirTiempo(): Delegado encargado de recibir el tiempo. Este dato lo envía al

objeto de la clase “cronómetro”. Si el cronómetro no se ha iniciado, se inicia. Si

ya había sido iniciado, corresponde a un reajuste de cronómetro, que se realiza

en el mismo objeto cronómetro.

• RecibirEstado(): Delegado encargado de recibir distintos estados (pausar o

continuar). Si recibe “pausar”, entonces desactiva el cronómetro. Si recibe

“continuar”, lo vuelve a activar.

Posterior a esta ejecución, se envía un mensaje de vuelta al servidor,

notificando la correcta recepción de su instrucción. Esta notificación será recibida por

el servidor y no volverá a enviar la instrucción (como se verá más adelante, el servidor

envía periódicamente todas las instrucciones a los clientes que no las han recibido).

Page 65: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

65

7.2.2 IntegraFilm Server

Esta aplicación se desarrolló utilizando el framework .NET de Microsoft.

Análogo al desarrollo de la aplicación cliente, se comenzó desarrollando una

interfaz básica que permitiera tener feedback de los módulos a implementar. A

continuación se detalla cada tarea.

7.2.2.1 S3: Diseño de la interfaz

Utilizando la interfaz gráfica de desarrollo que incorpora Microsoft Visual

Studio, se desarrolló la interfaz básica de la aplicación servidor. El resultado de esta

tarea fue la clase “Form1 ”.

Similar a la aplicación Cliente, se respetó la clase “Program ” que crea

automáticamente Visual Studio y contiene el método “Main()”, donde se crea un objeto

de la clase Form1.

7.2.2.2 S1: Conexión con el proyector

Como el diseño lo indica, es necesario que esta aplicación esté sincronizada

con el reproductor de la cinta de la sala de cine, es decir, iniciar el cronómetro del

sistema junto con el cronómetro del reproductor de la cinta.

La primera idea fue realizar esto automáticamente, que IntegraFilm Server

pudiera estar conectado con el reproductor (DV-CAM2) y capturar una señal enviada

por éste informando el inicio de la cinta. Bastaba entonces con recibir del reproductor

la información suficiente como para determinar que la cinta acababa de comenzar.

Para lograr esto, se trabajó en conjunto con profesionales especializados en

edición y post producción de cine (Javier León, Profesor de Post-Producción de la

Universidad Arcis, y Carmen Brito, Jefa de Área Técnica de la Cineteca Nacional).

2 Formato de vídeo digital profesional utilizado para pruebas de sincronización

Page 66: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

66

Teóricamente, la solución consistía en conectar la salida del reproductor (de

protocolo RS-422) al computador (con protocolo USB) utilizando dos interfaces de

conversión de protocolos: de RS422 a RS232 y de RS232 a USB

En la secuencia de fotos de la ilustración 22 se muestran las interfaces

utilizadas para estas pruebas.

Ilustración 22: Estudio de sincronización de aplicación con reproductor DV-CAM

Durante las pruebas de campo, surgieron dos problemas con esta solución: lo

primero (y más importante) es que cada sala de cine posee un reproductor específico

para cada tipo de cintas, y considerando que no se encontró un estándar conocido

para la transmisión de datos serial de estos equipos, resultó ser muy inflexible utilizar

este módulo, pues funcionaría solo para algunos reproductores. El segundo problema

fue que se detectaron otros reproductores de cine que no tienen esta interfaz. Esto

significaría que el sistema quedaría obsoleto frente a esta circunstancia.

Considerando estos dos inconvenientes, y por razones de costo/beneficio, se

decidió eliminar la sincronización automática del sistema e incorporar una interfaz al

usuario proyector lo suficientemente flexible como para manejar este evento de forma

manual, tal como se muestra en la ilustración 12

7.2.2.3 S2: Iniciación de Cronómetro

Para esto se agregó la clase “Cronometro.cs” creada para la aplicación Cliente,

ya que se necesitaban las mismas funcionalidades.

Page 67: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

67

La diferencia es que al tratarse de una aplicación que se ejecuta en un

computador, se tienen mayores recursos de procesamiento, por lo que no es

necesario ahorrar en funciones para evitar el consumo de recursos.

Es por esto que se puede imprimir en pantalla el tiempo, en su formato más

amigable: “hh:mm:ss”, junto con el formato utilizado en la aplicación cliente (tiempo

acumulado expresado en segundos). Para esto, se utilizó la clase “TimeSpan”, de la

librería System.

7.2.2.4 S4: Agregar archivo de guión

Como se explicó en el capítulo de diseño (Ilustración 1), IntegraFilm Server

debe conectarse con IntegraFilm Web y obtener así un listado con los guiones

disponibles.

Para esto, se realizó la clase “Request ”, que en base a un string url es capaz

de conectarse y leer el contenido de la dirección url especificada. A continuación se

muestra un extracto con el código principal (constructor) de esta clase:

Extracto de código 9: IntegraFilm Server. Construct or de clase Request

public Request( string url) { this .url = url; this .request = HttpWebRequest .Create( this .url); WebResponse response = this .request.GetResponse(); StreamReader input_stream =

new StreamReader (response.GetResponseStream()); this .content = input_stream.ReadToEnd(); input_stream.Close(); }

Como se puede apreciar en el extracto de código 9, se utilizan las clases

HttpWebRequest y StreamReader, ambas provistas por la librería System.Net del

Framework .NET.

Con esto, para obtener el contenido de una dirección web, basta con crear un

objeto de tipo Request, dando la dirección como parámetro al constructor.

Page 68: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

68

Importante es destacar que el contenido obtenido por este objeto es el

contenido estático de la dirección url, pues no se tiene un intérprete de código html de

por medio.

La dirección ingresada es http://integrafilm.think1011.com/admin/catalogo.txt

cuyo contenido es el catálogo con todas las películas que han sido aprobadas por el

administrador del portal web.

Este catálogo también debe estar estructurado de manera tal que sea posible

procesar la información por parte de la aplicación. La estructura escogida se muestra

en la ilustración 23:

Ilustración 23: Catálogo de películas.

La generación de este catálogo será explicada en la sección de

implementación de IntegraFIlm Web.

Como se puede observar, por cada película se tiene el nombre (<moviename>)

y la dirección donde se encuentra el guión de esa película (<script>). Con esta

información, se agrega un elemento de System.Windows.Form llamado “ComboBox” y

cada ítem de éste corresponde al nombre de la película, guardando el valor de la

dirección url de cada guión.

Page 69: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

69

7.2.2.5 S5: Descargar archivo de guión

Para descargar el archivo del guión seleccionado se utilizó la misma clase

“Request ”, creando un objeto con la url entregada por el elemento ComboBox del

formulario.

Esta acción se realiza cuando el usuario proyector selecciona la cinta deseada

y hace clic en el botón “cargar”. Una vez descargado el guión se enviará éste a las

Pocket PC conectadas con el servidor. Esto se verá en el desarrollo de la tarea S7.

A partir de este momento, se retomó el desarrollo de la aplicación cliente. Se

trabajó en paralelo para lograr la comunicación efectiva entre el servidor y los clientes.

7.2.2.6 S6: Detectar clientes conectados

Al igual que en IntegraFilm Client, fue necesario incorporar el concepto de

threads en esta parte del desarrollo. En la ilustración 24 se muestra la vista de

Procesos de esta aplicación:

Ilustración 24: IntegraFilm Server. Vista de Procesos

Program.cs

Escuchar()

EnviarGuion()

EnviarTiempo()

Accept()

ThreadSocket()

IntegraFilm Server

ThreadSocket()1 Minuto

1 Minuto

1 MinutoEnviarEstado()

1 MinutoEnviarIP()

Page 70: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

70

Análogo a IntegraFilm Client, esta aplicación tiene un hilo principal, lanzado por

el método Main( ) de la clase “Program ”. Aquí se carga el formulario, se conecta con

IntegraFilm Web, descarga el catálogo de guiones disponibles y los incluye en el

formulario (tareas explicadas recientemente).

Se lanza un segundo thread, con el método “EnviarIP()” que se ejecuta cada un

minuto y se encarga de enviar al MultiCast la dirección IP de la tarjeta de red física del

computador.

Se lanza un tercer thread con el método “Escuchar()” en donde se escucha

constantemente la llegada de nuevos clientes. Por cada cliente, se iniciará un nuevo

thread con el método “ThreadSocket()” de la clase “ConnectionThread”, dedicado

exclusivamente a la recepción de mensajes de este cliente. El objeto creado de la

clase “ConnectionThread”, que almacena la información de la conexión con este

cliente, se agrega a una lista de conexiones, llamada “ListaConexiones”.

Paralelamente se lanzan tres hilos más que se ejecutan periódicamente. Uno

con el método “EnviarGuion()”, que envía el guión a los dispositivos; otro con el

método “EnviarTiempo()”, que envía el tiempo a los dispositivos; y un último con el

método “EnviarEstado()”, que envía las acciones de control (pausar y continuar).

Estos procesos corren cada 1 minuto, enviando el mensaje sólo a los clientes

que necesitan esta información. Es decir a aquellos clientes que no han enviado la

respuesta de notificación de la correcta ejecución de la instrucción al servidor. Podrían

ejecutarse más seguidamente, pero se decidió ese periodo para no sobrecargar a la

aplicación.

Los métodos utilizados en cada thread corresponden a métodos de la clase

“Server ”, creada a partir de la clase “AdminNet ”, utilizada en la aplicación cliente.

7.2.2.7 S7: Enviar instrucciones

El envío de instrucciones de IntegraFilm Server se realiza, como ya se dijo, de

manera continua, enviando la información únicamente a los clientes que la necesiten.

Estos threads corresponden a objetos de la clase “TimerCallback” de .NET

Framework.

Page 71: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

71

Hay un thread dedicado al envío de cada instrucción: uno para enviar el guión,

otro para enviar el tiempo, y otro para enviar estados (pausar o continuar el

cronómetro).

A continuación, en el extracto de código 10, se exhibe la función

“EnviarGuion()”, que es ejecutada constantemente:

Extracto de código 10: IntegraFilm Server. Envío de Guión

private void EnviarGuion() { for ( int i = 0; i < server.ListaConexiones.Count; i++) { ConnectionThread conexiontmp =

( ConnectionThread )server.ListaConexiones[i]; if (conexiontmp.conectado) { if (!conexiontmp.tieneScript) { int k = 1; foreach ( string strItem in

Regex.Split( this .f.TxtScript, "<p" )) {

conexiontmp.MandarMensaje( "script@" +k+"@"

+strItem+ "@"); k++; } conexiontmp.MandarMensaje( "script@0@end" ); } } } }

“ListaConexiones” es el arreglo de “ConnectionThread’s”, objeto que representa

la conexión con cada cliente. Por cada una de estas conexiones se envía, a los que no

tienen el guión, el guión por partes.

Como se verá en la tarea S8, este objeto “ConnectionThread” almacena la

información del estado de cada cliente, información rescatada de los mensajes de

notificación que envían los clientes después de ejecutar cada instrucción.

Page 72: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

72

7.2.2.8 S8: Recibir respuestas

Como ya se explicó, por cada cliente hay un thread dedicado a la comunicación

con él, en donde se está ejecutando el método “ThreadSocket()”, que congela su

ejecución esperando algún mensaje por parte del cliente.

Estos mensajes corresponden a notificaciones de la correcta recepción de las

instrucciones enviadas por el servidor, avisos de presencia, y los datos del cliente

(enviados al comenzar la conexión)

A continuación se muestra el extracto de código 11, con el método en cuestión:

Extracto de código 11: IntegraWeb Server. Recepción de mensajes

while ( true ) { int len = 0; byte [] buffer = new byte [1024]; len = this .misocket.Receive(buffer, buffer.Length, 0); string message = System.Text. Encoding .UTF8.GetString(buffer,

0, buffer.Length); char [] delimiterChar ={ '@' }; string [] messageitems = message.Split(delimiterChar); string headermessage = messageitems[0]; switch (headermessage) { case "Datos" : int numero = Int32 .Parse(messageitems[1]); break ; case "Presente" : conectado = true ; break ; case "script" : if (messageitems[1].CompareTo( "ok" )==0) tieneScript = true ; break ; case "tiempo" : if (messageitems[1].CompareTo( "ok" )==0) { this .najuste = this .najuste + 1; haComenzado = true ; } break ; case "estado" : estado = messageitems[1]; break ; } }

Page 73: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

73

Como se puede observar, los mensajes recibidos tienen la misma estructura

que los enviados, es decir, comienzan por la instrucción, luego un “@” y

posteriormente el valor de la instrucción.

Lo importante de este código es cuando se le asigna el valor a las variables

“conectado”, “tieneScript”, “haComenzado” y “estado”. Las tres primeras son tipo

boolean e indican que el cliente esta conectado, que ha recibido el guión

correctamente y que ha comenzado el cronómetro, respectivamente. La cuarta

variable (”estado”) indica el estado de reproducción en el que se encuentra el cliente

(pausado o en curso).

Como ya se vio en el extracto de código 10, estas variables son utilizadas al

momento de decidir si se envía la información o no al cliente. Por ejemplo, el thread

que envía los guiones, pregunta por cada cliente si “tieneScript” es verdadera o falsa,

si es falsa, quiere decir que aun no ha recibido el guión, por lo que se lo envía. En

cambio, de ser verdadera la variable, omite el envío del guión a este cliente.

De esta manera no se sobrecarga la red con paquetes de datos innecesarios.

Page 74: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

74

7.2.3 IntegraFilm Web

Una vez terminado el desarrollo de las aplicaciones servidor y cliente, se

comenzó el desarrollo de la aplicación web, que tiene por objetivo generar una

comunidad de guionistas y administrar sus guiones.

La aplicación web fue desarrollada utilizando el lenguaje PHP y una Base de

Datos MySql, sin la utilización de Frameworks, pues se tenía desarrollo previo que

podía ser reutilizado en esta aplicación.

En general las tareas fueron desarrolladas respetando el orden establecido. A

continuación se detalla el desarrollo más significativo de estas tareas:

7.2.3.1 W1: Diseño de interfaz

Lo primero que se hizo fue desarrollar la interfaz gráfica, para poder visualizar

las funcionalidades y el modelo entidad relación que se debía realizar.

Se desarrollaron todas las interfaces mostradas en la sección de diseño.

7.2.3.2 W2: Validación de Formularios

Una vez finalizados los formularios, se procedió a hacer validaciones simples

en el computador cliente de la web, vía JavaScript, para brindar una primera barrera al

mal uso de la aplicación.

7.2.3.3 W9: Diseñar Base de Datos:

Antes de continuar el desarrollo, fue necesario desarrollar el modelo

entidad/relación de la aplicación web. Este modelo cuenta de 3 entidades: “Guion”,

“Noticia” y “Usuario”. Estas entidades no se relacionan, por lo que generan solo tres

tablas.

Page 75: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

75

En la tabla “Guion” se encuentra la información de cada guión publicado, sin el

guión propiamente tal, pues está en un archivo físico que se llama, por ejemplo,

“guion_3.txt“, donde el 3 representa al ID del registro del guión en la Base de Datos.

En la tabla “Noticia” esta el único registro donde se almacena la noticia que es

publicada en la columna derecha de todas las páginas.

Finalmente, en la tabla “Usuario” se encuentran los datos de los usuarios

administradores del sitio.

7.2.3.4 W10: Guardar información en la Base de Dato s

Con la Base de Datos generada en la tarea W9 y los formularios con

validaciones en la tarea W2, se realizaron todas las funciones necesarias para crear,

modificar, eliminar y actualizar registros en la base de datos.

Posteriormente se crearon otras funciones, en la medida que fue necesario, la

función que procesa un guión para validar su estructura, la función que crea el archivo

físico de un guión y la función que crea el archivo físico con el catálogo de guiones.

7.2.3.5 W3: Publicación de Guión

En un comienzo se pensó que los usuarios subieran el guión como un archivo,

ocupando un formato específico (.txt). El problema que presentó esta solución fue

principalmente que después de unas pequeñas pruebas de usuarios (potenciales

guionistas, del área de humanidades), muy pocos conocían ese formato y menos

sabían como elaborar un archivo “.txt”. Básicamente no conocían el “block de notas”

de Windows.

Como se verá más adelante, la idea es procesar el guión que se desea

ingresar, de manera de permitir la publicación sólo de guiones bien estructurados, por

lo que la alternativa de aceptar un archivo con formato Microsoft Word tampoco era

muy viable, pues comenzarían los problemas con la lectura de este archivo.

La lectura de un archivo de cualquier formato escapa de los alcances de esta

aplicación, por lo que se decidió entregar un formulario en pantalla que permitiera

Page 76: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

76

escribir el guión en línea (Ilustración 5). Si el usuario lo desea, puede realizarlo en su

programa procesador de texto favorito y luego copiar y pegar el texto en el formulario.

Por el momento, esto creará automáticamente un archivo en formato .txt y lo

guardará en una carpeta donde se almacenan todos los guiones. Junto con esto, se

creará el correspondiente registro en la Base de Datos

7.2.3.6 W4: Administración de guiones

Los registros que se crean en la publicación de cada guión tienen un estado

inicial igual a 0. Este estado significa que el guión no ha sido aprobado por el

administrador del portal.

Los guiones con este estado son desplegados en la pantalla de administración

(Ilustración 8) y el administrador deberá revisarlos para comprobar que se trata

efectivamente de un guión descriptivo de una película existente. Posteriormente podrá

aprobar, rechazar o editar el guión.

7.2.3.7 W5: Descarga de un guión

Inicialmente se pensó en crear una sección dentro del portal web en donde se

mostrara el contenido de un guión descriptivo. Pero finalmente se decidió eliminar esta

sección y permitir la descarga de los archivos con los guiones, de manera que se viera

explícitamente un guión, tal como el usuario visitante deberá estructurarlo al momento

de crear uno.

7.2.3.8 W6: Edición de un guión

Como se mencionó en la tarea W4, el administrador tiene la facultad de editar

un guión, agregando y quitando el contenido que desee, utilizando la interfaz que se

mostró en la ilustración 9.

Importante es mencionar que el nombre que se le otorgue a la cinta es el

nombre que aparecerá en la interfaz de IntegraFilm Server.

Page 77: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

77

7.2.3.9 W7: Procesamiento de la estructura del guió n

La aplicación web cuenta con un motor de procesamiento de la estructura de

guiones. Este motor verifica el contenido del guión, permitiendo así únicamente la

publicación de guiones bien estructurados, para evitar futuros problemas en tiempo de

ejecución en la aplicación cliente.

El algoritmo que se utiliza es similar al implementado en la aplicación cliente,

que se mostró en el extracto de código 3, pero traducido al lenguaje PHP.

7.2.3.10 W8: Creación del archivo de catálogo

Cada vez que se aprueba, edita, o elimina un guión, IntegraFilm Web crea un

nuevo archivo físico de catálogo, reemplazando el anterior, cuyo contenido es el

mostrado en la ilustración 23.

Con la realización de esta tarea, se dio por finalizado el desarrollo del sistema

IntegraFilm.

7.3 Pruebas de usuario

Durante el desarrollo del proyecto se efectuaron pruebas de usuario en la

medida que se fueron incorporando nuevas funcionalidades al sistema. La mayoría de

las pruebas fueron efectuadas con usuarios no videntes.

Sin duda, las pruebas de usuario que aportaron mayor valor al estudio de

IntegraFilm fueron las últimas dos realizadas, una en la sala de “Micro Cine” de la

Cineteca Nacional del Centro Cultural Palacio La Moneda y la otra en el “Auditorio del

Departamento de Ciencias de la Computación de la Universidad de Chile”.

En la primera se contó con la participación de 10 espectadores no videntes,

entre 18 y 66 años de edad, con ceguera congénita y adquirida, mientras que en la

segunda, asistieron 6 usuarios no videntes, con distintos niveles de discapacidad

visual, entre 19 y 32 años de edad.

Page 78: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

78

El objetivo de la primera prueba mencionada fue validar la interfaz de usuario

diseñada teóricamente (mostrada en la ilustración 15), observar la cantidad de

información requerida por los usuarios y evaluar el desempeño de la red con múltiples

dispositivos en un escenario real.

El objetivo de la segunda prueba fue validar los cambios realizados a partir de

las sugerencias recibidas de parte de los usuarios en la prueba anterior, para dar así

un término formal al desarrollo de la aplicación.

Para realizar estas pruebas, se contó con la ayuda logística de las profesoras

diferenciales de C5, Gloria Noriega y Carolina Farías y con la asistencia de personas

no videntes principalmente del Hogar de ciegos Santa Lucía y del Colegio especial

para ciegos Hellen Keller. En las pruebas, se les explicó a los usuarios el proyecto, los

objetivos y su funcionamiento de manera breve. Posteriormente se proyectó la cinta de

video.

La cinta elegida fue una serie norteamericana llamada “CSI, en la escena del

crimen” (doblada al español). Se proyectó el primer y segundo capítulo, en la primera y

segunda prueba respectivamente.

Se decidió ocupar esta serie principalmente por el tiempo de duración (40

minutos) y por el formato que presenta: Se exhibe un caso policial a los protagonistas

forenses, los principales sospechosos relatan sus versiones y finalmente se detiene al

culpable.

Lo atractivo del formato es que los relatos de las versiones de los sospechosos

son recreaciones gráficas de los hechos, se acompaña de un relato (leve), una música

coherente y siempre (o casi siempre) hay alguna pista gráfica en la escena que ayuda

a los forenses a encontrar al culpable. Esta pista solo se puede “ver”, no escuchar.

Con esto, se tiene una base sólida y clara para la elaboración del guión descriptivo,

que en esta etapa tuvo que desarrollar el alumno.

Una vez finalizada la reproducción de las cintas, se abrió un foro de discusión en

donde todos los participantes dieron sus opiniones, críticas y comentarios. A la vez se

aplicó una encuesta personal a los asistentes, de acuerdo a la recomendación de la

investigación para el software realizado por C5 “Cuenta Cuentos” [10]

Page 79: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

79

Los asistentes presentaban realidades distintas, todos tenían experiencias

particulares, algunos ya habían asistido a otras pruebas de usuario realizadas por C5,

por lo que estaban familiarizados y conocían el procedimiento. Otros, iban por primera

vez a una prueba de usuarios de software orientado a ellos, por lo que el nivel de

expectación fue, en general, alto.

Para graficar el escenario de las pruebas de usuario, se adjuntan a

continuación fotografías tomadas en estas pruebas.

Ilustración 25: Pruebas de usuario del sistema IntegraFilm en s ala de Micro Cine de la

Cineteca Nacional del Centro Cultural Palacio La Moneda.

Ilustración 26: Pruebas de usuario del sistema IntegraFilm en el Auditorio del

Departamento de Ciencias de la Computación de la Universidad de Chi le

Page 80: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

80

Ilustración 27: Pruebas de usuario del sistema IntegraFilm en e l Auditorio del

Departamento de Ciencias de la Computación de la Universidad de Chi le

Entre los resultados cuantitativos más relevantes de la encuesta aplicada se

encuentra la baja asistencia al cine y el desconocimiento de la técnica de audio

descripción AUDESC. Estos resultados se muestran en los gráficos 1 y 2

respectivamente.

Gráfico 1: Asistencia al cine

67%

33%

Nunca/Casi NuncaEsporádicamente

Page 81: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

81

Gráfico 2: Experiencia anterior con el sistema AUDESC

22%

78%

Conoce AUDESCNo conoce AUDESC

En general, todos los usuarios finales se mostraron muy satisfechos con la

experiencia vivida, destacando que consideran de gran ayuda recibir una descripción

detallada de escenas gráficas durante la reproducción de una película.

Se obtuvieron resultados importantes para alinear el trabajo realizado con los

objetivos de este proyecto, tanto positivos como negativos. Dentro de los positivos se

tiene:

• Los usuarios mostraron una acogida al sistema mejor de lo esperada,

considerando que no todos tenían experiencia utilizando una Pocket PC.

• Los usuarios concluyeron que era una herramienta totalmente integradora, que

utilizándola podrían efectivamente ir al cine y entender mejor la cinta, sin la

ayuda de un tercer participante.

• La reproducción del guión en tiempo real fue un punto verdaderamente

agradecido. Algunos habían asistido a funciones de cine utilizando el sistema

AUDESC (con interrupción).

De la misma manera, también se dio una instancia a los espectadores para que

pudieran criticar el sistema integraFilm. Destacó lo siguiente:

• Los usuarios, en la primera prueba, esperaban recibir más información que la

proporcionada por el sistema, es decir, se necesita escribir un guión más

extenso, explicando con mayor detalle las escenas y, por sobre todo, explicar

los cambios de escenarios.

Page 82: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

82

• Los usuarios reportaron que tener tres niveles de detalle de descripción era

innecesario, la mayoría consideró más conveniente tener solo dos opciones de

detalle: “alto” y “bajo”; donde el primer nivel exige el máximo detalle de la

descripción y el segundo un detalle acotado a los sucesos más relevantes.

Esta última consideración fue estudiada a fondo y se realizó una nueva

entrevista personalizada con otros usuarios para tomar una decisión acertada con

respecto a la graduación del guión. Se decidió finalmente ofrecer únicamente dos

niveles: “alto” y “bajo”, eliminando la opción “medio”.

En la segunda prueba surgió una nueva idea entre los usuarios que puede ser

perfectamente incorporada al sistema, y que sería altamente valorada por ellos. Esto

es, incorporar un nuevo botón en el dispositivo móvil que al presionarlo, en cualquier

instante de la reproducción, indicara al usuario la locación donde se encuentra en ese

momento el desarrollo de la película. De la misma manera, se podría incorporar otro

botón que, al presionarlo, indique qué personajes están en la escena.

Page 83: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

83

8 INSTALACIÓN Y EJECUCIÓN DE INTEGRAFILM

En la práctica, para disfrutar de los beneficios de IntegraFilm, se deben cumplir

algunos requisitos técnicos, instalar y ejecutar las aplicaciones IntegraFilm Server e

IntegraFilm Client.

8.1 Requisitos técnicos

Para poder ejecutar el sistema en una sala de cine se deben cumplir los siguientes

requisitos técnicos:

• Un computador junto al proyector de la sala de cine

• Tantos Pocket PC (con antena WiFi) como espectadores no videntes hayan

• Una red inalámbrica en la sala de cine, que ilumine toda la sala de cine

• Una conexión física a la red, con acceso a Internet, para el computador

servidor

8.2 Instalación de IntegraFilm

Si se cumplen todos los requisitos anteriores, entonces se puede proceder a

instalar y posteriormente ejecutar IntegraFilm. Para esto, se debe instalar la aplicación

IntegraFilm Server en el computador servidor, en la sala de reproducción, y la

aplicación IntegraFilm Client en todos los dispositivos Pocket PC.

IntegraFilm Web estará ejecutándose continuamente en un servidor de

hosting, se puede visitar en http://integrafilm.think1011.com , por lo que no es

necesario instalar esta parte del sistema.

Instaladas las aplicaciones en todos los equipos, se debe proceder a conectar

los equipos a la red. Estando ya conectados, se puede ejecutar cada aplicación, de

preferencia comenzar ejecutando IntegraFilm Server en el computador servidor y

posteriormente IntegraFilm Client en cada dispositivo. De esta manera se podrá

supervisar cada evento en el sistema (el envío de dirección IP del servidor por

MultiCast, la conexión TCP de cada cliente con el servidor, etc).

Page 84: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

84

8.3 Ejecución de IntegraFilm

En IntegraFilm Server se puede seleccionar el guión correspondiente a la

película que se proyectará en cualquier momento. Al seleccionarlo, se descargará

desde IntegraFilm Web y se enviará automáticamente a todos los clientes conectados.

Cuando todos envían el mensaje de correcta recepción, es posible dar comienzo a los

cronómetros. Esto se debe hacer simultáneamente con la acción PLAY del reproductor

de la cinta.

Si ocurre algún evento inesperado, es posible pausar, ajustar y reanudar el

cronómetro de todos los clientes. Para pausar el cronómetro basta con presionar el

botón “pausar”. Para reanudarlo, presionar el botón “continuar”. Y para ajustar el

cronómetro, se debe ingresar un nuevo tiempo en el campo “ajustar” (que está

inicialmente en 00:00:00) y luego presionar el botón “ajustar”.

Page 85: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

85

9 DISCUSIONES GENERALES

Durante el desarrollo del proyecto se tuvo que tomar variadas decisiones. Las

principales de éstas serán expuestas a continuación:

9.1 Diseño de Interfaz IntegraFilm Client

Para llegar a la versión final de la interfaz de IntegraFilm Client, fue necesario

realizar varias propuestas, pues era la interfaz que debería manejar el espectador no

vidente. Para esto se realizaron dos prototipos y fueron evaluados por profesionales

de C5 (Mauricio Sáenz y Héctor Flores) y por los mismos usuarios finales en las

pruebas de usuario.

Las dos propuestas de interfaz fueron las siguientes:

Ilustración 28: IntegraFilm Client: Prototipo de interfaz 1

Page 86: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

86

Ilustración 29: IntegraFIlm Client. Prototipo de interfaz 2

Como se puede apreciar, ambas propuestas presentan los mismos colores:

fondo blanco y botones negros. Esto fue elegido concientemente para formar el mayor

contraste posible, de manera de permitir a aquellos usuarios que tengan algún grado

de visión alcanzar a distinguir con mayor facilidad los botones de acción para cambiar

el nivel de descripción recibida.

La primera propuesta fue diseñada por el alumno, pensando en que mientras

más grande sean los botones más fácil será llegar a ellos. Y se indicaría a los usuarios

que activen los botones a media altura de la pantalla del dispositivo. De esta manera,

no llegaría fácilmente al botón “salir”, ubicado en la esquina superior derecha.

La segunda propuesta fue sugerida por Mauricio Sáenz, justificando que es

más fácil llegar a las esquinas de la pantalla que a una columna que se encuentre, por

ejemplo, en el centro. El botón “salir” fue ubicado al centro justamente aprovechando

lo anterior: será dificultoso acceder a él inconcientemente.

Page 87: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

87

Para decidir la alternativa más usable para los usuarios finales, se hizo una

pequeña prueba con tres usuarios no videntes, y los tres optaron por la segunda. Es

por esto que se optó finalmente por esta última.

Cabe destacar que esta imagen no corresponde a la versión final presentada

en la ilustración 15, pues aún se consideraban aquí tres niveles de graduación del

detalle del guión.

También se decidió cambiar el color gris de fondo de los cuadros de texto

(tiempo y consola) a blanco, para no perturbar la posible escasa visualización de los

botones de la interfaz a un usuario espectador.

9.2 Diseño lógico del sistema

Durante el desarrollo del diseño lógico surgieron dos importantes tomas de

decisión:

1. ¿Por qué enviar el guión completo a cada dispositivo en lugar de enviar la url y

que cada dispositivo lo descargue directamente de IntegraFilm Web?

2. Ya que se enviará el guión desde IntegraFilm Server, ¿Por qué enviarlo de una

vez en lugar de enviar una sola frase en el momento en que se debe

reproducir? De esta manera evitaríamos tener un cronómetro individual en

cada dispositivo, junto con los dos threads de envío de tiempo y envío de

acciones.

La respuesta a estas dos interrogantes apunta a un mismo objetivo: la

estabilidad en el sistema.

Ya se tiene un factor crítico, que es la dependencia con el servidor de hosting

donde está alojada IntegraFilm Web, pues, si este servidor presenta problemas de

enlace, no se podrá ejecutar ninguna aplicación, ya que el primer paso es seleccionar

el guión de la película que se desea proyectar y descargarlo.

Si ahora se piensa en que cada dispositivo se conecte con IntegraFilm Web

podría crecer la posibilidad de que la conexión colapse, pues no se sabe a priori

Page 88: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

88

cuantos dispositivos habrá en la sala, que estarán solicitando información

conjuntamente con el servidor. Podría suceder que un dispositivo se quede sin guión.

Otro punto a favor de la decisión tomada es que la velocidad que hay en la red

dentro de la sala es mucho mayor a la velocidad que se podría tener con IntegraFilm

Web, que depende exclusivamente de la conexión que haya en la sala de cine.

Tomando ya esta primera decisión, se tuvo que definir el procedimiento para

que cada dispositivo obtuviera el guión. Una primera opción fue efectivamente enviar

cada frase de guión en la medida que se requiriese, evitando así la implementación de

un cronómetro en cada dispositivo.

El problema que se presentó fue el mismo: no aporta en completitud a la

estabilidad del sistema. Si sucede un imprevisto, como por ejemplo, una simple baja

de señal de la antena WiFi, el dispositivo móvil no podría recibir las frases del guión

descriptivo durante ese periodo, perdiendo así información.

Es por todo lo anterior que se decidió descargar el guión desde IntegraFilm

Web únicamente por IntegraFilm Server y enviarlo de manera íntegra a los dispositivos

antes de comenzar la reproducción de la cinta.

9.3 Protocolo de comunicación Cliente-Servidor

Un tema de investigación fue la manera de comunicar las aplicaciones

IntegraFilm Server e IntegraFilm Client. Para esto se tuvo que evaluar los dos

protocolos más conocidos (por lo tanto mayormente documentados): TCP y UDP.

Ambos son protocolos de comunicación, que envían información de un puerto a

otro dentro de una red.

UDP (User Datagram Protocol) está basado en el intercambio de datagramas.

Permite el envío de éstos a través de la red sin que se haya establecido previamente

una conexión, ya que el propio datagrama incorpora suficiente información de

direccionamiento en su cabecera. Tampoco tiene confirmación, ni control de flujo, por

lo que los paquetes pueden adelantarse unos a otros; y tampoco se sabe si ha llegado

correctamente, ya que no hay confirmación de entrega o de recepción.

Page 89: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

89

Este protocolo es utilizado en ocasiones en las que se debe transmitir mucha

información, no crítica. Al no realizar verificaciones de envío, la transmisión es rápida,

pero no asegura la correcta recepción.

TCP (Transmission Control Protocol) es uno de los protocolos de comunicación

fundamentales en Internet, orientado a conexión y caracterizado por su fiabilidad.

Añade las funciones necesarias para prestar un servicio que permita que la

comunicación entre dos sistemas se efectúe: libre de errores, sin pérdidas y con

seguridad.

Considerando lo anterior, si se analiza nuevamente qué información se está

enviando a los dispositivos, se resolverá que toda ella es crítica, pues, se debe

asegurar el envió de un correcto guión (sin la inclusión de basura o desordenes en sus

caracteres), se debe asegurar que todos los dispositivos comiencen efectivamente

cuando deben hacerlo, se debe ajustar el cronómetro cuando sea necesario, al igual

que pausarlo y reanudarlo. De igual manera, se debe recibir las respectivas

notificaciones por parte de los usuarios.

Es por esto que se decidió utilizar principalmente el protocolo TCP para todas las

comunicaciones entre los equipos, salvo el particular caso del MultiCast inicial, donde

si el cliente no recibe correctamente la dirección IP del servidor, puede esperar a

recibirla nuevamente.

Page 90: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

90

10 CONCLUSIONES

Se desarrolló el sistema de integración de personas con discapacidad visual al

cine, llamado IntegraFilm. Este sistema se compone de tres aplicaciones: IntegraFilm

Client, IntegraFilm Server e IntegraFilm Web.

IntegraFilm Client es una aplicación para dispositivos móviles que lee en

tiempo real un guión de audio descripción durante la proyección de una película,

permitiendo al usuario no vidente configurar la cantidad de información que desee

recibir.

IntegraFilm Server es una aplicación que se ejecuta desde la cabina de

reproducción de la sala de cine y controla todos los programas que corren en los

dispositivos móviles. Les envía el guión y les da la instrucción para comenzar a

reproducirlo.

IntegraFilm Web es una aplicación que reúne todos los guiones descriptivos,

de donde los saca la aplicación Server para enviárselos a los dispositivos móviles.

También permite la publicación de nuevos guiones para cualquier usuario.

Para cumplir los objetivos propuestos en este trabajo fue indispensable contar

con el feedback constante de usuarios espectadores no videntes. Algunos de los

testimonios de estos usuarios, recogidos en las pruebas de usuario, son:

“Ojala se implemente este sistema para que muchos más ciegos se integren al cine”

“Me gustó el hecho de ser una descripción continua de todo lo que no se ve”

“¡Está súper bueno! ¡Quedé encantado!”

“Me gustó el concepto, que sea particular e individual”

“Lo encuentro súper bueno, ya que no dependo de otra persona para que me relate”

“Me gustó la claridad de la voz. Narraba en el minuto exacto en que ocurrían las

escenas, no como en AUDESC”

Si se consideran las opiniones de los mismos usuarios, resulta alentador ver

que se cumplen satisfactoriamente los objetivos de este trabajo de título: permitir una

mejor comprensión personal de la cinta, contribuyendo a la integración de personas

con discapacidad visual a la sociedad.

Page 91: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

91

Estos resultados fueron tan convincentes y gratificantes para el autor que se

desea ir más allá con este proyecto, presentándolo a entidades externas en busca de

financiamiento para la adquisición de dispositivos Pocket PC y la licencia del

sintetizador (Acapela o Loquendo, dependiendo de los recursos disponibles).

10.1 Posibles mejoras futuras

Sin duda alguna la aplicación puede mejorarse, ampliar sus objetivos y permitir

una integración más masiva a distintas formas de expresión cultural, pues el hecho de

leer un texto en lugar de tener a un relator profesional y utilizar un computador y una

red inalámbrica (elementos cada vez más cotidianos) amortiza los costos de estas

iniciativas.

Con la experiencia adquirida durante el desarrollo e interacción con los

usuarios, surgieron iniciativas que podrían ser incorporadas en nuevas versiones del

sistema y que escapan al alcance inicial del proyecto, entre las que destacan:

10.1.1 Optimización de uso de red

El modelo seguido para comunicar la dirección IP del servidor a los clientes no

presenta un consumo óptimo de recursos de red, pues se encuentra enviando

paquetes de datos constantemente por la red con su dirección IP para que cuando un

cliente se suscriba al MultiCast, le llegue.

Una mejora considerable, discutida con Fernando Aguayo (profesional de C5)

sería cambiar este esquema, y que el servidor sea el que se suscriba al MultiCast,

luego el cliente enviaría un mensaje entregando su propia IP. Teniendo esta dirección,

el servidor puede ser el que establezca la comunicación con los clientes. De esta

manera, se enviarían solo los datos necesarios por la red.

Esta solución será necesaria cuando se desee expandir los alcances de

IntegraFilm y sea necesario enviar más información por la red.

Page 92: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

92

10.1.2 Creación de guiones

Es posible mejorar la interfaz para la creación de guiones, descartando el

formalismo del código en las etiquetas.

Una alternativa a esto puede ser entregar herramientas para crear un guión

más atractivo gráfico y que ocultamente se construya el mismo guión, por ejemplo,

agregando el guión frase a frase, seleccionando el nivel y el tiempo desde una casilla

de selección.

Una mejora que implica mayor costo de desarrollo es realizar una cuarta

aplicación, que se ejecute en un dispositivo móvil y que permita realizar el guión en

línea, es decir, ejecutar esta aplicación junto con ver la película (por un guionista) e ir

insertando frases descriptivas en tiempo real, saltando la necesidad de indicar el

tiempo de lectura, pues sería el “tiempo actual”.

10.1.3 Comunidad de guionistas

Imitando modelos de las redes de contacto más famosas en la actualidad, se

podría proyectar el concepto de comunidad de guionistas, permitiendo crear usuarios,

relacionar guiones a ellos, entregar una página personalizada a cada usuario, y en

donde pueda mostrar sus aportes.

Es posible también abrir la comunidad y seguir el concepto de un wiki, eximiendo

así al usuario administrador. De esta manera la misma comunidad podría mantener

una Base de Datos de guiones limpia y amplia.

10.1.4 Multi Salas

El propósito de IntegraFilm es brindar el servicio de apoyo audio descriptivo al

espectador no vidente durante la proyección de una película en particular. A partir de

esto surge la iniciativa de integrar el sistema a cada sala de un cine donde se

proyecten cintas distintas independientes unas de otras.

Con la versión actual del sistema esto es factible solo si cada sala tiene su red

propia y con esto el alcance de la señal wifi de una sala esta delimitado estrictamente

a esa sala.

Page 93: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

93

Se podría potenciar la aplicación para soportar multi servidores, incorporando

en la aplicación cliente una interfaz de selección de servidor, en donde se muestre

todos los servidores disponibles correspondientes a cada sala, permitiendo así decidir

a cual se desea conectar.

El problema de esta solución es que complicaría la interfaz de usuario y podría

resultar dificultoso para el espectador no vidente seleccionar el servidor deseado. Se

necesitaría de un ente externo que ayude a la configuración, pudiéndose prestar para

confusiones y errores (si se selecciona erróneamente el servidor se escucharía una

descripción de escenas de otra cinta).

Es por esto que se decidió, en esta primera etapa, considerar un único servidor

emitiendo instrucciones a los clientes.

10.1.5 Indicador de locaciones y personajes

Junto con el progreso del desarrollo del sistema, fueron creciendo las

expectativas de los usuarios no videntes, pues descubrían potencialidades nunca

antes experimentadas. Producto de esto surgió, por ejemplo, la nueva idea de

incorporar un botón en la interfaz cliente, que al presionarlo entregue en forma audible

la locación actual de la escena que está proyectando, y otro que entregue en forma

audible los personajes que hay en un momento específico.

Si bien es cierto, con el modelo actual, se puede incluir una frase al guión

descriptivo indicando cada cambio de locación (junto con los personajes involucrados),

hay oportunidades en las que el usuario pierde la capacidad de concentración y

necesita recordar estas variables relevantes para el seguimiento de la trama, como lo

son la localidad de la escena y los personajes involucrados en cada escena. Esto

resulta evidente para un usuario con visión.

Para lograrlo, sería necesario incorporar un nuevo elemento a la estructura del

guión, y modificar la aplicación cliente para considerar este nuevo elemento en el

procesamiento del guión recibido.

Page 94: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

94

10.1.6 Análisis legal

Se recomienda un futuro análisis legislativo de los derechos de autor

vinculados con las películas utilizadas en las que se ejecuta IntegraFilm, de manera de

asegurar un correcto marco legal en la aplicación. Una defensa a favor de IntegraFilm

es que este sistema no modifica el material cinematográfico del creador, pues se

ejecuta independientemente de éste, no como es el caso de los subtítulos, en donde

se sabe [14] que si están penalizados.

En el caso de que la ejecución de IntegraFilm efectivamente esté penada por la ley,

existe una solución a corto plazo posible, y que se podría aplicar para el cine chileno:

solicitar una previa autorización al creador del material cinematográfico.

Page 95: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

95

11 REFERENCIAS

[1] C Sharp Friends, [en línea] Window app – Adding value to Combo box item.

Administrador: plextoR

<http://www.csharpfriends.com/Forums/ShowPost.aspx?PostID=22165>

[consulta: 3 septiembre 2007]

[2] Empresa Aristía, [en línea] Definición de audio descripción

<http://www.audiodescripcion.com/definicion.html> [consulta: 13 de mayo 2007]

[3] Eriksson, Y. and Gärdenfors, D. (2004). Computer games for children with

visual impairments. Proceedings of The 5th International Conference on

Disability, virtual Reality and Associated Technologies, 20-23 September, 2004,

New College, Oxford, UK. Pp. 79-86

[4] Es lo Más, [en línea] Creación de hilos con parámetros en C#. Administrador:

Francisco Echarte

<http://www.eslomas.com/index.php/archives/2006/01/16/creacion-hilos-con-

parametros-csharp> [consulta: 28 octubre 2007]

[5] ForoMsn, [en línea] C# TCP/IP Aplicación Cliente – Servidor. Administrador:

Mig16 <http://www.foromsn.com/Version_Imprimible.php?Id=139962>

[consulta: 10 septiembre 2007]

[6] Fundación Telefónica Chile, [en línea]. Discapacitados visuales disfrutaron

una película en Fundación Telefónica

<http://telefonicachile.cl/fundacion/sala_de_prensa/02noviembre2005.htm>

[consulta: 21 de septiembre 2007]

[7] Kurniawan, S. H., Sporka, A., Nemec, V. and Slavik, P. (2004). Design and

user evaluation of a spatial audio system for blind users. In Proceedings of The

5th International Conference on Disability, virtual Reality and Associated

Technologies, 20-22 September, 2004, New College; Oxford, UK. Pp. 175-182

[8] Mastropieri, M., Scruggs, T. (1992). Science for students with disabilities.

Review of Educational Research, Vol. 62, No. 4 (Winter, 1992), pp. 377-411

[9] Sánchez, J., Flores, H. (2004). Memory enhancement through audio.

Proceeding of The Sixth Internacional ACM SIGACCESS Conference on

Computers and Accessibility, Assets 2004, Athlanta, Giorgia, USA, October 18-

20, pp. 24-31

[10] Sánchez, J., Galaz, I. (2005). Cuentos Interactivos Móviles a través de Audio

para Aprendices con Discapacidad Visual. En Sánchez, J. (editor). Nuevas

Page 96: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

96

Ideas en Informática Educativa, pp. 101-106. Santiago de Chile: Lom Ediciones

S.A.

[11] Sánchez, j., Sáenz, M. (2006). 3D sound interactive environments for blind

children problem solving skills. Behavior & Information Technology, Vol. 25, No.

4, July – August 2006, pp. 367-378

[12] Sánchez, J., Sáenz, M. (2006). Assisting the Mobilization through Subway

Networks by Users with Visual Disabilities. Proceedings of the International

Conference Series on Disability, Virtual Reality and Associated Technologies,

ICDVRAT 2006. Esbjerg , Denmark , 18-20 September 2006, pp. 183-190

[13] Sánchez, J., Zuñiga, M. (2006). Evaluating the Interaction of Blind Learners

with Audio-Based Virtual Environments. Annual Review of CyberTherapy and

Telemedicine. Virtual Healing: Designing Reality. Volume 4, pp. 167-173

[14] Derecho y Nuevas Tecnologías, [en línea] Subtítulos de películas pueden

costar caros.

<http://www.derechonntt.com/?p=60> [consulta: 2 enero 2008]

Page 97: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

97

12 ANEXOS

12.1 Encuesta realizada en pruebas de usuario

Encuesta de Satisfacción de usuarios de Software In tegraFilm

Le solicitamos que conteste el presente cuestionario considerando que la mayoría de las preguntas son de opinión (por lo que no existen respuestas correctas o incorrectas) y de carácter anónimo, donde sus respuestas serán consideradas sólo en forma agregada e impersonal. I. Relación con Text-to-Speech

1. Conocía el sistema text-to-speech? Sí No (Si responde no, pasar a pregunta II. 1)

2.Cuando usa text-to-speech?

3. Cuáles conoce?

II. Relación con Pocket PC

1. Había usado antes un pocket PC? Sí No

DIA Fecha

MES

SEXO Encuestado EDAD

Ceguera Congénita

Visión Años de ceguera

Page 98: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

98

III. Relación con el Cine

1. Usted asiste al cine: Nunca o casi nuncaEsporádicamenteCasi siempre o siempre

2. Ha visto alguna película con audesc (audio descripcion)

Sí No (Si responde no, pasar a pregunta III. 5)

3. Qué es lo mejor de audesc?

4. Que es lo que menos le gusta de audesc?

5. Considera necesario escuchar una pista descriptiva de algunas escenas gráficas ?

IV. Relación Con Integrafilm

1. ¿Qué le gusto del software?

2. ¿Qué no le gusto del software?

3. ¿Qué le agregaría al software?

Para finalizar, ¿tiene usted algún comentario o sugerencia que hacer referente al tema que hemos estado hablando? ________________________________________________________ ________________________________________________________ Muchas gracias por su tiempo y su colaboración

Page 99: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

99

12.2 Ejemplo de Guión descriptivo

A continuación se muestra el guión elaborado para la segunda prueba de usuarios,

correspondiente al segundo capítulo (“El buen camino”) de la primera temporada de la

serie CSI :

<movie> <moviename>Ce, Ese, I. Capìtulo 2: El buen camino< /moviename> <p nivel=2 start=00:01:41> Vista panorámica de Las Vegas </p> <p nivel=1 start=00:02:05> Casino de las Vegas </p> <p nivel=2 start=00:02:50> La pareja juega en una máquina tragamonedas </p> <p nivel=2 start=00:03:43> el guardia abre la habitación con una tarjeta </p> <p nivel=1 start=00:04:12> afuera del hotel </p> <p nivel=1 start=00:05:33> Presentación de la serie </p> <p nivel=1 start=00:06:03> Grisom llega al laboratorio </p> <p nivel=2 start=00:07:21> Los criminalistas miran las noticias en una sala de l laboratorio </p> <p nivel=2 start=00:08:12> Grisom ingresa a la sala </p> <p nivel=2 start=00:09:53> Caterin se retira de la sala </p> <p nivel=2 start=00:10:04> Nic se retira de la sala </p> <p nivel=1 start=00:10:35> Caterin llega a la escena del crimen </p>

Page 100: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

100

<p nivel=2 start=00:11:07> Caterin continúa en el lugar del crimen </p> <p nivel=2 start=00:11:27> Encuentra un bíper </p> <p nivel=1 start=00:11:47> Grisom y nic en la morgue </p> <p nivel=1 start=00:12:15> en la habitación del hotel </p> <p nivel=1 start=00:13:50> en la oficina de investigación </p> <p nivel=2 start=00:14:49> en la sala de al lado </p> <p nivel=1 start=00:15:20> en el techo del hotel </p> <p nivel=2 start=00:15:50> simulan la caída con 3 muñecos </p> <p nivel=1 start=00:16:07> en la calle afuera del hotel </p> <p nivel=2 start=00:17:03> en un estacionamiento subterráneo </p> <p nivel=2 start=00:17:37> en el laboratorio </p> <p nivel=1 start=00:19:03> sala de cámaras del casino </p> <p nivel=2 start=00:20:07> en el laboratorio </p> <p nivel=2 start=00:21:25> en el casino </p> <p nivel=2 start=00:22:30> en el salón diamante azul </p>

Page 101: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

101

<p nivel=2 start=00:22:44> van a un café </p> <p nivel=1 start=00:24:12> cada criminalista piensa en Joli </p> <p nivel=2 start=00:24:56> en el laboratorio </p> <p nivel=1 start=00:26:28> interrogan al sospechoso que encuentran con las cám aras </p> <p nivel=1 start=00:29:47> en el motel tres ases </p> <p nivel=2 start=00:30:50> guorric visita al extorsionador </p> <p nivel=2 start=00:31:31> en la morgue </p> <p nivel=2 start=00:32:38> toma la muestra de a, de, ene </p> <p nivel=1 start=00:33:01> en el laboratorio analizan los zapatos de la víctim a </p> <p nivel=2 start=00:33:50> analizan más evidencias </p> <p nivel=1 start=00:34:23> en la morgue </p> <p nivel=2 start=00:34:56> en la sala de descanso </p> <p nivel=2 start=00:36:45> Nic analiza la fibra de alfombra </p> <p nivel=1 start=00:37:00> en la habitación del hotel </p> <p nivel=1 start=00:37:16> grisom busca evidencia por toda la habitación </p>

Page 102: UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS … · al ingresar a la sala de cine, el que le describirá, por medio de un audífono, las escenas gráficas de una película (situaciones,

102

<p nivel=1 start=00:38:38> prueba el cerrojo magnético de la puerta </p> <p nivel=2 start=00:39:03> interrogan a la novia </p> <p nivel=2 start=00:41:00> en el pasillo </p> <p nivel=1 start=00:43:02> llevan a prisión al asesino de Joli </p> </movie>