https://github.com/bigbluebutton/bbb-livekit-stt
Speech-to-Text (STT) for BigBlueButton meetings using LiveKit as their audio bridge
https://github.com/bigbluebutton/bbb-livekit-stt
Last synced: 3 months ago
JSON representation
Speech-to-Text (STT) for BigBlueButton meetings using LiveKit as their audio bridge
- Host: GitHub
- URL: https://github.com/bigbluebutton/bbb-livekit-stt
- Owner: bigbluebutton
- License: lgpl-3.0
- Created: 2025-08-14T20:17:10.000Z (10 months ago)
- Default Branch: development
- Last Pushed: 2026-02-20T20:55:03.000Z (3 months ago)
- Last Synced: 2026-02-21T01:45:42.514Z (3 months ago)
- Language: Python
- Homepage:
- Size: 167 KB
- Stars: 1
- Watchers: 0
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# BigBlueButton STT Agent for LiveKit
This application provides Speech-to-Text (STT) for BigBlueButton meetings using LiveKit
as their audio bridge.
Initially, the only supported STT engine is Gladia through the official [LiveKit Gladia Plugin](https://docs.livekit.io/agents/integrations/stt/gladia/).
It'll be expanded in the future to support other STT plugins from the LiveKit Agents
ecosystem.
## Getting Started
### Environment prerequisites
- Python 3.10+
- A LiveKit instance
- A Gladia API key
- uv:
- See installation instructions: https://docs.astral.sh/uv/getting-started/installation/
### Installing
1. **Clone the repository:**
```bash
git clone git@github.com:bigbluebutton/bbb-livekit-stt.git
cd bbb-livekit-stt
```
2. **Install the dependencies:**
```bash
uv sync
```
4. **Configure environment variables:**
Copy the example `.env` file:
```bash
cp .env.example .env
```
Now, edit the `.env` file and fill _at least_ the following environment vars:
```
LIVEKIT_URL=...
LIVEKIT_API_KEY=...
LIVEKIT_API_SECRET=...
# Gladia API Key
GLADIA_API_KEY=...
```
Feel free to check `.env.example` for any other configurations of interest.
**All options ingested by the Gladia STT plugin are exposed via env vars**.
### Running
The agent is run using the command-line interface provided by the `livekit-agents`
library. The necessary environment variables will be picked up automatically.
Once started, the worker will connect to your LiveKit server and wait to be assigned
to rooms. By default, the LiveKit server will dispatch a job to the worker for every
new room created. The agent will then join the room, start listening to audio tracks,
and generate transcription events when required.
#### Development
For development, use the `dev` command.
```bash
uv run python3 main.py dev
```
#### Production
For production, use the `start` command.
```bash
uv run python3 main.py start
```
#### Docker
Build the image:
```bash
docker build . -t bbb-livekit-stt
```
Run:
```bash
docker run --network host --rm -it --env-file .env bbb-livekit-stt
```
Pre-built images are available via GitHub Container Registry as well.
### Development
#### Linting
This project uses [ruff](https://docs.astral.sh/ruff/) for linting and formatting. To check for issues:
```bash
uv run ruff check .
```
To automatically fix fixable issues:
```bash
uv run ruff check --fix .
```
To format the code:
```bash
uv run ruff format .
```