Sie sind auf Seite 1von 169

Universidad de Valladolid

E.T.S. DE INGENIERA INFORMTICA


Ingeniera Tcnica en Informtica de Gestin

Desarrollo de un componente para PDA


(un reproductor de sonido)

Autor: Maria Jess Carnicero Sierra


Tutores: Miguel ngel Laguna Serrano
Bruno Gonzlez Baixauli

Dedicado a mi familia, por ser


como son, con sus virtudes y con
sus defectos, por su paciencia y por
estar siempre en todo momento.

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

Captulo 2 Objetivos propuestos ................................................17


2.1 Objetivos ...................................................................................... 17

Parte II - Estudio de las tecnologas Texto-a-Voz .... 19


Captulo 3 Sntesis de voz ..........................................................21
3.1 Visin general .............................................................................. 21
3.2 Orgenes ....................................................................................... 22
3.3 Tecnologas de sntesis de voz ..................................................... 23
3.3.1 Sntesis concatenativa ............................................................... 23
3.3.1.1 Sntesis por seleccin de unidades ......................................... 23
3.3.1.2 Sntesis de difonos ................................................................. 24
3.3.1.3 Sntesis especfica para un dominio ....................................... 24
3.3.2 Sntesis de formantes ................................................................ 24
3.3.3 Tecnologas de sntesis: Sntesis por formantes versus
Sntesis por concatenacin de unidades ..................................... 25

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

Captulo 4 Estudio de los sintetizadores de voz disponibles...... 29


4.1 Sintetizadores de voz disponibles gratuitamente..........................29
4.1.1 Festival.......................................................................................30
4.1.2 Flite............................................................................................30
4.1.3 FreeTTS .....................................................................................31
4.1.4 MBROLA ..................................................................................31
4.1.5 Microsoft Speech SDK 5.1........................................................32
4.1.6 Otros ..........................................................................................33
4.2 Sintetizadores de voz disponibles comercialmente ......................33
4.2.1 SodelsCot...................................................................................34
4.2.2 Loquendo ...................................................................................34
4.2.3 Cepstral......................................................................................35
4.2.4 AT&T Natural Voices ...............................................................35
4.2.5 Acapela Group...........................................................................36
4.2.6 TextAloud..................................................................................36
4.2.7 RealSpeak ..................................................................................37
4.2.8 VerbioTTS .................................................................................37

Captulo 5 La silaba ................................................................... 39


5.1
5.2
5.3
5.4
5.5

Introduccin .................................................................................39
Definicin y clasificacin ............................................................40
Segmentacin de las palabras en silabas ......................................40
Reproduccin ...............................................................................43
Mtodo para silabear ....................................................................44

Parte III Desarrollo Componente ...........................47


Captulo 6 Anlisis del componente ......................................... 49
6.1 Introduccin..................................................................................49
6.2 Descripcin del problema .............................................................49
6.3 Identificacin de los actores .........................................................50
6.4 Diagrama de los casos de uso .......................................................51
6.5 Presentacin de los casos de uso ..................................................51
6.5.1 Preparar reproductor para reproducir texto ..............................52
6.5.2 Iniciar reproduccin ..................................................................53
6.5.3 Detener reproduccin ...............................................................54
6.5.4 Pausar reproduccin .................................................................55

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

Capitulo 7. Diseo del componente ...........................................61


7.1 Introduccin ................................................................................ 61
7.2 Especificacin de los casos de uso y diagramas de secuencia .... 62
7.2.1 Preparar reproductor ................................................................ 62
7.2.2 Iniciar reproduccin ................................................................. 63
7.2.3 Detener reproduccin ............................................................... 64
7.2.4 Pausar reproduccin ................................................................. 65
7.2.5 Reanudar reproduccin ............................................................ 66
7.2.6 Deletrear texto .......................................................................... 67
7.2.7 Modificar volumen ................................................................... 68
7.3 Diagrama final de clases ............................................................. 69
7.4 Especificacin de las clases ........................................................ 70

Capitulo 8. Manual de Usuario ..................................................75


8.1
8.2
8.3
8.4

Introduccin ................................................................................ 75
Uso de componentes en Visual Studio .NET 2003 ..................... 76
Uso del componente sonido ........................................................ 78
Creacin de ficheros de voces ..................................................... 80

Parte IV Desarrollo de la aplicacin....................... 83


Capitulo 9. Anlisis de la aplicacin ..........................................85
9.1 Introduccin ................................................................................ 85
9.2 Descripcin del problema ........................................................... 85
9.3 Identificacin de los actores ........................................................ 86
9.4 Diagrama de los casos de uso ...................................................... 87
9.5 Presentacin de los casos de uso ................................................. 88
9.5.1 Introducir texto ......................................................................... 88
9.5.2 Borrar texto .............................................................................. 89
9.5.3 Configurar reproductor ............................................................ 90
9.5.4 Salir aplicacin ......................................................................... 91
9.5.5 Reproducir texto ....................................................................... 92
9.5.6 Deletrear texto .......................................................................... 93
9.5.7 Reproductor .............................................................................. 94
9.5.8 Iniciar reproduccin ................................................................. 95

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

Capitulo 10. Diseo de la aplicacin ....................................... 103


10.1 Introduccin .............................................................................103
10.2 Especificacin de los casos de uso y diagramas de secuencia 104
10.2.1 Introducir texto .....................................................................104
10.2.2 Borrar texto ...........................................................................106
10.2.3 Configurar reproductor .........................................................108
10.2.4 Salir aplicacin .....................................................................110
10.2.5 Reproducir texto ...................................................................111
10.2.6 Deletrear texto ......................................................................112
10.2.7 Reproductor ..........................................................................114
10.2.8 Iniciar reproduccin ..............................................................116
10.2.9 Detener reproduccin ...........................................................117
10.2.10 Pausar reproduccin ...........................................................118
10.2.11 Continuar reproduccin ......................................................119
10.2.12 Modificar volumen .............................................................120
10.3 Diagrama final de clases...........................................................121
10.4 Especificacin de las clases......................................................122

Capitulo 11. Pruebas ................................................................ 127


11.1 Introduccin .............................................................................127
11.2 Pruebas realizadas ....................................................................127

Parte V - Manual de usuario de la aplicacin ........133


Captulo 12. Manual de usuario ............................................... 135
12.1 Introduccin .............................................................................135
12.2 Descripcin de la aplicacin por pantallas ..............................136
12.2.1 Pantalla principal ..................................................................136
12.2.2 Pantalla caracteres ................................................................137
12.2.3 Pantalla men .......................................................................137
12.2.4 Pantalla configuracin ..........................................................138
12.2.5 Pantalla del reproductor ........................................................138
12.3 Descripcin de la aplicacin por la forma de uso ....................139

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

Parte VI Conclusiones .......................................... 143


Captulo 13 Conclusiones .........................................................145
13.1 Dificultades encontradas ......................................................... 145
13.2 Objetivos alcanzados ............................................................... 146
13.3 Posibles mejoras ...................................................................... 147

Captulo 14 Bibliografa ...........................................................149


14.1 Bibliografa .............................................................................. 149
14.2 Fuentes Web ............................................................................. 150

Apndices .................................................................. 153


Apndice A Tecnologas ......................................................155
A.1
A.2
A.3
A.4
A.5

Introduccin ............................................................................. 155


Visual Studio .NET 2003 ......................................................... 156
Desarrollo para sistemas mviles ............................................. 157
.NET Compact Framework ...................................................... 157
Visual C# .NET 2003 ............................................................... 158

Apndice B Programacin en Visual Studio .NET 2003 .161


B.1 Ejecucin de la aplicacin desde Visual Studio.NET 2003 ...... 162
B.2 Creacin de archivos CAB con Visual Studio.NET .................. 162
B.3 Creacin de componentes con Visual Studio.NET ................... 164

Apndice C Hardware y software utilizado ......................167


C.1 Hardware usado ....................................................................... 167
C.2 Software usado ........................................................................ 168

Apndice D Contenido del CD ...........................................169

ndice

10

Parte I

Introduccin

Capitulo 1 Presentacin del proyecto

Captulo 1

Presentacin del proyecto


1.1. Descripcin del proyecto
El proyecto consta de dos tareas: primero, el estudio de la reproduccin de voz; y segundo,
el desarrollo de una aplicacin permita reproducir voz a partir de un texto.
Ampliando esta primera descripcin, el estudio de la reproduccin de voz consta del
estudio de la sntesis de voz desde el estudio terico de la formacin de la voz y el estudio de las
distintas herramientas existentes en el mercado, ya sean libres o propietarias.
La aplicacin del proyecto desarrollar:
1 - un componente capaz de reproducir voz sobre PDAs.
2 - una aplicacin sobre Pocket PC que reproduzca un texto previamente introducido (un
comunicador) usando el componente creado anteriormente.

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

Capitulo 1 Presentacin del proyecto


La comunicacin alternativa es otra forma de comunicacin que no utiliza la voz humana,
debido a las caractersticas de las personas afectadas por diversos trastornos o desrdenes del habla
o del lenguaje.
Debido a que la aplicacin est pensada y diseada para personas con discapacidad motora
y del habla, sta se ha diseado pensando en sus necesidades y para facilitarles la comunicacin,
tales como grandes botones para un mejor manejo.
Dadas las ventajas que aportan los dispositivos mviles y a su cada vez mayor uso en la
vida cotidiana, el usuario va a poder ampliar su independencia ya que va a aumentar su capacidad
de comunicacin con los dems.
La aplicacin final va a poder poner voz a esas personas que la han perdido, por distintos
motivos, o a aquellas personas que tengan discapacidades del habla. Para ello se ha pensado en
poder personalizar la voz, pudiendo elegir el sexo de la voz segn sea el usuario.
Sin embargo, el usuario final de la aplicacin ha de saber escribir, ya que va a ser ese texto
que escriba el que posteriormente se va a reproducir.

1.3. Sobre la documentacin


Esta memoria pretende ser de utilidad para la comprensin de este proyecto y ofrecer una
visin sobre la sntesis de voz sin entrar en gran profundidad en su estudio.
La memoria se organiza en partes, y stas a su vez en captulos para una mejor lectura y
comprensin.
Las partes de la memoria son:

Parte I: Introduccin
Breve descripcin sobre el tema a desarrollar en el proyecto y los objetivos
propuestos

Parte II: Estudio de las tecnologas texto-a-voz


Estudio terico sobre la sntesis de voz, sus orgenes, evolucin y su desarrollo.
Tambin se hace un estudio de las alternativas disponibles en el mercado, ya sean
comerciales o de libre distribucin. En este estudio se ofrece una descripcin de ellos,
la empresa o laboratorio que lo desarrolla y la plataforma para su instalacin, entre
otros.
Por ultimo tambin se hace un breve estudio de la slaba, como unidad de sonido.

Parte III: Desarrollo del componente


Anlisis, diseo y manual de uso del componente.

14

Capitulo 1 Presentacin del proyecto

Parte IV: Desarrollo de la aplicacin


Anlisis, diseo y pruebas de la aplicacin.

Parte V: Manual de usuario de la aplicacin


Manual de usuario de la aplicacin, donde se explica detalladamente el uso de la
aplicacin, su manejo y sus opciones, as como su instalacin en un dispositivo mvil
(PDA)

Parte VI: Conclusiones


Dificultades encontradas y objetivos alcanzados

Apndice
Estudio de los dispositivos mviles
Descripcin sobre las tecnologas usadas, como Visual Studio .NET, Compact
Framework, programacin de componentes, etc.

15

Capitulo 1 Presentacin del proyecto

16

Capitulo 2 Objetivos propuestos

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.

Comprender el proceso de la sntesis de voz desde el punto de vista terico.

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.

Conocer un entorno de trabajo especifico, como es el desarrollo de aplicaciones bajo


Visual Studio .NET y mas en concreto el lenguaje C#. Que similitudes y que diferencias
existen con los lenguajes de programacin en los que ya se sabe programar. Que ventajas
ofrece programar con Visual Studio .NET 2003 y en C# frente a otras alternativas.

Conocer y comprender la programacin de componentes. En que se basa y para que sirve.

Conocer y utilizar la metodologa necesaria para la creacin de software para dispositivos


mviles, los distintos programas y herramientas con las que poder crear estas aplicaciones.

17

Capitulo 2 Objetivos propuestos

Conocer las limitaciones de la programacin para dispositivos mviles frente a las


aplicaciones para PC, ya que no es lo mismo, disear aplicaciones para PC sin
restricciones de tamao, que para dispositivos mviles, puesto que poseen prestaciones
limitadas. Aunque esto en la actualidad comienza a no ser tan relevante, con la aparicin
en el mercado de memorias de gran capacidad a unos precios asequibles

18

Parte II

Estudio de las tecnologas


Texto-a-Voz

Captulo 3 Sntesis de voz

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.

3.1. Visin general


Un sistema texto a voz se compone de dos partes: un front-end y un back-end. A grandes
rasgos, el front-end toma como entrada texto y produce una representacin lingstica fontica. El
back-end toma como entrada la representacin lingstica simblica y produce una forma de onda
sintetizada.
El front-end desempea dos tareas principales. Primero, toma el texto y convierte partes
problemticas como nmeros y abreviaturas en palabras equivalentes. Este proceso se llama a
menudo normalizacin de texto o preprocesado. Entonces asigna una trascripcin fontica a cada
palabra, y divide y marca el texto en varias unidades prosdicas, como frases y oraciones. El
proceso de asignar transcripciones fonticas a las palabras recibe el nombre de conversin texto a
fonema (TTP en ingls) o grafema a fonema (GTP en ingls). La combinacin de transcripciones
fonticas e informacin prosdica constituye la representacin lingstica fontica.

21

Captulo 3 Sntesis de voz


La otra parte, el back-end, toma la representacin lingstica simblica y la convierte en
sonido. El back-end se llama a menudo sintetizador.

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

Captulo 3 Sntesis de voz


tarde Speech Plus Inc y despus adquirida por Centigram). El producto se llamaba Prose 2000 y
converta en voz todo texto enviado a su puerto serie en formato ASCII. La primera versin
funcion slo para el idioma ingls americano. Otros sistemas le siguieron como el DEC-Talk, el
Klat-talk, el Infovox, y muchos otros.
Unos aos ms tarde empezaron a aparecer conversores texto-voz en otros idiomas,
espaol, francs, sueco, alemn, italiano etc.
Posteriormente, ya a finales de los aos 80, las principales operadoras telefnicas del
mundo tomaron cartas en el asunto, y produjeron sus propios conversores texto a voz, en un
conjunto de idiomas diverso. Cabe citar Bell Labs de ATT, ms tarde escindida en Lucent
Technologies y ATT Research, British Telecom., France Telecom., Deutsche Telecom., CSELT,
NTT y, por descontado, Telefnica. El inters de todas estas ltimas centrado sobre todo en la
automatizacin de servicios de informacin telefnica, en los que los datos disponibles estn sobre
todo almacenados en el ordenador en modo texto. Precisamente los servicios de informacin y
atencin telefnica automtica son uno de los pilares econmicos importantes de todos los
desarrollos actuales de la Tecnologa del Habla.

3.3. Tecnologas de sntesis de voz


Las dos caractersticas utilizadas para describir la calidad de un sintetizador de voz son la
naturalidad e inteligibilidad del texto reproducido. La naturalidad de un sintetizador de voz se
refiere a cunto suena como la voz de una persona real. La inteligibilidad de un sintetizador se
refiere a la facilidad de la salida de poder ser entendida. El sintetizador ideal debe de ser a la vez
natural e inteligible, y cada tecnologa intenta conseguir el mximo de ambas. Algunas de las
tecnologas son mejores en naturalidad o en inteligibilidad y las metas de la sntesis determinan a
menudo qu aproximacin debe seguirse. Hay dos tecnologas principales usadas para generar
habla sinttica: sntesis por concatenacin y sntesis de formantes.

3.3.1. Sntesis concatenativa


La sntesis concatenativa se basa en la concatenacin de segmentos de voz grabados.
Generalmente, la sntesis concatenativa produce los resultados ms naturales. Sin embargo, la
variacin natural del habla y las tcnicas automatizadas de segmentacin de formas de onda
resultan en defectos audibles, que conllevan una prdida de naturalidad.
Hay tres tipos bsicos de sntesis concatenativa.

3.3.1.1. Sntesis por seleccin de unidades


La sntesis por seleccin de unidades utiliza una base de datos de voz grabada (ms de una
hora de habla grabada). Durante la creacin de la base de datos, el habla se segmenta en algunas o

23

Captulo 3 Sntesis de voz


todas de las siguientes unidades: fonemas, slabas, palabras, frases y oraciones. Tpicamente, la
divisin en segmentos se realiza usando un reconocedor de voz modificado para forzar su
alineamiento con un texto conocido. Despus se corrige manualmente, usando representaciones
como la forma de onda y el espectrograma. Se crea un ndice de las unidades en la base de datos
basada en parmetros acsticos de la segmentacin como la frecuencia fundamental, el pitch, la
duracin, la posicin en la slaba y los fonemas vecinos. En tiempo de ejecucin, el objetivo
deseado se crea determinando la mejor cadena de candidatos de la base de datos (seleccin de
unidades). Este proceso se logra tpicamente usando un rbol de decisin especialmente ponderado.
La seleccin de unidades da la mxima naturalidad debido al hecho de que no aplica mucho
procesado digital de la seal al habla grabada, lo que a menudo hace que el sonido grabado suene
menos natural, aunque algunos sistemas usan un poco de procesado de seal en la concatenacin
para suavizar las formas de onda. De hecho, la salida de la mejor seleccin de unidades es a
menudo indistinguible de la voz humana real, especialmente en contextos en los que el sistema ha
sido adaptado. Por ejemplo, un sistema de sntesis de voz para dar informaciones de vuelos puede
ganar en naturalidad si la base de datos fue construida a base grabaciones de informaciones de
vuelos, pues ser ms probable que aparezcan unidades apropiadas e incluso cadenas enteras en la
base de datos. Sin embargo, la mxima naturalidad a menudo requiere que la base de datos sea muy
amplia, llegando en algunos sistemas a los gigabytes de datos grabados.

3.3.1.2. Sntesis de difonos


La sntesis de difonos usa una base de datos mnima conteniendo todos los difonos que
pueden aparecer en un lenguaje dado. El nmero de difonos depende de la fonotctica del lenguaje:
el espaol tiene unos 800 difonos, el alemn unos 2500. En la sntesis de difonos, la base de datos
contiene un slo ejemplo de cada difono. En tiempo de ejecucin, la prosodia de una oracin se
sobreimpone a estas unidades mnimas mediante procesado digital de la seal, como codificacin
lineal predictiva, PSOLA o MBROLA.
La calidad del habla resultante es generalmente peor que la obtenida mediante seleccin de
unidades pero ms natural que la obtenida mediante sintetizacin de formantes. La sntesis difonos
adolece de los defectos de la sntesis concatenativa y suena robtica como la sntesis de formantes,
y tiene pocas ventajas respecto a estas tcnicas aparte del pequeo tamao de la base de datos, as
que su uso en aplicaciones comerciales experimenta un declive, aunque contina usndose en
investigacin porque hay unas cuantas implementaciones libres.

3.3.1.3. Sntesis especfica para un dominio


La sntesis especfica para un dominio concatena palabras y frases grabadas para crear
salidas completas. Se usa en aplicaciones donde la variedad de textos que el sistema puede producir
est limitada a un particular dominio, como anuncios de salidas de trenes o informacin
metereolgica.
Esta tecnologa es muy sencilla de implementar, y se ha usado comercialmente durante
largo tiempo: es la tecnologa usada por aparatos como relojes y calculadoras parlantes. La
naturalidad de estos sistemas puede ser muy alta porque la variedad de oraciones est limitada y
corresponde a la entonacin y la prosodia de las grabaciones originales. Sin embargo, al estar

24

Captulo 3 Sntesis de voz


limitados a unas ciertas frases y palabras de la base de datos, no son de propsito general y slo
pueden sintetizar la combinacin de palabras y frases para los que fueron diseados.

3.3.2. Sntesis de formantes


La sntesis de formantes no usa muestras de habla humana en tiempo de ejecucin. En
lugar de eso, la salida se crea usando un modelo acstico. Parmetros como la frecuencia
fundamental y los niveles de ruido se varan durante el tiempo para crear una forma de onda o
habla artificial. Este mtodo se conoce tambin como sntesis basada en reglas pero algunos
aducen que muchos sistemas concatenativos usan componentes basados en reglas para algunas
partes de sus sistemas, como el front-end, as que el trmino no es suficientemente especfico.
Muchos sistemas basados en sntesis de formantes generan habla robtica y de apariencia
artificial, y la salida nunca se podra confundir con la voz humana. Sin embargo, la naturalidad
mxima no es siempre la meta de un sintetizador de voz, y estos sistemas tienen algunas ventajas
sobre los sistemas concatenativos.
La sntesis de formantes puede ser muy inteligible, incluso a altas velocidades, evitando
los defectos acsticos que pueden aparecer con frecuencia en los sistemas concatenativos. La
sntesis de voz de alta velocidad es a menudo usada por los discapacitados visuales para utilizar
computadores con fluidez. Por otra parte, los sintetizadores de formantes son a menudo programas
ms pequeos que los sistemas concatenativos porque no necesitan una base de datos de muestras
de voz grabada. De esta forma, pueden usarse en sistemas empotrados, donde la memoria y la
capacidad de proceso son a menudo exiguas. Por ltimo, dado que los sistemas basados en
formantes tienen un control total sobre todos los aspectos del habla producida, pueden incorporar
una amplia variedad de tipos de entonaciones, que no slo comprendan preguntas y enunciaciones.

3.3.3 Tecnologas de sntesis: Sntesis por formantes versus Sntesis por


concatenacin de unidades
En la figura 1: aparecen los distintos mdulos de los que consta un conversor texto a voz.
Como vemos, un conversor texto habla consta bsicamente de dos mdulos, el mdulo de anlisis
de texto y el mdulo de sntesis de habla. En el mdulo de anlisis, se realizan las siguientes
operaciones: Normalizacin de texto y de abreviaturas, anlisis sintctico, anlisis semntico,
silabizacin, acentuacin y conversor grafema-alfono (la unidad ms elemental del sonido).
Una vez analizado el texto, se dispone de un conjunto de parmetros textuales que son
necesarios en el proceso de sntesis, por ejemplo, se traduce Sr. por seor y se indica que la
segunda slaba debe ir acentuada, se eliminan las letras que no se pronuncian (ej. la h) y se
marcan los lugares posibles de cambios prosdicos en el habla, (ej. detrs de un punto o detrs del
sujeto de la oracin).
El mdulo de sntesis de voz consta fundamentalmente de dos partes, la sntesis prosdica
y la sntesis segmental. En cuanto a la sntesis prosdica, sta se encarga de generar los parmetros
de duracin y entonacin de los sonidos conforme a la sintaxis de la frase y al estilo del habla y la

25

Captulo 3 Sntesis de voz


emocin del conversor. En cuanto a la sntesis segmental existen dos tipos de tecnologas, la
llamada sntesis por formantes y la llamada sntesis por concatenacin.

Fig. 1 - Diagrama de mdulos de un conversor texto-habla

Histricamente, los primeros sintetizadores utilizaban el mtodo de sntesis por formantes


(adems de utilizar mdulos de las otras etapas muy rudimentarios).
Un sintetizador por formantes es capaz de producir los diferentes alfonos del habla a
partir de una serie de parmetros que controlan el sintetizador. El sintetizador no es ms que un
conjunto de filtros, unos en serie y otros en paralelo, excitados por una fuente de pulsos o una
fuente de ruido. Los diferentes filtros simulan cada uno la posicin de uno de los formantes del
alfono. El formante es una prominencia en el espectro del sonido. El tono se genera a travs del
perodo entre el tren de pulsos de la excitacin. Existen modelos ms sofisticados en los que la
excitacin no es un tren de pulsos sino una onda ms compleja que es capaz de simular la fuente
glotal de diferentes locutores y de diferentes estados emocionales.
El mtodo de sntesis por concatenacin utiliza una base de datos de alfonos de un
locutor previamente grabada y el proceso de sntesis consiste en el peor de los casos en la
concatenacin simple y llana de estos alfonos.
Dependiendo del mtodo de concatenacin y de la magnitud de la base de datos, puede ser
necesaria una bsqueda costosa para seleccionar el mejor alfono de la base de datos que cumple

26

Captulo 3 Sntesis de voz


las condiciones de sntesis, tanto en su aspecto
alfono suena diferente segn el contexto de los
deben pronunciarse). En el caso de que no se
deseadas, es necesario modificar adecuadamente
objeto de generar una voz lo ms natural posible.

prosdico como en su aspecto contextual (un


alfonos anteriores y posteriores al mismo que
disponga de un alfono de las caractersticas
(sintetizar) el ms cercano que se disponga al

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).

3.3.4 Desafos de la sntesis de voz


3.3.4.1 Desafos de la normalizacin de texto
El proceso de normalizar texto es pocas veces simple. Los textos estn llenos de
homgrafos, nmeros y abreviaturas que tienen que ser transformados en una representacin
fontica.
Por supuesto, en lenguas donde la correspondencia entre el texto escrito y su equivalente
fontico es poca (ingls) o ninguna (mandarn), la creacin de estos sistemas se complica.
Muchos sistemas de texto a voz no generan representaciones semnticas de los textos de
entradas, pues los sistemas para hacerlo no son fiables o computacionalmente efectivos. Como
resultado, se usan varias tcnicas heursticas para estimar la manera correcta de desambiguar
homgrafos, como buscar palabras vecinas y usar estadsticas sobre la frecuencia de aparicin de
las palabras.
Decidir como convertir nmeros en palabras es otro problema que tienen que solucionar
los sintetizadores de voz. Es un desafo bastante simple programar un sistema que convierta
nmeros en palabras, como por ejemplo transformar 1325 en "mil trescientos veinticinco". Sin
embargo, los nmeros aparecen en diferentes contextos, y 1325 puede ser un ordinal, "uno tres dos
cinco" si son los ltimos dgitos de un DNI o "trece veinticinco" si es un nmero de telfono. A
menudo un sistema de sntesis de voz puede inferir como expandir un nmero en base a las

27

Captulo 3 Sntesis de voz


palabras o nmeros vecinos y la puntuacin, y algunos sistemas proporcionan un sistema de
especificar el tipo de contexto si es ambiguo.
De la misma forma, abreviaturas como "etc." se pueden transformar fcilmente en
"etctera", pero a menudo las abreviaturas pueden ser ambiguas. Por ejemplo la abreviatura "am"
puede ser "ante meridiam" en el ejemplo: "El vuelo aterrizar a las 11 am" o puede ser "modulacin
de amplitud" o simplemente "a eme" en el ejemplo "Nos puede encontrar en la sintona 1425 am".
Los sistemas con front-end inteligentes pueden hacer estimaciones adecuadas acerca de como tratar
abreviaturas ambiguas, mientras que otros pueden hacer lo mismo en todos los casos, dando
resultados en ocasiones cmicos.

3.3.4.2 Desafos de los sistemas Texto a fonema


Los sintetizadores de voz usan dos aproximaciones bsicas al problema de determinar la
pronunciacin de una palabra basndose en su pronunciacin, un proceso que a menudo recibe el
nombre de conversin texto a fonema o grafema a fonema, dado que fonema es el trmino usado
por los lingistas para describir sonidos distintivos en una lengua.
La aproximacin ms simple a este problema es la basada en diccionario, donde se
almacena en el programa un gran diccionario que contiene todas las palabras de la lengua y su
correcta pronunciacin. Determinar la pronunciacin correcta de cada palabra consiste en buscar
cada palabra en el diccionario y reemplazar el texto con la pronunciacin especificada en el
diccionario.
La otra aproximacin para convertir texto en fonemas es la aproximacin basada en reglas,
donde dichas reglas para la pronunciacin de las palabras se aplican a palabras para extraer sus
pronunciaciones basadas en su forma escrita.
Cada aproximacin tiene ventajas y desventajas. La tcnica basada en diccionarios tiene
como ventajas ser rpida y precisa, pero falla completamente si una palabra dada no aparece en el
diccionario, y a medida que crece el diccionario crecen los requerimientos de memoria del sistema
de sntesis. Por otra parte, la tcnica basada en reglas funciona con cualquier entrada, pero la
complejidad de las reglas crece sustancialmente a medida que se van teniendo en cuenta ortografas
y pronunciaciones irregulares. Como resultado, casi cualquier sintetizador de voz usa una
combinacin de las dos tcnicas.
Algunos lenguajes como el espaol tiene un sistema de escritura muy regular y la
prediccin de la pronunciacin de palabras basada en deletreos es prcticamente correcta. Los
sistemas de sntesis de voz para este tipo de lenguajes generalmente usan un enfoque basado en
reglas como el enfoque central para la conversin texto-fonema y auxilindose de diccionarios
pequeos para algunas palabras de origen extranjero cuya pronunciacin no se deduce de la
escritura. En lenguajes como el ingls, dado que se trata de sistemas muy irregulares en su
escritura, el enfoque se basa principalmente en diccionarios y solo para palabras no usuales se basa
en reglas.

28

Captulo 4 Estudio de los sintetizadores de voz disponibles

Captulo 4

Estudio de los sintetizadores de voz


disponibles
Primero se nombran los sintetizadores libres y los comerciales, para posteriormente hacer
una breve descripcin de ellos. Obviamente no estn todos los existentes en el mercado, ya que su
nmero es altamente elevado. Simplemente se enumeran algunos de los ms usados y comunes.

4.1 Sintetizadores de voz disponibles gratuitamente

Microsoft Speech Application Programming Interface (Sapi 4.0) soporta los


motores TTS3000 de Lernout y Hauspie para espaol, ingls americano, ingls britnico,
holands, francs, alemn, italiano, japons, coreano, ruso y portugus de brasil.
Festival es un sintetizador de voz disponible libremente basado en concatenacin de
difonos y seleccin de unidades. Est disponible para espaol, ingls britnico y
americano y gals.
Flite (Festival-lite) es una alternativa ms pequea de Festival diseado para sistemas
empotrados y servidores de gran volumen de trabajo.
FreeTTS escrito enteramente en Java, basado en Flite.
MBROLA es un sistema de concatenacin de difonos para unas 25 lenguas (slo nackend).
Gnuspeech es un paquete extensible de texto a voz basado en sntesis por reglas
articulatorias en tiempo real.

29

Captulo 4 Estudio de los sintetizadores de voz disponibles

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.

Direccin Web: http://www.cstr.ed.ac.uk/projects/festival/

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

Captulo 4 Estudio de los sintetizadores de voz disponibles


Flite es un pequeo y rpido motor de sntesis desarrollado por la Universidad de Carnegie
Mellon y dirigido principalmente a su uso en dispositivos mviles. Esta diseado como una
alternativa al motor de sntesis Festival usando las mismas voces construidas con FestVox.
Caractersticas de Flite:

Escrito completamente en C (no C++ o Scheme) lo que favorece su portabilidad,


tamao y velocidad
Reimplantacin de partes del ncleo de la arquitectura Festival , lo que mantiene
la compatibilidad entre las voces construidas para cada sistema
Soporte para utilizar las voces creadas en FestVox.

Direccin Web: http://www.speech.cs.cmu.edu/flite/

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:

Motor de sntesis de voz


Soporte para distintas voces
o 8khz voz masculina, ingles americano
o 16khz voz masculina, ingles americano
Posibilidad de importar voces desde FestVox (solo ingles americano)
Soporta las voces MBROLA, pero hay que descargarlas por separado:
o 16khz voz femenina, ingles americano
o 16khz 2 voces masculinas, ingles americano

Direccin Web: http://freetts.sourceforge.net/docs/index.php#what_is_freetts

31

Captulo 4 Estudio de los sintetizadores de voz disponibles


4.1.4

MBROLA

El objetivo del proyecto de MBROLA, iniciado por el Laboratorio TCTS de la Facultad


Politcnica de Mons (Blgica), es obtener un conjunto de sintetizadores de voz para tantos idiomas
como sea posible, y proporcionarlos libremente para aplicaciones no comerciales. El objetivo
ltimo es el de incentivar la investigacin acadmica sobre la sntesis de voz.
MBROLA es un sintetizador del habla humana basado en la concatenacin de difonos.
Toma como entrada una lista de fonemas junto con la informacin prosdica (duracin de los
fonemas y una descripcin del tono de los mismos) y produce una salida de audio a 16 bits. Por
tanto no es un Conversor texto-voz (Text-To-Speech o TTS) dado que no acepta texto como
entrada.
La licencia es algo curiosa, ya que es libre para uso no comercial y no militar.
En la pgina del Proyecto MBROLA hay ejemplos que puedes escuchar en varios idiomas.
Hay gran cantidad de bases de datos de difonos para muchos idiomas en la seccin de descargas.
Las bases de datos de difonos adaptadas al formato MBROLA son necesarias para la
ejecucin del sintetizador. Las voces francesas estn disponibles por los autores de MBROLA, y
desde el proyecto de MBROLA se incita a otros laboratorios de investigacin o empresas para
compartir sus bases de datos de difonos. Los trminos y condiciones de esta poltica pueden ser
resumidos as:
Despus del acuerdo oficial entre el autor de MBROLA y el propietario de la
base de datos de difonos, la base de datos es procesada por el autor y adaptada al
formato de MBROLA gratuitamente.
Direccin Web: http://tcts.fpms.ac.be/synthesis/mbrola.html

4.1.5

Microsoft Speech SDK 5.1

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

Captulo 4 Estudio de los sintetizadores de voz disponibles

Microsoft Internet Explorer 5.0 o superior.


Microsoft Visual C++ 6.0
Microsoft Visual Studio.NET necesario para compilar ejemplos escritos en C#

Direccin Web: http://www.microsft.com

4.1.6

Otros

Adems de estos sintetizadores, existen aplicaciones que no son propiamente


sintetizadores de voz, pero permiten leer un texto.
Una de estas aplicaciones es Adobe Reader.
La funcin Leer en voz alta utiliza las voces instaladas en el sistema. Nos permite elegir
entre las voces que proporciona el sistema o que se instalan con los motores de conversin a voz
(como SAPI 4 y SAPI 5 en Windows). Sin embargo, la funcin Leer en voz alta puede leer el texto
de un archivo PDF a viva voz, pero no es un lector de pantalla, por lo que puede que algunos
sistemas no sean compatibles con esta funcin.

4.2 Sintetizadores de voz disponibles comercialmente

SodelsCot lee el texto de cualquier programa Windows y distribuye voces de Loquendo


Loquendo TTS para espaol (varios acentos), cataln, holands, ingls, portugus,
italiano, francs, alemn, griego, sueco y chino. Hay disponibles demostraciones
interactivas va web.
Cepstral para espaol, ingls, italiano, alemn y francs.
Voces naturales AT&T para espaol, ingls, alemn y francs.
NeoSpeech VoiceText tiene voces en ingls americano, coreano, japons y chino.
Acapela Group con muchos sintetizadores de voz que soportan muchas lenguas
DSC Text To Speech Software Aplicaciones y demostraciones de texto a voz
Fonix Speech Ofrece muchos motores de texto a voz para sistemas empotrados y
servidores
RealSpeak por Nuance para espaol, ingls, alemn y griego entre otros muchos.
IBM Research TTS (ejemplos para ingls americano, rabe, chino, francs y alemn)
Sakrament Text-to-Speech Engine para ruso y algunas otras lenguas.
SVOX Especialista suizo en soluciones empotradas de voz para 18 lenguas.
Verbio TTS - Applied Technologies on Language and Speech (ATLAS) para francs,
espaol e ingls.
ASY es un sistema de sntesis de voz articulatoria desarrollado en los Laboratorios
Haskins
VoiceText es un sistema de sntesis de voz concatenativo realizado por Voiceware,
Corea.
Wizzard Software ofrece sistemas texto a voz.

33

Captulo 4 Estudio de los sintetizadores de voz disponibles


4.2.1

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

Loquendo Text-to-Speech (TTS)


Loquendo - Vocal Technology and Services
http://www.loquendo.com/es/
Windows NT, 2000, 2003 Server, XP, 98, ME; Linux
Dependiendo del idioma posee distintas voces (masculino femenino)
Multilinge
El software Loquendo TTS trae voces verdaderamente naturales que pueden
leer cualquier dato y comando de las aplicaciones vocales basadas en
servidor, multimedia, embebidas y multimodales
Usa un habla sinttica y expresiva: voces de alta calidad, casi naturales, con
gran precisin en la pronunciacin y la entonacin.
Como curiosidad, no solo tienen idioma espaol, sino que tiene espaolmexicano, espaol-argentino, cada uno con sus distintos acentos.
Requisitas mnimos:
- Loquendo TTS Multimedia:
10 MB RAM para el motor, 50 MB por voz, 3 MB por canal
- Loquendo TTS Multimedia Compacto
10 MB RAM para el motor, 20 MB por voz

34

Captulo 4 Estudio de los sintetizadores de voz disponibles


4.2.3

Cepstral

Nombre
Empresa
Direccin Web
Plataforma
Voces
Idiomas voces
Caractersticas

Observaciones

4.2.4

AT&T Natural Voices

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

AT&T Natural Voices TTS


AT&T Business EMEA (Europa, Oriente Medio, Africa)
www.naturalvoices.att.com
Windows 98,Me, NT 4.0 SP6, 2000 SP2, XP
RedHat Linux 6.1, 6.2, 7.1
Dependiendo del idioma posee distintas voces (masculino femenino)
Multilinge
Los motores de AT&T Natural Voices TTS proporcionan servicios de sntesis
en mltiples lenguajes.
La aplicacin necesita el motor TTS de Microsoft SAPI 4, SAPI 5.1, o un
conjunto de C++ APIs incluidos en la aplicaron. Estn incluidas voces de alta
calidad femenina y masculina en 8 KHz y 16 KHz.
Requisitos mnimos:
RAM: 128 Mb (mnimo)
CPU: 300 MHz III
Disco duro: 500 Mb

35

Captulo 4 Estudio de los sintetizadores de voz disponibles


4.2.5

Acapela Group

La empresa Acapela Group esta dedicada enteramente a desarrollar soluciones de voz,


tanto de sntesis de voz (TTS) como de reconocimiento de voz (ASR).
Posee numerosas aplicaciones, para distintas plataformas:
- PC (Key2Speak, Agent reader,),
- PocketPc (Digit pocket, Universal Translator for Pocket PC,),
- Mac y Linux.

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

Captulo 4 Estudio de los sintetizadores de voz disponibles


4.2.7

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

Dependiendo del idioma posee distintas voces (masculino femenino)


Multilinge
Reproduce el texto a una alta calidad.
Est diseado para aplicaciones mviles (como navegadores de coche o
lectores de pantalla 8-20 Mb) y para aplicaciones de escritorio (100 Mb).
Requisitos mnimos Windows:
- Pentium 266
- 64 Mb RAM
- Tarjeta de sonido
Requisitos mnimos WinCE:
- Microsoft Embedded Visual C++ 3.0 o superior
- Pocket PC 2003 ( WinCE 3.0 o superior)

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

Captulo 4 Estudio de los sintetizadores de voz disponibles

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.

5.2 Definicin y clasificacin


Se llama slaba a cada una de las divisiones fonticas en las que se divide una palabra, las
cuales se pronuncian ms o menos al mismo tiempo, es decir, se emplea una sola emisin de voz.
Es la tercera menor divisin de cualquier ejemplo fontico. Tradicionalmente se define como
"golpe de voz" en una palabra.
La divisin silbica de una palabra se suele anotar con guiones ( - ) y dependiendo del nmero
de slabas una palabra puede ser:

Monoslaba: una sola slaba.


Bislaba: dos slabas.
Trislaba: tres slabas.
Polislaba: ms de tres slabas.

Ej.: sol, s, ms, dos, sed...


Ej.: calor, mano, rbol...
Ej.: repetir, silaba, recoger...
Ej.: azulado, diccionario, informtica...

La divisin silbica tiene especial importancia en la escritura ya que en espaol s se permite


dividir las slabas de una palabra cuando sta no cabe en el rengln en uso.
Por ltimo, las slabas pueden recibir o no ms fuerza segn hagamos hincapi en su
pronunciacin. Encontramos, pues, slabas tonas (normales) o tnicas (pronunciadas ligeramente
ms fuerte que las anteriores). En espaol, casi todas las palabras tienen una nica slaba tnica. A
modo de ejemplo las palabras: resultante, esdrjula, avizor, ngel (marcada en negrita cursiva la
slaba tnica y en cursiva las tonas). Muy raramente tienen dos (palabras acabadas en -mente,
como automticamente).

5.3 Segmentacin de las palabras en silabas


En el idioma espaol existen reglas que determinan la separacin de las slabas de una
palabra. Estas reglas son listadas a continuacin mostrando seguida de la regla ejemplos de la regla
misma, as como excepciones.
Para expresar las reglas con claridad se utiliza la notacin mostrada en la siguiente tabla:
Smbolo
+
()

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.

Fig. 5.1 Grupo de consonantes inseparables.

REGLA 3.- Cuando una consonante se encuentra entre dos vocales, se une a la segunda vocal.
Ejemplo:

Fig. 5.2 Cuadro ejemplo regla 3


REGLA 4.- Cuando hay dos consonantes entre dos vocales, cada vocal se une a una consonante.
Excepcin: Esto no ocurre en el grupo de consonantes inseparables (regla 2).

Fig. 5.3 Cuadro ejemplo regla 4


REGLA 5.- Si son tres las consonantes colocadas entre dos vocales, las dos primeras consonantes
se asociarn con la primera vocal y la tercera consonante con la segunda vocal.

41

Capitulo 5 - La slaba
Excepcin.- Esta regla no se cumple cuando la segunda y tercera consonante forman parte del
grupo de consonantes inseparables.

Fig. 5.4 Cuadro ejemplo regla 5


REGLA 6.- Las palabras que contienen una h precedida o seguida de otra consonante, se dividen
separando ambas letras.
Ejemplo.

Fig. 5.5 Cuadro ejemplo regla 6


REGLA 7.- El diptongo es la unin inseparable de dos vocales. Se pueden presentar tres tipos de
diptongos posibles:
(Una vocal abierta + una vocal cerrada) |
(Una vocal cerrada + una vocal abierta) |
(Una vocal cerrada + una vocal cerrada)

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

Fig. 5.6 Cuadro ejemplo regla 7


La unin de dos vocales abiertas o semiabiertas no forma diptongo, es decir, deben separarse en la
segmentacin silbica. Pueden quedar solas o unidas a una consonante. Ejemplo:

Fig. 5.7 Cuadro 2 ejemplo regla 7

42

Capitulo 5 - La slaba
REGLA 8.- La h entre dos vocales, no destruye un diptongo. Ejemplo:

Fig. 5.8 Cuadro ejemplo regla 8


REGLA 9.- La acentuacin sobre la vocal cerrada de un diptongo provoca su destruccin.

Fig. 5.9 Cuadro ejemplo regla 9


REGLA 10.- La unin de tres vocales forma un triptongo. La nica disposicin posible para la
formacin de triptongos es la que indica el esquema:
Vocal cerrada + (vocal abierta | vocal semiabierta) + vocal cerrada
Slo las siguientes combinaciones de vocales, forman un triptongo: iai, iei, uai, uei, uau, iau, uay,
uey.

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

5.5 Mtodo para silabear


De acuerdo a las reglas mencionadas anteriormente se puede deducir una estructura de las
slabas como la que sigue:

Vocal (1 o 2 vocales) (V)


Vocal (1o 2 vocales) + Consonante (1 consonante) (VC)
Consonante (1 o 2 consonantes) + Vocal (1,2 o 3 vocales) (CV)
Consonante (1 o 2 consonantes) + Vocal (1,2 o 3 vocales) + Consonante (1 o 2
consonantes) (CVC)

De acuerdo a lo mencionado anteriormente, se concluye que todas las posibles


combinaciones de slabas en el idioma espaol, caen dentro de los siguientes casos.

Caso 1.- Inicio de slaba: Vocal


Caso 2.- Inicio de slaba: Consonante + Vocal
Caso 3.- Inicio de slaba: Consonante + Consonante

CASO 1: INICIO DE SLABA: VOCAL


En la tabla se muestran las posibles combinaciones de este caso, un ejemplo de cada
combinacin y el nmero de regla aplicada para la separacin en slabas de esa palabra.
Combinacin Ejemplo
V
A
VC
r + bol
VV
Au + tomvil
VVC
Aun + que

Nmero de regla aplicada


1
4
7
7, 4

Fig. 5.10 Cuadro combinaciones inicio de silaba: vocal


CASO 2: INICIO DE SLABA: CONSONANTE + VOCAL
De igual forma que en el caso anterior, se describe este caso con sus respectivos ejemplos.
Combinacin Ejemplo
C
Y
CV
La
CVC
Las
CVCC
Cons + tante
CVV
Jau + la
CVVC
Cuan + do
CVVV
Cuau + tla
CVVVC
Cuauh + temoc

Nmero de regla aplicada


1
1
1
5
7
4
10
10, 6

Fig. 5.11 Cuadro combinaciones inicio de silaba: consonante + vocal

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

Nmero de regla aplicada


2
2,4
2, 5
2,7
2,7,5

Fig. 5.12 Cuadro combinaciones inicio de silaba: consonante + consonante

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

palabra = palabra - silaba


Quitamos la silaba de la palabra
y continuamos el algoritmo

L1 primera letra de palabra


L2 segunda letra de 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

CASO 1: Silaba comienza por V

no
si
L2 es V

CASO 2: Silaba comienza por CV

no
CASO 3: SIlaba comienza por CCV

Fig. 5.13 Algoritmo para realiza la divisin silbica

46

Parte III

Desarrollo del
Componente

Capitulo 6 Anlisis del componente

Captulo 6

Anlisis del componente


6.1. Introduccin
En este apartado se detallarn las acciones que deber llevar a cabo el componente. Para
ello se debe realizar un anlisis de requisitos (proceso del estudio de las necesidades de los usuarios
para llegar a una definicin de la funcionalidad que debe ofrecer el componente, de las
restricciones del mismo, etc.).
Una vez terminada esta fase, se debe tener el conocimiento sobre las funcionalidades que
debe ofrecer el componente a desarrollar.

6.2. Descripcin del problema


Como se indica en la introduccin, se necesita saber los requisitos que queremos que
tenga el componente. Estos requisitos son:

Desde el punto de vista del programador:


- Fcil comprensin de las clases y mtodos que lo componen.
- Facilidad de uso.

49

Capitulo 6 Anlisis del componente


- Posibilidad de modificacin de alguno de sus componentes.
- Posibilidad de cambiar las voces, modificando las ya existentes o aadiendo otras
nuevas

Desde el punto de vista de la aplicacin en la cual se va a usar:


- Poseer de las funciones bsicas que puede tener un reproductor, como puede ser
iniciar y detener la reproduccin.
- Poseer tambin otras funciones no tan imprescindibles, pero si necesarias, como el
pausar y reanudar la reproduccin o el control del volumen por software.
- Ser capaz de cambiar las caractersticas de reproduccin, como son el volumen y la
voz de reproduccin.
- Ya que el componente est orientado a aplicaciones para personas con trastornos del
habla, el tener un funcin que deletree un texto, favorece la comunicacin de estas
personas cuando la palabra a reproducir no pertenezca al idioma espaol y sea
imposible su reproduccin.

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.

6.3. Identificacin de los actores


Los actores son personas o entidades externas a la aplicacin que interactan con ella,
realizando un intercambio de informacin.
En este caso, quien va a utilizar la aplicacin, en este caso el componente, ser un sistema
externo.

ACT-0001

Sistema externo

Descripcin

Este actor es la aplicacin que utilizar el componente

Fig. 6.1 Descripcin del actor de los casos de uso

50

Capitulo 6 Anlisis del componente

6.4. Diagrama de los casos de uso

Fig. 6.2 Diagrama de los casos de uso

6.5. Presentacin de los casos de uso


Un caso de uso describe una funcionalidad mediante la interaccin entre un actor y un
sistema en forma de secuencia de acciones.

51

Capitulo 6 Anlisis del componente


El comportamiento de un caso de uso se puede especificar describiendo un flujo de
eventos de forma textual, lo suficientemente claro para que una persona ajena al sistema lo entienda
fcilmente.

6.5.1 Preparar reproductor para reproducir texto

UC-001

Reproducir texto

Descripcin

El sistema prepara el texto para su reproduccin

Secuencia
normal

Paso

Accin

El usuario solicita reproducir un texto con


volumen y voz

El sistema prepara el texto y lo deja listo


para su reproduccin

Fig. 6. 3 Descripcin del caso de uso reproducir texto

Fig. 6. 4 Diagrama del caso de uso reproducir texto

52

Capitulo 6 Anlisis del componente

6.5.2 Iniciar reproduccin

UC-002

Iniciar reproduccin

Descripcin

El sistema inicia la reproduccin del texto

Precondicin

El componente tiene que estar preparado (ver UC001) y el texto no es vaco.

Secuencia
Normal

Paso

Excepciones

Accin

El usuario solicita iniciar la reproduccin

El sistema inicia la reproduccin

Si no hay texto escrito, el sistema no


reproduce nada

Fig. 6. 5 Descripcin del caso de uso iniciar reproduccin

Fig. 6. 6 Diagrama del caso de uso iniciar reproduccin

53

Capitulo 6 Anlisis del componente

6.5.3 Detener reproduccin

UC-003

Detener reproduccin

Descripcin

El sistema detiene la reproduccin en curso

Precondicin

El componente tiene que estar preparado (ver UC001) y hay texto reproducindose

Secuencia
normal

Paso

Excepciones

Accin

El usuario solicita detener la reproduccin

El sistema detiene la reproduccin en curso

Si no hay texto reproducindose, el sistema


no hace nada.

Fig. 6. 7 Descripcin del caso de uso detener reproduccin

Fig. 6. 8 Diagrama del caso de uso detener reproduccin

54

Capitulo 6 Anlisis del componente

6.5.4 Pausar reproduccin

UC-004

Pausar reproduccin

Descripcin

El sistema pausa la reproduccin en curso

Precondicin

El componente tiene que estar preparado (ver UC001) y hay texto reproducindose

Secuencia
normal

Paso

Excepciones

Accin

El usuario solicita pausar la reproduccin

El sistema pausa la reproduccin en curso

Si no hay texto reproducindose, el sistema


no hace nada.

Fig. 6. 9 Descripcin del caso de uso pausar reproduccin

Fig. 6. 10 Diagrama del caso de uso pausar reproduccin

55

Capitulo 6 Anlisis del componente

6.5.5 Reanudar reproduccin

UC-005

Reanudar reproduccin

Descripcin

El sistema reanuda la reproduccin un texto pausado

Precondicin

El componente tiene que estar preparado (ver UC001) y el texto no es vaco

Secuencia
normal

Paso

Excepciones

Accin

El usuario solicita reanudar la reproduccin


del texto antes pausado

El sistema reanuda la reproduccin del texto

Si no hay texto escrito, el sistema no


reproduce nada

Fig. 6. 11 Descripcin del caso de uso reanudar reproduccin

Fig. 6. 12 Diagrama del caso de uso reanudar reproduccin

56

Capitulo 6 Anlisis del componente

6.5.6 Deletrear texto

UC-006

Deletrear texto

Descripcin

El sistema prepara un texto transformndolo en su


equivalente deletreado

Precondicin

El componente tiene que estar preparado (ver UC001)

Secuencia
normal

Paso

Accin

El usuario solicita deletrear texto

El sistema devuelve al sistema externo el


texto deletreado (ver Capitulo 8, apartado
uso del deletreo)

Fig. 6. 13 Descripcin del caso de uso deletrear texto

Fig. 6. 14 Diagrama del caso de uso deletrear texto

57

Capitulo 6 Anlisis del componente

6.5.7 Modificar volumen

UC-007

Modificar volumen

Descripcin

El sistema permite modificar el volumen de la


reproduccin

Precondicin

El componente tiene que estar preparado (ver UC001)

Secuencia
normal

Paso

Excepciones

Accin

El usuario solicita modificar el volumen de


la reproduccin (subir o bajar el volumen)

El sistema actualiza el volumen de


reproduccin (subir o bajar el volumen)

Si subimos el volumen y ya est al mximo,


el sistema no hace nada. Si bajamos el
volumen y ya est al mnimo, el sistema no
hace nada.

Fig. 6. 15 Descripcin del caso de uso modificar volumen

58

Capitulo 6 Anlisis del componente


Fig. 6. 16 Diagrama del caso de uso modificar volumen

6.6. Estructura esttica del sistema


6.6.1 Diagrama inicial de clases

Fig. 6. 17 Diagrama inicial de clases

6.6.2 Descripcin de las clases

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

Capitulo 6 Anlisis del componente

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 Diseo del componente

Captulo 7

Diseo del componente


7.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 haban sido descritos
anteriormente. 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 de escoge un punto de partida
El diseo del componente sonido se ha realizado teniendo en cuenta qu es lo que se va a
reproducir. En el capitulo 5 de esta memoria se explica que la unidad de reproduccin es la slaba,
y cmo se realiza la divisin silbica de una palabra.

61

Captulo 7 Diseo del componente

7.2. Especificacin de los casos de uso y diagramas de secuencia


7.2.1 Preparar reproductor
UC-001

Reproducir texto

Descripcin

El sistema externo solicita al componente reproducir un texto

Precondicin

El contenido del texto a reproducir no es vaco

Secuencia
normal

Paso

Accin

El sistema externo enva al componente el volumen inicial


de reproduccin

El sistema externo enva al componente el tipo de voz de


reproduccin

El sistema externo enva al componente el texto que quiere


reproducir.

El componente queda a la espera de lo que decida hacer


ahora el sistema externo con el reproductor

Postcondicin

El componente est listo para reproducir el texto

Importancia

Vital

Fig. 7.1 Descripcin del caso de uso reproducir texto

Fig. 7.2 Diagrama de secuencia del caso de uso reproducir texto

62

Captulo 7 Diseo del componente


7.2.2 Iniciar reproduccin
UC-002

Iniciar reproduccin

Descripcin

El sistema externo inicia la reproduccin del texto

Precondicin

El componente ya est inicializado con el tipo de voz, el volumen


inicial (ver UC-001) y el texto a reproducir que no es vaco

Secuencia
Normal

Paso

Accin

El sistema externo solicita reproducir el texto

El componente trata el texto a reproducir separndolo en


slabas para su reproduccin

El componente reproduce las silabas

Postcondicin

Las silabas que componen el texto se reproducen

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

Fig. 7.4 Diagrama de secuencia del caso de uso iniciar reproduccin

63

Captulo 7 Diseo del componente


7.2.3 Detener reproduccin

UC-003

Detener reproduccin

Descripcin

El sistema externo detiene la reproduccin del texto

Precondicin

El componente tiene que estar preparado (ver UC-001) y se est


reproduciendo un texto (ver UC-003)

Secuencia
Normal

Paso

Accin

El sistema externo solicita la detencin de la reproduccin


en curso

El componente sonido detiene la reproduccin del texto.

Postcondicin

Se detiene la reproduccin, por lo que ya no hay texto


reproducindose

Importancia

Vital

Fig. 7.5 Descripcin del caso de uso detener reproduccin

Fig. 7.6 Diagrama de secuencia del caso de uso detener reproduccin

64

Captulo 7 Diseo del componente


7.2.4 Pausar reproduccin
UC-004

Pausar reproduccin

Descripcin

El sistema externo pausa la reproduccin del texto

Precondicin

El componente tiene que estar preparado (ver UC-001) y se est


reproduciendo un texto (ver UC-003)

Secuencia
Normal

Paso

Accin

El sistema externo solicita la interrupcin de la


reproduccin en curso

El componente sonido pause la reproduccin del texto.

Postcondicin

Se pausa o detiene momentneamente la reproduccin, por lo que


ya no hay texto reproducindose. El componente tiene
conocimiento del texto que queda por reproducir.

Importancia

Importante

Fig. 7.7 Descripcin del caso de uso pausar reproduccin

Fig. 7.8 Diagrama de secuencia del caso de uso pausar reproduccin

65

Captulo 7 Diseo del componente


7.2.5 Reanudar reproduccin
UC-005

Reanudar reproduccin

Descripcin

El sistema externo reanuda la reproduccin del texto

Precondicin

El componente tiene que estar preparado (ver UC-001) y se ha pausado


anteriormente la reproduccin de un texto, por lo que hay texto que falta
por reproducirse. (ver UC-005)

Secuencia
normal

Paso

Accin

El sistema externo solicita continuar la reproduccin del texto

El componente trata el texto que queda por reproducir


separndolo en slabas para continuar su reproduccin

El componente reproduce las silabas.

Postcondicin

Las silabas que componen el texto pausado se reproducen

Excepciones

Paso
2

Importancia

Accin
Si el texto a reproducir es vaco, el componente no hace nada.

Importante

Fig. 7.9 Descripcin del caso de uso reanudar reproduccin

Fig. 7.10 Diagrama de secuencia del caso de uso reanudar reproduccin

66

Captulo 7 Diseo del componente


7.2.6 Deletrear texto
UC-006

Deletrear texto

Descripcin

El sistema externo solicita al componente formatear un texto


deletrendolo

Precondicin

El componente tiene que estar preparado (ver UC-001) y el


contenido del texto a deletrear no es vaco

Secuencia
normal

Paso

Accin

El sistema enva al componente el texto que quiere


formatear

El componente devuelve al sistema el texto formateado

Postcondicin

El texto original est ahora formateado y listo para que el sistema


externo lo utilice

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

Fig. 7.12 Diagrama de secuencia del caso de uso deletrear texto

67

Captulo 7 Diseo del componente


7.2.7 Modificar volumen
UC-007

Modificar volumen

Descripcin

El sistema externo modifica el volumen de reproduccin desde la


pantalla del reproductor

Precondicin

El componente tiene que estar preparado (ver UC-001)

Secuencia
normal

Paso

Accin

El sistema externo solicita subir o bajar el volumen de la


reproduccin.

El componente modifica el volumen de reproduccin.

Postcondicin

El volumen de reproduccin se ha modificado

Excepciones

Paso

Importancia

Accin

Si el volumen de reproduccin es el mximo y el sistema


externo solicita subir volumen, el volumen sigue siendo el
mximo.

Si el volumen de reproduccin es el mnimo y el sistema


externo solicita subir volumen, el volumen sigue siendo el
mnimo.

Importante

Fig. 7.13 Descripcin del caso de uso modificar volumen

Fig. 7.14 Diagrama de secuencia del caso de uso modificar volumen

68

Captulo 7 Diseo del componente

7.3. Diagrama final de clases

Fig. 7.15 Diagrama final de clases

69

Captulo 7 Diseo del componente

7.4. Especificacin de las clases


Clase reproductor
Clase que contiene los valores iniciales del reproductor (texto a reproducir, tipo de voz con
el que se va a reproducir el texto y el volumen inicial de reproduccin)
Contiene adems, los mtodos que dan lugar a las opciones del reproductor (Play, Stop,
Continuar, Pause, subir volumen y bajar volumen) y el mtodo para formatear un texto
deletrendolo (deletreo)
Atributos:
Texto_or: texto que el usuario ha introducido
Linea_pausada: texto que falta por reproducirse tras una pausa
Pausa: variable booleana que indica si se va a pausar una reproduccin de texto
Parar: variable booleana que indica si se va a parar una reproduccin de texto
Cont: variable booleana que indica si se va a continuar la reproduccin de texto
Play_c: variable booleana que indica si se va a iniciar la reproduccin de un texto
pausado anteriormente.
Play_p: variable booleana que indica si se va a iniciar la reproduccin de un texto.
Sonando: variable booleana que indica si el reproductor est reproduciendo un texto o
no.
Vol_act: variable que contiene el volumen de reproduccin
Voz_act: variable que contiene el tipo de voz de reproduccin

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

Captulo 7 Diseo del componente

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

Captulo 7 Diseo del componente


C26: mtodo que indica la forma de la silaba. silaba="CVVV";
C27: mtodo que indica la forma de la silaba. silaba="CVVVC";
Los siguientes mtodos se han indicado en el diagrama de clases como C3:
C31: mtodo que indica la forma de la silaba. silaba="CCV";
C32: mtodo que indica la forma de la silaba. silaba="CCVC";
C33: mtodo que indica la forma de la silaba. silaba="CCVCC";
C34: mtodo que indica la forma de la silaba. silaba="CCVV";
C35: mtodo que indica la forma de la silaba. silaba="CCVVC";
C36: mtodo que indica la forma de la silaba. silaba="CCVVVC";
Es_numero: mtodo que indica si el texto que hay entre dos espacios es un numero o
una palabra
Trata_numero: mtodo que separa un numero en parte entera y en parte decimal para
su transformacin a palabras.
Numeros: mtodo que indica la longitud del numero y as saber como transformarlo
en palabras.
Unidades: mtodo que transforma en palabras las unidades de millar
Dec_1: mtodo que transforma en palabras las decenas del 10 al 19
Dec_2: mtodo que transforma en palabras las decenas del 20 al 29
Decenas: mtodo que transforma en palabras las decenas
Centenas: mtodo que transforma en palabras las centenas
u_millar: mtodo que transforma en palabras las unidades de millar
d_millar: mtodo que transforma en palabras las decenas de millar
c_millar: mtodo que transforma en palabras las centenas de millar
u_millon: mtodo que transforma en palabras las unidades de milln
d_millon: mtodo que transforma en palabras las decenas de milln
c_millon: mtodo que transforma en palabras las centenas de milln

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

Captulo 7 Diseo del componente


FichWAVmasc
Componente que almacena las silabas pregrabadas con voz masculina (en formato WAV)
que son necesarias para la reproduccin de un texto.

