在线音乐领域一直是各大资本巨头投资的热点,从抢占版权到现在的“云上之争”, 主流平台的战火从版权资源转向创新领域扩延。而如今,在线K歌正在成为抢占“云音乐”市场的重要砝码。

据统计,截至2019年,在线K歌用户规模已经接近3亿,网民渗透率达到了67.9%;在线音乐领域累计用户分布中,在线K歌用户比重逐渐增长。因为疫情的原因让人们积攒许久的线下消费需求迁移到了线上,为本就火热的在线K歌行业又添上了一把分量十足的干柴。

以往的几年中,在线K歌领域一直是唱吧与全民K歌的轮番较量的地盘。而这两年,它们将面临全新的挑战者。在阿里巴巴推出“唱鸭”和“鲸鸣”两款在线K歌App之后,网易云音乐终于也坐不住了,推出一款名为“音街”的全新App,同时其他互联网公司背靠雄厚资本的“音遇”、“咪哒”也相序推出在线 K 歌场景。资本的看重以及玩法的多样化,都加快了在线K歌行业的发展。

当下主流在线 K 歌场景技术方案

在介绍 anyRTC 在线实时 K 歌解决方案前,我们先来回顾下目前在线 K 歌行业常见的在线合唱玩法,以及真正的“实时合唱”面临了哪些技术难点?

体验过在线 K 歌的用户都了解,目前几乎所有的在线 K 歌都是通过录制合唱串行合唱两种方式实现,以主唱A、合唱B、听众C为例进行讲述:

录制合唱: 主唱 A 根据伴奏演唱-》完成后点击上传-》合唱B选择带有 A 歌声的伴奏再演唱-》录制完成后间接完成合唱-》完成后点击上传-》观众C进行在线点播合成的演唱。

串行合唱: 主唱 A 发起合唱(本地伴音混音) -》主唱 A 的歌声+伴奏发给合唱 B -》合唱 B 加入一起唱。

串行合唱 的技术架构在用户体验上有以下缺陷:

  • 对于主唱来说,听到合唱返回的歌声延迟很大。所以在主唱一般不拉取合唱者的音频流,主唱无法听到副唱的歌声,这样导致主唱不清楚合唱者歌唱的效果,在线 K 歌氛围因此很薄弱。
  • 难以支持三人及以上的合唱。多人实时合唱在串行方案中实现起来十分复杂,很难真正落地。
  • 听众听演唱的歌曲的时候也会觉得合唱者没有跟对节拍,从而对点评结果产生影响。

因此,anyRTC 推出了"真实时"在线多人合唱方案。

anyRTC 实时合唱解决方案

基于上述技术难题,anyRTC 推出一体化实时合唱解决方案,以超低延时、多端同步、多人合唱、出色音质等功能优势直击用户体验痛点。

anyRTC 实时合唱方案架构大致如下:

合唱各端在连麦的基础上同时播放歌曲伴奏,然后上麦进行合唱,双人模式下主唱和合唱可以互相听到对方声音,多人模式下合唱者之间都能听到彼此声音,几乎感受不到延迟,达到了真正意义上的实时合唱。

  • 主唱端与各个合唱端同时从本地获取 BGM,随着伴奏同时开启演唱
  • 主播端发送两路音频流,本地的 BGM 和 Mic
  • 合唱端不订阅主唱端的 BGM 音频流,只订阅其他端的 Mic 音频流
  • 观众订阅所有的音频流便可享受到演唱者们“0延时”的合唱效果

在实时合唱方案中,anyRTC 主要解决三个问题高音质、超低延迟同步伴奏人数限制

在实时方案的实现中,anyRTC 以保障音质为基础,对“采集、前处理、编码、传输、解码、渲染”全链路进行了延迟优化,将延迟降到了科学合理的 66ms 超低感官延迟。

高音质

anyRTC 通过业内领先的语音引擎,实现从低比特率的窄带语音扩展到高质量的立体声音乐,并支持从8kHz(窄带)到48kHz(全频带)采样,最高支持 196K 的码率。领先自研的 3A算法(回声消除 AEC、自动噪声抑制 ANS、自动增益控制 AGC)则有效解决了anyRTC 在通信中可能出现的的回声、啸叫、噪音等问题。进一步保证了出色的音质。

