ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

30 分钟给应用装上“嗓门“:Dify 语音转文字与文字转语音完整指南

30 分钟给应用装上“嗓门“:Dify 语音转文字与文字转语音完整指南 30 分钟给应用装上嗓门Dify 语音转文字与文字转语音完整指南【免费下载链接】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想让应用听懂人话、还能开口回答在 Dify 里语音交互不是要你自己拼装一堆识别和合成 API而是开箱即用的两个开关语音转文字STT负责听懂用户文字转语音TTS负责开口回答。这篇指南带你从最朴素的一条语音问答开始走通配置、调用、调优全流程最后再聊聊怎么把这套能力接进自己的工作流。Dify 平台总览一个工作区里就能完成从模型接入到语音交互的完整搭建四块拼图一次语音对话背后发生了什么很多人以为语音助手是个神秘整体其实拆开看只是四步流水线识别STT把录音转成文字。这是听懂的环节依赖一个语音识别模型。理解拿到文字后走 Dify 原本的对话逻辑——提示词、知识库检索、工作流编排和纯文字聊天完全一样。合成TTS把生成的答案转成一段音频。这是开口的环节依赖一个语音合成模型。接入你的前端应用通过两个 HTTP 接口把音频送进来、把音频拿出去用户听到的就是一问一答。好处是识别和合成各只需一个模型提供商中间的理解逻辑你已经在 Dify 里写好了语音只是给文字对话加了个传声筒。实操30 分钟搭一个语音答疑助手假设你要给一个内部知识库做一个语音答疑助手用户按住说话提问系统用真人音色回答。下面是完整路线。第 1 步启动环境并配置语音模型如果还没装 Dify先克隆仓库并启动服务git clone https://gitcode.com/GitHub_Trending/di/dify cd dify docker compose -f docker/docker-compose.yaml up -dDify 的容器化部署架构语音能力随服务一起启动无需额外部署组件然后在管理后台的模型设置里确认两类模型都已添加并设置了默认值一类是语音转文字模型Speech2Text比如 OpenAI 的 Whisper 系列另一类是文字转语音模型TTS同样以 OpenAI TTS 为例。两类模型各只需要一个Dify 会自动按租户找到默认实例。如果你想换厂商参考 docker 环境变量示例 里模型提供商相关的配置项即可思路都是填 API Key、选模型、设为默认。第 2 步在应用里打开语音开关进入你的应用聊天助手或 Chatflow 均可在功能设置里找到两个开关语音转文字开启后应用允许接收音频并转成文字参与对话文字转语音开启后回答会额外提供音频版本并可选择音色如 alloy、nova 等具体以你配置的 TTS 模型为准。用可视化工作流编排语音答疑逻辑语音进来、检索知识库、语音出去开关保存后记得发布应用——未发布的应用不会走线上语音配置。第 3 步用两个接口完成一次语音问答前端侧你只需要对接两个接口均以应用 Token 访问路径挂在你的应用下语音转文字POST /audio-to-text。用表单上传音频文件返回体里是一个text字段——用户刚才说的内容。之后你可以把这段文字丢给对话接口也可以直接交给工作流。文字转语音POST /text-to-audio。传入要朗读的text可选message_id直接合成某条历史回答或voice指定音色返回的就是可播放的音频流。一个最简的语音问答循环逻辑上只有三句话# 1. 上传用户录音拿到文字 text post(/audio-to-text, filerecording)[text] # 2. 走 Dify 对话/工作流拿到回答 answer # 3. 把回答合成音频返回给用户 audio post(/text-to-audio, json{text: answer})想深入看服务端实现可以读 AudioService 和 音频接口控制器限制和报错逻辑都在里面排障时非常有用。调优与排错按现象 → 原因 → 怎么办定位传不上去、报错 413 / 415现象上传录音直接失败返回音频过大或类型不支持。原因Dify 对上传音频有30MB 上限且只接受 mp3、m4a、wav、amr、mpga 这几种格式见 音频格式常量。怎么办前端录音统一转成 mp3 再传文件大了就压缩或截短别把整段会议录音直接怼上去。回答是文字却没有声音现象对话正常但 TTS 接口报不支持或 500。原因常见有两种——TTS 开关没开/没发布或者租户里根本没配默认的 TTS 模型服务端找不到模型实例会直接拒绝。怎么办进应用功能设置确认文字转语音已启用并发布再回模型设置页确认 TTS 模型已添加且已设为默认。识别准确率忽高忽低现象安静时准现场一吵就错。原因识别模型对信噪率敏感长音频还会拉长等待。怎么办前端做基础降噪和削峰把单次录音控制在几秒到十几秒如果业务以中文为主选明确支持中文的识别模型而不是只看多语言标签。回答速度用户觉得慢现象从用户说完到听到回答体感超过三四秒。原因延迟分布在识别、LLM 生成、合成三段任何一段拖都拖。怎么办优先缩短音频长度识别最快的一段杠杆LLM 侧换低延迟模型或限制输出长度合成侧若前端支持流式播放拿到音频流就开始播不必等整段下载完。拓展玩法同一套能力换个玩法语音客服机器人把 STT 的文字接到带知识库的 Chatflow用户不用打字就能查订单、问售后TTS 音色选个沉稳的即可。会议纪要速记用户分段上传录音每段走一次语音转文字再让 LLM 汇总成摘要和待办——识别接口本身就是最好的转写按钮。外语跟读助教学生跟读外语句子STT 转写后让 LLM 对比原句打分纠错再用 TTS 播一遍标准发音一段代码都不用改模型配置。Dify 支持的主流模型平台语音识别与合成模型按同一套模型接入流程添加聊天助手界面开启语音开关后输入与回答即可切换为语音形式收尾先跑通再谈体验Dify 的语音交互本质上是两个开关 两个接口STT 开关管听懂TTS 开关管开口中间的理解逻辑复用你已有的应用。今天就把 30 分钟留给动手配好一对语音模型打开开关用一段自己的录音跑通第一次问一句、答一句——之后的一切调优都是在这条最短路径上做加法。【免费下载链接】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),仅供参考
返回列表