73

Captulo 7 Diseo del componente

74

Capitulo 8 Manual de uso del componente

Captulo 8

Manual de uso del componente


8.1. Introduccin
En este capitulo se va a explicar el uso de componentes en Visual Studio y como usar el
componente sonido en futuras aplicaciones.
El componente est compuesto por 3 ficheros:

sonido.dll, que contiene el componente.


FichWAVfem.dll, donde estn almacenadas las slabas pregrabadas en voz femenina,
usada por sonido.dll.
FichWAVmasc.dll, donde estn almacenadas las slabas pregrabadas en voz
masculina, usada por sonido.dll.

El componente tiene las siguientes funcionalidades:

Play
Stop
Pause
Continuar
Subir volumen
Bajar volumen

75

Capitulo 8 Manual de uso del componente


Estas son las funciones principales de un reproductor comn de sonido. Sin embargo,
por ser ste un componente orientado a reproducir un texto, tambin se ha aadido la
funcin:

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.

Uso de componentes en Visual Studio .NET 2003

Para utilizar un componente en una aplicacin que estamos haciendo con Visual Studio, tenemos
que hacer lo siguiente:
1.
2.

Abrir el proyecto en el que queremos agregar el componente


Agregar el componente al proyecto, mediante el men Agregar referencia en el
explorador de soluciones, como muestra la figura Fig. 8.1:

Fig. 8.1 Agregar referencia


3.

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

Capitulo 8 Manual de uso del componente


queremos agregar. Pulsamos el botn aceptar para esta agregar el componente al
proyecto.

Fig. 8.2 Agregar referencia al proyecto


4.

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):

Fig. 8.3 Componente insertado

77

Capitulo 8 Manual de uso del componente


En el cdigo tenemos que indicar que vamos a usar el componente que hemos
agregado en References. Para ello aadimos using sonido en el cdigo de cada clase
en la que se utilice el componente.

8.3.

Uso del componente sonido

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

Inicializacin del componente


Silabas pregrabadas
Las silabas pregrabadas que formaran el texto reproducido, se encuentran en FichWAVfem.dll
o FichWAVmasc.dll. Se hace referencia a ellas con el mtodo:
mireproductor.voz_actual(string vo)
donde vo es fem o masc (en este caso).

78

Capitulo 8 Manual de uso del componente


FichWAV y .dll no hay que tenerlo en cuenta, solo lo que est entre ambos.

Volumen inicial de reproduccin


El volumen inicial de la reproduccin de especfica como:
mireproductor.volumen_actual(int v)
donde v es el volumen que queremos que tenga inicialmente la reproduccin en un escala del 1
al 10. El nmero introducido tiene formato entero.

Funciones del componente


Lo primero que se necesita es introducir el texto a reproducir, que se hace de la siguiente
forma:
mireproductor.linea(texto)
donde texto es el texto que queremos que se reproduzca, y a partir de este texto, se realizan las
funciones del componente.
Para usar las funciones solo tenemos que ejecutar, en general:
mireproductor.nombre_de_la_funcion()
Estas funciones son:
mireproductor.Play()
Funcin que inicia la reproduccin del texto que hemos escrito previamente.
Public void Play()
mireproductor.Stop()
Funcin que detiene la reproduccin del texto que est reproduciendo
Public void Stop()
mireproductor.Pause()
Funcin que pausa la reproduccin del texto en curso, a la espera de que se reanude o se
detenga del todo
Public void Pause()
mireproductor.Continuar()
Funcin que contina o reanuda la reproduccin del texto pausado anteriormente
Public void Continuar()

79

Capitulo 8 Manual de uso del componente


En cuanto al volumen, se sube o se baja de la forma:
mireproductor.SubirVolumen()
Funcin que sube el volumen actual de la reproduccin en curso una unidad, en una escala
de 0 a 10.
Public void SubirVolumen()
mireproductor.BajarVolumen()
Funcin que baja el volumen actual de la reproduccin en curso una unidad, en una escala
de 0 a 10.
Public void BajarVolumen()

Uso del deletreo


La funcin deletreo consiste en coger un texto de entrada y transformarlo en otro texto de
salida con las letras escritas como palabras
texto_entrada= HOLA texto_salida:=HACHE O ELE A
En el caso de que queramos reproducir la frase deletreada, hacemos lo siguiente:
1 - Primero indicamos a la funcin qu texto queremos deletrear:
sonido.reproductor deletrea = new sonido.reproductor();
string texto_deletreado=deletrea.deletreo(texto);
2 El resultado (texto_deletreado) es el que utilizamos para usar las funciones del
componente. Por ejemplo:
mireproductor.linea(texto_deletreado)
mireproductor.Play()

8.4.

Creacin de ficheros de voces

Es posible crear nuevos fichero de voces, pudiendo utilizar incluso ms de dos.


Para crearlos hay que hacer los siguientes pasos:
1.

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

Capitulo 8 Manual de uso del componente


2.

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

como se muestra en las figuras Fig. 8.4 y Fig. 8.5

Fig. 8.4 agregar elemento existente

3.

Fig. 8.5 agregar archivo de sonido

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.

Fig. 8.6 accin de generacin

81

Capitulo 8 Manual de uso del componente


4.

Generamos el fichero FichWAV<nombre>.dll (como se explica en apndice B.3). Si no ha


habido ningn error, este fichero se guardar dentro del directorio que le indicamos
anteriormente, en el directorio \bin\Release\FichWAV<nombre>.dll

5.

Estos ficheros de slabas se copian en el dispositivo en el mismo directorio en el que se


encuentra la aplicacin. Es importante sealar que estos ficheros no se muestran en el
explorador de archivos del dispositivo, aunque s se muestran en el explorador de archivos
del PC cuando tenemos conectado el dispositivo con el PC.

82

Parte IV

Desarrollo de la
Aplicacin

Capitulo 9 Anlisis 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

9.2. Descripcin del problema


El principal objetivo es desarrollar una aplicacin que muestre las capacidades del
componente sonido, desarrollado en la parte III desarrollo componente.
La aplicacin est compuesta por distintas pantallas, cada una de ellas est compuesta por
diversos botones de distintos tipos: botones de insercin de texto y botones funcionales.
Debido a que la aplicaron est pensada y diseada para personas con discapacidad motora
y del habla, sta se ha diseado pensando en sus necesidades, tales como botones grandes para un
mejor manejo, ya que la movilidad del usuario puede ser reducida y el texto de esos botones
tambin es de gran tamao, para que a un simple vistazo pueda ver que botn se corresponde con el
carcter que quiere introducir o la operacin a realizar.

85

Capitulo 9 Anlisis de la aplicacin


Como consecuencia del gran tamao de los botones de escritura de caracteres, no caben
todos en una nica pantalla. Por eso se ha tenido que agrupar los caracteres y mostrar cada grupo en
una pantalla distinta.
Los botones funcionales sirven para moverse entre las distintas pantallas. Algunos de estos
botones son:

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.

9.3. Identificacin de los actores


Los actores son personas o entidades externas a la aplicacin que interactan con ella,
realizando un intercambio de informacin. ste podr ser tanto de entrada como de salida.
En sistemas ms complejos, un actor puede representar varios papeles. En estos casos, se
definen diferentes actores para representarlos.

ACT-0001

Usuario

Descripcin

Este actor es la persona que va a usar la aplicacin


Fig. 9.1 Descripcin del actor usuario

ACT-0002

Componente sonido

Descripcin

Componente sonido que se llamar para reproducir


sonido

Fig. 9.2 Descripcin del actor componente sonido

86

Capitulo 9 Anlisis de la aplicacin

9.4. Diagrama de los casos de uso


Se emplean para visualizar el comportamiento del sistema, una parte de l o de una sola
clase. De forma que se pueda conocer como responde esa parte del sistema. El diagrama de casos
de uso es muy til para definir como debe ser el comportamiento de una parte del sistema, ya que
solo especifica como deben comportarse y no como estn implementadas las partes que define. Un
caso de uso especifica un requerimiento funcional, es decir indica esta parte debe hacer esto cuando
pase esto.

Fig. 9.3 Diagrama de los casos de uso

87

Capitulo 9 Anlisis de la aplicacin

9.5. Presentacin de los casos de uso


Un caso de uso describe una funcionalidad como una interaccin entre un actor y el
sistema en forma de secuencia de acciones.
El comportamiento de un caso de uso se puede especificar describiendo un flujo de
eventos de forma textual, lo suficientemente claro para que una persona ajena al sistema lo entienda
fcilmente. La descripcin se centra en lo que debe hacerse, no en la manera de hacerlo, buscando
sencillez y claridad.

9.5.1 Introducir texto


UC-001

Introducir texto

Descripcin

El usuario va introduciendo caracteres para formar el


texto que desea reproducir

Secuencia
normal

Paso

Accin

El usuario introduce los caracteres mediante


la pulsacin de los botones.

El sistema actualiza el texto

Fig. 9.4 Descripcin caso de uso introducir texto

Fig. 9.5 Diagrama del caso de uso introducir texto

88

Capitulo 9 Anlisis de la aplicacin


9.5.2 Borrar texto

UC-002

Borrar texto

Descripcin

El sistema permite borrar el texto escrito

Precondicin

Hay texto escrito

Secuencia
normal

Paso

Accin

El usuario solicita borrar todo el texto


escrito

El sistema borra el texto escrito

Fig. 9. 6 Descripcin del caso de uso borrar texto

Fig. 9.7 Diagrama del caso de uso introducir texto borrar texto

89

Capitulo 9 Anlisis de la aplicacin


9.5.3 Configurar reproductor

UC-003

Configurar reproductor

Descripcin

El sistema permite al usuario poder cambiar la


configuracin de reproduccin

Secuencia
normal

Paso

Accin

El usuario solicita modificar la


configuracin de voz y/o volumen

El sistema muestra la configuracin actual

El usuario modifica la configuracin

El sistema actualiza el reproductor con la


nueva configuracin

Fig. 9. 8 Descripcin del caso de uso configurar reproductor

Fig. 9.9 Diagrama del caso de uso configurar reproductor

90

Capitulo 9 Anlisis de la aplicacin


9.5.4 Salir aplicacin

UC-004

Salir aplicacin

Descripcin

El sistema permite cerrar la aplicacin

Secuencia
normal

Paso

Accin

El usuario solicita salir de la aplicacin

El sistema cierra la aplicacin

Fig. 9. 12 Descripcin del caso de uso reproducir texto

Fig. 9.13 Diagrama del caso de uso salir aplicacin

91

Capitulo 9 Anlisis de la aplicacin


9.5.5 Reproducir texto

UC-005

Reproducir texto

Descripcin

El sistema permite reproducir un texto

Precondicin

El texto a reproducir no es vaco

Secuencia
normal

Paso

Accin

El usuario solicita reproducir un texto

El sistema solicita al componente reproducir


un texto

El componente prepara el texto para su


reproduccin

Fig. 9. 14 Descripcin del caso de uso reproducir texto

Fig. 9.15 Diagrama del caso de uso reproducir texto

92

Capitulo 9 Anlisis de la aplicacin


9.5.6 Deletrear texto

UC-006

Deletrear texto

Descripcin

El sistema permite deletrear un texto

Precondicin

El texto a deletreas no es vaco

Secuencia
normal

Paso

Accin

El usuario solicita deletrear un texto

El sistema solicita al componente sonido


deletrear un texto

El componente prepara el texto para su


deletreo

Fig. 9. 16 Descripcin del caso de uso deletrear texto

Fig. 9.17 Diagrama del caso de uso deletrear texto

93

Capitulo 9 Anlisis de la aplicacin


9.5.7 Usar reproductor

UC-007

Usar reproductor

Descripcin

El sistema est preparado y listo para las operaciones


de reproduccin

Precondicin

El reproductor tiene que estar inicializado con el texto


a reproducir y con el volumen y voz de reproduccin

Secuencia
normal

Paso

Accin

El usuario solicita utilizar el reproductor

El sistema muestra el reproductor

Fig. 9. 18 Descripcin del caso de uso reproductor

Fig. 9.19 Diagrama del caso de uso deletrear texto

94

Capitulo 9 Anlisis de la aplicacin


9.5.8 Iniciar reproduccin

UC-008

Iniciar reproduccin

Descripcin

El sistema inicia la reproduccin del texto

Precondicin

El reproductor tiene que estar inicializado (ver UC005) y el texto no es vaco

Secuencia
Normal

Paso

Excepciones

Accin

El usuario solicita iniciar la reproduccin

El sistema inicia la reproduccin

Si no hay texto escrito, el sistema no


reproduce nada

Fig. 9.20 Descripcin del caso de uso iniciar reproduccin

Fig. 9.21 Diagrama del caso de uso iniciar reproduccin

95

Capitulo 9 Anlisis de la aplicacin


9.5.9 Detener reproduccin

UC-009

Detener reproduccin

Descripcin

El sistema detiene la reproduccin de un texto

Precondicin

Se est reproduciendo un texto (ver UC-008)

Secuencia
normal

Paso

Excepciones

Accin

El usuario solicita detener la reproduccin


en curso

El sistema detiene la reproduccin del texto


que se est reproduciendo

Si no hay texto reproducindose, el sistema


no hace nada.

Fig. 9.22 Descripcin del caso de uso detener reproduccin

Fig. 9.23 Diagrama del caso de uso detener reproduccin

96

Capitulo 9 Anlisis de la aplicacin


9.5.10 Pausar reproduccin

UC-010

Pausar reproduccin

Descripcin

El sistema pausa la reproduccin en curso

Precondicin

Se est reproduciendo un texto (ver UC-008)

Secuencia
normal

Paso

Excepciones

Accin

El usuario solicita pausar la reproduccin

El sistema pausa la reproduccin en curso

Si no hay texto reproducindose, el sistema


no hace nada.

Fig. 9.24 Descripcin del caso de uso pausar reproduccin

Fig. 9.25 Diagrama del caso de uso pausar reproduccin

97

Capitulo 9 Anlisis de la aplicacin


9.5.11 Continuar reproduccin

UC-011

Continuar reproduccin

Descripcin

El sistema reanuda la reproduccin un texto pausado

Precondicin

La reproduccin ha sido pausada anteriormente (ver


UC-010) y el texto que falta por reproducir no es
vaco

Secuencia
normal

Paso

Excepciones

Accin

El usuario solicita reanudar la reproduccin


del texto antes pausado

El sistema reanuda la reproduccin del texto

Si no hay texto escrito, el sistema no


reproduce nada

Fig. 9.26 Descripcin del caso de uso reanudar reproduccin

Fig. 9.27 Diagrama del caso de uso reanudar reproduccin

98

Capitulo 9 Anlisis de la aplicacin


9.5.12 Modificar volumen

UC-012

Modificar volumen

Descripcin

El sistema permite modificar el volumen de la


reproduccin durante le reproduccin

Secuencia
normal

Paso

Excepciones

Accin

El usuario solicita modificar el volumen de


la reproduccin (subir o bajar el volumen)

El sistema actualiza el volumen de


reproduccin (subir o bajar el volumen)

Si subimos el volumen y ya est al mximo,


el sistema no hace nada. Si bajamos el
volumen y ya est al mnimo, el sistema no
hace nada.

Fig. 9.28 Descripcin del caso de uso modificar volumen

Fig. 9.29 Diagrama del caso de uso modificar volumen

99

Capitulo 9 Anlisis de la aplicacin

9.6. Estructura esttica del sistema


9.6.1 Diagrama inicial de clases

Fig. 9.30 Diagrama inicial de clases

9.6.2 Descripcin de las clases


