Lumina Desk è un tavolo da ristorante che prende gli ordini a voce, senza app, senza menu QR e senza cameriere. Un Raspberry Pi con microfono, altoparlante e schermo ePaper gestisce l’intero ciclo: l’ospite parla, il sistema trascrive, interpreta, mostra l’ordine sul display, lo comunica alla cucina e incassa tramite QR UPI. Il progetto è di Shubhjaiswal408 e il repository di Shubhjaiswal408 contiene tutto il codice per rifarlo.
Il cuore del sistema è il rilevamento della parola di attivazione ‘Hey Lumina’, gestito dal modello on-device openWakeWord. Una volta svegliato, il microfono cattura la voce dell’ospite e la trascrive con Groq Whisper (whisper-large-v3-turbo) se c’è connessione, oppure con Vosk in modalità offline. Il testo viene poi passato a un LLM, GPT-OSS-20B online o LFM2-700M offline, che interpreta l’intento. Tuttavia, prezzi, tempi di attesa e allergeni non vengono mai affidati al modello: sono calcolati in Python dal menu reale del ristorante.
Per le richieste più comuni, come ordinare una pizza, chiedere il conto o verificare un allergene, il sistema non passa nemmeno dal LLM. Un parser di regole le classifica in meno di 5 ms, rendendo l’esperienza quasi istantanea. Inoltre, il menu del ristorante Auntyno-Z Pizza di Ghodasar include 189 piatti, di cui 66 pizze, e il parser le gestisce tutte senza intoppi.
Il flusso dei dati: da voce a ordine in cucina
Una volta interpretata la richiesta, lo stato dell’ordine viene pubblicato su un bus MQTT. A questo bus sono iscritti due servizi: il primo genera un’immagine 800×480 pixel e la invia al pannello ePaper sul tavolo, così l’ospite vede il riepilogo in tempo reale. Il secondo è la dashboard della cucina, che riceve l’ordine pronto per la preparazione. Questo approccio separa la logica di riconoscimento dalla visualizzazione, rendendo il sistema modulare e facile da estendere.
Il pagamento avviene tramite un QR UPI dinamico che mostra l’importo esatto del conto. La conferma del pagamento viene letta direttamente dalle email del commerciante via IMAP, così il sistema sa quando l’ordine è stato saldato e può resettare il tavolo per il prossimo cliente. Il tutto gira su un solo Raspberry Pi, che gestisce anche l’audio di conferma tramite l’altoparlante.

Funzionamento offline e limiti di calcolo
Il progetto punta a funzionare anche senza connessione internet, una scelta importante per un ambiente rumoroso come una sala da pranzo. In modalità offline, la trascrizione usa Vosk e l’interpretazione affida al modello LFM2-700M via Ollama. Questo modello da 700M di parametri gira sulla CPU del Raspberry Pi e impiega circa 9 secondi per l’elaborazione. Un tempo accettabile per un ordine, ma che mostra il compromesso tra precisione e velocità quando si lavora senza cloud.
Per ridurre i tempi, il parser di regole intercetta la maggior parte delle frasi. Ad esempio, se l’ospite dice ‘vorrei una margherita’, il parser riconosce la pizza, calcola il prezzo dal menu e pubblica l’ordine su MQTT senza mai chiamare il LLM. Così, il sistema risulta reattivo nella pratica quotidiana e riserva i 9 secondi di calcolo solo per le domande più complesse.
Per la sintesi vocale delle conferme, il sistema usa Piper, un motore di text-to-speech leggero. Infine, la generazione delle immagini per lo schermo ePaper è affidata alla libreria Pillow, che compone il riepilogo dell’ordine in alta leggibilità. Il tutto è orchestrato da script Python che comunicano via MQTT, rendendo il codice pulito e adattabile ad altri ristoranti.
Chi vuole replicare il progetto trova nel repository di Shubhjaiswal408 il codice per il riconoscimento vocale, la gestione del menu e l’integrazione MQTT. Il sistema è stato progettato per un ristorante reale con 189 piatti, quindi non è una demo: è un dispositivo che ha affrontato il rumore, le lingue diverse e la necessità di affidabilità. Per l’hardware, il Raspberry Pi 5 con 2 GB è una base adeguata, anche se il progetto originale usa un modello precedente. L’altoparlante da 2 W è sufficiente per le brevi conferme vocali al tavolo.
Fonte: https://github.com/Shubhjaiswal408/lumina-desk-smart-restaurant
