Mindket

用 webhook 做带记忆的语音聊天,声音来自 ElevenLabs

新上架第 1 版 · 更新于

概览

一个带 webhook、接收语音提问的 n8n 工作流。OpenAI 把你的录音转成文字,Gemini 带着之前的对话回答,ElevenLabs 把回答读出来,作为音频文件返回。

用 webhook 做带记忆的语音聊天,声音来自 ElevenLabs 是一款 n8n 工作流,属于效率类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。在本页下载,或复制它的 JSON,再导入 n8n 画布。在 n8n 里启用之前,它不会运行。

速览

用在
  • n8n Cloud:在那里新建一个工作流,把文件导入进去
  • 你自己的 n8n 服务器:同一个文件,同样的步骤
  • 网页或应用:在浏览器或手机上录音,把文件作为表单上传发出去
  • 带麦克风和喇叭的小设备:发送录音,播放回复

平台

连接 3 个应用

运行方式

触发

Webhook 请求

有东西向 webhook 路径 voice_message 发出 POST 请求时开始运行,请求里有:

  • 一段语音录音,作为表单文件上传到字段 voice_message

动作

  1. OpenAI 把录音转成文字
  2. 从记忆里读出已保存的聊天记录,汇成一个列表
  3. Gemini 回答转写出的文字,提示词里带着之前的对话
  4. 把这个问题和回答加进记忆
  5. ElevenLabs 用你选的声音把回答说出来

结果

一个带语音回答的音频文件,在同一次请求里返回给调用方

集成

开始之前要准备好这些。

OpenAI

语音转文字

用 whisper-1 模型转写录音。

需要OpenAI API 密钥

Google Gemini

语言模型

运行 gemini-3.6-flash,在提示词里带着之前的对话来回答转写出的文字。

需要Gemini API 密钥,放在 Google Gemini (PaLM) API 凭据里

ElevenLabs

文字转语音

把回答变成语音,声音由地址里的声音 ID 决定。

需要ElevenLabs API 密钥,放在 Custom Auth 凭据里,另需一个声音 ID

工作流检查

由 Mindket 于 2026年11月13日检查

步骤
9 个步骤,由 Webhook 调用启动
AI
2 个步骤调用 AI 模型:OpenAI Speech to Text、Basic LLM Chain
登录
需要登录:OpenAI、api.elevenlabs.io、Google Gemini
API 密钥
文件里没有留下 API 密钥
步骤类型
Mindket 的检查器能读懂它全部 8 种步骤类型

以上内容读自工作流文件,并非实际运行的结果。

关于

它是什么

这个 n8n 工作流用语音回答语音提问。有东西向它发一段音频录音,OpenAI 把录音转成文字,一个 Gemini 模型带着之前的对话来回答。ElevenLabs 再用你选的声音把回答读出来,调用方在同一次调用里拿回一个音频文件。十一个节点完成全部工作,旁边有四张便签。

适合谁

正在给应用、自助终端或小设备做语音助手、希望“录音进、声音出”的开发者和创客。如果你需要实时的流式对话,就别选它,因为每次调用只是一问一答。如果不同的调用方需要各自独立的聊天,也别选它,因为记忆是共用的。

谁在用,怎么用
行业谁在用怎么用例子
酒店餐饮酒店和餐厅团队在自助终端或页面上放一个说话按钮,并把场所的资料写进提示词一家酒店把入住规则写进提示词,大堂的平板就会播放语音回答。
教育语言老师给学生一个会开口回答的练口语伙伴老师的练习页面发出学生的录音,播放一条记得上一轮内容的回复。
硬件和小设备创客用按钮和麦克风通过 HTTP 发送音频一位爱好者的桌面小设备上传录音,并播放返回的声音。
客户支持小团队在选语音平台之前先听听语音回答是什么效果一位支持负责人试了几个真实问题,听了回复。

你需要会一点 n8n,再有三个账号:导入一个文件,添加两个凭据,再给 ElevenLabs 做一个自定义凭据。

用在哪里

任何有调用方能访问到的地址的 n8n 都能运行,另外还要有 OpenAI、Google 和 ElevenLabs 的账号。回复是一个音频文件,所以任何能播放音频的东西都行。

  • n8n Cloud:在那里新建一个工作流,把文件导入进去
  • 你自己的 n8n 服务器:同一个文件,同样的步骤
  • 网页或应用:在浏览器或手机上录音,把文件作为表单上传发出去
  • 带麦克风和喇叭的小设备:发送录音,播放回复

设置

点“下载”会把一个压缩包存到你的下载文件夹,里面有 workflow.json 和 Mindket 写的设置说明。导入之前先把三个账号准备好。

先准备好这些
需要说明
n8nn8n Cloud 或你自己的服务器
OpenAI一个 API 密钥,用于语音转文字
Google AI Studio一个 Gemini API 密钥
ElevenLabs一个 API 密钥,以及声音库里一个声音的 ID
调用方能把录音作为表单上传发出去的东西
  1. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File,选中 workflow.json。
  2. 添加 OpenAI 凭据,在 OpenAI Speech to Text 里选中它。
  3. 添加 Google Gemini (PaLM) API 凭据,在 Google Gemini Chat Model 里选中它。
  4. 给 ElevenLabs 添加一个 Custom Auth 凭据,它的 JSON 把你的密钥放在 xi-api-key 请求头里,在 README 里写作 <YOUR_ELEVENLABS_KEY>。
  5. 在 ElevenLabs Generate Audio 里选中它,并在同一个节点里把地址末尾的 <YOUR_VOICE_ID> 换成你的声音 ID。
  6. 保存,在 Webhook 上点 Listen for test event,再向它的测试地址发一段简短的录音。
  7. 点 Publish,之后用正式地址。

如何使用

把录音作为表单上传发出去,文件放在名为 voice_message 的字段里。OpenAI 接受 flac、mp3、mp4、mpeg、mpga、m4a、ogg、wav 和 webm。三个服务工作期间调用保持打开,回答以音频形式返回。向同一个地址发下一个问题,之前的几轮对话也会带上。

想要不同的效果,改这里
要改的在哪里改
声音ElevenLabs Generate Audio 里的 <YOUR_VOICE_ID>
朗读模型同一个节点里再加一个请求体参数 model_id
助手的角色Basic LLM Chain 里的消息
回答用的模型Google Gemini Chat Model 里的 models/gemini-3.6-flash
对话Window Buffer Memory 里的会话键 voice-chat

示例

一位学习者录下“西班牙语里怎么礼貌地说早上好?”,把文件发出去。

工作流回给他一个语音回复的音频文件。学习者接着录“那晚上呢?”。这时提示词里已经带着第一个问题和它的回答,所以第二条回复可以接着往下说。把地址交给别人之前,先听一听最初的几条回复,因为语音回答比文字回答更难检查。

新手与专家

新手:n8n 把工作流画成用线连起来的方框,每个方框是一个节点,只做一件事。这个工作流有三件事依次进行:听,借助记忆想,再说。记忆是两个小节点,负责读写聊天记录。先试一段简短的录音。

专家:两个 Chat Memory Manager 节点读写同一个带固定键的 Window Buffer Memory,聊天记录被汇进链的提示词里。

值得细看的地方
节点做什么要知道的
OpenAI Speech to Text转写二进制字段 voice_message这个节点发送的是 whisper-1,没有模型设置
Get Chat 和 Aggregate读出聊天记录并汇成 context聊天记录为空时,提示词里会留下 undefined
Insert Chat 和 Limit写入问题和回答,再只留一项Insert 会把所有已存的消息都发回来,所以 Limit 避免了每条消息各调用一次
ElevenLabs Generate Audio把回答文字发给文字转语音没设模型时,ElevenLabs 用 eleven_multilingual_v2

注意事项

