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