---
title: "Telegram voice translator that replies in text and speech"
kind: "Kit"
category: "Education"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/8a321299-1401-4334-b3c0-7c2e1e82546d"
updated: "2026-11-12"
---

# Telegram voice translator that replies in text and speech

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that translates Telegram voice messages between two languages that you choose. It transcribes the speech, translates it with an OpenAI model and sends the result back as text and as a spoken audio file.

Telegram voice translator that replies in text and speech is an n8n workflow in the Education category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow turns a Telegram bot into a voice translator for two languages. You send a voice message, and OpenAI turns the speech into text. A model finds out which of your two languages it was in and translates it into the other one. The bot then sends the translation as a text message and as a spoken audio file. Twelve nodes do the work, beside three sticky notes.

### Who it suits

Language learners, travelers and people who talk with relatives or colleagues in another language. You pick the two languages in one node. Skip it if you need more than two languages in one chat, because the prompt only switches between the two.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Education | Language learners | Practice speaking and check the meaning | A learner says a sentence in English and hears it back in French, then compares the text. |
| Travel | Travelers | Talk with people who speak another language | A traveler records a question for a taxi driver and plays the spoken French reply. |
| Family | Relatives | Keep in touch across a language gap | A grandchild sends a voice message in English, and the grandparent gets it in French. |
| Business | Small teams | Understand a short voice note from a partner abroad | A buyer receives a voice note in French and reads the English text at once. |

You need some n8n: import a file, add two credentials and type two language names.

### Where to use it

Any n8n with a public HTTPS address can run it, because Telegram sends each message to that address.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps, once the server has a public HTTPS address
- Another translator: swap \`Chat Model\` for any other chat model node of n8n

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. You need a Telegram bot token and an OpenAI API key.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server with a public HTTPS address |
| Telegram | A bot and its token, which you get from BotFather inside Telegram |
| OpenAI | An API key and some credit, for the transcription, the translation and the speech |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. In `Telegram Trigger`, `Download voice file`, `Text reply`, `Audio reply` and `Ask for a voice message`, add a Telegram credential with your bot token.
3. In `Chat Model` and `Speak translation`, add an OpenAI credential. In `Transcribe voice`, choose the credential type OpenAI and select the same credential.
4. Open `Settings` and type your two languages as plain words in `language_native` and `language_translate`.
5. Press Test workflow and send a voice message to your bot. A text reply and an audio reply arrive in the same chat.
6. Turn the workflow on, so that the bot keeps answering when you are away.

### How to use it

Once the workflow is on, send your bot a voice message at any time. Each one starts a run, and two replies come back. Anything that is not a voice message gets a short request for one.

What to change for a different result

| To change | Where |
| --- | --- |
| The two languages | \`language\_native\` and \`language\_translate\` in \`Settings\` |
| The model of the translation | The model name in \`Chat Model\` |
| The voice | The Voice option of \`Speak translation\` |
| The translation request | The text in \`Auto-detect and translate\` |
| Who may use the bot | Restrict to User IDs in \`Telegram Trigger\` |

### Example

A traveler visits Paris and speaks English.

The traveler records “Where is the nearest pharmacy?” and sends it to the bot. The workflow writes down the English, finds that it matches the first language and translates it into French. The bot replies with the French text and a spoken version that the traveler can play to a passer-by. The passer-by answers in French, and the traveler sends that voice note to the bot to read the English. Check important translations twice, because they come from a model.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Telegram is a chat app, and a bot is an account that a program runs. This workflow listens to a voice message, writes down the words, translates them and speaks the result. Press Test workflow and send a short voice message first.

**For experts.** The speech to text step is an HTTP Request to OpenAI, because the ready-made node cannot choose its model, and a Code step fixes the file name.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Is it a voice message\` | Checks that the message holds a \`voice\` | Anything else goes to \`Ask for a voice message\` |
| \`Name the voice file\` | Renames the file to \`voice.ogg\` | Telegram names it \`.oga\`, which OpenAI does not list |
| \`Transcribe voice\` | Posts the file to \`/v1/audio/transcriptions\` | It names \`gpt-transcribe\` and reads the file from the binary field \`data\` |
| \`Auto-detect and translate\` | Detects the language and translates | It reads the two languages from \`Settings\` and the text from \`Transcribe voice\` |
| \`Chat Model\` | Runs the translation | It names \`gpt-6-luna\` |
| \`Speak translation\` | Turns the text into speech | It keeps the defaults: \`tts-1\`, the voice \`alloy\` and mp3 |
| \`Audio reply\` | Sends the audio file | It sends the binary data of the speech node |

### Good to know

The original copy used models that OpenAI is retiring, and one of them has no replacement for the speech step.

- Transcription: the ready-made OpenAI node always asks for \`whisper-1\`. OpenAI’s deprecations page, read on 12 November 2026, gives 26 February 2027 as its removal date and names \`gpt-transcribe\` as a replacement, so this copy calls that model through an HTTP Request
- File name: OpenAI’s speech to text guide lists ogg and does not list oga, so a Code step renames the voice file
- Translation model: the original copy left the model unset, which means \`gpt-5-mini\` on n8n’s current source. OpenAI shuts it down on 11 December 2026. This copy names \`gpt-6-luna\`
- Speech: \`tts-1\` and \`tts-1-hd\` shut down on 6 January 2027. The replacement that the page names is not a supported model for the speech endpoint, so the audio reply stops then. The text reply goes out first and still arrives
- AI voice: OpenAI’s text to speech guide asks you to tell people that the voice is AI generated, and the audio reply carries no such note
- Size: a bot can download up to 20 MB from Telegram, OpenAI accepts up to 25 MB, and the speech step takes up to 4096 characters
- Two languages: a third language is left to the model
- Open bot: anyone who finds the bot can spend your OpenAI credit. Restrict to User IDs in \`Telegram Trigger\` limits it, and works on node version 1.2 and later, which this file uses
- Markdown: a lone \`\_\` or \`\*\` in a translation can make Telegram refuse the text reply
- Your data: the audio and the text go to OpenAI
- Not run: Mindket did not call Telegram or OpenAI to test this file, and ran it in a test runner with stand-in answers
- Credentials: the JSON holds none

## README

```markdown
# Telegram voice translator that replies in text and speech

