forked from StarmoonAI/Starmoon
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
dac9f0c
commit 95c5a63
Showing
3 changed files
with
75 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,47 +17,45 @@ Usecases: 1, 2, 3 | |
[Check our Roadmap](www.starmoon.ai) | ||
<!-- custom voice clone, RAG, agent --> | ||
|
||
## 1. Demo Highlights 🎥 | ||
## Demo Highlights 🎥 | ||
|
||
Video | ||
|
||
## 2. Key features 🎯 | ||
## Key features 🎯 | ||
|
||
Low-cost | ||
Voice-enabled emotional intelligence | ||
Open-source | ||
Small size (as small as the Apple Watch) | ||
|
||
## 3. Getting Started 🚀 | ||
## Getting Started 🚀 | ||
|
||
123 | ||
|
||
### 3.0 Prerequisites 📋 | ||
### Prerequisites 📋 | ||
|
||
1. Docker installed in your machine | ||
- Make sure localhost ports 8000, 3000, 6379, 5555 are not used | ||
|
||
2. Supabase CLI | ||
- Follow the instructions here to install the Supabase CLI Follow the instructions here to install the Supabase CLI if you haven't installed | ||
|
||
3. Vscode and PlatformIO plugin installed in your machine | ||
|
||
4. API keys: | ||
- Supabase: For database | ||
- OpenAI: For AI language models | ||
1. Softwares and services: | ||
- Docker | ||
- Supabase CLI | ||
- Follow the instructions here to install if you haven't installed | ||
- Vscode and PlatformIO plugin: For firmware burning | ||
- OpenAI API key: For AI language models | ||
- Deepgram API key: For speech-to-text | ||
- Azure speech API key: For text-to-speech | ||
- Huggingface: For emotion recognition | ||
- Huggingface API key: For emotion recognition | ||
|
||
5. Hardware list (not sponsored): | ||
- Seeed Studio Xiao ESP32-C6 | ||
- Microphone (model) | ||
- Amplifier (model) | ||
- Speaker (model) | ||
- PCB prototype board (link) | ||
- 28 AWG wires + soldering toolset | ||
2. Hardware list, you have two options: | ||
- Buying an assembled device [website](https://www.starmoon.app) | ||
- Or assemble the device yourself with off-the-shelf components: | ||
- Seeed Studio Xiao ESP32C6 | ||
- Microphone (INMP441) | ||
- Amplifier (model) | ||
- Speaker (model) | ||
- LED light (model) | ||
- Button (model) | ||
- PCB prototype board (link) + 28 AWG wires + soldering toolset | ||
|
||
### 3.1 Software setup 🖥️ | ||
### Software setup 🖥️ | ||
|
||
- **Step 1**: Clone the repository: | ||
|
||
|
@@ -72,6 +70,9 @@ Small size (as small as the Apple Watch) | |
``` | ||
|
||
- **Step 3**: Update the `.env` files | ||
You can manually update tokens in the `.env` file | ||
|
||
or use: | ||
|
||
```bash | ||
vim .env # or emacs or vscode or nano | ||
|
@@ -80,41 +81,76 @@ Small size (as small as the Apple Watch) | |
Update **OPENAI_API_KEY** in the `.env` file. | ||
|
||
- **Step 4**: Launch the project | ||
If you have a Mac, go to Docker Desktop > Settings > General and check that the "file sharing implementation" is set to `VirtioFS`. | ||
|
||
```bash | ||
cd ../ | ||
docker compose pull | ||
docker compose up | ||
``` | ||
|
||
If you have a Mac, go to Docker Desktop > Settings > General and check that the "file sharing implementation" is set to `VirtioFS`. | ||
|
||
If you are a **developer**, you can run the project in development mode with the following command: `docker compose -f docker-compose.yml up --build` | ||
|
||
- **Step 5**: Login to the app | ||
|
||
- You can now sign in to the app with `admin@quivr.app` & `admin`. You can access the Starmoon webapp at [http://localhost:3000/login](http://localhost:3000/login) and sign up an account | ||
- You can now sign in to the app with `admin@starmoon.app` & `admin`. You can access the Starmoon webapp at [http://localhost:3000/login](http://localhost:3000/login) and sign up an account | ||
|
||
- You can access Starmoon backend API at [http://localhost:8000/docs](http://localhost:8000/docs) | ||
|
||
- You can access Supabase dashboard at [http://localhost:54323](http://localhost:54323) | ||
|
||
- You can access Celery Flower background task dashboard at [http://localhost:5555](http://localhost:5555) (`[email protected]` & `admin`) | ||
- You can access Celery Flower background task dashboard at [http://localhost:5555](http://localhost:5555) (`[email protected]` & `admin`) | ||
|
||
### Hardware setup 🧰 | ||
|
||
- **Step 0 (Optional)**: Build the device yourself (if you haven't bought the assembled device) | ||
- Follow the instructions here for more details on assembly | ||
|
||
### 3.2 Hardware setup 🧰 | ||
- **Step 1**: Open PlatformIO Icon (Vscode icon left sidebar) | ||
- Click "Pick a folder" | ||
- Select the location of the firmware folder in the current project. | ||
|
||
- **Step 0**: Install PlatformIO in VSCode | ||
- **Step 2**: Update the WiFi credentials and WebSocket server details in the code | ||
- Find the following lines in the code and update them with your information: | ||
- Find the WIFI host by command | ||
|
||
Follow the instructions [here](https://platformio.org/install/cli) to install PlatformIO that is required. | ||
```cpp | ||
const char *ssid = "<your-wifi-name>"; | ||
const char *password = "<your-wifi-password>"; | ||
const char *websocket_server_host = "<192.168.1.1.your-server-host>"; | ||
const uint16_t websocket_server_port = 443; | ||
const char *websocket_server_path = "/<your-server-path-here>"; | ||
const char *auth_token = "<your-auth-token-here>"; // generate auth-token in your starmoon account | ||
``` | ||
|
||
- **Step 3**: Build the firmware | ||
- Click `Build` button in the PlatformIO toolbar or run the build task. | ||
|
||
- **Step 5**: Upload the firmware to the device | ||
- Connect your ESP32 to your computer using usb. | ||
- Click `Upload` button to run the upload task, or `Upload and Monitor` button to run the upload task and monitor the device. | ||
|
||
- **Step 6**: Hardware usage | ||
- Once the software and firmware are set up, you can push the button to power on the ESP32 device and start talking to the device. | ||
- The LED indicates the current status: | ||
- Off: Not connected | ||
- Solid On: Connected and listening on microphone | ||
- Pulsing: Streaming audio output (receiving from server) | ||
|
||
## Updating Starmoon App 🚀 | ||
|
||
- **Step 1**: Pull the latest changes | ||
|
||
```bash | ||
platformio --version # Check that the installation worked | ||
git pull | ||
``` | ||
|
||
## 4. 3rd Party Integrations | ||
- **Step 2**: Update the migration | ||
|
||
```bash | ||
supabase migration up | ||
``` | ||
|
||
123 | ||
|
||
## 5. License | ||
## License | ||
|
||
123 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters