DocsAPI reference
Transcriptions
POST /v1/audio/transcriptions — speech to text in 30 languages with Qwen3-ASR on your own GPU, in OpenAI's transcription format.
HTTP
POST https://osarai.xyz/v1/audio/transcriptionsTurns recorded speech into text in OpenAI's transcription format. Deploy Qwen3-ASR-1.7B (qwen3-asr-1.7b): 30 languages and 22 Chinese dialects.
Request
Send the audio as multipart/form-data with a file field:
Terminal
curl "https://osarai.xyz/v1/audio/transcriptions" \
-H "Authorization: Bearer $OSARAI_API_KEY" \
-F model=qwen3-asr-1.7b \
-F [email protected] \
-F language=enPython
from openai import OpenAI
import os
client = OpenAI(base_url="https://osarai.xyz/v1", api_key=os.environ["OSARAI_API_KEY"])
with open("meeting.mp3", "rb") as audio:
result = client.audio.transcriptions.create(model="qwen3-asr-1.7b", file=audio, language="en")
print(result.text)TypeScript
import OpenAI from "openai";
import { createReadStream } from "node:fs";
const client = new OpenAI({ baseURL: "https://osarai.xyz/v1", apiKey: process.env.OSARAI_API_KEY });
const result = await client.audio.transcriptions.create({
model: "qwen3-asr-1.7b",
file: createReadStream("meeting.mp3"),
language: "en",
});
console.log(result.text);| Field | Notes |
|---|---|
file | The audio: mp3, wav, flac, ogg, webm or m4a, up to 25 MB |
model | qwen3-asr-1.7b |
language | Optional ISO code (en, id, ja, …); detected when left out |
Response
JSON
{ "text": "Thanks everyone for joining. First item on the agenda is the launch date." }For recordings longer than about half an hour, split the audio into parts and send them one by one.