import speech_recognition as sr import pyttsx3 from ai_brain import get_ai_response # 1. Voice Output (Speaker) Setup engine = pyttsx3.init() voices = engine.getProperty('voices') # Aap index 0 (Male/Jarvis voice) ya 1 (Female voice) set kar sakte hain engine.setProperty('voice', voices[0].id) engine.setProperty('rate', 170) # Bolne ki speed def speak(text): """Text ko aawaz mein badalne ka function""" print(f"Jarvis: {text}") engine.say(text) engine.runAndWait() # 2. Voice Input (Mic) Setup recognizer = sr.Recognizer() def listen(): """Mic se aawaz sunkar text mein badalne ka function""" with sr.Microphone() as source: print("\nListening... (Aap bol sakte hain)") # Background noise ko adjust karne ke liye recognizer.adjust_for_ambient_noise(source, duration=0.5) try: audio = recognizer.listen(source, timeout=5, phrase_time_limit=10) print("Processing...") # Google ka free Speech-to-Text engine command = recognizer.recognize_google(audio, language="en-IN") # "hi-IN" bhi kar sakte hain Hindi ke liye print(f"You said: {command}") return command except sr.WaitTimeoutError: pass except sr.UnknownValueError: print("Main samajh nahi paya, kripya fir se bolein.") except sr.RequestError: print("Speech service down hai.") return "" # 3. Main Loop (Ye hamesha chalta rahega) def start_jarvis(): speak("System is online. I am ready.") while True: user_command = listen().lower() if "stop" in user_command or "exit" in user_command: speak("Shutting down systems. Goodbye!") break if user_command: # Brain se connect karke jawab mangna response = get_ai_response(user_command) # Jawab ko bolna speak(response) if __name__ == "__main__": start_jarvis()