import gradio as gr from gtts import gTTS import os # Menu data from the second image (hardcoded for simplicity) menu = { "Appetizer": ["Veg Samosas", "Cut Mirchi", "Onion", "Spinach", "Mixed Vegetable"], "Pakodas": ["Veg Pakoda", "Chicken Pakoda", "Fish Pakoda"], "Manchurian": ["Vegetable", "Paneer", "Chicken", "Fish", "Jhinga"], "Chilly": ["Gobi", "Paneer", "Chicken", "Fish", "Shrimp"], "Chef's Special": ["Murgh (Chicken)", "Gosht (Goat)", "Jhinga (Shrimp)", "Fish Fry"], "Vegetarian Entree": ["Dal Fry", "Dal Makhani", "Channa Masala", "Aloo Gobi Masala", "Saag Paneer"], "Chettinad": ["Egg", "Murgh (Chicken)", "Gosht (Goat)", "Jhinga (Shrimp)", "Crab"], "Butter Masala": ["Chicken", "Shrimp", "Gosht (Goat)"] } # Function to speak a text using Google Text-to-Speech (gTTS) def speak(text): tts = gTTS(text=text, lang='en') tts.save("output.mp3") # Do not try to play the audio, just save it # os.system("mpg321 output.mp3") # Removed, as it is not supported in Hugging Face # Function to process the order def process_order(order): response = "You have ordered the following: " order = order.lower() # Check for matching menu items ordered_items = [] for category, items in menu.items(): for item in items: if item.lower() in order: ordered_items.append(item) if ordered_items: response += ', '.join(ordered_items) + ". Is that correct?" speak(response) return response else: speak("Sorry, I couldn't find any items matching your order. Can you try again?") return "Sorry, I couldn't find any items matching your order. Can you try again?" # Create Gradio interface def start_assistant(order): return process_order(order) # Gradio interface setup iface = gr.Interface(fn=start_assistant, inputs=gr.Textbox(label="Type your order"), outputs="text") # Launch the interface iface.launch()