Update app.py
Browse files
app.py
CHANGED
|
@@ -102,7 +102,6 @@ html_code = """
|
|
| 102 |
});
|
| 103 |
|
| 104 |
function startConversation() {
|
| 105 |
-
// Show "Listening..." before recording
|
| 106 |
status.textContent = 'Listening...';
|
| 107 |
startListening();
|
| 108 |
}
|
|
@@ -115,7 +114,6 @@ html_code = """
|
|
| 115 |
|
| 116 |
mediaRecorder.ondataavailable = event => audioChunks.push(event.data);
|
| 117 |
mediaRecorder.onstop = async () => {
|
| 118 |
-
// Once the recording stops, update status to "Processing..."
|
| 119 |
status.textContent = 'Processing...';
|
| 120 |
|
| 121 |
const audioBlob = new Blob(audioChunks, { type: 'audio/webm' });
|
|
@@ -128,7 +126,6 @@ html_code = """
|
|
| 128 |
response.textContent = data.response;
|
| 129 |
response.style.display = 'block';
|
| 130 |
|
| 131 |
-
// Handle Speech synthesis
|
| 132 |
try {
|
| 133 |
const utterance = new SpeechSynthesisUtterance(data.response);
|
| 134 |
speechSynthesis.speak(utterance);
|
|
@@ -144,13 +141,12 @@ html_code = """
|
|
| 144 |
response.textContent = "Speech output unavailable. Please check your browser.";
|
| 145 |
}
|
| 146 |
|
| 147 |
-
// Continue the conversation after a short delay
|
| 148 |
if (data.response.includes("Goodbye")) {
|
| 149 |
status.textContent = 'Conversation ended. Press the mic button to start again.';
|
| 150 |
isConversationActive = false;
|
| 151 |
} else {
|
| 152 |
status.textContent = 'Listening...';
|
| 153 |
-
setTimeout(startListening, 1000);
|
| 154 |
}
|
| 155 |
} catch (error) {
|
| 156 |
response.textContent = 'Error occurred. Please try again.';
|
|
@@ -159,7 +155,7 @@ html_code = """
|
|
| 159 |
isConversationActive = false;
|
| 160 |
}
|
| 161 |
};
|
| 162 |
-
setTimeout(() => mediaRecorder.stop(), 10000);
|
| 163 |
}).catch(() => {
|
| 164 |
status.textContent = 'Microphone access denied.';
|
| 165 |
isConversationActive = false;
|
|
@@ -241,11 +237,12 @@ def process_command(command):
|
|
| 241 |
global user_order
|
| 242 |
|
| 243 |
command = command.lower()
|
|
|
|
| 244 |
if "hello" in command or "hi" in command or "hey" in command:
|
| 245 |
return (
|
| 246 |
"Welcome! How can I assist you with your meal today? You can ask to see the menu or place an order."
|
| 247 |
)
|
| 248 |
-
elif "show me the menu" in command or "what
|
| 249 |
return (
|
| 250 |
"Here are the options: \n"
|
| 251 |
"Vegetarian: Vegetable Biryani, Paneer Butter Masala, Aloo Gobi, Veg Sambar, Veg Korma\n"
|
|
@@ -255,12 +252,12 @@ def process_command(command):
|
|
| 255 |
"Please let me know what you'd like to add to your order."
|
| 256 |
)
|
| 257 |
elif "add" in command:
|
| 258 |
-
item_to_add = command.split("add")[-1].strip()
|
| 259 |
if item_to_add:
|
| 260 |
user_order.append(item_to_add)
|
| 261 |
return f"{item_to_add} has been added to your order. Would you like to add more items?"
|
| 262 |
elif "remove" in command:
|
| 263 |
-
item_to_remove = command.split("remove")[-1].strip()
|
| 264 |
if item_to_remove in user_order:
|
| 265 |
user_order.remove(item_to_remove)
|
| 266 |
return f"{item_to_remove} has been removed from your order. Would you like to add or remove anything else?"
|
|
@@ -279,7 +276,15 @@ def process_command(command):
|
|
| 279 |
return "You haven't added anything to your order yet. Please add some items."
|
| 280 |
elif "yes" in command or "place order" in command:
|
| 281 |
return "Your order has been confirmed and sent to the kitchen. Thank you for ordering!"
|
| 282 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 283 |
|
| 284 |
if __name__ == "__main__":
|
| 285 |
app.run(host="0.0.0.0", port=7860)
|
|
|
|
| 102 |
});
|
| 103 |
|
| 104 |
function startConversation() {
|
|
|
|
| 105 |
status.textContent = 'Listening...';
|
| 106 |
startListening();
|
| 107 |
}
|
|
|
|
| 114 |
|
| 115 |
mediaRecorder.ondataavailable = event => audioChunks.push(event.data);
|
| 116 |
mediaRecorder.onstop = async () => {
|
|
|
|
| 117 |
status.textContent = 'Processing...';
|
| 118 |
|
| 119 |
const audioBlob = new Blob(audioChunks, { type: 'audio/webm' });
|
|
|
|
| 126 |
response.textContent = data.response;
|
| 127 |
response.style.display = 'block';
|
| 128 |
|
|
|
|
| 129 |
try {
|
| 130 |
const utterance = new SpeechSynthesisUtterance(data.response);
|
| 131 |
speechSynthesis.speak(utterance);
|
|
|
|
| 141 |
response.textContent = "Speech output unavailable. Please check your browser.";
|
| 142 |
}
|
| 143 |
|
|
|
|
| 144 |
if (data.response.includes("Goodbye")) {
|
| 145 |
status.textContent = 'Conversation ended. Press the mic button to start again.';
|
| 146 |
isConversationActive = false;
|
| 147 |
} else {
|
| 148 |
status.textContent = 'Listening...';
|
| 149 |
+
setTimeout(startListening, 1000);
|
| 150 |
}
|
| 151 |
} catch (error) {
|
| 152 |
response.textContent = 'Error occurred. Please try again.';
|
|
|
|
| 155 |
isConversationActive = false;
|
| 156 |
}
|
| 157 |
};
|
| 158 |
+
setTimeout(() => mediaRecorder.stop(), 10000);
|
| 159 |
}).catch(() => {
|
| 160 |
status.textContent = 'Microphone access denied.';
|
| 161 |
isConversationActive = false;
|
|
|
|
| 237 |
global user_order
|
| 238 |
|
| 239 |
command = command.lower()
|
| 240 |
+
|
| 241 |
if "hello" in command or "hi" in command or "hey" in command:
|
| 242 |
return (
|
| 243 |
"Welcome! How can I assist you with your meal today? You can ask to see the menu or place an order."
|
| 244 |
)
|
| 245 |
+
elif "show me the menu" in command or "what’s the menu" in command:
|
| 246 |
return (
|
| 247 |
"Here are the options: \n"
|
| 248 |
"Vegetarian: Vegetable Biryani, Paneer Butter Masala, Aloo Gobi, Veg Sambar, Veg Korma\n"
|
|
|
|
| 252 |
"Please let me know what you'd like to add to your order."
|
| 253 |
)
|
| 254 |
elif "add" in command:
|
| 255 |
+
item_to_add = command.split("add")[-1].strip()
|
| 256 |
if item_to_add:
|
| 257 |
user_order.append(item_to_add)
|
| 258 |
return f"{item_to_add} has been added to your order. Would you like to add more items?"
|
| 259 |
elif "remove" in command:
|
| 260 |
+
item_to_remove = command.split("remove")[-1].strip()
|
| 261 |
if item_to_remove in user_order:
|
| 262 |
user_order.remove(item_to_remove)
|
| 263 |
return f"{item_to_remove} has been removed from your order. Would you like to add or remove anything else?"
|
|
|
|
| 276 |
return "You haven't added anything to your order yet. Please add some items."
|
| 277 |
elif "yes" in command or "place order" in command:
|
| 278 |
return "Your order has been confirmed and sent to the kitchen. Thank you for ordering!"
|
| 279 |
+
|
| 280 |
+
return (
|
| 281 |
+
"Sorry, I didn’t understand your request. You can say things like:\n"
|
| 282 |
+
"- Show me the menu\n"
|
| 283 |
+
"- Add [item] to my order\n"
|
| 284 |
+
"- Remove [item] from my order\n"
|
| 285 |
+
"- Show my order\n"
|
| 286 |
+
"- Place the order"
|
| 287 |
+
)
|
| 288 |
|
| 289 |
if __name__ == "__main__":
|
| 290 |
app.run(host="0.0.0.0", port=7860)
|