Dify应用实战(4) - 生成语音

大模型

本文适用对象:初级水平

目标:利用TTS生成天气预报的语音

Dify应用实战(1) - 知识库检索

Dify应用实战(2) - 联网工具

Dify应用实战(3) - 代码处理

Dify应用实战(4) - 生成语音

Dify应用实战(5) - 使用模版

Dify应用实战(6) - 图片生成(上)

Dify应用实战(7) - 图片生成(下)

Dify应用实战(8) - 对话记忆

Dify应用实战(9) - 问题分类

Dify应用实战(10) - 循环处理

Dify应用实战(11) - 条件分支

Dify应用实战(12) - 数据库查询

Dify应用实战(13) - 工具调用

Dify应用实战(14) - 结果聚合

Dify应用实战(15) - 对象存储

Dify应用实战(16) - 数据可视化

Dify应用实战(17) - 使用MCP服务

Dify应用实战(18) - 发布成MCP服务

Dify应用实战(19) - 邮件配置

Dify应用实战(20) - 插件开发(上)

Dify应用实战(21) - 插件开发(中)

Dify应用实战(22) - 插件开发(下)

上一节Dify应用实战课,让大家知道如何通过代码节点来对数据进行转换操作。

我们继续AI学习之旅,今天教大家使用TTS节点,来生成语音播报的音频数据。

学习完成,你将掌握生成语音文件的方法,可以将自己的文字直接变为播客内容。

01. 动手做一做

基于上一节课的流程,在"代码执行"节点之后,新增一个"Text To Speech"的节点。 picture.image

添加之后,连接"代码执行"节点和新增节点;再连接新增节点和结束节点。新增参数(一定要先连接),"Text To Speech"的输入,选择"代码执行"的text。

TTS节点需要有模型,这里选择SiliconCloud的fish-speech-1.5。

硅基流动配置非常简单,直接点配置弹出对话框后,跟着"从SiliconFlow获取API Key"的向导,打开官网,注册后创建API Key,然后复制到Dify的配置框,即可。 picture.image

新增模型之后,在"系统模型设置"的文本转语音模型,选中fishaudio。 picture.image

同时新增节点,记得选择声音的类型,包括了4男4女的备选声音,可以都测试一下,看看是否满足自己的需要。

"结束"节点的输出改为"Text To Speech"的files(这里注意不要再选成text了)。

点击"发布",保存。提示"操作成功"。就可以进行测试了。测试如下: picture.image

结果输出是一个wav文件的下载链接,点击下载后,使用本地音频播放软件打开就可以检查内容。

02. 补充说明

今天的任务,非常简单,经过前几天的学习,应该操作起来很是得心应手了。

但注意一下,硅基流动的这个TTS模型是收费的,需要先充值才能使用,麦金叔充了10块钱。还有很多模型可以免费,或者限免使用。不过使用费用还算可以接受吧,测试了几次,花掉3分钱。同时新用户进来就赠送13.99,够用一段时间了。

当然,如果不想这么简单的实现,希望挑战一下自己的,麦金叔这里也有复杂的方案,点赞留言,确有需要,可以单独出一期。

另外,今天的"代码执行"节点,也做了一下脚本更新。直接将JSON,格式化输出为播报文案。

  
def main(arg1: str) -> dict:  
    import json  
    import datetime  
    today_date = datetime.date.today().strftime("%Y-%m-%d")  
    report = json.loads(arg1)  
    for index in range(0, len(report)):  
        weather = report[index]  
        if today_date == weather.get("date", ""):  
            day_weather = weather.get("dayweather", "")  
            day_temp = weather.get("daytemp_float", "")  
            night_weather = weather.get("nightweather", "")  
            night_temp = weather.get("nighttemp_float", "")  
            day_temp_f = float(day_temp)  
            day_temp_i = round(day_temp_f)  
            night_temp_f = float(night_temp)  
            night_temp_i = round(night_temp_f)  
            res = "今日天气,白天%s,温度%d摄氏度,晚上%s,气温%d摄氏度" % (day_weather, day_temp_i, night_weather, night_temp_i)  
            #today_weather = json.dumps(weather, ensure_ascii=False)  
            return { "result": res, }

总结

今天在上次的工作流基础上,进一步增加利用TTS来对获取内容进行语音生成处理,如果各位朋友有做播客的,那这一期就非常对你的胃口,操作也很简单。

如果你对AI的发展感兴趣,欢迎一键三连。有任何问题可以留言私信,我们共同探讨。

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 XR 技术的探索与实践
火山引擎开发者社区技术大讲堂第二期邀请到了火山引擎 XR 技术负责人和火山引擎创作 CV 技术负责人,为大家分享字节跳动积累的前沿视觉技术及内外部的应用实践,揭秘现代炫酷的视觉效果背后的技术实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论