写点什么

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

  • 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:381598

评论

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

java集合笔记二 —— List集合,java运行原理

Java 程序员 后端

Java面试题整理《基础篇》,线程池参数面试题

Java 程序员 后端

java架构师常见的基础面试题及答案(一),这个回答让我错失offer

Java 程序员 后端

Java程序员极力推荐的springboot全家桶干货系列,运维nginx面试题

Java 程序员 后端

java面试常被问到的 JDK 命令,你知道几个?,2021最新Java面试笔试

Java 程序员 后端

Java面试知识点解析——JVM篇,java集合容器面试

Java 程序员 后端

Java架构进阶笔记:一不小心就死锁了,怎么办,java区块链项目实战百度云

Java 程序员 后端

java程序员必须掌握的spring boot—你真的了解了吗,java基础入门第二版第三章答案

Java 程序员 后端

Java详解:如何实现一个-redis-缓存服务,面试官手里那些秀你一脸的求质数大法

Java 程序员 后端

Java集合笔记一 —— Collection,用了这么多年分页PageHelper

Java 程序员 后端

Java真的要凉了吗?,工业互联网架构师

Java 程序员 后端

JAVA线程池源码之深入状态值分析| Java Debug 笔记,java原理面试题

Java 程序员 后端

Java语言新特性?封印类,mybatis教程pdf下载

Java 程序员 后端

Java虚拟机的历史,java编写视频播放器

Java 程序员 后端

java面向对象和常用类练习题(StringBuffer、Data,java基础案例教程第二版

Java 程序员 后端

Java程序员经典面试题集大全 (六)(1),javaee教程视频

Java 程序员 后端

Java程序员:面试字节跳动被问算法 多亏我扛下来了,2021最新Java高频精选面试题讲解

Java 程序员 后端

模块二作业:微信朋友圈高性能复杂度

dean

架构实战营

Java面试逐个突破:OOP(面向对象编程,java开发零基础就业班

Java 程序员 后端

Java是未来的第一编程语言吗?,linux内核架构pdf免费下载

Java 程序员 后端

Java程序员必须了解的JVM性能调优知识,全都在这里了,java框架常见面试题

Java 程序员 后端

Java程序员怎么写简历?你这样介绍项目经验面试官会对你刮目相看

Java 程序员 后端

Java语法糖,mybatis的实现原理

Java 程序员 后端

Java是未来的第一编程语言吗?(1),java多线程常见面试题

Java 程序员 后端

Java架构师面试题系列之Mybatis面试专题(36题,含详细答案解析

Java 程序员 后端

Java程序员经典面试题集大全 (六),springboot原理图

Java 程序员 后端

Java程序员跳槽之旅,离开京东,12面面试回顾和一点经验分享

Java 程序员 后端

Java进阶面试合集笔记——19个技术栈,35岁以后的Java程序员出路在哪里

Java 程序员 后端

Java面试题总结(乱序版,2020-09-29,3分钟教会你什么线程安全以及如何实现线程安全

Java 程序员 后端

Java架构师面试之Netty面试专题及答案(共10题,含详细解答

Java 程序员 后端

Java泛型你了解多少,springboot常见面试题

Java 程序员 后端

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