upscaler
uwg · Kit
Holds a set of image upscaling models gathered from the OpenModelDB community, for people who want to enlarge low-resolution pictures with AI on their own comp…
An n8n workflow with a webhook for spoken questions. OpenAI turns your recording into text, Gemini answers it with the earlier conversation in its prompt, and ElevenLabs speaks the answer back as an audio file.
Voice chat over a webhook with memory and ElevenLabs is an n8n workflow in the Productivity category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
Webhook request
It starts when something sends a POST request to the webhook path voice_message with:
An audio file with the spoken answer, returned to the caller in the same request
What you need before you start.
Speech to text
Transcribes the recording with the whisper-1 model.
NeedsOpenAI API key
Language model
Runs gemini-3.6-flash to answer the transcript with the earlier conversation in its prompt.
NeedsGemini API key, in a Google Gemini (PaLM) API credential
Text to speech
Turns the answer into spoken audio in the voice whose ID is in the address.
NeedsElevenLabs API key, in a Custom Auth credential, and a voice ID
Checked by Mindket on 13 Nov 2026
This n8n workflow answers a spoken question with a spoken answer. Something posts it an audio recording. OpenAI turns the recording into text, and a Gemini model answers it with the earlier conversation in its prompt. ElevenLabs then reads the answer aloud in the voice you pick. The caller gets an audio file back in the same call. Eleven nodes do the work, beside four sticky notes.
Developers and makers who are building a talking assistant for an app, a kiosk or a gadget and want a recording in and a voice out. Skip it if you need a live, streaming conversation, since each call is one question and one answer. Skip it too if callers need separate chats, because the memory is shared.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Hospitality | Hotel and restaurant teams | Put a talk button on a kiosk or a page and add the venue’s details to the prompt | A hotel adds its check-in rules to the prompt, and its lobby tablet plays the spoken answer. |
| Education | Language teachers | Give learners a speaking partner that answers aloud | A teacher’s practice page sends a learner’s recording and plays a reply that remembers the last turn. |
| Hardware and gadgets | Makers | Post audio from a button and a microphone over HTTP | A hobbyist’s desk gadget uploads a recording and plays what comes back. |
| Customer support | Small teams | Hear how a spoken answer sounds before choosing a voice platform | A support lead tries a handful of real questions and listens to the replies. |
You need some n8n and three accounts: import a file, add two credentials, and make one custom credential for ElevenLabs.
Any n8n with an address the caller can reach, plus accounts at OpenAI, Google and ElevenLabs. The reply is an audio file, so anything that plays one will do.
Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Have the three accounts ready before you import it.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key, for the speech to text step |
| Google AI Studio | A key for the Gemini API |
| ElevenLabs | An API key and the ID of a voice from its voice library |
| A caller | Something that posts a recording as a form upload |
workflow.json.OpenAI Speech to Text.Google Gemini Chat Model.xi-api-key header, written as <YOUR_ELEVENLABS_KEY> in the README.ElevenLabs Generate Audio, and in the same node replace <YOUR_VOICE_ID> at the end of the address with your voice’s ID.Webhook and post a short recording to its test address.Post the recording as a form upload with the file in a field named voice_message. OpenAI accepts flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav and webm. The call stays open while the three services work, and the answer comes back as audio. Post the next question to the same address and the earlier turns come along.
| To change | Where |
|---|---|
| The voice | <YOUR_VOICE_ID> in ElevenLabs Generate Audio |
| The speaking model | A model_id body parameter in the same node |
| The assistant’s role | The message in Basic LLM Chain |
| The answering model | models/gemini-3.6-flash in Google Gemini Chat Model |
| The conversation | The session key voice-chat in Window Buffer Memory |
A learner records “How do I say good morning politely in Spanish?” and posts the file.
The workflow answers with an audio file of the spoken reply. The learner then records “And in the evening?”. The prompt now carries the first question and its answer, so the second reply can build on them. Listen to the first replies before you hand the address to anyone, because a spoken answer is harder to check than a written one.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This one has three jobs in a row. It listens, it thinks with the help of its memory, and it speaks. The memory is two small nodes that read and write the chat history. Try one short recording first.
For experts. Two Chat Memory Manager nodes read and write one Window Buffer Memory with a fixed key, and the history is gathered into the chain’s prompt.
| Node | What it does | What to know |
|---|---|---|
OpenAI Speech to Text | Transcribes the binary field voice_message | The node sends whisper-1 and has no model setting |
Get Chat and Aggregate | Load the history and gather it into context | An empty history leaves undefined in the prompt |
Insert Chat and Limit | Add the question and the answer, then keep one item | Insert sends back every stored message, so Limit stops one call for each |
ElevenLabs Generate Audio | Posts the answer text to text to speech | With no model set, ElevenLabs uses eleven_multilingual_v2 |
Three services bill a run, and every caller shares one chat. Two model names need a look.
gemini-1.5-flash, and its models page offers no Gemini 1.5 model. Mindket’s copy calls models/gemini-3.6-flash, the replacement that page names for the 2.0 flash family and a model the models page marks stablewhisper-1. OpenAI’s deprecations page, read on 12 November 2026, lists it for shutdown on 26 February 2027, with gpt-live-transcribe or gpt-transcribe as the replacement. After that, swap the node for an HTTP Request to OpenAI’s transcription endpointundefined wherever a history entry has no human or AI text, so a new session can show itAn n8n workflow with a webhook for spoken questions. You post a recording. OpenAI turns it into text, Gemini answers it
with the earlier conversation in its prompt, and ElevenLabs speaks the answer. The reply is an audio file.
workflow.json: the workflow as n8n exports it, 11 nodes and four sticky notes. It holds no credential.README.md: these notes.ElevenLabs Generate Audio held the text {{voice id}} at the end of its address, after an equals sign. n8n reads<YOUR_VOICE_ID>.Google Gemini Chat Model called models/gemini-1.5-flash, a model Google no longer lists. It now callsmodels/gemini-3.6-flash.Window Buffer Memory used a long test string as its session key. The key is now voice-chat.<YOUR_ELEVENLABS_KEY>.OpenAI - Speech to Text is now OpenAI Speech to Text, andElevenLabs - Generate Audio is now ElevenLabs Generate Audio.workflow.json.OpenAI Speech to Text.Google Gemini Chat Model.{
"headers": {
"xi-api-key": "<YOUR_ELEVENLABS_KEY>"
}
}
ElevenLabs Generate Audio, under Generic Credential Type and Custom Auth. In the same<YOUR_VOICE_ID> at the end of the address with your voice's ID.Webhook and press Listen for test event. Post a short recording to its test address. This commandcurl -X POST -F "voice_message=@question.mp3" "<TEST ADDRESS>" --output answer.mp3
Webhook takes a POST on the path voice_message. It waits for a node to answer, so the caller gets the audio inOpenAI Speech to Text transcribes the file in the form field voice_message. OpenAI accepts flac, mp3, mp4,whisper-1.Get Chat loads the stored messages from Window Buffer Memory. Aggregate gathers them into one list, context.Basic LLM Chain sends the transcript to Google Gemini Chat Model. A message ahead of it tells the model to readHuman: and AI Assistant: lines.Insert Chat adds two messages to the memory, the transcript as the user's and the answer as the AI's.Limit keeps the first item. Insert Chat in this version sends back every stored message as its own item, soLimit the next node would run once for each of them.ElevenLabs Generate Audio posts the answer text to ElevenLabs' text to speech endpoint for your voice.Respond to Webhook sends the first binary file it receives back to the caller.<YOUR_VOICE_ID> in ElevenLabs Generate Audio.model_id as a second body parameter there. ElevenLabs uses eleven_multilingual_v2 when noneBasic LLM Chain. It holds only the instruction to read the earliermodels/gemini-3.6-flash in Google Gemini Chat Model.voice-chat in Window Buffer Memory. A different key starts a separate history.gemini-1.5-flash, and its models page offers nogemini-3.6-flash as the replacement for the 2.0 flash family, and theOpenAI Speech to Text has no model setting and sends whisper-1. OpenAI's deprecations page, read on 12 Novemberwhisper-1 for shutdown on 26 February 2027, with gpt-live-transcribe or gpt-transcribe as theBasic LLM Chain writes undefined wherever a history entry has no human or AI text, so a new session can show it.NOTICE.md 706 B README.md 6 KB workflow.json 9 KB
uwg · Kit
Holds a set of image upscaling models gathered from the OpenModelDB community, for people who want to enlarge low-resolution pictures with AI on their own comp…
nerijs · Kit
A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…
microsoft · Kit
Turns written conversations into spoken audio with up to four speakers and about 90 minutes of speech, an open Microsoft text-to-speech model for research on p…
PedroMarinhoDev · Kit
Edits an image, or combines up to four, from a text instruction, using a ComfyUI-ready version of the Moss-Image-Edit LoRA. For ComfyUI users working with the…
zhifeixie · Kit
Transcribes English and Chinese speech from noisy, echoey, clipped or overlapping recordings, and routes clean audio to the base model. For teams with difficul…
zai-org · Kit
Generates and edits images from text and reference pictures, with strong text rendering inside images, using an autoregressive plus diffusion design. For creat…