2020 是非比寻常的一年。声网Agora与开发者们一起面对了许多未知与突如其来的改变。所幸,RTC 技术连接了你我,让工作与生活不至于停摆。在这一年,我们向着既定目标,迈过了一个里程碑,又踏上了下一段征程。
新技术落地
基于 AI 的美声、音效与降噪
在音频方面,声网Agora 今年推出了业界首个基于 AI 的实时美声方案。该方案适用于包括语音通话、互动直播、语聊房、桌游狼人杀等语聊场景,以及互动直播、K歌房、线上KTV、FM 电台等歌唱场景。 同时,在以上场景中,声网还提供了变声音效、曲风音效、空间塑造、电音音效四种实时音效。开发者均可通过修改接口参数调整人声、音乐的音效效果。
我们之前曾经在一篇《用 AI+大数据让用户的声音更动听》中,详细分享了AI 美声背后的技术原理。
由于我们从创立之初就是做实时音视频的,所以我们一直深耕于音频算法设计与落地。2020 年,我们针对传统降噪的无法很好处理突发噪声的痛点(比如喷麦,就是典型的突发噪声),我们自研了基于深度学习的语音降噪模型 RFCAE(Residual Fully Convolutional Auto Encoder),并在今年依据此模型完成了实时降噪方案的落地。不过,这部分的技术、算法,我们还没有来得及详细分享,我们以后有机会会拿出来讲一讲。
多算法落地 优化视频高清质量与体验
在视频层面,我们始终关注视频质量与互动体验。我们结合人工智能算法,同时利用先进的编码技术和传输算法,整体优化了 SD-RTN™ 传输策略和 Last Mile 传输策略,尤其针对东南亚、印度、印尼和埃及等地区进行网络优化,进一步降低首帧出图时间和切频道出图时间,并且有效提升码流爬升速度,优化用户体验。
同时,我们结合 AI 算法落地了专为 RTE 场景打造的感知技术套件 APAS(Agora Perception Augment Suit),将采集、前处理、编码、传输、抗弱网、渲染作为一个整体,通过多种自研算法来优化音视频端到端的处理。
自研新传输协议
在网络传输层,声网自研了基于 UDP 的多路复用传输协议 AUT(Agora Universal UDP-based Transport Protocol)。该协议满足以下技术要求:
-
通用性:使用一套协议设计来满足不同场景的需求,不仅 RTC,也包括可靠数据通道;
-
传输协议中原生的流支持:多路复用,灵活的优先级管理,通过流中捎带自定义的 Stream Meta 信息,给使用者进行流的管理决策;
-
灵活的拥塞控制模块接口,可扩展实现不同的拥塞控制算法;
-
底层网络接口化,能够支持 SD-RTN™、UDP Socket 和任何虚拟网络等。
AUT 协议在 Agora RTC SDK 中作为底层传输技术已经得到了技术验证,为上层应用提供了高质量的传输保证和灵活的控制机制。我们的首席架构师曾在 RTE 2020 实时互联网大会现场分享过该协议,可以点击这里观看回放。
开源 Demo 与跨平台框架支持
跨平台、多语言支持
多年来,跨平台开发一直都是最重要的技术趋势之一。从 React Native 到现在由 Google 力推的 Flutter,框架年年革新,但热度从未降低。采用跨平台开发技术让软件开发者几乎可以用同一套代码就为不同平台构建应用程序,节省了时间、人力,以及不必要的工作。
在跨平台开发支持上,我们可能比较激进。我们目前已支持多种语言、跨平台框架,以及游戏开发引擎,包括:Cocos2d-x、Cocos Creator、Electron、Flutter、Python、React Native、Rust、Unity、Unreal、UWP。其中,有些都是最初由声网社区开发者开发,并与官方一同维护的,比如最初由@少言 开发的 React Native 版 Agora SDK,由 陈实 开发的 UWP 版 Agora SDK等;也有一些是由官方开发维护的,比如 Flutter 版 SDK。这里要感谢支持声网的小伙伴们♪(・ω・)ノ
以上这些支持不同语言、框架和游戏引擎的 SDK 与 QuickStart Demo 分别都上传到了 AgoraIO 和 AgoraIO-Community 两个 Github 中。熟悉不同框架、语言的朋友,可以试试看,有问题随时提 issue。
另外,还有一波支持其它语言或跨平台框架的 SDK 正在路上,比如 Vue、Go 等等,希望可以进一步加速、简化开发者的实现实时互动的多种场景。
API Examples,方便实现基础音视频功能
随着实时互动场景的增加,以及产品不断新增的功能,示例代码越来越多,很不利于开发者查找。所以我们在 AgoraIO 仓库中,上线了 APIExamples 项目,包含了所有基础功能、单一场景的示例代码,比如一对一视频通话、一对一语音通话等。
说白了就是,代码更好找了。而且,一旦有新功能,我们会更及时地更新到 APIExamples 中,大家可以点个「👁Watch」保持关注哦!
开源 Demo,快速实现各种音视频场景
另外,我们今年针对几个成熟场景,开源了功能相对完善的官方 Demo,包括:
- Agora Voice,该开源 Demo,适用于想开发高音质语音社交应用的开发者。
- Agora Live,该开源 Demo,可直接实现连麦直播、单主播直播、PK 连麦直播、虚拟主播四种热门场景。
- e-Education,该开源 Demo ,包含了一对一互动教学、一对 N 在线小班课和低延迟大班课三种场景。
- Agora Meeting,该开源 Demo,是专为企业视频会议提供的示例项目,并包含白板功能。
以上这些 Demo 都是可以在苹果 App Store 下载到的,在 App Store 搜索开发者“Agora IO, Inc”,就可以找到它们。App 名称分别是 Agora Voice、Agora Live、声网云课堂、Agora Meeting。
除了这些 Demo,我们还有很多其它的 Demo 和示例代码,大家还可以访问以下三个 Github 获取:
- AgoraIO,提供了一些基础的代码示例,以及一部分由官方维护的面向跨平台、第三方框架的 SDK 版本。
- AgoraIO-Community,有来自社区开发者开发的一些 Demo,以及基于不同语言或框架开发的 SDK 等。
- AgoraIO-Usecase,主要包含了一些成熟的场景 Demo。
当然,如果你也默默地用 Agora 音频/视频 SDK、Agora RTM SDK 或其它 SDK 开发了Demo 或实践,也欢迎留言告诉我们,与我们交流。
文档细化,体验升级
仅仅提供 Demo 还是不够的,毕竟很多接口参数都需要查看文档来了解。今年我们通过为 10 余个平台/框架添加零基础跑通 Demo 文档,新增场景、最佳实践、术语等新类型的文档,帮助不同水平的开发者更好地使用 SDK。
同时,声网文档中心在 11 月份进行了改版,全面优化 UI 的同时,通过添加产品首页、API 专区、平台选择等,提升用户体验。
开发疑难,及时解决
疫情之下,我们与开发者的很多交流与互动,也从线下搬到了线上。
大家一定都知道 rtcdeveloper.com 这个域名,这是我们最初的社区。开发者与声网工程师们的很多对话都发生在这里。去年有来自开发者的 1700 多个问题都是在这里被解答的。另外一些上升至工单的问题,也都在平均 15 个小时之内被解决。
另外,我们在今年上线了“声网开发者社区”。这里有我们长期举办的 Agora Talk、参加今年 RTE 2020 创新挑战赛春季赛、秋季赛的项目回顾、征文大赛的文章等内容,让开发者们可以了解更多音视频技术知识、开发经验,以及 SDK 的使用方法。
送点小福利吧
大家都经历了特别的一年,在「RTC 开发者社区」留言聊聊在即将过去的 2020 你的变化、你的收获,聊聊你学习了哪些新技术?迈过了哪些坎坷?也聊聊想为 2021 立下哪些新 flag?
我们将按 留言被点赞数排名 送出 21 份礼物
- 前5名留言,可获得声网定制摩飞自热水壶
- 前6-10名留言,可获得声网定制双肩包
- 前11-21名留言,可获得声网定制帆布袋
写在最后
我们今年还推出了一些新产品,并对现有产品做了改进,包括:
- 行业首个体验质量标准 XLA ,它将原本处于黑盒状态的体验质量更加明晰化了。
- 极速直播,面向低延时、强同步的"轻互动"直播场景。
- 低码高清产品,在同等画质下,降低 50%视频码率,节省直播带宽压力。
- 上线新的 Web 音频/视频 SDK,支持 TypeScript 采用了 Promise (async/await)异步方法,有助于高效开发。
- RTSA 码流加速 SDK,现在已经支持 RTOS 系统,也就是说摄像头、麦克风、机器人都可以利用声网的实时互动网络进行低延时的数据传输。
- ……除此之外,还有很多
2020 年,我们还有有很多典型的场景方案落地,包括:视频面试、智能手表、智能作业灯、Watch Party、太空杀、云监考。
这些我们不详做描述了,如果感兴趣,可以看我们的这篇微信推送。
2020 充满了复杂及不确定性。面对不完美的世界,我们能做的就是在这个过程中,保持思考,淬炼力量,获得成长。希望 2021 能与大家一路前行,尊重开发者的价值,释放技术的力量,一起拓展实时互动的边界。