Reference · Tools
OpenAI Speech-to-Text
Transcribe audio using OpenAI Whisper models.
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
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires OpenAI credentials. See the Credentials Guide for setup instructions.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Model | options | No | (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 Name | string | No | data | The 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. |
| Language | string | No | — | Optional ISO-639-1 language code (e.g. “en”, “es”, “fr”) to hint the language of the audio. Improves accuracy when specified. Supports expressions. |
| Options | collection | No | {} | Optional transcription settings — add only the fields you need. |
| — Response Format | options | No | json | The 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) | ||||
| — Temperature | number | No | 0 | Sampling temperature (0-1). Higher values make output more random, lower values more deterministic. |
| — Timestamp Granularities | options | No | — | 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 Name | string | No | transcription | The output field name where the transcription text will be stored. |
| Include Input | boolean | No | false | Whether to include the original input item fields in the output alongside the transcription. |
| Max Concurrency | number | No | 5 | Maximum 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,srtorvtt, 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,durationandlanguage.wordsis only populated when Timestamp Granularities is set toword.
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
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes 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 BusyBotLast updated . Spotted something wrong? Tell us.