沉浸式体验网易云信在线 KTV

3,675 阅读6分钟

在线 KTV 现状

近年来,唱鸭、鲸鸣、回森、小森唱等多款产品竞相出现,激励金、高投入等现象也很常见,各平台都在抢占用户市场方面牟足了劲儿,一份份财报、数据图和全线飚红的 K 线,也给投资人们的投入带来了可观的回报。根据第三方数据研究机构比达咨询在 2021 年 4 月底发布的相关数据显示,3 月份全民 K 歌的活跃用户数在行业中大幅领先,月活用户数达到 13543.8 万人,唱吧位列第二,月活达到 3037.3 万人,此外,酷我 K 歌、天籁 K 歌和唱鸭分列第 3-5 位,月活用户均超 300 万人。

在线 K 歌的玩法层出不穷,但是在线合唱这一场景却鲜有平台去尝试。这主要是因为目前各厂商的技术能力在合唱这一场景下,还很难给用户带来极致的体验。

声临其境的难点和合唱困局

为了探索在线合唱这一场景,我们用最简单的 RTC 服务,搭建了一套未定制化的合唱 Demo 来测试效果。这套系统的简单说明如下图。

补图1.png

演唱者 A 自主播放伴奏,RTC 引擎把干声和伴奏混合后发到演唱者 B 和观众。此时演唱者 B 听到 A 的歌声和伴奏后,合着节奏一起唱。但这个流程有几个明显的问题亟待解决:

  • 演唱者之间的通信延迟过大,A 听到 B 的声音比自己的音乐要慢很多
  • 观众听到 A 的声音在伴奏节拍上,但 B 的声音却比伴奏慢
  • 歌词无法同步传递
  • 演唱者和非演唱者都没有置身 KTV 包厢的沉浸感
  • 参与合唱的用户的声音会被互相打断

抽丝剥茧的找对策

为了完善这个场景,我们对上面测试中遇到的问题一一进行分析,并在我们的实时合唱方案中予以解决,具体内容见下表:

表1.png

网易云信的实时合唱方案

整体结构

图1.png

降低延迟到极限

  • 云信的 WE-CAN 传输网络优化了传输延迟。

    对于距离较近的用户,We-Can 的 2.0 调度系统能够进行智能调度,保证用户能到达同一个机器、机房或尽量近的机房,这样流就完全不用走公网,在机房内完全解决,达到极致的低延迟效果。

    对于不同的运营商,通过智能路由的选择,能够保证网络稳定性达到 99.99%,延迟<75ms。

  • 在端上对音频的整个 pipeline 做了大量的优化,使平均的采集播放、信号处理延迟降低至52ms。

  • 在特定网络下,这些工作可以保障在当前网络条件下得到最低的通信延迟,而由于通信延迟的客观存在。我们需要用其他的方案来减少延迟对于合唱体验的影响。

通过精确同步伴奏来减少延迟对于体验的影响

为了解决演唱者双方听到的声音延迟过大的问题,我们实现了基于服务器精准同步的 NTP 修正值,给整个业务体系提供一个精准的时间戳。当合唱发起时,参与合唱的两端精准开始播放伴奏(同步精度达 10ms 级),双方各自跟着伴奏唱歌,不再需要等对方的伴奏,使整体合唱延迟对于用户体验的影响降低。

补图2.png

无弱网时多台伴奏同步性测试结果:

表2.png

加入弱网时:

表3.png

与传统的合唱方案不同的是,云信提出合唱方案需要以伴奏为基准。由于传输延迟的客观存在,这是不可避免的。但通过精确的伴奏起始同步,来尽量降低延迟,这对于演唱双方的体验升级是切实可行的。为此我们基于现有的方案(音频全链路端到端延迟在正常网络约 100ms)做了主观测试:

表4.png

在存在大量弱网的条件下,用户体验依然能够得到保障。

观众端的同步模块

由于参与合唱的多位用户的网络情况各不相同,其音频数据到达不同观众的延迟也各不相同,云信创新的运用了相对时间戳,使多位合唱者的干声主动对齐。这能让频道中的观众和非参与合唱的上麦者听到的声音和几位主唱保持一致,完整地复现 KTV 包厢场景。

合唱端将自己的干声标记伴奏的相对时间戳,随音流包一起发送,观众端通过定制的 buffer 算法、主动对齐策略使演唱者的声音和伴奏严格对齐。该方案可以在主唱和观众之间存在各种复杂的网络情况时,保证观众端依然可以还原主唱的歌声和节奏。而通过修改快慢放策略,加快了多个音频流的对齐时间,减少了收敛时间,确保在伴奏的前奏部分即可实现伴奏/干声对齐收敛。同时,这个机制还可以支撑视频功能,可以保障 KTV 视频和主唱演唱的对齐,完美呈现 KTV 包厢体验。

ts说明.jpg

减少网络负担的伴奏辅流方案

KTV App 在实使用中,尤其是用户选曲的时候,通常需要同时下载伴奏和歌词信息,而观众也需要下载对应的伴奏文件,这对于中间加入频道的观众体验很不友好。为了使合唱的观众方案体验更佳,我们设计了伴奏辅流方案。即伴奏通过音频辅流发送并带有特殊的相对时间戳,当接收端(观众或非合唱主播)收到数据后,结合干声的时间戳进入同步模块,做精准同步。

播放偏移估计

在合唱的和声部分,对方的干声有时候会影响自己的节奏,可能会发生“跑偏”或者唱错节奏的情况,为此我们优化了合唱两端的音量,实现刚好可以听清又不影响歌唱的效果。

在 KTV 场景中,用户始终是听到伴奏后才开始唱歌的,这样会引入一个在合成歌唱效果时的延迟,不同设备有不同的播放延迟。云信通过创新的信号回环算法硬件 buffer 计算相结合的方式,互相验证,并保证延迟计算的准确性。同时我们还进行了大量的机型适配。

未来展望

通过文中介绍的工作,我们基本上解决了合唱中的各种体验问题。未来,网易云信也将持续深耕技术,持续关注行业动态,提供完善的解决方案和最佳范例,以技术创新助力客户增质提效。