具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的首选实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本发明从服务端角度实施的在线演唱会大合唱的方法实施例1:
为了实现在线演唱会万人大合唱功能,增强在线直播互动性,本发明提供了一种从服务端角度实施的在线演唱会大合唱的方法实施例1,如图1所示,可以包括以下步骤:
步骤S110:发送主播客户端发起的合唱指令;
步骤S120:接收观众客户端发送的观众音频数据和主播客户端发送的主播音频数据;观众客户端为响应合唱指令的客户端;观众音频数据和主播音频数据为根据所属客户端的音频录入设备采集的添加了时间标记的音频数据;时间标记为根据当前播放的合唱音频的时间点而生成的;
步骤S130:根据接收到的主播音频数据和所有观众音频数据的时间标记,对观众音频数据和播音频数据进行同步合成处理,得到最终合唱流;
步骤S140:将最终合唱流分别发送给主播客户端和各观众客户端。
在一个具体的实施例中,步骤S120具体为:主播客户端通过音频录入设备录入音频数据;并根据当前播放的合唱音频的时间点,在该音频数据上添加时间标记,得到添加了时间标记的主播音频数据;而响应了上述合唱指令的观众客户端,可以通过音频录入设备录入音频数据;并根据当前播放的合唱音频的时间点,在该音频数据上添加时间标记,得到添加了时间标记的观众音频数据,其中,观众客户端和主播客户端需要在一个频道中。另外,服务端需检测接收到的观众音频数据是否异常,若异常,可以屏蔽掉该异常的观众音频数据。
此外,在一个具体的实施例中,当前播放的合唱音频的时间点可以为当前合唱音频的伴奏播放和/或歌词播放的时间点,而当前播放的合唱音频即为在线演唱会的后台***服务端当前播放的由主播和观众一起合唱的歌曲或伴奏音乐;而本发明中的音频录入设备可以包括麦克风等各种类型的录入设备。
在一个具体的实施例中,步骤S130具体包括:
将主播音频数据以及多个观众客户端发布的观众音频数据先送达给同一台调度服务器,由调度服务器衡量计算服务器群中各个流媒体服务器空闲程度,并根据空闲情况,将音频数据调度给具体的流媒体服务器进行处理,一台流媒体服务器可以处理多个音频数据,目的是合成多个音频数据形成最终合唱流。其中调度服务器只做音频数据的分配,不做具体的音频数据处理操作。在一个具体示例中,上述大数据同步处理主要是指采用服务端中的服务器群对成千上万的音频数据处理合成的过程,不仅处理量大,且需要部署的服务器数量众多,区别于小平台的数据处理量。
在一个具体的实施例中,步骤S140中将最终合唱流分别发送给主播客户端和各观众客户端的步骤具体包括:
对最终合唱流进行模拟混响处理,得到模拟混响后的最终合唱流;也可以同时对合唱流中音量太小或者太刺耳的噪音进行处理(降噪处理),以减小进行同步合成处理的服务器的处理压力;将处理后的最终合唱流分别发送给主播客户端和各观众客户端。而在一个具体示例中,混响效果的实现可以采用软件gaudio(基于C/C++混合编程的跨平台音频库)。而步骤S150具体可以在流媒体服务器上完成:当中观众和主播音频数据同步合成为一条最终合唱流之后,将其发送给流媒体服务器,由流媒体服务器派发到各观众和主播客户端,进行播放,听到合唱。
图2为本发明从服务端角度实施的在线演唱会大合唱的方法实施例1的应用场景示意图,如图2所示:本发明应用于在线演唱会期间互动环节,可以通过主播客户端发起合唱指令,响应合唱指令的观众客户端跟着当前播放的合唱音频的时间点参与合唱;每位观众客户端(图2中分别为观众客户端-1、观众客户端-2以及观众客户端-3等)的音频录入设备录入一条添加了时间标记的观众音频数据(图2中分别为观众音频数据-1、观众音频数据-2以及观众音频数据-3等)发送给相应服务器;服务器程序根据时间标记,在服务端将观众合唱流与主播音频数据作同步处理,实时合成最终合唱流返回给各客户端播放,从而使观众和主播在一边录入音频数据的同时,一边实时听到现场大合唱的播放效果。
具体而言,主播在主播客户端界面点击发起合唱指令并发送给观众客户端,观众客户端显示“加入合唱”按钮;观众点击加入合唱后,观众客户端界面显示“打开麦克风”,同意***调用电脑麦克风或其它类型的音频录入设备;观众通过麦克风(或其它音频录入设备)进行录音(录音音频依据当前播放的合唱音频的时间点添加了时间标记),同时观众客户端界面显示合唱歌词,提示状态“正在合唱”;***服务器处理观众和主播的声音,同步合成得到合唱流,并实时返回给各客户端播放,从而通过客户端听到合唱效果。
本发明在线演唱大合唱的方法,在服务端实现的实施例1能够实现在线演唱会万人大合唱功能,增强了在线直播互动性,实时的利用大数据处理合成万人语音,加快处理音频的速率,增加处理音频的数量,区别于一对一的合唱或完全录入一段音频后再播放的合唱,而是在录入音频的同时,实时的播放合唱,让更多的观众能参与到活动中来。
本发明从服务端角度实施的在线演唱会大合唱的方法实施例2;
为了实现在线演唱会万人大合唱功能,增强在线直播互动性,本发明还提供了一种从服务端角度实施的实施例2,该服务端包括服务器群;实施例2与上述实施例1的主要区别在于:本实施例2为服务器群中的服务器程序根据时间标记,实时合成观众合唱流后,再在服务端与主播音频数据作同步处理,得到最终合唱流;这种获得最终合唱流的方法一方面能够增大本发明对音频数据的处理量,提高处理速度,大大减少录入音频数据和播放合唱流之间的时间差,增加实时播放合唱的真实效果;另一方面也能够增强最终合唱流中所有音频数据同步的准确性,保证合成数据的一致。在本实施例2中观众客户端和主播客户端需要在一个频道中。
图3为本发明从服务端角度实施的在线演唱会大合唱的方法实施例2的流程示意图;如图3所示,可以包括以下步骤:
步骤S330:检测接收到的观众音频数据是否异常,若异常,屏蔽异常的观众音频数据;
步骤S340:检测服务端中各流媒体服务器的空闲状态,并根据各流媒体服务器的空闲状态,将观众音频数据调度给相应的流媒体服务器;由流媒体服务器根据观众音频数据的时间标记,对观众音频数据进行同步合成处理,得到添加了时间标记的观众合唱流;
步骤S350:将观众合唱流和主播音频数据发送给同步处理服务器,由同步处理服务器根据观众合唱流和主播音频数据的时间标记,对观众合唱流和主播音频数据进行同步合成处理,得到最终合唱流;同步处理服务器包括C++服务器。
在一个具体的实施例中,步骤S340对接收到的所有观众音频数据进行合成处理,得到添加了时间标记的观众合唱流的步骤具体包括:
检测服务端中服务器群的各流媒体服务器的空闲状态,并根据各流媒体服务器的空闲状态,将观众音频数据调度给相应的流媒体服务器进行大数据同步和合成处理,得到观众合唱流。
具体而言,多个观众客户端发布的观众音频数据先到达同一台调度服务器,由调度服务器衡量计算服务器群中各个流媒体服务器空闲程度,并根据空闲情况,将观众音频数据调度给具体的流媒体服务器进行处理,一台流媒体服务器可以处理多个音频数据,目的是合成包括多个音频数据的观众合唱流,而根据多个音频数据的时间标记,可以得到添加了时间标记的观众合唱流。其中调度服务器只做音频数据的分配,不做具体的音频数据处理操作。在一个具体示例中,上述大数据同步处理主要是指采用服务端中的服务器群对成千上万的音频数据处理合成的过程,不仅处理量大,且需要部署的服务器数量众多,区别于小平台的数据处理量。
在一个具体的实施例中,步骤S350中根据观众合唱流和主播音频数据的时间标记,对观众合唱流和主播音频数据进行合成处理,得到最终合唱流的步骤具体包括:
将观众合唱流和主播音频数据发送给同步处理服务器,由同步处理服务器根据观众合唱流和主播音频数据的时间标记,对观众合唱流和主播音频数据进行同步时间的合成处理,得到最终合唱流;该同步处理服务器包括C++(在C语言的基础上开发的一种通用编程语言)服务器。而同步处理服务器的主要实现流程为:根据观众合唱流和主播音频数据中添加的时间标记,同步时间,让主播和观众所唱的歌词和/或伴奏的进度尽量重合,达到合唱的效果。在一个具体示例中,流媒体服务器还可以对合唱流中音量太小或者太刺耳的噪音提前进行处理(降噪处理),以减小同步处理服务器的处理压力。
图4为本发明在线演唱会大合唱的方法从服务端角度实施的实施例2的应用示意图;如图4所示:通过主播客户端发起合唱指令,响应合唱指令的观众客户端跟着当前播放的合唱音频的时间点参与合唱;每位观众客户端(图4中分别为观众客户端-1、观众客户端-2以及观众客户端-3等)的音频录入设备录入一条添加了时间标记的观众音频数据(图4中分别为观众音频数据-1、观众音频数据-2以及观众音频数据-3等)发送给相应服务器;服务器程序根据时间标记,实时合成观众合唱流后,在服务端与主播音频数据作同步处理,得到最终合唱流,将最终合唱流实时返回给各客户端播放,从而使观众和主播在录入音频的同时听到现场大合唱的播放效果。
本发明从客户端角度实施的在线演唱会大合唱的方法中实施例1:
为了实现在线演唱会万人大合唱功能,增强在线直播互动性,本发明还提供了一种从客户端角度实施的在线演唱会大合唱的方法实施例1,如图5所示,可以包括以下步骤:
步骤S510:主播客户端向服务端发起合唱指令;
步骤S520:各观众客户端接收服务端转发的合唱指令;
步骤S530:主播客户端的音频录入设备采集添加了时间标记的主播音频数据;响应合唱指令的观众客户端在接收到录入指令时,通过音频录入设备采集添加了时间标记的观众音频数据;时间标记为根据当前播放的合唱音频的时间点而生成的;
步骤S540:发送主播音频数据和各观众音频数据;
步骤S550:接收最终合唱流;最终合唱流为服务端根据主播音频数据和各观众音频数据的时间标记,对主播音频数据和所有观众音频数据进行同步合成处理后得到的最终合唱流。
其中,在一个具体的实施例中,步骤S530具体为:主播客户端通过音频录入设备录入音频数据;并根据当前播放的合唱音频的时间点,在该音频数据上添加时间标记,得到添加了时间标记的主播音频数据;而响应了上述合唱指令的观众客户端接收到观众发出的录入指令,连接观众客户端的音频录入设备需要根据录入指令来录入音频数据(若观众选择不录入,音频录入设备无法录入音频数据);并根据当前播放的合唱音频的时间点,在该音频数据上添加时间标记,得到添加了时间标记的观众音频数据;其中,观众客户端和主播客户端需要在一个频道中,而时间标记可以根据当前播放的合唱音频的时间点而生成。
此外,在一个具体的实施例中,当前播放的合唱音频的时间点可以为当前合唱音频的伴奏播放和/或歌词播放的时间点,而当前播放的合唱音频即为在线演唱会的后台***服务端当前播放的由主播和观众一起合唱的歌曲或伴奏音乐;而本发明中的音频录入设备可以包括麦克风等各种类型的录入设备。
在一个具体的实施例中,步骤S550中的最终合唱流可以采用本发明从服务端角度实施的在线演唱会大合唱的方法实施例1或实施例2中的方式来获取。
在一个具体的实施例中,步骤S550后还可以包括主播客户端和各观众客户端分别对接收到的最终合唱流进行模拟混响和/或降噪处理后播放。而在客户端实现混响和/或降噪效果,能够减少服务端***服务器的压力,提高合唱音色音质。在一个具体的示例中,客户端可以采用软件gaudio(基于C/C++混合编程的跨平台音频库)来实现混响效果。
本发明从客户端角度实施的在线演唱会大合唱的方法中实施例1通过主播客户端发起合唱指令,响应合唱指令的观众客户端跟着当前播放的合唱音频的时间点参与合唱;每位观众客户端的音频录入设备录入一条添加了时间标记的观众音频数据发送给相应服务器;服务器程序则根据时间标记,在服务端与主播音频数据作同步处理,实时合成合唱流后,返回给各客户端播放,从而使观众和主播听到现场大合唱的播放效果;从而实现在线演唱会万人大合唱功能,增强了在线直播互动性,采用大数据处理合成万人语音,区别于一对一的合唱,能够一边录入一边实时播放合唱,让更多的观众能参与到活动中来。
本发明在线演唱会大合唱的***实施例1:
为了实现在线演唱会万人大合唱功能,增强在线直播互动性,本发明还提供了一种在线演唱会大合唱的***实施例1;大合唱***可以包括主播客户端、观众客户端以及服务端,其中,观众客户端和主播客户端需要在一个频道中,如图6所示,服务端可以包括:
第一发送单元10,用于发送主播客户端发起的合唱指令;
接收单元20,用于接收观众客户端发送的观众音频数据和主播客户端发送的主播音频数据;观众客户端为响应合唱指令的客户端;观众音频数据和主播音频数据为根据所属客户端的音频录入设备采集的添加了时间标记的音频数据;时间标记为根据当前播放的合唱音频的时间点而生成的;
合成单元30,用于根据接收单元20接收到的主播音频数据和所有观众音频数据的时间标记,对观众音频数据和主播音频数据进行同步合成处理,得到最终合唱流;
第二发送单元40,用于将最终合唱流分别发送给主播客户端和各观众客户端。
在一个具体的实施例中,合成单元30包括:
调度服务器310,用于检测服务端中各流媒体服务器的空闲状态,并根据各流媒体服务器的空闲状态,将观众音频数据调度给相应的流媒体服务器;
流媒体服务器320,用于根据观众音频数据的时间标记,对调度来的观众音频数据进行同步合成处理,得到添加了时间标记的观众合唱流。
在一个具体的实施例中,合成单元30还包括:
同步处理服务器330,用于根据观众合唱流和主播音频数据的时间标记,对观众合唱流和主播音频数据进行同步时间的合成处理,得到最终合唱流;同步处理服务器包括C++服务器。
在一个具体的实施例中,本发明在线演唱会大合唱的***实施例1还包括:
检测单元,用于检测接收单元20接收到的观众音频数据是否异常;
屏蔽单元,用于在检测单元的检测结果为是时,屏蔽上述异常的观众音频数据;
音频处理单元,用于对最终合唱流进行模拟混响和/或降噪处理,得到模拟混响和/或降噪后的最终合唱流。
在一个具体的实施例中,本发明在线演唱会大合唱的***实施例1的具体工作过程可以是如下所述:
第一发送单元10发送主播客户端发起的合唱指令;
接收单元20接收观众客户端发送的观众音频数据和主播客户端发送的主播音频数据;在一个具体的实施例中,主播客户端通过音频录入设备录入音频数据;并根据当前播放的合唱音频的时间点,在该音频数据上添加时间标记,得到添加了时间标记的主播音频数据;而响应了上述合唱指令的观众客户端,通过音频录入设备录入音频数据;并根据当前播放的合唱音频的时间点,在该音频数据上添加时间标记,得到添加了时间标记的观众音频数据。接收单元20可以实时接收观众客户端发送的观众音频数据和主播客户端发送的主播音频数据。
此外,在一个具体的实施例中,当前播放的合唱音频的时间点为当前合唱音频的伴奏播放和/或歌词播放的时间点,而当前播放的合唱音频即为在线演唱会的后台***服务端当前播放的由主播和观众一起合唱的歌曲或伴奏音乐;而本发明中的音频录入设备可以包括麦克风等各种类型的录入设备。
合成单元30根据接收到的主播音频数据和所有观众音频数据的时间标记,对观众音频数据和主播音频数据进行同步合成处理,得到最终合唱流;
一方面,在一个具体的实施例中,合成单元30可以由调度服务器310检测服务器群中各流媒体服务器320的空闲状态,并根据各流媒体服务器的空闲状态,将观众音频数据调度给相应的流媒体服务器320进行大数据同步和合成处理,得到观众合唱流。
具体而言,多个观众客户端发布的观众音频数据先到达同一台调度服务器,由调度服务器衡量计算服务器群中各个流媒体服务器空闲程度,并根据空闲情况,将观众音频数据调度给具体的流媒体服务器进行处理,一台流媒体服务器可以处理多个音频数据,目的是合成多个音频数据形成观众合唱流。其中调度服务器只做音频数据的分配,不做具体的音频数据处理操作。在一个具体示例中,上述大数据同步处理主要是指采用服务器群对成千上万的音频数据处理合成的过程,不仅处理量大,且需要部署的服务器数量众多,区别于小平台的数据处理量。
然后,合成单元30根据观众合唱流和主播音频数据的时间标记,对观众合唱流和主播音频数据进行同步合成处理,得到最终合唱流;
在一个具体的实施例中,将观众合唱流和主播音频数据发送给同步处理服务器330,同步处理服务器330可以根据观众合唱流和主播音频数据的时间标记,对观众合唱流和主播音频数据进行同步时间的合成处理,得到最终合唱流;在一个具体的实施例中,同步处理服务器330可以为C++(在C语言的基础上开发的一种通用编程语言)服务器。同步处理服务器330根据观众和主播音频数据中的时间标记,同步时间,让主播和观众所唱的歌词和/或伴奏的进度尽量重合,达到合唱的效果。
第二发送单元40将最终合唱流分别发送给主播客户端和各观众客户端,在一个具体的示例中,第二发送单元40可以是流媒体服务器,当观众和主播音频数据同步合成为一条最终合唱流之后,发往流媒体服务器,由流媒体服务器派发到各观众和主播客户端,由各观众和主播客户端进行播放,听到合唱。
在一个具体的实施例中,音频处理单元可以对最终合唱流进行模拟混响和/或降噪处理,得到模拟混响和/或降噪后的最终合唱流;第二发送单元40将模拟混响后的最终合唱流分别发送给主播客户端和各观众客户端。而在一个具体示例中,音频处理单元可以采用软件gaudio(基于C/C++混合编程的跨平台音频库)实现混响效果。
在一个具体的实施例中,为了减少服务端***服务器的压力,提高合唱音色音质,可以通过主播客户端和各观众客户端分别对接收到的最终合唱流进行模拟混响和/或降噪处理后再进行播放。在一个具体的示例中,客户端可以采用软件gaudio(基于C/C++混合编程的跨平台音频库)来实现混响效果。
本发明在线演唱会大合唱的***实施例1通过主播客户端发起合唱指令,响应合唱指令的观众客户端跟着当前播放的合唱音频的时间点参与合唱;每位观众客户端的音频录入设备录入一条添加了时间标记的观众音频数据发送给相应服务器;服务器程序根据时间标记,在服务端与主播音频数据作同步处理(或首先生成观众合唱流,然后同步合成观众合唱流与主播音频数据后,得到最终合唱流),实时合成合唱流后返回给各客户端播放,从而使观众和主播听到现场大合唱的播放效果;从而实现在线演唱会万人大合唱功能,增强了在线直播互动性,实时的利用大数据处理合成万人语音,加快处理音频的速率,增加处理音频的数量,区别于一对一的合唱或完全录入一段音频后再播放的合唱,而是在录入音频的同时,实时的播放合唱,让更多的观众能参与到活动中来。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。