作者|冼牛

编辑|覃云

最近半年,视频直播领域中产生不少创新玩法,其中包括 K 歌直播和合唱直播。这些创新玩法都用到实时音频混音技术。今天我们来聊一下混音技术的实现,及其在创新玩法中的应用。

混音的应用场景

混音,顾名思义,就是把两路或者多路音频流混合在一起,形成一路音频流。笔者曾经写过两篇关于混流的文章,混流也被称为合流,指的是把视频画面和音频对齐,然后混合成一路音视频流。我们今天要聊的实时音频混音,指的只是音频流的混合。

混音的逻辑可以在终端设备上实现,也可以在服务器上实现,因此可以分为终端混音和云端混音。终端混音一般应用于背景配音,音乐伴奏等场景。云端混音可以是云端混流的一部分,主要目的是利用云端的计算能力去做多路音视频流的音画对齐,还有降低下行带宽成本;也可以做纯粹的云端混音,来实现合唱直播等场景的需求。

混音技术在视频直播应用场景中并不新鲜。视频直播间里比较机械化的掌声、笑声、口哨声甚至背景音乐,都是混音技术的应用。在主播端,采集主播的声音形成音频流 A1,从音频文件中读取音频流 A2,把 A1 和 A2 两路音频流混合,形成一路音频流,这就是混音。

然而,视频直播的玩法创新日新月异。2017 年 12 月酷狗直播上线了 KTV 直播的玩法,主播可以在线跟随伴奏 K 歌,直播间的观众能听到主播和伴奏的歌声,还能看到歌词字幕。2018 年 5 月全民 K 歌上线了合唱直播的玩法,主播和嘉宾一起在线同唱同一首歌,直播间的观众能听到主播和嘉宾的合唱以及伴奏。

这些新的玩法都是对混音技术的深度应用。本文后面将对这两种玩法的逻辑展开讨论。

混音之前的处理

并非任何两路音频流都可以直接混合。两路音视频流,必须符合以下条件才能混合:

  • 格式相同,要解压成 PCM 格式。
  • 采样率相同,要转换成相同的采样率。主流采样率包括:16k Hz、32k Hz、44.1k Hz 和 48k Hz。
  • 帧长相同,帧长由编码格式决定,PCM 没有帧长的概念,开发者自行决定帧长。为了和主流音频编码格式的帧长保持一致,推荐采用 20ms 为帧长。
  • 位深(Bit-Depth)或采样格式 (Sample Format) 相同,承载每个采样点数据的 bit 数目要相同。
  • 声道数相同,必须同样是单声道或者双声道 (立体声)。这样,把格式、采样率、帧长、位深和声道数对齐了以后,两个音频流就可以混合了。

在混音之前,还需要做回声消除、噪音抑制和静音检测等处理。回声消除和噪音抑制属于语音前处理范畴的工作。在编码之前,采集、语音前处理、混音之前的处理、混音和混音之后的处理应该按顺序进行。静音抑制(VAD,Voice Activity Detect)可做可不做。对于终端混音,是要把采集到的主播声音和从音频文件中读到的伴奏声音混合。如果主播停顿一段时间不发出声音,通过 VAD 检测到了,那么这段时间不混音,直接采用伴奏音乐的数据就好了。然而,为了简单起见,也可以不做 VAD。主播不发声音的期间,继续做混音也可以(主播的声音为零振幅)。

基础混音算法

我们的周遭环境就是个天然的混音场,各种声波在空气中传播,相互叠加,传入到我们的耳朵里。不同声波在空气中的振幅叠加是线性的,因此,在混音算法中,音频采样数据表征声音的振幅,音频数据的叠加也是线性的。然而,我们需要考虑两方面的因素:

混合权重

两个音频流的振幅表示声音的能量水平,然而两个声音可能一个很大,一个很小,对比悬殊。在混音的时候,从用户听音的主观感受来说,是希望两个声音混合后听起来比较均衡。因此,混音算法要考虑两个声音振幅的权重,或者说调节音量。

实践经验表明,采集到的主播声音相对比较小,而文件读取的音频声音比较大,推荐保持主播的声音音量不变,而调节伴奏音乐的音量到一个比较合适的水平,然后再混合。

 

溢出处理

两个音频流的两个对应的采样点的数据线性相加可能会造成溢出。每一个音频采样点的数据由 16bit,也就是 2 个字节来表示,能够表示的有符号整型数的范围是 -32768~32767。

两个音频流的两个对应的采样点由两个 16bit 的整数表示,这两个整数相加可能会溢出,向上溢出或者向下溢出。因此,混音算法要能够处理溢出的情况。溢出处理的方法有很多,这里只提一种:直接加和并且钳位,加和后往上溢出的话,就采用最大正值(32767),如果往下溢出,就采用最大负值(-32768)。

混音之后的处理

混音处理以后,要做溢出检测,针对溢出的采样点做溢出处理。也可以做一些平滑处理的操作,不过这不是必要的。混音的效果好不好,最终还是要以用户的主观听感来做判断标准。

混音技术一般不会单独使用。在视频直播场景中,往往是和其它一些技术混合使用。比如说,K 歌直播场景中,用到的技术包括混音技术,歌词与媒体同步传输技术。合唱直播场景中,用到的技术包括混音技术,连麦直播技术等。多种技术的灵活组合使用,就能创造出让主播和用户喜爱的玩法,拉升直播平台的用户活跃度。

混音与 KTV 直播

KTV 直播,也就是线上 K 歌房的玩法,真实地还原了线下 K 歌房的玩法。举个例子,小明是个麦霸,周末想去 K 歌房 K 歌,可是朋友们都没空,约不到人一起 K 歌。于是小明就通过手机或者 PC,进入线上的 K 歌房,房间里有和小明一样的其它用户。和其它用户一样,小明要排队轮流上麦 K 歌,在上麦之前要点好要唱的歌曲。K 歌的时候,小明能听到伴奏和看到歌词,其它同在 K 歌房的用户能听到小明的歌声和伴奏,还能看到同步的歌词,完美地还原了线下 K 歌房的体验。这样,小明就算约不到朋友,也可以在线上 KTV 找到网友一起 K 歌。

从技术的角度来看,本质上 KTV 直播是在视频直播的基础上,混音技术和媒体通道传数据技术的应用。混音技术在上面已经详细介绍,媒体通道传数据技术就是在媒体通道内传输数据信息,比如说歌词等信息。下图展示了 KTV 直播的技术架构:

KTV 直播的技术架构图

在歌手的终端,歌手的歌声和伴奏音乐被混合,和歌手的视频一起编码成音视频流推送到实时传输网络。这是混音技术,前面已经介绍过。歌词信息和音视频信息是在同一个媒体通道传输的,这样可以保障歌词和音视频同步。这就是媒体通道传数据技术,可以被应用到 KTV 直播,还有直播答题和在线教育等场景。大概的业务流程如下:

  • 歌手端从伴奏音乐库下载伴奏音乐和歌词信息,并实时播放;
  • 歌手演唱,歌手端采集歌手的歌声和视频画面;
  • 歌声和伴奏被混音,形成单一的音频流;
  • 歌词信息和音视频数据一起被编码;
  • 音视频流和歌词信息同步被推送到实时传输网络;
  • 音视频流经过实时传输网络加速,转发到内容分发网络;
  • 轮麦的用户从实时传输网络拉流播放,歌声和歌词同步;
  • 普通的用户从内容分发网络拉流播放,歌声和歌词同步。

这是典型的视频直播场景,再加上混音技术和媒体通道传数据技术结合,真实地还原线下 KTV 的效果。

混音与合唱直播

合唱直播,其实是 KTV 直播加上合唱的场景,真实地还原了在线下 K 歌房中合唱的玩法。合唱直播,指的是两个或者以上的用户,随着伴奏看着歌词一起 K 歌。合唱直播和 KTV 直播的关键区别在于,有两个或者以上的用户一起 K 歌,混音的场所(在哪个终端?是终端还是云端?)是考虑的关键,最终要让歌声、伴奏和歌词同步。KTV 直播混音的场所是歌手端设备,而合唱直播的混音场所可以是歌手端设备,也可以是云端,要根据不同的方案而定。

去年 11 月,马云和王菲合唱一首《风清扬》,作为《功守道》的主题曲,成了刷爆朋友圈的热点。如果马云和王菲使用合唱直播技术在线上合唱的话,效果图大概如下:

从技术的角度来看,本质上合唱直播是在视频直播的基础上,混音技术、媒体通道传数据技术甚至加上连麦直播技术的应用。

一般来说,合唱直播有两种方案:

方案一

两个歌手不连麦,混音在终端完成,歌声、伴奏和歌词严格同步,但是只有一个歌手能听到另外一个歌手的歌声。方案一的架构图如下:

这里以马云和王菲线上合唱为例,来说明方案一的业务逻辑:

  • 王菲的手机从音乐库下载 MV 播放,包含伴奏音乐、MV 视频和歌词;
  • 王菲伴随着伴奏音乐演唱,歌声和伴奏音乐混音,形成音视频流 X 推送到实时传输网络;
  • 马云的手机从实时网络拉取音视频流 X 播放,伴奏音乐包含王菲的歌声和 MV 伴奏;
  • 马云伴随着伴奏音乐演唱,歌声和伴奏被混音,形成音视频流 Y 推送到实时传输网络;
  • 音视频流 Y 经过实时传输网络加速后,被转推内容分发网络(CDN)进行分发;
  • 直播间的观众从内容分发网络拉取音视频流 Y 播放。

至此,直播间的观众能听到马云和王菲合唱的歌声,好像他们两个就是在同一个 KTV 里面合唱一样。方案一的优点是,两位歌手的歌声、画面和歌词严格同步,观众的体验最优;不足是,王菲听不到马云的歌声,而马云能听到王菲的歌声,两位歌手没有连麦,缺乏互动。

方案二

两个歌手连麦,混音在云端完成,两个歌手能相互听到对方的歌声,但是歌声、伴奏和歌词难以做到严格同步。方案二的架构图如下:

这里以歌手 A 和歌手 B 合唱为例,来说明方案二的业务逻辑:

  • 歌手 A 从音乐库下载伴奏音乐和歌词,歌手 B 同样;
  • 歌手 A 随着伴奏音乐和字幕演唱,歌手 B 同样;
  • 歌手 A 把采集到的歌声和视频,封装成音视频流,推送到实时网络,歌手 B 同样;
  • 歌手 A 从实时网络拉取歌手 B 的音视频流播放,歌手 B 同样,两个歌手实现连麦互动;
  • 在云端把歌手 A 的歌声、歌手 B 的歌声、伴奏音乐混音,封装成音视频流;
  • 在云端把歌词加入音视频流的媒体通道传输;
  • 在云端把音视频流转推内容分发网络;
  • 观众们从内容分发网络拉取音视频流播放。

这样可以实现全互动的合唱直播,好像歌手 A 和歌手 B 就在同一个 K 歌房里合唱一样:

  • 歌手 A 和歌手 B 相互能听到对方的歌声;
  • 歌手 A 和歌手 B 跟随着伴奏一起演唱;
  • 观众们能听到歌手 A 和歌手 B 合唱,歌声和伴奏还有歌词大致同步。

方案二的优点是互动感强,两位歌手能相互听到对方的歌声,歌手的体验最优;不足是两位歌手的歌声、伴奏还有歌词很难做到严格同步,原因是两个歌手的歌声、还有伴奏的音乐(三者对应的时间戳)抵达云端的时间难以做到完全一致,受到网络延迟的影响较大。网络状况好的情况下,同步效果较好,和方案一相当,网络不好的情况下,不同步的情况就比较明显。

总结  

混音技术作为一项技术,常常被和其它技术灵活组合,来实现具体场景中的玩法创新。上面提到的 KTV 直播和合唱直播都是混音技术的具体应用。视频直播作为一个综合的应用场景,随着技术和业务的发展,逐渐衍生出众多的微场景,包括上面提到的两个微场景。在视频直播微场景需求的驱动下,各种音视频技术点灵活组合能衍生出各种技术方案。

转载于:https://my.oschina.net/u/3747019/blog/1929579

