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)