OutLoud: learning by talking it through
This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I built
A friend of mine learns by talking ideas through, but doesn’t use AI much. Most AI chats start with typing a prompt, which doesn’t fit how she likes to learn. I built OutLoud so she can explain a topic aloud, review the transcript, and continue the conversation with a local model.
You can explain a topic out loud, then read and edit the transcript before it goes anywhere. Stopping a recording only creates a draft. You decide when to send it.
Study mode lets you set up a subject, add a syllabus and reference material, and work through topics. As you explain ideas and answer follow-up questions, OutLoud saves evidence of your understanding and topics to revisit.
Demo
Code
OutLoud
OutLoud is a local, voice-first chat and study app. It has a browser UI and an Electron development app. A Python backend records audio from the computer's microphone, transcribes it with Whisper, and saves the transcript into the selected conversation's editable draft. A transcript is never sent automatically: review it, then choose Send to get a streamed reply from the local Gemma model through Ollama.
The app runs its servers on loopback (127.0.0.1). It is designed for one
computer, not as a hosted or network-accessible service. The browser and desktop
apps use separate local data stores.
Quick start
1. Install prerequisites
-
Python 3.11. The repository pins it in
.python-versionandmise.tomlIf you use mise, runmise installfrom the repo. - uv for Python environment and dependency management: install uv.
- Bun 1.4.2 for JavaScript dependencies and workspace commands: install Bun.
- Node.js 22.12+…
How I built it
OutLoud uses Whisper to transcribe speech and Gemma 3 (gemma3:4b) for chat and study responses. Whisper runs in the Python backend. Gemma runs locally through Ollama.
The web app is built with React, TypeScript, and Vite. A Python backend handles recording, transcription, and chat. Conversations, drafts, and study progress are saved in a local SQLite database. There’s also an Electron development app that runs the same interface with a managed backend.
The flow:
Speak → Whisper transcribes → review and edit → send → Gemma responds
I wanted a clear pause between speaking and sending. A transcript can have mistakes, and sometimes you want to change what you said before asking a model about it.
Why open innovation matters
The local models are a good fit for this app. A spoken study session doesn’t need to go to a hosted inference API, and there’s no per-request model API bill. Once the models are installed, transcription and chat run on the user’s computer.
That does mean setup takes a little work, and the computer needs enough resources to run the models. Local models also make mistakes. I see OutLoud as a study aid, so its feedback should be checked against the course material.
Prize categories
- Best Use of Gemma: OutLoud uses Gemma 3 locally through Ollama to respond to reviewed explanations and support study conversations.
- Best Use of GitHub Copilot: This category includes project automation with GitHub Actions. OutLoud’s pull-request workflow validates the web app and runs backend and desktop checks across Linux, Windows, and macOS.
Top comments (0)