Redson Dev · Idea
Offline Customer Feedback Kiosk with Local Speech-to-Text
Published July 17, 2026
This project enables small businesses, like a local diner in Portland, Oregon, to collect customer feedback efficiently and privately, even without a constant internet connection. By building a kiosk that transcribes spoken feedback into text locally using an ESP32 and an offline speech recognition model, they can gather valuable insights without privacy concerns or monthly subscription fees. This allows immediate data capture and later syncing when connectivity is available.
What you'll need
- ESP32-S3 Development Board (e.g., ESP32-S3-DevKitC-1)
- I2S MEMS Microphone Module (e.g., INMP441)
- 2.8-inch TFT LCD with Touchscreen (SPI interface)
- Micro SD Card (8GB or more)
- USB-C cable for power and data
- Small project enclosure (e.g., 3D printed or plastic box)
- Jumper wires
Step-by-step
- 01
Hardware Assembly & Wiring
Connect the ESP32-S3 board to the I2S MEMS microphone: VCC to 3.3V, GND to GND, SCK to GPIO36, WS to GPIO37, SD to GPIO38. Wire the TFT LCD: VCC to 3.3V, GND to GND, SCK to GPIO18, MOSI to GPIO23, MISO to GPIO19, CS to GPIO5, DC to GPIO2, RST to GPIO4. Ensure all connections are secure and double-check polarity.
- 02
Prepare SD Card with Offline Model
Format the Micro SD card as FAT32. Download a pre-trained, lightweight English speech-to-text model (e.g., a variant of DeepSpeech or Vosk optimized for ESP32 if available, otherwise a smaller generic model) and place its files in the root directory of the SD card. Create a 'feedback' directory for storing recorded transcriptions.
- 03
Setup ESP-IDF and Libraries
Install the ESP-IDF framework on your development machine. Use the VS Code extension for ESP-IDF. Install necessary libraries for I2S audio capture, SPI LCD control, and SD card communication through the ESP-IDF component manager or by manually adding them to your project's `components` folder.
- 04
Implement Speech Recognition Firmware
Write ESP-IDF C/C++ firmware. Initialize the I2S microphone for audio input. Implement a buffer to capture audio chunks. Load the speech-to-text model from the SD card. Continuously process audio chunks, feeding them to the model for transcription. Display transcribed text on the TFT LCD and save it to the pre-created 'feedback' directory on the SD card.
- 05
Design User Interface & Enclosure
Develop a simple touch-based interface using the TFT LCD. The UI should have a 'Start Recording' button, a 'Stop Recording' button, and a display area for the transcribed text. Design and 3D print a simple enclosure or modify a standard project box to house the ESP32, microphone, and LCD, ensuring the microphone has clear access to sound.
- 06
Testing and Deployment
Upload the firmware to your ESP32-S3 board. Test the kiosk thoroughly with various spoken inputs to ensure accurate transcription and proper saving to the SD card. Place the kiosk in a real-world setting, such as a community center in Austin, Texas, or a small clinic in Miami, Florida, to gather feedback. Implement a simple mechanism for periodically offloading the feedback data from the SD card.
Tips
- Consider adding a small speaker for audio prompts to guide users.
- Optimize microphone placement within the enclosure to minimize echo and maximize clear voice capture.
- For power, explore using a small power bank to make the kiosk even more portable.
