音视频互动集成步骤指引
-
文档作用
本文档目的在介绍如何快速了解和集成多模态大模型互动,以及如何定制功能。实现语音互动、视频互动、数字人互动、第三方模型互动。
-
架构介绍
上图为音视频互动整体架构,主要由端 + 云服务组成。端侧提供互动SDK供应用集成,云上提供大模型互动能力供SDK在线调用。主要如下:
-
大模型互动SDK
- 采集或者数据输入各类媒体:文本、音频流、视频流、图片文件等,然后采用RTC协议将数据低延迟传送到云端大模型互动服务。
- 采用RTC协议低延迟接收到云服务返送的文本、音频流、视频流、卡片多媒体内容,播放或接口输出到端应用。
- 音频支持SDK直采麦克风设备,或者数据接口接受APP的数据输入两种方式。支持音频PCM、G711、G722、Opus格式,采样率8K、16K、48K。
- 支持硬件或者软件的音频回声消除、降噪、增益功能,与云上音频增强处理相配合。
- 支持图片、视频流的自动降采样处理,压缩数据尺寸;支持JPEG、H264、H265编码格式。
- 支持RTC超低延迟传输、抗弱网、就近调度功能,支持NACK、FEC、ARQ、网络自适应功能。
- SDK提供大模型互动语意的专用接口,简单,快捷集成。
- 提供智能打断、实时双工、VAD检测、低延迟交互、播放有声资源功能。
大模型互动云服务
云服务主要包括3个阶段:音视频前处理、模型服务、音视频后处理。音视频前处理是在接收到原始音视频后,进行语音、视频增强,按需ASR语音转文本服务;模型服务区分系统内置的多模态交互大模型服务和第三方模型对接;音视频后处理是处理模型返回的文本或语音,驱动TTS或数字人生成音视频,发送给SDK。
-
音视频前处理
- 提供云端音频增强功能,包括:大模型AI降噪、人声分离、声纹识别、VAD增强。
- 提供云端视频增强功能,包括:视频抽帧、图像检测、图像增强、视频分段等。
- 提供ASR语音转写、情绪识别、多国语言识别、方言识别。
-
模型服务
用户可以使用系统内置的多模态互动大模型服务,直接调用专为实时交互构建的一揽子方案,包括工具应用、内容资源、视觉多模态等功能。用户也可以只使用大模型互动框架,对接第三方模型或智能体,不使用系统内置模型功能,这种方式获得最大灵活性,同时也获得互动框架带来的智能打断、语音双工、低延迟互动、音视频增强等能力。
-
多模态互动大模型服务 (内置)
- 意图识别:提供多轮的用户意图识别能力,将用户意图分类为:函数调用、知识问答、闲聊陪伴、数学计算、互动指令、垂类应用、视觉理解等十余种,并支持意图可配置、意图可定制能力。
- 聊天问答:支持闲聊闲谈、知识问答、联网实搜、数学计算等功能。
- 语音指令:暂停聊天、继续聊天、开启或关闭自动打断、设定人设、设定输出语言等。
- 垂类应用,例如天气、限号、百科、彩票等30多种。
- 可选服务:地图导航、附近推荐、电话呼叫、有声资源播放、实时翻译等。
- 视觉理解:支持上传图片、视频流、问题触发的视觉理解服务,能够对动物、植物、场景、路标等图像问答。
- 定制Function Calling:可定制函数意图、函数参数、执行结果TTS播报内容;函数触发事件可发送到SDK或者在云端调用HTTP接口执行。
- 定制话题:支持将特定话题意图识别出来,转发到某智能体提供服务,例如把佛学宗教、育儿教育等相关话题,转发到第三方智能体或模型。
- 定制人设:支持设置复杂人设,定制人设prompt;系统也内置了若干人设供选择,可通过API或语音指令切换。
- 定制场景:允许用户定制场景化prompt。例如针对成语接龙游戏定制prompt,针对模拟面试定制prompt等;可通过API、语音指令切换不同的场景。
-
对接第三方大模型服务
系统架构支持良好的开发性,允许使用第三方模型、智能体平台服务。详细参见对接第三方模型说明(链接)
- 大模型支持除百度文心系列之外,已支持了阿里千问、豆包、OpenAI大模型,以及支持符合OpenAI LLM协议的任意三方大模型(协议规范链接)。
- 多模态模型对接:支持视觉模型包括:文心多模态模型、豆包多模态、OpenAI gpt-4o、千问视觉模型等。
- 智能体平台已对接:百度AppBuilder平台、阿里百练平台、Coze平台、腾讯混元平台、Dify。
-
音视频后处理
- 支持TTS文本转语音功能,提供丰富的发音人、音色供选择,也支持一句话声音克隆,支持多国语言。
- TTS服务支持多厂商对接:包括百度云TTS、讯飞云TTS、火山云TTS等。
- 支持数字人对接,当前对接了百度曦灵数字人系统。(链接) 注意:该场景要求采用第三方模型方式集成。
注意:上述功能,可能受不同平台端SDK不同而不同。服务区分国内、海外版,国内与海外服务不互通。
-
集成步骤
- 1.在百度云上注册账号后,开通RTC多模态实时交互服务(开通链接 介绍链接)。
- 2.在RTC多模态实时交互服务中,创建APP应用,获得APPID后,可通过创建工单、邮件、服务控制台(即将上线)三种方式开通大模型互动服务,服务开通后账号内有免费额度供试用,免费用完或到期需购买服务授权。如果采用工单、邮件方式开通服务,申请中需携带:用户账号、APPID、业务概述、服务区域(国内、欧美、东南亚等)、服务内容(第3步的服务内容项)、联系方式内容,申请提交后等待开通。邮件地址:liuzhen29@baidu.com,youli01@baidu.com,keyugang@baidu.com 。
-
3.大模型互动服务开通后,可在服务控制台(即将上线)、邮件、创建工单3种方式配置或者修改服务内容。邮件地址:liuzhen29@baidu.com,youli01@baidu.com,keyugang@baidu.com 。 服务内容配置项主要包括:
-
4.集成端SDK或者WebsocketAPI开始使用大模型互动服务。 SDK类型包括有:
- Android SDK 集成指南(链接) SDK说明(链接) SDK下载(链接)
- IOS SDK 集成指南(链接) SDK说明(链接) SDK下载(链接)
- H5 SDK 集成指南(链接) SDK说明(链接) SDK下载(链接)
- 微信小程序SDK 集成指南(链接) SDK说明(链接) SDK下载(链接)
- RTOS SDK 集成指南(链接) SDK说明(链接) SDK下载(链接)
- Websocket API 集成指南(链接) SDK下载(链接)
- Linux SDK (即将上线)
注意:为了配合端SDK使用,需要先调用云上generateAIAgentCall或generateAIAgentInstance(即将上线)创建互动实例接口(链接),获得互动服务的Token和服务上下文。该接口说明如下:
- 该接口作用是在云上创建互动服务实例,加载大模型互动服务配置,返回token给端,供端SDK合法连接到云服务。
- 云API接口访问需采用百度云统一的AK/SK鉴权方式(链接)。
- 可通过该接口配置参数,如:LLM参数、TTS发音人、动态访问参数等。
注意:在SDK断开云端服务时,需主动调用stopAIAgentInstance销毁互动实例接口,否则可能导致云端资源泄漏,造成多计费。
- 5.SDK集成完成,使用账号中的免费额度测试业务。免费额度用完或者业务正式上线,可通过服务控制台(即将上线)、邮件、创建工单3种方式购买服务授权。邮件地址:liuzhen29@baidu.com,youli01@baidu.com,keyugang@baidu.com 。
-
接口调用时序
- UserAPP是在端上集成大模型互动SDK的应用,例如Android APP、Rtos系统的任务。
- UserServer是应用的服务端,由于访问百度云API需要AK/SK,存放在端侧存在安全隐患,推荐在服务侧调用ggenerateAIAgentCall或generateAIAgentInstance(即将上线)创建互动实例接口(链接),接口返回token和实例上下文返送到端侧,用于SDK初始化。
- UserAPP调用SDK的init初始化后,再call方法用于与互动服务实例建立连接,成功后可以大模型实时互动。
-
互动结束,UserAPP调用SDK的hangup方法断开与云服务连接。UserAPP通知UserServer,调用stopAIAgentInstance方法销毁互动实例,释放云资源。
注意:上述流程中提到的接口在不同端SDK可能存在差异,以端SDK接口为准。