Spaces:
Paused
Paused
| import tkinter as tk | |
| from tkinter import messagebox | |
| import asyncio | |
| from ai_system.ai_core import AICore | |
| import speech_recognition as sr | |
| import pyttsx3 | |
| class AIApplication(tk.Tk): | |
| def __init__(self): | |
| super().__init__() | |
| self.ai = AICore() | |
| self.speech_recognizer = sr.Recognizer() | |
| self.title("Falcondette") | |
| self.geometry("1200x700") | |
| self._init_ui() | |
| def _init_ui(self): | |
| self.query_entry = tk.Entry(self, width=100) | |
| self.query_entry.pack(pady=10) | |
| tk.Button(self, text="Submit", command=self._submit_query).pack() | |
| self.response_area = tk.Text(self, width=120, height=30) | |
| self.response_area.pack(pady=10) | |
| tk.Button(self, text="Voice Input", command=self._listen_voice_command).pack() | |
| def _submit_query(self): | |
| query = self.query_entry.get() | |
| if not query: | |
| return | |
| async def process(): | |
| result = await self.ai.generate_response(query, 1) | |
| self.response_area.insert(tk.END, f"Response: {result['response']} | |
| ") | |
| asyncio.run_coroutine_threadsafe(process(), asyncio.get_event_loop()) | |
| def _listen_voice_command(self): | |
| with sr.Microphone() as source: | |
| print("Listening for voice command...") | |
| audio = self.speech_recognizer.listen(source) | |
| try: | |
| command = self.speech_recognizer.recognize_google(audio) | |
| self.query_entry.delete(0, tk.END) | |
| self.query_entry.insert(0, command) | |
| self._submit_query() | |
| except: | |
| print("Voice command not recognized.") | |
| if __name__ == "__main__": | |
| app = AIApplication() | |
| app.mainloop() | |