The CallMissed STT API follows the OpenAI audio transcription shape. If you've ever called openai.audio.transcriptions.create(), this is a drop-in.
from openai import OpenAI
client = OpenAI(
base_url="https://api.callmissed.com/v1",
api_key="cm_your_key",
)
with open("call_recording.mp3", "rb") as audio:
result = client.audio.transcriptions.create(
model="saaras:v3", # Sarvam — Indian + code-mixed.
# Also: "whisper-large-v3-turbo" (99 langs)
# Also: "nova-3" (Deepgram, diarize + smart-format)
file=audio,
language="hi-IN", # Sarvam BCP-47; "unknown" for auto-detect
response_format="verbose_json",
)
print(result.text)
Python — file transcription with speaker diarization
import { CallMissed } from "callmissed";
const cm = new CallMissed({ apiKey: process.env.CM_KEY });
const stream = cm.audio.stt.stream({
model: "saarika-v2",
language: "hi",
sampleRate: 16000,
});
stream.on("partial", (t) => console.log("partial:", t.text));
stream.on("final", (t) => console.log("final:", t.text, "speaker:", t.speaker));
// pipe raw PCM from your mic / getUserMedia
micStream.on("data", (chunk) => stream.send(chunk));
Node/JS — streaming transcription from a microphone