| name | whisper-lolo-transcription-jobs |
| description | Implement or adjust background transcription jobs for whisper-lolo. Use when wiring Inngest events, handling long-running jobs, chunking before transcription, persisting transcripts, or maintaining the TranscriptionProvider abstraction. |
Whisper Lolo Transcription Jobs
Overview
Run transcription asynchronously with Inngest, storing results in Postgres, and keep a provider abstraction for Whisper now and Voxtral later.
Job workflow
- Emit
recording.uploadedafter successful Blob upload. - In Inngest, start
transcribeRecordingon that event. - Download audio from
blob_url. - Chunk before transcription to fit provider limits.
- Call the provider (Whisper now) and store text + segments.
- Update statuses and handle errors with retries.
Provider abstraction
- Maintain a
TranscriptionProviderinterface withtranscribe(audioUrl). - Implement
WhisperProvidernow; leaveVoxtralProviderstubbed. - Avoid provider-specific logic in job orchestration.
Status discipline
recordings.status: uploaded -> transcribing -> done/error.transcriptions.status: pending -> done/error.- Persist timestamps for observability where possible.
Error handling
- Log failures with enough context to retry safely.
- Avoid duplicate transcription on retry (idempotency checks).
References to consult
documentation/inngest-background-jobs.mddocumentation/inngest-demo-nextjs-full-stack.mddocumentation/openai-node-audio-example.mddocumentation/openai-speech-to-text.mddocumentation/openai-audio-api-reference.md