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.

This project converts your human voice input to its text transcript and to an automated voice too.

Human Voice to Automated Voice & Text Introduction: In this project, whenever you'll speak, it will turn your voice into a robot voice and furthermore

Hassan Shahzad 3 Oct 15, 2021
Suite of 500 procedurally-generated NLP tasks to study language model adaptability

TaskBench500 The TaskBench500 dataset and code for generating tasks. Data The TaskBench dataset is available under wget http://web.mit.edu/bzl/www/Tas

Belinda Li 20 May 17, 2022
A sentence aligner for comparable corpora

About Yalign is a tool for extracting parallel sentences from comparable corpora. Statistical Machine Translation relies on parallel corpora (eg.. eur

Machinalis 128 Aug 24, 2022
Meta learning algorithms to train cross-lingual NLI (multi-task) models

Meta learning algorithms to train cross-lingual NLI (multi-task) models

M.Hassan Mojab 4 Nov 20, 2022
An easy-to-use framework for BERT models, with trainers, various NLP tasks and detailed annonations

FantasyBert English | 中文 Introduction An easy-to-use framework for BERT models, with trainers, various NLP tasks and detailed annonations. You can imp

Fan 137 Oct 26, 2022
Develop open-source Python Arabic NLP libraries that the Arab world will easily use in all Natural Language Processing applications

Develop open-source Python Arabic NLP libraries that the Arab world will easily use in all Natural Language Processing applications

BADER ALABDAN 2 Oct 22, 2022
Line as a Visual Sentence: Context-aware Line Descriptor for Visual Localization

Line as a Visual Sentence with LineTR This repository contains the inference code, pretrained model, and demo scripts of the following paper. It suppo

SungHo Yoon 158 Dec 27, 2022
Chatbot for the Chatango messaging platform

BroiestBot The baddest bot in the game right now. Uses the ch.py framework for joining Chantango rooms and responding to user messages. Commands If a

Todd Birchard 3 Jan 17, 2022
NL. The natural language programming language.

NL A Natural-Language programming language. Built using Codex. A few examples are inside the nl_projects directory. How it works Write any code in pur

2 Jan 17, 2022
Python library for processing Chinese text

SnowNLP: Simplified Chinese Text Processing SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob

Rui Wang 6k Jan 02, 2023
A Multilingual Latent Dirichlet Allocation (LDA) Pipeline with Stop Words Removal, n-gram features, and Inverse Stemming, in Python.

Multilingual Latent Dirichlet Allocation (LDA) Pipeline This project is for text clustering using the Latent Dirichlet Allocation (LDA) algorithm. It

Artifici Online Services inc. 74 Oct 07, 2022
Exploring dimension-reduced embeddings

sleepwalk Exploring dimension-reduced embeddings This is the code repository. See here for the Sleepwalk web page. License and disclaimer This program

S. Anders's research group at ZMBH 91 Nov 29, 2022
Host your own GPT-3 Discord bot

GPT3 Discord Bot Host your own GPT-3 Discord bot i'd host and make the bot invitable myself, however GPT3 terms of service prohibit public use of GPT3

[something hillarious here] 8 Jan 07, 2023
Negative sampling for solving the unlabeled entity problem in NER. ICLR-2021 paper: Empirical Analysis of Unlabeled Entity Problem in Named Entity Recognition.

Negative Sampling for NER Unlabeled entity problem is prevalent in many NER scenarios (e.g., weakly supervised NER). Our paper in ICLR-2021 proposes u

Yangming Li 128 Dec 29, 2022
Bu Chatbot, Konya Bilim Merkezi Yen için tasarlanmış olan bir projedir.

chatbot Bu Chatbot, Konya Bilim Merkezi Yeni Ufuklar Sergisi için 2021 Yılında tasarlanmış olan bir projedir. Chatbot Python ortamında yazılmıştır. Sö

Emre Özkul 1 Feb 23, 2022
What are the best Systems? New Perspectives on NLP Benchmarking

What are the best Systems? New Perspectives on NLP Benchmarking In Machine Learning, a benchmark refers to an ensemble of datasets associated with one

Pierre Colombo 12 Nov 03, 2022
An A-SOUL Text Generator Based on CPM-Distill.

ASOUL-Generator-Backend 本项目为 https://asoul.infedg.xyz/ 的后端。 模型为基于 CPM-Distill 的 transformers 转化版本 CPM-Generate-distill 训练而成。

infinityedge 46 Dec 11, 2022
Indonesia spellchecker with python

indonesia-spellchecker Ganti kata yang terdapat pada file teks.txt untuk diperiksa kebenaran kata. Run on local machine python3 main.py

Rahmat Agung Julians 1 Sep 14, 2022
a CTF web challenge about making screenshots

screenshotter (web) A CTF web challenge about making screenshots. It is inspired by a bug found in real life. The challenge was created by @LiveOverfl

219 Jan 02, 2023
CPC-big and k-means clustering for zero-resource speech processing

The CPC-big model and k-means checkpoints used in Analyzing Speaker Information in Self-Supervised Models to Improve Zero-Resource Speech Processing.

Benjamin van Niekerk 5 Nov 23, 2022