01
Signal chain
Three hops, one direction. The phone never talks to the GPU box directly, so the same call works on mobile data or inside the tailnet.
STAGE 01
Submit
any client → https://opc.taiel.eu
- Multipart upload with a JSON options block
- Streams to disk, never held in memory
- Options validated before the job is accepted
reachable anywhere
STAGE 02
Relay
opc.taiel.eu · /opt/transcribe
- Stores audio and tracks job state
- Holds the queue while b550 is offline
- Hands jobs over FIFO the moment the worker polls
online · holding queue
STAGE 03
Transcribe
taiel-b550-eagle · RTX 3060
- Pulls work over the tailnet when it is up
- Runs NeMo Parakeet on CUDA
- Returns SRT plus a derived plain-text transcript
worker draining queue
02
Interface
One bearer token for clients, one for the worker. The status endpoint is the only thing a client needs to poll.
Endpoints
POST
/api/v1/jobs
GET
/api/v1/jobs/{id}
GET
/api/v1/jobs/{id}/result?format=
Formats are honest. Ask for a format that was not produced and you get a
404, never a different file wearing the wrong extension.
Live status
Pipeline
relayonline
worker · b550active
queueFIFO · draining
tlsLet's Encrypt · auto
hold policyqueue until b550 returns
Diarization is off by default. Speaker labels need a HuggingFace token on
the worker, which is not configured yet.
03
Options, honestly
What the pipeline actually honours today. Unsupported values are ignored and noted in the job log rather than silently pretending to work.
| Option | Values | Status | Behaviour |
|---|---|---|---|
| language | auto · en · de · fr … | partial | Non-English switches on the multilingual Parakeet v3 model. There is no per-language switch — auto and de behave identically. |
| tracks | mix · left · right · split | partial | left/right map to audio track 0/1. mix and split fall back to the default track. |
| diarization | true · false | blocked | Needs a HuggingFace token on the worker for pyannote. Not configured yet, so requests fail with a clear error. |
| model | tiny · base · small … | ignored | Parakeet TDT 0.6B is the only engine. The value is accepted and logged, but does not change anything. |
| speakers | 1–16 | ignored | No speaker-count hint is supported by the engine yet. |
| output_formats | txt · srt | works | Both are produced from the same pass. vtt and json are requested often but not produced yet — asking for them returns 404. |