An n8n workflow that translates voice messages in Telegram. You send your bot a voice message in one of two languages. The
workflow turns the speech into text and finds out which language it was in. It translates the text into the other language
and sends the result back twice, as a text message and as a spoken audio file.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 12 nodes and three sticky notes. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- The speech to text step was n8n's OpenAI node, which always asks for `whisper-1`. OpenAI's deprecations page, read on
  12 November 2026, gives 26 February 2027 as the removal date of `whisper-1` and names `gpt-transcribe` as a replacement. The
  new `Transcribe voice` node calls `/v1/audio/transcriptions` with `gpt-transcribe`.
- A new node, `Name the voice file`, renames Telegram's `.oga` voice file to `voice.ogg`. OpenAI's speech to text guide lists ogg
  among the formats and does not list oga.
- `Chat Model` left the model unset. In n8n's source, read on 12 November 2026, an unset model on node version 1 means
  `gpt-5-mini`, which OpenAI shuts down on 11 December 2026. This copy is on version 1.2 and names `gpt-6-luna`. The chain
  has no tools, so the note about tool calls on OpenAI's model page does not apply.
- `Input Error Handling` set a field that nothing read, so a text message crashed the download step. The new node
  `Is it a voice message` checks for a voice message, and `Ask for a voice message` answers anything else with a short request.
- `Telegram Trigger` listened to every kind of update. It now listens to messages only, and it is on node version 1.2, which
  can limit who may use the bot.
- Three nodes have clearer names. `Telegram1` is `Download voice file`, `OpenAI Chat Model` is `Chat Model` and `OpenAI` is
  `Speak translation`, which now names its operation, Generate Audio.
- The three sticky notes are rewritten, and the outside link in one of them is gone.
- Every credential reference and the webhook id of the author's trigger are removed, so you pick your own.

## Before you start

