Dify 语音交互完整指南:3 步接入智能语音助手
【免费下载链接】difyBuild Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype to production without rebuilding the stack.项目地址: https://gitcode.com/GitHub_Trending/di/dify
如果你的产品需要用户用语音提问、系统用语音回答,你要做的其实是一条语音交互链路:把用户音频转成文字(STT),交给模型处理,再把回答合成为音频(TTS)。Dify 把这两类能力做进了平台,不需要自己对接底层音频服务。本文以一个客服语音咨询的场景为例,带你从 0 到跑通,只讲真正要动手的步骤。
Dify 的 Chatflow 应用界面,开启语音功能后用户可以直接语音提问、收听语音回答
客服语音咨询:痛点先说清楚
一个常见的场景:用户在电话或在线留言里用语音描述问题,客服挂断后还要人工转写、再查资料、再回复,平均响应时间以小时计。如果换成一个智能客服语音机器人,链路就变成:用户语音 → 识别成文本 → 检索知识库 → 生成回答 → 合成语音回复。整条链路里涉及音频格式、采样率、对话状态的活,Dify 替你接管了,你只需要配置模型和开关功能。
⚡ 三步跑通语音识别
先跑通,再优化。最短路径只需要三步:
第一步:启动 Dify
# 克隆仓库并启动服务 git clone https://gitcode.com/GitHub_Trending/di/dify cd dify docker compose up -d第二步:接入模型提供商。打开控制台,进入"模型供应商",添加 OpenAI(或其他支持语音的提供商)的 API 密钥,保存前点一下"测试连接",确认密钥可用。
第三步:创建应用并验证。新建一个 Chat 类型应用,在"功能设置"里打开"语音转文字"开关,选一个识别模型;打开"文字转语音"开关,选一个合成声音。然后在应用页面上传一段 mp3 说话,看到转写文本、听到回答,就算跑通了。
STT / TTS:能做什么,不能做什么
把边界讲清楚,能帮你少走弯路。
语音转文字(STT)
能做的:上传音频文件(mp3、m4a、wav、amr、mpga),返回识别后的文本;识别精度取决于所选模型,Whisper 这类多语言模型开箱即可用。
不能做的:Dify 的接口面向"文件"而非麦克风流,实时麦克风流式识别不在平台范围内,这类需求需要前端自己采集、录制成文件后再提交;单文件大小上限 30MB,超长录音要先切片。
文字转语音(TTS)
能做的:把文本合成为 mp3 音频,声音可按提供商提供的音色列表选择,支持流式返回,长回答可以边合成边播放。
不能做的:细粒度的语气、停顿控制平台不直接暴露,取决于提供商支持的参数;声音克隆这类能力不在 Dify 自身功能里,依赖具体提供商是否提供。
⚙️ 动手配置:模型提供商与功能开关
真正需要改动的地方就两处,下面按 Dify 语音转文字配置的实际顺序走一遍。
配置模型提供商
进入"模型供应商"页面,添加提供商并填入密钥。注意 STT 和 TTS 是两种独立的模型类型:识别模型和合成模型要分别启用,并各指定一个默认模型。如果只配了 Chat 模型没配语音模型,功能开关打开后调用会直接报"提供商不支持"的错误。
开启应用功能开关
进入应用的"功能设置",两个开关分别对应两条链路:
- "语音转文字":开启后,用户在网页端或 API 端提交音频会先经过识别再进入对话
- "文字转语音":开启后选择声音,模型的回答会被自动合成为音频返回
工作流类型的应用还可以把识别出的文本接到知识检索、LLM 等节点上,这一步跳过也能用,先把单应用链路验证通更省事。
在可视化工作流编辑器中连接 LLM 与知识检索节点,识别出的文本直接参与对话流程
🔍 选型:Whisper 还是 Azure 语音服务
常见语音提供商的差异,一张表说清楚:
| 场景 | 特点 | 文件格式 |
|---|---|---|
| 快速验证、多语言识别 | OpenAI Whisper:多语言精度高,配置步骤少 | mp3、wav、m4a、amr |
| 企业级生产环境 | Azure Speech:服务稳定,适合持续运行的业务 | 主流音频格式 |
| 实时性要求高 | Google Speech-to-Text:支持流式输入 | 支持流式输入 |
Dify 支持接入的主流 AI 模型平台,语音识别与合成模型从同一套供应商体系配置
建议:先用 Whisper 跑通原型,确认链路没问题后,再根据并发量和稳定性要求评估 Azure 或 Google。
🐛 避坑与排障速查
按出现频率排了序,遇到问题先对号入座:
Q:上传音频直接报错?A:检查两点——扩展名是否在 mp3/m4a/wav/amr/mpga 之内,文件是否超过 30MB。超了就先压缩或切片。
Q:识别准确率低?A:确认音频采样率(16kHz 左右最稳)、环境噪声水平,并换成更适合目标语言的模型;中文录音用多语言通用模型往往不如专用模型。
Q:合成语音听起来机械?A:换一个音色,并让提供商侧可用的语速参数调到 0.9-1.1 之间,比默认值通常自然一些。
Q:回答延迟明显偏高?A:依次排查网络到提供商的延迟、识别模型的排队情况;TTS 走流式返回,长回答不要等合成完再播放。
Q:网页端语音功能"没反应"?A:90% 是开关问题——确认"功能设置"里两个开关都打开,且 STT、TTS 两种模型都设了默认模型。
Q:某个提供商偶发不可用?A:配置第二个提供商作为备用,出问题时切默认模型即可,不必改应用配置。
🚀 延伸:三个值得做的方向
- 接知识库:把识别文本接到知识检索节点,做出 24 小时语音答疑,这是教育、客服场景收益最大的一步。
- 文字转语音 API 批量生成:直接调用
/text-to-audio接口,把文章、课程内容批量转成音频素材,不经过对话链路。 - 多语言切换:为不同语言的用户分别指定识别模型,前端按语言路由即可。
动手指令就一句话:克隆仓库,docker compose up -d启动,然后按本文第二节的三步,今天内让第一个语音助手出声。跑通之后,选型表和排障清单留着备用就够了。
【免费下载链接】difyBuild Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype to production without rebuilding the stack.项目地址: https://gitcode.com/GitHub_Trending/di/dify
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考