Reference · Tools

Deepgram

Transcribe audio and generate speech using Deepgram API.

Action (binary) Utility v1 Binary data

The Deepgram node connects your BusyBot workflows to Deepgram's speech API, letting you transcribe audio from a URL or an uploaded file, or generate spoken audio from text using Aura voice models. You could, for example, build a pipeline that receives a customer call recording, extracts the transcript, and routes it to a CRM — all without leaving BusyBot.

Node type
Action (binary)
Parameters
15
Outputs
Output, Error
Credentials
Deepgram API

Deepgram

Transcribe audio and generate speech using the Deepgram API

Overview

The Deepgram tool provides speech-to-text (transcription) and text-to-speech capabilities via the Deepgram API. It supports three operations: (1) transcribeUrl — transcribe audio from a URL using models like Nova-2, Nova-3, or Whisper; (2) transcribeFile — transcribe audio from a binary file attached to the input item; (3) textToSpeech — convert text to speech audio using Aura voice models. Transcription returns JSON with the full API response or just the transcript text. Text-to-speech stores the generated audio as binary data. Authentication is via API key sent as a Token header.

Category: Utility
Tool Name: deepgram
Version: 1

Appearance: Icon: lucide-Headphones | Color: #13EF93

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Deepgram API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Transcriptiontranscription
Speechspeech

Operations

Each operation belongs to one resource: Transcribe URL and Transcribe File belong to transcription, and Text to Speech belongs to speech.

OperationValueDescription
Transcribe URLtranscribeUrlTranscribe audio from a URL
Transcribe FiletranscribeFileTranscribe audio from a binary file
Text to SpeechtextToSpeechConvert text to speech audio

Parameters

Transcription: Transcribe URL

ParameterTypeRequiredDefaultDescription
Audio URLstringYesURL of the audio file to transcribe. Must be a publicly reachable URL that Deepgram can fetch directly — it is sent to the API as-is, not downloaded by the workflow. Supports expressions.
Transcription ModeloptionsNonova-2The transcription model to use.
Options: nova-2 (best accuracy and speed), nova-3 (latest generation model), base (fast, cost-effective), enhanced (higher accuracy), whisper-tiny (smallest, fastest), whisper-small (good balance), whisper-medium (higher accuracy), whisper-large (best Whisper accuracy)
Output FormatoptionsNofullThe format of the transcription output.
Options: full (return the entire Deepgram API response as JSON), transcriptOnly (return only the transcript text)
Transcript Field NamestringNotranscriptThe JSON field name to use for the transcript text in the output. Supports expressions. (shown when Output Format is transcriptOnly)

Transcription: Transcribe File

ParameterTypeRequiredDefaultDescription
Input Binary PropertystringNodataName of the binary property containing the audio file to transcribe. Supports expressions.
Transcription ModeloptionsNonova-2The transcription model to use.
Options: nova-2 (best accuracy and speed), nova-3 (latest generation model), base (fast, cost-effective), enhanced (higher accuracy), whisper-tiny (smallest, fastest), whisper-small (good balance), whisper-medium (higher accuracy), whisper-large (best Whisper accuracy)
Output FormatoptionsNofullThe format of the transcription output.
Options: full (return the entire Deepgram API response as JSON), transcriptOnly (return only the transcript text)
Transcript Field NamestringNotranscriptThe JSON field name to use for the transcript text in the output. Supports expressions. (shown when Output Format is transcriptOnly)

Speech: Text to Speech

ParameterTypeRequiredDefaultDescription
TextstringYesThe text to convert to speech. Supports expressions.
Voice ModeloptionsNoaura-asteria-enThe Aura voice model to use for text-to-speech.
Options: aura-asteria-en (warm, professional female voice), aura-luna-en (soft, friendly female voice), aura-stella-en (clear, articulate female voice), aura-athena-en (confident, authoritative female voice), aura-hera-en (mature, steady female voice), aura-orion-en (deep, resonant male voice), aura-arcas-en (warm, engaging male voice), aura-perseus-en (clear, professional male voice), aura-angus-en (friendly, conversational male voice), aura-orpheus-en (rich, expressive male voice), aura-helios-en (bright, energetic male voice), aura-zeus-en (commanding, powerful male voice)
Audio EncodingoptionsNomp3The audio encoding format for the generated speech.
Options: mp3, linear16 (uncompressed 16-bit PCM audio), mulaw (telephony), alaw (telephony), opus, flac (lossless)
Container FormatoptionsNononeThe container format to wrap the audio output in.
Options: none (raw encoded audio, no container), wav, mp3, ogg
Output Binary PropertystringNodataThe name of the binary property to store the generated speech audio. Supports expressions.
Output FilenamestringNospeech.mp3The filename for the generated speech audio file. Supports expressions.

All Operations

