Negocio electronico.
Enviado por chafis gongora • 29 de Abril de 2016 • Ensayo • 3.014 Palabras (13 Páginas) • 291 Visitas
/4.Motor de Inferencia. El motor de inferencia es el corazón de un sistema experto. El método pregunta( ) es el más importante del motor de inferencia, sin embargo es simple debido a que sirve únicamente como un controlador del método principal intenta( ): Esencialmente, pregunta( ) envía a intenta( ) un objeto cada vez, hasta que, o bien intenta( ) encuentra un punto de unión, o bien la base de conocimiento se agota.
El método intenta( ) contiene la inteligencia del motor de inferencia. Su funcionamiento es el siguiente: Primero, los métodos siguienteSi( ) y siguienteNo comprueban la lista de atributos de cada Objeto poe el que pasan. Los métodos siguienteSi( ) y siguienteNo( ) quitan los objetos que no concuerdan con el estado actual del sistema. De hecho, siguienteSi( ) comprueba que los atributos del Objeto son iguales a todos los que especifica el usuario que debe tener, y siguienteNo ( ) comprueba que el Objeto no tiene ninguno de los atributos que hayan sido rechazados. Este paso satisface el primer punto de la especificación.
Especificaciones del mecanismo de inferencia.
El sistema experto no debe preguntar por el mismo atributo dos veces.
El sistema experto debería rechazar inmediatamente y, por lo tanto evitar cualquier objeto que no tuviera un atributo que hubiera sido rechazado con anterioridad.
Por medio de mandatos, el sistema experto debería ser capaz de informar porque está siguiendo una línea de razonamiento.
MotorInferencia |
- _bc:BaseConocimiento - atributosSi:List - atributosNo:List |
+ MotorInferencia(BaseConocimiento) + pregunta( ) + intenta(Objeto):bool + siguienteSi(Objeto):bool + siguienteNo(Objeto):bool + preguntaAtributo(Atributo);bool + porque(Objeto) |
EDITADO: Agregado otro ejemplo al final del post.
INTRODUCCIÓN:
La Sintetización de Voz es el "arte" por así decirlo de ,Mediante una Voz Sintética predefinida (Motor TTS por Defecto) pero no pregrabada(Abriendo las Puertas a las Secuencias Lógicas) generar un sonido prescrito gracias a las bondades de la Lingüistica Computacional (Tratamiento del Lenguaje Humano mediante Informática).
.Net 4.0 Contiene el Espacio de Nombre "System.Speech" que como el mismo Microsoft define: contienen tipos que admiten reconocimiento de voz.
CONTENIDO:
Dentro del Espacio de Nombre System.Speech.Synth esis econtramos las clases:
BookmarkReachedEventArgs (Clase) |
FilePrompt (Clase) |
InstalledVoice (Clase) |
PhonemeReachedEventArgs (Clase) |
Prompt (Clase) |
PromptBuilder (Clase) |
PromptEventArgs (Clase) |
PromptStyle (Clase) |
SpeakCompletedEventArgs (Clase) |
SpeakProgressEventArgs (Clase) |
SpeakStartedEventArgs (Clase) |
SpeechSynthesizer (Clase) |
StateChangedEventArgs (Clase) |
VisemeReachedEventArgs (Clase) |
VoiceChangeEventArgs (Clase) |
VoiceInfo (Clase) |
y las Enumeraciones:
PromptBreak (Enumeración) | ||||||||
PromptEmphasis (Enumeración) | ||||||||
PromptRate (Enumeración) | ||||||||
PromptVolume (Enumeración)
|
Código C#.
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Consola_Speech_RV
- {
- class Sintetizacion
- {
- }
- }
Añadimos una Referencia a nuestro Proyecto:
[pic 2]
En la Pestaña .NET seleccionamos System.Speech
[pic 3]
Utilizamos la Referencia, añadiendo las lineas respectivas en la Cabecera.
Código C#.
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Speech;
- using System.Speech.Synthesis;
- namespace Consola_Speech_RV
- {
- class Sintetizacion
- {
- }
- }
Creamos un Objeto de la Clase SpeechSynthesizer llamado oS.
Código C#.
- public SpeechSynthesizer oSynthesizer = new SpeechSynthesizer();
Luego Utilizamos un Método al que llamaremos Dialogo, Comparto el Método con ustedes.
Código C#.
- public void Dialogo()
- {
- string pregunta;
- oSynthesizer.Speak("I'm Ready.");
- Console.WriteLine("INSTRUCCION:");
- do
- {
- Console.WriteLine("============================:");
- Console.WriteLine("Preguntas Disponibles:");
- Console.WriteLine("============================:");
- Console.WriteLine("¿Como Estas?:");
- Console.WriteLine("Recuerda, Para Salir tecla 'Adios':");
- pregunta = Console.ReadLine();
- switch (pregunta)
- {
- case "¿Como Estas?":
- {
- string a = "Well, I don't Speak Spanish, But, I Can understand";
- string b = "I'm so Happy for 'Read' your Words, it looks So Funny";
- Console.WriteLine(a);
- oSynthesizer.Speak(a);
- Console.WriteLine(b);
- oSynthesizer.Speak(b);
- }
- break;
- case "Adios":
- {
- oSynthesizer.Speak("Good Bye, Made by Mister Rv.");
- }
- break;
- default:
- oSynthesizer.Speak("Well, I Can't Understand That Question, ¿Do you Have other Question?.");
- break;
- }
- } while (pregunta != "Adios");
- }
En pocas palabras, Al ejecutar el Método en la Clase Program recibimos una indicación de que este método está funcionando ("I'm Ready") luego, la estructura lógica repetitiva Do - While se ejecutará siempre y cuando la cadena ingresada no sea otra que "Adios"
Próximamente Adjuntare un Proyecto de Ejemplo Tipo Formulario de Windows.
Gracias!
EDIT:
EJEMPLO 2:
Seleccionar Voces Disponibles.
Creamos las Siguientes Variables y Objetos:
...