184 karma · joined March 8, 2019
Junru and I will discuss the approach with pediatric care based on this. And I agree having domain expertise/advisors to guide us in the right direction is important
Since you can use docker for our backend, you can self-host your own service with our hardware. You can use our subscription only if you want us to handle the STT/TTS/LLM costs
Ours are indeed bold claims and we have updated some copies on the website to update our core value prop
> A lot of the subscription based pull ins could be replaced by networking into a machine running whisper/ollama etc anyway.
could you clarify this point? I think local LLMs are great for us to reduce cost and improve privacy concerns. For conversational AI however, is there a better way to run STT and TTS models?
``` /* * @file streams-i2s-webserver_wav.ino * * This sketch reads sound data from I2S. The result is provided as WAV stream which can be listened to in a Web Browser * * @author Phil Schatzmann * @copyright GPLv3 /
#include <WiFi.h> #include "AudioTools.h"
const char ssid = "<stavros_ssid>"; const char *password = "stavros_pw"; AudioWAVServer server(ssid, password);
I2SStream i2sStream; ConverterFillLeftAndRight<int16_t> filler(LeftIsEmpty); // fill both channels - or change to RightIsEmpty
void setup() { Serial.begin(115200); AudioLogger::instance().begin(Serial, AudioLogger::Info);
// // Connect to Wi-Fi
Serial.println("Connecting to WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.println("Connecting...");
}
Serial.println("Connected to WiFi");
// Print the IP address
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// start i2s input with default configuration
Serial.println("starting I2S...");
auto config = i2sStream.defaultConfig(RX_MODE);
// working well
config.i2s_format = I2S_STD_FORMAT;
config.sample_rate = 44100; // INMP441 supports up to 44.1kHz
config.channels = 1; // INMP441 is mono
config.bits_per_sample = 16; // INMP441 is a 24-bit ADC
config.pin_ws = 19; // Adjust these pins according to your wiring
config.pin_bck = 18;
config.pin_data = 21;
config.use_apll = true; // Try with APLL for better clock stability
i2sStream.begin(config);
Serial.println("I2S started");
// start data sink
server.begin(i2sStream, config, &filler);
}// Arduino loop void loop() { // Handle new connections server.copy(); }
```
This code just listens to audio you record on a microphone (INMP441 MEMS microphone used here) and streams it to an endpoint of the microcontroller's IP address. If you would like more help on this give me a shout anytime. my email: akash at starmoon dot app
Would you like to try building it with our devkit? We will prioritize raspberry pi firmware support if there is enough demand around this.
But I agree with your thought, I think this is a big fear with google home and alexa as well. ie. Are home automation tools always listening to our conversations. IIRC pre-wake word detection, none of the audio recorded is used to market products to you.
> Do you have a single psychologist on your staff that signed off on any of this?
We've been talking to pediatricians at portland hospital and cromwell hospital in london to support the "safe for all ages" claim but I agree that we want to back all our claims with data
To make it easy to build a daily habit of learning something new, I thought it’d be easier to have ChatGPT send you an email at a regular cadence. Bloom helps you do just that. Give it a try to learn about anything daily/weekly/monthly: airfoils, AR, or AI and let me know what you think.
I'm pretty much a noob at responsive web design and if there is a template like this, that'd be super awesome. the website itself looks really nice.