ParameterTypeRequiredDefaultDescription
Additional OptionscollectionNo{}Optional extra settings. The transcription fields apply to Transcribe URL and Transcribe File; Sample Rate and Bit Rate apply to Text to Speech. Fields that do not apply to the current operation are ignored.
— LanguagestringNoBCP-47 language code (e.g., “en-US”, “es”, “fr”). Leave empty for auto-detection. Supports expressions.
— PunctuatebooleanNotrueWhether to add punctuation to the transcript.
— DiarizebooleanNofalseWhether to enable speaker diarization (identify different speakers).
— Smart FormatbooleanNotrueWhether to enable smart formatting (dates, numbers, addresses, etc.).
— KeywordsstringNoComma-separated keywords to boost in transcription accuracy. Supports expressions.
— Sample RatenumberNo0Audio sample rate in Hz for text-to-speech output. Leave as 0 for default.
— Bit RatenumberNo0Audio bit rate for text-to-speech output. Leave as 0 for default.
Max ConcurrencynumberNo5Maximum number of items to process concurrently.

Output Data

One output item per input item. Binary data from the input item is forwarded; Text to Speech additionally attaches the generated audio as a new binary property.

OperationWhat lands on the item
Transcribe URL / Transcribe File with Output Format fullThe whole Deepgram response is merged into the item JSON at the top level, so the transcript text is at results.channels[0].alternatives[0].transcript and the request metadata sits alongside it.
Transcribe URL / Transcribe File with Output Format transcriptOnlyA single field holding the transcript string. The field is named by Transcript Field Name, so the default output is transcript. It is an empty string when Deepgram returned no speech.
Text to SpeechA textToSpeech object with voiceModel, encoding, container, textLength and audioSize, plus the generated audio stored under the Output Binary Property.

Reference the result downstream by expression, e.g. {{ $json.transcript }} in Transcript Only mode, {{ $json.results.channels[0].alternatives[0].transcript }} in Full Response mode, or {{ $json.textToSpeech.audioSize }} after Text to Speech.

Usage Examples

  • Transcribe an audio file from a URL using Nova-2
  • Transcribe a binary audio file with speaker diarization
  • Convert text to speech using Aura voice model
  • Transcribe a podcast episode with punctuation and smart formatting
  • Generate audio narration from text content

Example Configuration

Transcribe audio from a URL and return the transcript text only:

{
  "resource": "transcription",
  "operation": "transcribeUrl",
  "audioUrl": "https://example.com/meeting_recording.mp3",
  "model": "nova-2",
  "outputFormat": "transcriptOnly",
  "transcriptFieldName": "transcript",
  "maxConcurrency": 5
}

Transcribe a URL with diarization and return the full API response:

{
  "resource": "transcription",
  "operation": "transcribeUrl",
  "audioUrl": "https://example.com/interview.wav",
  "model": "nova-2",
  "outputFormat": "full",
  "maxConcurrency": 5,
  "additionalOptions": {
    "language": "en-US",
    "punctuate": true,
    "diarize": true,
    "smart_format": true,
    "keywords": "AI,machine learning,deep learning"
  }
}

Transcribe a binary file attachment:

{
  "resource": "transcription",
  "operation": "transcribeFile",
  "binaryPropertyName": "data",
  "model": "nova-3",
  "outputFormat": "transcriptOnly",
  "transcriptFieldName": "transcriptText",
  "maxConcurrency": 3,
  "additionalOptions": {
    "language": "es",
    "punctuate": true,
    "diarize": false,
    "smart_format": true,
    "keywords": ""
  }
}

Convert text to speech as MP3:

{
  "resource": "speech",
  "operation": "textToSpeech",
  "text": "Your order has been confirmed. Thank you for shopping with us.",
  "voiceModel": "aura-asteria-en",
  "encoding": "mp3",
  "container": "mp3",
  "outputBinaryPropertyName": "data",
  "outputFilename": "confirmation.mp3",
  "maxConcurrency": 5
}

Convert text to speech with custom audio quality settings:

{
  "resource": "speech",
  "operation": "textToSpeech",
  "text": "Welcome to the weekly briefing.",
  "voiceModel": "aura-orion-en",
  "encoding": "mp3",
  "container": "mp3",
  "outputBinaryPropertyName": "audioFile",
  "outputFilename": "briefing.mp3",
  "maxConcurrency": 5,
  "additionalOptions": {
    "sample_rate": 24000,
    "bit_rate": 192
  }
}

Simple URL transcription (default settings)

Minimal configuration for URL-based transcription with auto-detected language.

{
  "resource": "transcription",
  "operation": "transcribeUrl",
  "audioUrl": "https://example.com/audio.mp3",
  "model": "nova-2",
  "outputFormat": "transcriptOnly",
  "transcriptFieldName": "transcript",
  "maxConcurrency": 5
}

Multi-speaker meeting transcription

Full response for downstream speaker-level analysis. Diarization enabled to label speakers.