一次运行有三个服务计费,每个调用方共用一个聊天。有两个模型名需要留意。

  • 模型:Google 的弃用页面(2026 年 11 月 12 日查阅)没有列出 gemini-1.5-flash,它的模型页面也没有任何 Gemini 1.5 模型。Mindket 的副本调用 models/gemini-3.6-flash,这是该页面为 2.0 flash 系列指定的替代,模型页面也把它标为稳定版
  • 转写:语音转文字节点发送的是 whisper-1。OpenAI 的弃用页面(2026 年 11 月 12 日查阅)把它列为 2027 年 2 月 26 日关停,替代是 gpt-live-transcribe 或 gpt-transcribe。到那以后,把这个节点换成发给 OpenAI 转写端点的 HTTP Request
  • 一个聊天:会话键是固定的,所以每个调用方共用同一段对话。想把调用方分开,就用请求里带的某个东西来生成这个键
  • 记忆:它存在 n8n 进程里。n8n 会在一小时没人用之后丢掉一段记录,重启则会全部清空
  • 第一轮:提示词在某条记录没有人类或 AI 文字的地方写 undefined,所以新会话里可能看到它
  • 开放的 webhook:任何拿到地址的人都能发起一次花你三个账号的调用,所以要打开 webhook 的认证,或者别公开这个地址
  • 计费:OpenAI 按录音计费,Google 按回答计费,ElevenLabs 按朗读的字符数计费
  • 你的数据:录音发给 OpenAI,它的文字和聊天记录发给 Google,回答发给 ElevenLabs
  • 凭据:JSON 里没有任何凭据

README 和文件

README

用 webhook 做带记忆的语音聊天,声音来自 ElevenLabs

一个带 webhook、接收语音提问的 n8n 工作流。你发一段录音,OpenAI 把它转成文字,Gemini 带着之前的对话回答,ElevenLabs 把回答读出来。回复是一个音频文件。

包里有什么

  • workflow.json:n8n 导出的工作流,11 个节点和四张便签。里面没有任何凭据。
  • README.md:这份设置说明,压缩包里的是英文版。

我们相对原来的副本改了什么

  • ElevenLabs Generate Audio 的地址末尾原来是文字 {{voice id}},前面还有一个等号。n8n 把它当成表达式,在你替换之前会拒绝它。现在地址是纯文本,以 <YOUR_VOICE_ID> 结尾。
  • Google Gemini Chat Model 原来调用 models/gemini-1.5-flash,Google 已不再列出这个模型。现在它调用 models/gemini-3.6-flash。
  • Window Buffer Memory 原来用一长串测试字符串作会话键,现在键是 voice-chat。
  • 关于 ElevenLabs 的便签重写过,里面写的是 <YOUR_ELEVENLABS_KEY>。
  • 原来的副本是在开启状态下导出的,这一份在你点 Publish 之前是关着的。
  • 两个节点名里的“ - ”去掉了:OpenAI - Speech to Text 现在叫 OpenAI Speech to Text,ElevenLabs - Generate Audio 现在叫 ElevenLabs Generate Audio。

开始之前

  • 一个调用方能访问到地址的 n8n 实例。n8n Cloud 可以,你自己放在公网上的服务器也可以。
  • 一个 OpenAI API 密钥,用于语音转文字。
  • 一个 Gemini API 的 Google AI Studio 密钥。
  • 一个 ElevenLabs 账号、它的 API 密钥,以及声音库里一个声音的 ID。
  • 能把录音作为表单上传发出去的东西,比如网页、应用或脚本。

设置

  1. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File,选中 workflow.json。
  2. 添加 OpenAI 凭据,在 OpenAI Speech to Text 里选中它。
  3. 添加 Google Gemini (PaLM) API 凭据,填入你的密钥,在 Google Gemini Chat Model 里选中它。
  4. 给 ElevenLabs 添加一个 Custom Auth 凭据。它的 JSON 把你的密钥放在请求头里:
{
  "headers": {
    "xi-api-key": "<YOUR_ELEVENLABS_KEY>"
  }
}
  1. 在 ElevenLabs Generate Audio 里选中这个凭据,位置在 Generic Credential Type 和 Custom Auth 下。在同一个节点里,把地址末尾的 <YOUR_VOICE_ID> 换成你的声音 ID。
  2. 保存,打开 Webhook,点 Listen for test event。向它的测试地址发一段简短的录音。下面这条命令会发送并把回答存下来:
curl -X POST -F "voice_message=@question.mp3" "<TEST ADDRESS>" --output answer.mp3
  1. 点 Publish,之后用正式地址。

