Skip to content

CSharpTeoMan911/Eva

Repository files navigation

Eva



πŸ”„ Changelog

πŸ“Œ Latest Version: v7.0.5

  • πŸ†• Added option to select the online speech recognition mode (e.g. Web search, Form filling, Dictation)
  • 🐞 Fixed bugs regarding the command customisation function

Settings



πŸ“₯ Download



πŸ› οΈ Developer support



About ❓

  • Eva is an A.I. assistant that has the purpose of helping users multi-task. It also has the use of helping people with mental and phisical disabilities. All the commands to be executed are given to Eva through voice commmands.

πŸ’» Technologies



πŸ—£οΈπŸ’»βš™οΈπŸŒπŸ“‘ Speech recognition infrastructure


Speech system flowchart


  • The Vosk speech recogniser is listening permanently, if the listening function is activated. Once it recognises the word "Listen" or "Hey listen", the online speech recognition engine is activated. The online speech recognition engine has the role of extracting commands and their content.


πŸ§ πŸ’¬πŸ“–βš™οΈ Natural Language Understanding (NLU) in Eva


Eva utilizes Natural Language Understanding (NLU) in two key ways: speech recognition and contextual command/content extraction. These two components are powered by Vosk and Windows Online Speech Recognition engines for speech recognition, and a custom-built command and content extraction engine that I developed.

  1. Speech Recognition with NLU:
  • Both Vosk and Windows Online Speech Recognition use NLU to convert spoken words from any audio medium into text. These engines are responsible for interpreting and transcribing the user's voice.
  1. Contextual Command & Content Extraction:
  • Eva understands commands and extracts relevant content based on user input. This is done by processing commands through the following steps:

The NLU Process in Eva:

  1. Tokenization: Understanding the Command Type:
  • The first step in processing a user command is tokenization. This process breaks down the sentence into individual components to identify the command's action and any additional parameters that need to be extracted.
  • Example: "open chrome" – The first word ("open") signals that the command is to open an application (in this case, "chrome"). "search leopard 1 tank blueprint on google" – The first word ("search") indicates that the action is a web search.
  • If the command doesn’t match any known patterns, no action is taken.
  1. Secondary Tokenization: Extracting Parameters:
  • Once the command type (action) is identified, a secondary tokenization occurs to extract any secondary parameters.
  • Example: "search black shoes on amazon" – The system identifies that the content to search for is "black shoes" and the web application is "amazon".
  • If the second tokenization fails to identify valid parameters, no action is taken.
  1. Third Tokenization: Variable Extraction and Validation:
  • A third round of tokenization is used to extract variables (like search content or website names) based on the previous steps.
  • These variables are then validated against a predefined list of valid values (e.g., valid websites or search keywords).
  • Once validated, the relevant processes are executed based on the user's command. If no valid variables are found, no process is triggered.

How This Works:

  • Tokenization helps Eva break down the input into smaller parts, identifying the core action (open, search, etc.) and the necessary details (content, application, etc.).
  • If each step of the tokenization process identifies and validates the necessary components, Eva proceeds to execute the desired action (e.g., opening an app or performing a web search).
  • If any tokenization step fails (e.g., if the required content or application is missing), no action is taken.

Why This is Important:

  • Precision and Accuracy: By using multiple tokenization steps, Eva ensures that the correct processes are executed based on the user's exact intent.
  • Flexibility: Eva can handle various types of commands (e.g., opening apps, searching the web) by adjusting to different formats of user input.
  • User Experience: This process ensures that even with a wide variety of potential commands, Eva can respond accurately and intuitively.

302436808-cbed89ab-0788-4fcf-976d-bb694cdb888f


β±οΈπŸ“Š Natural Language Understanding Engine Time Complexities



TIME COMPLEXITY


The time complexity of the natural language understanding engine is in O(n) in the worst case and average case scenarios, and the time complexity O(n - ( n - (ci + 1) )) is in the best case scenario, where "ci" stands for current index where the engine could not match the input with any patern related to any process. Because the natural language understanding engine has 3 stages of tokenisation that are verifying if certain criterias are met within the given sentence, the natural language understanding engine will stop processing the information at the index where the sentence did not fulfil the specified criterias, depending at which tokenisation stage the natural language understanding engine the criterias are not satisfied, and thus the RAM memory resources and the CPU processing power are not wasted unnecessary.




βˆ‡πŸ”ΊπŸ“‰ Gradient fluctuation formula


Gradient fluctuation



Linear representation of the gradient fluctuation


Eva uses a unique algorithm developed by me to create stunning graphical user interface effects. This algorithm controls the gradient fluctuation used to produce smooth, dynamic animations. The effect is achieved by manipulating the gradient value incrementally, creating fluid transitions between different states of the GUI.

How the Algorithm Works:

