Skip to content

Quickstart

Terminal window
pip install "vaak[whisper]"

ffmpeg must be on your PATH. See installation for CUDA and other extras.

Terminal window
vaak transcribe clip.mp3 --language hi

Prints the transcript to stdout. The default model is faster-whisper:small. Add --json to get the full Transcript object including segments and the real-time factor:

Terminal window
vaak transcribe clip.mp3 --model faster-whisper:small --language hi --json

Leave out --language to auto-detect.

from vaak import get_backend, load_audio
audio = load_audio("clip.wav") # float32 numpy, 16 kHz mono
backend = get_backend("faster-whisper:small") # lazy: weights load on first use
result = backend.transcribe(audio, language="hi") # language=None -> auto-detect
print(result.text)
print(result.language, result.rtf)

result.segments is a list of Segment(start, end, text). See the Python API guide.

Terminal window
vaak serve

By default this loads faster-whisper:small and listens on http://127.0.0.1:8000. Try it:

Terminal window
curl -F file=@clip.mp3 -F language=hi http://localhost:8000/v1/transcribe

Response:

{
"text": "...",
"language": "hi",
"segments": [{"start": 0.0, "end": 2.4, "text": "..."}],
"duration": 2.4,
"rtf": 0.08,
"backend": "faster-whisper",
"model": "small"
}

The server also exposes /v1/audio/transcriptions, which accepts the same request shape as OpenAI’s endpoint, and a WebSocket at /v1/stream. See the HTTP API guide.

Terminal window
pip install "vaak[nemo]"
vaak transcribe clip.mp3 --model indic-conformer:hi

vaak models lists everything that is installed. Spec strings are documented in model specs.

  • Live demo in the browser, or pointed at the server you just started.
  • Benchmarks to pick a model for your language and hardware.
  • Docker to run the server without a Python environment.