Dify对接语音方案
资源清单:
应用 |
资源 |
规格 |
部署xinference模型提供商 |
ECS |
X86计算 | 通用计算增强型 | x1e.4u.8g | 4核 | 8GiB | Ubuntu | Ubuntu 22.04 server 64bit | 通用型SSD | 40GB |
登录xinference |
公网ip |
|
语音转文字 |
SIS |
一句话识别 |
文字转语音 |
SIS |
语音合成 |
操作步骤:
1. 部署模型提供商xinference
dify中如果想要直接对接dify中自带的录音键和播放键,需要采用模型提供商的方式,自定义的工作流不能直接对接按键,这里采用的是xinference的模型提供商:
docker pull swr.cn-north-4.myhuaweicloud.com/hw-sac/tts-xinference:0.1
ps:这里由于对接SIS服务,并不需要真的调用tts和asr模型,所以这里用cpu版本的xinference就可以
2. 启动Xinference并进入docker容器,配置ASR和TTS的aksk和projectID
docker run -dit -p 9997:9997 --restart unless-stopped 镜像名称 bash -c "xinference-local --host 0.0.0.0 --port 9997"
docker exec -it 容器ID /bin/bash
apt install vim -y # 安装vim编辑工具
1)tts
修改/opt/conda/lib/python3.11/site-packages/xinference/model/audio/cosyvoice.py,填写sis对应的ak、sk、project_id、region
参考sis文档设置音量、音高、音色等,音频格式固定为mp3
如果需要过滤dify中的特殊字段,如网址链接等不读,可以添加正则表达式进行过滤
2)asr
同上,修改/opt/conda/lib/python3.11/site-packages/xinference/model/audio/funasr.py中的ak、sk、project_id、region
修改sis请求配置,在transcriptions里修改西面的配置
3. 浏览器访问容器服务器并完成以下配置(Xinference安全组需提前对dify平台和访问浏览器机器源地址ip开放9997端口):http: 主机IP:9997
a) 选择launch model中的cosyvoice-300M
b) funasr系列的sensevoicesmall,选择launch model中的SenseVoiceSmall
4. 在dify模型提供商里面选择添加模型
a)添加CosyVoice-300M模型,其中服务器URL为Xinference服务器ip
b)添加SenseVoiceSmall模型,其中服务器URL为Xinference服务器ip
开启模型服务
配置默认的tts和asr服务
在dify编排里面选择开启文字转语音和语音转文字
现在就可以正常使用asr和tts服务了
ps:如果因为http协议无法使用麦克风,打开chrome:chrome://flags/#unsafely-treat-insecure-origin-as-secure
选择开启白名单
- 点赞
- 收藏
- 关注作者
评论(0)