Beruflich Dokumente
Kultur Dokumente
ndice
ndice
Parte I Introduccin ............................................... 11
Captulo 1 Presentacin del proyecto.........................................13
1.1 Descripcin del proyecto ............................................................. 13
1.2 Alcance......................................................................................... 13
1.3 Sobre la documentacin ............................................................... 14
ndice
3.3.4 Desafos de la sntesis de voz ....................................................27
3.3.4.1 Desafos de la normalizacin de texto....................................27
3.3.4.2 Desafos de los sistemas Texto a fonema ...............................28
Introduccin .................................................................................39
Definicin y clasificacin ............................................................40
Segmentacin de las palabras en silabas ......................................40
Reproduccin ...............................................................................43
Mtodo para silabear ....................................................................44
ndice
6.5.5 Reanudar reproduccin ............................................................ 56
6.5.6 Deletrear texto........................................................................... 57
6.5.7 Modificar volumen ................................................................... 58
6.6 Estructura esttica del sistema .................................................... 59
6.6.1 Diagrama inicial de clases ........................................................ 59
Introduccin ................................................................................ 75
Uso de componentes en Visual Studio .NET 2003 ..................... 76
Uso del componente sonido ........................................................ 78
Creacin de ficheros de voces ..................................................... 80
ndice
9.5.9 Detener reproduccin ...............................................................96
9.5.10 Pausar reproduccin ...............................................................97
9.5.11 Continuar reproduccin ..........................................................98
9.5.12 Modificar volumen .................................................................99
9.6 Estructura esttica del sistema ...................................................100
9.6.1 Diagrama inicial de clases ......................................................100
ndice
12.3.1 Escribir un texto ................................................................... 139
12.3.2 Borrar un texto ..................................................................... 139
12.3.3 Cambiar las opciones del reproductor .................................. 139
12.3.4 Deletrear un texto ................................................................. 140
12.3.5 Reproduccin del un texto ................................................... 140
12.4 Instalacin y desinstalacin de la aplicacin .......................... 141
ndice
10
Parte I
Introduccin
Captulo 1
1.2. Alcance
Este proyecto se enmarca en el trabajo que el Grupo GIRO est realizando dentro del
dominio de aplicacin de Software para Discapacitados, y en particular en la comunicacin
alternativa.
13
Parte I: Introduccin
Breve descripcin sobre el tema a desarrollar en el proyecto y los objetivos
propuestos
14
Apndice
Estudio de los dispositivos mviles
Descripcin sobre las tecnologas usadas, como Visual Studio .NET, Compact
Framework, programacin de componentes, etc.
15
16
Captulo 2
Objetivos propuestos
2.1. Objetivos
A continuacin se describen los objetivos propuestos:
Conocer la evolucin histrica de la sntesis de voz, desde la voz sinttica y metlica hasta
la voz artificial natural actual.
Conocer las distintas alternativas que existen para el desarrollo de la sntesis de voz.
Conocer la sntesis de voz, para qu se usa y hacia quien est pensado su uso.
17
18
Parte II
Captulo 3
Sntesis de voz
La Sntesis de voz es la produccin artificial de habla humana. Un sistema usado con este
propsito recibe el nombre de sintetizador de voz y puede implementarse en software o en
hardware. La sntesis de voz se llama a menudo en ingls text-to-speech (TTS), en referencia a su
capacidad de convertir texto en habla. Sin embargo, hay sistemas que en lugar de producir voz a
partir de texto lo hacen a partir de representacin lingstica simblica en habla.
21
3.2. Orgenes
Uno de los retos que ha tenido la persona humana en el siglo pasado ha sido la de lograr
que una mquina aprendiera a hablar, a leer y a escribir. Especialmente en la discapacidad visual,
una mquina que lee textos es una ayuda de gran importancia para el acceso a la cultura de las
personas con este tipo de minusvalas.
En 1779, el cientfico dans Christian Gottlieb Kratzenstein, que trabajaba en esa poca en
la Academia Rusa de las Ciencias, construy modelos del tracto vocal que podra producir las cinco
vocales largas (a, e, i, o y u). Wolfgang von Kempelen de Vienna, Austria, describi en su obra
Mechanismus der menschlichen Sprache nebst der Beschreibung seiner sprechenden Maschine
("mecanismo del habla humana con descripcin de su mquina parlante", J.B. Degen, Wien) una
mquina accionada con un fuelle. Esta mquina tena, adems, modelos de la lengua y los labios,
para producir consonantes, as como vocales. En 1837 Charles Wheatstone produjo una 'mquina
parlante' basada en el diseo de von Kempelen, y en 1857 M. Faber construy la mquina
'Euphonia'. El diseo de Wheatstone fue resucitado en 1923 por Paget.
En los aos 30, los laboratorios Bell Labs desarrollaron el VOCODER, un analizador y
sintetizador del habla operado por teclado que era claramente inteligible. Homer Dudley refin este
dispositivo y creo VODER, que exhibi en la Exposicin Universal de Nueva York de 1939.
Los primeros sintetizadores de voz sonaban muy robticos y eran a menudo inteligibles a
duras penas. Sin embargo, la calidad del habla sintetizada ha mejorado en gran medida, y el
resultado de los sistemas de sntesis contemporneos es, en ocasiones, indistinguible del habla
humana real.
A pesar del xito de los sintetizadores puramente electrnicos, sigue investigndose en
sintetizadores mecnicos para su uso en robots humanoides. Incluso el mejor sintetizador
electrnico est limitado por la calidad del transductor que produce el sonido, as que en un robot
un sintetizador mecnico podra ser capaz de producir un sonido ms natural que un altavoz
pequeo.
El primer sistema de sntesis computerizado fue creado a final de la dcada de 1950 y el
primer sistema completo texto a voz se finaliz en 1968.
Hacia finales de los aos 70, aparecieron las primeras mquinas capaces de convertir texto
tecleado en voz (conversor texto-voz), que junto con los programas de reconocimiento ptico de
caracteres (Optical carcter Recognition en ingls) produjeron los primeros sistemas comerciales
para leer libros en voz alta. Uno de los ms famosos es la Kurzweil Reading Machine, que por su
precio en aquella poca, slo estaba accesible en algunas bibliotecas importantes del mundo, en
particular la del MIT (Massachussets Institute of Technology). Fue precisamente en esa
Universidad donde se desarroll uno de los primeros conversores texto-voz del mundo (EL MITTalk).Este sistema, fue convertido en producto por la Empresa Telesensory Speech Systems (ms
22
23
24
25
26
Los sistemas que producen ms calidad en el da de hoy son los sintetizadores por
concatenacin. El hecho de poder disponer de gran cantidad de memoria a precio razonable hace
posible el poder almacenar muchos ejemplos de alfonos de un locutor en distintos contextos
prosdicos y lxicos por lo que es ms factible que el alfono que haya que sintetizar, con sus
parmetros, se encuentre disponible en la base de datos.
Por el contrario, la calidad de los sistemas basados en formantes es menor, sobre todo
debido a la dificultad de generar por regla los parmetros que controlan los filtros del sintetizador,
tanto para un nico alfono como para todas las combinaciones posibles de alfonos. Sin embargo
esta tecnologa puede implementarse en sistemas computacionales con capacidad de memoria muy
limitada, lo que los hace tiles para algunas aplicaciones en las que existen limitaciones de
memoria. Tambin, y no menos importante, los sistemas de sntesis por formantes, son una muy
buena herramienta para la investigacin, tanto de modelos de sntesis como de modelos de
percepcin de habla, dado que todos los controles de entrada al sintetizador, permiten una
flexibilidad enorme, tanto para generar nuevas voces, como para modificar el estado anmico
(simulado) del conversor en su vertiente segmental (la vertiente prosdica forma parte de otro
mdulo de sntesis, como hemos visto).
27
28
Captulo 4
29
Voces HTS son voces sintetizadas basadas en modelos ocultos de Markov para Festival.
El usuario puede construir su propia voz HTS usando una pequea cantidad de habla
grabada (unos 30 minutos) usando las herramientas de entrenamiento distribuidas en Web
de HTS.
4.1.1 Festival
Festival es uno de los mejores motores TTS de cdigo abierto libre disponibles. La calidad
de voz es, en general, buena y soporta varios idiomas y tipos de voz.
Es un sistema de sntesis de voz de propsito general para mltiples lenguajes desarrollado
originalmente por el Centro de Investigacin de Tecnologas del Lenguaje de la Universidad de
Edimburgo, la Universidad Carnegie Mellon as como otros centros de enseanza han realizado
contribuciones substanciales al proyecto.
Festival ofrece un marco general para los sistemas de la sntesis de voz, e incluye ejemplos
de varios mdulos. El proyecto festival es multilinge, actualmente ingls britnico, ingls
americano y espaol aunque el ingls es el ms avanzado. Posee gran cantidad de informacin y
mdulos para la lengua espaola y permite una fcil integracin al sistema operativo GNU/Linux.
Otros grupos lanzan los nuevos idiomas para el sistema. Y las herramientas y la
documentacin completas para la utilizacin de las nuevas voces en el sistema estn disponibles
con el proyecto de FestVox de Carnegie Mellon University. (http://festvox.org)
La documentacin se da en el formato del textinfo del FSF que puede generar un manual
impreso, archivos del Info o HTML.
El proyecto incluye la documentacin completa para desarrollar sistemas de sntesis de
voz con varios APIs, siendo un entorno ideal para el desarrollo e investigacin de las tcnicas de
sntesis de voz. y esta implementado como un interprete de comandos el cual puede conectarse con
diversos mdulos y aplicaciones. Adems existen libreras para el desarrollo de aplicaciones en los
lenguajes Java y C++ , as como un interfaz para el editor de textos Emacs.
Festival se distribuye como software libre. Festival y las herramientas de sntesis de voz se
distribuyen bajo licencia de X11-type permitiendo uso comercial y no comercial sin restriccin.
4.1.2 Flite
Flite (Festival lite) es un motor libre de cdigo abierto que en estos momentos soporta un
nmero limitado de voces y de idiomas. Es ligero, pero para ello sacrifica la calidad.
30
4.1.3 FreeTTS
FreeTTS es un motor libre de sntesis de voz de cdigo abierto escrito completamente en
Java. Por ello es necesario tener instalado en el sistema el software de la mquina virtual de java
para poder utilizarlo. Esta maquina virtual Java se obtiene gratuitamente de Internet. Esta basado en
Flite que a su vez esta basado en Festival.
Creado por Sun Microsystems, ofrece una buena calidad de voz, la documentacin es
buena y existen foros de discusin acerca del desarrollo basado en este sintetizador.
No existen voces en espaol para este sintetizador, aunque en la documentacin se afirma
que las voces creadas mediante el FestVox (una aplicacin del sintetizador de voz Festival) pueden
ser portadas a este sintetizador, no se explica cul es el procedimiento para realizar esta interaccin.
FreeTTS incluye:
31
MBROLA
4.1.5
El Microsoft Speech SDK 5.1 aade soporte a las caractersticas de las versiones previas
de Speech SDK. Es posible usar el Win32 Speech API (SAPI) para desarrollar aplicaciones de voz
con las herramientas Visual (Visual Basic, Visual C++,).
Las aplicaciones desarrolladas con la Interfaz de programacin de aplicaciones de voz
(SAPI, Speech Application Programming Interface) versin 5.1 requieren que se instale el
componente principal de SAPI 5.1 en el equipo cliente.
El SDK tambin incluye gratuitamente motores text-to-speech (TTS) para ingles
americano y chino simplificado y motores de reconocimiento del habla (SR) para ingles
americano, chino simplificado y japons.
Requisitos del sistema:
Sistemas operativos soportados: Windows XP, 2000, Me, NT 4.0 Workstation o Server
32
4.1.6
Otros
33
SodelsCot
Nombre
Empresa
Direccin Web
Plataforma
Voces
Idiomas voces
Caractersticas
Otros
4.2.2
SoldelsCot
Sodels Factory S.L.
http://www.sodelscot.com
Windows 95, 98, Me, NT4.0 SP3, 2000, XP, 2003
Espaol-Castellano de IBM
Puede utilizar voces de otros fabricantes compatibles con SAPI5 (Speech
Application Programming Interface) siempre que el equipo lo tenga instalado.
La edicin Empresarial adems de incluir las voces de IBM, incorpora un idioma de
Loquendo, pudiendo elegir entre Espaol-Espaa (Jorge y Carmen) o EspaolAmrica (Carlos).
Multilinge
Es un sintetizador de voz que habla automticamente el texto copiado al
portapapeles de Microsoft Windows o tecleado por el usuario en cualquier
aplicacin. Lee el texto copiado o tecleado en editores, navegadores, correos
electrnicos, mensajera instantnea, etc.
Versin demo de 7 das.
Requisitos mnimos:
- Procesador Intel Pentium 100MHz o equivalente
- 32MB de RAM
- 20MB disponibles de disco
- Tarjeta de sonido de 16 bits
Loquendo
Nombre
Empresa
Direccin Web
Plataforma
Voces
Idiomas voces
Caractersticas
Observaciones
34
Cepstral
Nombre
Empresa
Direccin Web
Plataforma
Voces
Idiomas voces
Caractersticas
Observaciones
4.2.4
Nombre
Empresa
Direccin Web
Plataforma
Voces
Idiomas voces
Caractersticas
Otros
Cepstral voices
Cepstral LLC
http://www.cepstral.com/
Microsoft Windows 98, 98SE, 2000, XP, Server 2003
Dependiendo del idioma posee distintas voces (masculino femenino)
Multilinge
Es una empresa que
Las voces Cepstral son compatibles con SAPI 5, as que cualquier aplicacin
que use voces SAPI 5 puede usar voces Cepstral.
Las voces se mostraran en el Speech Control Panel cuando SAPI 5 est
instalado en el sistema. All se puede escuchar cada voz y seleccionar cual de
ellas usar como voz por defecto del sistema.
Requisitos mnimos:
CPU: Intel Pentium II, AMD K6
64 Mb RAM
25-110 Mb por voz
35
Acapela Group
Nombre
Empresa
Direccin Web
Plataforma
Voces
Idiomas voces
Caractersticas
Otros
4.2.6
TextAloud
Nombre
Empresa
Direccin Web
Plataforma
Voces
Idiomas voces
Caractersticas
Otros
Digit pocket
Acapela Group (www.acapela-group.com/)
www.digalo.com
Pocket PC
Dependiendo del idioma posee distintas voces (masculino femenino)
Multilinge
Digit es un lector de portapapeles que lee cualquier texto en varios idiomas.
Incluye un motor TTS de alta calidad.
Es fcil de usar y disponible con la mayora de aplicaciones. Lee cualquier
texto simplemente con copiarlo en el portapapeles de Windows, seleccionar
el lenguaje y el tipo de voz.
Versin demo de 15 das.
No funciona en Windows Mobile 5
TextAloud
NextUp Technologies
http://www.nextup.com/TextAloud/index.html
Windows 95, 98, Me, NT, 2000, XP
Dependiendo del idioma posee distintas voces (masculino femenino)
Dependiendo de la empresa suministradora de las voces, stas sern de un
idioma o de otro.
TextAloud lee el texto del e-mail, paginas Web, informes y otros, en voz alta
en su PC.
Puede usar (y descargar) voces de AT&T Natural Voices, NeoSpeech,
Cepstral, Acapela, todas ellas compatibles con SAPI 4 y SAPI 5.
Periodo de evaluacin de 15 das
Requisitos mnimos:
- Pentium 200
- 64MB RAM
- 10MB Espacio de disco
- Tarjeta de sonido
36
RealSpeak
Nombre
Empresa
Direccin Web
Plataforma
RealSpeak Solo
Nuance
http://www.nuance.com/realspeak/
Windows 98, Me, 4.0, 2000, XP
Voces
Idiomas voces
Caractersticas
Otros
4.2.8
VerbioTTS
Nombre
Empresa
Direccin Web
Plataforma
Voces
Idiomas voces
Caractersticas
Otros
VerbioTTS
Verbio Technologies S.L.
http://www.verbio.com/
Windows NT, 2000, XP, 2003, Vista
Linux compatibles Red Hat, compatibles Debian
Dependiendo del idioma posee distintas voces (masculino femenino)
Castellano, cataln, gallego, euskera, portugus, mexicano, ingls y francs
Diccionario de abreviaturas y acrnimos
Diccionario de excepciones
Entonacin dinmica y adaptativa: seleccin de la curva de entonacin
original del locutor que mejor se adapta a cada contexto
Requisitos mnimos:
Pentium 4 - 3 Ghz
>=512 MB RAM
Motor de sntesis (Vox Server): >10 MB
Mdulo de voz 8khz: +/- 80 MB
Mdulo de voz 16khz: +/- 160 MB
30MB en RAM como mnimo por locutor.
37
38
Capitulo 5 - La slaba
Captulo 5
La slaba
5.1 Introduccin
Para la realizacin del componente sonido he optado por la tecnologa de sntesis
concatenativa, que es la que utiliza segmentos de voz grabados, y ms especficamente sntesis
concatenativa por seleccin o concatenacin de unidades (ver tema 3 Sntesis de voz).
A la hora de reproducir un texto, reproducimos palabras. Sin embargo, es prcticamente
imposible tener una base de datos con todas las palabras reproducibles. Esto es imposible porque el
lxico espaol es demasiado amplio para poder almacenar todas las palabras que el usuario de la
aplicacin fuese a usar.
Descartadas las palabras, analizamos una divisin inferior: las silabas. La cantidad de
slabas es mucho ms reducida que las palabras y por tanto, los recursos para el almacenamiento de
las silabas grabadas son mucho menores que si de palabras se tratase.
La otra posibilidad, es reproducir por fonemas, sin embargo, habra que realizar un estudio
fontico muy profundo, ms en la lingstica que en la informtica.
Analizadas las tres alternativas, la decisin es hacer la reproduccin basndose en las
slabas, que van a ser la unidad de concatenacin o reproduccin.
Como se explic en el captulo 3 Sntesis de voz, la parte front-end del componente
corresponde a la normalizacin del texto, convertir la entrada en la unidad concatenativa o de
reproduccin, que es la silaba y el back-end convierte la unidad concatenativa en sonido.
39
Capitulo 5 - La slaba
En este captulo nos vamos a centrar en el front-end, en la transformacin del texto en
slabas, por lo que hay que hacer un estudio de cmo son las silabas en el idioma espaol y cmo se
realiza la divisin silbica.
Descripcin
Utilizado para concatenar slabas
Utilizada para agrupacin
Indican las letras donde se aplicar la regla en
cuestin
Utilizada para establecer posibilidades alternativas
40
Capitulo 5 - La slaba
REGLA 1.- En las slabas, siempre tiene que haber una vocal por lo menos. Sin vocal no hay
slaba.
REGLA 2.- Cada elemento del grupo de consonantes inseparables, mostrado en la tabla, no puede
ser separado al dividir una palabra en slabas.
REGLA 3.- Cuando una consonante se encuentra entre dos vocales, se une a la segunda vocal.
Ejemplo:
41
Capitulo 5 - La slaba
Excepcin.- Esta regla no se cumple cuando la segunda y tercera consonante forman parte del
grupo de consonantes inseparables.
Son diptongos slo las siguientes parejas de vocales: ai, au, ei, eu, io, ou, ia, ua, ie, ue, oi, uo, ui, iu,
ay, ey, oy. Ejemplo
42
Capitulo 5 - La slaba
REGLA 8.- La h entre dos vocales, no destruye un diptongo. Ejemplo:
5.4 Reproduccin
Con estas reglas se consigue dividir las palabras en silabas para su posterior reproduccin.
Sin embargo existe un inconveniente a la hora de la reproduccin, y es el hecho de que
existen silabas que aun escribindose igual difieren en su pronunciacin dependiendo de su
colocacin en la palabra.
Este es el caso de la r. Una r dbil es aquella que en una palabra se encuentra entre dos
vocales y r fuerte los dems casos. r dbil es el caso de la palabra madera y r fuerte es el
caso de ramo o Israel.
Ante la silaba ra, hay dos posibilidades: ra simple o ra fuerte que se han solucionado
en la implementacin de la reproduccin de las silabas: Si la silaba es la primera de la palabra, es
ra fuerte pero si est dentro de una palabra hay que ver si el carcter anterior es vocal, en ese caso
es ra dbil o es consonante, en cuyo caso es ra fuerte.
43
Capitulo 5 - La slaba
44
Capitulo 5 - La slaba
CASO 3: INICIO DE SLABA: CONSONANTE + CONSONANTE
A continuacin se describen las posibles combinaciones de slabas para este caso.
Combinacin Ejemplo
CCV
Tra + po
CCVC
Tras + to
CCVCC
Trans + porte
CCVV
Trau + ma
CCVVC
Claus + trofobia
Toda la teora vista anteriormente sobre cmo dividir una palabra en silabas se pude
trasladas a un diagrama, que ayudar a realizar la divisin silbica de manera automtica.
La descripcin detallada de este algoritmo se muestra en los siguientes tres pasos:
PASO 1. - Para conocer las slabas de una palabra, se empieza por tomar las dos primeras
letras (L1 y L2 respectivamente) de esa palabra.
PASO 2. - Si la primera letra (L1) es vocal, la slaba pertenece al caso 1.
PASO 3.- Si la segunda letra (L2) es vocal, es una slaba del caso 2. De lo contrario la
slaba pertenece al caso 3.
Una vez que ya sabemos a que caso pertenece la slaba, hay que determinar cuando
termina una silaba e inicia otra. Para ello estudiamos las siguientes letras de la palabra hasta que
coincida con alguna de las combinaciones de vocales y consonantes vistas en los cuadros de inicio
de silaba. En caso contrario sera error de palabra.
Ejemplos:
1. Si la palabra tiene solo una letra y es vocal, se considera que la silaba est completa.
2. Si la palabra tiene la forma VCCVC (por ejemplo abrir=VCCVC) donde CC
pertenece al grupo de consonantes inseparables (Regla 2), se considera que la silaba
es V y continuamos estudiando el resto de palabra (ahora palabra=CCVC)
45
Capitulo 5 - La slaba
Diagrama para realizar la divisin silbica:
Inicio
Entrada palabra
si
L1 es fin palabra
o
L1<>V y L1<>C
Fin
Silaba = Encontrar la silaba ejecutando
los metodos de cada CASO
no
si
L1 es V
no
si
L2 es V
no
CASO 3: SIlaba comienza por CCV
46
Parte III
Desarrollo del
Componente
Captulo 6
49
Adems, como es un componente que est pensado para usarse en un Pocket PC o PDA, la
reproduccin del texto tiene que consumir pocos recursos y no depender de ningn programa
externo al sistema operativo (como el Windows Media) para la reproduccin de los archivos de
sonido.
ACT-0001
Sistema externo
Descripcin
50
51
UC-001
Reproducir texto
Descripcin
Secuencia
normal
Paso
Accin
52
UC-002
Iniciar reproduccin
Descripcin
Precondicin
Secuencia
Normal
Paso
Excepciones
Accin
53
UC-003
Detener reproduccin
Descripcin
Precondicin
El componente tiene que estar preparado (ver UC001) y hay texto reproducindose
Secuencia
normal
Paso
Excepciones
Accin
54
UC-004
Pausar reproduccin
Descripcin
Precondicin
El componente tiene que estar preparado (ver UC001) y hay texto reproducindose
Secuencia
normal
Paso
Excepciones
Accin
55
UC-005
Reanudar reproduccin
Descripcin
Precondicin
Secuencia
normal
Paso
Excepciones
Accin
56
UC-006
Deletrear texto
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
57
UC-007
Modificar volumen
Descripcin
Precondicin
Secuencia
normal
Paso
Excepciones
Accin
58
Clase frase:
Clase que describe las caractersticas necesarias para el tratamiento del texto que
se va a reproducir
Clase palabra:
Clase que describe las caractersticas necesarias para la obtencin y el tratamiento
de las palabras que forman parte del texto que se va a reproducir.
Clase silaba:
Clase que describe las caractersticas necesarias para la obtencin y tratamiento
de las silabas que forman parte de las palabras de la frase que se va a reproducir.
59
Clase reproductor:
Clase que describe las caractersticas necesarias para la reproduccin de las
silabas de las palabras del texto que se va a reproducir.
60
Captulo 7
61
Reproducir texto
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
Postcondicin
Importancia
Vital
62
Iniciar reproduccin
Descripcin
Precondicin
Secuencia
Normal
Paso
Accin
Postcondicin
Excepciones
Paso
2
Importancia
Accin
Si el texto a reproducir es vaco, el componente no hace nada.
Vital
Fig. 7.3 Descripcin del caso de uso iniciar reproduccin
63
UC-003
Detener reproduccin
Descripcin
Precondicin
Secuencia
Normal
Paso
Accin
Postcondicin
Importancia
Vital
64
Pausar reproduccin
Descripcin
Precondicin
Secuencia
Normal
Paso
Accin
Postcondicin
Importancia
Importante
65
Reanudar reproduccin
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
Postcondicin
Excepciones
Paso
2
Importancia
Accin
Si el texto a reproducir es vaco, el componente no hace nada.
Importante
66
Deletrear texto
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
Postcondicin
Excepciones
Paso
1
Importancia
Accin
Si el texto a deletrear es vaco, no hace nada.
Poca
Fig. 7.11 Descripcin del caso de uso deletrear texto
67
Modificar volumen
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
Postcondicin
Excepciones
Paso
Importancia
Accin
Importante
68
69
Mtodos:
Reproduce: mtodo que crea un hilo para poder as utiliza las funciones del
reproductor distintas al Play().
Linea: mtodo que obtiene el texto que el usuario ha escrito y quiere reproducir
Volumen_actual: mtodo que obtiene el volumen de reproduccin
Voz_actual: mtodo que obtiene el tipo de voz de reproduccin
Reproduce2: mtodo que inicia la reproduccin del texto.
Play: mtodo que comprueba que no hay otro texto reproducindose y llama al
mtodo reproduce para que inicie la reproduccin del texto
Continuar: mtodo que comprueba que no hay otro texto reproducindose y llama al
mtodo reproduce2 para que inicie la reproduccin del texto anteriormente pausado y
que falta por reproducirse
Pause: mtodo que pausa la reproduccin del texto
Stop: mtodo que detiene la reproduccin del texto.
waveOutGetvolume: mtodo del sistema operativo para obtener el volumen actual de
reproduccin
waveOutSetvolume: mtodo del sistema operativo para establecer el volumen de
reproduccin
volumen_inicial: mtodo que transforma el volumen inicial del reproductor
(almacenado en vol_act) para que puedan usarlo los mtodos del sistema operativo.
70
SubirVolumen: mtodo que sube un punto el volumen de reproduccin (en una escala
del 1 al 10)
BajarVolumen: mtodo que baja un punto el volumen de reproduccin (en una escala
del 1 al 10)
Deletreo: mtodo que realiza el deletreo de una palabra
Clase silabas
Clase que contiene todos los mtodos para transformar un texto de entrada en un texto
equivalente para su posterior reproduccin.
Contiene los mtodos para transformar un nmero decimal a su equivalente en texto,
transformndolo en silabas para su posterior reproduccin
Atributos:
L1: variable que contiene la primera letra de la palabra a silabear
L2: variable que contiene la segunda letra de la palabra a silabear
Mapap: variable que contiene la palabra mapeada para su divisin silbica
Insep: array formado por los pares de letras que no pueden ser separados en la
divisin silbica.
insep={"br","bl","cr","cl","dr","fr","fl","gr","gl","kr","ll","pr","pl","tr","rr","ch"}
Trip: array formado por los triptongos existentes en el idioma espaol.
trip={"iai","iei","uai","uei","uau","iau","uay","uey"}
Texto: texto introducido por el usuario para su reproduccin
Arr_silabas: array auxiliar donde se van almacenando las silabas del texto
A_aux: array auxiliar que contiene las palabras que forman el texto a reproducir
Lin: variable que contiene el texto transformado en silabas para su posterior
reproduccin
Mtodos:
Haz_palabras: mtodo que divide el texto en palabras
Haz_silabas: mtodo que divide la palabra en silabas
Mapea_palabra: mtodo que sustituye cada vocal de la palabra por V y cada
consonante por C para realizar la divisin silbica con el algoritmo visto en el
captulo 5 La silaba.
Los siguientes mtodos se han indicado en el diagrama de clases como C1:
C11: mtodo que indica la forma de la silaba. silaba="V"
C12: mtodo que indica la forma de la silaba. silaba="VC
C13: mtodo que indica la forma de la silaba. silaba="VV"
C14: mtodo que indica la forma de la silaba. silaba="VVC"
Los siguientes mtodos se han indicado en el diagrama de clases como C2:
C21: mtodo que indica la forma de la silaba. silaba="CV"
C22: mtodo que indica la forma de la silaba. silaba="CVC"
C23: mtodo que indica la forma de la silaba. silaba="CVCC"
C24: mtodo que indica la forma de la silaba. silaba="CVV";
C25: mtodo que indica la forma de la silaba. silaba="CVVC";
71
Clase audio
Clase que gestiona los recursos del sistema operativo para reproducir un fichero de audio
Atributos:
m_soundBytes: variable que contiene las opciones de reproduccin de los recursos del
sistema operativo
Mtodos:
WCE_PlaySoundBytes: mtodo del sistema operativo para el manejo del sonido
Play_sonido: mtodo que reproduce el sonido.
FichWAVfem
Componente que almacena las silabas pregrabadas con voz femenina (en formato WAV)
que son necesarias para la reproduccin de un texto.
72
73
74
Captulo 8
Play
Stop
Pause
Continuar
Subir volumen
Bajar volumen
75
Deletrear texto
El nombre de las funciones principales se ha mantenido en ingles (play, stop, pause)
debido a su uso comn. El resto de las funciones tienen nombre espaol, debido a que
su nombre en ingles no es tan usado, como por ejemplo continuar en lugar de resume.
8.2.
Para utilizar un componente en una aplicacin que estamos haciendo con Visual Studio, tenemos
que hacer lo siguiente:
1.
2.
En el formulario que aparece (figura Fig. 8.2), seleccionamos la pestaa Proyectos para
aadir el componente al proyecto. Buscamos el componente pulsando en el botn
examinar. Una vez seleccionado, en el cuadro inferior estar el componente que
76
Una vez que lo hemos agregado, podemos ver en la figura Fig. 8.3 que ya forma parte de
nuestra aplicacin (como ejemplo, nuestro componente se llama sonido):
77
8.3.
En general, los sintetizadores de voz poseen diversas funciones para su manejo, como la
funcin PLAY y la funcin STOP, que estn presentes en todos ellos. Las funciones PAUSA y
CONTINUAR puede que no siempre estn disponibles en un sintetizador.
Adems posee las funciones de subir y bajar volumen para poder usarlas dentro de la
aplicacin y no recurrir a los botones de los altavoces.
Para poder reproducir un texto, es necesario indicar
1.
2.
3.
unas silabas pregrabadas: nombre del fichero que contiene las silabas
volumen inicial
un texto de entrada
En cada clase donde se vaya a implementar cdigo que use el componente, tenemos que
agregar:
using sonido
adems de agregarlo como referencia a nuestro proyecto (ver seccin 8.2 Uso de componentes en
Visual Studio .NET 2003)
Una vez que tenemos el componente sonido agregado al cdigo (using sonido), tenemos que
declararlo en la seccin de variables, por ejemplo con el nombre mireproductor:
private sonido.reproductor mireproductor
Luego, en el cdigo del constructor de la clase en la que nos encontramos, creamos el objeto
aadiendo:
mireproductor = new sonido.reproductor
78
79
8.4.
Crear un proyecto componente como se explica en el apndice B.3 con un nombre con el
siguiente formato:
FichWAV<nombre>.dll
donde <nombre> indica el tipo de voces que contiene. Por ejemplo:
Ej.: FichWAVhombre.dll
80
El siguiente paso es agregar los ficheros de sonido. Estos ficheros de sonido, en formato
WAV, tienen el nombre del fichero igual al de la silaba.
Ej.: silaba la fichero la.wav
3.
Una vez insertado el fichero de sonido, dentro de la pestaa propiedades, indicamos que la
accin de generacin es recurso incrustado, mostrado en la figura Fig. 8.6.
81
5.
82
Parte IV
Desarrollo de la
Aplicacin
Captulo 9
Anlisis de la aplicacin
9.1. Introduccin
El anlisis se dedica a la comprensin y modelado de la aplicacin y del dominio en el
cual funciona.
La entrada inicial de la fase de anlisis es una descripcin del problema que hay que
resolver y proporciona una visin general conceptual del sistema propuesto
85
Men: nos cambia de la pantalla principal, desde la cual introducimos el texto a otra
pantalla en la que tenemos las opciones de la aplicacin.
Borrar texto: la pulsacin de este botn har que se elimine el texto introducido
Reproducir texto: la pulsacin de este botn har que la aplicacin pida al componente la
reproduccin de un texto
Salir: la pulsacin de este botn har que se cierre la aplicacin.
ACT-0001
Usuario
Descripcin
ACT-0002
Componente sonido
Descripcin
86
87
Introducir texto
Descripcin
Secuencia
normal
Paso
Accin
88
UC-002
Borrar texto
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
Fig. 9.7 Diagrama del caso de uso introducir texto borrar texto
89
UC-003
Configurar reproductor
Descripcin
Secuencia
normal
Paso
Accin
90
UC-004
Salir aplicacin
Descripcin
Secuencia
normal
Paso
Accin
91
UC-005
Reproducir texto
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
92
UC-006
Deletrear texto
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
93
UC-007
Usar reproductor
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
94
UC-008
Iniciar reproduccin
Descripcin
Precondicin
Secuencia
Normal
Paso
Excepciones
Accin
95
UC-009
Detener reproduccin
Descripcin
Precondicin
Secuencia
normal
Paso
Excepciones
Accin
96
UC-010
Pausar reproduccin
Descripcin
Precondicin
Secuencia
normal
Paso
Excepciones
Accin
97
UC-011
Continuar reproduccin
Descripcin
Precondicin
Secuencia
normal
Paso
Excepciones
Accin
98
UC-012
Modificar volumen
Descripcin
Secuencia
normal
Paso
Excepciones
Accin
99
100
101
102
Captulo 10
Diseo de la aplicacin
10.1. Introduccin
Una vez completada la fase de anlisis, y antes de pasar a la implementacin y
programacin, es necesaria una actividad de nivel superior.
La fase de diseo es una fase intermedia entre la vista abstracta de un sistema y la
implementacin real de ste. Los productos de esta fase pueden ser ms cercanos a una visin
abstracta o a una visin implementable.
En esta parte del diseo se desarrollan los casos de uso que han sido descritos en el
captulo anterior. Tambin sern desarrollados los diagramas de secuencia mostrando el orden de
las llamadas en el sistema. Se utilizara un diagrama de secuencia para cada caso de uso a
representar y para las excepciones que puedan presentar estos casos.
Es imposible representar en un solo diagrama de secuencia todas las secuencias posibles
del sistema, por ello se escoge un punto de partida.
103
UC-001
Introducir texto
Descripcin
Secuencia
normal
Paso
Accin
Postcondicin
Excepciones
Paso
Importancia
Accin
Vital
104
Interfaz de usuario:
El
sistema
muestra
una
pantalla principal,
formada por un
campo de texto y
un teclado formado
por
una
combinacin
de
botones, cada uno
de ellos con un
grupo
de
caracteres.
tipo
El
sistema
muestra
una
pantalla formada
por un cuadro de
texto
y
unos
botones
que
representan cada
uno un carcter.
El
usuario
selecciona
el
carcter que quiere
escribir pulsando el
botn que contenga
ese carcter.
Fig. 10.4 Inferfaz de
formulario caracteres A..F
usuario
tipo
105
UC-002
Borrar texto
Descripcin
Precondicin
Secuencia
Normal
Paso
Accin
Postcondicin
Excepciones
Paso
5
Importancia
Accin
Si el usuario quiere volver a la pantalla
principal pulsa el botn VOLVER
BOTONES.
Importante
106
Interfaz de usuario:
El sistema muestra otra
pantalla formada por un
cuadro de texto y unos
botones con las distintas
opciones de la aplicacin.
107
UC-003
Configurar reproductor
Descripcin
Secuencia
normal
Paso
Accin
Postcondicin
Excepciones
Paso
6
Importancia
Accin
Si el usuario no quiere modificar las opciones de
reproduccin pulsa el botn CANCELAR.
Importante
108
Interfaz de usuario:
El sistema muestra la
una pantalla con las
opciones de voz y
volumen de reproduccin
actuales.
Para
cambiar
las
opciones, marcar las
nuevas caractersticas de
reproduccin y pulsar el
botn ACEPTAR para
guardarlas o CANCELAR
para no modificar nada.
109
UC-004
Salir aplicacin
Descripcin
Secuencia
normal
Paso
Accin
Postcondicin
La aplicacin se ha cerrado.
Importancia
Vital
110
UC-005
Reproducir texto
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
Postcondicin
Excepciones
Paso
Importancia
Accin
Vital
Fig. 10.13 Descripcin del caso de uso deletrear texto
111
UC-006
Deletrear texto
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
Postcondicin
Excepciones
Paso
4
Importancia
Accin
Si el texto a deletrear es vaco, no hace nada.
Poca
112
113
UC-007
Usar reproductor
Descripcin
Precondicin
Secuencia
normal
Paso
Importancia
Accin
Vital
114
Interfaz de usuario:
El sistema muestra la
pantalla del reproductor,
formada por un campo de
texto y unos botones con las
funciones del reproductor.
115
UC-008
Iniciar reproduccin
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
Postcondicin
Excepciones
Paso
3
Importancia
Accin
Si el texto a reproducir es vaco, el reproductor no hace nada.
Vital
116
UC-009
Detener reproduccin
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
Postcondicin
Importancia
Vital
117
UC-010
Pausar reproduccin
Descripcin
Precondicin
Secuencia
normal
Paso
Accin
Postcondicin
Importancia
Importante
118
UC-011
Continuar reproduccin
Descripcin
Precondicin
Secuencia
normal
Paso
Postcondicin
Excepciones
Importancia
Accin
Accin
Si el texto a reproducir es vaco, el reproductor no hace nada.
Importante
119
Modificar volumen
Descripcin
Secuencia
normal
Paso
Accin
1a
1b
2a
2b
Postcondicin
Excepciones
Paso
Importancia
Accin
1a
1b
Importante
120
121
Clase FormNUM09
Clase que contiene los atributos y mtodos necesarios para que se puedan introducir
nmeros en un texto que posteriormente se va a reproducir. Estos nmeros se introducen pulsando
los botones de la pantalla, cada uno de los botones representa un nmero.
Atributos
boton0..boton9:: botones que contienen los nmeros que se van a aadir al texto que
queremos reproducir
botonCOMA: botn que permite insertar una coma (,)
botonPUNTO: botn que permite insertar un punto (.)
botonBORRAR: botn que permite a borrar un carcter
botonESPACIO: botn que permite insertar un espacio
botonVOLVER: botn para volver a la pantalla principal
boxNUM: caja de texto que muestra el texto que introducimos
lin: variable que almacena el texto que se introduce mediante las pulsaciones de los
botones correspondientes.
122
Clase FormPrincipal
Clase principal de la aplicacin. Contiene los atributos y mtodos necesarios para la
insercin de texto. Contiene una serie de botones con letras agrupadas, mediante los cuales se
cambia a otra pantalla (FormCaracter) que nos permite introducir caracteres. Tambin nos permite
cambiar a otra pantalla (FormMenu) para poder usar las distintas opciones del reproductor.
Atributos
botonAF: botn para mostrar la pantalla FormAF (instancia de FormCaracter)
botonGL: botn para mostrar la pantalla FormGL (instancia de FormCaracter)
botonMQ: botn para mostrar la pantalla FormMQ (instancia de FormCaracter)
botonRW: botn para mostrar la pantalla FormRW (instancia de FormCaracter)
botonXZ: botn para mostrar la pantalla FormXZ (instancia de FormCaracter)
botonNUM: botn para mostrar la pantalla FormNUM09
botonBORRAR: botn que permite a borrar un carcter
botonESPACIO: botn que permite insertar un espacio
botonMENU: botn para mostrar la pantalla menu
botonTildes: botn para mostrar la pantalla FormTildes (instancia de FormCaracter)
box_ppal: caja de texto que nos muestra el texto que se va introduciendo
buttonsalir: botn para cerrar la aplicacin
linea: variable que almacena el texto para su posterior reproduccin
Mtodos
botonMENU_Click(): mtodo que muestra la pantalla menu
botonAF_Click(): mtodo que muestra la pantalla FormAF
botonGL_Click(): mtodo que muestra la pantalla FormGL
botonMQ_Click(): mtodo que muestra la pantalla FormMQ
botonRW_Click(): mtodo que muestra la pantalla FormRW
botonXZ_Click(): mtodo que muestra la pantalla FormXZ
botonTildes_Click():mtodo que muestra la pantalla FormTildes
botonNUM_Click():mtodo que muestra la pantalla FormNUM09
botonBORRAR_Click(): mtodo que borra un carcter del texto
botonESPACIO_Click(): mtodo que aade un espacio al texto
carrar_aplicacion_Click(): mtodo para cerrar la aplicacin
123
Mtodos
set_linea(): mtodo para guardar la lnea que contiene el texto.
Obten_linea(): mtodo que obtiene el texto escrito por el usuario
botonReproducir_Click(): mtodo que muestra la pantalla FormReproducir para
reproducir un texto
botonVolver_Click(): mtodo que cierra la pantalla men y muestra la pantalla
principal (FormPrincipal)
botonConfigurar_Click(): mtodo que muestra la pantalla FormMenu, desde la que se
cambian las opciones del reproductor
botonBorrar_Click(): mtodo para borrar todo el texto escrito
botonDeletreo_Click(): mtodo que realiza el deletreo de una palabra
Clase FormConfigurar
Clase que contiene los atributos y mtodos necesarios para poder cambiar las opciones
volumen y tipo de voz de reproduccin.
Atributos
radioButtonFem: radio botn que indica si la voz femenina es la que se va a usar en la
reproduccin o no
radioButtonMasc: radio botn que indica si la voz masculina es la que se va a usar en
la reproduccin o no
radioButtonVolBajo: radio botn que indica si el volumen de reproduccin es el
volumen bajo o no
radioButtonVolMedio: radio botn que indica si el volumen de reproduccin es el
volumen medio o no
radioButtonVolAlto: radio botn que indica si el volumen de reproduccin es el
volumen alto o no
panelTipoVoz: panel para agrupar las opciones de voz
panelVolumen: panel para agrupar las opciones de volumen
labelVoz: etiqueta para las opciones de voz
124
Mtodos
botonCancelar_Click(): mtodo para cancelar los cambios y regresar a la pantalla
menu
botonAceptar_Click(): mtodo para guardar los cambios y regresar a la pantalla menu
Obten_opciones(): mtodo para obtener las opciones de reproduccin
Guarda_opciones(): mtodo que guardar las opciones de reproduccin que se han
modificado
Clase FormReproducir
Clase que contiene los atributos y mtodos necesarios para manejar el reproductor.
Atributos
Boton_play: botn para iniciar la reproduccin
Boton_stop: botn para detener la reproduccin
Boton_pause: botn para pausar la reproduccin
Boton_volver: botn para volver a la pantalla menu
Boton_continuar: botn para continuar la reproduccin desde el punto donde se paus
Btn_vol_arriba: botn para subir el volumen
Btn_vol_abajo: botn para bajar el volumen
labelVol: etiqueta para indicar los botones de modificacin de volumen
texto_reproducido: caja de texto que muestra el texto que se va a reproducir
linea: variable que contiene el texto que ha introducido el usuario
tvoz: variable que contiene el tipo de voz del reproductor
tvol: variable que contiene el volumen del reproductor
Mtodos
Obten_opciones(): mtodo que obtiene los valoras de volumen y voz iniciales de
reproduccin
Boton_play_Click(): mtodo para iniciar la reproduccin de un texto
Boton_stop_Click(): mtodo para detener la reproduccin de un texto
Boton_pause_Click(): mtodo para pausar la reproduccin de un texto
Boton_continuar_Click(): mtodo para reanudar la reproduccin de un testo
Boton_volver_Click(): mtodo para regresar a la pantalla menu
Btn_vol_Arriba_Click(): mtodo para subir un punto el volumen de reproduccin (en
una escala del 1 al 10)
125
126
Capitulo 11 Pruebas
Captulo 11
Pruebas
11.1. Introduccin
En este capitulo se muestran las pruebas realizadas. La finalidad de las pruebas es detectar
los posibles errores y su posterior correccin.
Para la realizacin de las pruebas se ha utilizado el emulador de Pocket PC que ofrece
Microsoft Visual Studio .NET y la PDA de desarrollo.
Salir de la aplicacin
Seleccionar el botn salir de la pantalla principal
La aplicacin se cerrar
La aplicacin se cierra
Correcto
Fig. 11.1 cuadro de la prueba salir da la aplicacin
127
Capitulo 11 Pruebas
PRUEBA 002
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Escribir texto
Seleccionar el botn que contiene el carcter deseado
El texto asociado al botn se aadir al texto
El texto se aade
Correcto
Fig. 11.2 cuadro de la prueba escribir texto
PRUEBA 003
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Borrar un texto
Seleccin del botn borrar texto de la pantalla men
Todo el texto escrito se borrar
El texto se ha borrado
Correcto
Fig. 11.3 cuadro de la prueba borrar un texto
PRUEBA 004
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
PRUEBA 005
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Fig. 11.5 cuadro de la prueba cambio de la voz de reproduccin por voz masculina
PRUEBA 006
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Fig. 11.6 cuadro de la prueba cambio de la voz de reproduccin por voz femenina
128
Capitulo 11 Pruebas
PRUEBA 007
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Fig. 11.7 cuadro de la prueba cambio del volumen de reproduccin por volumen
mximo
PRUEBA 008
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Fig. 11.8 cuadro de la prueba cambio del volumen de reproduccin por volumen medio
PRUEBA 009
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Fig. 11.9 cuadro de la prueba cambio del volumen de reproduccin por volumen mnimo
PRUEBA 010
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Reproduccin de un texto
Seleccin del botn de reproduccin del texto
El texto de reproducir
El texto se reproduce
Correcto
PRUEBA 011
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Pausar la reproduccin
Seleccin del botn de pausar la reproduccin del texto
La reproduccin del texto se pausar
La reproduccin se ha pausado
Correcto
129
Capitulo 11 Pruebas
PRUEBA 012
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Detener la reproduccin
Seleccin del botn detener la reproduccin de un texto
La reproduccin del texto se detendr
La reproduccin del texto se ha detenido
Correcto
PRUEBA 013
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Reanudar la reproduccin
Seleccin del botn reanudar la reproduccin del texto
La reproduccin del texto comenzar en el punto donde se paus
anteriormente
La reproduccin del texto contina donde se paus
Correcto
PRUEBA 014
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Deletrear un texto
Seleccionar el botn que permite deletrear un texto
El texto se formatear quedando deletreado
El texto est formateado
Correcto
Fig. 11.14 cuadro de la prueba deletrear un texto
PRUEBA 015
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
Fig. 11.18 cuadro de la prueba reproduccin de una silaba no existente en los ficheros
de voces
PRUEBA 016
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
130
Capitulo 11 Pruebas
PRUEBA 017
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
PRUEBA 018
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
PRUEBA 019
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
PRUEBA 020
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
PRUEBA 21
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
131
Capitulo 11 Pruebas
PRUEBA 022
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones
132
Parte V
Manual de usuario
de la aplicacin
Captulo 12
Todo ello para una mejor comprensin est mostrado por imgenes de los pasos que se van
realizando.
Esta aplicacin le permitir:
Escribir texto
Borrar el texto
Reproducir un texto
Deletrear un texto
Configurar el tipo de voz del reproductor
135
136
137
138
2.
Hacemos clic sobre el grupo de letras donde se encuentra el carecer que queremos
introducir.
3.
4.
Hacemos clic sobre el carcter que queremos introducir o al botn borrar o espacio.
5.
2.
Una vez en la pantalla de men (Fig. 12.3.) pulsamos el botn BORRAR TEXTO que
borra la totalidad del texto escrito.
139
2.
3.
Se muestra la pantalla configurar reproduccin (Fig. 12.4). En ella vemos marcadas las
opciones de voz y volumen que tiene actualmente la aplicacin.
4.
Para cambiarlas, basta con marcar las nuevas opciones y pulsar ACEPTAR, que nos
guarda la nueva configuracin y nos devuelve a la pantalla men (Fig. 12.3)
2.
Una vez en la pantalla men (Fig. 12.3) hacemos clic en el botn DELETREAR TEXTO.
3.
Se muestra la pantalla del reproductor (Fig. 12.5) y desde all iniciamos la reproduccin
del texto deletrendolo.
140
2.
Una vez localizador los archivos CAB, se copia el archivo CAB apropiado y el
netCF.CAB en el dispositivo de destino, en un directorio temporal.
Es necesario tener instalado en el PC el programa Microsoft ActiveSync, para el
intercambio de datos entre el PC y el dispositivo. La transferencia de archivos puede
tambin realizarse por otras vas (Bluetooth, Infrarrojos) dependiendo, obviamente, de
las posibilidades de conexin del dispositivo.
3.
Finalmente, se puntea en los archivo CAB (ya en el dispositivo), que hemos grabado en un
directorio temporal anteriormente, y se instala la aplicacin.
Desinstalacin
Si queremos desinstalar la aplicacin del dispositivo, bastara con seguir los siguientes
pasos desde la PDA:
Men inicio -> Configuracin -> pestaa Sistema -> Quitar Programas -> elegir pfc_TTS
-> botn Quitar.
141
142
Parte VI
Conclusiones
Captulo 13 - Conclusiones
Captulo 13
Conclusiones
13.1 Dificultades encontradas
El uso de sonido en la programacin era nuevo para mi, y an ms su uso en una herramienta
tan completa como Visual Studio.
Adems, la programacin para PocketPC en Visual Studio, aunque parezca igual que para
PC, difiere en los recursos que posee, ya que para PocketPc no estn disponibles todas las libreras,
clases y mtodos, y eso dificult al principio la programacin.
La sntesis de voz era algo que saba de su existencia, pero no qu era y como poder
realizarla
Tambin surgi la dificultad de cmo programar un componente, como poder abstraer lo que
era componente y lo que era aplicacin y dnde estaba esa separacin.
Tambin durante el estudio de la sntesis de voz, la mayor dificultad fue intentar usar
libreras de voz libres, en espaol, para PocketPC y que puedan usarse con Visual Studio, ya que la
mayora son para PC y no para PocketPC. Adems me pareca ms sencillo implementarlo de
nuevo que reutilizar otras funciones, ya que no estaban suficientemente documentadas.
Otra dificultad fue el silabeo de las palabras del texto. La forma de silabear es algo que nos
ensean en el colegio cuando somos pequeos y ahora nos parece que es trivial. Sin embargo, el
realizar el silabeo de una forma automtica y mediante un programa, no resulta ser tan trivial como
pareca en un principio.
145
Captulo 13 - Conclusiones
Otro inconveniente fueron los archivos de sonido de las silabas. Para crear estos ficheros,
se puede hacer grabando las silabas con la voz de una persona o mediante programas que permitan
reproducir sonidos y grabarlos. Con cualquiera de las dos opciones hay que retocar esos sonidos
grabados, porque siempre quedan espacios vacos al principio o al final de la silaba sin sonido, y
para que la reproduccin sea lo ms parecida a como las reproduce la voz humana, es necesario
eliminar ese silencio pero sin que quede demasiado cortante.
Tambin fue un inconveniente el tratamiento de algunas silabas, se escribindose igual su
pronunciacin o reproduccin es distinta, como es el caso de la silaba ra. Si la silaba es inicio de
palabra suena ra fuerte (rama) pero si est dentro de la palabra suena ra dbil (madera) (ver
el capitulo 5, en la seccin 5.4 Reproduccin)
Grabadas las slabas, lo siguiente es plantear cmo utilizarlas en la aplicacin, como una
base de datos o como otro componente. Ya que una de los objetivos propuestos fue el que se
pudieran sustituir las voces de la aplicacin por otras nuevas, la opcin pareca la del componente.
La posibilidad de cambiar las voces est explicada en el captulo 8 Manual de uso del componente,
en la seccin 8.4 Creacin de ficheros de voces.
La creacin de dll tambin plante dificultades, sin embargo Visual Studio ofrece la
posibilidad de crear dll, por lo que ese problema se solucion con la propia documentacin de
Visual Studio.
La modificacin del volumen mediante la aplicacin tambin fue otro gran problema, ya
que la aplicacin utiliza los recursos de sonido del sistema operativo. Haba que buscar y
comprender las funciones de manejo de sonido del sistema operativo y su posterior utilizacin en
Visual Studio .NET 2003, y ms an, si eran o no compatibles para aplicaciones diseadas para
PocketPc
Cuando la aplicacin ya reproduca el texto y se le aadieron ms funcionalidades como el
stop(), surgi el inconveniente de que al pulsar el botn Stop para detener la reproduccin, sta no
se detena. Buscando posibles soluciones entre la documentacin de Microsoft, pareci buena idea
el uso de hilos, y as solucionar el problema que se haba planteado.
146
Captulo 13 - Conclusiones
Los ficheros de voces son componentes, por lo que una modificacin en estos ficheros de
voces es independiente del componente sonido.
Poder usar correctamente ciertos anglicismos introducidos en nuestro lenguaje, como por
ejemplo bacon (pronuncindolo beicon)
Creacin y uso de voces ms naturales, mas cercanas a la voz humana que a la voz
sinttica
147
Captulo 13 - Conclusiones
148
Captulo 14 - Bibliografa
Captulo 14
Bibliografa
14.1 Bibliografa
Modelado
Programacin
149
Captulo 14 - Bibliografa
Lingstica y sntesis.
http://www.google.es Uno de los buscadores mas usados, de vital importancia, sobre todo
para la parte de el estudio de los sintetizadores de voz.
http://www.microsoft.com Pgina principal de Microsoft con informacin sobre las
familias de productos y recursos de Microsoft. til para comenzar a comprender .NET y
PocketPC.
http://www.todopocketpc.com Web muy til para todo lo relacionado con los dispositivos
mviles. Tiene un foro bastante activo
Programacin
Lingstica y sntesis
150
Captulo 14 - Bibliografa
151
Captulo 14 - Bibliografa
152
Apndices
Apndice A - Tecnologas
Apndice A
Tecnologas
A.1 Introduccin
Este proyecto se enmarca en el trabajo que el Grupo GIRO est realizando dentro del
dominio de aplicacin de Software para Discapacitados, y en su mayora implementados en C#,
uno de los lenguajes integrados en Visual Studio .NET 2003.
En este captulo se explican brevemente las tecnologas utilizadas para la realizacin del
proyecto:
155
Apndice A - Tecnologas
Variedad de lenguajes, como Visual C#.NET, Visual Basic.NET, Visual C++, J#.NET,
Conjunto unificado de bibliotecas de clases, tales como ASP.NET para aplicaciones Web
y servicios Web XML y Windows Forms para aplicaciones cliente inteligentes
Rpido desarrollo para los niveles de servidor y datos, usando ADO.NET para el acceso a
datos sin rigidez.
Es un entorno de desarrollo creado para permitir la integracin con servicios Web XML.
Al hacer posible que las aplicaciones compartan datos a travs de Internet, los servicios
Web XML permiten a los programadores ensamblar aplicaciones a partir de cdigo nuevo
y existente, independientemente de la plataforma, el lenguaje de programacin o el
modelo de objetos.
Una de las ventajas de programar con Visual Studio .NET reside en que al iniciar un
nuevo proyecto, nos muestra los distintos lenguajes en que se puede programar y para que
plataforma va orientado el nuevo proyecto. Una vez decidido lenguaje de programacin y
plataforma, es el propio Visual Studio el que se encarga de ocultar al programador las
clases que no son compatibles con la plataforma elegida. Tal es el caso de radiobutton que
para la plataforma Aplicacin para Smart Device no est disponible (no se encuentra en
Compact Framework) y si est disponible para la plataforma Aplicacin para Windows
156
Apndice A - Tecnologas
157
Apndice A - Tecnologas
diseado para ofrecer un rendimiento ptimo bajo las restricciones de los limitados recursos de los
dispositivos y es semnticamente compatible con las clases del mismo nombre en .NET
Framework.
.NET Compact Framework admite la mayora de los controles de formularios Windows
Forms de .NET Framework completo y contiene controles especficos de .NET Compact
Framework.
Los controles de formularios Windows Forms estn diseados especialmente para .NET
Compact Framework.
La implementacin es un paso tan sencillo como copiar el ensamblado en el dispositivo de
destino, mediante un cable que conecta el equipo del escritorio o su puerto de infrarrojos o bien a
travs de una conexin de Internet o intranet inalmbrica.
158
Apndice A - Tecnologas
159
Apndice A - Tecnologas
160
Apndice B
161
4.
162
3.
Una vez marcado Release, en el men Generar, hacemos clic en Generar archivo .cab,
como se muestra en la figura:
163
Indicamos que lo que queremos agregar es una biblioteca de clases escrita en C#, le
ponemos el nombre que queramos y le indicamos una ubicacin:
164
5.
Si no ha habido ningn error, este fichero se guardar dentro del directorio que le
indicamos anteriormente, en el directorio \bin.\Debug
165
166
Apndice C
167
168
Apndice D
Contenido del CD
El contenido del CD por directorios es el que se indica a continuacin:
Cdigo fuente
Cdigo fuente de la aplicacin. Este cdigo est compuesto por el cdigo del
componente (y las dlls creadas sonido.dll, FichWAVfem.dll y FichWAVmasc.dll) y el
cdigo de la aplicacin que utiliza el componente.
Instalacin
Directorio en el que se encuentran los archivos en formato CAB que son necesarios
para la instalacin de la aplicacin en una PDA.
Tambin se encuentra el archivo .NET Compact Framework, necesario para el
funcionamiento de la aplicacin.
Memoria
Memoria del proyecto en formato PDF.
Manual de usuario
Manual de usuario de la aplicacin
169