The gradient fluctuation formula functions by increasing the offset of the gradient via an incremental sum. This incrementally increases the gradient value until a certain threshold is reached, at which point it decreases the gradient back to its original value, creating a smooth oscillation.

This fluctuation can be represented as two linear functions:

  1. Increasing the Gradient (Smooth Animation Start): When the animation begins, the formula y = x + v is used, where x is the current gradient value, y is the resulting gradient value, and v is the value added to the gradient to increment it. This continues until the threshold for the desired animation effect is reached.

  2. Decreasing the Gradient (Smooth Animation End): After reaching the threshold, the formula y = x - v is applied. The gradient value is decremented by v back to its original value, creating a smooth, flowing animation effect. This ensures that the animation ends as smoothly as it started.

Formula Breakdown:

  • y = x + v (Increasing the gradient value for a smooth animation start)
  • y = x - v (Decreasing the gradient value for a smooth animation finish)
  • Where:
  • x = Current gradient value
  • y = Resulting gradient value
  • v = Increment/Decrement value
  • All values x, y, and v are greater than zero.

This algorithm allows Eva to create smooth, beautiful animations with fluid transitions, adding a polished feel to the application’s graphical interface.


πŸ“‹ Usage

To give commands to Eva, simply say the word "Listen" or "Hey listen" followed by your desired command. For example:

  1. Say "Hey listen" or "Listen" to activate Eva.
  2. Then say "Search robots are cool on Google" to initiate a web search.

You can find detailed instructions on command patterns and troubleshooting in the Eva instruction manual.


Eva_Capture2121712780

Eva_Capture829367817

Eva_Capture1195645157

Eva_Capture1277613527

Eva_Capture34673362


βš™οΈ Command Customization

Eva_Capture2072297579


πŸ€– What Eva Can Do?


πŸ—£οΈ Give Commands to ChatGPT

  • Eva can communicate with ChatGPT and process your requests for intelligent, conversational replies.

Eva_Capture859377083

Eva_Capture1166755094

Eva_Capture443117994


⏲️ Set a Timer

  • Eva can set timers for you, whether it’s for cooking, work breaks, or other tasks!

Eva_Capture503136236

Eva_Capture885556763


πŸ“Έ Take Screenshots

  • Need to capture your screen? Eva can take screenshots on demand.

Eva_Capture2037081470


🌐 Search on Google

  • Eva can search Google for anything!

Eva_Capture2116847400


πŸ“° Search on Google News

  • Stay up to date with the latest news using Google News search.

Eva_Capture1332318160


πŸ–ΌοΈ Search on Google Images

  • Eva can search for images across the web on Google Images.

Eva_Capture1895286925


πŸ›’ Search on eBay

  • Want to find something on eBay? Eva has you covered.

Eva_Capture1343975081


πŸ›οΈ Search on Amazon

  • Shop for anything on Amazon with Eva.

Eva_Capture759505394


πŸ“š Search on Wikipedia

  • Need information? Eva can search Wikipedia for you.

Eva_Capture903369397


πŸ“Ί Search on Netflix

  • Eva can also search Netflix for shows or movies.

Eva_Capture2144580495


πŸ”΄ Search on Reddit

  • Eva can find discussions, threads, and more on Reddit.

Eva_Capture1857061334


πŸ“˜ Search on Facebook

  • Find posts and content on Facebook through Eva.

Eva_Capture719492630


πŸ“Έ Search on Instagram

  • Search Instagram for images, posts, and more.

Eva_Capture934103573


πŸ“§ Search on Gmail

  • Need to check your Gmail? Eva can search through it for you.

Eva_Capture2104650543


🐦 Search on Twitter

  • Eva can search through Twitter for tweets and hashtags.

Eva_Capture144044807


πŸ“Œ Search on Pinterest

  • Find pins and boards on Pinterest with Eva.

Eva_Capture571896073


πŸ’Ό Search on LinkedIn

  • Eva can search for professional content on LinkedIn.

Eva_Capture1342419452


πŸ§‘β€πŸ’» Search on Github

  • Developers rejoice! Eva can search GitHub repositories and issues.

Eva_Capture1030181943


πŸ“Έ Search on Unsplash

  • Looking for high-quality images? Eva can find them on Unsplash.

Eva_Capture1898758186


πŸ’» Search on Stack Overflow

  • Get answers to coding questions from Stack Overflow.

Eva_Capture1340621546


βš™οΈ Open and Close System Settings

  • Eva can manage your system settings for you.

Eva_Capture1994252519


πŸ’» Open and Close Applications

  • Eva can open and close multiple applications, such as Chrome, Firefox, Notepad, Visual Studio Code, and more.

Eva_Capture204556584

Eva_Capture24348866




Extra information


Eva is open source and free to use. You can find extra informations on the Wiki section of the repository.


Eva_Capture2116139740

Eva_Capture657687740