AI_Assistant - This is a Python based Voice Assistant.

Overview

AI_Assistant

This is a Python based Voice Assistant. This was programmed to increase my understanding of python and also how the in-general Voice Assistants work.

                                                 AI_Assistant

                                                version 0.0.0

Hello Guys!!

This is a cross-platform program, however "THIS PROGRAM IS CURRENTLY DEVELOPED TO WORK ONLY FOR WINDOWS AND macOS AND NOT FOR ANY LINUX DISTROS."

Before starting to tell you about my Assistant, I would quickly like to go over some IMPORTANT POINTS which I think every user should know. This would avoid the users from encountering any errors, and if they do, they would know where the problem is.

  • Firstly, install all the required packages to ensure smooth functioning of the entire program and its utilities. This program has several dependencies, which can be seen in the requirements.txt

    • You can do install the program's dependencies by "pip install -r requirements.txt". You can use pip or pip3, doesn't matter. The command is the same for both platforms (Windows or macOS).

    • Run this command in the "AI_Assistant" directory in the command prompt to avoid FileNotFound Error.

    • Wait for the packages to get installed and if there is any error in the installation of the package, you can either google or raise a query.

  • This program uses the populer pyttsx3 for text to speech conversion. I have set the Voice ID of the assistant in accordance to the voices available on my personal computer. However the "id" may vary on your computer, which is why I have programmed "Try_Voices.py" with which you can try each and every voice available on your device. Usage has been demonstrated below:

    1. Find the "Try_Voices.py" file in the Installer folder.
    2. Run this program with "python Try_Voices.py" on Windows and "python3 Try_Voices.py" on macOS.
    3. This is used to speak out the Pre-Determined Line in all the available voices.
    4. You can see the voice id and its index (which will be used in the main program).
    5. Note the index of the voice you like and replace that in "line 17" "self.engine.setProperty('voice', voices[3].id)" Change the "3" to the index of your choice of voice.

    In-Case you don't like the voices available on your device, you can add more. Visit the below-mentioned link to get to know the step-by-step process of the same.

    "https://puneet166.medium.com/how-to-added-more-speakers-and-voices-in-pyttsx3-offline-text-to-speech-812c83d14c13"

    Finally, I'm providing a link to an article where you can better understand the use and initial setup of pyttsx3.

    https://betterprogramming.pub/an-introduction-to-pyttsx3-a-text-to-speech-converter-for-python-4a7e1ce825c3

  • Although this program uses the offline google speech recognition, it requires an Active Internet Connection for various features at all times so that the program can work smoothly.

  • If you want to change the initiating audio, then you can either add the audio file to the "Utilities" folder and rename it to "Initial_Audio.mp3" or you can edit the "Asssistant.py" at line 624: playsound.playsound("location of the audio file").

  • There are a few features like weather report and wolframalpha which requires personal API keys. You need to visit these sites, and get your own API key from these websites, and then replace them in the source files.

    Use any text editor or IDE of your choice.

    • Edit the "src/Tools.py" file

      line 46: self.API_KEY = "Your API Key"

    • Edit the "Assistant.py" file

      line 529: app_id = "Your APP ID"

    Not performing this step would not cause problem in the running of the Assistant but will return an error when the user tries to use any of the feature requiring an online API key.

  • Lastly, there are some features like blocking a website, shutting down and restarting the device which can only be performed when the program is run with elevated privileges.

With this out of the way, let me tell you about some features of the program. I have tried to add all the basic functions in this program and all the features can be seen in the main screen of the program at all times.

This program can perform the following functions:

          * Interact to some extent					  * Can open websites
          * Open gmail, google search and YouTube			  * Autoplay song on YouTube using Keyword
          * Download Youtube Video with Keyword or Video link	  * Hand-Cricket Game
          * Number Guessing Game					  * Can Shut down and Restart The Device
          * Can Clear Temporary Files				  * Generate QR Code
          * Can help in Converting and Editing a PDF		  * Extract Text from an Image
          * Tell a Joke						  * It can open Instagram and Facebook
          * Tell about the Weather of any place			  * Generate a Password
          * Tell Time						  * Open TOI for top Headlines
          * Take Screenshot						  * Capture a Picture from the Webcam
          * Can redirect you to the Typing Speed Website		  * Test your Internet Speed
          * Tell you the meaning					  * Block / Unblock Websites

As you can see from the features above, this program is equipped with several features to provide convenience to the users. It can open any website from its name, can try to communicate upto a certain limit and help you with basic problems.

One drawback which I feel is that the speechrecognition package takes the input after 4-5 Seconds of delay, so please be sure that the program is listening to the command when you are speaking.

For any suggestion, bugs or improvements, please feel me mail me at "[email protected]" or feel free to comment below.

Data manipulation and transformation for audio signal processing, powered by PyTorch

torchaudio: an audio library for PyTorch The aim of torchaudio is to apply PyTorch to the audio domain. By supporting PyTorch, torchaudio follows the

1.9k Jan 08, 2023
(ACL-IJCNLP 2021) Convolutions and Self-Attention: Re-interpreting Relative Positions in Pre-trained Language Models.

BERT Convolutions Code for the paper Convolutions and Self-Attention: Re-interpreting Relative Positions in Pre-trained Language Models. Contains expe