anyRTC 内置实时美声功能。在原有低延时、高音质的基础上,针对歌唱场景采用链路式多模组联合算法框架,对人声的音调、音色、韵律、节奏、空间、氛围甚至艺术类型等不同维度进行调整,使歌声更动听、更契合伴奏,同时又能保留歌手声音原有的特点。

超低延迟

设备端上的延时包括采集端的采集、前处理、编码,播放端的接收、解码、渲染过程产生的延时,以及两端在编码后和解码前产生端网络延时。anyRTC 在编解码算法上进行调优,层层优化各个环节里延迟的因素。

网络的延迟也是实时合唱中必须要关注的环节,终端用户网络复杂、运营商参差不齐、容易产生网络抖动。anyRTC 全球部署服务节点,通过就近接入策略,让使用者就近接入质量最好的数据节点;加持拥塞控制算法、Qos/QoE最优化策略、多人通信流控算法等有效减少通信中的卡顿延迟问题。

同步伴奏

合唱同步: 精确服务时间,主唱和合唱约定好精确的唱歌时间点进行歌曲播放。

观众同步: 为了保证歌词在多端的同步及观看与合唱的同步,anyRTC 在方案上采用了SEI进行歌词同步,歌词信息和音视频信息在同一个媒体通道传输,这样可以保障歌词和音视频同步。歌词进度由主唱端发送,观众端接收到时间戳后,再根据时间戳把关键歌词行高亮。达到歌词同步展示的效果。

人数限制

传统的在线 K 歌最多人数为2人,人数越多,不可控的因素越多,导致体验效果极差。anyRTC 实时合唱解决方案,针对多人实时合唱落地难题,合唱用户采用本地伴音,强制时间差对其,多人实时合唱跟2人合唱的效果一样,目前 anyRTC 支持同时上麦人数最大为 50 人,观看用户不限制。

实时合唱解决方案支持多人实时合唱,能够在高音质的前提下,进行超低延迟通信,端到端延迟低至 66 ms,精准同步各端之间的伴奏与人声,不受合唱人数的限制,接入成本低且扩展容易。

结语

anyRTC 实时合唱作解决方案助力在线 KTV 玩出更多花样,让产品在众多产品中出类拔萃,提升用户活跃度与留存率,协助产品探索出更多商业价值,提升营收空间。未来,anyRTC 也将持续深耕技术,提供完善的解决方案,以技术创新助力客户增质提效。

anyRTC 重磅推出在线实时 K 歌解决方案的更多相关文章

  1. 在香港用什么软件可以唱歌?香港K歌app推荐

    KTV的源头来自于日本,KTV是Karaok TV的缩写.随着互联网时代越来越发达,手机K歌成了很多人会选择的方式,那么在香港有什么好用的K歌软件呢?这里qt6小编给大家推荐几款好用的,让你足不出户即 ...

  2. OSS上传图片无法在线预览的解决方案

    OSS上传图片无法在线预览的解决方案 最近在做的项目涉及到商品详情,由于前端用的flutter框架并且该详情为富文本,dart语言关于富文本的组件不是非常友好,当富文本中的图片无法在浏览器中直接预览的 ...

  3. 犀利的background-clip:text,实现K歌字幕效果

    今天学到了一个新的CSS3属性,更准确的说是属性值,那就是background-clip:text.利用此属性值可以制作出很神奇的效果.可惜只有chrome支持,不过今天可以先来玩玩这个属性. 先来介 ...

  4. TogetherJS – 酷!在网站中添加在线实时协作功能

    TogetherJS是一个免费.开源的 JavaScript 库,来自 Mozilla 实验室,可以实现基于 Web 的在线协作功能.把 TogetherJS 添加到您的网站中,您的用户可以在实时的互 ...

  5. 玩一玩nodejs--一个简单的在线实时填表应用

    学习nodejs三天,入了个门,感觉他和jsp.php还是存在较大的差别.本文首先复习这些天学的一些知识点,然后谈一下如何一步一步到做一个在线实时填表的小应用,进一步巩固一下这些个知识点.这里先简单介 ...

  6. python爬取全名k歌

    python3 爬取全名k歌 代码: import re import requests import ssl ssl._create_default_https_context=ssl._creat ...

  7. 【收藏】轻松导出全民K歌里任何人录制的短视频(MV)、歌曲的方法

    有一次想把她在全民K歌里唱过的所有歌下载到电脑上,然后合成一个视频.但不知道怎么导出全民K歌里的歌曲,经过各种百度Google终于找到了一个用起来很简单的工具.不仅可以下载保存任何人录制的歌曲,还可以 ...

  8. python3爬取全民K歌

    Python3爬取全民k歌 环境 python3.5 + requests 1.通过歌曲主页链接爬取 首先打开歌曲主页,打开开发者工具(F12). 选择Network,点击播放,会发现有一个请求返回的 ...

  9. 数据结构与算法实验题 9.1 K 歌 DFS+剪枝

    数据结构与算法实验题 K 歌 ★实验任务 3* n 个人(标号1~ 3 * n )分成 n 组 K 歌.有 m 个 3 人组合,每个组合都对应一个分数,你能算出最大能够得到的总分数么? ★数据输入 输 ...