- An n8n instance with a public HTTPS address. Telegram delivers updates by an HTTPS POST to the webhook address.
- A Telegram bot and its token. You make one by chatting with BotFather inside Telegram.
- An OpenAI API key with some credit. It pays for the transcription, the translation and the speech.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. In `Telegram Trigger`, `Download voice file`, `Text reply`, `Audio reply` and `Ask for a voice message`, add a Telegram
   credential with your bot token.
3. In `Chat Model` and `Speak translation`, add an OpenAI credential with your API key. In `Transcribe voice`, which is an HTTP
   Request node, choose the credential type OpenAI and select the same credential.
4. Open `Settings` and type your two languages as plain words in `language_native` and `language_translate`. The file starts
   with english and french.
5. Press Test workflow and send a voice message to your bot. A text reply and an audio reply arrive in the same chat.
6. Turn the workflow on, so that the bot keeps answering when you are away.

## How a run goes

1. `Telegram Trigger` starts the run when someone sends a message to your bot.
2. `Settings` holds the two languages for the later steps.
3. `Is it a voice message` looks for a voice note. Anything else goes to `Ask for a voice message`, which asks for one.
4. `Download voice file` gets the audio from Telegram, and `Name the voice file` renames it to `voice.ogg`.
5. `Transcribe voice` sends the file to OpenAI and gets the text back.
6. `Auto-detect and translate` asks `Chat Model` to find the language of the text. If it is the first language, it is translated
   into the second, and the other way round. The model must answer with the translation only.
7. `Text reply` sends the translation as a text message.
8. `Speak translation` turns the same text into speech, and `Audio reply` sends the audio file.

## Change the look

- The two languages: `language_native` and `language_translate` in `Settings`.
- The model of the translation: the model name in `Chat Model`.
- The voice: the Voice option of `Speak translation`. The file keeps its default, `alloy`.
- The wording of the translation request: the text in `Auto-detect and translate`.
- Who may use the bot: add Restrict to User IDs under Additional Fields in `Telegram Trigger`.

## Good to know

- The spoken reply stops working in January 2027. `Speak translation` uses `tts-1`, and OpenAI's deprecations page gives
  6 January 2027 as its shutdown date, with the same date for `tts-1-hd`. The replacement that the page names,
  `gpt-realtime-2.1-mini`, is not a supported model for the speech endpoint, according to OpenAI's text to speech guide. The text
  reply goes out first, so it still arrives, but the run then ends with an error at `Speak translation`.
- OpenAI's text to speech guide asks you to tell people that the voice is AI generated. The audio reply carries no such
  note, so add a line to `Text reply` if listeners could take it for a human voice.
- Two languages only. The prompt translates between the two languages in `Settings`, and a third language is left to the model.
- Voice messages must be small. A bot can download a file of up to 20 MB from Telegram, and OpenAI accepts up to 25 MB.
  The speech step takes up to 4096 characters, so a long translation is refused there.
- `gpt-transcribe` costs 0.0045 US dollars per minute of audio on OpenAI's model page. The translation and the speech are billed
  separately.
- Anyone who finds the bot can use it and spend your OpenAI credit. Restrict to User IDs in `Telegram Trigger` limits it, and it
  is enforced on node version 1.2 and later.
- Replies go out in Telegram's Markdown mode on `Text reply`. A lone `_` or `*` in a translation can make Telegram refuse the
  message.
- Your data: the audio goes to OpenAI for the transcription, and the text goes to OpenAI for the translation and the speech.
- Not run: we did not call Telegram or OpenAI to test this file. We ran it in a test runner with stand-in answers for a voice
  message and for a text message.
- Credentials: the JSON holds none.
```

## What is in it

3 files, 17 KB, downloaded as a zip.

```text
NOTICE.md  666 B
README.md  6 KB
workflow.json  10 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 11 steps, starting on a Telegram event
- AI: 2 steps call an AI model: Auto-detect and translate and Speak translation
- Sign-ins: Signs in to: Telegram and OpenAI
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 8 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/8a321299-1401-4334-b3c0-7c2e1e82546d)
- [Its page on Mindket](https://mindket.com/p/8a321299-1401-4334-b3c0-7c2e1e82546d)
