GPU Compute / Recipe

Transcription endpoint

Launch a persistent Whisper endpoint using badgr serve --task transcribe. Badgr deploys fedirz/faster-whisper-server automatically and exposes the OpenAI-compatible POST /v1/audio/transcriptions endpoint. Use it directly with the OpenAI SDK — no BYO container needed.

Prerequisites: npm install -g badgr-cli then badgr login. Setup guide →

1. Start the endpoint

Pass the Whisper model size and --task transcribe. Badgr selects a GPU, deploys faster-whisper-server, and waits for it to be ready:

badgr serve large-v3 --task transcribe --gpu RTX_4090 --max-cost 10

The RTX 4090 fits Whisper large-v3 at 24 GB VRAM. Badgr prints the endpoint URL once the model is loaded (usually under 2 minutes).

Supported model sizes: tiny, base, small, medium, large-v3.

2. Transcribe audio

Export BADGR_ENDPOINT from the URL printed by badgr serve and use the OpenAI SDK:

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["BADGR_API_KEY"],
    base_url=os.environ["BADGR_ENDPOINT"],
)

with open("audio.mp3", "rb") as f:
    transcript = client.audio.transcriptions.create(
        model="large-v3",
        file=f,
        response_format="text",
    )
print(transcript)

Node.js

import OpenAI from "openai";
import fs from "fs";

const client = new OpenAI({
  apiKey: process.env.BADGR_API_KEY,
  baseURL: process.env.BADGR_ENDPOINT,
});

const transcript = await client.audio.transcriptions.create({
  model: "large-v3",
  file: fs.createReadStream("audio.mp3"),
  response_format: "text",
});
console.log(transcript);

curl

curl $BADGR_ENDPOINT/v1/audio/transcriptions \
  -H "Authorization: Bearer $BADGR_API_KEY" \
  -F model=large-v3 \
  -F file=@audio.mp3 \
  -F response_format=text

3. Stop billing

badgr down <deployment-id>

Terminates the GPU instance. Use badgr receipts to see cost after.

Options

--task transcribeRequired — deploys faster-whisper-server with OpenAI-compatible /v1/audio/transcriptions
--gpu RTX_4090Recommended for Whisper — fits large-v3 at 24 GB VRAM
--max-cost <$>Auto-stop when spend reaches this amount
--count <n>Multiple instances for higher concurrency
--no-waitReturn immediately; use badgr logs to confirm startup

Next steps