写点什么

作业帮直播课“集体发言”功能研发实践

  • 2021-05-19
  • 本文字数:1791 字

    阅读完需:约 6 分钟

作业帮直播课“集体发言”功能研发实践

在线下课堂,老师和学生之间的互动频率非常高,而在线上,各个公司目前的直播课产品互动频率都非常低。在作业帮直播课小学产品负责人曹越看来,这个问题的核心原因是缺少一个高频互动的方式。因此,作业帮研发团队对其小学直播课产品中的集体发言功能进行了升级。

项目背景

据了解,作业帮第一代大班课基于 RTMP 技术实现,特点是大部分时间都是单向直播,老师在授课过程中和学生有一些简单互动,比如文字聊天、是否卡、答题卡之类的,互动不及时,延时普遍在 3 秒以上。


在运营大班课的过程中,作业帮发现低年级学生有特别强的互动需求,比如英语课就需要大量口语互动。而且多互动交流,也有利于低年级学生在课堂上更加专注学习。作业帮在 2019 年启动了“小组课”的开发,“小组课”是把一个几千人的大班分成 6 个人一个小组的小班,小组成员之间的互动和第一代大班相比更加频繁和多样。


在“小组课”第一期,作业帮就加入了集体发言功能,集体发言第一期的形式是老师提问,学生用语音回答,语音识别系统会把学习语音自动转换成文字或者分数,再发送给同组学员和老师。集体发言功能上线使用一段时间后,从学生和主讲老师、辅导老师那边收到反馈,他们均有强烈需求要听到对方的真实声音,因此作业帮在 2020 年中启动了集体发言二期的开发,并于 2020 年寒假课全量上线使用。集体发言二期主要解决了同组学员之间,老师和学生之间的语音互动功能。

核心技术

“接到这个项目需求时,凭我多年做音视频的经验,就知道这个项目是一个棘手的活。”因为,作业帮 APP 的用户设备大都为学生家长淘汰下来的手机,还有很多学习平板,这类机型性能较差,安卓系统版本较低,兼容性很不好做。为了解决用户设备的适配问题,在两个月的时间里,团队把公司所有机型都借来,包括同事的个人机,做了几百种机型的适配。


另外,有些学生上课时的环境很嘈杂,从后台甚至能看到有些学生在菜市场、医院或者汽车上看直播课。集体发言功能需求 6 个小组成员都是互通语音,其中只要有一个成员的语音有问题,就会影响其它五个人的上课效果。主讲端也会听到学生的声音,如果刚好听到声音很嘈杂的学生,就会影响老师的上课效果。


考虑对课堂效果风险的控制,作业帮的技术团队尝试了多种解决方案。对于常见的噪音,技术团队主要通过算法消除的方式解决。那些并不常见的噪音也可以通过编写特定算法,将异常设备的音量暂时降低等进行处理,并通过该系统不断迭代去优化声音。


据介绍,传统的噪音消除只能消除白噪音之类特征很明确的噪音,为了解决像汽车声音,菜市场噪音之类特定的噪音,团队引入了机器学习技术,自己训练了噪音消除库,训练数据主要来自回放视频,部分训练数据是组员亲自找到特定场景录制的。因为老师和学生的使用环境不一样,所以还针对老师和学生分别训练了不同的噪音消除库。


另外还要重点说下回音消除功能,集体发言功能的声音来源有很多,很容易产生回音。目前 iOS 平台的回音消除兼容性很好,在 iOS 平台下直接使用了自带的回音消除。PC 平台的回音消除大部分情况下工作都还不错,只有在 CPU 占用率很高的情况下容易出问题。最麻烦的是安卓平台,安卓平台机型特别多,兼容性很差,为了解决这个问题,团队测试了大量安卓机型,采用白名单策略,如果某款机型硬件回音消除很好,就优先使用硬件回音消除,不在名单中的机型则使用软件回音消除。


如果学生侧网络不好对该功能也有一定影响,毕竟多了几路语音,还是会占用一定带宽。作业帮自研的 ZRTC 在弱网方面的技术主要有丢包重传和 FEC,这是一款通用抗弱网技术,不是为该功能专门优化的,但可以起到很好的作用。


