UC ITExpo Project
StudyBuddy is a portable lecture recorder built on a Raspberry Pi 5. It captures audio through an I2S MEMS microphone, transcribes speech in real time on-device, and sends recordings to a server that extracts structured notes, key terms, assignments, and schedule items using a local LLM.
The client is designed to run on a Raspberry Pi 5 with:
- 3.5" touchscreen (480×320) — the UI is fixed to this resolution and runs fullscreen with the cursor hidden
- IMS I2S MEMS microphone — connected via the Pi's I2S interface for audio capture
Add the following to /boot/firmware/config.txt:
dtparam=i2s=on
dtoverlay=googlevoicehat-soundcard
Then reboot. Verify the mic is detected:
arecord -lYou may also need to set it as the default capture device in /etc/asound.conf:
pcm.!default {
type asym
capture.pcm "mic"
}
pcm.mic {
type plug
slave {
pcm "hw:1,0"
}
}
flask
flask-cors
openai-whisper
requests
pip install flask flask-cors openai-whisper requestsWhisper also requires ffmpeg:
# Ubuntu/Debian (including Raspberry Pi OS)
sudo apt install ffmpegInstall Ollama from https://ollama.com, then pull the model:
ollama pull llama3.2:3bpyaudio
vosk
Pillow
pip install pyaudio vosk PillowPyAudio also requires PortAudio:
sudo apt install portaudio19-devThe client uses Vosk for on-device live transcription. Download the small English model and place it next to recorder_app.py:
wget https://alphacephei.com/vosk/models/vosk-model-small-en-us-0.15.zip
unzip vosk-model-small-en-us-0.15.zipThe expected folder name is vosk-model-small-en-us-0.15.
Start Ollama in a separate terminal on the server machine:
ollama serveStart the server:
cd Server
python3 server.pyOpen http://localhost:5000 in a browser to access the web interface.
Start the client on the Raspberry Pi:
cd Client
python3 recorder_app.pyThe app will launch fullscreen on the 3.5" display. Make sure the server IP is configured in recorder_app.py before running.
- Matthew Gentle
- Ryan Parker