一次运行的过程

  1. Webhook 在路径 voice_message 上接收 POST。它等一个节点来回复,所以调用方在同一次调用里就能拿到音频。
  2. OpenAI Speech to Text 转写表单字段 voice_message 里的文件。OpenAI 接受 flac、mp3、mp4、mpeg、mpga、m4a、ogg、wav 或 webm,节点发送的模型是 whisper-1。
  3. Get Chat 从 Window Buffer Memory 读出已存的消息。Aggregate 把它们汇成一个列表 context。
  4. Basic LLM Chain 把转写文字发给 Google Gemini Chat Model。它前面有一条消息,要求模型先读之前的对话,并把对话列成 Human: 和 AI Assistant: 几行。
  5. Insert Chat 往记忆里加两条消息:转写文字作为用户的话,回答作为 AI 的话。
  6. Limit 只留第一项。这个版本的 Insert Chat 会把所有已存的消息各作为一项发回来,所以没有 Limit 的话,下一个节点会对每一项各运行一次。
  7. ElevenLabs Generate Audio 把回答文字发给 ElevenLabs 的文字转语音端点,使用你的声音。
  8. Respond to Webhook 把收到的第一个二进制文件发回给调用方。

改变风格

  • 声音:ElevenLabs Generate Audio 里的 <YOUR_VOICE_ID>。
  • 朗读模型:在那里再加一个请求体参数 model_id。没给的时候,ElevenLabs 用 eleven_multilingual_v2。
  • 助手的性格:Basic LLM Chain 里的消息。它现在只有一句“先读之前的对话”,所以把你想要的角色加进去。
  • 回答用的模型:Google Gemini Chat Model 里的 models/gemini-3.6-flash。
  • 对话:Window Buffer Memory 里的 voice-chat。换一个键,就是另一段独立的记录。

注意事项

  • Google 的弃用页面(2026 年 11 月 12 日查阅)没有列出 gemini-1.5-flash,它的模型页面也没有任何 Gemini 1.5 模型。弃用页面把 gemini-3.6-flash 指定为 2.0 flash 系列的替代,模型页面把它标为稳定版。
  • OpenAI Speech to Text 没有模型设置,发送的是 whisper-1。OpenAI 的弃用页面(2026 年 11 月 12 日查阅)把 whisper-1 列为 2027 年 2 月 26 日关停,替代是 gpt-live-transcribe 或 gpt-transcribe。到那以后,把这个节点换成发给 OpenAI 转写端点的 HTTP Request。
  • 每个调用方共用一段对话,因为会话键是固定的。想把调用方分开,就用请求里带的某个东西来生成这个键。
  • 记忆存在 n8n 进程里。n8n 会在一小时没人用之后丢掉一段记录,重启则会全部清空。
  • Basic LLM Chain 在某条记录没有人类或 AI 文字的地方写 undefined,所以新会话里可能看到它。
  • webhook 没有认证。任何拿到地址的人都能发起一次花你三个账号的调用,所以要打开 webhook 自带的认证,或者别公开这个地址。
  • OpenAI 按录音计费,Google 按回答计费,ElevenLabs 按朗读的字符数计费。
  • 录音发给 OpenAI,它的文字和聊天记录发给 Google,回答发给 ElevenLabs。
文件
NOTICE.md  706 B
README.md  6 KB
workflow.json  9 KB

3 个文件,共 16 KB,以 zip 压缩包下载。

更新内容

  • 第 1 版 · 2026-11-12

评价

还没有评分

写评价

还没有评价。

Mindket 的更多商品

查看 Mindket 的全部商品

Guizang PPT Skill

op7418 · 技能

Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…

新上架29.8k

Claude Code Skills & Plugins

alirezarezvani · 技能

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

新上架29.8k

Frontend Slides

zarazhangrui · 技能

Builds HTML presentations from scratch or from a PowerPoint file and shows visual style previews to pick from, for people who want web slides with no CSS or Ja…

新上架32.3k

效率类的相似商品

查看效率类的全部商品

IPTV

iptv-org · 工具包

把来自多个国家的公开电视直播频道整理成播放列表,任何支持直播流的视频播放器都能打开。适合想看直播的观众,也适合需要频道数据的开发者。

新上架144k

upscaler

uwg · 工具包

收录来自 OpenModelDB 社区的一组图像放大模型,适合想在自己电脑上用 AI 放大低分辨率图片的人。

新上架

Moss-Image-Edit LoRA for ComfyUI

PedroMarinhoDev · 工具包

根据文字指令编辑一张图片,或合成最多四张,使用适配 ComfyUI 的 Moss-Image-Edit LoRA。适合使用 MOSS-Image 模型的 ComfyUI 用户。

新上架