Download Desarrollo

Document related concepts
no text concepts found
Transcript
DESARROLLO APLICAION FORMATO DAISY
Hemos desarrollado una aplicación de Java la cual realiza las funciones
necesarias para que a partir de un fichero xml nos cree una estructura de
ficheros en Formato Daisy. Nuestro modulo de Java se creará como un applet
para que pueda ser llamada desde un documento html que hemos diseñado
para que el usuario pueda proporcionar los datos necesarios al applet de Java.
PAGINA WEB
Esta página esta desarrollada de forma sencilla, tenemos varios campos
de texto para introducir los datos necesarios y un botón para ejecutar la
generación del Formato Daisy a través del applet de Java.
Primeramente encontramos unas leves instrucciones de que deberemos
hacer para conseguir realizar lo que deseamos.
A continuación, un campos de texto, en el cual deberemos introducir el
curso (fichero xml) del cual deseamos crear la estructura de ficheros para el
Formato Daisy.
Para continuar, deberemos indicar si deseamos crear una estructura
completamente nueva, por lo que deberemos introducir en el campo de texto la
ruta donde deseamos que se cree la nueva estructura de ficheros, o por el
contrario añadir el nuevo curso a una estructura ya existente, en este caso,
habrá que indicar en el cuadro de texto el fichero discinfo.html en el cual añadir
el nuevo curso.
Desarrollo Formato Daisy
1
Y por ultimo deberemos pulsar el botón de generar, el cual ejecutara la
applet de Java que crear la estructura de ficheros.
APPLET DE JAVA
El applet de Java, appletDaisy, que vamos a ejecutar para conseguir crear
la estructura del Formato Daisy, va a estar compuesto por varias clases:
-
crearDaisy
-
leerSAX.
appletDaisy
Una vez hayamos completado todos los campos necesarios en la página
web, al pulsar el botón de generar, se ejecutara la applet de Java.
Si por alguna razón, alguno de los parámetros introducidos no es valido,
un mensaje de error nos aparecerá indicando cual es el parámetro fallido.
En el caso de que todos los parámetros sean validos, el applet lo que
realiza es la apertura de una ventana que muestra un texto, “Generando formato
Daisy. La tarea de sintetizador de voz tardará varios minutos.” mientras el applet esta
trabajando, una vez que finaliza, se cierra dicha ventana y si se produce algún
error se muestra información sobre que ha producido el error.
Si se realiza sin problemas aparecerá una ventana que indica que se ha
realizado correctamente todo y da la posibilidad de visualizar un fichero log con
todas las acciones realizadas.
leerSAX
Primeramente deberemos tener en cuenta la clase leerSAX que es la
que nos realizará la lectura del fichero xml y desechara la información
innecesaria del fichero xml y nos creará un nuevo fichero de texto con
únicamente la información necesaria, sin etiquetas ni ningún elemento que no
sea de interés a la hora de la lectura del curso.
Esta clase esta formada por los siguientes métodos:
leerXML (String xml)
Realiza una lectura del fichero xml a través del API SAX que contiene
una serie de métodos creados que según los elementos que vaya leyendo del
xml podremos realizar las funciones que nosotros deseemos.
Indicaremos una salida en lugar de ser por pantalla, la haremos introduciendo
toda la información en un fichero de texto.
Nos devolverá una cadena de texto indicándonos si se ha producido un error o
0 si la lectura se ha realizado correctamente.
Desarrollo Formato Daisy
2
startDocument ()
Este método lo que realiza es que una vez este leyendo el fichero xml en
el momento en que encuentre el inicio del fichero xml (<?xml version='1.0'
encoding='UTF-8'?>), pues podamos nosotros incluir lo que deseemos en el
fichero de texto final que vamos a crear.
endDocument ()
Este método realiza la misma función que el anterior, lo único que solo
se invocara en el momento en el que finaliza el fichero xml.
startElement (String name, AttributeList attrs)
Este método se invoca en el momento que se encuentre una etiqueta de
inicio en el xml, según sea unas u otras para diferenciar las diferentes
secciones del xml, iremos añadiendo las cabeceras que creamos convenientes
para poder crear el fichero de texto final para poder luego dividirlo en diferentes
secciones.
endElement (String name)
Este método ocurrirá cuando se encuentre etiquetas de final de sección
del xml. En nuestro caso no hacemos nada ya que no nos es necesario saber
el final de cada etiqueta.
characters (char buf [], int offset, int len)
En este se selecciona el contenido de cada sección de texto incluida
entre las etiquetas de inicio y fin. El texto seleccionado lo pasaremos como
parámetro a emit que será el que lo escriba en el fichero de texto.
emit (String s)
Es la que hará que el texto seleccionado se escriba en el fichero de
texto, que es la salida que se ha indicado anteriormente..
crearDaisy
Esta clase va a crear una estructura de ficheros la cual estará
compuesta por los ficheros necesarios para generar Formato Daisy de un
curso(xml).
Los métodos que la componen son:
crearDaisy(String cursoXML, String rutaDAISY, String fichDISC, String
crear)
Creamos este método constructor en el que recogeremos los datos que
han sido introducidos desde la pagina web para poder ser utilizados en
nuestros diferentes métodos.
Desarrollo Formato Daisy
3
formatoDaisy ()
Este método es el principal, va a realizar la tarea completa de crear la
estructura de ficheros, creando los directorios, y ficheros necesarios a partir del
fichero de texto que se creo al leer el fichero xml por medio de la clase
leerSAX.
Los parámetros de entrada de formatoDaisy son:
- curso en formato xml (curso)
- ruta de destino del formato Daisy (ruta_daisy)
- ruta de localización del fichero discinfo.html en el caso de que vayamos a
incluir el curso en un discinfo.html ya existente (fich_disc)
- indicaremos si queremos que el curso sea añadido en un discinfo existente
(nuevo=0) o si queremos crear una estructura nueva (nuevo=1)
Los valores que puede devolver formatoDaisy son:
0 -> Realizado todo correcto
1 -> El fichero xml no es valido
2 -> La ruta_daisy no es valida
3 -> El fichero discinfo.html indicado no es valido
Cualquier cadena de texto que indicara que se ha producido algún error
crearDir(String ruta_dir)
Creamos el directorio indicado por ruta_dir.
Nos devolverá o si todo se realiza correctamente o una cadena indicándonos el
error que se ha producido.
insertarCad(FileOutputStream fich, String cadena)
Nos insertara una cadena de texto (cadena) en un fichero que le
indiquemos (fich).
Nos devolverá o si todo se realiza correctamente o una cadena
indicándonos el error que se ha producido.
crearDiscinfo(String ruta, String ruta_ncc, String titulo, String nuevo)
En este módulo lo que vamos a hacer es crear un nuevo fichero
discinfo.html localizado en donde indique ruta (ruta), en el caso de que el valor
de nuevo sea igual a 1, y si por el contrario su valor es 0, añadiremos el curso
al fichero discinfo.html que se encuentre en la ruta indicada por ruta.
El parámetro titulo será el texto que incluiremos como titulo del libro el el
fichero discinfo.html.
Desarrollo Formato Daisy
4
Nos devolverá o si todo se realiza correctamente o una cadena
indicándonos el error que se ha producido.
crearSmil(int id, String nombre_smil, String ruta_ncc)
Crearemos el fichero smil el cual indicara el fichero audio que tenga que
reproducir.
Nos devolverá o si todo se realiza correctamente o una cadena
indicándonos el error que se ha producido.
leerFichTxt(String fich_txt)
Para poder realizar la creación de los ficheros deberemos tener el
fichero de texto principal con lo que hayamos leído de nuestro xml. Ese fichero
habrá que leerlo, esta es la función de este método, leerlo y devolver ese texto
leído.
limpiarCad(String cad_a_lim)
Habrá cadenas en las que habremos introducido alguna marca para
diferenciar que son diferentes secciones, esas marcas no son necesarias a la
hora de transformar ese texto en voz, por lo que habrá que eliminarlas. Esta
función lo que realiza es una limpieza de una cadena pasada como parámetro
(cad_a_lim).
Nos devolverá la cadena limpia.
crearTituloSmil(String ruta, String ruta_audio)
En la creación de nuestra estructura contendremos un fichero titulo.smil
en el cual se encontrara el contenido del fichero de audio en el que se contiene
el titulo del curso.
Es un smil como el resto, lo único que lo llamamos de otra manera para
diferenciarlo del resto.
transformarMP3(String ruta)
Realizaremos la sintetización a voz del texto contenido en los ficheros txt
que se han creado, creando estos ficheros de audio en la ruta indicada.
Esta sintetización se realizara a través de una aplicación desarrollada en
C a través de unas librerías(loqtts.h, ttsversion.h) proporcionada por Loquendo.
insertarLog(FileOutputStream fich_log, String cadena_log)
Para controlar el proceso, se realizara la creación de un fichero
log(fich_log) en el cual iremos indicando las diferentes acciones realizadas.
Cada vez que deseemos introducir algo (cadena_log) en ese fichero
utilizaremos este método.
Desarrollo Formato Daisy
5