通过借助 TTS-LLM-STT 技术,实现用户自然的与大模型进行语音对话交互(变相实现端对端的大模型语音交互),来实现企业客服的智能化替代,并减少人工坐席的数量和工作量;
注意:本笔记是针对大模型语音对话的早期技术可行性验证 Demo ,主要是让读者建立大模型应用逻辑与交互技术能力集成应用的思路启发,其还不具备规模化和工程化使用的要求(缺少用户鉴权、流控、安全审计、性能等商业化要求)你需要在后期的实践中逐步思考完善;
腾讯云语音识别 | 腾讯云语音合成 | 腾讯云混元大模型 | (可选)腾讯云内容安全 | |
---|---|---|---|---|
产品主页 | ||||
计费规则 | ||||
免费额度 | 腾讯云语音识别服务-实时语言识别,每月提供 5 小时免费额度;录音文件识别每月免费10小时; | 基础/精品音色免费资源:适用于基础/精品音色,免费额度为800万字符;免费资源包自您领取成功后起三个月内有效,一个账号只能领取一次。 | 腾讯云混元生文大模型(轻量版)(即:hunyuan-lite)免费使用;混元生文大模型(PRO版或Turbo版等高级模型)(如:hunyuan-turbo、hunyuan-pro、hunyuan-vision等)提供1年有效的10万免费tokens(高级模型共享额度); | 首次开通服务的用户可免费试用3000条文本,试用套餐包有效期为15天;如免费套餐包到期或用尽后未购买正式套餐包,将按照“按量后付费日结(25元/万条)”的方式结算。 |
优惠活动专区 | / |
Dify工具 | |
---|---|
仓库地址 | |
部署文档 | |
操作手册 |
题外话:一开始,我使用的是langchain,而非dify,但后面逐渐发现langchain在工作流的自定义(可扩展性)、团队协作(对小组里面的小白同学参与工作不够友好)等方面不够友好,后切换到dify,再加上dify自带暴露标准的后端API并带认证和用户问答内容的审查功能,以及团队协作功能,这对我们的demo工作是一个效率提升,后决定切换到dify上;
部署Dify需要提前准备云服务,规格要求如下(最低安装要求):
推荐使用腾讯云轻量云服务器,便宜又好用,再加上活动很多,对于Demo需求和小规格服务而言性价比拉满:
目前上述配置:2核4G内存的腾讯轻量云服务器,活动价159元/年,性价比拉满!(这个价格,直接走团队的小单价直购额度直接报销,省去走OA的采购流程!)
活动链接:精选特惠 用云无忧_腾讯云优惠活动
注意:本笔记主要是实践思路的阐述,以及实践过程的经验分享,不提供后端服务的具体代码示例,你需要自己按需实现代码逻辑;
微信小程序录音API:媒体 / 录音 / RecorderManager / RecorderManager.start
请注意采样率推荐为8K,若调整为16K时,请同步修改腾讯云语音识别的采样率参数;
腾讯云语音识别服务提供基于websocket 协议的【实时语音识别】能力,这对我们实现更高响应的速度和稳定的语音服务带来可能;
实时语音识别API文档:语音识别 实时语音识别(websocket)-API 文档-文档中心-腾讯云
参数配置建议:
参数名称 | 参数与推荐值 | 备注 |
---|---|---|
引擎模型类型 | engine_model_type = 8k_zh | 首先8K采样率已经满足文本识别需要,并且考虑到本次大模型语音对话demo前端缺少降噪相关能力,为此推荐使用8K引擎进行识别,这是因为腾讯云的8K识别引擎是基于大量电话通讯场景训练而来,更符合当前现状需求; |
人声检测切分功能 | needvad = 1 | 人声检测切分功能是一种能够检测音频中的人声部分,并将音频按照人声出现的位置进行切分的技术。它可以帮助提高音频处理的准确性和效率,特别是在处理较长音频时,能够更好地识别和处理人声部分,避免因音频过长而导致的识别错误或性能下降。 |
过滤脏话 | filter_dirty = 1 | 开启脏话过滤,避免影响大模型理解问题和输出; |
过滤语气词 | filter_modal = 1 | 开启语气词过滤(部分过滤,是否严格过滤可按需调整),避免语气词对大模型响应产生影响; |
阿拉伯数字智能转换 | convert_num_mode = 1 | 开启阿拉伯数字智能转换; |
语音断句检测 | vad_silence_time = 1000 | 开启更适合智能客服场景的语音断句检测功能; |
(仅对主要参数做出建议,其余参数可灵活按需配置) |
dify工具提供了很好的大模型排版编程范式,并且暴露后端API代码,实现了模型即服务的能力;但在配置过程中注意,针对腾讯混元大模型特点来配置,否则会出现报错;
部署好Dify后,进入Dify的【系统设置】:
在众多大模型厂商中,找到腾讯混元大模型,并输入你腾讯云账号的【Secret ID】和【Secret Key】;
腾讯云 API key 获取地址:访问密钥 - 控制台 (建议使用子账户密钥)
若API key 验证通过后,你应该能看到腾讯云混元大模型已经逐一接入成功了,具体模型后面的开关将影响该模式在Dify中是否支持使用,你可按需开关;
你可按需在Dify的【工作室】模块下创建你的AI智能体或工作流;Dify官方提供了很多示例来帮你快速熟悉这2个大模型应用形态,你可以多体验和摸索,创建出适合你业务和场景的大模型应用;
但请注意,你在工作流场景中引入混元大模型时,务必将用户任务和数据放置在【USER】中(需手动创建)否则会导致模型报错;
腾讯云-语音合成服务提供针对大模型流式输出能力的【流式文本语音合成】能力,并且也是websocket 协议,这对大模型语音对话而言是一个满足效率与场景的双赢能力;
流式文本语音合成API文档:语音合成 流式文本语音合成 -API 文档-文档中心-腾讯云
注意:为获得更好的流式文本合成的性能和延迟收益,但是请务必保证在大模型输出时需选择流式输出,并且每秒输出token数应大于40token/秒(即每秒输出≈20个字)(经验值),否则反而会因为输出token数过少,导致原本想吃到的websocket +流式生成的性能收益,反而输给网络延迟和模型性能,以致最后生成的音频“一顿一挫”的播放,毫无情感可言还体感不够好;
参数配置建议:
参数名称 | 参数与推荐值 | 备注 |
---|---|---|
合成音频情感 | EmotionCategory = exciting | 腾讯云语音合成能力提供了17种情感表达,我们在实践中各个情感类型都尝试了使用,多数团队同学都认为exciting(兴奋)更适合当前具有温度的客服形象/场景,当然你可以按需调整; |
合成音频情感程度 | EmotionIntensity = 100 | 用于控制上述情感模型的情感表达强度,你可以按需调整强度区间; |
断句敏感阈值 | SegmentRate = 1 | 因大模型输出内容本身已经基于提示词输出了包含标点符号的文本内容,为此语音合成引擎应更倾向使用大模型的标点符号作为断句标准;该参数数值越大越倾向按照内容标点符号进行断句; |
(仅对主要参数做出建议,其余参数可灵活按需配置) |
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。