A voice-powered AI waitress for Luisquisite restaurant in Cartagena, Colombia. This agent can take orders via voice commands in both Spanish and English.
- Salmon Bowl: Raw salmon, sushi rice, asparagus, avocado, broccoli
- Kiwi Brunch: 3 kiwis, 3 raw oatmeal spoons, 2 fried eggs, 2 brazil nuts
- Tuna Bowl: Raw tuna, sushi rice, beet, spinach, kale
There are two ways to test the voice agent:
The easiest way to test is using the web interface. No microphone setup needed!
- Install dependencies:
pip install -r requirements.txt- Run the web app:
streamlit run app.py-
Open your browser to the URL shown (usually
http://localhost:8501) -
Start chatting!
- Voice Input: Click the "🎤 Click to Speak" button and speak your order (works in Chrome, Edge, Safari)
- Text Input: Type your message in the text field
- Hear Responses: Click the "🔊 Speak" button on any waitress message to hear it read aloud
- Push your code to GitHub (already done! ✅)
- Go to share.streamlit.io
- Sign in with GitHub
- Click "New app"
- Select your repository:
ledp1/luisquisite - Set the main file path:
app.py - Click "Deploy"
Your app will be live at a public URL that anyone can access!
For the full voice experience with speech recognition and text-to-speech:
Prerequisites:
- Python 3.7 or higher
- Microphone connected to your computer
- Internet connection (for speech recognition)
Installation:
- Install base dependencies:
pip install -r requirements.txt- Install voice agent dependencies (requires system libraries):
pip install -r requirements-voice.txtNote for macOS users: You may need to install PortAudio first:
brew install portaudio
pip install -r requirements-voice.txtNote for Linux users: You may need to install:
sudo apt-get install portaudio19-dev python3-pyaudio
pip install -r requirements-voice.txtNote for Windows users: PyAudio should install directly, but if you have issues, download the appropriate wheel from here.
- Run the voice agent:
python main.py- Start the program - the waitress will greet you
- Speak your order naturally (e.g., "I'd like a salmon bowl")
- Ask for the menu by saying "menu" or "menú"
- Confirm your order by saying "that's all" or "eso es todo"
- The waitress will confirm your order and you can place another or exit
-
Customer: "Hola, can I see the menu?"
-
Waitress: Reads the menu
-
Customer: "I want a salmon bowl and a kiwi brunch"
-
Waitress: "Great! I've added Salmon Bowl, Kiwi Brunch to your order. Anything else?"
-
Customer: "That's all"
-
Waitress: "Perfect! Your order is confirmed..."
The agent supports both Spanish and English, perfect for Cartagena's international visitors!
- Speech Recognition: Google Speech Recognition API (works offline with fallback)
- Text-to-Speech: pyttsx3 (offline TTS engine)
- Language: Configured for Colombian Spanish (es-CO) with English support
luisquisite/
├── main.py # Main entry point (voice agent)
├── app.py # Web interface (Streamlit)
├── voice_agent.py # Speech recognition and TTS
├── order_handler.py # Order processing logic
├── menu.py # Menu configuration
├── requirements.txt # Python dependencies
└── README.md # This file
You can customize the menu in menu.py and adjust TTS settings (voice speed, volume) in voice_agent.py.
- Microphone not working: Check your system's microphone permissions
- Speech not recognized: Speak clearly and ensure there's not too much background noise
- PyAudio installation issues: See installation notes above for platform-specific solutions
This project is created for Luisquisite restaurant.