All nodes/AI/Media (Speech / Image / Video)
Speech → Text
Recognises speech from an audio file and returns the text. The voice message that started the scenario arrives as an attachment on the Entry node's Message output — connect that output straight to the Audio input. The model and its parameters are picked in the node's settings.
Type in the graph: speech_to_text
Exec
An error output can be enabled to handle failures on their own path.
Ports can be split into separate execution and data handles.
Try it
Minimal working scenario
- Execute + Data
Pick your own connection or knowledge base first — the graph carries REPLACE_ME.
When to use it
The node transcribes an audio file into text. Reach for it when the text itself is what you need: to store the transcript, to search it, to branch the graph on it. If all you want is an answer to a voice message, transcription is optional — a model with audio support reads the attachment itself inside an AI Agent or an LLM Response. A model without audio support, on the other hand, simply never sees the attachment, and that is where this node becomes unavoidable.
The opposite job belongs to Text → Speech. Unlike that node and Generate Image, transcription is not offered to an agent as a tool: the voice message already arrives as an attachment of the turn.
How it works
The Audio port is a file port: an incoming message’s attachment fits, so does a file from the
workspace file store or the output of
Telegram Get File. When several files arrive, the node takes the
first readable one. The format sent to the provider is derived from the file type, and when the type
is unknown, from the byte signature itself — so a wav or an ogg is not shipped as mp3.
The model exposes two parameters: a hint and a language. Both accept templates, which makes the hint a good place for names and jargon that will show up in the recording. An empty language means auto-detection.
The transcription catalog is short and hand-maintained: the provider offers no filter for audio input, so the list cannot be assembled automatically like the other catalogs.
The Text output is a plain string, read in templates as {{ nodes.<id>.output }}.
Common mistakes
- Looking for the voice note in the chat history. The voice note that started the scenario is
already attached to the Message output of Entry: wire that output straight
into
Audio— a message’s attachments are unwrapped into files on their own. Telegram Group History and Telegram Get File are for files from the group’s earlier messages, not the current one. - Expecting timestamps, speaker labels or any markup. The node returns one text and nothing else.
- Reading an empty result as a failure. If the model heard nothing, the node completes successfully with an empty string — test the text with a condition, not the node’s status.
- Writing
nodes.<id>.output.text. What travels on the edge and into templates is the transcript string itself. - Feeding several recordings at once. The extra files are ignored silently; a batch needs a loop.
Inputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Audioaudio | Execute + Dataexecute_data | file |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Texttext | Execute + Dataexecute_data | string |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
Modelmodel | string | openai/whisper-large-v3 | Speech-to-text model from the media catalog (e.g. 'openai/whisper-large-v3'). Its own parameters (hint prompt, language) appear below once the model is selected. Options: |
| Advanced | |||
Your own key (optional)connection_id | string | "" | Optional workspace connection carrying your own provider key. Leave empty to use the platform key. connection: openrouter |
Shared fields
Every node has these three — the platform adds them, not the node author.
expose_error_output— When enabled, show an execution output to connect nodes that run if this step fails.split_ports_in— Show separate execution and data input handles instead of one combined port.split_ports_out— Show separate execution and data output handles instead of one combined port.
Settings of the selected model
These appear in the form once a model is picked — the set depends on it, so everything that can show up is listed here.
Language (ISO-639-1)language | e.g. "en", "ru". Leave empty to auto-detect. |
Hint promptprompt | Optional text to bias the transcription (names, jargon). |