BarryBox is an MQTT controlled Text-to-Speech speaker. It is connected to a frontend from which you can directly send messages and sounds (from a soundboard) to the speaker. My personal BarryBox is hosted at: https://barrybox.nl/
The BarryBox has the following features:
- You can setup WiFi credentials and a username on the first startup;
- Receive messages (audio stream / TTS message) over MQTT;
- Play a sound at startup;
- Sending its status (online / offline);
- Queueing audio streams that it has to play;
- Stop the currently playing stream if you press the button;
- Clear the queue of streams if you press the button long.
The backend adds the following features:
- Make HTTP endpoints available for sending messages and obtaining the status;
- Save incoming messages into a database;
- Restricting access with an API key;
- Automatically register newly connected BarryBoxes by username.
With the frontend you can easily access any BarryBox over the web.
The BarryBox is based on an ESP32 microcontroller, which controls a PCM5102 DAC.
- Install the ESP32 Arduino core from the Arduino Boards Manager.
- Install the required libraries from the Library Manager:
- Rename
config.sample.h
toconfig.h
and add your MQTT server and credentials to the file. - Open
BarryBox.ino
using the Arduino software. - Select your ESP32 board from the
Tools > Boards
menu. - Flash your board by selecting
Sketch > Upload
.
TODO
The included docker-compose.yml
file is compatible with Docker and (rootless) Podman.
- Rename
include/config.sample.php
toinclude/config.php
, add your API key and API URL and set the default user. - Start the container using
docker-compose up -d
.