Gearnode/qwen3-asr-uzbek-v2 · FastAPI · bfloat16
# cURL misoli curl -X POST http://localhost:8000/transcribe \ -F "file=@audio.wav" \ -F "language=Uzbek" \ -F "return_timestamps=true"
# Javob (JSON) { "text": "Salom, bu sinov.", "language": "Uzbek", "duration_seconds": 3.12, "processing_time_seconds": 1.05, "segments": [ { "start": 0.0, "end": 1.4, "text": "Salom," }, { "start": 1.4, "end": 3.1, "text": "bu sinov." } ] }
# JavaScript — EventSource with fetch const form = new FormData(); form.append('file', audioBlob, 'rec.wav'); form.append('language', 'Uzbek'); const res = await fetch('/transcribe/stream', { method: 'POST', body: form }); const reader = res.body.getReader(); const dec = new TextDecoder(); while (true) { const { done, value } = await reader.read(); if (done) break; // parse SSE lines ... console.log(dec.decode(value)); }
# SSE oqimi
event: status
data: {"message": "Audio received", "duration": 3.12}
event: segment
data: {"start": 0.0, "end": 1.4, "text": "Salom,"}
event: segment
data: {"start": 1.4, "end": 3.1, "text": "bu sinov."}
event: done
data: {"text": "Salom, bu sinov.", "processing_time_seconds": 1.05}
{ "languages": ["Uzbek", "English", "Russian"] }
# O'rnatish pip install fastapi uvicorn python-multipart librosa torch qwen-asr # Ishga tushirish uvicorn main:app --host 0.0.0.0 --port 8000 --reload