在上一节课程中,我们学习了如何利用代码节点进行数据转换,这一节我们将进一步学习如何使用TTS(Text To Speech)节点生成语音播报。完成本节课程后,你将掌握将文字转换为音频文件的技能,从而可以将文字内容制作为播客。

01. 动手实践

在现有流程的基础上,为应用增加TTS节点

  1. 在"代码执行"节点之后,新增一个"Text To Speech"节点。

  2. 连接"代码执行"节点和新增的TTS节点,然后连接TTS节点与结束节点。

    • 设置"TTS"节点的输入为"代码执行"的text。
  3. 为TTS节点配置模型:

    • 选择SiliconCloud的fish-speech-1.5模型。
    • 按照提示从SiliconFlow获取API Key:注册并创建API Key后,将其复制到Dify的配置框。

    • 在“系统模型设置”中,选择fishaudio为文本转语音模型。

  4. 选择声音类型,可以尝试4男4女的不同声音,查找符合需求的音色。
  5. 将“结束”节点的输出设为“Text To Speech”的files(注意,不是text)。
  6. 点击“发布”,保存后进行测试:

    • 结果输出为一个wav文件的下载链接,通过本地音频软件播放以验证内容。

02. 补充说明

今天的流程设置相对简单,但要注意以下几点:

  1. 费用说明:该TTS模型是收费的,须先充值以进行使用。麦金叔充值了10块钱进行了测试,费用合理,新用户注册将赠送13.99,可以免费使用一段时间。
  2. 代码执行节点更新

    • 今天更新了“代码执行”节点的脚本,可以将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(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_i = round(float(day_temp))
                night_temp_i = round(float(night_temp))
                res = "今日天气,白天%s,温度%d摄氏度,晚上%s,气温%d摄氏度" % (day_weather, day_temp_i, night_weather, night_temp_i)
                return {"result": res}

总结

本节课程扩展了工作流,通过TTS节点实现了文本内容的语音生成。如果你对制作播客感兴趣,这将大大提升你的内容制作能力。操作简单,鼓励多加应用以提高熟练度。

END
本文作者:
文章标题: Dify应用开发课程: 使用TTS节点生成语音播报(04)
本文地址: https://www.haovps.top/archives/dify04.html
版权说明:若无注明,本文皆 高性能VPS推荐与IT技术博客 | Haovps.Top 原创,转载请保留文章出处。
最后修改:2025 年 03 月 27 日
如果觉得我的文章对你有用,请随意赞赏