COZE扣子平台TTS语音合成智能体及API访问功能完善

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython

一、引言

在《在扣子(coze)配置一个提供TTS语音合成服务+咨询服务的综合智能体:语音合成助手》介绍了如何在coze平台配置一个提供TTS语音合成服务+咨询服务的综合智能体:语音合成助手,提供了Python调用API访问语音合成助手完成语音合成任务的方法。

但上文中提供的智能体及API调用存在如下问题:
上面介绍的实现代码其实存在几个问题:

  • 输出太多,初始调试时比较有用,但作为一个需要使用的工具输出太多,影响用户感知。
  • 转换成的MP3文件只是给出了链接,并未下载到本地
  • 这个智能体不是单纯的TTS合成语音智能体,还有意图解析提供咨询服务的能力,这种情况下怎么确保每个TTS都能正确的被转换而不是需要确认是否咨询?
  • 能不能变更输出声音的音色

第一个问题好说,纯粹是代码中的输出控制,进行一些修改和注释即可,在此不展开介绍。后面三个问题都需要采用一定的处理技术。

在这里插入图片描述

二、获取智能体应答中的MP3访问地址并下载到本地

智能体的应答中,提供音频的URL地址,类似如下:

已合成音频:[点击播放](https://lf-bot-studio-plugin-resource.coze.cn/obj/bot-studio-platform-plugin-tos/artist/image/f727bd27311b4f2888b689aec3cf2c1c.mp3)

需要从该应答中解析地址,并从网上下载到本地,在此直接提供相关代码:

def getMp3UrlFromText(textInf):
    match = re.search(r'https?://[^\s\]\)]+', textInf)

    # 如果找到匹配的链接,则提取并打印
    if match:
        first_link = match.group(0)
        print("****提取的HTTP链接是:\n", first_link)
        first_link = match.group(0)
        return first_link
    else:
        print("提取HTTP链接失败")
        return None
        
def getMp3UrlFromAnser(response_data):
    if response_data['code']:
        print("应答异常:",response_data['msg'])
        return None
    else:
        data = response_data['data']
        count = 0
        for item in data:
            if item['type']=='answer':
                returnContent = item['content']
                #print("大模型应答:",returnContent)
                ret = getMp3UrlFromText(returnContent)
                if not ret:
                    print("大模型应答:",returnContent)
                return ret
            else:continue
        return None
      
def getMp3(response_data,mp3FName):
	mp3URL = getMp3UrlFromAnser(response_data)
	if not mp3URL:return False
    if os.path.exists(mp3FName):os.remove(mp3FName)
    response = requests.get(mp3URL)
    if response.status_code == 200:
        with open(mp3FName, 'wb') as file:
            file.write(response.content)
        print(f'文件已成功保存为 {mp3FName}')
        return True
    else:
        print(f'请求失败,状态码:{response.status_code}')
        return False

上述三个函数,分别实现从大模型应答文本中提取URL地址字符串、从大模型应答中找到请求最终应答内容、从大模型最终应答内容中找到URL地址并下载MP3到本地。

三、修改提示词确保在指令明确情况下直接进行语音合成

针对上面第三个问题,本来以为可以在API开发时解决,但没找到解决办法,最终通过修改提示词来解决,将智能体的【人设与回复逻辑】进行了修改,增加了使用输入【“TTS服务”+冒号】来作为明确进行语音合成的提示词,修改后的【人设与回复逻辑】如下:

# 角色
你是一位专业的语音合成专家兼客户咨询经理,具备出色的意图识别能力,能够精准判断用户需求。当用户输入文本时,你可以识别用户的咨询或合成意图,对于合成意图,能将用户输入的文本精准、流畅地转化为高质量的音频文件输出,保证音频在语调、节奏等方面自然且契合内容情感需求;对于明确咨询意图,直接根据用户输入进行答复,对于疑似咨询问题,会引导用户确认是否进行咨询,并依用户反馈决定后续行动。

## 技能
### 技能 1: 意图识别
当用户输入文本时,仔细剖析文本的意图,识别是否存在明确的咨询意图:
1、对于输入内容是“咨询”+冒号(含半角、全角)开始的,判断为明确咨询意图;
2、对于输入内容是“TTS任务”+冒号(含半角、全角)开始的,判断为明确语音合成意图;
3、对于既不是明确咨询意图、又不是明确语音合成意图的疑问句判断为疑似咨询意图;
4、其他情况判断为语音合成请求。

### 技能 2: 咨询与合成引导
1、对于明确咨询意图,直接根据用户输入进行答复,无需再次确认;
2、对于明确语音合成意图,直接将用户输入转换成语音,无需再次确认
3、对于疑似咨询意图,请询问用户:“要查资料吗?”。若用户回答“是”,则提供咨询结果后结束对话;若回答“否”,则转入语音合成;
4、对于其他输入,作为语音合成请求,无需用户确认,直接进行语音合成。

### 技能 3: 语音合成
对于语音合成意图,依据文本特性,挑选合适的语音风格(如欢快、沉稳、温柔等)进行音频合成,合成完毕后输出合成好的音频文件。

## 限制:
- 仅围绕用户输入文本的咨询或语音合成意图展开工作,拒绝处理与这两者无关的任务。
- 严格按照既定流程进行意图判断、引导和操作,不可偏离流程要求。 
- 对于疑似咨询意图需要用户确认是否咨询意图的,限定用户输入“是”或“否”,不让输入其他内容
- 对于不是“咨询”+冒号开头且不是疑问句的,判断为语音合成请求,不需要用户再次确认

四、变更输出声音的音色

智能体使用的声音种类有很多可选的,按API相关文档的说明有上100种音色可选,但作为基础版,通过测试验证有39种可以免费使用,这39种如下:

voiceType =  ['爽快思思/Skye', '温暖阿虎/Alvin', '少年梓辛/Brayan', 
 '邻家女孩', '渊博小叔', '阳光青年', '甜美小源', '清澈梓梓', '解说小明', '开朗姐姐', '邻家男孩', '甜美悦悦', '心灵鸡汤', 
 '京腔侃爷/Harmony', '湾湾小何', '湾区大叔', '呆萌川妹', '广州德哥', '北京小爷', '浩宇小哥', '广西远舟', '妹坨洁儿', 
 '豫州子轩', '奶气萌娃', '高冷御姐', '傲娇霸总', '魅力女友', '深夜播客', '柔美女友', '撒娇学妹', '病弱少女', '活泼女孩',
 '东方浩然', '和蔼奶奶', '邻居阿姨', '温柔小雅', '儒雅青年', '擎苍', '古风少御']

通过智能体API的调用示例,在输入元素content中可以通过JSON字符串指定音色类型、语速、文本等信息,请求数据的示例如下:

data = {
    "bot_id": "7475264988345778185",
    "user_id": "jiangwp",
    "stream": false,
    "auto_save_history": true,
    "additional_messages": [
        {
            "role": "user",
            "content": "{\"cluster\": \"volcano_tts\", \"speaker_id\": \"心灵鸡汤\", \"speed_ratio\": 1, \"text\": \"TTS任务:今天天气为什么降温了?\", \"language\": \"中文\"}",
            "content_type": "text",
            "type": "question"
        }
    ]
}

这样就可以在API请求中控制插件按要求输出音频了。

五、小结

本文在《在扣子(coze)配置一个提供TTS语音合成服务+咨询服务的综合智能体:语音合成助手》基础上对语音合成助手智能体和调用API的方法进行了完善,实现了通过API可以指定完成语音合成任务、输出合成的MP3文件保存到本地,并可以在合成过程中指定音色类型。

更多人工智能知识学习过程中可能遇到的疑难问题及解决办法请关注专栏《零基础机器学习入门》及付费专栏《机器学习疑难问题集》后续的文章。

写博不易,敬请支持:

如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

关于老猿的付费专栏

  1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
  2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
  3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录
  4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

老猿Python,跟老猿学Python!

☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython
<think>好的,我现在需要分析用户的问题,比较Coze平台智能体和豆包智能体的区别与联系,涉及功能、架构和特点。首先,我需要确认这两个平台的基本信息和定位。根据用户提供的引用[1],Coze和fastGPT都是知识库搭建平台,但Coze面向C端,fastGPT面向B端。不过用户现在问的是Coze和豆包,所以可能需要更多的信息。 可能豆包智能体是另一个类似平台,但不在引用中提到。这时候可能需要依赖已有的知识。Coze可能是一个更偏向个人或消费者应用的工具,而豆包可能更偏向企业或特定行业?需要确认两者的目标用户和主要功能。 接下来,功能方面,Coze可能支持智能客服、导购,而豆包是否有类似功能?架构上,Coze是否有不同的模块设计,比如工作流、插件?豆包是否在数据安全或集成方面有优势?特点方面,比如易用性、定制化程度、支持的接口等。 可能还需要考虑市场定位,比如Coze是否更注重用户体验,豆包更注重企业级需求,比如多语言支持、API集成、权限管理等。另外,是否有技术架构的差异,比如使用的模型、部署方式(云端或本地)等。 需要确保回答的结构清晰,分点比较,并且如果有引用的话,正确标注。由于引用中提到了Coze和fastGPT的比较,但用户问的是豆包,可能需要指出没有直接数据,但根据现有信息推断,或者建议用户提供更多信息。不过可能豆包是另一个别名,或者属于某个公司的产品,可能需要进一步确认。 假设豆包是另一个类似平台,可能需要从功能、架构、特点三个方面进行对比。例如,功能上是否支持智能体创建、工作流;架构是否模块化,是否支持插件;特点如用户群体、数据安全、定制化选项等。 最后生成相关问题,帮助用户深入探讨,比如应用场景、技术细节、选择建议等。</think>### Coze平台智能体 vs 豆包智能体:区别与联系分析 #### 一、功能对比 1. **核心功能** - **Coze平台**:聚焦于智能客服、智能导购、产品专家等场景,支持通过工作流和插件扩展功能,例如动态内容生成、多轮对话设计[^1]。 - **豆包智能体**:更注重企业级任务自动化,如数据整合、业务流程优化,可能支持API深度集成和私有化部署。 2. **定制化能力** - Coze提供低代码配置界面,适合非技术用户快速搭建应用;豆包可能需技术团队介入,支持复杂逻辑脚本编写。 #### 二、架构差异 1. **技术架构** - Coze采用模块化设计,依赖云端服务实现快速扩展;豆包可能支持混合云架构,满足企业对数据本地化存储的需求。 - 例如,Coze的对话引擎基于预训练模型微调,而豆包可能集成多模型路由机制以适配不同业务场景。 2. **安全性** - Coze侧重C端用户体验,数据加密符合通用标准;豆包则可能提供审计日志、权限分级等企业级安全功能。 #### 三、特点与定位 1. **用户群体** - Coze面向个人开发者和小型团队,适合轻量级应用;豆包主要服务中大型企业,强调系统兼容性和稳定性。 2. **生态支持** - Coze拥有开放的插件市场;豆包可能与企业内部系统(如ERP、CRM)深度绑定,提供行业解决方案。 #### 四、联系与互补 两者均基于自然语言处理技术,支持知识库构建与意图识别。Coze可视为快速试错工具,豆包更适合规模化部署,形成从原型到落地的技术链路。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值