# BRTC.RTOS.SDK.demo

    -  用于进行BRTC SDK开发的demo程序。  
       百度智能云实时音视频RTC：https://cloud.baidu.com/doc/RTC/index.html  
       sdkdemo中各文件说明：  
        ./src/ac79_videocall_demo.c   实时通话demo程序代码， 演示了进行通话及挂断退出通话的流程。
        ./src/app_main.c 讲述了如何调用ac79_videocall_demo.c中videocall_demo_open的方法，可以正常启动语音通话流程
        ./include/baidu_rtc_client.h  是BaiduRTC SDK的头文件。
        ./libs/libbrtc.a 是BaiduRTC SDK的库文件。 
        ./README.md    说明文档；

       ac79_videocall_demo.c中主要函数说明如下：
        1. videocall_demo_open  
            1). 这个是程序主入口， 可以在UI界面中进行调用。  
            2). 设置登录BRTC 房间需要的参数userid，appid， roomname。
            3). baidu_init_sdk()进行SDK的初始化, 初始化完成后调用baidu_login_room进行视频通话；

        2. videocall_demo_close 挂断视频通话  
            1). 可以被定时函数brtc_sdk_do_async异步调用，实现定时结束通话功能。
            2). videocall_hangup退出房间，结束通话。

        3. OnRtcMessage 为SDK消息处理函数  
            当收到消息RTC_ROOM_EVENT_ON_USER_LEAVING_ROOM表示对方挂断了， 那么本端也进行挂断。

## 测试

    -  测试demo  
       1. 使用2部手表登录相同的房间，即可进行语音通话。  

## 注意事项

    -  下面是在集成中需要注意的点：  
       1. app_sdk_A7_cfg.h中修改#define __SDRAM_SIZE__    (8 * 1024 * 1024) // size过小，lwip会出现out of memory的问题。
       2. AC79芯片易出现录制启动时爆破音的问题，需要丢掉开始的爆破数据，修改apps\wifi_story_machine\board\wl82\board_7911B.c 中的adc_platform_data结构体 .dump_num = 640 //https://doc.zh-jieli.com/AC79/zh-cn/master/module_example/audio/audio_adc.html
	   3. ac79_depandency/app_sdk_audiorecorder.c是BRTC SDK录制依赖的API,客户自行修改其中的录制增益值。
	   ac79_depandency/app_sdk_localdata_audio_play.c是BRTC SDK播放依赖的API，可以也可以其中的播放增益值。


### BRTC.RTOS.AGENT.SDK.demo

    -  用于进行BRTC SDK开发的demo程序。  
       百度智能云实时音视频RTC：https://cloud.baidu.com/doc/RTC/index.html  
       sdkdemo中各文件说明：  
        ./src/ac79_chat_agent_demo.c   智能体语音互动的demo程序代码， 演示了开启对话及退出对话的全流程。
		./include/baidu_chat_agents_engine.h 是BaiduRTC AGENT SDK的头文件。
        ./libs/libbrtc.a 是BaiduRTC AGENT SDK的库文件。 
        ./README.md    说明文档；

       ac79_chat_agent_demo.c 中主要函数说明如下：

        1. baidu_create_chat_agent_engine 创建智能体引擎

		2. baidu_chat_agent_engine_init 初始化参数和设置事件回调
            1). 设置事件回调。  
            2). 设置登录BRTC 房间需要的参数BDCloudDefaultRTCAppID。//需要客户申请 https://cloud.baidu.com/doc/RTC/index.html


        3. baidu_chat_agent_engine_call 开启智能体对话  
   

        4. baidu_chat_agent_engine_destroy 结束智能体对话和销毁 

###特别注意事项###
1.客户需要搭建自己的服务，可以在本地或者服务器上运行我们的服务端demo参考示例，具体详情请参考《BRTC实时交互智能体接入指引文档V1.4》中的rtos sdk章节

######版本更新须知#######
#时间：20251110
#版本：BRTC.RTOS.SDK.JL1.2.V3.0.9B05.20251110
功能：
1. 增加了RTOS SDK获取情绪识别/发声人标识/声纹匹配度的接口。
2. 增加了通过大模型将客户自定义消息发送给设备端到的标签回调接口。

//注意事项：
//海外服务地址：rtc-aiagent-out.baidubce.com
//访问国外服务时需要将rtc-aiagent.baidubce.com换成rtc-aiagent-out.baidubce.com
//参数设置params->region = REGION_OVERSEAS;


#时间：20250918
#版本：BRTC.RTOS.SDK.JL1.2.V3.0.9B04.20250918
功能：
1. 修复了长内容故事出现的崩溃问题。

//注意事项：
//海外服务地址：rtc-aiagent-out.baidubce.com
//访问国外服务时需要将rtc-aiagent.baidubce.com换成rtc-aiagent-out.baidubce.com
//参数设置params->region = REGION_OVERSEAS;

#时间：20250908
#版本：BRTC.RTOS.SDK.JL1.2.V3.0.9B03.20250908
功能：
1. 增加了端侧可以访问海外节点大模型服务的功能。
2. 增加了端侧动态切换访问国内或者国外大模型的配置逻辑。

//注意事项：
//海外服务地址：rtc-aiagent-out.baidubce.com
//访问国外服务时需要将rtc-aiagent.baidubce.com换成rtc-aiagent-out.baidubce.com
//参数设置params->region = REGION_OVERSEAS;

#时间：20250902
#版本：BRTC.RTOS.SDK.JL1.2.V3.0.9B03
功能：
1. 增加了长按按键关闭vad和点击3次按键打开vad的功能
2. 增加了RTOS SDK给agent发送事件的接口。
3. 增加了设备端订阅失败和hangup异常的事件上报流程。
4. 优化了http_event_handler处理逻辑。

//关闭vad使用说明，具体如下：
//2.0发送关闭vad的信令： baidu_chat_agent_engine_send_event_to_agent(g_engine, ASR_EVENT_DISABLE_REALTIME); 
//2.1按下按键开始录音： baidu_chat_agent_engine_send_event_to_agent(g_engine, ASR_EVENT_START_LONGTEXT_REC);
//2.2松开按键发送录音： baidu_chat_agent_engine_send_event_to_agent(g_engine, ASR_EVENT_STOP_LONGTEXT_REC);
//2.3config需要配置：\\\"asr_long_audio_mode\\\" : true
//config示例如下：
"{\"app_id\": \"xxx\", \
\"config\" : \"{\\\"llm\\\" : \\\"LLMRacing\\\", \\\"llm_token\\\" : \\\"no\\\", \
\\\"rtc_ac\\\": \\\"g722\\\", \\\"lang\\\" : \\\"zh\\\", \\\"asr_long_audio_mode\\\" : true}\", \"quick_start\": true}"

//打开vad使用说明：
1. baidu_chat_agent_engine_send_event_to_agent(g_engine, ASR_EVENT_ENABLE_REALTIME);

#时间：20250724
#版本：BRTC.RTOS.SDK.JL1.2.V3.0.9B01-20250724
功能：
1. 修复了语音打断时会播放前面的残留音问题。
2. 优化了音频录制音量，对设备拾音ASR无识别有改善。
3. 优化了rtos sdk任务调度优先级和jitterbuf，减少互动延迟。
