想在Dify平台中成功部署Whisper模型以实现高精度的语音转文字功能,其实并不复杂,但有几个关键步骤需要精准把握。一旦配置正确,无论是会议录音、访谈音频还是视频配音,都能自动转换为带有时间戳的结构化文本,省去手动听写的繁琐工作,同时避免云端API的高延迟与不可控费用。
确认Dify版本与环境准备
先别急着动手,第一步需要检查Dify的版本。在控制台右上角“关于”页面核对版本号,必须≥1.7.0——低于这个版本无法支持原生的Audio-to-Text插件,Whisper的相关配置根本无法使用。
同时,ASR模块的权限也要确保已开通。在“团队设置→角色管理”中检查当前账号是否拥有asr:use和model:deploy两个权限。缺少任何一个,后续在模型选择时会发现列表为空。
最后是算力问题。本地部署Whisper-large-v3至少需要8GB显存的GPU(如RTX 3090或A10级别)。如果打算用CPU硬扛,也不是不行,但必须在模型配置里显式指定device=cpu,同时做好心理准备——识别速度会明显下降,实时率通常在0.3x以下,延迟比较显著。
添加Whisper模型为自定义ASR引擎
这里有两个途径可选,具体取决于你的网络环境和性能偏好。
方法一:直接挂载Hugging Face公开模型
进入“设置→模型供应商→添加模型”,按以下字段填写:
- 模型名称:whisper-large-v3-zh
- 模型类型:asr
- 提供商:huggingface
- 模型路径:openai/whisper-large-v3
- 运行时:python3.10
- 框架:transformers
保存后,Dify会自动拉取模型权重并完成环境初始化。首次加载需要4到6分钟,期间服务进程不能中断。
方法二:使用本地量化模型加速推理
如果你已经拥有了量化好的whisper-large-v3-int8.onnx文件,可以将其上传到服务器/opt/dify/models/whisper/目录。然后在“添加模型”表单中选择“本地路径”模式,填入完整路径,并勾选“启用ONNX Runtime加速”。
需要注意:ONNX模型必须与Dify当前Python环境中的onnxruntime版本严格匹配,推荐使用v1.18.0。版本不匹配会导致启动失败,且报错信息比较模糊,排查起来较为棘手。
配置语音转文字工作流
模型配置完成后,接下来就是将其集成到工作流中。
第一步:新建应用时选择“语音处理”模板;如果是在已有应用中进行改造,进入“编排→节点管理”,点击“+ 添加节点”,选择“Audio-to-Text”。
第二步:在节点配置面板中,将“ASR引擎”下拉菜单切换为你刚刚添加的whisper-large-v3-zh模型。
第三步:展开“高级参数”,根据实际需求启用以下几个关键选项:
enable_punctuation:开启后自动恢复句末标点,对于中文长句而言,识别准确率可提升约12%;language:强制指定语言代码(例如zh-CN),防止多语混说时模型误判;temperature:设为0.5可以降低重复输出,但注意不要低于0.3,否则容易漏字;word_timestamps:勾选后会输出每个词的时间范围,这在生成SRT字幕文件时非常有用。
第四步:连接输入源。支持三种方式——直接拖拽上传MP3/WAV/M4A文件、填写公网可访问的audio_url、或通过SDK传入base64编码的音频流。
测试与验证输出格式
所有配置完成后,就到了验收环节。在“调试与预览”页点击“管理→语音转文字”,上传一段包含清晰人声的30秒中文录音。建议避开背景音乐和多人重叠说话的场景,以免干扰测试结果。
等待状态变为“已完成”,点击结果右侧的“查看原始响应”,确认返回的JSON中是否包含segments数组,并且每个元素都有start、end、text、speaker字段。
如果segments为空或text字段全是乱码,请第一时间检查音频采样率是否为16kHz、是否为单声道——Dify Whisper适配器默认会拒绝44.1kHz的立体声WAV输入,并且往往静默跳过,不会给出明确报错。
一切正常的话,导出TXT时文本会自动合并段落;导出SRT则会按时间戳切分,可直接导入剪映或Premiere,一键生成字幕轨。
