Git Product home page Git Product logo

virtual-assistant's Introduction

Virtual-Assistant

A virtual assistant is a software agent that can perform tasks or services for an individual.The term ”chatbot” is also used to refer to virtual assistants.

Virtual assistants use Artificial Intelligence to match user text input to executable commands. It can provide a wide variety of services, These includes:

  • Weather forecast of any place
  • Play multimedia files such as audio songs and video songs
  • Open Applications such as Web browsers, Media players(like vlc), text editors, etc
  • Open directories in linux, Date and time
  • Search anything on Google
  • Open websites of user’s choice
  • Search anything on Youtube
  • Open Calendar of any year
  • Find Restaurants in an area

screenshot from 2017-11-04 23 13 18

How it all works?

We are reading user’s sentence and passing it through our Natural Language Processing code i.e “ Simplified Multinomial Naive Bayes Algorithm “. NLP code processes the sentence and redirects it to the action that should be performed based on the meaning of the sentence.

The functionality is executed such as

  • A media file (such as audio and media files) is played.
  • Weather forecast is shown after the user enters the location.
  • Calendar is shown of the desired year.
  • Youtube search is performed for the desired content.
  • Google search is performed for whatever the user wants to.
  • Restaurants in the given area/locality are shown.

If the virtual assistant have no idea about the user’s sentence, it will simply search that sentence on Google.

Artificial Intelligence

Simplified Multinomial Naive Bayes Algorithm

Given a set of sentences, each belonging to a class, and a new input sentence, we can count the occurrence of each word in each class, account for its commonality and assign each class a score. Factoring for commonality is important: matching the word “it” is considerably less meaningful than a match for the word “cheese”. The class with the highest score is the one most likely to belong to the input sentence. This is a slight oversimplification as words need to be reduced to their stems, but you get the basic idea.

A sample training set:

ai sample

Let’s classify a few sample input sentences:

screenshot from 2017-11-04 23 08 21

Notice that the classification for “What’s it like outside” found a term in another class but the term similarities to the desired class produced a higher score. By using an equation we are looking for word matches given some sample sentences for each class, and we avoid having to identify every pattern.

Setup

This program uses GNUstep speech engine for the purpose of text to speech. To use this feature few commands are needed:

say converts text to audible speech using the GNUstep speech engine.

$ sudo apt-get install gnustep-gui-runtime
$ say "hello"

Firefox is needed to perform browser tasks such as opening google and youtube.

$ sudo apt-get install firefox

In addition to this, following commands are needed to install the necessary packages.

$ sudo apt-get install libcurl4-openssl-dev

$ sudo apt-get install libjson-c-dev

Compile

gcc main.c $(pkg-config --libs --cflags libcurl) -l json-c -std=gnu11

Restaurant

Virtual Assistant can find restaurants in an area.

restaurants

Weather

This feature requires curl.To use this feature you need to first install curl as follows-

$ sudo apt-get install curl

weather

Media

Virtual assistant can play any audio or video files of your choice. For playing media files vlc is needed. Get it here

$ sudo apt-get install vlc
Please configure your working directory location before using this feature in config file (value of HOME_DIR)

media

Youtube Search

Virtual assistant can search anything on youtube.

search youtube for Artificial Intelligence

This will show all the videos on youtube related to Artificial Intelligence. Artificial Intelligence is an example here, you can use anything you want to search.

youtube

Google Search

Virtual assistant can search anything on Google.

gsearch

Calendar

Virtual assistant can show calendar of any year.

open calendar

calendar

Help

Don't know how to use? Here use help command

help

help

Contributing Guide

  • This repository is strictly based on C language. No contributions other than C will be accepted.
  • When contributing to this repository, please first inform or discuss the change(s) you wish to make via an issue. This helps in letting others know what you're working on.
  • Before you push your changes to GitHub, make sure that your code compiles and runs without any errors or warnings.
  • New features are always welcome.

License

ritwik12/Virtual-Assistant is licensed under the GNU General Public License v3.0

Permissions of this strong copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

Credits

This project is developed with contributions by Riya

virtual-assistant's People

Contributors

ritwik12 avatar igo4jesus avatar rushikesh22 avatar riya-17 avatar speedy-software-ch avatar andy5995 avatar ellisken avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.