Reference · Tools

OpenAI Speech-to-Text

Transcribe audio using OpenAI Whisper models.

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.

Node type
Action (binary)
Parameters
6
Outputs
Output, Error
Credentials
OpenAI

OpenAI Speech-to-Text

Transcribe audio using OpenAI Whisper models.

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.

Category: AI
Tool Name: openai_stt
Version: 1

Appearance: Icon: openai | Color: #10a37f

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.
LanguagestringNoOptional 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 GranularitiesoptionsNoTimestamp 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 }}.

Usage Examples

  • 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

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 OpenAI Whisper models 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 updated . Spotted something wrong? Tell us.