Spaces:
Running
Running
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() | |