DevMiser
Published © MIT

Edison - The Voice Controlled AI Assistant and Clock Radio

A chatbot should do more than just chat! Edison is a voice-controlled clock, internet radio and talking ChatGPT virtual assistant.

AdvancedFull instructions provided8 hours449
Edison - The Voice Controlled AI Assistant and Clock Radio

Things used in this project

Hardware components

Raspberry Pi 4 Model B
Raspberry Pi 4 Model B
This needs to be a Raspberry Pi 4, so that you can run the 64-bit operating system. Earlier versions of Raspberry Pis are likely to throw memory errors while running this program. The 2 GB RAM model is sufficient.
×1
Raspberry Pi Power Supply
I recommend the official Raspberry Pi power supply.
×1
Adafruit 4-Digit 7-Segment Display w/ I2C Backpack
For the clock display.
×1
USB Microphone
For talking to Edison.
×1
Angled USB Connector
Required to fit the Raspberry Pi into the Edison enclosure.
×1
USB Speaker
For Edison to talk back to you and play the radio.
×1
LED Filament (300mm)
The program lights the LED filament when it detects the wake word and pulses it when Edison is responding to your request.
×1
Heatsinks
Heatsinks are recommended for your Raspberry Pi.
×1

Software apps and online services

Picovoice Porcupine Wake Word Engine
Picovoice AI Picovoice Porcupine Wake Word Engine
Picovoice Cobra Voice Activity Detection (VAD) Engine
Picovoice AI Picovoice Cobra Voice Activity Detection (VAD) Engine
Picovoice Leopard Speech-to-Text Engine
Picovoice AI Picovoice Leopard Speech-to-Text Engine
OpenAI ChatGPT API
AWS Polly
Amazon Web Services AWS Polly
VLC Media Player
PyAudio

Hand tools and fabrication machines

3D Printer (generic)
3D Printer (generic)

Story

Read more

Custom parts and enclosures

Edison Enclosure

After you 3D-print the Edison Enclosure and Baseplate, mount the Raspberry Pi 4 on the four pegs on the Baseplate with the power socket over the indentation. You can permanently affix your RPi to the base by putting a little glue at each peg after the RPi is mounted. There is an elliptical hole on the back of the main enclosure for the power supply plug, so be certain to arrange your Pi on the base in the correct direction. Push the metal part of the USB microphone through the rectangular hole on the backside of the enclosure so the half-sphere plastic part is outside the enclosure and the metal USB connection if on the inside. Use the angled USB connector to attach to the USB microphone and USB speaker inside the enclosure and plug it into the Raspberry Pi. After you mount the 7-segment display and the USB speaker in the enclosure, secure them with some glue, and connect the wiring, push the excess wires inside the enclosure and attach the baseplate to the enclosure with glue or screws (2.5mm x 0.45mm x 10mm Phillips flat head). The STL files for 3D-printing Edison.

Schematics

Wiring

The LED filament is controlled by GPIO pin 18. The other end is connected to a ground pin. The filament should be pressed into the groove on the face of the enclosure and threaded through the holes at the ends of the groove. You may need to use needle nose pliers to help pull it through the holes.

The I2C backpack on the display is attached as follows:

Backpack V+ to GPIO pin 3V3 (red wire)
Backpack GND to GPIO pin Ground (black wire)
Backpack SDA to GPIO pin 2 (orange wire)
Backpack SCL to GPIO pin 3 (blue wire)
The USB microphone and speaker are connected to the USB

Code

Edison.py

Python Code

The python code and detailed instructions on how to install it and its dependencies on a Raspberry Pi 4 are here.

Credits

DevMiser
4 projects • 4 followers
I'm a hobbyist developer who enjoys programming microcontrollers. I also enjoy robotics, artificial intelligence and 3D printing and design.
Contact

Comments

Please log in or sign up to comment.