A real-time Swedish voice assistant demo built with Pipecat and Evroc cloud services.
This project demonstrates how to build a low-latency, real-time voice agent using:
- Speech-to-Text: KBLab kb-whisper-large - Swedish Whisper model running on Evroc
- LLM: GPT-OSS-120B via Evroc Think Models
- Text-to-Speech: Piper TTS with Swedish NST voice from KB-labb
- Framework: Pipecat for real-time voice AI pipelines
- Transport: WebSocket with Protobuf serialization for browser connectivity
The voice assistant speaks Swedish and can answer questions about Evroc, European cloud infrastructure, and general topics.
Browser (React) ←WebSocket→ FastAPI Server ←→ Pipecat Pipeline
↓
┌───────────────┼───────────────┐
↓ ↓ ↓
Evroc STT Evroc LLM Piper TTS
(kb-whisper) (GPT-OSS-120B) (Swedish NST)
- Python 3.12+
- uv (Python package manager)
- Bun or Node.js (for frontend)
- Evroc API keys for STT and LLM services
git clone https://github.com/oloflarsson/TalkToEvroc.git
cd TalkToEvrocexport EVROC_API_KEY="your-api-key"The easiest way to run locally for development:
./commands/talktoevroc-startThis starts:
- Piper TTS server on
http://localhost:5000 - Backend API on
http://localhost:7860 - Frontend dev server on
http://localhost:5173
Visit http://localhost:5173 in your browser.
Build and run with Docker:
# Build (includes frontend)
./commands/talktoevroc-build
# Run
./commands/talktoevroc-runVisit http://localhost:7860.
├── main.py # Voice bot + FastAPI server (single file)
├── client/
│ └── src/ # React frontend
├── commands/ # Development scripts
├── config/
│ └── deploy.yml # Kamal deployment config
├── Dockerfile
└── entrypoint.sh # Container entrypoint
The project uses Kamal for deployment. See config/deploy.yml for configuration.
./commands/talktoevroc-deployMIT License - see LICENSE for details.
