具体实施方式
以下针对本发明伴奏/原唱音频数据切换方法和***的各实施例进行详细的描述。
如图1所示,为本发明伴奏/原唱音频数据切换方法其中一个实施例的流程示意图,包括步骤:
步骤S101:获取单声道的原唱音频文件和单声道的伴奏音频文件及其对应的音频格式;
本步骤目的是为了得到原唱的单声道文件和伴奏的单声道文件及其对应的音频格式。
存储的原唱文件和伴奏文件不一定是单声道的,则需要将其转换为单声道文件,即在步骤S101之前,还可以包括:
将原唱音频数据和伴奏音频数据分别保存为原唱文件和伴奏文件;
将所述原唱文件和所述伴奏文件分别转为单声道文件,获得单声道的原唱音频文件和单声道的伴奏音频文件。
将双声道文件转为单声道文件的方法有很多种,比如,可以采用软件adobeaudition3.0实现。
步骤S102:根据所述音频格式将所述原唱音频文件和所述伴奏音频文件进行交替排列,并合并为双声道音频文件;
本步骤目的是为了将两份单声道文件合并为一份双声道文件。采用交替排列的方式,比如奇数组排列原唱音频文件,偶数组排列伴奏音频文件,从而可以实现左声道为原唱,右声道为伴奏。当然,作为另一种实施方式,也可以是左声道为伴奏,右声道为原唱。
步骤S103:采用两个声道单独编码的模式对所述双声道音频文件进行编码,获得编码文件;
可以采用多种方式进行编码,比如MP3、aac等。在声道信息中,可以包括stereo模式、joint stereo模式、double channel模式、single channel模式等。在编码的时候,为了避免单声道和双声道的混杂,需要避开joint stereo模式,即可以在编码的时候选择两个声道单独编码的模式进行编码。
步骤S104:将所述编码文件发送至客户端,其中,客户端是用于对所述编码文件进行解码并切换播放的客户端。
本步骤可以将编码文件发送至客户端,然后在客户端进行解码和播放。这里的客户端是播放伴奏文件和原唱文件的设备,比如各种影音伴唱机以及带影音伴唱功能的播放设备。
本实施例通过将原唱音频文件和伴奏音频文件按照原有的音频格式进行交替排列,从而合并为双声道音频文件。然后采用两个声道单独编码的模式对所述双声道音频文件进行编码,可以避免伴奏与原唱音频数据的混叠。最后将编码文件发送至客户端进行解码和播放。由于只需要发送一份文件至客户端即可实现伴奏和原唱音频数据的切换播放,对带宽要求低,从而提高了传输效率。并且,在客户端只需要对一份数据进行解码,提高了播放效率。
如图2所示,为本发明一个实施例中伴奏/原唱音频数据切换方法的应用环境图,包括:服务器210和多个客户端220。上述实施例是基于服务端进行的,即步骤S101至步骤S104可以在服务器内实现,然后将编码文件发送至客户端220,在客户端220内实现对编码文件进行解码并切换播放。
在其中一个实施例中,所述对所述编码文件进行解码并切换播放的步骤,包括:
A1:对所述编码文件进行解码;
A2:将解码后的文件进行分帧保存为原唱音频文件和伴奏音频文件;
A3:当接收到原唱指令时,将该原唱音频文件转换为双声道数据进行播放;
A4:当接收到伴奏指令时,将该伴奏音频文件转换为双声道数据进行播放。
该实施例的方案,还包括了在客户端上的方法,该方案基于服务端和客户端实现,即步骤S101至步骤S104可以在服务器内实现,A1至A4可以在客户端内实现。
进一步的,将原唱音频文件或伴奏音频文件转换为双声道数据进行播放的方法有很多种,比如在播放时,采用声卡将原唱音频文件或伴奏音频文件转换为双声道数据,即选择直接播放由声卡转。具体可以是,当接收到原唱指令时,采用声卡将原唱音频文件转换为双声道数据进行播放;当接收到伴奏指令时,采用声卡将伴奏音频文件转换为双声道数据进行播放。也可以将原唱音频文件或伴奏音频文件转换为双声道数据,采用播放器对双声道数据进行播放。即直接生成双声道数据送给播放器播放。具体可以是,当接收到原唱指令时,将原唱音频文件转换为双声道数据,采用播放器对双声道数据进行播放;当接收到伴奏指令时,将伴奏音频文件转换为双声道数据,采用播放器对双声道数据进行播放。
在其中一个实施例中,由于两个文件在录制编码过程中存在时差,需要进行时间规整对齐,即在步骤S102之前,还包括:
将所述原唱音频文件和所述伴奏音频文件分别划分成多个时间段的音频数据;
根据每个时间段的音频最大值确定原唱音频数据波形和伴奏音频数据波形;
获取所述原唱音频数据波形的轮廓和所述伴奏音频数据波形的轮廓;
比较两个轮廓的偏差距离,根据所述偏差距离将所述原唱音频文件和所述伴奏音频文件的时间点进行对齐。
步骤S102则将对齐后的原唱音频文件和所述伴奏音频文件进行合并为双声道音频文件。例如,如图3所示,为本发明伴奏/原唱音频数据切换方法另一个实施例的流程示意图,包括步骤:
步骤S301:获取单声道的原唱音频文件和单声道的伴奏音频文件及其对应的音频格式;
步骤S302:将所述原唱音频文件和所述伴奏音频文件分别划分成多个时间段的音频数据;
该步骤是将原唱音频文件划分为多个时间段的音频数据,将伴奏音频文件划分为多个时间段的音频数据,其中为了使后续比较轮廓更精确,两份文件划分的时间段数相同。
步骤S303:根据每个时间段的音频最大值确定原唱音频数据波形和伴奏音频数据波形;
可以根据原唱音频文件划分后得到的每个时间段的音频数据最大值获得原唱音频数据波形,根据伴奏音频文件划分后得到的每个时间段的音频数据最大值获得伴奏音频数据波形。
步骤S304:获取所述原唱音频数据波形的轮廓和所述伴奏音频数据波形的轮廓;
根据波形图可以采集其轮廓。
步骤S305:比较两个轮廓的偏差距离,根据所述偏差距离将所述原唱音频文件和所述伴奏音频文件的时间点进行对齐;
步骤S306:根据所述音频格式将对齐后的所述原唱音频文件和所述伴奏音频文件进行交替排列,并合并为双声道音频文件;
步骤S307:采用两个声道单独编码的模式对所述双声道音频文件进行编码,获得编码文件;
步骤S308:将所述编码文件发送至客户端,其中,客户端是用于对所述编码文件进行解码并切换播放的客户端。
本实施例采用轮廓偏差距离作为实际距离,根据实际距离将两份文件进行对齐,避免了录制过程中存在的时差。
根据上述伴奏/原唱音频数据切换方法,本发明还提供一种伴奏/原唱音频数据切换***,如图4所示,为本发明伴奏/原唱音频数据切换***其中一个实施例的结构示意图,包括获取模块410、合并模块420、编码模块430和发送模块440:
获取模块410,用于获取单声道的原唱音频文件和单声道的伴奏音频文件及其对应的音频格式;
获取模块410是为了得到原唱的单声道文件和伴奏的单声道文件及其对应的音频格式。
存储的原唱文件和伴奏文件不一定是单声道的,则需要将其转换为单声道文件,即所述***还包括:
第二存储模块,用于将原唱音频数据和伴奏音频数据分别保存为原唱文件和伴奏文件;
转换模块,用于将所述原唱文件和所述伴奏文件分别转为单声道文件,获得单声道的原唱音频文件和单声道的伴奏音频文件。
将双声道文件转为单声道文件的方法有很多种,比如,可以采用软件adobeaudition3.0实现。
合并模块420,用于根据所述音频格式将所述原唱音频文件和所述伴奏音频文件进行交替排列,并合并为双声道音频文件;
合并模块420将两份单声道文件合并为一份双声道文件。采用交替排列的方式,比如奇数组排列原唱音频文件,偶数组排列伴奏音频文件,从而可以实现左声道为原唱,右声道为伴奏。当然,作为另一种实施方式,也可以是左声道为伴奏,右声道为原唱。
编码模块430,用于采用两个声道单独编码的模式对所述双声道音频文件进行编码,获得编码文件;
可以采用多种方式进行编码,比如MP3、aac等。在声道信息中,可以包括stereo模式、joint stereo模式、double channel模式、single channel模式等。在编码的时候,为了避免单声道和双声道的混杂,需要避开joint stereo模式,即可以在编码的时候选择两个声道单独编码的模式进行编码。
发送模块440,用于将所述编码文件发送至客户端,其中,客户端是用于对所述编码文件进行解码并切换播放的客户端。
本实施例中,通过合并模块420将原唱音频文件和伴奏音频文件按照原有的音频格式进行交替排列,从而合并为双声道音频文件。然后编码模块430采用两个声道单独编码的模式对所述双声道音频文件进行编码,可以避免伴奏与原唱音频数据的混叠。最后发送模块440将编码文件发送至客户端进行解码和播放。由于只需要发送一份文件至客户端即可实现伴奏和原唱音频数据的切换播放,对带宽要求低,从而提高了传输效率。并且,在客户端只需要对一份数据进行解码,提高了播放效率。
如图2所示,为本发明一个实施例中伴奏/原唱音频数据切换方法的应用环境图,包括:服务器210和多个客户端220。其中,模块410至模块440可以设于服务器内。
在其中一个实施例中,还包括设于客户端的:
解码模块,用于对所述编码文件进行解码;
第一存储模块,用于将解码后的文件进行分帧保存为原唱音频文件和伴奏音频文件;
子播放模块,用于当接收到原唱指令时,将该原唱音频文件转换为双声道数据进行播放;当接收到伴奏指令时,将该伴奏音频文件转换为双声道数据进行播放。
进一步的,所述子播放模块用于:
在播放时,根据接收的原唱指令采用声卡将原唱音频文件转换为双声道数据,根据接收的伴奏指令采用声卡将伴奏音频文件转换为双声道数据;
或
根据接收的原唱指令将原唱音频文件转换为双声道数据,利用播放器对双声道数据进行播放,根据接收的伴奏指令将伴奏音频文件转换为双声道数据,利用播放器对双声道数据进行播放。
在其中一个实施例中,由于两个文件在录制编码过程中存在时差,需要进行时间规整对齐,即所述***还包括:
时间段划分模块,用于将所述原唱音频文件和所述伴奏音频文件分别划分成多个时间段的音频数据;
波形确定模块,用于根据每个时间段的音频最大值确定原唱音频数据波形和伴奏音频数据波形;
轮廓获取模块,用于获取所述原唱音频数据波形的轮廓和所述伴奏音频数据波形的轮廓;
时间点对齐模块,用于比较两个轮廓的偏差距离,根据所述偏差距离将所述原唱音频文件和所述伴奏音频文件的时间点进行对齐。
合并模块420则将对齐后的原唱音频文件和所述伴奏音频文件进行合并为双声道音频文件。例如,如图5所示,为本发明伴奏/原唱音频数据切换***另一个实施例的结构示意图,包括:
获取模块510,用于获取单声道的原唱音频文件和单声道的伴奏音频文件及其对应的音频格式;
时间段划分模块520,用于将所述原唱音频文件和所述伴奏音频文件分别划分成多个时间段的音频数据;
时间段划分模块520是将原唱音频文件划分为多个时间段的音频数据,将伴奏音频文件划分为多个时间段的音频数据,其中为了使后续比较轮廓更精确,两份文件划分的时间段数相同。
波形确定模块530,用于根据每个时间段的音频最大值确定原唱音频数据波形和伴奏音频数据波形;
波形确定模块530可以根据原唱音频文件划分后得到的每个时间段的音频数据最大值获得原唱音频数据波形,根据伴奏音频文件划分后得到的每个时间段的音频数据最大值获得伴奏音频数据波形。
轮廓获取模块540,用于获取所述原唱音频数据波形的轮廓和所述伴奏音频数据波形的轮廓;
时间点对齐模块550,用于比较两个轮廓的偏差距离,根据所述偏差距离将所述原唱音频文件和所述伴奏音频文件的时间点进行对齐;
合并模块560,用于根据所述音频格式将对齐后的所述原唱音频文件和所述伴奏音频文件进行交替排列,并合并为双声道音频文件;
编码模块570,用于采用两个声道单独编码的模式对所述双声道音频文件进行编码,获得编码文件;
发送模块580,用于将所述编码文件发送至客户端,其中,客户端是用于对所述编码文件进行解码并切换播放的客户端。
本实施例采用轮廓偏差距离作为实际距离,根据实际距离将两份文件进行对齐,避免了录制过程中存在的时差。
本领域普通技术人员可以理解的是,实现上述本发明实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。因此,根据上述本发明实施例方案,本发明还提供一种包含计算机可读程序的存储介质,当该存储介质中的计算机可读程序执行时,可以实现上述任何一种方式中的本发明的伴奏/原唱音频数据切换方法。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。