Free, open-source speech-to-text that runs on your machine. No API key, no usage limits, no audio ever leaves your computer.
Built and maintained by Juju Store → jujustore.app. When you need bigger models or cloud transcription, the same library upgrades seamlessly to the premium tier.
| Free (local) | Premium (cloud via jujustore.app) | |
|---|---|---|
| Transcribe audio → text | ✅ | ✅ |
| Runs offline on your machine | ✅ | — |
| Cost | Free, unlimited | Paid plans |
| Models | tiny · base · small · medium | pro · pro-large · turbo |
| Saved history & batch | — | ✅ |
| API key needed | ❌ | ✅ (get one) |
# The library (lightweight):
pip install openjujuspeechkit
# ...plus the free local transcription engine:
pip install "openjujuspeechkit[local]"The local engine (
faster-whisper) downloads a small model the first time you run it. You also need ffmpeg installed (brew install ffmpegon macOS,sudo apt install ffmpegon Linux, or grab it from ffmpeg.org on Windows).
from openjujuspeechkit import transcribe
result = transcribe("meeting.mp3") # runs locally, free
print(result.text)
# Pick a bigger model for more accuracy:
result = transcribe("interview.wav", model="small", language="en")
for seg in result.segments:
print(f"[{seg.start:.1f}s] {seg.text}")openjuju transcribe meeting.mp3
openjuju transcribe interview.wav --model small --output transcript.txt
openjuju info # shows models + linksThat's the whole free tier. No sign-up, no key, no limits. 🎉
Get an API key at jujustore.app, then:
from openjujuspeechkit import Client
client = Client(api_key="juju_xxx") # or set OPENJUJU_API_KEY
result = client.transcribe("longfile.mp3", model="pro")
print(result.text)Premium runs on Juju Store's servers — bigger models, faster turnaround, and nothing to install or maintain.
Local, free transcription. Returns a TranscriptionResult with:
.text— the full transcript (string).language— detected language code.segments— list ofSegment(start, end, text)
Free models: tiny, base, small, medium.
Premium cloud client. Reads OPENJUJU_API_KEY if api_key is omitted.
.transcribe(audio_path, *, model="pro", language=None)→TranscriptionResult
Premium models: pro, pro-large, turbo.
Issues and PRs welcome — see CONTRIBUTING.md. This project is MIT licensed and proudly open source.
OpenJujuSpeechKit is a free gift from Juju Store — explore our other apps and the premium speech tier there.