Home
Speakit - Documentación técnica
Contents
1. getTextDocumentFromFile load Arquitectura del sistema otras etapas El sistema Speakit actualmente permite ingresar un documento de texto grabar todas las palabras que no est n registradas y agregarlas a un diccionario que asocia palabras con su audio y tambi n permite reproducir las palabras contenidas en un documento Speakit ser expandido en la siguiente etapa para agregar la funcionalidad de guardar los documentos y poder buscarlos En una etapa posterior estos documentos y los audios se guardar n en forma comprimida o speakit files audioindexfile l Loo speakit files bsharprecordfile Lo AE 1 Lo speakit documentstorage L L speakit files recordfile El m dulo Speakit conservar la funci n de agregar el audio de una palabra Adem s tendr la funci n de agregar un documento Esta funci n realizar su tarea vali ndose del m dulo documents Podr almacenar documentos a pesar de que el m dulo dictionary no contenga todas sus palabras Tambi n tendr la funci n de obtener todas las palabras desconocidas de los documentos almacenados lo cual servir para grabar nuevas palabras Los m dulos speakit audio speakit wordreader y speakit dictionary se mantendr n Se agregar un m dulo speakit documents Los dem s m dulos se modificar n de la siguiente forma dictionary no cambiar mientras que los m dulos de los cuales depende ser n cambiados Por
2. Esto lo almacen bamos como un campo m s dentro de cada registro del archivo de sonidos Luego al reproducir utilizabamos esa informaci n para dormir al hilo principal mientras el de reproducci n corr a Esta soluci n funcion muy bien pero el manejo de concurrencia no era muy elegante Unos dias despu s la c tedra envi una nueva versi n de la librer a de sonido e hicimos otro intento por manejar la concurrencia de forma apropiada modificamos el c digo para que el thread principal invocara al m todo join del objeto que reproduc a esto funcion correctamente el hilo principal esper a que el hilo de sonido muriera tal como quer amos Esta ltima soluci n fu mucho mas simple que la primera por lo que deshicimos todo lo anterior y lo redujimos a una sola linea de c digo Palabras no encontradas Para obtener las palabras no reconocidas de un documento de texto se nos ocurri definir una hip tesis S lo son v lidos dentro del sistema los documentos cuyas palabras tengan su representaci n sonora registrada Entonces cuando agregabamos un documento con palabras nuevas el documento no cumpl a con la hip tesis por lo que el sistema arrojaba una excepci n indicando la palabra que era desconocida el men la captaba y le ped a al usuario que la grabe luego el programa principal reintentaba ingresar el documento el sistema volv a a arrojar una excepci n As sucesivamente hasta que todas las palabras est n grabad
3. Instalaci n del sistema Para instalar y correr el sistema se requiere de la herramienta Apache Ant Esta herramienta puede conseguirse mediante el gestor de paquetes de su distribuci n de Linux o descargandolo de la p gina http ant apache org Si se elige esta ltima opci n se deben seguir las instrucciones de instalaci n de la herramienta proporcionadas en la p gina Para compilar o correr la aplicaci n utilizando la consola del sistema operativo ingresar al directorio speakit y ejecutar alguno de los siguientes comandos ant clean Usando este comando se borran las carpetas utilizadas para compilar y distribuir la aplicaci n ant compile Con este comando se compila la aplicaci n generando los archivos class dentro de la carpeta build del proyecto ant run Al ejecutar este comando se compila y se ejecuta la aplicaci n ant Si se ejecuta el comando ant sin utilizar ning n parametro por default se ejecuta el comando ant run ilizaci n del sistem Al iniciar la aplicaci n podemos ver la siguiente pantalla rootflosiris desktop home osiris workspace speakit ant run Buildfile init compile jar run java java java java java java build xml Speak It Menu Principal 1 Procesar archivo de Texto 2 Reproducir Archivo 0 Salir Aqui tenemos 3 opciones Procesar archivo de Texto En este m dulo el sistema pregunta por un archivo de texto para ser leido Si e
4. prueba Reproduciendo de Reproduciendo speakit Speak It Menu Principal 1 Procesar archivo de Texto 2 Reproducir Archivo 0 Salir Si se intenta reproducir un archivo que contenga algunas palabras que no han sido grabadas con anterioridad el sistema lo indicara encerrando las palabras no grabadas entre corchetes y reproduciendo unicamente las que si se encuentran en el diccionario de audio java Reproduciendo que java Reproduciendo intentaban java Reproduciendo explicar java Reproduciendo lo java Reproduciendo que java Reproduciendo nos java Reproduciendo rodea java Reproduciendo la java Reproduciendo ley java Reproduciendo de java Reproduciendo gravitaci n java Reproduciendo universal java Reproduciendo y java Reproduciendo la java Reproduciendo teor a java Reproduciendo electromagn tica java Reproduciendo cl sica java Reproduciendo se java Reproduciendo volv an java Reproduciendo insuficientes java Reproduciendo para java Reproduciendo explicar java Reproduciendo ciertos java Reproduciendo fen menos java Speak It java Menu Principal java 1 Procesar archivo de Texto java 2 Reproducir Archivo java java 0 Salir Salir Esta opci n permite salir de SpeakIt Ejemplos Junto a la distribuci n del sistema se incluyen unos documentos de ejemplos y los archivos binarios corr
5. Referencias i identificador ie identificador externo AudioFile AudioRecord offset i audio AudioIndexFile AudiolndexRecord word i offset ie Aclaraci n el campo offset del AudioRecord en realidad no existe fisicamente en cada registro pero como es la forma de identificarlo lo quisimos expresar en la definici n conceptual Definici n L gica de Datos AudioFile AudioRecord longAudio integer audio byte array AudiolndexFile AudiolIndexRecord offset long longWord integer word string Soluciones descartadas Grabaci n y reproducci n El proyecto requiere que reproduzcamos el audio grabado para esto la c tedra nos provey de un m dulo que realiza esta tarea Nosotros deb amos hacer que las palabras se reprodujeran una a continuacion de la otra en serie pero el m dulo de audio estaba dise ado como un thread que se iniciaba cuando se le enviaba un sonido y mor a cuando terminaba de reproducir lo que nos indicaba que deb amos hacer alguna operaci n entre threads para que el hilo principal se detuviera hasta finalizar cada palabra Intentamos hacer operaciones entre threads y no lo logramos Llegamos a la conclusi n de que el thread de reproducci n nunca finalizaba Entonces optamos por una soluci n casera pero no menos ingeniosa de modificar la secci n del programa que se encargaba de la grabaci n para que ademas de grabar audio registrara el tiempo durante el cual el usuario hab a estado hablando
6. SPEAKIT 1 Arquitectura del sistema primer etapa ooococcccnoncnncancnncnncannnnnnanannnanos 1 A Speakit auU IO c00ommccccconnnnnnnnnnnnnnnnnnnn nr 2 B speakit wordreader occccccccnnnnnnnnnnnnnnnnnnnnnnnnnnnn nn 3 C speakit dictionary c oooccmcccnnnnnnnnnnnannnncnnn rn 4 D speakit Speaklt coccccccccccconcnnnnnnnnnnnnnnnnnn eirinen atinan reai etumri in 5 E Speakit MenNU ccccccconcnnncnncnncnn cnc 6 2 Arquitectura del sistema otras etapasS conoccccconnnannnnnnnnnnnannnnnnnenannnnnnna 7 3 Organizaci n de ArchiVOS ocomomoncococorocororononenencnrnrnnnnennnnnenrnrnrnrnnenenrnnnnns 8 A Definici n Conceptual de DatoOS cccocococococonacanananannanananananananrararanamannas 9 B Definici n L gica de Datos oococococococononenenencnnononennnonenenenrnrnranenenennnnns 9 4 Soluciones descartadaS ooocmononconconconcnnnnnnnnnnnnnnn nan nn 9 A Grabaci n y reproduccCi N omococococononcncnnnnacarananananannanananananenrnraranamanaas 9 B Palabras no eNCONtradaS omccccconconnnnnnnnnnnnnnnnnnnnnn nn ranma 10 C Separaci n vista modelo ocococococoncncncnnnnacanananananannnnanananannnrananananana 10 5 Diagramas de Secuencia de la aplicaci n sssssunssnnnnnnnnnnnnnnnnnnnnnnna 11 A Agregar Un nuevo documento cmcccnnconnnconnncnnnncnnnnroncnnnncnnancnnancnnanennes 11 B Almacenar una nueva palabra occmccccccncnncnnconcnncnnnrnnnnnnnn ranma 12 C Agregar entrada al repositorio ommcoonoconnoconnncnnnnroncannncnnancanancnna
7. a tareas de limpieza que eliminan caracteres de puntuaci n y otros caracteres no latinos colapsa los espacios y convierte en min sculas Luego de ese tratamiento devuelve un iterador de palabras interface O WordReader y 2222222 O haset o next Implement gt OOOO WordReaderlmpl AER collapseSpaces Call Import Instantiate getWords i WordReaderlmpl replaceStrangeCharacters cleanText O hasNext Oo next speakit dictionary El m dulo de acceso a datos contiene primitivas para poder obtener el audio de palabras grabadas en los archivos binarios del sistema Este m dulo viene implementado en el paquete speakit dictionary Contiene 2 subm dulos Un m dulo para el acceso al archivo de audio y un m dulo para el acceso al archivo que indiza el archivo de audio Audio speakit audio a bytes byte 0 Audio O getBytes O setBytes i Call Import instantiate AudioFile files audiofile AudioFile O addAudio O createRecord O getAudiol interface 6 AudioDictionary addEntry contains getAudio load load O OR S A aE Call Import Instantiate Implement gt interface O DictionaryFileSet AudioDictionarylmpl AudiolndexFile call mpots _ files audioindexfil O getaudioFile AudioDictionaryimpld sind A pa O get udiolndexFile 0 addEntr
8. as Esto funcionaba pero ten a algunos problemas e Conceptual Un documento con palabras nuevas no es un caso excepcional es una funcionalidad del sistema por lo que no es correcto arrojar una excepci n por eso e Performance Cada vez que intentabamos agregar un documento el sistema recorr a todas las palabras del mismo en busca de alguna desconocida Esto requer a que cada intento de agregarlo le amos archivo lo correcto ser a hacer una sola pasada e Mal uso de excepciones Utilizabamos las excepciones para controlar el flujo del programa esto es una mala pr ctica e Funcional No deber a ser un inv lido que algunas palabras de un documento no est n registradas en todo caso a la hora de reproducirlo no se escuchar an y se continuar a con la siguiente La hip tesis era demasiado restrictiva Finalmente nos decidimos por eliminar esta hip tesis y devolver las palabras desconocidas en el mismo m todo que agrega un documento Si bien al usuario inmediatamente se le pide que grabe las palabras el documento ya queda en el sistema Si la interfaz lo permitiera se podr a abortar la grabaci n de palabras dejando as un documento con algunas palabras desconocidas en un estado totalmente consistente Separaci n vista modelo Quer amos independizar lo maximo posible el modelo de la vista y pensamos tener una clase que se maneje el flujo del programa y la logica de negocio y otra de la vista La que se encargaba del flujo de
9. do por la aplicaci n Secuencia resultante El usuario a trav s de la interface de la aplicaci n env a el mensaje playTextDocument al men El menu env a el mensaje getTextDocumentFromFile a speakit pasandole como parametro el path del archivo a reproducir Speakit devuelve una instancia de TextDocument q representa al archivo solicitado El menu envia a speakit el mensaje convertToAudioDocument pasandole como parametro el textDocument y recibiendo como respuesta una representacion del archivo que contiene el audio equivalente a cada palabra Se inicia un loop que se ejecuta mientras wordAudioDocument contenga palabras El menu obtiene la siguiente palabra del wordAudioDocument El men obtiene la cadena de bytes correspondiente al audio mediante el mensaje getBytes El men se envia el mensaje playSound pasandose como parametro la cadena de bytes Finaliza el loop Finaliza la secuencia m O menu Mena speakit Speakitinterface To adobament WordsuioDocumert cl ordanda suso o aulcManager AutoManager usr playTextDocumentO getTextDocumentFromf onpyegToAudioDocument TextDocument i 2 S loop WordalafbDocument hasNextO next WordAudio getBytes byte playSound0WordAudio play byte Generaci n de un archivo a reproducir Escenario Se solicita la reproduccion de un documen
10. ejemplo audiofile dejar de utilizar el m dulo recordfile actual de implementaci n secuencial y utilizar uno nuevo que implemente la organizaci n en bloques Esto es conveniente para permitir la modificaci n de los registros de audio sin necesidad de reestructurar el archivo audioindexfile cambiar para estar implementado con un rbol B El rbol B ser otro m dulo que a su vez utilizar el mismo m dulo recordfile que utiliza audiofile para implementar su persistencia El m dulo documents tendr la funcionalidad de guardar y buscar los documentos de texto guardados Los documentos agregados ser n comprimidos con el m dulo compression y ser n guardados luego con el m dulo documentsstorage La b squeda de textos se implementar en el m dulo ftrs y una vez encontrado el documento ser recuperado mediante su clave del m dulo documentsstorage Organizaci n de Archivos El sistema maneja dos archivos de datos el archivo de audio y el archivo de ndice El archivo de audio AudioFile es un archivo de datos maestro aqu se guardan f sicamente todos los sonidos grabados por el usuario en forma de registros El archivo de ndice AudiolIndexFile registra la asociaci n entre palabras y registros del archivo de audio En ambos ficheros los registros son de longitud variable y quedan almacenados uno a continuaci n del otro es decir no existen estructuras de bloques Definici n Conceptual de Datos
11. ente a la palabra reci n agregada Database env a el mensaje addEntry a audioIndexFile pas ndole como par metros el string representante de la palabra y el offset q le corresponde Fin de la secuencia 6 speakit Speakitinterface C sudo Wordaudo o database AudoDictonary C audorie AudioFie c auaiondexFie AudandexFie addwWordAudio YordAudio getWord String T addEntry String Audio get udiol Audio addAudio Audio long adaErtry Siring ong Agregar entrada al repositorio Escenario El AudioDictionary agrega una nueva entrada al repositorio de palabras almacenadas en formato audio Secuencia resultante El AudioDictionary env a el mensaje addAudio al audioFile pas ndole como par metro el audio a grabar El audioFile obtiene la cadena de bytes que representa al audio mediante el mensaje getBytes El audioFile crea una nueva instancia de AudioRecord pas ndole por par metro la cadena de bytes anteriormente obtenida del objeto audio El audioFile env a el mensaje writeRecord al recordFile pas ndole como par metro la nueva instancia de AudioRecord creada El audioFile env a el mensaje getCurrentWriteOffset al recordFile obteniendo como respuesta la posici n del registro en el archivo de registros El audioFile actualiza el valor del offset Fin de la secuencia 3 database AudoDicticna
12. esa un nombre de archivo que el sistema no puede encontrar se emitir un mensaje de error y la aplicaci n volvera al menu inicial jar run java java java java java java java java java java lalala txt java java java java java java java Speak It Menu Principal 1 Procesar archivo de Texto 2 Reproducir Archivo 0 Salir Leer archivo de Texto Ingrese la ruta a continuaci n Si su archivo es 1 txt s lo presione ENTER No pudo encontrarse el archivo lalala txt Speak It Menu Principal 1 Procesar archivo de Texto 2 Reproducir Archivo 0 Salir Reproducir Archivo Con esta opci n podemos reproducir las palabras grabadas con anterioridad en la aplicaci n Se solicitar nuevamente el nombre del archivo ingresado y el sistema indicar por pantalla las palabras a reproducir consecutivamente y se escuchar su audio a continuaci n rootfosiris desktop home osiris workspace speakit ant run Buildfile init compile jar run java java java java java java java java java java java java java java java java java java java java build xml Speak It Menu Principal 1l1 Procesar archivo de Texto 2 Reproducir Archivo 0 Salir Ingrese la ruta a continuaci n Si su archivo es 1 txt s lo presione ENTER Reproduciendo esta Reproduciendo es Reproduciendo una Reproduciendo
13. espondientes llamados AudioFile dat y AudioFileIndex dat Para poder usar efectivamente estos ejemplos se deben colocar junto a los binarios dentro de la carpeta raiz del proyecto De estos documentos de ejemplos el documento ejemplo1 txt ya ha sido grabado por nosotros por lo que las palabras de este ya pertenecen al diccionario de audio Los dem s documentos quedan a disposici n de ser utilizados en la evaluacion del trabajo pr ctico El detalle del contenido de los archivos de ejemplo es el siguiente ejemplo1 txt En f sica la mec nica cu ntica conocida tambi n como mec nica ondulatoria es una de las ramas principales de la f sica que explica el comportamiento de la materia Su campo de aplicaci n pretende ser universal pero es en el mundo de lo peque o donde sus predicciones divergen radicalmente de la llamada f sica cl sica ejemplo2 txt La mec nica cu ntica es la ltima de las grandes ramas de la f sica Comienza a principios del siglo XX en el momento en que dos de las teor as que intentaban explicar lo que nos rodea la ley de gravitaci n universal y la teor a electromagn tica cl sica se volv an insuficientes para explicar ciertos fen menos ejemplo3 txt La teor a electromagn tica generaba un problema cuando intentaba explicar la emisi n de radiaci n de cualquier objeto en equilibrio llamada radiaci n t rmica que es la que proviene de la vibraci n microsc pica de las part culas que lo compone
14. l archivo est dentro de la carpeta de la aplicaci n no es necesario ingresar la ruta al mismo solo se debe ingresar el nombre Una vez ingresado el nombre del archivo el sistema reconoce las palabras que ya est n agregadas al diccionario y las que no se encuentren en este se requerir que sean grabadas por el usuario Luego de grabar cada palabra el sistema reproducir la palabra preguntar al usuario si la palabra se grab correctamente y dar la posibilidad de regrabarla si asi lo desea el usuario rootfiosiris desktop home osiris workspace speakit ant run Buildfile build xml init compile jar run java java java java java java 1 java java java java Speak It Menu Principal 1 Procesar archivo de Texto 2 Reproducir Archivo 0 Salir Leer archivo de Texto Ingrese la ruta a continuaci n Si su archivo es 1 txt s lo presione ENTER rootfosiris desktop home osiris workspace speakit ant run Buildfile init compile jar run java java java java java java T java java java java java java i build xml Speak It Menu Principal 1 Procesar archivo de Texto 2 Reproducir Archivo 0 Salir Leer archivo de Texto Ingrese la ruta a continuaci n Si su archivo es 1 txt s lo presione ENTER El documento contiene palabras desconocidas que deber grabar a continuaci n Palabra esta ENTER para grabar Si se ingr
15. l programa llamada speakit expon a s lo dos primitivas una para agregar y otra para reproducir un documento Para comunicarse con el usuario pensamos en un patr n observador La clase main creaba a speakit y le pasaba como observador al men este responder a a eventos que le indicaba si debia mostrar el menu de presentacion solicitar que el usuario grabe un audio reproducir un sonido etc Esta soluci n era extremadamente compleja de programar desarrollamos solo una parte y hac a inentendible el c digo pues el modelo deb a encargarse del flujo del programa y ademas de comunicarse con los m dulos de datos Descartamos esta solucion e hicimos que la clase que se encargue del flujo del programa y la que se comunique con el usuario sea la misma y que el modelo s lo maneje a los m dulos de datos Eliminamos el patr n observador y dejamos al modelo como una clase que provee servicios tales como agregar un documento de textos devolviendo las palabras desconocidas y obtener un documento de audio a partir de uno de textos Diagramas de Secuencia de la aplicaci n Agregar un nuevo documento Escenario Se agrega un documento de texto el cual contiene algunas palabras desconocidas Secuencia resultante El usuario env a el mensaje addDocument al men incluyendo path del documento a procesar El men envia el mensaje getTextDocumentFromFile con el path del documento como parametro a speakit recibiendo co
16. mo respuesta un TextDocument wordlterable incluyendo las palabras desconocidas Se inicia un loop q se ejecuta mientras wordlterable contenga palabras El men le pide a wordlIterable la siguiente palabra desconocida El men se envia un auto mensaje getAudio pasandose la palabra desconocida como parametro obteniendo como respuesta wordAudio que corresponde al audio de la palabra consultada El men env a el mensaje addWordAudio a speakit pasandole a wordAudio como parametro Finaliza el loop Finaliza la secuencia T speakit Speakitintertace O woraerable rato getTextDocumentFromFile String TextDocument next E unknowenvofd Almacenar una nueva palabra Escenario Almacenando una nueva palabra en el sistema Secuencia resultante El men env a a speakit el mensaje addWordAudio con la nueva palabra registrada como par metro audio Speakit env a el mensaje getWord a audio recibiendo como respuesta el String q representa a la palabra en texto Speakit env a el mensaje getAudio a audio recibiendo como respuesta una cadena de bytes q representa a la palabra en formato audio Speakit env a el mensaje addEntry a database pas ndole como par metros el string y la cadena de bytes Database env a el mensaje addAudio a audioFile con la cadena de bytes como par metro recibiendo como respuesta el offset a la posici n correspondi
17. n Pues bien usando las ecuaciones de la electrodin mica cl sica la energ a que emit a esta radiaci n t rmica daba infinito s se suman todas las frecuencias que emit a el objeto con il gico resultado para los f sicos ejemplo4 txt La mec nica cu ntica rompe con cualquier paradigma de la f sica hasta ese momento con ella se descubre que el mundo at mico no se comporta como esperar amos Los conceptos de incertidumbre indeterminaci n o cuantizaci n son introducidos por primera vez aqu ejemplo5 txt Adem s la mec nica cu ntica es la teor a cient fica que ha proporcionado las predicciones experimentales m s exactas hasta el momento a pesar de estar sujeta a las probabilidades Los resultados esperados al utilizar alguno de estos documentos teniendo en cuenta que las palabras del primer documento ya estan grabadas serian los siguientes resultados para el ejemplo2 txt El sistema deberia pedir que se ingresen s lo las siguientes palabras ltima grandes comienza a principios del siglo XX momento dos teor as intentaban explicar nos rodea ley gravitaci n y teor a electromagn tica se volv an insuficientes para ciertos fen menos resultados para el ejemplo3 txt El sistema deberia pedir que se ingresen s lo las siguientes palabras teor a electromagn tica generaba un problema cuando intentaba explicar emisi n radiaci n cualquier objeto equilibrio t rmica proviene vibraci n microsc pica part culas compo
18. nen pues bien usando ecuaciones electrodin mica energ a emit a esta daba infinito si se suman todas frecuencias con il gico resultado para los f sicos resultados para el ejemplo4 txt El sistema deberia pedir que se ingresen s lo las siguientes palabras rompe con cualquier paradigma hasta ese momento se descubre at mico no comporta esperar amos los conceptos incertidumbre indeterminaci n o cuantizaci n son introducidos por primera vez aqu resultados para el ejemplo5 txt El sistema deberia pedir que se ingresen s lo las siguientes palabras adem s teor a cient fica ha proporcionado experimentales m s exactas hasta momento a pesar estar sujeta probabilidades Obviamente el sistema pedira ingresar estas palabras siempre y cuando el unico documento leido hasta el momento haya sido el primero ya que si se lee alguno mas entonces las palabras que aparezcan en este no seran requeridas para ser ingresadas en futuros documentos
19. nennos 12 D Persistir UN registro ocoonocoonnconnnconnncancnnnncnnnncnnrncnnnncnncnnrncanrnranancananes 13 E Serializacion de UN CAMPDO cccccnconconncancnnnnncnnnnnnnnnnn rra 14 F Reproducci n de un archivo sssssssssnsnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn nn 15 G Generaci n de un archivo a reproducir ssssssnu2us2222 22 2 16 6 Instrucciones de USO cococccnonnnnnnnnannnnenn cnn 17 A Instalaci n del sistema ssssssssnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn nn 17 B Utilizaci n del sistema co ccocciodadacninncodacacadadnnsinnainnca nadaa sicario ncindadamal 18 7 EjeMplOS occoonocoonnconnnrannncancnnnnrnnrnrnnrn cnn rnnnnnrnrnnrncnnrnrnnrncnnrnnrnnanennanennas 21 DOCUMENTACI N T CNICA Arquitectura del sistema primer etapa El sistema consta de 5 m dulos bien diferenciados a saber Un m dulo de audio Un m dulo lector de palabras Un m dulo de acceso a datos Un m dulo de modelo de negocio Un m dulo de interfaz de usuario Diagrama que ilustra las dependencias entre componentes bh speakit Menu Lt Ll i speakit Speakit EEE LI speakitaudio Em l al PF datos capturaaudio datos reproduccionaudio Lo Lo pd speakit dictionary files audioindexfile L k speakit dictionary files audiofile L speakit audio El m dulo de audio tiene la funcionalidad de grabar o de reproducir audio Est implementado en el paq
20. ry C aude AudoFie 3 audio Audio 3 recordFile RecordFile addAudio Audio long getBytes byte A A S AudioR dib A e als Yie aos aE a audioRecord Aucioecora writeRecord Record getCurrentuwriteOffset log ll lt a setOffset Persistir un registro Escenario Una instancia de RecordFile recibe el mensaje writeRecord con el registro de tipo AudioRecord a escribir como par metro y se encarga de persistirlo en el archivo de registros correspondiente Secuencia resultante El audioFile env a el mensaje writeRecord a recordFile pas ndole como par metro el registro a escribir RecordFile env a el mensaje serialize al record pas ndole como par metro el OutputStream donde se escriben f sicamente los registros El record deriva el mensaje serialize al byteArrayField que representa la porci n de audio que contiene El byteArrayField se env a el mensaje actuallySerialize encargado de la serializaci n propiamente dicha del registro El byteArrayField obtiene de s mismo el tama o insumido en la serializaci n del registro a trav s del mensaje getSerializationSize envi ndolo como valor de retorno al mensaje serialize enviado anteriormente por el record El record env a el valor recibido del byteArray como respuesta al mensaje serialize enviado por el recordFile El recordFile actualiza el valor del currentWriteOffse
21. t audioFile AudioFile S recordFile RecordFile record Record bytearray ByteArrayField Serializacion de un campo writeRecord Record serialize OutputStream long actuallySerialize OutputStream getSerializationSize int A iia e currentivriteOffset F size Escenario Serializaci n de un campo del tipo ByteFieldArray Secuencia resultante El byteArrayField se env a a s mismo el mensaje actuallySerialize pas ndose como par metro el outputStream donde escribir El byteArrayField obtiene el tama o a escribir a trav s del mensaje getValueLength El byteArrayField crea una nueva instancia de la clase IntegerField pas ndole como par metro el tama o a escribir El byteArrayField env a el mensaje serialize al integerField pas ndole como par metro el outputStream donde escribir El byteArrayField se env a el mensaje getBytes obteniendo as la cadena de bytes a escribir El byteArrayField le env a al outpuStream el mensaje write con la cadena de bytes como par metro bytearray ByteArrayField O output OutputStream E actuallySerialize OutputStream Le getYalueLenght int ITA ml O enh Integerrield serialize OutputStream long La getBytes byte wvrite dyte Reproducci n de un archivo Escenario El usuario solicita la reproduccion de un archivo de texto que se encuentra previamente procesa
22. to representado como un TextDocument con todas las palabras registradas en el sistema Secuencia resultante El men envia el mensaje convertToAudioDocument a speakit con el textDocument a recuperar Speakit crea una nueva instancia de la clase WordAudioDocument Speakit obtiene un iterador del textDocument Se inicia un loop que se ejecuta mientras textDocument tenga palabras Speakit obtiene un string representando a la siguiente palabra del textDocument Speakit envia el mensaje getAudio a la instancia de AudioDictionary obteniendo como respuesta la instancia de audio correspondiente Speakit crea una nueva instancia de wordAudio pasandole como parametro el string y el audio que representan a la palabra Speakit agrega la instancia de wordAudio al wordAudioDocument Finaliza el loop Speakit devuelve la instancia de wordAudioDocument como respuesta al mensaje enviado por el men FS menu Menu speakt Spealtntertace O texiDocument TextDocument texiDoxumentt Iterator taa O debe AudoDicionary convertToAudioDocyment TextDocument WordAudioDocument AudioDictiondry TextDocument i EE E eei aon taoi E m wordAudioDocument er teratorQ iterator Toop terator hbsNext0 next E gtAudio String Audio ARA A AE albacea Lec A A ENI UECESERRS A vereaugo Woreauo ado vordAudio MANUAL DE USUARIO Instrucciones de uso
23. uete speakit audio y consiste en una clase proxy que encapsula las funcionalidades del paquete de audio provisto por la c tedra Tiene funciones para reproducir un objeto Audio o grabar un objeto Audio O SimpleAudioPlayer datos reproduccionaudio core SimpleAudioPlayer O init o bytes bytel 0 run start starPlayingO stopPlaying Audio O getBytesO O setBytes Send Import Instantiate Call Import Instantiate O SimpleAudioPlayerException AudioManager datos reproduccionaudio exception Y AudioManagerException output ByteArrayOutputStream Send Import Instantiate SimpleAudioPlayerException A recorder SimpleAudioRecorder 7 AudioManagerException C AudioManagerException SimpleAudioPlayerException e piero Simple AudioPlayerException O startRecording O stopRecording Call Import Instantiate SimpleAudioRecorder datos capturaaudio core datos capturaaudio exception Send Import Instantiate SimpleAudioRecorder PO Simple AudioRecorderException O getOutput Simple AudioRecorderException 0 int Simple AudioRecorderException int O runi O stat Oo startRecording O stopRecording speakit wordreader El m dulo lector de palabras paquete speakit wordreader lee las palabras de un documento de texto Para poder hacer esto realiz
24. y get udio e ENO load contains implement loado O TestDictionaryFileSet test A T contains Call Import Instantiate AudiolndexFile 0 O createRecord O getOf set 4 audioFile File 4 audiolndexFile File TestDictionaryFileSet e close O destroyFiles O get udioFile O getAudiolndexFile speakit Speakit El m dulo del modelo de negocio simbolizado por la clase Speakit integra los dem s m dulos Tiene la funci n de agregar un documento funci n pensada para la siguiente etapa que ahora se limita a devolver las palabras desconocidas agregar palabra y convertir un documento de texto en un documento de audio AAA addDocument addWWordAudio convertTo4udioDocument getTextDocumentFromPile Implement addDocument addwWWordW4udio convertTo udioDocument getTextDocumentFromPile load load speakit Menu El m dulo de interfaz de usuario es el men y el que gestiona el control del programa el que le da instrucciones a Speakit para obtener o guardar una palabra muestra textos en pantalla permite la entrada del usuario y utiliza al m dulo de audio para grabar y reproducir sonido Menu pathCache String Menu Oo getAudio Oo playSound O stati Call Import interface dE A U A A A A Speakitinterface AAA addDocument addwYord4udio convertTo udioDocument
Download Pdf Manuals
Related Search
Related Contents
Christie Vive Audio BKT-LA5 Bracket User Manual MAN-Combics Indikator CAISL1 CAISL2 CAIS1 4. Croissance économique, pauvreté et inégalité MONITOR MULTIPARAMETRICO GIMA VITAL-SNET Teletext decoder apparatus including feature of inhibiting generation Manual - Extech Instruments Manual Time Control - Software de Gestión de Ayuda a Domicilio Montage- und Bedienungsanleitung Brennholz Philips HP8340 IVO Smart - George Kniest Copyright © All rights reserved.
Failed to retrieve file