mlpc-ucsd 21 Jul 18, 2022
NLP techniques such as named entity recognition, sentiment analysis, topic modeling, text classification with Python to predict sentiment and rating of drug from user reviews.

This file contains the following documents sumbited for Baruch CIS9665 group 9 fall 2021. 1. Dataset: drug_reviews.csv 2. python codes for text classi

Aarif Munwar Jahan 2 Jan 04, 2023
This repository contains the code for EMNLP-2021 paper "Word-Level Coreference Resolution"

Word-Level Coreference Resolution This is a repository with the code to reproduce the experiments described in the paper of the same name, which was a

79 Dec 27, 2022
WIT (Wikipedia-based Image Text) Dataset is a large multimodal multilingual dataset comprising 37M+ image-text sets with 11M+ unique images across 100+ languages.

WIT (Wikipedia-based Image Text) Dataset is a large multimodal multilingual dataset comprising 37M+ image-text sets with 11M+ unique images across 100+ languages.

Google Research Datasets 740 Dec 24, 2022
Examples of using sparse attention, as in "Generating Long Sequences with Sparse Transformers"

Status: Archive (code is provided as-is, no updates expected) Update August 2020: For an example repository that achieves state-of-the-art modeling pe

OpenAI 1.3k Dec 28, 2022
Library of deep learning models and datasets designed to make deep learning more accessible and accelerate ML research.

Tensor2Tensor Tensor2Tensor, or T2T for short, is a library of deep learning models and datasets designed to make deep learning more accessible and ac

12.9k Jan 07, 2023
Implementation of Token Shift GPT - An autoregressive model that solely relies on shifting the sequence space for mixing

Token Shift GPT Implementation of Token Shift GPT - An autoregressive model that relies solely on shifting along the sequence dimension and feedforwar

Phil Wang 32 Oct 14, 2022
Training RNNs as Fast as CNNs

News SRU++, a new SRU variant, is released. [tech report] [blog] The experimental code and SRU++ implementation are available on the dev branch which

Tao Lei 14 Dec 12, 2022
This program do translate english words to portuguese

Python-Dictionary This program is used to translate english words to portuguese. Web-Scraping This program use BeautifulSoap to make web scraping, so

João Assalim 1 Oct 10, 2022
:house_with_garden: Fast & easy transfer learning for NLP. Harvesting language models for the industry. Focus on Question Answering.

(Framework for Adapting Representation Models) What is it? FARM makes Transfer Learning with BERT & Co simple, fast and enterprise-ready. It's built u

deepset 1.6k Dec 27, 2022
SummerTime - Text Summarization Toolkit for Non-experts

A library to help users choose appropriate summarization tools based on their specific tasks or needs. Includes models, evaluation metrics, and datasets.

Yale-LILY 213 Jan 04, 2023
Official PyTorch implementation of Time-aware Large Kernel (TaLK) Convolutions (ICML 2020)

Time-aware Large Kernel (TaLK) Convolutions (Lioutas et al., 2020) This repository contains the source code, pre-trained models, as well as instructio

Vasileios Lioutas 28 Dec 07, 2022
Scene Text Retrieval via Joint Text Detection and Similarity Learning

This is the code of "Scene Text Retrieval via Joint Text Detection and Similarity Learning". For more details, please refer to our CVPR2021 paper.

79 Nov 29, 2022
Dual languaged (rus+eng) tool for packing and unpacking archives of Silky Engine.

SilkyArcTool English Dual languaged (rus+eng) GUI tool for packing and unpacking archives of Silky Engine. It is not the same arc as used in Ai6WIN. I

Tester 5 Sep 15, 2022
Chinese Named Entity Recognization (BiLSTM with PyTorch)

BiLSTM-CRF for Name Entity Recognition PyTorch version A PyTorch implemention of Bi-LSTM-CRF model for Chinese Named Entity Recognition. 使用 PyTorch 实现

5 Jun 01, 2022
Ptorch NLU, a Chinese text classification and sequence annotation toolkit, supports multi class and multi label classification tasks of Chinese long text and short text, and supports sequence annotation tasks such as Chinese named entity recognition, part of speech tagging and word segmentation.

Pytorch-NLU,一个中文文本分类、序列标注工具包,支持中文长文本、短文本的多类、多标签分类任务,支持中文命名实体识别、词性标注、分词等序列标注任务。 Ptorch NLU, a Chinese text classification and sequence annotation toolkit, supports multi class and multi label classifi

186 Dec 24, 2022
Weaviate demo with the text2vec-openai module

Weaviate demo with the text2vec-openai module This repository contains an example of how to use the Weaviate text2vec-openai module. When using this d

SeMI Technologies 11 Nov 11, 2022
Random-Word-Generator - Generates meaningful words from dictionary with given no. of letters and words.

Random Word Generator Generates meaningful words from dictionary with given no. of letters and words. This might be useful for generating short links

Mohammed Rabil 1 Jan 01, 2022
jiant is an NLP toolkit

🚨 Update 🚨 : As of 2021/10/17, the jiant project is no longer being actively maintained. This means there will be no plans to add new models, tasks,

ML² AT CILVR 1.5k Dec 28, 2022