Clase configuracin
Clase que describe las caractersticas necesarias para configurar el
reproductor y cambiar las opciones de reproduccin
Clase reproductor
Clase que describe las caractersticas necesarias para que el usuario de
la aplicacin pueda utilizar el reproductor

100

Capitulo 9 Anlisis de la aplicacin


Clase caracter espacio
Clase que describe las caractersticas necesarias para que se pueda
introducir un espacio en el texto que se est introduciendo
Clase caracter numero
Clase que describe las caractersticas necesarias para que se puedan
introducir nmeros en el texto que se est introduciendo
Clase carcter alfabetico
Clase que describe las caractersticas necesarias para que se puedan
introducir caracteres alfabticos en el texto que se est reproduciendo
Clase carcter
Clase que describe las caractersticas necesarias para que se puedan
introducir caracteres (espacio, nmeros y alfabticos) en el texto que se est
introduciendo
Clase frase
Clase que describe las caractersticas necesarias para que los caracteres
introducidos formen una frase y poder as reproducirla en el reproductor.

101

Capitulo 9 Anlisis de la aplicacin

102

Capitulo 10 Diseo de la aplicacin

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

Capitulo 10 Diseo de la aplicacin

10.2. Especificacin de los casos de uso y diagramas de secuencia


A continuacin se muestran los casos de uso y los diagramas de secuencia ms
detalladamente que en la fase de anlisis.

10.2.1 Introducir texto

UC-001

Introducir texto

Descripcin

El sistema permite introducir un texto

Secuencia
normal

Paso

Accin

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
(Fig. 10.3).

El usuario selecciona el botn que contenga el carcter de


texto que desea escribir.

El sistema muestra otra pantalla formada por un cuadro de


texto y unos botones que representan cada uno un carcter.
(Fig. 10.4).

El usuario selecciona el carcter que quiere escribir pulsando


el botn que contenga el carcter

El carcter que contiene el botn se aade al texto.

Postcondicin

Los caracteres insertados se aaden al texto a reproducir

Excepciones

Paso

Importancia

Accin

Si el usuario quiere introducir un espacio, pulsa el botn


ESPACIO

Si el usuario quiere borrar el ultimo carcter escrito, pulsa el


botn BORRAR

Vital

Fig. 10.1 Descripcin del caso de uso introducir texto

104

Capitulo 10 Diseo de la aplicacin

Fig. 10.2 Diagrama de secuencia del caso de uso introducir texto

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.

Fig. 10.3 Inferfaz de usuario


formulario principal de la aplicacin

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

Capitulo 10 Diseo de la aplicacin


10.2.2 Borrar texto

UC-002

Borrar texto

Descripcin

El sistema permite borrar un texto

Precondicin

Hay texto escrito.

Secuencia
Normal

Paso

Accin

El sistema muestra la pantalla principal (ver


Fig. 10.3).

El usuario selecciona el botn que contiene


el texto MENU.

El sistema muestra la pantalla men,


formada por un cuadro de texto y unos
botones de opciones (Fig. 10.7).

El usuario selecciona el botn BORRAR.

El sistema borra todo el texto introducido


antes

Postcondicin

El texto a reproducir est vaco.

Excepciones

Paso
5

Importancia

Accin
Si el usuario quiere volver a la pantalla
principal pulsa el botn VOLVER
BOTONES.

Importante

Fig. 10.5 Descripcin del caso de uso borrar texto

106

Capitulo 10 Diseo de la aplicacin

Fig. 10.6 Diagrama de secuencia del caso de uso borrar texto

Interfaz de usuario:
El sistema muestra otra
pantalla formada por un
cuadro de texto y unos
botones con las distintas
opciones de la aplicacin.

Fig. 10.7 Inferfaz de usuario tipo formulario menu

107

Capitulo 10 Diseo de la aplicacin


10.2.3 Configurar reproductor

UC-003

Configurar reproductor

Descripcin

El sistema permite configurar las opciones de reproduccin

Secuencia
normal

Paso

Accin

El sistema muestra la pantalla principal (ver Fig. 10.3).

El usuario selecciona el botn que contenga el texto


MENU.

El sistema muestra la pantalla men (ver Fig. 10.7).

El usuario selecciona el botn CONFIGURAR

El sistema muestra la pantalla configurar aplicacin,


con las opciones de voz y volumen de reproduccin
actuales.

El usuario modifica las opciones del reproductor y


pulsa el botn ACEPTAR para guardar los cambios

El sistema guarda los cambios efectuados en las


opciones de reproduccin

Postcondicin

Las nuevas opciones de reproduccin se han guardado.

Excepciones

Paso
6

Importancia

Accin
Si el usuario no quiere modificar las opciones de
reproduccin pulsa el botn CANCELAR.

Importante

Fig. 10.8 Descripcin del caso de uso configurar reproductor

108

Capitulo 10 Diseo de la aplicacin

Fig. 10.9 Diagrama de secuencia del caso de uso configurar reproductor

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.

Fig. 10.10 Inferfaz de usuario tipo formulario


configurar aplicacin

109

Capitulo 10 Diseo de la aplicacin


10.2.4 Salir aplicacin

UC-004

Salir aplicacin

Descripcin

El sistema permite configurar las opciones de reproduccin

Secuencia
normal

Paso

Accin

El sistema muestra la pantalla principal (ver Fig. 10.3).

El usuario selecciona el botn que contenga el texto


SALIR.

El sistema cierra la aplicacin.

Postcondicin

La aplicacin se ha cerrado.

Importancia

Vital

Fig. 10.11 Descripcin del caso de uso deletrear texto

Fig. 10.12 Diagrama de secuencia del caso de uso reproducir texto

110

Capitulo 10 Diseo de la aplicacin


10.2.5 Reproducir texto

UC-005

Reproducir texto

Descripcin

El sistema permite reproducir un texto

Precondicin

El texto a reproducir no es vaco

Secuencia
normal

Paso

Accin

El sistema muestra la pantalla principal (ver Fig. 10.3).

El usuario selecciona el botn que contenga el texto MENU.

El sistema muestra la pantalla men (ver Fig. 10.7 )

Se realiza el caso de uso UC-007 Usar reproductor

Postcondicin

El texto est listo para su reproduccin

Excepciones

Paso

Importancia

Accin

Si el texto a reproducir es vaco, el reproductor no hace nada.

Si el usuario quiere salir de la pantalla del reproductor y volver


a la pantalla men, pulsa el botn VOLVER

Vital
Fig. 10.13 Descripcin del caso de uso deletrear texto

Fig. 10.14 Diagrama de secuencia del caso de uso reproducir texto

111

Capitulo 10 Diseo de la aplicacin


10.2.6 Deletrear texto

UC-006

Deletrear texto

Descripcin

El sistema permite deletrear un texto

Precondicin

El texto a deletrear no es vaco

Secuencia
normal

Paso

Accin

El sistema muestra la pantalla principal (ver Fig. 10.3).

El usuario selecciona el botn que contiene el texto MENU

El sistema muestra la pantalla men (ver Fig. 10 )

El usuario pulsa el botn DELETREAR

El sistema utiliza el componente sonido para convertir el texto


introducido en un texto deletreado (ver Capitulo 8, apartado uso
del deletreo)

Se realiza el caso de uso UC-007 Usar reproductor

Postcondicin

El texto original est ahora deletreado y listo para su reproduccin

Excepciones

Paso
4

Importancia

Accin
Si el texto a deletrear es vaco, no hace nada.

Poca

Fig. 10.15 Descripcin del caso de uso deletrear texto

112

Capitulo 10 Diseo de la aplicacin

Fig. 10.16 Diagrama de secuencia del caso de uso deletrear texto

113

Capitulo 10 Diseo de la aplicacin


10.2.7 Usar reproductor

UC-007

Usar reproductor

Descripcin

El sistema est preparado y listo para las opciones de reproduccin.

Precondicin

El reproductor tiene que estar inicializado con el texto a reproducir y


con el volumen y voz inicial de reproduccin

Secuencia
normal

Paso

Importancia

Accin

El usuario pulsa el botn REPRODUCIR TEXTO desde la


pantalla men (ver Fig. 10.7)

El sistema crea el componente con el texto a reproducir y con


la voz y el volumen inicial de reproduccin

El sistema muestra la pantalla del reproductor, formada por un


campo de texto y unos botones con las funciones del
reproductor (Fig. 10. 19)

El usuario solicita usar el reproductor pulsando alguno de los


botones de la pantalla del reproductor (ver Fig. 10.15)

El sistema queda a la espera de las acciones del usuario.

Vital

Fig. 10.17 Descripcin del caso de uso reproductor

114

Capitulo 10 Diseo de la aplicacin

Fig. 10.18 Diagrama de secuencia del caso de uso reproductor

Interfaz de usuario:
El sistema muestra la
pantalla del reproductor,
formada por un campo de
texto y unos botones con las
funciones del reproductor.

Fig. 10.19 Inferfaz de usuario tipo formulario pantalla


del reproductor

115

Capitulo 10 Diseo de la aplicacin


10.2.8 Iniciar reproduccin

UC-008

Iniciar reproduccin

Descripcin

El sistema inicia la reproduccin del texto

Precondicin

El componente est inicializado y el texto no es vaco.

Secuencia
normal

Paso

Accin

El usuario pulsa el botn PLAY

El sistema se separa el texto en silabas para su posterior


reproduccin

El sistema reproduce las silabas.

Postcondicin

Las silabas que componen el texto se reproducen

Excepciones

Paso
3

Importancia

Accin
Si el texto a reproducir es vaco, el reproductor no hace nada.

Vital

Fig. 10.20 Descripcin del caso de uso iniciar reproduccin

Fig. 10.21 Diagrama de secuencia del caso de uso iniciar reproduccin

116

Capitulo 10 Diseo de la aplicacin


10.2.9 Detener reproduccin

UC-009

Detener reproduccin

Descripcin

El sistema detiene la reproduccin del texto

Precondicin

Se est reproduciendo un texto (ver UC-008)

Secuencia
normal

Paso

Accin

El usuario pulsa el botn STOP

El sistema detiene la reproduccin del texto.

Postcondicin

Se detiene la reproduccin, por lo que ya no hay texto


reproducindose

Importancia

Vital

Fig. 10.22 Descripcin del caso de uso detener reproduccin

Fig. 10.23 Diagrama de secuencia del caso de uso detener reproduccin

117

Capitulo 10 Diseo de la aplicacin


10.2.10 Pausar reproduccin

UC-010

Pausar reproduccin

Descripcin

El sistema pausa la reproduccin del texto

Precondicin

Se est reproduciendo un texto (ver UC-008)

Secuencia
normal

Paso

Accin

El usuario pulsa el botn PAUSE

El sistema pausa la reproduccin del texto.

Postcondicin

Se pausa o detiene momentneamente la reproduccin, por lo


que ya no hay texto reproducindose. El texto que no se ha
reproducido queda guardado.

Importancia

Importante

Fig. 10.24 Descripcin del caso de pausar reproduccin

Fig. 10.25 Diagrama de secuencia del caso de uso pausar reproduccin

118

Capitulo 10 Diseo de la aplicacin


10.2.11 Continuar reproduccin

UC-011

Continuar reproduccin

Descripcin

El sistema continua la reproduccin del texto

Precondicin

Como se ha pausado anteriormente la reproduccin de un texto, hay


texto que falta por reproducirse

Secuencia
normal

Paso

Postcondicin
Excepciones

El usuario pulsa el botn CONTINUAR

El sistema recupera el texto que falta por reproducirse y lo


separa en silabas para su reproduccin

El sistema reproduce las silabas

Las silabas que componen el texto se reproducen


Paso
3

Importancia

Accin

Accin
Si el texto a reproducir es vaco, el reproductor no hace nada.

Importante

Fig. 10.26 Descripcin del caso de uso continuar reproduccin

Fig. 10.27 Diagrama de secuencia del caso de uso continuar reproduccin

119

Capitulo 10 Diseo de la aplicacin


10.2.12 Modificar volumen
UC-012

Modificar volumen

Descripcin

El sistema permite modificar el volumen de reproduccin


durante la reproduccin desde la pantalla del reproductor

Secuencia
normal

Paso

Accin

1a

El usuario pulsa el botn SUBIR VOLUMEN

1b

El usuario pulsa el botn BAJAR VOLUMEN

2a

El sistema sube el volumen de reproduccin

2b

El sistema baja el volumen de reproduccin

Postcondicin

El volumen de reproduccin se ha modificado

Excepciones

Paso

Importancia

Accin

1a

Si el volumen es mximo y se pulsa SUBIR


VOLUMEN, el volumen sigue en el mximo

1b

Si el volumen es mnimo y se pulsa SUBIR


VOLUMEN, el volumen sigue en el mnimo

Importante

Fig. 10.28 Descripcin del caso de uso modificar volumen

Fig. 10.29 Diagrama de secuencia del caso de uso modificar volumen

120

Capitulo 10 Diseo de la aplicacin

10.3. Diagrama final de clases

Fig. 10.30 Diagrama final de clases

121

Capitulo 10 Diseo de la aplicacin

10.4. Especificacin de las clases


Clase FormCaracter
Clase que contiene los atributos y mtodos necesarios para que se puedan introducir
caracteres en un texto que posteriormente se va a reproducir. Este texto se introduce pulsando los
botones de la pantalla, cada uno de los botones representa un carcter.
Atributos
boton1..boton6:: botones que contienen los caracteres que se van a aadir al texto que
queremos reproducir
botonBORRAR: botn que permite a borrar un carcter
botonESPACIO: botn que permite insertar un espacio
botonVOLVER: botn para volver a la pantalla principal
box: 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.
Mtodos
boton_Click(): mtodo que aade al texto el carcter correspondiente al botn pulsado
botonBORRAR_Click(): mtodo que borra un carcter del texto
botonESPACIO_Click(): mtodo que aade un espacio al texto
botonVOLVER_Click(): mtodo para cerrar la pantalla actual y regresar a la pantalla
principal
Obten_linea(linea: string): mtodo que contiene la el texto que se ha introduciendo
con las sucesivas pulsaciones de los botones que contienen caracteres

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

Capitulo 10 Diseo de la aplicacin


Mtodos
Boton_Click(): mtodo que aade al texto el carcter correspondiente al botn
pulsado
botonBORRAR_Click(): mtodo que borra un carcter del texto
botonESPACIO_Click(): mtodo que aade un espacio al texto
botonVOLVER_Click(): mtodo para cerrar la pantalla actual y regresar a la pantalla
principal
Obten_linea(linea: string): mtodo que contiene la el texto que se ha introduciendo
con las sucesivas pulsaciones de los botones que contienen caracteres

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

Capitulo 10 Diseo de la aplicacin


Clase FormMenu
Clase que contiene los atributos y mtodos necesarios para la utilizacin de las distintas
opciones de la aplicacin. Contiene los mtodos para poder cambiar a la pantalla de configuracin
del reproductor o cambiar a la pantalla del reproductor.
Atributos
botonReproducir: botn que muestra la pantalla del reproductor
botonBorrar: botn que nos permite borrar el texto escrito
botonConfigurar: botn que nos permite cambiar las opciones del reproductor
botonVolver: botn para volver a la pantalla principal
botonDeletreo: botn para realizar el deletreo
texto_final: botn que contiene el texto definitivo que se va a reproducir

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

Capitulo 10 Diseo de la aplicacin

labelTipo: etiqueta para las opciones de volumen


botonAceptar: botn para aceptar los cambio en las opciones de reproduccin
marcadas en los radio botones
botonCancelar: botn para no hacer modificaciones sobre las opciones de
reproduccin
voz: variable auxiliar para almacenar el tipo de voz
vol:: variable auxiliar para almacenar el volumen de reproduccin

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

