Este documento describe el desarrollo de una aplicación didáctica de reconocimiento de voz para la identificación de colores usando el lenguaje de programación C#. La aplicación permite que los niños identifiquen colores mediante comandos de voz para facilitar su aprendizaje. Se utilizó Visual Studio 2012 como entorno de desarrollo e integrado y C# como lenguaje de programación. El programa reconoce comandos de voz para mostrar u ocultar colores individuales o todos, y puede cerrarse mediante comando de voz.
diseña y construye programas orientado a objetos utilizando eficaz y efectiva...
Aplicación de reconocimiento de voz para identificar colores
1. 1
DESARROLLO DE UNA APLICACIÓN DIDÁCTICA DE RECONOCIMIENTO DE VOZ
PARA LA IDENTIFICACIÓN DE COLORES USANDO EL LENGUAJE DE
PROGRAMACIÓN C#
Universidad Señor de Sipán
Facultad de Ingeniería Arquitectura y Urbanismo
Pimentel, Perú - Julio, 2017
Alvarez Gonzaga, Braulio Ricardo
agonzagab@crece.uss.edu.pe
Resumen: En la actualidad, los Sistemas
Basados en Conocimiento (SBC) se han
vuelto un campo de estudio con alta demanda
dentro de la Ingeniería de Sistemas, ya que
las soluciones informáticas dentro de esta
línea tienen diversas y útiles aplicaciones.
Una parte importante de ello es la
comunicación entre la computadora y el
hombre. Por ello, el reconocimiento de voz es
parte indispensable de este tipo de sistemas.
En el presente informe, se hace una detallada
explicación del software desarrollado
“Aplicación didáctica de reconocimiento
de voz para la identificación de colores
usando el lenguaje de programación c#”.
El objetivo del programa es facilitar el
aprendizaje de niños en cuanto a la
identificación de colores usando comandos de
voz, lo cual permite una comunicación más
directa con la computadora. En este trabajo,
se utilizó Visual Studio 2012 como entorno de
desarrollo (IDE)
Palabras Clave: Identificación de colores,
Reconocimiento de voz, Lenguaje C#,
Sistemas Basados en Conocimiento (SBC),
Visual Studio.
1. Introducción:
En el presente documento, tiene como
objetivo describir el desarrollo de una
aplicación de reconocimiento de voz para la
identificación de colores, usada para acelerar
el proceso de aprestamiento de niños.
Para poder desarrollar el programa, se
utilizó Visual Studio 2012 como Integrated
Development Environment (IDE) y C# como
lenguaje de programación. En este proyecto,
se trabajó con la librería System.speech, una
librería que permite la implementación de
reconocimiento de voz en Windows.
El proyecto terminó con éxito y se pudo
agregar algunas mejoras en la interfaz de
inicio para que sea más amigable. Debemos
tener en cuenta que la aplicación está
destinada para niños, quienes deben entablar
una comunicación con el ordenador.
Al finalizar con la propuesta, se
evidenció que la aplicación el altamente
potenciable y puede ser enriquecida con
algunas opciones complementarias para que
la experiencia comunicativa sea más real.
2. Elección del IDE y lenguaje de
programación:
2.1. Entorno de desarrollo integrado (IDE):
Un entorno de desarrollo integrado, es
un entorno de programación que ha sido
construido y empaquetado en un programa de
aplicación, es decir, puede ser instalado en
una computadora para facilitar el desarrollo de
programas informáticos.
Todo IDE (Integrated Development
Environment)1
posee un editor de código, un
depurador, un compilador y un constructor de
interfaz gráfica de usuario (GUI). Dentro de
los IDE más conocidos, tenemos: MS Visual
1
En la actualidad, el término IDE se utiliza
indistintamente para hacer referencia a todos los
Entornos de Desarrollo Integrado.
2. 2
Studio, NetBeans, Eclipse, etc. Los IDE
ofrecen un marco de trabajo muy amplio para
la mayoría de lenguajes de programación:
Java, Visual Basic, C++, C#, etc.
Para el desarrollo de nuestra aplicación,
hemos utilizado Microsoft Visual Studio
2012 como IDE, para dicha elección se ha
tomado en consideración los siguientes
criterios: En primer lugar, nuestra aplicación
sería utilizada en Sistemas Operativos (SO)
Windows. En segundo lugar, posee una curva
de aprendizaje muy rápida, ya que es
altamente intuitivo para el programador pues
permite trabajar directamente con Windows
Form (Formularios para Windows). En tercer
lugar, soporta múltiples lenguajes de
programación, tales como C++, C#, Visual
Basic, etc. Por último, posee potentes librerías
a disposición; principalmente, la que fue de
nuestro interés, es aquella que permite el
reconocimiento de voz.
Imagen 1
Logo Microsoft Visual Studio
Es importante mencionar que para para
la ejecución de nuestra aplicación IDE dentro
Sistema Operativo elegido, el cual es
Windows 7 Service Pack 12
, ha sido necesario
contar con la instalación de Microsoft .NET
Framework 3
4.5.
La mejor forma de entender la estructura
de este componente es ver gráficamente sus
capas.
2
El Service Pack es un paquete de actualización emitido
por Windows para corregir errores o mejorar el
rendimiento del Sistema Operativo.
3
El Microsoft .Net Framework es un componente para
Windows que provee soluciones previamente
codificadas para requerimiento comunes de los
programas, las cuales conforman la biblioteca. NET.
Este componente posee soluciones dentro de la GUI
(Interfaz Gráfica de Usuario), acceso a datos,
criptografía, algoritmos numéricos, entre otros.
Gráfico 1
Composición de NET Framework
Marco de trabajo. NET
VB C++ C# J# …
Visual
Studio
Especificaciones de Lenguaje Común
(CLS)
ASP.NET Servicios
Web XML y
formularios web
Formularios
Windows
ADO:NET: Datos y XML
Biblioteca de clases
Entorno común de ejecución
Sistema Oeprativo (SO)
El cuadro anterior permite conocer la
composición detallada de NET Framework,
importante componente para inicial el trabajo
con Visual Studio y poder realizar la ejecución
dentro de un entorno común en Windows.
2.1. Lenguaje de programación:
El lenguaje de programación elegido fue
C#, el cual es un lenguaje que permite
Programación Orientado a Objetos (POO)4
.
Permite a los programadores crear una
variedad de aplicaciones que se ejecuten bajo
.NET Framework. Se puede usar C# para
crear aplicaciones cliente Windows, servicios
web XML, componentes distribuidos,
aplicaciones Cliente – Servidor, aplicaciones
de base de datos, etc.
El lenguaje C# permite trabajar con los
conceptos de encapsulación, herencia y
polimorfismo. Todas las variables y métodos,
4
La Programación Orientada a Objetos, conocida por
sus iniciales POO, es un paradigma de programación
que permite desarrollar aplicaciones con un código más
ordenado y de fácil mantenimiento. Entre los conceptos
fundamentales de la POO se encuentran los siguientes:
Clase, herencia, objeto y método.
3. 3
incluido el método Main5
, se encapsulan
dentro de una clase, la cual puede ser
implementada dentro de varias interfaces.
2.1.1. Proyecto en Lenguaje C#:
Las aplicaciones desarrolladas en
lenguaje C# se ejecutan en .NET Framework,
el cual incluye un sistema de ejecución virtual
llamado Common Language Runtine (CLR)6
y
un conjunto de biblioteca de clases.
Asimismo, el código fuente escrito en
C# se compila en un lenguaje intermedio (IL),
como mapas de bits y cadenas, se almacenan
en un disco en un archivo ejecutable
denominado ensamblado, con la extensiones
.exe o dll. Un ensamblado posee un
documento de manifiesto que proporciona
información sobre los tipos, la versión,
referencia y lo requisitos de seguridad del
ensamblado.
Cuando se ejecuta el programa de C#,
el ensamblado se carga en el CRL, el cual
podría realizar acciones en función del
manifiesto. Si cumple los requisitos de
seguridad, el CLR realiza la compilación Just
in Time (JIT)7
para convertir el código IL en
instrucciones máquina nativas.
Los servicios en tiempo de ejecución
también incluyen una amplia biblioteca8
de
más de 4000 clases organizadas por
nombres, las cuales proporcionan funciones
útiles para nuestras aplicaciones. En el
siguiente diagrama, se ilustran las relaciones
descritas líneas arriba.
5
El método Main es el método de entrada a la aplicación
desarrolla en C#.
6
El Common Language Runtine (CLR) es el entono
encargado de ejecutar una forma intermedia de código
en código máquina nativa, a través de una compilación
en Tiempo de Ejecución.
7
Just In Time (JIT) es la compilación en tiempo de
ejecución. Consiste en traducir el Bytcode (código
intermedio) en código máquina nativo.
8
Una Biblioteca de clase es un conjunto de
implementaciones funcionales codificadas en un
lenguaje de programación y que pueden ser llamada por
el programador.
Gráfico 2
Relación entre Visual C# y .NET Framework
Como se puede observar en el gráfico
anterior, un proyecto en visual C# trabaja
estrechamente con las bibliotecas de .NET
Framework para poder ejecutar una aplicación
en el Sistema Operativo.
3. Sistemas de reconocimiento automático
de voz / habla:
Los Sistemas de Reconocimiento de
Habla (SRH), también llamados Sistemas de
Reconocimiento de Voz, es una de las
Proyecto de Visual C#
Archivos(s) de
código fuente
de C#
Recursos
Referencias
Compilador de C#
Crea
Metadatos de MSIL del ensamblado
administrativo (.exe o dll)
.NET Framework
Seguridad de Common Language
Runtine / Recolección de elementos no
utilizados / Compilador JIT
Biblioteca de clases .NET Framework
Utiliza
Sistema Operativo (SO)
4. 4
disciplinas de la Inteligencia Artificial (IA)9
, la
cual tiene como objetivo permitir la
comunicación hablada entre seres humanos y
computadoras.
3.1 Proceso básico de un SRH:
Un Sistema de reconocimiento de voz
tiene un proceso elemental. Primero, se recibe
una señal de voz a través de un micrófono.
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
9
La Inteligencia Artificial (IA) es una ciencia de la
Computación que busca imitar la inteligencia humana.
El término fue escuchado por primera vez en la
conferencia del matemático John McCarthy en el año
1959.
Tal como se puede observar, el punto
de partida (señal de voz) es indispensable
para concluir con el proceso hasta la
obtención de la respuesta. Por ello, la claridad
en la comunicación por parte del emisor, debe
ser en un alto grado de coincidencia para
garantizar la respuesta esperada.
Imagen 2
Aparato fonador
En la imagen anterior, se pueden ver
todos los órganos que componen el aparato
fonador Humano: Fosas nasales, paladar
duro, dientes, labios, paladar blando, epiglotis,
cuerdas vocales y tráquea. El correcto
funcionamiento de estos órganos debería
garantizar la calidad de la señal de voz.
Imagen 3
Gráfico de señal de voz
Palabra: Rojo
En el gráfico anterior, se ha ingresado la
palabra “rojo” usando un micrófono
convencional. La imagen se obtuvo del
programa WavePad.
Procesamiento
acústico
(parametrización)
Señal de voz
Cálculo de
similitudes
Toma de
decisiones
(respuesta)
5. 5
4. Metodología de desarrollo:
La metodología utilizada para el
desarrollo de la aplicación fue XP o
Programación Extrema10
, la cual es una
metodología de desarrollo ágil. La
programación XP usa un enfoque orientado a
objetos.
El proceso de la Programación Extrema
tiene cuatro etapas estructurales:
Planificación, diseño, prueba y codificación.
Gráfico 4
Proceso de Programación Extremo (XP)
En el gráfico anterior, podemos observar
las etapas principales de la metodología ágil
XP. Se debe tener en cuenta que el rediseño
es parte importante este tipo de
programación, ya que se van identificando
algunas oportunidades de mejora durante el
proceso. En los siguientes párrafos se hará un
pequeño análisis de los 4 momentos del
proceso de nuestra aplicación
4.1. Planificación:
En la etapa de planificación se busca
recabar los requerimientos del software, los
requerimientos técnicos. Es necesario
determinar la información de entrada y la
información de salida.
10
La metodología Extreme Programming (XP) es un
enfoque de la ingeniería del software propuesto por Kent
Beck, autor del libro “Extreme Programming Explained:
Embrace Change” en el año 1999. Actualmente es el
más destacado de los procesos ágiles.
Cuadro 1
Requerimiento de Software
Cuadro 2
Requerimiento de Hardware
En los cuadros anteriores, se
determinan los requerimientos a nivel de
software y hardware, lo cual ha sido
importante para el inicio de la programación y
pruebas respectivas.
Para esta aplicación, se ha pensado en
una lista finita de colores, la cual listaremos y
codificaremos en el siguiente cuadro:
Cuadro 3
Lista de colores
ID
color
Nombre Color Color
01 Negro
02 Azul
03 Rojo
04 Verde
05 Amarillo
06 Blanco
07 Marrón
08 Rosado
09 Morado
La lista de colores mencionadas líneas
arriba permitirá evaluar las respuestas de la
aplicación en función de los comando de voz
ingresados
ID Requerimiento
Software
Descripción
01 Sistema Operativo (SO) Windows 7
Service Pack 1
02 Entorno Integrado de
Desarrollo (IDE)
Visual Studio
2012
03 Lenguaje de
Programación
C#
04 NET Framework 4.5
ID Requerimiento
Hardware
Descripción
01 Procesador 1.6 GHz
02 Memoria RAM 1.5 GB
03 Disco duro 4 GB disponibles
Proceso de
Programación
Extrema (XP)
Planificación Diseño
CodificaciónPrueba
6. 6
4.2. Diseño:
En la etapa de diseño, debemos realizar
un mapa de lo que sería nuestra aplicación, lo
cual debe ser el punto de partida para la
codificación. Para nuestro proyecto, tenemos
un caso de uso bastante básico llamado
“Identificar colores”.
Imagen 4
Caso de Uso: Identificar Colores
En la imagen anterior, elaborado con
IBM Rational Software Architect11
. En este
caso el usuario, el cual sería un niño de 2 a 5
años, quien está en proceso de aprestamiento
a la identificación de colores.
A continuación, se hace un breve diseño
de la aplicación:
Gráfico 5
Funcionamiento de la aplicación:
Identificación de colores
Asimimso, la aplicación debería tener
tres comandos adicionales que permita
mostrar todos los colores, no mostrar ninguno
y, finalmente, cerrar la aplicación:
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)
Gráfico 6
Funcionamiento de la aplicación:
Mostrar todos los colores
Gráfico 7
Funcionamiento de la aplicación:
No mostrar ningún color
Gráfico 8
Funcionamiento de la aplicación:
Cerrar aplicación
Tener los esquemas anteriores con las
funcionalidades que debe tener la aplicación,
nos dará una mayor facilidad al momento de ir
codificando los requerimientos detallados en
los esquemas.
Ingreso de
señal de
Voz
indicando
un color
La
aplicación
evalúa las
coincidenci
as y ubica
el color
La
aplicación
muestra el
color
deseado
Inicio Proceso Salida
Ingreso de
señal de
Voz
indicando
«Todos»
La
aplicación
busca la
instrucción
relacionada
al comando
La
aplicación
muestra
todos los
colores
Inicio Proceso Salida
Ingreso de
señal de
Voz
indicando
«Ninguno»
La
aplicación
busca la
instrucción
relacionada
al comando
La
aplicación
no muestra
ningún
color
Inicio Proceso Salida
Ingreso de
señal de
Voz
indicando
«Cerrar»
La
aplicación
busca la
instrucción
relacionada
al comando
La
aplicación
cierra
Inicio Proceso
7. 7
4.2. Codificación:
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).
A continuación, se hace un breve
análisis del código implementado en la
aplicación. Para ello, se usará fragmentos de
códigos extraídos del IDE.
Antes del inicio de todo, debemos llamar
a la clase “Speech.Recognition”, lo cual
permitirá trabajar con reconocimiento de voz,
el código es el siguiente:
using System.Speech.Recognition;
El System.Speech.Recognition es un
espacio de nombres que contiene tipos de
tecnología para Windows Desktop Speech
para la implementación de reconocimiento de
voz.
Dentro del formulario Identificador,
crearemos un objeto del tipo
SpeechRecognitionEngine, lo cual nos
proporciona los medios para tener acceso y
administrar un motor de reconocimiento de
voz.
SpeechRecognitionEngine rec = new
SpeechRecognitionEngine ();
Posteriormente, se colocaron dentro del
formulario de reconocimiento nueve controles
con los colores a los cuales se ha hecho
referencia en la etapa de planificación (ver
cuadro 3).
En la siguiente imagen, se puede
visualizar el formulario creado con los
controles:
Imagen 4
Formulario de identificación de colores
Una vez colocados los controles, se
procedió a ocultarlos, el código empleado para
ello, fue el siguiente:
private void Form1_Load (object sender,
EventArgs e)
{
btn1.Visible = false;
btn2.Visible = false;
btn3.Visible = false;
btn4.Visible = false;
btn5.Visible = false;
btn6.Visible = false;
btn7.Visible = false;
btn8.Visible = false;
btn9.Visible = false;
}
El siguiente paso fue crear un objeto de
clase Choices, la cual representa un conjunto
de alternativas de una gramática de
reconocimiento de voz.
Choices lista = new Choices ();
Luego, creamos la estructura del
vocabulario que deseamos reconozca
lista.Add(new string[] { "negro", "azul",
"rojo", "verde", "amarillo", "blanco",
"marron", "rosado", "morado", "todos",
"ninguno", "salir" });
8. 8
Después de estructurar el vocabulario,
creamos un objeto de tipo Grammar y
hacemos referencia a la lista:
Grammar gramatica = new Grammar (new
GrammarBuilder (lista));
Con la gramática lista para ser utilizada,
creamos una instrucción del tipo try catch12
.
Luego, se hace uso del objeto rec creado
anteriormente y se pide que haga uso del
micrófono que por defecto estamos utilizando
en la computadora:
try
{
rec.SetInputToDefaultAudioDevice ();
Le pedimos que haga uso de la
gramática y pasamos la lista finita de colores.
Se crea el evento de reconocimiento de voz y
que éste se realicen en modo múltiple.
rec.LoadGrammar (gramatica);
rec.SpeechRecognized += reconocimiento;
rec.RecognizeAsync
(RecognizeMode.Multiple);
}
catch (Exception)
{
throw;
}
Luego, evaluamos las condiciones de
entrada dentro del método de reconocimiento,
la cual debe dar como respuesta el color
deseado:
Void reconocimiento (object sender,
SpeechRecognizedEventArgs e)
{
if (e.Result.Text == "negro")
{
btn1.Visible = true;
} else
if (e.Result.Text == "azul")
{
btn2.Visible = true;
} else
if (e.Result.Text == "rojo")
{
btn3.Visible = true;
} else
12
Try Catch es una instrucción que permite generar
evento y controla excepciones.
if (e.Result.Text == "verde")
{
btn4.Visible = true;
} else
if (e.Result.Text == "amarillo")
{
btn5.Visible = true;
} else
if (e.Result.Text == "blanco")
{
btn6.Visible = true;
} else
if (e.Result.Text == "marron")
{
btn7.Visible = true;
} else
if (e.Result.Text == "rosado")
{
btn8.Visible = true;
} else
if (e.Result.Text == "morado")
{
btn9.Visible = true;
} else
}
Ahora se debe evaluar una condición
para mostrar todos los colores de la lista:
if (e.Result.Text == "todos")
{
btn1.Visible = true;
btn2.Visible = true;
btn3.Visible = true;
btn4.Visible = true;
btn5.Visible = true;
btn6.Visible = true;
btn7.Visible = true;
btn8.Visible = true;
btn9.Visible = true;
} else
Evaluamos la condición para no mostrar
ningún color de la lista, lo cual debe suceder
al ingresar el comando de voz “Ninguno”.
if (e.Result.Text == "ninguno")
{
btn1.Visible = false;
btn2.Visible = false;
btn3.Visible = false;
btn4.Visible = false;
btn5.Visible = false;
btn6.Visible = false;
btn7.Visible = false;
btn8.Visible = false;
btn9.Visible = false;
} else
9. 9
Finalmente, se evalúa el comando de
voz que permita cerrar en su totalidad la
aplicación:
if (e.Result.Text == "salir")
{
Application.Exit();
}
Con ello, se da por finalizado la
implementación de las funcionalidades
básicas de la aplicación, las cuales fueron
detalladas en la parte de diseño. Sin embargo,
debemos tener en cuenta que la aplicación
cuenta con un formulario adicional de inicio, el
cual permite acceder a la aplicación y usar las
funciones de reconocimiento de voz.
Imagen 5
Formulario de inicio
No nos detendremos a analizar el
funcionamiento y codificación de este
formulario, ya que es elemental, pero daremos
el código para fines de comprensión:
private void button1_Click(object sender,
EventArgs e)
{
FrmIdentificador frm1 = new
FrmIdentificador ();
frm1.Show();
FrmInicio frm2 = new FrmInicio();
frm2.Close();
this.Hide();
}
private void button2_Click(object sender,
EventArgs e)
{
Application.Exit();
}
4.2. Prueba:
Para la etapa de pruebas, se construyó
un cuadro de equivalencias de clases válidas
(CV) y clases no válidas (CNV), lo cual
permite ordenar las condiciones de entrada
antes de realizar las pruebas y evaluar los
resultados esperados:
Cuadro 4
Cuadro de equivalencias de clases válidas
(CV) y clases no válidas (CNV)
N° Condici
ones de
entrada
Tipo Clases Válidas Clases no válidas
Entrada Código Entrada Código
01. Nombre
de color
Comando
de voz
Cualquier
color del
objeto
Grammar
<CV01> Cualquier
palabra
que no
contenga
el objeto
Grammar
<CNV01>
02. Mostrar
todos
los
colores
Comando
de voz
Palabra
“Todos”
<CV02> Cualquier
palabra
que no
contenga
el objeto
Grammar
<CNV02>
03. No
mostrar
colores
Comando
de voz
Palabra
“Ninguno”
<CV03> Cualquier
palabra
que no
contenga
el objeto
Grammar
<CNV03>
04.
Salir de
la
aplicaci
ón
Comando
de voz
Palabra
“Salir”
<CV04>
Cualquier
palabra
que no
contenga
el objeto
Grammar
<CNV04>
Después del cuadro de equivalencias,
se procedió a realizar los casos de prueba
(CP) para cada uno de los comandos de voz
válidos.
10. 10
En el siguiente cuadro, se puede
observar los 13 casos de prueba propuestos
para la aplicación.
Cuadro 5
Casos de prueba (CP)
Por último, se solicitó a 10 usuarios
(niños entre 2 y 5 años) que realizan pruebas
en el ingreso de comandos de voz. Los
resultados fueron los siguientes:
Cuadro 6
Resumen de pruebas realizadas
En el cuadro anterior, se muestra el
detalle de las pruebas realizadas, las cuales
fueron 175. Los usuarios ingresaron
comandos de voz, de los cuales solo 5
fallaron, al no obtener el resultado esperado.
Asimismo en el caso de 6 usuarios los
resultados correctos fueron del 100%.
Gráfico 9
Resultados de prueba por usuario
En el gráfico anterior, se muestra la
distribución de intentos correctos en contraste
a los intentos fallidos, como se puede
observar, solo un usuario ha tenido 2 errores,
el valor más alto.
ID
Usuario
Nombre N° Intentos
correctos
N° Intentos
fallidos
1 Luis 23 1
2 Miguel 13 0
3 Fernando 22 2
4 Gabriel 18 0
5 Roberto 25 1
6 Rodrigo 12 0
7 María 16 0
8 Iván 23 1
9 Ramiro 10 0
10 Joel 8 0
Total de Pruebas 170 5
ID
CP
Clases
de
equivale
ncia
Condiciones de entrada Resultad
o
esperado
Mostrar
color
Mostrar
todos
los
colores
No
mostrar
colores
Cerrar
aplicac
ión
01 (CV1) “Negro” Muestra
el color
negro
02 (CV1) “Rojo” Muestra
el color
rojo
03 (CV1) “Azul” Muestra
el color
azul
04 (CV1) “Amarillo” Muestra
el color
amarillo
05 (CV1) “Verde” Muestra
el color
verde
06 (CV1) “Rosado” Muestra
el color
rosado
07 (CV1) “Blanco” Muestra
el color
blanco
08 (CV1) “Morado” Muestra
el color
morado
09 (CV1) “Marrón” Muestra
el color
marrón
10 (CV2) “Todo
s”
Muestra
todos los
colores y
controles
11 (CV3) “Ning
uno”
Oculta
todos los
controles
y colores
12 (CV4) “Salir” Cierra la
aplicación
13 (CNV5) “Hola” “Mues
tra”
“No
muest
ra”
“Cerrar
todo”
No
genera
evento
11. 11
Es importante, también, tener un valor
global de las pruebas realizadas. En resumen,
de las 175 pruebas realizadas, se obtuvo un
total de éxito de 170, lo cual representa el
98%. Asimismo, solo se obtuvo 2 intentos
fallidos, lo cual representa el 2%.
Gráfico 5
Total de intentos fallidos y correctos
Es importante mencionar que han
estado presentes factores de pronunciación,
interrupciones y ruido durante la etapa de
prueba, lo cual puede haber contribuido a
tener un 2% de resultados no esperados.
Estamos seguros que dentro de las
condiciones necesarias para poder garantizar
la calidad de la señal de voz, podremos
obtener un 100% de resultados esperados.
5. Conclusiones:
1. El reconocimiento de voz es una parte
fundamental de la Inteligencia Artificial
(IA) y los Sistemas Basados en
Conocimiento (SBC), ya que una de
las principales características es tratar
de simular la inteligencia humana,
siendo el lenguaje hablado su principal
producto.
2. Trabajar con Visual Studio 2012 ha
sido altamente satisfactorio, ya que
cuenta con una amplia librería de
reconocimiento de voz a nuestra
disposición.
3. El código empleado es bastante ligero
y limpio. Asimismo, nos hemos dado
cuenta que la aplicación es altamente
potenciable y podría incluir nueva
funcionalidades.
4. Los resultados obtenidos en las
pruebas son satisfactorios. Sin
embargo, deberíamos garantizar
respuestas esperadas en un 100%.
Estamos seguros que sin en factor de
interferencia durante el ingreso de los
comandos, lo podremos obtener.
Reconocimiento:
Agradecemos a las personas que nos
brindaron su apoyo durante el desarrollo del
proyecto y a quienes participaron durante la
fase de pruebas.
Referencias
[1] R. Pressman, Ingeniería del Software
México, D.F.: McGraw-Hill. 2010
[2] G. Velásquez, Sistema de reconocimiento
de voz en Matlab, Tesis para obtener el grado
de Ingeniero electrónico en la Universidad de
San Carlos de Guatemala. 2008
[3] D. Fandiño, Estado del arte en el
reconocimiento automático de voz.
Universidad Nacional de Colombia. 2005
--------------------------------------------------------------
Autor: Braulio Ricardo Alvarez Gonzaga,
técnico en Computación e Informática,
Licenciado en Lengua y Literatura, estudios de
maestría en Tecnologías de Información y
Comunicaciones y estudiante de Ingeniería de
Sistemas.