Skip to content

Commit ab75df9

Browse files
Create Basic_Voice_Assistant_using_PyQt5.py
1 parent 9d32258 commit ab75df9

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

Basic_Voice_Assistant_using_PyQt5.py

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import sys
2+
import speech_recognition as sr
3+
import pyttsx3
4+
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton
5+
from PyQt5.QtCore import Qt, QThread, pyqtSignal
6+
7+
class ListenerThread(QThread):
8+
signal = pyqtSignal(str)
9+
10+
def __init__(self):
11+
super().__init__()
12+
13+
def run(self):
14+
recognizer = sr.Recognizer()
15+
with sr.Microphone() as source:
16+
print("Listening...")
17+
recognizer.adjust_for_ambient_noise(source)
18+
audio = recognizer.listen(source)
19+
20+
try:
21+
text = recognizer.recognize_google(audio)
22+
self.signal.emit(text)
23+
except sr.UnknownValueError:
24+
self.signal.emit("")
25+
26+
class MainWindow(QMainWindow):
27+
def __init__(self):
28+
super().__init__()
29+
30+
self.setWindowTitle("Voice Assistant")
31+
self.setGeometry(100, 100, 300, 200)
32+
33+
self.label = QLabel("Assistant is ready.", self)
34+
self.label.setAlignment(Qt.AlignCenter)
35+
self.label.setGeometry(50, 50, 200, 30)
36+
37+
self.button = QPushButton("Start Listening", self)
38+
self.button.setGeometry(100, 100, 100, 30)
39+
self.button.clicked.connect(self.start_listening)
40+
41+
self.listener_thread = ListenerThread()
42+
self.listener_thread.signal.connect(self.process_input)
43+
44+
self.synthesizer = pyttsx3.init()
45+
46+
def start_listening(self):
47+
self.listener_thread.start()
48+
49+
def process_input(self, text):
50+
if text.lower() == "hello":
51+
self.speak("Hello there!")
52+
elif text.lower() == "what's your name":
53+
self.speak("I am your creative voice assistant.")
54+
elif text.lower() == "exit":
55+
self.speak("Goodbye!")
56+
sys.exit()
57+
else:
58+
self.speak("Sorry, I couldn't understand you.")
59+
60+
def speak(self, text):
61+
self.synthesizer.say(text)
62+
self.synthesizer.runAndWait()
63+
64+
65+
if __name__ == '__main__':
66+
app = QApplication(sys.argv)
67+
68+
window = MainWindow()
69+
window.show()
70+
71+
sys.exit(app.exec_())

0 commit comments

Comments
 (0)