2021 年寒暑假,集体发言二期功能全量使用。寒假课结束后,团队邀请了部分用户做了问卷调查,学生满意度和参与度都比第一期有了重大提高。

未来发展

在作业帮产研团队看来,好的产品并非一蹴而就,产品打磨和技术支持缺一不可。评定教育产品好坏的标准要看是否真正赋能教育,技术的不断升级俨然能让产品发挥更大的效用。未来,团队计划在语音方面主要迭代以下几个方面:继续完善机型适配,每年都会出现很多新机型,所以这个工作不能停,团队会一直做下去;以月为周期训练噪音消除库,让噪音消除库适应性更好;尝试新的语音编码,比如最新很火的谷歌开源语音编码 Lyra 等。


随着 5G、人工智能、虚拟现实、增强现实等技术的成熟和应用,在线教育的形态和服务形式也在不断升级。而以人工智能技术驱动的自适应个性化学习,将是教育领域最具潜力的应用场景。

2021-05-19 09:381416

评论

发布
暂无评论
发现更多内容

极客时间 - 架构实战营 - 模块二作业

秋夫人

架构实战营

架构实战营 - 模块二 - 微信朋友圈的高性能复杂度分析

dog_brother

架构实战营

2019届应届毕业生Android秋招总结,已成功入职网易云音乐

android 程序员 移动开发

2019年末阿里、百度等大厂技术面试题汇总(附答案,实战篇

android 程序员 移动开发

2019,一位Android中级程序员成功跳槽的面经,android屏幕适配和性能优化

android 程序员 移动开发

模块二作业

莫离

架构实战营 「架构实战营」

01、泛型是什么?,flutterplugin修改

android 程序员 移动开发

16 个好用的 Code Review 工具,绝对干货

android 程序员 移动开发

2018年Android面试题整理,flutter下拉加载

android 程序员 移动开发

一点思考

williamcai

车联网 网关

2019最新中级Android面试题目,有着几篇就够了,androidwifi开发教程下载

android 程序员 移动开发

架构实战营-模块二

Aha hello xzy

架构实战营 「架构实战营」

文本序号添加/移除工具

入门小站

工具

18—19年BAT大厂Android高级多套面试专题整理集合(面试资料专题包分享

android 程序员 移动开发

2017-2020挑选出来最具代表性的(Java,网络相关,2021年字节跳动74道高级程序员面试

android 程序员 移动开发

模块二的命题作业

月影之臣

架构实战营

模块二作业

心怀架构

2019-年赚钱最多的-13-个技术岗位,轻松入门flutter

android 程序员 移动开发

2019届应届毕业生Android秋招总结,已成功入职网易云音乐(1)

android 程序员 移动开发

2020-字节跳动,网易,华为,android开发艺术探索pdf

android 程序员 移动开发

01 K8S之容器与容器编排系统

穿过生命散发芬芳

k8s 11月日更

用脱口秀大会来讲「观察者模式」

悟空聊架构

设计模式 悟空聊架构 11月日更

2020Android-目前最稳定和高效的UI适配方案!你头秃都没想到还能这样吧!

android 程序员 移动开发

分析微信朋友圈高性能复杂度

二手攻城师

架构师实战营

linux之Ansible快速入门

入门小站

Linux

00后已经进入网易,下一步定位阿里,年轻人这么拼,android开发艺术探索电子

android 程序员 移动开发

2017-2020挑选出来最具代表性的(Java,网络相关(1),面试真题解析

android 程序员 移动开发

HW2 - 微信朋友圈高性能复杂度分析

WWH

架构实战营

2020Android大厂面试(五)插件化,字节Android面试必问

android 程序员 移动开发

架构训练营-模块三

Geek_9de3de

架构实战营

2014-2020分享我在Android开发中走的一些弯路,Android开发者必看避坑指南!

android 程序员 移动开发

作业帮直播课“集体发言”功能研发实践_语言 & 开发_作业帮技术团队_InfoQ精选文章