随机推荐

  1. 【Java】equals 和 == 的区别

    之前有在 Java字符串比较(3种方法)以及对比 C++ 时的注意项 中写过一点关于 equals()与==的比较,但最近的Java考试复习过程中发现有部分情况没涉及到,故重新学习一下 在编写代码的时 ...

  2. XML从入门到深入(超详细)

    一:什么是XML XML (eXtensible Markup Language)指可扩展标记语言,标准通用标记语言的子集,简称XML.是一种用于标记电子文件使其具有结构性的标记语言. XML可以标记 ...

  3. 音视频点播服务基础系列(Fmpeg常用命令)

    前言 公司业务中有一些场景需要用到服务端音视频剪辑技术,最开始为了快速上线使用的是某公有云的商用解决方案,但由于费用太高所以我们团队经过一个星期的冲刺,给出了一个FFmpeg+Serverless的解 ...

  4. Golang修改操作系统时间

    Golang修改操作系统时间 需求 程序有时需要和服务器对时,发现延迟过高修改本地时间,这段代码网上抄的,实测可用,windows环境需要以管理员身份启动命令提示符调试 实现Demo package ...

  5. 深入学习Netty(2)——传统NIO编程

    前言 学习Netty编程,避免不了从了解Java 的NIO编程开始,这样才能通过比较让我们对Netty有更深的了解,才能知道Netty大大的好处.传统的NIO编程code起来比较麻烦,甚至有遗留Bug ...

  6. PHP观察者模式 (转)

      观察者模式(Observer),当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新. 场景:一个事件发生后,要执行一连串更新操作.传统的编程方式,就是在事件的代码之后直接加入处理逻 ...

  7. XCTF GAME

    首先这题有两种解法,一种是使用ida查看伪代码直接写exp跑出flag,另外一种是调试,因为最近在学调试,刚好用于实战上了. 一.查壳 二.32位文件拖入od动态调试 先找到game的主要函数,插件中 ...

  8. Formily教程 | formily是中后台复杂场景的表单解决方案

    前言 formily 不是一个简单的前端轮子.Formily 是一个由阿里巴巴集团多 BU 共建的面向中后台复杂场景的表单解决方案,它也是一个表单框架.它的前身是供应链平台在 2019 年初对外开源的 ...

  9. Java | 集合(Collection)和迭代器(Iterator)

    集合(Collection) 集合就是Java中提供的一种 空器,可以用来存储多个数据. 集合和数组都是一个容器,它们有什么区别呢? 数组的长度是固定的,集合的长度是可变的. 数组中存储的是同一类型的 ...

  10. [Kong] key-auth实现对API请求的密钥认证

    目录 1. 配置密钥验证插件 2. 确认插件配置正确 3. 创建cunsumer 4. 给cunsumer提供关键凭证 5. 验证 6. 小结 [前言]: 下面我们将配置key-auth插件以向服务添 ...