Speech to text and text to voice in Golang with my Gollemer project with training on pi 3b clusters

Building a Distributed MoE AI Cluster on 10-Year-Old Hardware—100% in Pure Go I’ve been working on Gollemer, a dependency-free, distributed Mixture of Experts (MoE) neural network engine written entirely in native Go. No Python, no C++, and no external BLAS libraries required. I just added a localized voice-control loop alongside distributed cluster training optimized directly for the Raspberry Pi 3B. Here is a breakdown of how the architecture handles voice and federated learning: 🎙️ Local Voice & Audio Pipeline (Zero-CGO) The Stack: Uses a custom AudioEncoder + TemporalEncoder (GRU) architecture trained in Go. Conversational Feedback: The engine captures raw audio patterns, classifies intent, prints the response, and reads terminal prompts back to you. Acoustic Isolation: Implements a deliberate 4-second delay block post-speech to cleanly prevent the system from picking up its own text-to-speech output. 🥧 Distributed Cluster Training on Tiny Hardware Resource Constraints: Optimized specifically for the Raspberry Pi 3B (~900MB RAM). When the -pi flag is active, the engine caps memory tightly at 600MB using aggressive garbage collection hooks (GOMEMLIMIT=700MiB, GOGC=10) and forces single-threaded routines. Master-Worker Architecture: Master Node: Runs the primary training loop, hosts a weight-synchronization HTTP server, averages incoming updates, and handles all model checkpoint serialization (.gob). Worker Node: Trains independently in parallel and streams local weight matrix updates to the master via HTTP every 1,000 batches. The worker never writes to disk, entirely eliminating storage I/O bottlenecks. Check out the full native engine layout, vision pipeline, and memory vector store on GitHub: 👉 https://github.com/golangast/gollemer substack - https://substack.com/@zachend1 #golang #coding #machinelearning #programming #aichatbot #raspberrypi #distributedsystems -timestamps- 00:00:28 - 00:01:10 Gollemer Project: Speech-to-Text and Text-to-Speech Demo This presentation showcases the Gollemer project's speech-to-text and text-to-speech functionalities. The presenter details how the Whisper model is employed for speech recognition and explains the implementation of a four-second delay to avoid system self-pickup. *00:00:32 - 00:00:36* speech-to-text, which uses a model I didn't make called Whisper. *00:00:53 - 00:01:01* it also does it reads off the screen your terminal prompt. So you can kind of have sort of a conversation back-and-forth. *00:00:58 - 00:01:10* So you can kind of have sort of a conversation back-and-forth. It does do a four-second delay, though, because I don't want it to pick up on its own voice when it waits to say the things it says. 00:01:12 - 00:03:36 Raspberry Pi Cluster Model Training Guide This guide demonstrates training a model on Raspberry Pi clusters, differentiating between master and worker Pi roles. It covers the specific commands for initiating the training, including memory limitations for older Pi 3B models and the use of 'nohup' to ensure continuous operation and log file generation. *00:01:12 - 00:01:16* And then I also added the ability for you to train it on Pis. *00:02:09 - 00:02:16* It limits the RAM because I'm running on Pi 3B, which is kind of over ten years old. Only has about a gig of RAM. *00:02:18 - 00:02:26* this command also uses nohup, nohup, and that's to keep it running and then write to a log file. *00:03:12 - 00:03:36* and this command is basically the same except that it says the node is a worker, and it ties it to the master IP address. And to nohup, basically different log file. I just named the log file something different so that I know which one to kinda open up and look into. 00:03:37 - 00:07:08 Distributed Training: Master-Worker Pi Setup This demonstration illustrates the cluster training procedure. A worker Raspberry Pi establishes a connection with a master Raspberry Pi, enabling collaborative training. The worker Pi transmits portions of the training data to the master Pi, which subsequently generates the model file. *00:03:38 - 00:03:38* it's training *00:03:39 - 00:03:52* and basically, the worker one doesn't actually write the model file. The master one does, though. *00:04:03 - 00:04:11* And the worker one sends a shards of the training data to the master one that does write the model.