在线音乐领域一直是各大资本巨头投资的热点,从抢占版权到现在的“云上之争”, 主流平台的战火从版权资源转向创新领域扩延。而如今,在线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. some requirement checks failed

    1.执行安装数据库软件时报错(./runInstaller): 解决:(1)su - root       执行: x host+    然后 su - oracle    执行:./runIstal ...

  2. .NET Core/.NET5/.NET6 开源项目汇总7:电商项目

    系列目录     [已更新最新开发文章,点击查看详细] 谈起.NET/.NET Core的企业级实战案例,电商项目是典型代表.其中高负载.高并发.高可用性等问题是考核.NET技术性能的重要指标.下面整 ...

  3. js笔记20

    1.DOM零级事件元素绑定多个click,最后只执行最后一个click    DOM二级事件绑定多个click,都要执行 注意当绑定的多个事件名,函数名,事件发生阶段三者完全一样时,才执行最后一个 第 ...

  4. [源码解析] 深度学习分布式训练框架 horovod (13) --- 弹性训练之 Driver

    [源码解析] 深度学习分布式训练框架 horovod (13) --- 弹性训练之 Driver 目录 [源码解析] 深度学习分布式训练框架 horovod (13) --- 弹性训练之 Driver ...

  5. Java:Java的堆区、栈区和方法区详解

    Java内存空间理解 堆:堆主要存放Java在运行过程中new出来的对象,凡是通过new生成的对象都存放在堆中,对于堆中的对象生命周期的管理由Java虚拟机的垃圾回收机制GC进行回收和统一管理.类的非 ...

  6. Python 删除满足条件的某些行

    数据: data 字段:col 要删除的内容是 col == False 的行 # 方案一 data1 = data[~data['col'] == False] # ~ 取反 # 方案二 保留 da ...

  7. Jmeter监控服务器CPU,Memory,Disk,Network性能指标

    本文主要说一下如何通过JMeter插件来监控服务器CPU.内存.磁盘.网络等相关资源. 一.下载 第一种方案: 首先进入网址https://jmeter-plugins.org/downloads/o ...

  8. mysql Authentication plugin 'caching_sha2_password' is not supported问题处理

    使用mysql8.0版本,登录失败,提示 Authentication plugin 'caching_sha2_password' is not supported. 原因是在MySQL 8.0以后 ...

  9. mongodb在双活(主备)机房的部署方案和切换方案设计

    1. 概述 现在很多高可用系统为了应对极端情况,比如主机宕机.网络故障以及机房宕机等灾难的发生,通常会部署主备架构(双机房),或者双活架构(双机房),甚至多活架构(三个机房或者以上),mongodb天 ...

  10. Django基础007--filter&tag

    1.Django自带的过滤器filter def index(request): print('index...........') navs = '今天天气真好fdsfds!!!' title='& ...