Skip to main content
Updated Sep 7, 2026

Audio Transcription

AutoTalk turns audio into text in two ways:

  • Automatic chat transcription — inbound voice notes on your channels are transcribed inline so agents and AI agents can read them immediately.
  • Standalone transcription — transcribe any audio file in your storage (interviews, meetings, podcasts — hours long if needed) into downloadable .txt, .srt, .vtt and .json transcripts, optionally with speaker labels.

Both are configured through transcription profiles.

Transcription profiles

A profile is a reusable, company-wide transcription configuration. Manage them under Company → Transcription profiles. Every company starts with a default OpenAI (platform) profile, so transcription works out of the box.

Provider typeWhat it doesBilling
openaiUses OpenAI Whisper. With no API key set it uses AutoTalk's platform key; set your own OpenAI key to make it BYOK.With the platform key (no API key), billed on the Speech-to-text meter (stt_ms) on your AutoTalk invoice. With your own OpenAI key it's BYOK — billed by your provider, and only tracked on the internal, unbilled audio_ms_byok counter.
openai_compatibleSends audio to your own Whisper-compatible endpoint (your OpenAI key, Groq, a self-hosted faster-whisper server, …).Billed by your provider; AutoTalk only tracks usage.
diarizeSends audio to a self-hosted WhisperX box that also identifies who spoke (speaker diarization).Billed by you (your hardware); AutoTalk only tracks usage.
assemblyaiSends audio to AssemblyAI, a hosted service that also identifies who spoke — speaker labels with no hardware of your own. With no API key set it uses AutoTalk's platform account; set your own AssemblyAI key to make it BYOK.With the platform account (no API key), billed on the Speech-to-text meter (stt_ms) on your AutoTalk invoice. With your own key it's BYOK — billed by AssemblyAI.
cloudflareSends audio to Deepgram Nova-3 on Cloudflare Workers AI. The fastest option for long files, but it does not label speakers. Leave the account ID and API key empty to use AutoTalk's platform account, or set both to run on your own Cloudflare account.With the platform account, billed on the Speech-to-text meter (stt_ms) on your AutoTalk invoice. With your own account ID + token it's BYOK — billed by Cloudflare.

Profile fields:

  • Name — shown in pickers.
  • Provider type — one of the five above.
  • Base URL — your endpoint (openai_compatible and diarize only). Must be a public HTTP(S) URL. The openai, assemblyai and cloudflare providers talk to fixed endpoints, so the field is hidden for them.
  • Cloudflare account ID — (cloudflare profiles only) your account ID, 32 hexadecimal characters. Empty means AutoTalk's platform Cloudflare account. It must be set together with the API key: setting only one of the two is rejected, rather than quietly falling back to the platform account.
  • Model — optional model override. Empty uses that provider's own default: whisper-1 for openai, universal-2 for assemblyai, @cf/deepgram/nova-3 for cloudflare. On AutoTalk's platform account the two hosted providers accept only models AutoTalk prices; attach your own credentials to run others. A cloudflare model must be a Workers AI model id (@cf/publisher/model) in both cases — your own credentials change which models you may pick, not the form they take.
  • Voice mode model — (openai profiles only) the realtime model the in-app voice mode uses while this is the company default. Empty means gpt-4o-mini-transcribe, which bills only the speech it detects. gpt-live-transcribe shows your words while you are still speaking, but bills every minute the microphone is open (silence included) at about 5.7× the rate — roughly 10× the default on a typical conversation. Always billed on AutoTalk's Speech-to-text meter (stt_ms), even on a profile with its own API key.
  • Language — default transcription language (empty uses your company locale).
  • API key — your provider key, AssemblyAI key, Cloudflare API token or self-hosted shared secret. Stored encrypted, and sent to the provider in whatever form that provider expects. Leaving it empty on an openai, assemblyai or cloudflare profile is what puts that profile on AutoTalk's platform account.
  • Headers — optional extra HTTP headers sent to BYO provider endpoints (shown for openai_compatible / diarize profiles).
  • Company default — the profile used whenever a channel or job doesn't pick one explicitly.

Channels can pin a specific profile in the channel's Transcription options. Channels accept any profile that does not label speakers — today openai, openai_compatible and cloudflare. Profiles that always diarize (diarize, assemblyai) are for standalone jobs only: inbound voice notes have a single speaker, and the inbound path has to answer immediately.

Transcribing a file from Storage

  1. Open Company → Storage, select an audio file, and pick Transcribe (context menu or the details panel).
  2. Choose the profile, language and output formats. If the profile is a diarization profile, the transcript will label speakers.
  3. Click Transcribe. The dialog switches to a live progress view — you can close it at any time; the job keeps running in the background.
  4. Track jobs in the Transcriptions panel (side menu or the shortcut in the Storage toolbar). When a job finishes you'll also get a notification.
  5. Outputs are saved next to the source file as <name>.transcript.<jobId>.txt/srt/vtt/json (the job id keeps each run's output distinct so re-runs never collide), and the panel offers downloads, a copy button and a read-only viewer with timestamps and speaker labels.

Long files are handled automatically. openai and openai_compatible profiles split the audio into chunks, transcribe them in parallel and stitch the result back with correct timestamps; the other three take the whole file in one pass. How long a file may be depends on the profile's provider:

ProviderLongest file
openai, openai_compatible4 hours
assemblyai139 minutes
cloudflare81 minutes
diarize (self-hosted WhisperX)90 minutes

The length limit is checked before any processing starts, so an over-long file is rejected immediately instead of failing partway through.

The two hosted limits are AutoTalk's, not the providers': AssemblyAI itself accepts files up to 10 hours. AutoTalk converts every file to a standard audio format before transcribing it, and that converted copy has a size budget — so the real limit is a number of megabytes, and these figures are what that budget works out to in minutes. They are set against the largest a converted file can possibly get, not a typical one, so a recording does not have to be small or quiet to fit.

Self-hosted diarization (WhisperX)

Speaker labels can come from a self-hosted WhisperX + pyannote service you run on your own GPU machine (12 GB VRAM recommended; smaller cards work with the int8 option). Setup — including the required Hugging Face token for the gated pyannote models — is documented in the autotalk-transcription-gpu repository README. Point a diarize profile at your box's URL with the shared secret as the API key, and it becomes available in the Transcribe dialog.

If you would rather not run hardware, an assemblyai profile produces speaker labels too — see the provider table above.

API

Transcription jobs are also available programmatically:

  • POST /v1/transcriptions — enqueue a job (fullPath, optional profileId, languageCode, formats).
  • GET /v1/transcriptions/{id} — job status, progress and output paths.

MCP-connected agents can call the transcribe_storage_file and get_transcription_job tools for the same flow.

Billing details

  • Platform transcription — an openai, assemblyai or cloudflare profile running on AutoTalk's own credentials — bills the Speech-to-text meter (stt_ms), normalized by provider cost, and respects your plan's monthly limits.
  • BYO and self-hosted profiles are not billed by AutoTalk — usage is tracked on the internal audio_ms_byok counter for your reference only. That counter is shared with bring-your-own-key voice synthesis and never appears on an invoice.
  • Audio preparation (normalization/splitting) bills the transcoding meter, like other media processing.