{
  "resource": "transcription",
  "operation": "transcribeUrl",
  "audioUrl": "https://storage.example.com/meeting_2026_03_11.mp3",
  "model": "nova-2",
  "outputFormat": "full",
  "maxConcurrency": 5,
  "additionalOptions": {
    "language": "en-US",
    "punctuate": true,
    "diarize": true,
    "smart_format": true,
    "keywords": ""
  }
}

Transcribe an uploaded binary file

Used when a previous node provides a binary audio file (e.g., from a file upload or HTTP download).

{
  "resource": "transcription",
  "operation": "transcribeFile",
  "binaryPropertyName": "data",
  "model": "enhanced",
  "outputFormat": "transcriptOnly",
  "transcriptFieldName": "transcript",
  "maxConcurrency": 5,
  "additionalOptions": {
    "language": "fr",
    "punctuate": true,
    "diarize": false,
    "smart_format": true,
    "keywords": ""
  }
}

Text-to-speech for automated notifications

Lightweight TTS output using a clear female voice. Standard MP3 output.

{
  "resource": "speech",
  "operation": "textToSpeech",
  "text": "Reminder: your appointment is scheduled for tomorrow at 3 PM.",
  "voiceModel": "aura-stella-en",
  "encoding": "mp3",
  "container": "mp3",
  "outputBinaryPropertyName": "data",
  "outputFilename": "reminder.mp3",
  "maxConcurrency": 5
}

High-quality TTS with custom sample and bit rate

For production audio content requiring specific quality parameters.

{
  "resource": "speech",
  "operation": "textToSpeech",
  "text": "This is a professional voiceover for our product demonstration video.",
  "voiceModel": "aura-orpheus-en",
  "encoding": "linear16",
  "container": "wav",
  "outputBinaryPropertyName": "audioOutput",
  "outputFilename": "voiceover_hq.wav",
  "maxConcurrency": 2,
  "additionalOptions": {
    "sample_rate": 44100,
    "bit_rate": 0
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

The Deepgram tool transcribes audio from a URL or binary file and converts text to speech using Deepgram API models including Nova-2, Nova-3, Whisper, and Aura voices. Use it when a workflow needs to extract readable text from audio recordings or generate spoken audio from written content. Transcription outputs a JSON object containing the full API response or just the transcript string, while text-to-speech outputs binary audio data.

Behavior notes

  • Match the container to the encoding. Pair encoding: "mp3" with container: "mp3", or encoding: "opus" with container: "ogg". Leaving Container Format on none returns raw encoded bytes with no container.
  • Additional Options are shared but not universal. sample_rate and bit_rate are only meaningful for Text to Speech; language, punctuate, diarize, smart_format and keywords are only meaningful for the transcription operations. Mixing them causes no error — the irrelevant fields are ignored.
  • Resource and operation must agree. Use Transcribe URL and Transcribe File only with the transcription resource, and Text to Speech only with the speech resource.
  • Transcript Field Name only applies in Transcript Only mode. In Full Response mode the whole Deepgram payload is merged onto the item instead.

Frequently asked questions

What credential do I need, and how does authentication work?

You need a Deepgram API credential (type: deepgramApi), which is your Deepgram API key. The node sends it as a Token header on every request. Create the credential once in BusyBot and reuse it across any Deepgram nodes in your workspace.

What's the difference between 'Full Response' and 'Transcript Only' output modes?

In Full Response mode, the entire Deepgram API payload is merged onto the output item — useful when you need confidence scores, word timings, or speaker diarization data. In Transcript Only mode, just the plain text string is returned, written to a field whose name you control via the Transcript Field Name parameter. Note that Transcript Field Name has no effect in Full Response mode.

How do I make sure the audio file generated by Text to Speech is actually playable?

You need to match the encoding and container format. For example, set encoding to 'mp3' and container to 'mp3', or encoding to 'opus' with container to 'ogg'. If you leave Container Format set to 'none', the node returns raw encoded bytes with no container wrapper, which most media players won't handle correctly.

Can I set transcription options like language or diarization when using Text to Speech?

You can set those fields — the node won't throw an error — but they'll be silently ignored. Parameters like 'language', 'punctuate', 'diarize', 'smart_format', and 'keywords' only apply to transcription operations. Likewise, 'sample_rate' and 'bit_rate' are only relevant for Text to Speech. The Additional Options section is shared across operations, so stick to the fields that match your chosen operation.

When should I use Transcribe URL versus Transcribe File?

Use Transcribe URL when your audio is already hosted somewhere publicly accessible and you can pass a link directly to Deepgram. Use Transcribe File when the audio arrives in your workflow as a binary attachment — for instance, from an email node or a file upload trigger. Both operations require the resource to be set to 'transcription'; Text to Speech requires the resource to be set to 'speech'.

Build with the Deepgram node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Deepgram API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.