热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >Dify集成TTS(语音合成)实现语音对话

Dify集成TTS(语音合成)实现语音对话

来源:互联网 更新时间:2026-06-23 13:37

今天聊聊在 Dify 里搭建一个真正能“开口说话”的语音对话系统。核心诉求其实很明确:要把用户输入的文字实时转成语音,返回可播放的音频。这事儿的关键在于,整个过程需要支持情感识别、语速调节和多语言自动判断,而且不能依赖外部代码编写——全部在 Dify 的 Workflow 内闭环完成。

Dify集成TTS(语音合成)实现语音对话

下面就直接进入实操环节,从配置模型服务到建立完整的对话工作流,一步不落。

配置TTS模型服务接入

首先是把 TTS 模型接到 Dify 平台里。进入 Dify 控制台,左侧导航栏找到「模型管理」,右上角点「+ 添加模型」。在「模型类型」下拉菜单中,选择「Text-to-Speech」。

接着填写模型的连接信息:模型名称建议填“ChatTTS-Chinese”,提供方选“Xinference”。API 端点填 http://xinference-host:9997/v1/audio/speech。认证方式要分情况——如果部署在内网环境,选「无认证」;如果对外暴露服务,用「Bearer Token」并填入对应的 API Key。

这里有一个容易踩坑的地方:

必须确认 Xinference 已经成功加载了 ChatTTS 模型,并且状态是 running

。如果还没加载,需要在 Xinference 服务中执行 xinference launch --model-name chat-tts --model-size 1.7b --device cuda。特别提醒,如果没有启用 GPU,整个合成过程会严重卡顿,甚至直接超时报错。

创建语音合成Workflow

回到 Dify 首页,点击「应用」→「新建应用」,模板选择「Workflow」,命名为“VoiceDialog-TTS”。

开始搭建节点:

第一个节点拖入「用户输入」,配置字段名“text”,字段类型选「段落」,最大长度设为 5000,并勾选「必填」。

第二个节点是核心——「LLM」。模型选 qwen2.5,System 提示词需要精心设计。粘贴以下内容:

你是一个语音参数解析器。请严格根据用户输入{{#1768335663610.text#}},输出标准JSON:{"text":"","motion":"neutral","emotion_scale":0.5,"speed_ratio":1.0,"language":"auto"}。仅输出JSON,不加任何说明、换行或额外字符。

注意,需要开启「结构化输出」,并粘贴对应的 JSON Schema,这样 LLM 才能稳定地返回格式正确的参数。

添加TTS调用节点并处理音频流

这一步有两种实现思路。

方法一:使用内置TTS节点(推荐)

拖入「TTS」节点,在「模型」下拉中选择前面配置好的“ChatTTS-Chinese”。然后绑定输入变量:text 字段来自 LLM 节点的 text,motion 来自 motion,speed_ratio 来自 speed_ratio,language 来自 language

关键配置在这里:勾选「返回 Base64 编码音频」,输出格式选 MP3,音频采样率固定为 24000Hz。这个值是 ChatTTS 的默认兼容值,如果设成其他值,输出的音频会是静音的。

方法二:手动调用自定义API节点(适配非标准TTS服务)

拖入「HTTP请求」节点,方法选 POST,URL 填 {{tts_api_endpoint}}——这个地址需要在环境变量里提前定义。Body 选 JSON,写入:

{"text":"{{llm_output.text}}","voice":"default","motion":"{{llm_output.motion}}","speed_ratio":{{llm_output.speed_ratio}},"language":"{{llm_output.language}}","format":"mp3"}

需要注意的是,这种方式必须保证响应体是完整的 MP3 二进制数据,而且 Header 中必须包含 Content-Type: audio/mpeg,否则 Dify 无法正确识别为有效音频。

连接播放与返回结果

第一步,拖入「条件分支」节点,设置判断逻辑为「TTS 节点是否成功返回音频」。成功的分支连接到「返回结果」节点,失败的分支连接到「返回错误提示」节点。

第二步,在「返回结果」节点中配置「返回字段」为 audio_base64,类型选「文件」,文件名设为 "output.mp3",MIME 类型填 audio/mp3

最后,启用「Web UI 预览」开关,保存并发布应用。在聊天界面输入任意中文句子试试,比如“今天天气真好”,点击发送,应该就能听到合成出来的语音了。

热门手游

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc