예제 #1
0
        /// <summary>
        /// Loads the grammar in to the recognition engine.
        /// </summary>
        protected virtual void LoadGrammar(string pathToGrammar, AerHandler handler)
        {
            AerDebug.Log("Loading Grammar...");
            Grammar grammar = new Grammar(pathToGrammar + @"Default.xml");

            RecognitionEngine.LoadGrammarCompleted += handler.ReadyToSpeak_Handler;
            RecognitionEngine.LoadGrammarAsync(grammar);
        }
예제 #2
0
 public AerInput(AerHandler handler, string pathToGrammar = @"Grammars\")
 {
     RecognitionEngine = new SpeechRecognitionEngine(new CultureInfo("en-US"));
     RecognitionEngine.SetInputToDefaultAudioDevice();
     LoadGrammar(pathToGrammar, handler);
     RecognitionEngine.SpeechRecognized += this.SpeechRecognized_Handler;
     RecognitionEngine.UpdateRecognizerSetting("ResponseSpeed", 750);
     NewInput = false;
     RecognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
 }
예제 #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to the A.E.R. Interface Console");
            AerDB data = new AerDB(@"json\");
            AerTalk talk = new AerTalk();

            Personality person = new Personality(talk, data);
            
            _AerHandler = new AerHandler(data, person);
            //I know this is bad, but there's no good way to get the delegate surfaced out of AerInput in to AerTalk yet.
            // This could be solved with a service registry, but I haven't thought that through yet
            _AerInput = new AerInput(@"Grammars\", person.GrammarLoaded_Handler); 

            HandleInput();
        }
예제 #4
0
        public static void ExecuteThread()
        {
            AerTalk talk = new AerTalk();
            AerDB data = new AerDB(AppDomain.CurrentDomain.BaseDirectory + @"\Apps\AER\json\");
            Personality person = new Personality(talk, data);
            _AerHandler = new AerHandler(data, person);
            _AerInput = new AerInput(AppDomain.CurrentDomain.BaseDirectory + @"\Apps\AER\Grammars\", person.GrammarLoaded_Handler);

            while(_RunWorker)
            {
                if (_AerInput.NewInput)
                {
                    _AerInput.NewInput = false;
                    _AerHandler.InputHandler(_AerInput.LastResult);
                }
            }
        }
예제 #5
0
        public void ExecuteThread()
        {
            AerDB data = new AerDB(@"json\");
            AerTalk talk = new AerTalk();

            Personality person = new Personality(talk, data);
            AerHandler handler = new AerHandler(data, person);
            //I know this is bad, but there's no good way to get the delegate surfaced out of AerInput in to AerTalk yet.
            // This could be solved with a service registry, but I haven't thought that through yet
            AerInput input = new AerInput(@"Grammars\", person.GrammarLoaded_Handler); 

            while (_RunWorker)
            {
                if (input.NewInput)
                {
                    input.NewInput = false;
                    handler.InputHandler(input.LastResult);
                }
                Thread.Sleep(10); //Keep CPU usage down until we handle responses async
            }
        }