Chatbot
Undergraduate projects, 2016
What is Chatbot?
A chatbot (also known as a smartbot, talkbot, chatterbot, Bot, IM bot, interactive agent, Conversational interface or Artificial Conversational Entity) is a computer program or an artificial intelligence which conducts a conversation via auditory or textual methods. Such programs are often designed to convincingly simulate how a human would behave as a conversational partner, thereby passing the Turing test. Chatbots are typically used in dialog systems for various practical purposes including customer service or information acquisition. Some chatterbots use sophisticated natural language processing systems, but many simpler systems scan for keywords within the input, then pull a reply with the most matching keywords, or the most similar wording pattern, from a database.
The term “ChatterBot” was originally coined by Michael Mauldin (creator of the first Verbot, Julia) in 1994 to describe these conversational programs. Today, most chatbots are either accessed via virtual assistants such as Google Assistant and Amazon Alexa, via messaging apps such as Facebook Messenger or WeChat, or via individual organizations’ apps and websites. Chatbots can be classified into usage categories such as conversational commerce (e-commerce via chat), analytics, communication, customer support, design, developer tools, education, entertainment, finance, food, games, health, HR, marketing, news, personal, productivity, shopping, social, sports, travel and utilities.
How to create chatbot?
In above video I’d to use my Persian accent! 😃 Interesting bot, but you need to add more codes as you wish to make it better. I’m talking with these bots when I’m alone. Hope you enjoy! using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Speech.Recognition;//1//adding speech recognition using System.Speech.Synthesis;//16//adding speech synthesis using System.IO;//23//workig with files using AIMLbot;//51// //22//saving sentence|action text file to debug folder namespace AI2 { public partial class Form1 : Form { private SpeechRecognitionEngine engine;//2// private SpeechSynthesizer speaker;//17//speech synthesis private Bot bot;//52// private User user;//52// private Dictionary<string, string> Commands; //24//key-value private Handler handler;//47//call writen class public Form1() { InitializeComponent(); } //3//1st function public void LoadSpeech() { try { bot = new Bot();//53// bot.isAcceptingUserInput = false;//53// bot.loadSettings();//53// user = new User("Ali", bot);//53// bot.loadAIMLFromFiles();//53// bot.isAcceptingUserInput = true;//53// speaker = new SpeechSynthesizer();//18//create an instance //20//get the voices foreach (InstalledVoice voice in speaker.GetInstalledVoices())//20// { this.comboBox1.Items.Add(voice.VoiceInfo.Name); } engine = new SpeechRecognitionEngine();//4//creating the instance of recognizer engine.SetInputToDefaultAudioDevice();//5//set the microphone engine.LoadGrammar(new DictationGrammar());//6//add the dictaion grammar engine.SpeechRecognized += new EventHandler(rec);//7//the recognition event engine.AudioLevelUpdated += new EventHandler (audioLevel);//9// engine.RecognizeAsync(RecognizeMode.Multiple);//11//starts the recognition //25// #region Loading key-value into the dictionary Commands = new Dictionary<string, string>();//28// handler = new Handler(Commands);//48//instanciate the class StreamReader reader = new StreamReader("cmds.txt");//26// while (reader.Peek() > 0)//27// { string line = reader.ReadLine();//27// var parts = line.Split('|');//27//parts[0] key parts[1] value Commands.Add(parts[0], parts[1]);//29//the commands into the dictionary } #endregion //30// #region Create the commands Grammar Grammar commandsGrammar = new Grammar(new GrammarBuilder(new Choices(Commands.Keys.ToArray())));//30// commandsGrammar.Name = "cmds";//31// engine.LoadGrammar(commandsGrammar);//32// #endregion } catch (Exception ex) { MessageBox.Show(ex.Message+"\n"+ex.StackTrace); } } private void Form1_Load(object sender, EventArgs e) { LoadSpeech();//12// } //8///2nd function rec private void rec(object s,SpeechRecognizedEventArgs e) { string speech = e.Result.Text;//15// if(e.Result.Confidence>0.2f)//after 50 0.45f changed to 0.2f { string answer = string.Empty;//46//after Handler.cs switch (e.Result.Grammar.Name)//33//then add new public class item called Handler.cs { case "cmds": handler.Handle(speech);//49// answer = handler.Response();//50 break; default: answer = GetResponse(speech);//55// break; } this.label1.Text = "You : " + speech;//15// speaker.SpeakAsync(answer);//19// //after 50 (speech) changed to answer } } //10//3rd funcion audioLevel private void audioLevel(object s, AudioLevelUpdatedEventArgs e) { this.progressBar1.Maximum = 100;//13// this.progressBar1.Value = e.AudioLevel;//14//run&see audio level// } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { try { speaker.SelectVoice(this.comboBox1.SelectedItem.ToString());//21// } catch(Exception ex) { MessageBox.Show(ex.StackTrace); } } private string GetResponse(string input)//54// { Request request = new Request(input, user, bot);//54// Result result = bot.Chat(request);//54// return result.Output; } } } </pre>