API حوالہ
API دستاویزی
اوڈیو اور ویڈیو فائلیں پروگرامی طور پر نقل کریں. ریئل-ٹائم اسٹریمنگ، اسپیکر ڈیاریزیشن، AI خلاصہ، 100+ زبانیں.
نظرثاني
STT.ai API زبان سے متن میں نقل، ریئل ٹائم اسٹریمنگ اور AI-powered summarization فراہم کرتا ہے۔ تمام درخواستیں براہ راست ہمارے GPU-powered API سرور میں جاتے ہیں۔
https://api.stt.ai
مدد شدہ ان پٹ فارمیٹ: MP3, WAV, FLAC, OGG, M4A, AAC, OPUS, WMA, MP4, WebM, MKV, AVI, MOV, WMV, MPG, MPEG. زیادہ سے زیادہ فائلیں: 2GB.
توثیق
آپ کی API کلید کو Authorization ہیڈر میں ایک Bearer Token کے طور پر بھیجیں:
Authorization: Bearer YOUR_API_KEY
آپ کی API کی کلید حاصل کریں اکاؤنٹس. نامعلوم درخواستیں 3 نقلات کے ساتھ ایک حد کے ساتھ ہر دن ہر IP کے ساتھ اجازت دی جاتی ہیں.
حدیں
| تير | نقل | فائلیں | متوازی |
|---|---|---|---|
| نامعلوم | 3/day per IP | 100 MB | 1 |
| مفت (رجیسٹرڈ) | 600 min/month | 500 MB | 2 |
| پیسہ پلان | شکریہ پر مبنی | 2 GB | 5 |
کریڈٹ آ ديو مدت پر بنائے گئے هے: 1 کریڈٹ = 1 منٹ آ ڈیو ، رلڈ اپ
خاتمہ
https://api.stt.ai/v1/transcribe
Upload an audio or video file for transcription with speaker diarization, language detection, and word-level timestamps.
درخواست کے پیرامیٹرز
اس طرح بھیجیں multipart/form-data
| پیرامیٹر | قسم | ضروری | ڈیفالٹ | تفصیل |
|---|---|---|---|---|
file | file | Yes | — | Audio or video file |
model | string | No | large-v3-turbo | Model: large-v3-turbo, large-v3, medium, small |
language | string | No | auto | ISO 639-1 code or auto |
diarize | boolean | No | true | Enable speaker diarization |
speakers | integer | No | 0 | Expected speakers (0 = auto) |
response_format | string | No | json | json, txt, srt, vtt |
جواب (JSON)
{
"text": "Hello, welcome to the meeting...",
"language": "en",
"duration": 125.4,
"segments": [
{
"start": 0.0,
"end": 3.2,
"text": "Hello, welcome to the meeting.",
"speaker": "Speaker 1",
"confidence": 0.95,
"words": [
{"word": "Hello", "start": 0.0, "end": 0.4},
{"word": "welcome", "start": 0.5, "end": 0.9}
]
}
],
"speakers": ["Speaker 1", "Speaker 2"]
}
https://api.stt.ai/v1/summarize
Summarize transcript text using an on-device LLM. No data leaves our servers.
درخواست کا باڈی (JSON)
| پیرامیٹر | قسم | ضروری | تفصیل |
|---|---|---|---|
text | string | Yes | Transcript text to summarize |
style | string | No | brief (default), detailed, action_items, bullet_points |
جواب
{
"summary": "The team discussed Q3 revenue growth of 15%...",
"style": "brief",
"model": "qwen2.5-1.5b-instruct"
}
wss://api.stt.ai/v1/stream
Real-time speech-to-text via WebSocket. Send raw PCM audio (16-bit, 16kHz, mono) and receive transcription updates instantly.
پروٹوکول
- Connect to
wss://api.stt.ai/v1/stream - Send JSON config:
{"language": "en", "model": "large-v3-turbo"} - Wait for
{"status": "ready"} - Stream raw PCM Int16 audio chunks (binary frames)
- Receive JSON updates:
{"text": "...", "partial": "..."} - Send
{"action": "stop"}to finalize
سرور سے پیغامات
| فیلڈ | تفصیل |
|---|---|
status | "ready" — connection established, ready for audio |
partial | Partial/interim transcript (updates as you speak) |
text | Finalized transcript segment |
is_final | true when stream is complete |
https://api.stt.ai/v1/models
List all available transcription models. No authentication required.
{
"models": [
{"id": "large-v3-turbo", "name": "Whisper Large V3 Turbo", "languages": 99, "speed": "fast"},
{"id": "large-v3", "name": "Whisper Large V3", "languages": 99, "speed": "standard"},
{"id": "medium", "name": "Whisper Medium", "languages": 99, "speed": "fast"},
{"id": "small", "name": "Whisper Small", "languages": 99, "speed": "very_fast"}
]
}
https://api.stt.ai/v1/languages
List all supported languages with ISO codes. No authentication required.
{
"languages": [
{"code": "en", "name": "english"},
{"code": "es", "name": "spanish"},
{"code": "fr", "name": "french"},
...
]
}
https://api.stt.ai/health
Check GPU and API health. No authentication required.
{
"status": "ok",
"gpu_available": true,
"gpu_name": "NVIDIA A100",
"gpu_memory_mb": 8188
}
مثالیں
cURL
# Transcribe a file
curl -X POST https://api.stt.ai/v1/transcribe \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@meeting.mp3" \
-F "model=large-v3-turbo" \
-F "language=auto" \
-F "diarize=true"
# Get SRT subtitles
curl -X POST https://api.stt.ai/v1/transcribe \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@video.mp4" \
-F "response_format=srt" \
-o subtitles.srt
# Summarize text
curl -X POST https://api.stt.ai/v1/summarize \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Full transcript text here...", "style": "brief"}'
# List models (no auth needed)
curl https://api.stt.ai/v1/models
# Health check
curl https://api.stt.ai/health
Python
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://api.stt.ai"
# Transcribe a file
with open("meeting.mp3", "rb") as f:
resp = requests.post(
f"{BASE}/v1/transcribe",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": ("meeting.mp3", f, "audio/mpeg")},
data={"model": "large-v3-turbo", "language": "auto", "diarize": "true"},
)
result = resp.json()
print(f"Language: {result['language']}, Duration: {result['duration']:.1f}s")
for seg in result["segments"]:
print(f"[{seg['start']:.1f}s] {seg.get('speaker', '')}: {seg['text']}")
# Summarize the transcript
summary = requests.post(
f"{BASE}/v1/summarize",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"text": result["text"], "style": "bullet_points"},
).json()
print(summary["summary"])
Node.js
const fs = require("fs");
const FormData = require("form-data");
const API_KEY = "YOUR_API_KEY";
const BASE = "https://api.stt.ai";
async function transcribe(filePath) {
const form = new FormData();
form.append("file", fs.createReadStream(filePath));
form.append("model", "large-v3-turbo");
form.append("language", "auto");
form.append("diarize", "true");
const resp = await fetch(`${BASE}/v1/transcribe`, {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, ...form.getHeaders() },
body: form,
});
const result = await resp.json();
console.log(`Duration: ${result.duration.toFixed(1)}s`);
for (const seg of result.segments) {
console.log(`[${seg.start.toFixed(1)}s] ${seg.speaker}: ${seg.text}`);
}
return result;
}
transcribe("meeting.mp3");
WebSocket (Browser)
// Real-time transcription from microphone
const ws = new WebSocket("wss://api.stt.ai/v1/stream");
ws.binaryType = "arraybuffer";
ws.onopen = () => {
ws.send(JSON.stringify({ language: "auto", model: "large-v3-turbo" }));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.status === "ready") {
startStreaming(); // Begin sending audio
}
if (data.text) console.log("Final:", data.text);
if (data.partial) console.log("Partial:", data.partial);
};
async function startStreaming() {
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
const ctx = new AudioContext({ sampleRate: 16000 });
const source = ctx.createMediaStreamSource(stream);
const processor = ctx.createScriptProcessor(4096, 1, 1);
processor.onaudioprocess = (e) => {
const float32 = e.inputBuffer.getChannelData(0);
const int16 = new Int16Array(float32.length);
for (let i = 0; i < float32.length; i++) {
int16[i] = Math.max(-32768, Math.min(32767, float32[i] * 32767));
}
if (ws.readyState === 1) ws.send(int16.buffer);
};
source.connect(processor);
processor.connect(ctx.destination);
}
// Stop: ws.send(JSON.stringify({ action: "stop" }));
غلطی ہینڈلنگ
The API returns standard HTTP status codes with JSON error bodies.
| حالت | معنی | کب |
|---|---|---|
200 | OK | Request succeeded |
400 | Bad Request | Missing file, unsupported format |
401 | Unauthorized | Invalid or missing API key |
402 | Payment Required | No credits remaining |
429 | Too Many Requests | Rate limit exceeded (free tier) |
503 | Service Unavailable | GPU temporarily unavailable |
// Error response format
{"error": "No credits remaining. Upgrade your plan."}
لائبریری
Official SDKs for Python and Node.js. Install and start transcribing in minutes.
شروع کرنے کے لیے تیار ہیں؟
مفت سائن اپ کریں اور سیکنڈوں میں اپنی API کلید حاصل کریں۔ 600 منٹ/ماہ مفت۔
مفت سائن اپ کریں قیمتیں دیکھیں