Example #1
0
        internal void SendResponse(string response)
        {
            #region Speak
            this.Cursor = Cursors.WaitCursor;

            if (!_consoleIsSilent && Program.RuntimeEngine != null)
            {
                Galatea.Speech.ISpeechModule speechModule = Program.RuntimeEngine.AI.LanguageModel.SpeechModule;

                if (speechModule != null && !speechModule.StaySilent)
                {
                    speechModule.TextToSpeech.Speak(response, this);
                }
            }

            this.Cursor = Cursors.Default;
            #endregion

            responseText = response;
            DisplayResponse();
        }
Example #2
0
        private void Initialize(string connectionString)
        {
            IDataAccessManager     database = null;
            SensoryMotorSystem     machine  = null;
            VisualProcessingSystem vision   = null;

            Gala.Data.Runtime.ContextCache newContextCache = null;
            IRobot          robot    = null;
            IChatbotManager chatbots = null;

            Galatea.Speech.ISpeechModule      speech = null;
            Galatea.Speech.ITextToSpeech      tts    = null;
            Galatea.Speech.ISpeechRecognition sr     = null;

            try
            {
                // Load Memory Library
                database = new Gala.Data.Databases.SerializedDataAccessManager(connectionString);
                database.Initialize(this);

                // Load Robotics Interfaces
                InitializationStatusUpdated?.Invoke(this, new EngineInitializationEventArgs(2, EngineInitializationResources.Engine_Initializing_Machine));
                machine = new Galahad.Robotics.MachineSystem();
                machine.Initialize(this);

                InitializationStatusUpdated?.Invoke(this, new EngineInitializationEventArgs(20, EngineInitializationResources.Engine_Initializing_Visuals));
                vision = new VisualProcessor(_settings.ImagingSettings);
                vision.Initialize(this);

                // Become Self-Aware
                InitializationStatusUpdated?.Invoke(this, new EngineInitializationEventArgs(33, EngineInitializationResources.Engine_Initializing_AI));
                robot           = SelfAwareness.BecomeSelfAware(this, "Galahad");
                newContextCache = new Gala.Data.Runtime.ContextCache();
                newContextCache.Initialize(this.ExecutiveFunctions);

                // Initialize Language Module
                InitializationStatusUpdated?.Invoke(this, new EngineInitializationEventArgs(50, EngineInitializationResources.Engine_Initializing_Language));
                this.User = new Galatea.Runtime.Services.User(_settings.DefaultUserName);
                chatbots  = new ChatbotManager(this.User, _settings);
                robot.LanguageModel.LoadChatbots(chatbots);

                // Add Text to Speech (even if silent)
                speech = new Galahad.Robotics.Speech.SpeechModule();
                speech.Initialize(robot.LanguageModel);
                speech.StaySilent = _settings.SpeechIsSilent;

                InitializationStatusUpdated?.Invoke(this, new EngineInitializationEventArgs(65, EngineInitializationResources.Engine_Initializing_Language_Speech));
                tts = new Galahad.Robotics.Speech.TextToSpeech(speech);
                tts.CurrentVoice = tts.GetVoice(0);
                InitializationStatusUpdated?.Invoke(this, new EngineInitializationEventArgs(80, EngineInitializationResources.Engine_Initializing_Language_Recognition));
                sr = new Galahad.Robotics.Speech.SpeechRecognition(speech);

                // Add Memory
                InitializationStatusUpdated?.Invoke(this, new EngineInitializationEventArgs(90, EngineInitializationResources.Engine_Initializing_Memory));
                robot.InitializeMemory(database);

                // Finalize
                database        = null;
                machine         = null;
                vision          = null;
                robot           = null;
                newContextCache = null;
                chatbots        = null;
                speech          = null;
                tts             = null;
                sr = null;
            }
            finally
            {
                if (database != null)
                {
                    database.Dispose();
                }
                if (machine != null)
                {
                    machine.Dispose();
                }
                if (vision != null)
                {
                    vision.Dispose();
                }
                if (robot != null)
                {
                    robot.Dispose();
                }
                if (newContextCache != null)
                {
                    newContextCache.Dispose();
                }
                if (chatbots != null)
                {
                    chatbots.Dispose();
                }
                if (speech != null)
                {
                    speech.Dispose();
                }
                if (sr != null)
                {
                    sr.Dispose();
                }
            }
        }