视频直播新玩法中绕不开的混音技术相关推荐

  1. 实时音视频直播新玩法中的混音技术

    作者|冼牛 编辑|覃云 最近半年,视频直播领域中产生不少创新玩法,其中包括 K 歌直播和合唱直播.这些创新玩法都用到实时音频混音技术.今天我们来聊一下混音技术的实现,及其在创新玩法中的应用. 混音的应 ...

  2. 直播新玩法背后的音视频技术演进

    点击上方"LiveVideoStack"关注我们 近年来,直播改变了许多行业模式,其形态在不断的演进中也逐渐丰富起来.直播在字节跳动中衍生出了KTV歌房.直播答题.互动游戏.电商拍 ...

  3. 在线佳能计算机,佳能相机秒变电脑摄像头 高画质直播新玩法

    原标题:佳能相机秒变电脑摄像头 高画质直播新玩法 出自蜂鸟网-器材,原文链接:https://m.fengniao.com/document/5362626.html 随着网络直播与在线视频会议的飞速 ...

  4. 视频直播合唱玩法上线,K歌直播平台迎来新场景

    5月,全民K歌上线了视频直播合唱功能. 在深圳工作的小白,可以和远在老家黑龙江的好友实时视频合唱一首抖音热曲<纸短情长>,还邀请共同的朋友进来围观,联络感情. 职业主播瑶瑶,每天固定时间在 ...

  5. 从天鸽互动收购无他相机,看网络直播新玩法

    前两年迅速崛起的网络直播正从狂热期步入成熟期,在此背景之下,一些融资不到位.市场份额无优势的平台先后倒闭,而YY.陌陌.天鸽互动却晋升为网络直播的三巨头.而从产品和服务层面来看,消费者需求的多元化以及 ...

  6. 超级直播sop直播源.zip_双11首场虚拟直播,天猫超级直播开创直播新玩法

    10月31日,天猫超级品牌日的直播创新玩法产品--天猫超级直播携手国际化创意工作室LINE FRIENDS举办了一场具有行业创新性和前瞻性的虚拟直播,这也是天猫超级直播首次正式与商家和消费者见面,借助 ...

  7. 直播小程序推出,解锁2018微信直播新玩法

    2016年以来,在互联网科技的推动下直播行业迅速发展,直播逐渐作为一种商业工具深入人们生活和工作中.直播在垂直领域深耕或成为头部直播平台的发展方向,例如"直播+电商"," ...

  8. 大型直播新玩法:会控+导播一体化直播室

    随着社会和经济的发展,人与人之间沟通的速度.跨度.深度和广度都有了更进一步的要求.而伴随着疫情的影响,在线会议的使用需求日益迫切.实时性和高清画面带来的沉浸式交流也成了在线会议风靡大众的原因. 然而实 ...

  9. 抖音淘客直播新玩法,产品免费送,也能月赚几万元

    前段时间分享了抖音一元直播秒杀卖货的方法.后来抖音限制了低价高邮费的方式. 但是现在又出现了新的直播卖货方法,更加的暴力,更加的简单.产品免费送,还能月赚几万元. 大体流程就是找高佣金的淘客产品,然后 ...

最新文章

  1. 路由器配置实践 教你如何在Linux中三台主机两个网段互相通信
  2. 关于android从入门到精通4.1.9范例1出现的闪退的问题
  3. 深度学习的150多篇文章和10多个专栏推荐
  4. 三行代码让你的博客访问量上百万
  5. JSTL标签引入(web基础学习笔记十八)
  6. mysql 关联查询_响应时间长?MySQL查询优化教程来了!
  7. 上下界网络流-无源汇可行流与有源汇最大流
  8. Nature | 基于66种癌症类型训练机器学习模型,绘制癌症基因潜在驱动突变图谱...
  9. react 改变css样式_web前端入门到实战:编写CSS代码的8个策略,资深开发工程师总结...
  10. [译] 五个小技巧让你写出更好的 JavaScript 条件语句
  11. 如何下载火山安卓软件开发平台
  12. 网页设计的常用字体规范
  13. 三星android rom开发者,三星s10刷机包安卓10(极光AuroraROM 13.0)
  14. 0.88mm液晶拼接屏在会议显示中的优势分析
  15. 基于Python将图片转换成素描图片
  16. 数据加工(一)-------数据抽取
  17. 什么蓝牙耳机最好用?公认好用性价比高的蓝牙耳机推荐
  18. 流行的框架Nohttp到来,让我们见证封装好的Nohttp详细使用步骤吧
  19. 论文参考文献中括号+数字转上标
  20. 深入分析JavaWeb 44 -- Struts2开发核心之动作类Action

热门文章

  1. 微型计算机接口与技术期末,微机原理与接口技术期末考试试题与答案
  2. 如何选择合适的前端框架,告别选择恐惧症
  3. 《中国古代文学III(元明清)》
  4. 从ST官网获取最新的标准外设库
  5. 2017年【计算机视觉+机器学习+人工智能】领域重要会议 汇总
  6. 朱小坤:以科学发展观引领天工国际逆势跨越发展
  7. linux进去vi编辑器执行c语言代码,VI编辑器的使用与Linux操作系统下C语言的使用...
  8. java毕业设计基于的校园头条新闻管理系统的设计与实现mybatis+源码+调试部署+系统+数据库+lw
  9. Abaqus GUI程序开发之常用控件使用方法(八):快捷键设置
  10. 微信小程序中使用vant框架