Professional Documents
Culture Documents
1
Studio, NetBeans, Eclipse, etc. Los IDE Gráfico 1
ofrecen un marco de trabajo muy amplio para Composición de NET Framework
la mayoría de lenguajes de programación:
Java, Visual Basic, C++, C#, etc. Marco de trabajo. NET
2
incluido el método Main5, se encapsulan Gráfico 2
dentro de una clase, la cual puede ser Relación entre Visual C# y .NET Framework
implementada dentro de varias interfaces.
Proyecto de Visual C#
2.1.1. Proyecto en Lenguaje C#:
3
disciplinas de la Inteligencia Artificial (IA)9, la Tal como se puede observar, el punto
cual tiene como objetivo permitir la de partida (señal de voz) es indispensable
comunicación hablada entre seres humanos y para concluir con el proceso hasta la
computadoras. obtención de la respuesta. Por ello, la claridad
en la comunicación por parte del emisor, debe
3.1 Proceso básico de un SRH: ser en un alto grado de coincidencia para
garantizar la respuesta esperada.
Un Sistema de reconocimiento de voz
tiene un proceso elemental. Primero, se recibe Imagen 2
una señal de voz a través de un micrófono. Aparato fonador
Segundo, se procesa la información ingresada
y se parametriza. Tercero, se hace un cálculo
de similitudes entre los valores que tiene el
sistema. Por último, se toma una decisión en
base a las opciones encontradas, lo cual
debería traducirse en una respuesta de la
computadora.
Gráfico 3
Proceso de reconocimiento de voz
Cálculo de
similitudes
Toma de
decisiones
(respuesta)
4
4. Metodología de desarrollo: Cuadro 1
Requerimiento de Software
La metodología utilizada para el
desarrollo de la aplicación fue XP o ID Requerimiento Descripción
Software
Programación Extrema10, la cual es una
01 Sistema Operativo (SO) Windows 7
metodología de desarrollo ágil. La Service Pack 1
programación XP usa un enfoque orientado a 02 Entorno Integrado de Visual Studio
objetos. Desarrollo (IDE) 2012
03 Lenguaje de C#
El proceso de la Programación Extrema Programación
tiene cuatro etapas estructurales: 04 NET Framework 4.5
Planificación, diseño, prueba y codificación.
Cuadro 2
Requerimiento de Hardware
Gráfico 4
Proceso de Programación Extremo (XP) ID Requerimiento Descripción
Hardware
Planificación Diseño 01 Procesador 1.6 GHz
02 Memoria RAM 1.5 GB
03 Disco duro 4 GB disponibles
Proceso de
Programación
En los cuadros anteriores, se
Extrema (XP) determinan los requerimientos a nivel de
software y hardware, lo cual ha sido
importante para el inicio de la programación y
Codificación
pruebas respectivas.
Prueba
5
4.2. Diseño: Gráfico 6
Funcionamiento de la aplicación:
En la etapa de diseño, debemos realizar Mostrar todos los colores
un mapa de lo que sería nuestra aplicación, lo
cual debe ser el punto de partida para la Inicio Proceso Salida
codificación. Para nuestro proyecto, tenemos
un caso de uso bastante básico llamado Ingreso de La La
“Identificar colores”. señal de aplicación aplicación
Voz busca la muestra
Imagen 4 indicando instrucción todos los
Caso de Uso: Identificar Colores
«Todos» relacionada colores
al comando
Gráfico 7
Funcionamiento de la aplicación:
No mostrar ningún color
11
IBM Rational Software Architect es una herramienta
de diseño, modelado y desarrollo de software, la cual
utiliza el lenguaje de modelado unificado (UML)
6
4.2. Codificación: Imagen 4
Formulario de identificación de colores
Tal como se ha mencionado
anteriormente, el lenguaje de programación
elegido es C#. Parte de la metodología XP es
hacer pruebas unitarias que permita,
familiarizarnos con los requerimientos. En
este sentido, se realizaron pruebas para la
elección de un solo color. Posteriormente se
extrapolaron los conceptos de programación
para ser implementadas en las
funcionalidades descritas anteriormente (Ver
gráficos 5, gráfico 6, gráfico 7 y gráfico 8).
7
Después de estructurar el vocabulario, if (e.Result.Text == "verde")
creamos un objeto de tipo Grammar y {
hacemos referencia a la lista: btn4.Visible = true;
} else
Grammar gramatica = new Grammar (new if (e.Result.Text == "amarillo")
GrammarBuilder (lista)); {
btn5.Visible = true;
} else
Con la gramática lista para ser utilizada, if (e.Result.Text == "blanco")
creamos una instrucción del tipo try catch12. {
Luego, se hace uso del objeto rec creado btn6.Visible = true;
anteriormente y se pide que haga uso del } else
micrófono que por defecto estamos utilizando if (e.Result.Text == "marron")
en la computadora: {
btn7.Visible = true;
} else
try
if (e.Result.Text == "rosado")
{
{
rec.SetInputToDefaultAudioDevice ();
btn8.Visible = true;
} else
Le pedimos que haga uso de la if (e.Result.Text == "morado")
gramática y pasamos la lista finita de colores. {
Se crea el evento de reconocimiento de voz y btn9.Visible = true;
que éste se realicen en modo múltiple. } else
}
rec.LoadGrammar (gramatica);
rec.SpeechRecognized += reconocimiento; Ahora se debe evaluar una condición
rec.RecognizeAsync para mostrar todos los colores de la lista:
(RecognizeMode.Multiple);
}
if (e.Result.Text == "todos")
catch (Exception)
{
{
btn1.Visible = true;
throw;
btn2.Visible = true;
}
btn3.Visible = true;
btn4.Visible = true;
Luego, evaluamos las condiciones de btn5.Visible = true;
entrada dentro del método de reconocimiento, btn6.Visible = true;
la cual debe dar como respuesta el color btn7.Visible = true;
deseado: btn8.Visible = true;
btn9.Visible = true;
Void reconocimiento (object sender, } else
SpeechRecognizedEventArgs e)
{ Evaluamos la condición para no mostrar
if (e.Result.Text == "negro") ningún color de la lista, lo cual debe suceder
{ al ingresar el comando de voz “Ninguno”.
btn1.Visible = true;
} else if (e.Result.Text == "ninguno")
if (e.Result.Text == "azul") {
{ btn1.Visible = false;
btn2.Visible = true; btn2.Visible = false;
} else btn3.Visible = false;
if (e.Result.Text == "rojo") btn4.Visible = false;
{ btn5.Visible = false;
btn3.Visible = true; btn6.Visible = false;
} else btn7.Visible = false;
btn8.Visible = false;
12 btn9.Visible = false;
Try Catch es una instrucción que permite generar
} else
evento y controla excepciones.
8
Finalmente, se evalúa el comando de {
voz que permita cerrar en su totalidad la Application.Exit();
aplicación: }
9
En el siguiente cuadro, se puede Cuadro 6
observar los 13 casos de prueba propuestos Resumen de pruebas realizadas
para la aplicación.
ID Nombre N° Intentos N° Intentos
Usuario correctos fallidos
Cuadro 5 1 Luis 23 1
Casos de prueba (CP)
2 Miguel 13 0
ID Clases Condiciones de entrada Resultad
de o
3 Fernando 22 2
CP Mostrar Mostrar No Cerrar
equivale color todos mostrar aplicac esperado 4 Gabriel 18 0
ncia los colores ión
colores 5 Roberto 25 1
01 (CV1) “Negro” Muestra 6 Rodrigo 12 0
el color
negro 7 María 16 0
02 (CV1) “Rojo” Muestra 8 Iván 23 1
el color
rojo 9 Ramiro 10 0
03 (CV1) “Azul” Muestra 10 Joel 8 0
el color
azul Total de Pruebas 170 5
04 (CV1) “Amarillo” Muestra
el color
amarillo En el cuadro anterior, se muestra el
05 (CV1) “Verde” Muestra detalle de las pruebas realizadas, las cuales
el color fueron 175. Los usuarios ingresaron
verde
comandos de voz, de los cuales solo 5
06 (CV1) “Rosado” Muestra
el color
fallaron, al no obtener el resultado esperado.
rosado Asimismo en el caso de 6 usuarios los
07 (CV1) “Blanco” Muestra resultados correctos fueron del 100%.
el color
blanco Gráfico 9
08 (CV1) “Morado” Muestra Resultados de prueba por usuario
el color
morado
09 (CV1) “Marrón” Muestra
el color
marrón
10 (CV2) “Todo Muestra
s” todos los
colores y
controles
11 (CV3) “Ning Oculta
uno” todos los
controles
y colores
12 (CV4) “Salir” Cierra la
aplicación
13 (CNV5) “Hola” “Mues “No “Cerrar No
tra” muest todo” genera
ra” evento
En el gráfico anterior, se muestra la
Por último, se solicitó a 10 usuarios distribución de intentos correctos en contraste
(niños entre 2 y 5 años) que realizan pruebas a los intentos fallidos, como se puede
en el ingreso de comandos de voz. Los observar, solo un usuario ha tenido 2 errores,
resultados fueron los siguientes: el valor más alto.
10
Es importante, también, tener un valor 3. El código empleado es bastante ligero
global de las pruebas realizadas. En resumen, y limpio. Asimismo, nos hemos dado
de las 175 pruebas realizadas, se obtuvo un cuenta que la aplicación es altamente
total de éxito de 170, lo cual representa el potenciable y podría incluir nueva
98%. Asimismo, solo se obtuvo 2 intentos funcionalidades.
fallidos, lo cual representa el 2%.
4. Los resultados obtenidos en las
pruebas son satisfactorios. Sin
Gráfico 5 embargo, deberíamos garantizar
Total de intentos fallidos y correctos respuestas esperadas en un 100%.
Estamos seguros que sin en factor de
interferencia durante el ingreso de los
comandos, lo podremos obtener.
Reconocimiento:
Referencias
11