SlideShare a Scribd company logo
final_ppt[1].pptxCCCCCCCCCCCCCCCCCCCCCCCC
Contents
1. Introduction
2. Problem Statement
3. Objectives
4. Methodology
5. Features
6. Technology Stack
7. Implementation
8. Results
9. Future Enhancements
10. Conclusion
11. Acknowledgements
Introduction
Welcome to the presentation on our exciting project: Designing an
Advanced Voice Assistant Inspired by J.A.R.V.I.S.
Inspired by the iconic AI assistant, J.A.R.V.I.S., from the Iron Man
movies, we embarked on a journey to bring a futuristic vision to life
through the power of artificial intelligence.
Our project aims to address the growing need for intelligent virtual
assistants capable of seamlessly understanding and executing a wide
range of commands, thereby revolutionizing human-computer
interaction.
Throughout this presentation, we will delve into the challenges we
faced, the methodologies we employed, and the remarkable features of
our voice assistant, showcasing its potential to enhance productivity
and streamline everyday tasks.
Problem Statement
• Despite the advancements in artificial intelligence, the existing virtual
assistants often lack the sophistication and versatility required to meet
the diverse needs of users effectively.
• The challenge lies in designing and implementing a virtual assistant
capable of understanding and executing commands seamlessly, regardless
of complexity or variability in speech patterns.
• Existing virtual assistants often struggle with accurately interpreting user
commands, leading to frustration and inefficiency.
• Our project seeks to address this gap by developing an advanced voice
assistant inspired by J.A.R.V.I.S. from the Iron Man movies.
• The goal is to create a sophisticated system that not only understands a
wide range of commands but also executes them seamlessly, bringing a
futuristic vision to life using the power of artificial intelligence.
Objectives
1. Seamless Command Interpretation:
• Develop algorithms and models to accurately understand and interpret user
commands, regardless of complexity or variability in speech patterns.
2. User Interaction:
• Design an intuitive user interface that reflects the futuristic aesthetics often portrayed
in science fiction, providing both voice and text-based interaction options to enhance
user experience.
3. Integration with External Services:
• Integrate with external services such as Wikipedia, news APIs, email servers, and
messaging platforms to enable seamless communication and information retrieval.
4. Natural Language Processing:
• Utilize advanced natural language processing techniques to enhance the assistant's
ability to understand and respond to user queries in a conversation.
Methodology
1. Research and Analysis:
• Conducted extensive research on existing virtual assistant technologies and
their limitations.
• Analyzed user requirements and expectations to determine the features and
functionalities to be implemented.
2. Technology Selection:
• Selected appropriate technologies and programming languages based on their
suitability for natural language processing, user interface development, and
integration with external services.
3. Development Process:
• Adopted an agile development approach to iteratively design, develop, and
test the voice assistant.
• Divided the project into sprints, with each sprint focusing on implementing
specific features or functionalities.
4. Natural Language Processing (NLP):
• Employed state-of-the-art NLP techniques to process and understand user
commands.
• Leveraged pre-trained language models and custom algorithms to enhance the
assistant's ability to interpret natural language input.
5. Integration with External Services:
• Integrated with external services such as Wikipedia, news APIs, email servers,
and messaging platforms using appropriate APIs and protocols.
6. Deployment and Monitoring:
• Deployed the voice assistant on appropriate platforms, such as desktop
computers, mobile devices, or smart speakers.
• Implemented monitoring and analytics tools to track usage patterns, identify
bottlenecks, and optimize performance.
Features
1. Voice Recognition:
• Seamlessly recognize and interpret natural language commands spoken by
the user.
2. Functional Diversity:
• Perform a wide range of tasks, including setting alarms, sending messages,
playing music, querying websites, and more.
3. Joke Telling:
• Entertain users with a collection of witty jokes and humorous responses.
4. Application Control:
• Open, close, or switch between applications based on user commands.
5. Information Retrieval:
• Query online sources such as Wikipedia to retrieve information.
6. News Updates:
• Provide users with the latest news updates from reputable sources.
7. Natural Language Understanding:
• Understand and respond to user queries in a conversational manner,
enhancing the user experience.
8. Customizable Preferences:
• Allow users to customize preferences and settings to tailor the assistant
to their needs.
9.Futuristic User Interface:
• Present a visually appealing and intuitive user interface inspired by
science fiction aesthetics.
10. Error Handling:
• Implement robust error handling mechanisms to gracefully handle
unexpected inputs or errors.
Technology Stack
1. Programming Languages:
• Python: Used for the backend development, natural language processing, and
integration with external services.
• PyQt5: Employed for frontend development to create the user interface.
2. Libraries and Modules:
• pyttsx3: For text-to-speech conversion.
• speech_recognition: For speech recognition.
• datetime: For working with date and time.
• os: For interacting with the operating system.
• wikipedia: For fetching information from Wikipedia.
• pywhatkit: For sending WhatsApp messages and playing YouTube videos.
• sys: For interacting with the Python interpreter.
• pyjokes: For fetching random jokes.
• PyQt5: For creating the graphical user interface (GUI).
4. APIs and Services:
• News APIs: Utilized to fetch the latest news updates from various news sources.
5. Development Tools:
• Git: Utilized for version control and collaborative development.
• VS Code: Chosen as the primary integrated development environment (IDE) for
coding and debugging.
Implementation
• Imported libraries such as `webbrowser`, `pyttsx3`, `speech_recognition`,
`datetime`, `os`, `cv2`, `requests`, `wikipedia`, `pywhatkit`, `smtplib`, `sys`,
`pyjokes`, and PyQt5 modules and initialized the `pyttsx3` engine for
text-to-speech conversion.
• Designed the overall architecture of the voice assistant, including
backend and frontend user interface.
• Defining a subclass `MainThread` of `QThread` for handling the main
tasks of the application asynchronously.
• The `taskExecution` method of `MainThread` performs the main
functionalities of the virtual assistant.
• GUI Implementation defines a class `UserInterface` that subclasses
`QMainWindow`. It starts the `MainThread` instance when a button is
clicked and updates the UI with current time.
• Initialize a `QApplication` instance, create the `UserInterface` object, and
display the GUI. It starts the event loop with `app.exec_()` to run the
application.
• Conducted tests to ensure the reliability and functionality of the voice
assistant.
• The latestNews function fetches and reads news articles from various
categories using the News API.
main.py
import webbrowser
import pyttsx3
import speech_recognition as sr
import datetime
import os
import cv2
from requests import get
import wikipedia
import pywhatkit as kit
import smtplib
import sys
import pyjokes
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.uic import loadUiType
from jarvisGUI import Ui_JarvisGUI
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voices', voices[0].id)
def speak(audio):
engine.say(audio)
print(audio)
engine.runAndWait()
def wish():
hour = int(datetime.datetime.now().hour)
if hour >= 0 and hour < 12:
speak("good morning")
elif hour > 12 and hour < 18:
speak("good afternoon")
else:
speak("good evening")
speak("i am jarvis tell me how can i help you")
def sendEmail(to, content):
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login('vikaskumar678@gmail.com',
'vikas12345@')
server.sendmail('your mail id', to, content)
server.close()
class MainThread(QThread):
def __init__(self):
super(MainThread, self).__init__()
def run(self):
self.taskExecution()
def takecommand(self):
r = sr.Recognizer()
with sr.Microphone() as source:
print("listening......")
r.pause_threshold = 1
audio = r.listen(source)
try:
print("Recognizing.....")
query = r.recognize_google(audio)
print(f"user said: {query}")
except Exception as e:
speak("Say that again please.....")
return "none"
return query
def taskExecution(self):
# speak("hii hello")
wish()
while True:
self.query = self.takecommand().lower()
if "open chrome" in self.query:
cr = "C:Program
FilesGoogleChromeApplicationchrome.
exe"
os.startfile(cr)
elif "open command prompt" in
self.query:
os.system("start cmd")
elif "open camera" in self.query:
cap = cv2.VideoCapture(0)
while True:
ret, img = cap.read()
cv2.imshow('webcam', img)
k = cv2.waitKey(50)
if k == 27:
break;
cap.release()
cv2.destroyAllWindows()
elif "play music" in self.query:
music_dir = "E:songs"
songs = os.listdir(music_dir)
for song in songs:
if song.endswith('.mp3'):
os.startfile(os.path.join(music_dir, song))
elif "ip address" in self.query:
ip = get('https://api.ipify.org').text
speak(f"your ip address is {ip}")
elif "wikipedia" in self.query:
speak("searching wikipedia...")
self.query = self.query.replace("wikipedia", "")
results = wikipedia.summary(self.query,
sentences=2)
speak("according to wikipedia...")
speak(results)
print(results)
elif "news" in self.query:
from NewsRead import latestNews
latestNews()
elif "open youtube" in self.query:
speak("opening youtube")
webbrowser.open("www.youtube.com")
elif "open facebook" in self.query:
speak("opening facebook")
webbrowser.open("www.facebook.com")
elif "open linkedin" in self.query:
speak("opening linkedin")
webbrowser.open("www.linkedin.com")
elif "open google" in self.query:
speak("sir what do I search on
google")
cm = self.takecommand().lower()
webbrowser.open(f"{cm}")
elif "send whatsapp message" in
self.query:
kit.sendwhatmsg("+916204042821",
“Hello", 20, 13)
elif "search songs on youtube" in
self.query:
kit.playonyt("see you again")
elif "send email to vikas" in self.query:
try:
speak("what should i say?")
content =
self.takecommand().lower()
to = "vikaskum1ar@gmail.com"
sendEmail(to, content)
speak("email has been sent")
except Exception as e:
print(e)
speak("sorry sir i am not able to
send this email")
elif "no thanks" in self.query:
speak("thanks for using me sir, have
a good day")
sys.exit()
elif "stop" in self.query:
speak("ok sir")
sys.exit()
elif "close chrome" in self.query:
speak("closing chrome sir")
os.system("taskkill /f /im
chrome.exe")
elif "set alarm" in self.query:
nn =
int(datetime.datetime.now().hour)
if nn == 00:
speak(f"alarm is set at {nn}")
music_dir = "E:songs"
songs = os.listdir(music_dir)
os.startfile(os.path.join(music_dir, songs[1]))
elif "tell me a joke" in self.query:
jk = pyjokes.get_joke()
speak(jk)
elif "shut down the system" in self.query:
os.system('shutdown /s /t 5')
elif "restart the system" in self.query:
os.system("shutdown /r /t 5")
elif "sleep the system" in self.query:
os.system("rund1132.exe powrprof.dll,
SetSuspendState 0,1,0")
speak("sir, do you have any other work")
startExecution = MainThread()
class UserInterface(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_JarvisGUI()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.startTask)
self.ui.pushButton_2.clicked.connect(self.close)
def startTask(self):
self.ui.movie =
QtGui.QMovie("Gifs/MImN.gif")
self.ui.label.setMovie(self.ui.movie)
self.ui.movie.start()
self.ui.movie =
QtGui.QMovie("Gifs/7kmF.gif")
self.ui.label_2.setMovie(self.ui.movie)
self.ui.movie.start()
self.ui.movie =
QtGui.QMovie("Gifs/SUV4.gif")
self.ui.label_4.setMovie(self.ui.movie)
self.ui.movie.start()
self.ui.movie =
QtGui.QMovie("Gifs/Jarvis_Loading_Screen.gif")
self.ui.label_5.setMovie(self.ui.movie)
self.ui.movie.start()
self.ui.movie = QtGui.QMovie("Gifs/7fi4")
self.ui.label_3.setMovie(self.ui.movie)
self.ui.movie.start()
timer = QTimer(self)
timer.timeout.connect(self.showTime)
timer.start(1000)
startExecution.start()
def showTime(self):
current_time = QTime.currentTime()
current_date = QDate.currentDate()
time = current_time.toString("hh:mm:ss")
date =
current_date.toString("dd/MM/yyyy")
self.ui.textBrowser.setText("nnDate:
"+date+"nnTime: "+time)
app = QApplication(sys.argv)
jarvis = UserInterface()
jarvis.show()
exit(app.exec_())
NewsRead.py
import requests
import json
import pyttsx3
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voices', voices[0].id)
def speak(audio):
engine.say(audio)
print(audio)
engine.runAndWait()
def latestNews():
apidict= {"business":
"https://newsapi.org/v2/top-
headlines?country=in&category=business&apiK
ey=69dcc3ac5fb64dad8465953e66dd70b5",
"sports": "https://newsapi.org/v2/top-
headlines?country=in&category=sports&apiKey
=69dcc3ac5fb64dad8465953e66dd70b5",
"entertainment":
"https://newsapi.org/v2/top-
headlines?country=in&category=entertainment&apiK
ey=69dcc3ac5fb64dad8465953e66dd70b5",
"health": "https://newsapi.org/v2/top-
headlines?country=in&category=health&apiKey=69dc
c3ac5fb64dad8465953e66dd70b5",
"technology": "https://newsapi.org/v2/top-
headlines?country=in&category=technology&apiKey=
69dcc3ac5fb64dad8465953e66dd70b5"
}
content = None
url = None
speak("which field news do you want, [business] ,
[sports] , [entertainment] , [health] , [technology]")
field= input("type field news that you want")
for key, values in apidict.items():
if key.lower() in field.lower():
url=values
print(url)
print("url was found")
break
else:
url = False
if url is False:
print("url not found")
news = requests.get(url).text
news = json.loads(news)
speak("this is your first news")
arts = news["articles"]
for articles in arts:
article = articles["title"]
print(article)
speak(article)
news_url = articles['url']
print(f"for more info visit {news_url}")
a = input("[press 1 to continue] and
[press 2 to stop]")
if str(a) == "1":
pass
elif str(a) == "2":
break
speak("that's all")
Results
1. Successful Development:
• Successfully developed and implemented an advanced voice assistant
inspired by J.A.R.V.I.S.
• Implemented a wide range of features and functionalities, including voice
recognition, natural language processing, and integration with external
services.
2. Seamless User Experience:
• Delivered a seamless and intuitive user experience through a futuristic
user interface and natural language understanding capabilities.
• Users can interact with the assistant effortlessly, performing tasks such as
setting alarms, sending messages, and retrieving information with ease.
3. High Accuracy:
• Achieved high accuracy in speech recognition and natural language
understanding tasks, minimizing errors and misunderstandings.
• Fine-tuned machine learning models and algorithms to improve accuracy
4. Positive Feedback:
• Received positive feedback from users on the assistant's functionality,
reliability, and user interface design.
• Users appreciated the assistant's ability to understand and execute
commands effectively, enhancing their productivity and convenience.
5. Increased Productivity:
• Users reported increased productivity and efficiency in performing
various tasks with the assistance of the voice assistant.
• The assistant streamlined routine tasks such as setting reminders,
checking the weather, and retrieving information, saving users time and
effort.
Future Enhancements
1. Multi-Language Support:
• Enhance the natural language processing capabilities to support multiple languages,
catering to a broader user base.
2. Personalization and User Profiles:
• Implement user profiles and preferences to personalize the assistant's responses and
recommendations based on individual user preferences.
3. Contextual Understanding:
• Develop algorithms to improve the assistant's ability to understand and respond
contextually to user queries, considering previous interactions and user history.
4. Voice Modulation and Customization:
• Introduce voice modulation and customization options, allowing users to personalize
the assistant's voice and tone.
5. Advanced Task Automation:
• Expand the range of tasks the assistant can automate, such as scheduling
appointments, booking reservations, and managing finances.
6. Emotion Recognition and Response:
• Incorporate emotion recognition capabilities to detect and respond to users' emotional
states, providing empathetic and personalized interactions.
7. Continuous Learning and Improvement:
• Implement mechanisms for continuous learning and improvement, allowing the
assistant to adapt and evolve over time based on user feedback and usage patterns.
8. Accessibility Features:
• Introduce accessibility features such as text-to-speech and voice commands for users
with disabilities, ensuring inclusivity and accessibility for all users.
9. Augmented Reality (AR) Integration:
• Explore integration with augmented reality technologies to provide immersive and
interactive experiences through AR interfaces.
Conclusion
In conclusion, our project to design an advanced voice
assistant inspired by J.A.R.V.I.S. has been a significant
step towards realizing the potential of artificial
intelligence in revolutionizing human-computer
interaction.
Through meticulous planning, implementation, and
testing, we have successfully developed a
sophisticated virtual assistant capable of
understanding and executing a wide range of
commands seamlessly.
The voice assistant's futuristic user interface, coupled
with its natural language processing capabilities, has
provided users with an intuitive and immersive
experience, reminiscent of science fiction.
Acknowledgement
Faculty Advisors: [Dr. Roopa H] - for their guidance,
support, and mentorship throughout the project.
Team Members: [Tulasi, Ujjwal, Vikas, Shubham] - for
their hard work, dedication, and collaborative efforts
in bringing this project to fruition.
Open Source Community: - for providing access to
various tools, libraries, and resources that were
instrumental in the development process.
[Bangalore Institute of Technology]: - for providing
the necessary resources, facilities, and opportunities.
Thank You !!
We respect your valuable time

More Related Content

PPTX
final_Copy_of Googles Tech_winter_break.pptx
DOC
Kevin Conley Developer Resume
PDF
How to Build Cross-Platform Mobile Apps Using Python
PPTX
Sinergija 12 WP8 is around the corner
PDF
Global Open Source Development 2011-2014 Review and 2015 Forecast
PPT
Six Principles of Software Design to Empower Scientists
PDF
Ai tools every developer should know
final_Copy_of Googles Tech_winter_break.pptx
Kevin Conley Developer Resume
How to Build Cross-Platform Mobile Apps Using Python
Sinergija 12 WP8 is around the corner
Global Open Source Development 2011-2014 Review and 2015 Forecast
Six Principles of Software Design to Empower Scientists
Ai tools every developer should know

Similar to final_ppt[1].pptxCCCCCCCCCCCCCCCCCCCCCCCC (20)

PPTX
Shopify - CNCF March 2025 Meetup - Presentation - 26-03-25.pptx
PPTX
Muhammad Sarfaraz(Presentation) Final.pptx
DOC
Amit Bhandari
PPTX
quang document based portfolio presentation.pptx
PPTX
Apple Tv App Development Company elevate your user Experience
PDF
report on internshala python training
PPTX
Presentation Azure Chat Bot Project.pptx
PDF
SWE Interactive - Overview
PDF
PDF
DT project.pdf
PDF
Exploring Python GUI Programming_ Creating User-Friendly Applications
PDF
Accelerating Application Development in the Internet of Things using Model-dr...
PPTX
Introduction to Backend Development (1).pptx
PPT
Custom Python Development Services for Scalable Business Success
PPTX
IWSG2014: Developing Science Gateways Using Apache Airavata
PDF
Top 5 Machine Learning Tools for Software Development in 2024.pdf
PDF
Andrew Resume
PDF
Using AI on a Large Scale at Doccle (presented by Bram Lerouge, CEO @Doccle)
PPTX
Artificial Intelligence Day 6 Slides for your Reference Happy Learning
PDF
Voice Controlled News Web Based Application With Speech Recognition Using Ala...
Shopify - CNCF March 2025 Meetup - Presentation - 26-03-25.pptx
Muhammad Sarfaraz(Presentation) Final.pptx
Amit Bhandari
quang document based portfolio presentation.pptx
Apple Tv App Development Company elevate your user Experience
report on internshala python training
Presentation Azure Chat Bot Project.pptx
SWE Interactive - Overview
DT project.pdf
Exploring Python GUI Programming_ Creating User-Friendly Applications
Accelerating Application Development in the Internet of Things using Model-dr...
Introduction to Backend Development (1).pptx
Custom Python Development Services for Scalable Business Success
IWSG2014: Developing Science Gateways Using Apache Airavata
Top 5 Machine Learning Tools for Software Development in 2024.pdf
Andrew Resume
Using AI on a Large Scale at Doccle (presented by Bram Lerouge, CEO @Doccle)
Artificial Intelligence Day 6 Slides for your Reference Happy Learning
Voice Controlled News Web Based Application With Speech Recognition Using Ala...
Ad

Recently uploaded (20)

PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
PPT on Performance Review to get promotions
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Welding lecture in detail for understanding
PPTX
Geodesy 1.pptx...............................................
PPTX
CH1 Production IntroductoryConcepts.pptx
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PDF
Well-logging-methods_new................
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PPTX
Construction Project Organization Group 2.pptx
PDF
Digital Logic Computer Design lecture notes
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PPTX
additive manufacturing of ss316l using mig welding
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPT on Performance Review to get promotions
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Welding lecture in detail for understanding
Geodesy 1.pptx...............................................
CH1 Production IntroductoryConcepts.pptx
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Well-logging-methods_new................
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
UNIT-1 - COAL BASED THERMAL POWER PLANTS
Construction Project Organization Group 2.pptx
Digital Logic Computer Design lecture notes
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Embodied AI: Ushering in the Next Era of Intelligent Systems
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
additive manufacturing of ss316l using mig welding
Ad

final_ppt[1].pptxCCCCCCCCCCCCCCCCCCCCCCCC

  • 2. Contents 1. Introduction 2. Problem Statement 3. Objectives 4. Methodology 5. Features 6. Technology Stack 7. Implementation 8. Results 9. Future Enhancements 10. Conclusion 11. Acknowledgements
  • 3. Introduction Welcome to the presentation on our exciting project: Designing an Advanced Voice Assistant Inspired by J.A.R.V.I.S. Inspired by the iconic AI assistant, J.A.R.V.I.S., from the Iron Man movies, we embarked on a journey to bring a futuristic vision to life through the power of artificial intelligence. Our project aims to address the growing need for intelligent virtual assistants capable of seamlessly understanding and executing a wide range of commands, thereby revolutionizing human-computer interaction. Throughout this presentation, we will delve into the challenges we faced, the methodologies we employed, and the remarkable features of our voice assistant, showcasing its potential to enhance productivity and streamline everyday tasks.
  • 4. Problem Statement • Despite the advancements in artificial intelligence, the existing virtual assistants often lack the sophistication and versatility required to meet the diverse needs of users effectively. • The challenge lies in designing and implementing a virtual assistant capable of understanding and executing commands seamlessly, regardless of complexity or variability in speech patterns. • Existing virtual assistants often struggle with accurately interpreting user commands, leading to frustration and inefficiency. • Our project seeks to address this gap by developing an advanced voice assistant inspired by J.A.R.V.I.S. from the Iron Man movies. • The goal is to create a sophisticated system that not only understands a wide range of commands but also executes them seamlessly, bringing a futuristic vision to life using the power of artificial intelligence.
  • 5. Objectives 1. Seamless Command Interpretation: • Develop algorithms and models to accurately understand and interpret user commands, regardless of complexity or variability in speech patterns. 2. User Interaction: • Design an intuitive user interface that reflects the futuristic aesthetics often portrayed in science fiction, providing both voice and text-based interaction options to enhance user experience. 3. Integration with External Services: • Integrate with external services such as Wikipedia, news APIs, email servers, and messaging platforms to enable seamless communication and information retrieval. 4. Natural Language Processing: • Utilize advanced natural language processing techniques to enhance the assistant's ability to understand and respond to user queries in a conversation.
  • 6. Methodology 1. Research and Analysis: • Conducted extensive research on existing virtual assistant technologies and their limitations. • Analyzed user requirements and expectations to determine the features and functionalities to be implemented. 2. Technology Selection: • Selected appropriate technologies and programming languages based on their suitability for natural language processing, user interface development, and integration with external services. 3. Development Process: • Adopted an agile development approach to iteratively design, develop, and test the voice assistant. • Divided the project into sprints, with each sprint focusing on implementing specific features or functionalities.
  • 7. 4. Natural Language Processing (NLP): • Employed state-of-the-art NLP techniques to process and understand user commands. • Leveraged pre-trained language models and custom algorithms to enhance the assistant's ability to interpret natural language input. 5. Integration with External Services: • Integrated with external services such as Wikipedia, news APIs, email servers, and messaging platforms using appropriate APIs and protocols. 6. Deployment and Monitoring: • Deployed the voice assistant on appropriate platforms, such as desktop computers, mobile devices, or smart speakers. • Implemented monitoring and analytics tools to track usage patterns, identify bottlenecks, and optimize performance.
  • 8. Features 1. Voice Recognition: • Seamlessly recognize and interpret natural language commands spoken by the user. 2. Functional Diversity: • Perform a wide range of tasks, including setting alarms, sending messages, playing music, querying websites, and more. 3. Joke Telling: • Entertain users with a collection of witty jokes and humorous responses. 4. Application Control: • Open, close, or switch between applications based on user commands. 5. Information Retrieval: • Query online sources such as Wikipedia to retrieve information.
  • 9. 6. News Updates: • Provide users with the latest news updates from reputable sources. 7. Natural Language Understanding: • Understand and respond to user queries in a conversational manner, enhancing the user experience. 8. Customizable Preferences: • Allow users to customize preferences and settings to tailor the assistant to their needs. 9.Futuristic User Interface: • Present a visually appealing and intuitive user interface inspired by science fiction aesthetics. 10. Error Handling: • Implement robust error handling mechanisms to gracefully handle unexpected inputs or errors.
  • 10. Technology Stack 1. Programming Languages: • Python: Used for the backend development, natural language processing, and integration with external services. • PyQt5: Employed for frontend development to create the user interface. 2. Libraries and Modules: • pyttsx3: For text-to-speech conversion. • speech_recognition: For speech recognition. • datetime: For working with date and time. • os: For interacting with the operating system. • wikipedia: For fetching information from Wikipedia.
  • 11. • pywhatkit: For sending WhatsApp messages and playing YouTube videos. • sys: For interacting with the Python interpreter. • pyjokes: For fetching random jokes. • PyQt5: For creating the graphical user interface (GUI). 4. APIs and Services: • News APIs: Utilized to fetch the latest news updates from various news sources. 5. Development Tools: • Git: Utilized for version control and collaborative development. • VS Code: Chosen as the primary integrated development environment (IDE) for coding and debugging.
  • 12. Implementation • Imported libraries such as `webbrowser`, `pyttsx3`, `speech_recognition`, `datetime`, `os`, `cv2`, `requests`, `wikipedia`, `pywhatkit`, `smtplib`, `sys`, `pyjokes`, and PyQt5 modules and initialized the `pyttsx3` engine for text-to-speech conversion. • Designed the overall architecture of the voice assistant, including backend and frontend user interface. • Defining a subclass `MainThread` of `QThread` for handling the main tasks of the application asynchronously. • The `taskExecution` method of `MainThread` performs the main functionalities of the virtual assistant.
  • 13. • GUI Implementation defines a class `UserInterface` that subclasses `QMainWindow`. It starts the `MainThread` instance when a button is clicked and updates the UI with current time. • Initialize a `QApplication` instance, create the `UserInterface` object, and display the GUI. It starts the event loop with `app.exec_()` to run the application. • Conducted tests to ensure the reliability and functionality of the voice assistant. • The latestNews function fetches and reads news articles from various categories using the News API.
  • 14. main.py import webbrowser import pyttsx3 import speech_recognition as sr import datetime import os import cv2 from requests import get import wikipedia import pywhatkit as kit import smtplib import sys import pyjokes from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.uic import loadUiType from jarvisGUI import Ui_JarvisGUI engine = pyttsx3.init('sapi5') voices = engine.getProperty('voices') engine.setProperty('voices', voices[0].id) def speak(audio): engine.say(audio) print(audio) engine.runAndWait() def wish(): hour = int(datetime.datetime.now().hour) if hour >= 0 and hour < 12: speak("good morning") elif hour > 12 and hour < 18: speak("good afternoon") else: speak("good evening") speak("i am jarvis tell me how can i help you") def sendEmail(to, content): server = smtplib.SMTP('smtp.gmail.com', 587) server.ehlo() server.starttls() server.login('vikaskumar678@gmail.com', 'vikas12345@') server.sendmail('your mail id', to, content) server.close() class MainThread(QThread): def __init__(self): super(MainThread, self).__init__() def run(self): self.taskExecution() def takecommand(self): r = sr.Recognizer() with sr.Microphone() as source: print("listening......") r.pause_threshold = 1 audio = r.listen(source) try: print("Recognizing.....") query = r.recognize_google(audio) print(f"user said: {query}") except Exception as e: speak("Say that again please.....") return "none" return query
  • 15. def taskExecution(self): # speak("hii hello") wish() while True: self.query = self.takecommand().lower() if "open chrome" in self.query: cr = "C:Program FilesGoogleChromeApplicationchrome. exe" os.startfile(cr) elif "open command prompt" in self.query: os.system("start cmd") elif "open camera" in self.query: cap = cv2.VideoCapture(0) while True: ret, img = cap.read() cv2.imshow('webcam', img) k = cv2.waitKey(50) if k == 27: break; cap.release() cv2.destroyAllWindows() elif "play music" in self.query: music_dir = "E:songs" songs = os.listdir(music_dir) for song in songs: if song.endswith('.mp3'): os.startfile(os.path.join(music_dir, song)) elif "ip address" in self.query: ip = get('https://api.ipify.org').text speak(f"your ip address is {ip}") elif "wikipedia" in self.query: speak("searching wikipedia...") self.query = self.query.replace("wikipedia", "") results = wikipedia.summary(self.query, sentences=2) speak("according to wikipedia...") speak(results) print(results) elif "news" in self.query: from NewsRead import latestNews latestNews() elif "open youtube" in self.query: speak("opening youtube") webbrowser.open("www.youtube.com") elif "open facebook" in self.query: speak("opening facebook") webbrowser.open("www.facebook.com") elif "open linkedin" in self.query: speak("opening linkedin") webbrowser.open("www.linkedin.com") elif "open google" in self.query: speak("sir what do I search on google") cm = self.takecommand().lower() webbrowser.open(f"{cm}") elif "send whatsapp message" in self.query: kit.sendwhatmsg("+916204042821", “Hello", 20, 13) elif "search songs on youtube" in self.query: kit.playonyt("see you again") elif "send email to vikas" in self.query:
  • 16. try: speak("what should i say?") content = self.takecommand().lower() to = "vikaskum1ar@gmail.com" sendEmail(to, content) speak("email has been sent") except Exception as e: print(e) speak("sorry sir i am not able to send this email") elif "no thanks" in self.query: speak("thanks for using me sir, have a good day") sys.exit() elif "stop" in self.query: speak("ok sir") sys.exit() elif "close chrome" in self.query: speak("closing chrome sir") os.system("taskkill /f /im chrome.exe") elif "set alarm" in self.query: nn = int(datetime.datetime.now().hour) if nn == 00: speak(f"alarm is set at {nn}") music_dir = "E:songs" songs = os.listdir(music_dir) os.startfile(os.path.join(music_dir, songs[1])) elif "tell me a joke" in self.query: jk = pyjokes.get_joke() speak(jk) elif "shut down the system" in self.query: os.system('shutdown /s /t 5') elif "restart the system" in self.query: os.system("shutdown /r /t 5") elif "sleep the system" in self.query: os.system("rund1132.exe powrprof.dll, SetSuspendState 0,1,0") speak("sir, do you have any other work") startExecution = MainThread() class UserInterface(QMainWindow): def __init__(self): super().__init__() self.ui = Ui_JarvisGUI() self.ui.setupUi(self) self.ui.pushButton.clicked.connect(self.startTask) self.ui.pushButton_2.clicked.connect(self.close) def startTask(self): self.ui.movie = QtGui.QMovie("Gifs/MImN.gif") self.ui.label.setMovie(self.ui.movie) self.ui.movie.start() self.ui.movie = QtGui.QMovie("Gifs/7kmF.gif") self.ui.label_2.setMovie(self.ui.movie) self.ui.movie.start() self.ui.movie = QtGui.QMovie("Gifs/SUV4.gif") self.ui.label_4.setMovie(self.ui.movie) self.ui.movie.start() self.ui.movie = QtGui.QMovie("Gifs/Jarvis_Loading_Screen.gif") self.ui.label_5.setMovie(self.ui.movie) self.ui.movie.start() self.ui.movie = QtGui.QMovie("Gifs/7fi4") self.ui.label_3.setMovie(self.ui.movie) self.ui.movie.start() timer = QTimer(self) timer.timeout.connect(self.showTime) timer.start(1000) startExecution.start()
  • 17. def showTime(self): current_time = QTime.currentTime() current_date = QDate.currentDate() time = current_time.toString("hh:mm:ss") date = current_date.toString("dd/MM/yyyy") self.ui.textBrowser.setText("nnDate: "+date+"nnTime: "+time) app = QApplication(sys.argv) jarvis = UserInterface() jarvis.show() exit(app.exec_())
  • 18. NewsRead.py import requests import json import pyttsx3 engine = pyttsx3.init('sapi5') voices = engine.getProperty('voices') engine.setProperty('voices', voices[0].id) def speak(audio): engine.say(audio) print(audio) engine.runAndWait() def latestNews(): apidict= {"business": "https://newsapi.org/v2/top- headlines?country=in&category=business&apiK ey=69dcc3ac5fb64dad8465953e66dd70b5", "sports": "https://newsapi.org/v2/top- headlines?country=in&category=sports&apiKey =69dcc3ac5fb64dad8465953e66dd70b5", "entertainment": "https://newsapi.org/v2/top- headlines?country=in&category=entertainment&apiK ey=69dcc3ac5fb64dad8465953e66dd70b5", "health": "https://newsapi.org/v2/top- headlines?country=in&category=health&apiKey=69dc c3ac5fb64dad8465953e66dd70b5", "technology": "https://newsapi.org/v2/top- headlines?country=in&category=technology&apiKey= 69dcc3ac5fb64dad8465953e66dd70b5" } content = None url = None speak("which field news do you want, [business] , [sports] , [entertainment] , [health] , [technology]") field= input("type field news that you want") for key, values in apidict.items(): if key.lower() in field.lower(): url=values print(url) print("url was found") break else: url = False if url is False: print("url not found") news = requests.get(url).text news = json.loads(news) speak("this is your first news") arts = news["articles"] for articles in arts: article = articles["title"] print(article) speak(article) news_url = articles['url'] print(f"for more info visit {news_url}") a = input("[press 1 to continue] and [press 2 to stop]") if str(a) == "1": pass elif str(a) == "2": break speak("that's all")
  • 19. Results 1. Successful Development: • Successfully developed and implemented an advanced voice assistant inspired by J.A.R.V.I.S. • Implemented a wide range of features and functionalities, including voice recognition, natural language processing, and integration with external services. 2. Seamless User Experience: • Delivered a seamless and intuitive user experience through a futuristic user interface and natural language understanding capabilities. • Users can interact with the assistant effortlessly, performing tasks such as setting alarms, sending messages, and retrieving information with ease. 3. High Accuracy: • Achieved high accuracy in speech recognition and natural language understanding tasks, minimizing errors and misunderstandings. • Fine-tuned machine learning models and algorithms to improve accuracy
  • 20. 4. Positive Feedback: • Received positive feedback from users on the assistant's functionality, reliability, and user interface design. • Users appreciated the assistant's ability to understand and execute commands effectively, enhancing their productivity and convenience. 5. Increased Productivity: • Users reported increased productivity and efficiency in performing various tasks with the assistance of the voice assistant. • The assistant streamlined routine tasks such as setting reminders, checking the weather, and retrieving information, saving users time and effort.
  • 21. Future Enhancements 1. Multi-Language Support: • Enhance the natural language processing capabilities to support multiple languages, catering to a broader user base. 2. Personalization and User Profiles: • Implement user profiles and preferences to personalize the assistant's responses and recommendations based on individual user preferences. 3. Contextual Understanding: • Develop algorithms to improve the assistant's ability to understand and respond contextually to user queries, considering previous interactions and user history. 4. Voice Modulation and Customization: • Introduce voice modulation and customization options, allowing users to personalize the assistant's voice and tone.
  • 22. 5. Advanced Task Automation: • Expand the range of tasks the assistant can automate, such as scheduling appointments, booking reservations, and managing finances. 6. Emotion Recognition and Response: • Incorporate emotion recognition capabilities to detect and respond to users' emotional states, providing empathetic and personalized interactions. 7. Continuous Learning and Improvement: • Implement mechanisms for continuous learning and improvement, allowing the assistant to adapt and evolve over time based on user feedback and usage patterns. 8. Accessibility Features: • Introduce accessibility features such as text-to-speech and voice commands for users with disabilities, ensuring inclusivity and accessibility for all users. 9. Augmented Reality (AR) Integration: • Explore integration with augmented reality technologies to provide immersive and interactive experiences through AR interfaces.
  • 23. Conclusion In conclusion, our project to design an advanced voice assistant inspired by J.A.R.V.I.S. has been a significant step towards realizing the potential of artificial intelligence in revolutionizing human-computer interaction. Through meticulous planning, implementation, and testing, we have successfully developed a sophisticated virtual assistant capable of understanding and executing a wide range of commands seamlessly. The voice assistant's futuristic user interface, coupled with its natural language processing capabilities, has provided users with an intuitive and immersive experience, reminiscent of science fiction.
  • 24. Acknowledgement Faculty Advisors: [Dr. Roopa H] - for their guidance, support, and mentorship throughout the project. Team Members: [Tulasi, Ujjwal, Vikas, Shubham] - for their hard work, dedication, and collaborative efforts in bringing this project to fruition. Open Source Community: - for providing access to various tools, libraries, and resources that were instrumental in the development process. [Bangalore Institute of Technology]: - for providing the necessary resources, facilities, and opportunities.
  • 25. Thank You !! We respect your valuable time