Capitulo 10 Diseo de la aplicacin

Btn_vol_abajo_Click(): mtodo para bajar un punto el volumen de reproduccin (en


una escala del 1 al 10)

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.

11.2. Pruebas realizadas


PRUEBA 001
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones

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

Mostrar pantalla del reproductor


Seleccionar el botn destinado a la reproduccin del texto
Se mostrar una pantalla con el texto y los botones de reproduccin
Pantalla del reproductor mostrada
Correcto

Fig. 11.4 cuadro de la prueba mostrar pantalla del reproductor

PRUEBA 005
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones

Cambio de la voz de reproduccin por voz masculina


Seleccin de la voz masculina en las opciones del reproductor
Se mostrarn las opciones de reproduccin y se seleccionar la voz
masculina
La reproduccin del texto se realiza en voz masculina
Correcto

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

Cambio de la voz de reproduccin por voz femenina


Seleccin de la voz masculina en las opciones del reproductor
Se mostrarn las opciones de reproduccin y se seleccionar la voz
femenina
La reproduccin del texto se realiza en voz femenina
Correcto

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

Cambio del volumen de reproduccin por volumen mximo


Seleccin de volumen inicial mximo en las opciones del reproductor
El volumen inicial de reproduccin ser el mximo
La reproduccin del texto se realiza a volumen mximo
Correcto

Fig. 11.7 cuadro de la prueba cambio del volumen de reproduccin por volumen
mximo

PRUEBA 008
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones

Cambio del volumen de reproduccin por volumen medio


Seleccin de volumen inicial medio en las opciones del reproductor
El volumen inicial de reproduccin ser el volumen medio
La reproduccin del texto se realiza a volumen medio
Correcto

Fig. 11.8 cuadro de la prueba cambio del volumen de reproduccin por volumen medio

PRUEBA 009
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones

Cambio del volumen de reproduccin por volumen mnimo


Seleccin de volumen inicial mnimo en las opciones del reproductor
El volumen inicial de reproduccin ser el mnimo
La reproduccin del texto se realiza a volumen mnimo
Correcto

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

Fig. 11.10 cuadro de la prueba reproduccin de un texto

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

Fig. 11.11 cuadro de la prueba pausar la reproduccin

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

Fig. 11.12 cuadro de la prueba detener la reproduccin

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

Fig. 11.13 cuadro de la prueba reanudar la reproduccin

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

Reproduccin de una silaba no existente en los ficheros de voces


Se intenta reproducir una silaba no grabada
Se sustituir el sonido de esa silaba por un pitido suave
Se oye un pitido suave
Correcto

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

Reproduccin de un texto mal escrito


Se intenta reproducir un texto que no est bien escrito, segn la gramtica
y el idioma espaol.
El sistema mostrar un mensaje de error indicando que el texto est mal
escrito
El sistema muestra error del texto escrito
Correcto

Fig. 11.16 cuadro de la prueba reproduccin de un texto mal escrito

130

Capitulo 11 Pruebas

PRUEBA 017
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones

Subir el volumen de la reproduccin


Seleccin del botn de subir volumen
El volumen de reproduccin subir con respecto al volumen actual
El volumen de reproduccin ha subido
Correcto

Fig. 11.17 cuadro de la prueba subir el volumen de la reproduccin

PRUEBA 018
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones

Bajar el volumen de la reproduccin


Seleccin del botn de bajar volumen
El volumen de reproduccin bajar con respecto al volumen actual
El volumen de reproduccin ha bajado
Correcto

Fig. 11.18 cuadro de la prueba bajar el volumen de la reproduccin

PRUEBA 019
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones

Subir volumen de la reproduccin si ya es el mximo


Seleccin del botn subir volumen cuando el volumen de reproduccin
est al mximo
El volumen de reproduccin seguir siendo el mximo
El volumen es el mximo
Correcto

Fig. 11.19 cuadro de la prueba subir volumen de reproduccin si ya es mximo

PRUEBA 020
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones

Bajar volumen de la reproduccin si ya es el mnimo


Seleccin del botn subir volumen cuando el volumen de reproduccin
est al mnimo
El volumen de reproduccin seguir siendo el mnimo
El volumen es el mnimo
Correcto

Fig. 11.20 cuadro de la prueba bajar volumen de reproduccin si ya es mnimo

PRUEBA 21
Accin Realizada
Resultado esperado
Resultado obtenido
Observaciones

Mostrar pantalla men


Seleccionar el botn men de la pantalla principal
Se mostrar otra pantalla con las opciones de la aplicacin
Pantalla men mostrada
Correcto

Fig. 11.21 cuadro de la prueba mostrar pantalla men

131

Capitulo 11 Pruebas

PRUEBA 022
Accin Realizada

Resultado esperado
Resultado obtenido
Observaciones

Uso del componente en otra aplicacin


Probar el componente sonido creado (sonido.dll) en otra aplicacin
distinta. Utilizar una aplicacin ajena a la aplicacin aqu creada y probar
que el componente sonido.dll funciona correctamente.
El componente funcionar en su totalidad y la reproduccin de un texto
ser correcta.
El componente funciona en su totalidad y el texto se reproduce.
Correcto

Fig. 11.22 cuadro de la prueba cambio de la aplicacin

132

Parte V

Manual de usuario
de la aplicacin

Capitulo 12 Manual de usuario de la aplicacin

Captulo 12

Manual de usuario de la aplicacin


12.1. Introduccin
En este captulo se muestra el manual de usuario de la aplicacin y cmo realizar la instalacin
en un dispositivo mvil o PDA.
El manual de usuario est explicado desde dos puntos de vista:

Descripcin de las pantalla que componen la aplicacin, qu es cada pantalla y que se


puede hacer desde cada una de ellas
Descripcin de los pasos para utilizar la aplicacin, como por ejemplo, cmo introducir un
texto, como reproducir ese texto, etc.

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

Capitulo 12 Manual de usuario de la aplicacin

Configurar el volumen del reproductor

12.2. Descripcin de la aplicacin por pantallas


Las pantallas que componen la aplicacin son las que se detallan en los siguientes puntos:

12.2.1 Pantalla principal

Esta es la pantalla principal de la aplicacin, como


muestra la figura Fig. 12.1.
Si pulsamos en alguno de los botones de grupos de letras
pasamos a otra pantalla donde cada letra corresponde con un
botn, como muestra la Fig. 12.2. De esta forma, vamos
completando el texto que queremos reproducir.
El botn de los grupos de nmeros nos lleva a una
pantalla similar a la mostrada en la Fig. 12.2 pero cada botn
es un numero.
El botn BORRAR borra el texto escrito carcter a
carcter

Fig. 12.1 Pantalla principal

El botn ESPACIO, inserta un espacio en el texto


El botn MENU, nos lleva a la pantalla mostrada en la Fig. 12.3
Pulsando SALIR, cerramos la aplicacin.

136

Capitulo 12 Manual de usuario de la aplicacin


12.2.2 Pantalla caracteres
sta es una de las pantallas desde la que vamos
introduciendo caracteres (letras o nmeros), como muestra la
figura Fig. 12.2
Si nos equivocamos, podemos borrar el carcter
introducido pulsando el botn BORRAR.
El botn ESPACIO, como su nombre indica, inserta un
espacio en el texto
Pulsando VOLVER regresamos a la pantalla principal Fig.
12.1.

Fig. 12.2 Pantalla caracteres

12.2.3 Pantalla men


sta es la pantalla men, Fig. 12.3.
En el cuadro de la parte superior se muestra el texto a
reproducir.
Mediante el botn REPRODUCIR TEXTO indicamos que
queremos reproducir el texto que est en el cuadro y
automticamente muestra la pantalla del reproductor (Fig.
12.5)
Si en cambio, pulsamos el botn DELETREAR TEXTO,
tambin vamos a la pantalla del reproductor Fig. 12.4, pero
ahora deletreamos el texto escrito en el cuadro.
Con el botn BORRAR TEXTO, borramos todo el texto
escrito.
Fig. 12.3 Pantalla men

Con el botn CONFIGURAR, cambiamos la configuracin de reproduccin de la aplicacin,


como muestra la figura Fig.12.4.

137

Capitulo 12 Manual de usuario de la aplicacin


Pulsando VOLVER BOTONES se regresa pantalla principal Fig. 12.1.

12.2.4 Pantalla configuracin

Como se puede ver en la figura Fig. 12.4, podemos


cambiar el tipo de voz y el volumen inicial de la aplicacin.
Las opciones marcadas, son las caractersticas que tiene
activadas por defecto.
Pulsando ACEPTAR, los cambios quedan guardados.
Pulsando CANCELAR, no realizamos ningn cambio en
la configuracin.
Pulsando cualquiera de los botones (ACEPTAR o
CANCELAR) regresamos a la pantalla men Fig. 12.3

Fig. 12.4 Pantalla configuracin

12.2.5 Pantalla del reproductor


Esta es la pantalla del reproductor Fig. 12.5.
Aqu se muestran todas las opciones o controles.

botn PLAY inicia la reproduccin del texto


botn STOP detiene la reproduccin del texto
botn PAUSE detiene momentneamente la
reproduccin, hasta que se pulse el botn
CONTINUAR
botn CONTINUAR continua la reproduccin
desde el punto donde se pulso PAUSE
botn VOLUMEN Sube o baja un punto (por
pulsacin) el volumen del reproductor.
botn VOLVER regresamos a la pantalla men Fig.
12.4

Fig. 12.5 Pantalla del reproductor

138

Capitulo 12 Manual de usuario de la aplicacin

12.3. Descripcin de la aplicacin por la forma de uso.


12.3.1 Escribir un texto.
Para escribir un texto, tenemos que hacer lo siguiente:
1.

Partimos de la pantalla principal, (mostrada en la seccin 12.2.1), donde tenemos los


botones con los grupos de letras.

2.

Hacemos clic sobre el grupo de letras donde se encuentra el carecer que queremos
introducir.

3.

Se muestra la pantalla de caracteres en la que cada letra corresponde a un botn, como se


muestra en la Fig. 12.2.

4.

Hacemos clic sobre el carcter que queremos introducir o al botn borrar o espacio.

5.

Si el carcter que queremos escribir no est en la pantalla actual, regresamos a la pantalla


principal (Fig. 12.1) presionando el botn VOLVER y repetimos los pasos anteriores hasta
que hemos terminado de escribir el texto completo.

Ahora ya tenemos el texto escrito.

12.3.2 Borrar un texto.


Mientras escribimos el texto, tenemos la posibilidad de ir borrando los caracteres que hemos
introducido errneamente.
Sin embargo, si lo que queremos hacer ahora es borrar todo el texto escrito, podemos hacerlo
de la siguiente manera:
1.

Desde la pantalla principal (Fig. 12.1) pulsamos el botn MENU.

2.

Una vez en la pantalla de men (Fig. 12.3.) pulsamos el botn BORRAR TEXTO que
borra la totalidad del texto escrito.

12.3.3 Cambiar las opciones del reproductor.


El reproductor puede reproducir el texto con voz femenina o con voz masculina. Tambin
puede iniciar la reproduccin a un volumen mximo, mnimo o medio. Cuando iniciamos la
aplicacin, el reproductor tiene unas opciones por defecto, voz masculina y volumen inicial medio.

139

Capitulo 12 Manual de usuario de la aplicacin


Para cambiar esta configuracin tenemos que hacer:
1.

Pulsamos el botn MENU en la pantalla principal (Fig. 12.1)

2.

Una vez en la pantalla MENU (Fig. 12.3) pulsamos en el botn CONFIGURAR

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)

12.3.4 Deletrear un texto.


Si queremos deletrear un texto, primero hay que escribir un texto como se indica en el punto
12.3.1. Escribir un texto.
Una vez escrito el texto que se quiere deletrear, se realizan los siguientes pasos:
1.

Pulsar el botn MENU en la pantalla principal (Fig. 12.1)

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.

12.3.5 Reproduccin del un texto.


Mediante el punto 12.3.1 hemos escrito un texto. Desde la pantalla principal (Fig. 12.6)
hacemos clic en el botn MENU, que nos lleva a la pantalla men (Fig. 12.3). Hacemos clic en el
botn REPRODUCIR TEXTO y nos muestra la pantalla del reproductor (Fig. 12.5).
En la pantalla del reproductor, en el cuadro superior vemos que texto se va a reproducir.
Para iniciar la reproduccin, pulsamos el botn PLAY y para detenerla el botn STOP. Para
pausar la reproduccin en curso, pulsamos el botn PAUSE y para reanudarla pulsamos el botn
CONTINUAR.
Adems, si durante la reproduccin, queremos subir o bajar el volumen de reproduccin, se
puede hacer desde los botones de subir o bajar volumen
Una vez que se ha terminado la reproduccin, podemos volver a reproducirlo volviendo a
pulsar el botn PLAY o volver a la pantalla men (Fig. 12.3) pulsando el botn VOLVER.

140

Capitulo 12 Manual de usuario de la aplicacin

12.4. Instalacin y desinstalacin de la aplicacin


Para instalar la aplicacin en la PDA, se puede hacer de diversas formas:
1. Desde el propio Visual Studio .NET (herramienta de desarrollo de la aplicacin)
Ver Apndice B.1.
2. Desde ficheros CAB copiados directamente en la PDA.

Instalacin desde ficheros CAB


1.

En el directorio del CD (\instalacion) se encuentran los archivos CAB de la aplicacin y


del Compact Framework. Son varios los archivos CAB generados, uno para cada tipo de
procesador de la plataforma de destino. Visual Studio .NET genera archivos para las
siguientes plataformas: ARM (StrongArm), MIPS, SH3, WCE420X86 y X86.

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

Capitulo 12 Manual de usuario de la aplicacin

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.

13.2 Objetivos alcanzados

El estudio de la sntesis de voz, de sus usos y sus aplicaciones ha sido cumplido


ampliamente.

Comprender las dificultades de las personas con algn tipo de discapacidad, y en


particular las discapacidades motoras, ya que pensando en esas dificultades se ha diseado
la aplicacin, en la dificultad de la precisin de los movimientos de las manos a la hora de
utilizar la aplicacin.

He visto el trabajo que desde las universidades se est realizando, desarrollando


sintetizadores y reconocedores de voz.

146

Captulo 13 - Conclusiones

La aplicacin y el componente cumplen el cometido de ser independientes uno del otro,


que es el verdadero significado de un componente.

Los ficheros de voces son componentes, por lo que una modificacin en estos ficheros de
voces es independiente del componente sonido.

La posibilidad de usar distintos ficheros de silabas, ms de los que en esta aplicacin


utiliza, sin que se vea alterado el funcionamiento del componente.

El aprendizaje de Visual Studio .NET, del lenguaje C# y de los dispositivos mviles ha


sido amplio

13.3 Posibles mejoras


En este capitulo propongo las posibles mejoras que considero haran mejorar la sinterizacin
de la voz:

Crear un componente utilizando otras tcnicas de creacin de sntesis de voz, distinta al


uso de silabas, como el uso de fonemas.

Expresar la distinta entonacin existente en la reproduccin de un texto, ya sea un texto


interrogativo, exclamativo,

Uso de nmeros romanos, ejemplo Alfonso X pronunciarlo Alfonso dcimo y no


Alfonso equis.

Introducir pequeas onomatopeyas, como por ejemplo ja ja ja como indicativo de risa,


en lugar de su lectura plana.

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

Grady Booch, James Rumbaugh, Ivan Jacobson, El lenguaje unificado de desarrollo


