AI Workers
Flux Asr (Speech to Text)
Automatic speech recognition via the Linconwaves AI Workers API.
Flux Asr (slug: flux-asr) transcribes spoken audio to text.
Endpoint
- URL:
POST /:modelSlugwithmodelSlug = flux-asr - Auth:
Authorization: Bearer <api_key> - Content-Type:
application/json - Base URL:
https://aiworker.linconwaves.com
Request
Send audio as a byte array and optional prompt.
{
"audio": [82, 73, 70, 70],
"prompt": "Transcribe this clip"
}Notes:
- Provide audio bytes (PCM/WAV/MP3, etc.). Keep size reasonable for low latency.
promptis optional; omit if not needed.
Response
- Typical:
{ "result": { "text": "<transcript>" } }, or sometimesresponse/text. Errors return JSON{ "error": "...", "detail"?: "..." }with HTTP codes (400/401/499/500).
Curl example (base64 to bytes inline)
# assumes AUDIO_B64 holds base64 of your audio (no data: prefix)
curl -X POST https://aiworker.linconwaves.com/flux-asr \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
--data "$(node -e \"const b=Buffer.from(process.env.AUDIO_B64,'base64'); console.log(JSON.stringify({audio:[...b],prompt:'Transcribe this clip'}));\")"JavaScript (fetch)
const audioBytes = [82, 73, 70, 70];
const resp = await fetch('https://aiworker.linconwaves.com/flux-asr', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.API_KEY}`,
},
body: JSON.stringify({ audio: audioBytes, prompt: 'Transcribe this clip' }),
});
const data = await resp.json();
if (!resp.ok) {
throw new Error(data.error || `Request failed (${resp.status})`);
}
const transcript =
data.result?.text ||
data.text ||
data.response ||
"No transcript found.";Error codes
401 Unauthorized— Missing/invalid API key.400 Bad Request— Invalid payload (e.g., missingaudio).499 Client Closed Request— Request aborted by client.500— Upstream model error or unexpected failure.
Backend snippets
const BASE = 'https://aiworker.linconwaves.com';
const API_KEY = process.env.AIWORKER_API_KEY!;
const payload = {
"audio": [82, 73, 70, 70],
"prompt": "Transcribe this clip"
};
const res = await fetch(`${BASE}/flux-asr`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${API_KEY}` ,
},
body: JSON.stringify(payload),
});
const data = await res.json();
console.log(data);Frontend snippets
// app/api/aiworker/route.ts
const BASE = 'https://aiworker.linconwaves.com';
const API_KEY = process.env.AIWORKER_API_KEY!;
export async function POST(req: Request) {
const payload = await req.json();
const res = await fetch(`${BASE}/flux-asr`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${API_KEY}` ,
},
body: JSON.stringify(payload),
});
return new Response(await res.text(), { status: res.status, headers: res.headers });
}Related
- Playground: Dashboard → Playground → select “Flux Asr”, upload audio, and transcribe.