Saving extra food as lunch boxes in the fridge or the freezer is a great way to reduce food waste. But keeping track of inventory, what’s available in the fridge/freeze is not easy and there is a risk that these boxes do not get used in time. Keeping a better inventory may sound like a good idea in theory, but in practice it is difficult to justify the extra effort needed in adding and removing data.
This prototype explores speech recognition and label writing as a way to facilitate lunch boxes inventory keeping by a) making it easier (talking instead of typing); and b) making it more rewarding (automatically printing a label).
Scenario
- The user wants to save a lunch box or some extra items in the fridge or freezer.
- When pushing the button the device start listening. It reacts to different keywords (save, freeze // spara, frysa). It will remove the keyword and recognize the rest as the food item.
- The device prints a label with the name, the current date and an ID. At the same time it saves this data in a database indicating if it is in the fridge or freezer.
- The user puts the label on the box and saves it.
The user then can look at a web interface and see the different food items available so they are not forgotten. When used they can be removed either from the web interface or by voice command “Remove” plus the ID in the label.
Implementation
- Microcontroller: The prototype uses a Raspberry Pi 2 Model B with a USB microphone and a USB wifi dongle. Any Raspberry Pi should work fine as long as it can be connected to a printer and a microphone.
- Printer: The prototype uses a Dymo LabelWriter 450 with Linux drivers. The 550 model does not work as it doesn’t support Linux but other printers should be fine as long as they can be used in Linux via CUPS.
- Speech recognition: The prototype uses Google Cloudspeech, with an implementation based on Google AIY voice.
- Server: The database is hosted in an existing Debian VPS with Apache, MariaDB and PHP to allow remote access. The database could be hosted in the Raspberry Pi with a Nginx/Apache setup that could be accessed only from the local network.
The code is available in Github.
Lessons learned
It can be argued that this prototype uses a lot of technology for doing something that could be done with a paper and pen. But the prototype do show new possibilities for interacting in the kitchen with speech recognition. While this is already an established practice for many (for example setting up timers with Alexa or Google assistant), the materiality of printing up physical labels helps in providing a tangible result from keeping a digital inventory, which is a task that while it could help reduce food waste, is difficult for the users to form as a habit..
The technology itself works fine and Google Cloudspeech makes a good (but not infallible) work recognising food names even in other languages than English. Speech recognition is a good match for a kitchen setup where hands are busy and screens may get dirty.
Further development could focus on:
- Using existing assistans like Alexa, Google or MyCroft with a connected printer.
- Exploring other applications for the voice+printer in kitchen setups to provide more services.
- Exploring other uses beyond households for example restaurants, or farms, where the complexity of inventory management may require this type of solution.