A real-time speech-to-text system that transcribes audio using OpenAI's Whisper model locally. The system consists of three microservices that work together to capture, process, and display transcriptions in real-time.
The system consists of three main services:
- Broadcaster: Captures microphone audio and streams it over WebSocket
- Server: Processes audio using Whisper and broadcasts transcriptions
- Client: Displays real-time transcriptions from connected broadcasters
- Python 3.9 or higher
- A microphone for audio capture
- Operating System: macOS, Windows, or Linux
git clone https://github.com/encryptedtouhid/MeetingScriber.git
cd MeetingScriberpython -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install components based on your needs:
# For all components
pip install -r requirements.txt
# For server only
pip install -r server/requirements.txt
# For client only
pip install -r client/requirements.txt
# For broadcaster only
pip install -r broadcaster/requirements.txtsudo ./install_scripts/macos/install_broadcaster.shsudo ./install_scripts/linux/install_broadcaster.sh.\install_scripts\windows\install_broadcaster.batpython server/main.pypython client/main.pyTo run the broadcaster as a regular Python program instead of a system service:
python broadcaster/main.pyNote: When running the broadcaster directly, you'll need to keep the terminal window open. The service installation method is recommended for long-term use as it runs in the background and starts automatically with your system.
├── broadcaster/ # Audio capture service
│ ├── main.py # Main broadcaster logic
│ └── service/ # Platform-specific service files
├── server/ # Whisper transcription service
│ └── main.py # WebSocket server & transcription
├── client/ # Transcription display service
│ └── main.py # Client UI
├── requirements.txt # Python dependencies
└── install_scripts/ # Platform-specific installers
Default WebSocket connections:
- Broadcaster → Server:
ws://localhost:8000/audio - Server → Client:
ws://localhost:8000/transcribe
- Install development dependencies:
pip install -r requirements-dev.txt- Run tests:
pytestTo uninstall the broadcaster service:
sudo ./install_scripts/macos/uninstall_broadcaster.shsudo ./install_scripts/linux/uninstall_broadcaster.sh.\install_scripts\windows\uninstall_broadcaster.ps1If you encounter SSL certificate errors when downloading the Whisper model, try:
pip install --upgrade certifi
export SSL_CERT_FILE="$(python -m certifi)"- Ensure the server is running before starting the client
- Check if ports are not blocked by firewall
- Default ports can be modified in each service's configuration
MIT License