software , Ed. Addison Wesley Iberoamericana, 1999.
Craig Larman, UML y Patrones, Ed Pearson Educacin, 2002.

Programacin

Francisco Javier Ceballos Sierra, El lenguaje de programacin C#, Ed RA-MA, 2001


Lus Joyanes Aguilar, C# Manual de programacin, Ed McGraw Hill, 2002.
Joseph Mayo, C# al descubierto, Ed Prentice Hall, 2002
Ira Pohl, C# by dissection Ed. Addison Wesley, 2003
John Sharp, Jon Jagger Microsoft Visual C#.NET Aprenda ya, Ed McGraw Hill, 2002.
Charles Wright , Superutilidades para C#, Ed McGraw Hill, 2003.

149

Captulo 14 - Bibliografa
Lingstica y sntesis.

Real Academia Espaola, Ortografa de la lengua castellana / compuesta por la Real


Academia Espaola, Ed Espasa, 2003
Leonardo Gmez Torrego Ortografa : de uso del espaol actual Ed. SM 2003

14.2 Fuentes Web


Otros

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

http://www.codeproject.com Pgina muy completa sobre Visual Studio y .NET.


http://www.gotdotnet.com Portal de la comunidad Microsoft .NET Framework
http://es.gotdotnet.com/quickstart Pagina de Microsoft .NET Framework SDK en espaol,
con tutoriales sobre formularios de Windows y algunas de las tareas ms comunes que
necesitan realizar los programadores, como leer y analizar XML, realizar accesos a datos y
obtener acceso a servicios como Active Directory o las API de Win32.
http://www.elguille.info/ Web sobre programacin en general en la que encontrar mucha
informacin interesante sobre Visual Studio.Net y C#.
http://groups.google.es Pgina de grupos de ayuda de google. Contiene grupos y foros de
discusin sobre una amplia variedad de temas. Entre esos temas cabe destacar los de
informtica, programacin, Microsoft, Visual Studio,
http://msdn.microsoft.com Completa pagina de ayuda de Microsoft, sobre sus lenguajes
de programacin. Muy til para resolver todas las dudas sobre .NET.
http://www.clikear.com Portal para desarrolladores de .NET Framework

Lingstica y sntesis

http://www.fundacionucm.es Fundacin General de la Universidad Complutense de


Madrid

150

Captulo 14 - Bibliografa

http://es.wikipedia.org/wiki/Portada Edicin en espaol de Wikipedia, la enciclopedia


libre, con informacin sobre la conversin texto a voz, y mucha otra informacin sobre el
tratamiento de las silabas.

Conocimiento de las discapacidades

http://www.fundaciononce.es La Fundacin ONCE para la Cooperacin e Integracin


Social de Personas con Discapacidad
http://www.ceapat.org/verIndex.do Centro Estatal de Autonoma Personal y Ayudas
Tcnicas. Dependiente del IMSERSO, Ministerio de Trabajo y Asuntos Sociales. Su
misin es contribuir a mejorar la calidad de vida de todos los ciudadanos , con especial
apoyo a personas con discapacidad y personas mayores, a travs de la accesibilidad
integral, el diseo para todos y la tecnologa de apoyo.

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:

Visual Studio .NET 2003


Desarrollo para sistemas mviles con .NET
.NET Compact Framework
Visual C# .NET 2003

155

Apndice A - Tecnologas

A.2 Visual Studio .NET 2003


La mxima de la programacin a objetos es la reutilizacin; es decir, aprovechar el cdigo
ya existente. Sin embargo, uno de los inconvenientes radica en que ese cdigo aprovechable puede
estar implementado en un lenguaje distinto al que nosotros estamos programando.
Con esta idea, Microsoft quiso generar una herramienta de trabajo en la que estuviesen
integrados los lenguajes que se ajustaran a sus estndares. Todo esto permiti el diseo de un
entorno de trabajo y surgi el Visual Studio .NET, que incluye lenguajes como C#.NET, Visual
Basic.NET, Visual C++, J#.NET,
Visual Studio .NET 2003 es una completa herramienta para crear aplicaciones basadas en
Microsoft .NET para Microsoft Windows, Web y dispositivos mviles.
Sus principales caractersticas son:

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.

Programacin de aplicaciones para dispositivos mviles a travs de .NET Compact


Framework. Visual Studio .NET 2003 incorpora a los dispositivos mviles que utilizan el
sistema operativo Microsoft Windows CE .NET. Los programadores pueden utilizar el
mismo modelo de programacin, las mismas herramientas y los mismos conocimientos
para crear aplicaciones orientadas tanto a dispositivos pequeos como a los centros de
datos de mayor tamao.

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

A.3 Desarrollo para sistemas mviles


Hasta no hace mucho tiempo las aplicaciones se desarrollaban casi exclusivamente para
ser ejecutadas desde ordenadores personales o ser accedidas desde terminales, incluidas las
aplicaciones basadas en servidores Web en las que se asuma que los clientes enviaran sus
solicitudes desde clientes que, como Internet Explorer, Netscape u Opera, se ejecutan en un PC o
similar. Actualmente, sin embargo, cada vez es mayor el nmero de usuarios que cuenta con otros
tipos de dispositivos que, como los ordenadores, pueden acceder a la Web o, incluso, instalar y
ejecutar aplicaciones. Hablamos principalmente de dispositivos mviles tipo Pocket PC y, por
supuesto, el telfono mvil.
Inicialmente este tipo de aplicaciones se depuran localmente en Internet Explorer, como
una aplicacin Web corriente, pero es posible instalar cualquier emulador de telfono o dispositivo
mvil para ver el resultado obtenido en cada tipo de hardware. Hay que tener en cuenta que
ASP.NET adapta la respuesta de la aplicacin segn el tipo de dispositivo que efecte la peticin,
produciendo HTML, WML, etc.
La alternativa a las aplicaciones Web mviles, principalmente para aquellos dispositivos
basados en Windows CE .NET, es la creacin de aplicaciones .NET que hagan uso de los servicios
de .NET Compact Framework, una versin reducida de la plataforma .NET y que se ejecuta, en
principio, en dispositivos tipo Pocket PC. El asistente para la creacin de aplicaciones para
dispositivos inteligentes nos permite elegir el dispositivo destino del proyecto, as como el tipo de
ste. Podemos elegir entre un dispositivo real, conectado al PC en el que est desarrollndose la
aplicacin, y un emulador de Pocket PC y Windows CE .NET, segn los casos. Los emuladores
facilitan el proceso de prueba y depuracin sin necesidad de conectar un dispositivo real.
Al ejecutar una aplicacin de este tipo se inicia automticamente su instalacin en el
dispositivo de destino, ya sea el emulador o un dispositivo real. Dicho proceso incluye la
instalacin de .NET Compact Framework en caso de que el citado dispositivo no contase con ella.
En resumen, basta una pulsacin de tecla para tener la plataforma .NET y nuestra aplicacin
funcionando en un dispositivo mvil.
Toda la documentacin de .NET Compact Framework se ha incorporado a Visual Studio
.NET 2003, de tal forma que una simple consulta de la ayuda nos permitir conocer las diferencias
existentes con la plataforma .NET que se ejecuta en los ordenadores de escritorio o las clases
especficas para dispositivos mviles, como las que hacen posible la comunicacin mediante
infrarrojos o el acceso a orgenes de datos SQL Server CE.

A.4 .NET Compact Framework


.NET Compact Framework aporta la eficacia del entorno de programacin .NET
Framework a los dispositivos mviles.
.NET Compact Framework es un subconjunto del entorno completo de .NET Framework.
Implementa aproximadamente un 30 por ciento de la biblioteca de clases completa de .NET
Framework y contiene las caractersticas y clases especficas del desarrollo mvil e incrustado. Est

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.

A.5 Visual C# .NET 2003


C# (pronunciado "si sharp", C sostenido o C Almohadilla) es un lenguaje de
programacin orientado a objetos desarrollado y estandarizado por Microsoft como parte de su
plataforma .NET.
Su sintaxis bsica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET.
C# fue diseado para combinar el control a bajo nivel de lenguajes como C y la velocidad de
programacin de lenguajes como Visual Basic. El smbolo # viene de sobreponer "++" sobre "++"
y eliminar las separaciones, indicando as su descendencia de C++.
C# forma parte de la plataforma .NET, siendo sta es una interfaz de programacin de
aplicaciones; mientras que C# es un lenguaje de programacin independiente diseado para generar
programas sobre dicha plataforma.

Visual C# .NET 2003 es una herramienta y un lenguaje de programacin modernos e


innovadores que generan software .NET para Microsoft Windows, Web y una amplia gama de
servicios. Debido a su sintaxis familiar, similar a la de C++, a su entorno de desarrollo integrado de
gran flexibilidad y a su capacidad para crear soluciones para una gran variedad de plataformas y
dispositivos, Visual C# .NET 2003 facilita enormemente el desarrollo de software conectado a
.NET.
Los programadores pueden disfrutar de un innovador lenguaje orientado a componentes
con compatibilidad inherente con propiedades, indizadores, delegados, control de versiones,
sobrecarga de operadores y atributos personalizados. Mediante comentarios en formato XML, los
programadores de C# pueden elaborar documentacin muy til sobre el cdigo fuente. Un modelo
de herencia avanzado permite a los programadores volver a utilizar el cdigo de cualquier lenguaje
de programacin compatible con .NET.
Visual C# .NET proporciona una funcionalidad ptima para racionalizar los procesos:

158

Apndice A - Tecnologas

Compatibilidad con el diseo, el desarrollo y la implementacin de servicios Web XML con


rapidez.
Diseadores de formularios y controles visuales para crear aplicaciones basadas en Windows
muy completas.
Herramientas y servicios de diseo para crear eficaces soluciones de Microsoft .NET basadas
en servidor.
Herramientas de migracin para convertir los proyectos basados en Java al entorno de
desarrollo de Microsoft .NET.

159

Apndice A - Tecnologas

160

Apndice B Programacin en VS .NET 2003

Apndice B

Programacin en Visual Studio


.NET 2003
En este apndice B, se explican algunas de las operaciones que realizamos en Visual
Studio .NET 2003, y que no se han explicado en captulos anteriores de esta memoria.
Estas operaciones a las que me refiero son :

Ejecucin de la aplicacin desde Visual Studio


Copiamos la aplicacin directamente del Visual Studio a la PDA

Creacin de los archivos CAB


Estos archivos CAB son los necesarios para poder ejecutar la aplicacin en la
PDA sin necesidad de tener Visual Studio instalado. Estos archivos CAB son los
archivos ejecutables que copiamos en la PDA para la posterior instalacin de la
aplicacin.

Creacin de componentes con Visual Studio


Ya que el proyecto consiste en la creacin de un componente sonido, hay que
explicar como se crean componentes con Visual Studio .NET 2003.

161

Apndice B Programacin en VS .NET 2003

B.1 Ejecucin de la aplicacin desde Visual Studio.NET 2003


Para ejecutar la aplicacin de desde Visual Studio .NET 2003 tendremos que hacer lo siguiente
1.
2.
3.

Abrir el proyecto de la aplicacin en Visual Studio .NET 2003


Ejecutar la aplicacin
Despus nos aparecer la siguiente ventana:

Fig. B.1 seleccin de implementacin

En esta ventana nos ofrecen distintas opciones para ejecutar la aplicacin:


- desde el emulador de Pocket PC del propio Visual Studio, que posee las mismas
caractersticas que tiene un dispositivo.
- desde el dispositivo Pocket PC, que copia la aplicaron en el dispositivo y para ello
tenemos que haber conectado el dispositivo con el PC.

4.

Elegimos la opcin, en este caso Dispositivo de Pocket PC. Pulsamos en el botn


IMPLEMENTAR, se copian los archivos en el dispositivo y se ejecuta la aplicacin.

B.2 Creacin de archivos CAB con Visual Studio.NET


Las aplicaciones generadas con Visual Studio .NET requiere que .NET Compact
Framework se encuentre en el dispositivo de destino. La rutina de instalacin tambin deber tener
esto en cuenta. Puede que sea necesario incluir varios archivos CAB: uno para la aplicacin y otro
para los CAB de .NET Compact Framework.
La manera ms fcil de crear un archivo CAB para la aplicacin es dejar que Visual Studio
.NET haga automticamente todo el trabajo. Una de las caractersticas que ofrece Visual Studio
.NET es un elemento de men del IDE para generar archivos CAB.

162

Apndice B Programacin en VS .NET 2003


Los pasos para poder crear estos archivos CAB desde Visual Studio .NET 2003 son:
1.
2.

Abrir el proyecto de la aplicacin en Visual Studio .NET 2003


Seccionar Release en el men desplegable, como muestra la figura:

Fig. B.2 seleccin de opciones

3.

Una vez marcado Release, en el men Generar, hacemos clic en Generar archivo .cab,
como se muestra en la figura:

Fig. B.3 generar archivo .cab


4.
5.

Mientras se generan estos archivos, aparecern brevemente unas ventanas de comandos.


Los archivos CAB se almacenan en un directorio situado dentro del directorio de la
aplicacin. Este directorio es : \cab\release
Son varios los archivos CAB generados, uno para cada tipo de procesador de la
plataforma de destino. Estos diferentes tipos son: ARM (StrongArm), MIPS, SH3,
WCE420X86 y X86, ya que el dispositivo de distribucin era un Pocket PC.

163

Apndice B Programacin en VS .NET 2003

B.3 Creacin de componentes con Visual Studio.NET


Para crear un componente, podemos crearlo como un nuevo proyecto dentro de la solucin
en que estamos trabajando, o como un proyecto independiente.
Pasos como nuevo proyecto dentro de otro:
1.
2.

Abrimos el proyecto en el que queremos incluir el nuevo componente


Colocndonos sobre la solucin de la aplicacin, agregamos nuevo proyecto:

Fig. B.4 Agregar un nuevo proyecto componente a la aplicacin


3.

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:

Fig. B.5 Agregar una biblioteca de clases o componente a la aplicacin

164

Apndice B Programacin en VS .NET 2003


Una vez hecho esto, ya estamos listos para generar el cdigo que queremos tenga nuestro
componente.
4.

Una vez finalizado de escribir el cdigo, generamos el fichero .dll

Fig. B.6 Generar la solucin del componente, generacin de sonido.dll

5.

Si no ha habido ningn error, este fichero se guardar dentro del directorio que le
indicamos anteriormente, en el directorio \bin.\Debug

165

Apndice B Programacin en VS .NET 2003

166

Apndice C Hardware y software utilizado

Apndice C

Hardware y software utilizado


C.1 Hardware usado
Equipo de desarrollo:
Ordenador AMD Athlon 64 Processor 3200+
1024 MB de memoria RAM.
200 GB HDD.
lector/grabador de DVD.
Sistema operativo Windows XP Professional.
PDA para realizar las pruebas:
Acer N-30.
Procesador Intel Xcale 266 MHz.
64 MB de memoria RAM.
32 MB de memoria ROM.
Sistema operativo Windows Mobile 2003.

167

Apndice C Hardware y software utilizado

C.2 Software usado


Entrono de desarrollo
Microsoft Windows 2000 Professional Service Pack 4
Microsoft Windows XP Service Pack 2
Microsoft Visual Studio .NET 2003
.NET Compact Framework 1.0
Conexin con PDA
Microsoft ActiveSync.
Grabacin de sonido y ficheros .wav
Microsoft Speech SDK 5.1
Nero Wave Editor
Memoria
Microsoft Office Word 2003
Nero Burning Rom 6.
Modelado
StarUML

168

Apndice D Contenido del CD

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

Das könnte Ihnen auch gefallen