Search all guides

Reference · Tools

OpenAI Speech-to-Text

Transcribe audio files into text using OpenAI's transcription service. It accepts various audio formats and returns transcriptions in specified formats, supporting language hints and timestamp granularities.

Action (binary) AI v1 Binary data

OpenAI Speech-to-Text transcribes audio into text using Whisper, returning the result as json, text, srt, vtt or verbose_json, with optional timestamps and detected language. A typical build is transcribing call recordings so they can be searched and summarised.

Works as
Action (binary)
Tool name
openai_stt
Parameters
6
Outputs
Output, Error
Credentials
OpenAI
Official docs
OpenAI docs developers.openai.com

What you can build with OpenAI Speech-to-Text

  • Transcribe an MP3 recording to text using Whisper.
  • Convert a WAV audio file to a text transcription.
  • Get word-level timestamps from an audio file.
  • Transcribe audio with SRT subtitle output format.
  • Transcribe non-English audio with a language hint.

Each of these runs as a step in a BusyBot workflow or inside an agent, so the result can be routed, filtered and sent on with the core nodes and any of the communication integrations.

Overview

OpenAI Speech-to-Text uses the OpenAI Audio Transcriptions API (POST /audio/transcriptions) with Whisper models to transcribe audio files into text. Accepts binary audio input (mp3, mp4, mpeg, mpga, m4a, wav, webm) and returns a transcription in the specified format (json, text, srt, vtt, verbose_json). Supports optional language hints (ISO-639-1), temperature control, and timestamp granularities for verbose output.

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

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

Parameters

ParameterTypeRequiredDefaultDescription
ModeloptionsNo(current default)The speech-to-text model to use for transcription. Always uses the latest version (auto-updated). The pre-filled option is the recommended default; the legacy Whisper option is kept for backward compatibility.
Options: the OpenAI speech-to-text models available to your workspace — pick one from the dropdown.
Binary Property NamestringNodataThe name of the binary property containing the audio file to transcribe. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use.
LanguagestringNo—Optional ISO-639-1 language code (e.g. “en”, “es”, “fr”) to hint the language of the audio. Improves accuracy when specified. Supports expressions.
OptionscollectionNo{}Optional transcription settings — add only the fields you need.
— Response FormatoptionsNojsonThe format of the transcription output.
Options: json (simple JSON with a text field), text (plain text), srt (SubRip subtitles), vtt (WebVTT subtitles), verbose_json (segments, words, duration and language)
— TemperaturenumberNo0Sampling temperature (0-1). Higher values make output more random, lower values more deterministic.
— Timestamp GranularitiesoptionsNo—Timestamp granularity for verbose_json output. Requires response format to be verbose_json.
Options: empty (no timestamp granularity — the default), word (word-level timestamps), segment (segment-level timestamps)
— Response Field NamestringNotranscriptionThe output field name where the transcription text will be stored.
Include InputbooleanNofalseWhether to include the original input item fields in the output alongside the transcription.
Max ConcurrencynumberNo5Maximum number of items to process concurrently.

Output Data

One output item per input item. The transcript lands on the field named by Response Field Name (transcription by default), with model beside it. The rest of the input item JSON is dropped unless Include Input is on; the input audio binary is forwarded unchanged.

{
  "transcription": "The transcribed text",
  "model": "the transcription model that was used"
}
  • With Response Format set to text, srt or vtt, the response field holds the raw string in that format — ready to write straight to a file.
  • With verbose_json, four extra fields join the item: segments, words, duration and language. words is only populated when Timestamp Granularities is set to word.

Reference the result downstream by expression, e.g. {{ $json.transcription }}.

Example Configuration

Transcribe audio arriving on the default binary property:

{
  "type": "openai_stt",
  "parameters": {
    "binaryPropertyName": "data"
  }
}

Generate SRT subtitles from an English recording:

{
  "type": "openai_stt",
  "parameters": {
    "binaryPropertyName": "audio",
    "language": "en",
    "options": {
      "responseFormat": "srt",
      "responseFieldName": "subtitles"
    }
  }
}

Get word-level timestamps and keep the original fields:

{
  "type": "openai_stt",
  "parameters": {
    "binaryPropertyName": "data",
    "includeInput": true,
    "options": {
      "responseFormat": "verbose_json",
      "timestampGranularities": "word",
      "temperature": 0
    }
  }
}

Error Handling

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

Tips

openai_stt transcribes audio files into text using whichever OpenAI transcription model is picked in the Model dropdown, via the Audio Transcriptions API. Use it when a workflow receives recorded speech, voice memos, or audio uploads that need converting into readable or processable text. It outputs a transcription result with recognized text in your chosen format such as json, text, srt, vtt, or verbose_json, plus optional timestamps and language metadata, or an error object on the error channel.

Frequently asked questions

Which output format should I choose?

text for plain prose, srt or vtt when you need timed captions, and verbose_json when you want timestamps and language metadata alongside the transcript.

Does it detect the language?

Language metadata is available in the richer output formats, so you can branch on the detected language rather than assuming it.

How does the audio reach the node?

As binary data on the incoming item — chain it after a download, an upload, or an attachment extraction step.

How is this different from Audio Translation?

This transcribes in the original language. Audio Translation converts the speech into English text instead.

Build with the OpenAI Speech-to-Text node

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

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.