必须完成stt与tts服务配置:启用平台级语音开关,严格匹配音频格式(wav/16khz)、采样率与输出格式(如24khz mp3),并在workflow中按“语音输入→asr→llm→tts→响应输出”串联节点,确保端到端延迟≤2.8秒。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Dify中让AI应用真正“听懂说话”并“开口回答”,必须完成语音识别(STT)和语音合成(TTS)两个服务的配置。这不只是勾选开关或填几个API密钥的事——音频格式不匹配会导致ASR节点直接报错,TTS输出格式未指定可能让前端无法播放,而缺少采样率校验会把16kHz录音误当8kHz处理,识别准确率断崖式下跌。
启用Dify平台级语音服务开关
登录Dify控制台,进入【设置】→【系统配置】→【语音服务】页签。将「语音识别服务」和「语音合成服务」两个全局开关均设为启用状态。注意:该操作需管理员权限,普通成员无法修改。若页面无此选项,说明当前部署版本低于0.8.0,需升级Dify或改用Docker环境变量强制开启:tts_service_enabled=true、asr_service_enabled=true。
重启Dify服务使配置生效。Docker用户执行 docker restart dify;二进制部署用户需手动杀进程后重新启动主程序。
配置语音识别(STT/ASR)服务
进入【数据集】→【语音识别模型】→【新增模型】。
方法一:接入阿里云智能语音交互API
在「服务类型」中选择「HTTP API」,填写以下字段:
URL:https://nls-gateway.cn-shanghai.aliyuncs.com/stream/v1/asr
请求方法:POST
Headers中添加:Authorization: Bearer {{api_token}} 和 Content-Type: application/json
Body使用JSON模板,【format字段必须设为wav,sample_rate必须为16000,否则90%的中文语音将无法识别】。
方法二:本地部署Whisper推理服务
启动一个Flask服务监听/whisper端点,接收base64编码的WAV音频,返回JSON格式文本。在Dify中配置为「自定义模型」,协议选HTTP,超时时间设为30秒——因为1分钟语音在CPU上推理可能耗时25秒以上。
方法三:使用Dify内置通用模型(仅限SaaS版)
直接下拉选择「通用中文模型(v2.3)」,无需填密钥。该模型已针对客服对话、会议记录等场景优化,但不支持行业术语微调。
配置语音合成(TTS)服务
第一步:确认语音引擎可用性
在【设置】→【插件管理】中检查「TTS引擎」是否已安装。若未列出,需先上传插件包或通过CLI命令安装:dify-cli plugin install tts-azure 或 dify-cli plugin install tts-sambert。
第二步:配置具体引擎参数
以Azure Cognitive Services为例,在插件配置页填写:
• API Key:从Azure门户复制的密钥
• Region:如eastasia(对应中国东部)
• Voice ID:zh-CN-XiaoxiaoNeural(推荐女声,自然度高)
• Output Format:audio-24khz-96kbitrate-mono-mp3(【必须选含24khz的格式,否则Dify工作流节点会静音输出】)
第三步:验证TTS输出质量
在配置页底部点击「测试合成」,输入“你好,今天天气不错”,等待音频生成。若返回空文件或播放无声,立即检查两点:① Azure订阅是否开通语音服务;② 返回的Content-Type是否为audio/mp3而非text/plain。
在Workflow中串联STT与TTS节点
① 新建Workflow应用,拖入「语音输入」节点作为起点。配置其「音频格式」为WAV、「采样率」为16000、「声道数」为1。
② 接「ASR识别」节点,选择上一步配置好的ASR模型。该节点输出变量名为asr_text。
③ 接「LLM推理」节点,用提示词提取意图并润色文本,输出变量设为tts_input。
④ 接「TTS合成」节点,选择已配好的TTS引擎,将输入字段绑定为{{tts_input}}。
⑤ 最后接「响应输出」节点,在「媒体类型」中选择「音频」,字段值填{{tts_output.audio_url}}。
保存并发布Workflow。用手机录制一段10秒中文语音上传测试,端到端延迟应稳定在2.8秒以内。若超过4秒,优先检查ASR节点是否启用了噪声抑制预处理模块。











