一种音频混音方法、装置和电子设备与流程

文档序号:12598535阅读:198来源:国知局
一种音频混音方法、装置和电子设备与流程

本发明涉及导播技术领域,具体涉及一种音频混音方法、装置和电子设备。



背景技术:

随着直播业务的不断增长,各种新需求也越来越多,例如多机位切换、多场景切换、直播点播切换、分屏显示、音频混音等等,在传统直播中,这些工作的完成是依赖于硬件导播台进行,这种方式不但设备成本较高,携带不便,且操作难度较大,所以云导播应运而生。云导播的一种重要模式就是将多路音视频信号合成一路输出,所以其中涉及到音频混音的操作。音频混音是指将多路输入音频数据按指定权重进行混合并输出的处理方式,属于云导播中音频处理的重要一环。

现有云导播的音频采集和混音输出是单线程架构设计,从最后一路音频往前,依次循环采集处理每一路每一帧的音频数据。由于混音算法一般是对各路输入的音频数据进行线性叠加,要求进行叠加的每一路音频数据具有相同的基准采样点数,因此在叠加前需要确定出基准采样点数,现有的处理方式是:一般以输入的第一路音频数据为起始进行寻找基准路的基准采样点,除第一路外,均是将当前路的一帧PCM音频数据读入,放入该当前路对应的FIFO(First Input First Output,先入先出队列,这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令)中,当处理至第一路时,读取第一路的一帧PCM音频数据,并和其余路FIFO中已有的音频数据进行采样点数大小比较,如果第一路音频数据的采样点数最小,则以此最小采样点数为基准采样点数,进行加权累加的混音处理,并输出该最小采样点数的一帧混音后音频数据,其余路FIFO中对应音频数据进行相应的出队列操作。如果第一路音频数据的采样点数不是最小,则抛弃第一路的此帧数据,进入下一轮多路的循环,直至寻得最小采样点数。

这种处理方式流程相对简单,易于实现。但存在如下几个问题:其一是多路音频采集解码和音频混音为串行处理,相互间高耦合,架构不够清晰,不利于维护及后续开发,并且没有充分利用CPU性能;其二是混音处理逻辑过于复杂,对于每一路音频数据的处理都要以基准路音频数据的采样点数为基准,如果基准路发生变化,如被切换掉等,整个混音处理过程就会受到影响,并需要重新寻找基准路,过程繁琐;其三是云导播所处的网络环境十分复杂,无法保证每一路音频均可无卡顿的进行输入,所以当某一路音频流发生卡顿时,就会造成整个音频处理卡顿,也就是说当某一路音频流传输中出现问题时,每一路的音频均无法正常输出,这将极大地影响用户的体验。

因此,如何简化混音处理过程、提高混音处理效率成为一个亟待解决的技术问题。



技术实现要素:

有鉴于此,本发明实施例提供了一种音频混音方法、装置和电子设备,以解决现有技术中混音处理过程复杂、混音处理效率低的问题。

根据第一方面,本发明实施例提供了一种音频混音方法,适用于混音装置,比如导播过程中的混音器等,包括:获取多路音频采集器的音频数据;对每一路所述音频采集器的音频数据,分别获取对应音频采集器中的当前帧音频数据的采样后的采样点数;判断所述采样点数是否小于预设采样点数;如果所述采样点数小于所述预设采样点数,则从所述音频采集器中提取后续帧音频数据进行采样,将采样后的音频数据加入所述当前帧音频数据中作为待定音频队列,直至所述待定音频队列中的所述采样点数大于或等于所述预设采样点数,将所述待定音频队列作为目标音频队列;将每路音频采集器得到的所述目标音频队列进行混音处理,得到一帧输出混音音频。

可选地,所述当前帧音频数据为第i帧,所述从所述音频采集器中提取后续帧音频数据进行采样包括:如果在第一预设时间内第i+j帧音频数据未提取到,则从所述音频采集器中提取第i+j-1帧音频数据进行采样,其中i,j为大于0的整数。

可选地,所述获取音频采集器中的当前帧音频数据的采样后的采样点数的步骤中与所述从所述音频采集器中提取后续帧音频数据进行采样的步骤中的采样频率相同。

可选地,还包括:每隔第二预设时间分别对每一路所述音频采集器的音频数据执行一次建立目标音频队列并进行混音处理的步骤,得到总混音音频。

根据第二方面,本发明实施例提供了一种音频混音装置,包括:第一获取模块,用于获取多路音频采集器的音频数据;第二获取模块,用于对每一路所述音频采集器的音频数据,分别获取对应音频采集器中的当前帧音频数据的采样后的采样点数;判断模块,用于判断所述采样点数是否小于预设采样点数;提取模块,用于如果所述采样点数小于所述预设采样点数,则从所述音频采集器中提取后续帧音频数据进行采样,将采样后的音频数据加入所述当前帧音频数据中作为待定音频队列,直至所述待定音频队列中的所述采样点数大于或等于所述预设采样点数,将所述待定音频队列作为目标音频队列;第一混音模块,用于将每路音频采集器得到的所述目标音频队列进行混音处理,得到一帧输出混音音频。

可选地,所述当前帧音频数据为第i帧,所述提取模块包括:提取单元,用于如果在第一预设时间内第i+j帧音频数据未提取到,则从所述音频采集器中提取第i+j-1帧音频数据进行采样,其中i,j为大于0的整数。

可选地,所述获取音频采集器中的当前帧音频数据的采样后的采样点数的步骤中与所述从所述音频采集器中提取后续帧音频数据进行采样的步骤中的采样频率相同。

可选地,还包括:第二混音模块,用于每隔第二预设时间分别对每一路所述音频采集器的音频数据执行一次建立目标音频队列并进行混音处理的步骤,得到总混音音频。

根据第三方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面或者第一方面的任意一种可选方式中所述的音频混音方法。

根据第四方面,本发明实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种可选方式中所述的音频混音方法。

根据第无方面,本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行第一方面或者第一方面的任意一种可选方式中所述的音频混音方法。

本发明实施例所提供的一种音频混音方法、装置和电子设备,通过以预设采样点数为基准,分别为多路音频采集器中的音频数据建立对应的目标音频队列,然后将多路目标音频队列进行混音处理,即可得到一帧输出混音音频,对后续帧的多路音频数据每隔预设时间进行一次这种混音处理,最终可得到多路音频数据的总输出混音音频,与现有技术相比,避免了寻找基准采样点数的处理步骤,不仅大幅简化了混音处理过程,而且对于未提取到后续帧音频数据的情况,可以使用该后续帧的前一帧的音频数据进行补充,解决了因某一路音频数据发生卡顿而造成整个混音音频无法正常输出的问题,提高了音频混音的处理效率。

附图说明

通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:

图1示出了根据本发明实施例的音频混音方法的流程图;

图2示出了根据本发明实施例的音频混音装置的示意图;

图3示出了根据本发明实施例的电子设备的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例

本实施例提供一种建立目标音频队列的方法,适用于混音装置,比如导播中的混音器等,如图1所示,包括如下步骤:

S11:获取多路音频采集器的音频数据,此处,对于多路音频数据可以多线程进行处理,即每一路音频数据都采用一个独立的解码线程进行解码,并将每一路解码后的音频数据逐帧放入其音频采集器对应的buffer(缓冲器)中进行缓存。采用并行处理各路音频数据,使各路音频数据处理之间均保持相互独立,降低了数据之间的耦合性,提高了处理结果的准确性。

S12:对每一路所述音频采集器的音频数据,分别获取对应音频采集器中的当前帧音频数据的采样后的采样点数。此处,当前帧音频数据可以是实时采集的音频数据,经过解码后逐帧放入缓冲器的PCM数据,在实际应用场景中,需要从缓冲器中获取到该当前帧音频数据,并以混音输出需要的采样频率对其进行采样,然后获取采样后的当前帧音频数据的采样点数。

S13:判断采样点数是否小于预设采样点数。此处预设采样点数为预先设置的基准采样点数,分别将每一路对应的采样点数与预设采样点数进行比较,该预设采样点数可以根据实际使用场景而定,避免了混音过程中寻找基准路音频数据来确定基准音频采样点数的过程,比如,当现有的基准路被切掉时,现有技术中需要重新寻找基准路才能进行后续混音处理,而本方案中由于预设采样点数与基准路无关,则不需要这一过程,这大大简化了混音处理步骤。当采样点数小于预设采样点数时,执行步骤S14,当采样点数大于或等于预设采样点数时,将对当前帧音频数据采样后的音频数据作为目标音频队列。

S14:如果采样点数小于预设采样点数,说明该当前帧音频数据的采样点数未达到进行混音的采样点数要求,则从音频采集器中提取后续帧音频数据进行采样,将采样后的音频数据加入当前帧音频数据中作为待定音频队列,直至待定音频队列中的采样点数大于或等于预设采样点数时,说明该待定音频队列中的音频数据的采样点数达到了进行混音的采样点数的要求,则将待定音频队列作为目标音频队列,具体地,此处待定音频队列可以是FIFO的形式,在初始时可以先将当前帧音频数据采样后放入对应的FIFO,然后将后续补充提取的音频数据采样后也放入该FIFO,当该FIFO中的采样点数满足预设采样点数的要求时,将此时的FIFO作为目标音频队列。

作为一种可选的实施方式,上述步骤S12-S14可以采用如下方式实现:具体地,以n路输入音频(即音频采集器的音频数)为例,详细处理步骤可以如下:

1.对第k路音频进行音频处理前初始化工作,k小于等于n;

2.将第k路音频对应的FIFO中PCM音频数据(即当前帧音频数据)的采样点数和nb_samples(即预设采样点数,此处可以为输出一帧混音音频所要求的采样点数)进行比较,如果小于nb_samples则继续执行步骤3,如果大于或等于nb_samples,说明第k路音频对应的FIFO满足要求,则将其作为第k路音频对应的目标音频队列,然后跳至步骤4。

3.从第k路音频的音频采集器的buffer中依次提取下一帧音频数据(如果提取不到,则认为该下一帧卡顿,并使用第k路音频的音频采集器的buffer中的最后一帧音频数据(即当前帧音频数据)进行补充),并根据输出混音音频所要求的采样率对其进行重采样,将采样后的音频数据放入该路对应的FIFO中,并跳至步骤2;

4.判断k是否小于n,如果不小于n执行步骤S15,否则令k=k+1后,跳至步骤1;最终建立每一路音频采集器对应的目标音频队列FIFO,

S15:将每路音频采集器得到的所述目标音频队列进行混音处理,得到一帧输出混音音频。此处混音处理可以采取独立的混音线程进行处理,避免混音处理与其他处理过程的耦合性。即对步骤S14中最终得到的的n路音频采集器对应的FIFO(目标音频队列)进行混音处理,输出混音后一帧音频数据。

作为一种可选地实施方式,当前帧音频数据为第i帧,步骤S14包括:如果在第一预设时间内第i+j帧音频数据未提取到,则从所述音频采集器中提取第i+j-1帧音频数据进行采样,其中i,j为大于0的整数。此处,如果在提取后续帧的音频数据时,在第一预设时间内未能提取到响应的音频数据,说明该帧可能出现卡顿,则使用该后续帧的前一帧音频数据作为补充,具体地,比如,在i=3时,即当前帧音频数据为第3帧,如果第3帧音频数据采样后的采样点数没有达到预设采样点数,则需要提取音频采集器中的第4帧(即j=1时,则i+j=4)的音频数据进行采样,如果在第一预设时间内未提取到第4帧,说明该路音频在第4帧时可能出现卡顿,为了避免整路音频出现卡顿,则再次提取第3帧音频数据进行采样后放入待定音频队列中,从而避免了该路音频因卡顿而无法正常建立目标音频队列的问题。需要说明的是,第一预设时间t1可以由输出混音音频所要求的采样频率samplerate和预设采样点数nb_samples共同决定,比如可以采用如下公式计算(其中t1的单位为微秒):

自然地,也可以根据实际需要来设定预设时间,只要能实现本实施例的技术方案的预设时间均适用于本发明。另外,本实施例中默认为在第一预设时间后,该路音频采集器已准备好了相关的音频数据,所以如果在从该路音频采集器的buffer(缓冲器)中获取不到所需的音频数据,则判断为该路发生卡顿,并通过上一帧音频数据进行补足。

作为一种可选地实施方式,步骤S11中与步骤S13中的采样频率相同,都是输出混音音频要求的采样频率,以保证通过该方案建立的目标音频队列进行混音后,混音音频可以正常输出。

作为一种可选地实施方式,还可以包括:每隔第二预设时间分别对每一路所述音频采集器的音频数据执行一次建立目标音频队列并进行混音处理的步骤,得到总混音音频。即每隔第二预设时间采用如图1所示的音频混音方法分别对每一路音频采集器的音频数据进行处理,最终可以得到总混音音频,此处,第二预设时间t2由输出混音音频所要求的采样频率samplerate和预设采样点数nb_samples共同决定,比如可以采用如下公式计算(其中t2的单位为微秒):

本实施例提供的音频混音方法,通过以预设采样点数为基准,分别为多路音频采集器中的音频数据建立对应的目标音频队列,对未满足预设采样点数要求的当前帧音频数据,从音频采集器中提取后续帧音频数据进行补充得到待定音频队列,并将满足要求的待定音频队列最为最终的目标音频队列,然后将多路目标音频队列进行混音处理,即可得到一帧输出混音音频,对后续帧的多路音频数据每隔预设时间进行一次这种混音处理,最终可得到多路音频数据的总输出混音音频,与现有技术相比,避免了寻找基准采样点数的处理步骤,不仅大幅简化了混音处理过程,而且对于未提取到后续帧音频数据的情况,可以使用该后续帧的前一帧的音频数据进行补充,解决了因某一路音频数据发生卡顿而造成整个混音音频无法正常输出的问题,提高了音频处理效率。

本实施例提供一种音频混音装置,适用于混音设备,比如导播中的混音器等,如图2所示,包括第一获取模块31、第二获取模块32判断模块33和提取模块34、第一混音模35,各模块功能如下:

第一获取模块31,用于获取多路音频采集器的音频数据;具体可参见如图1所示的实施例中对步骤S11的相关描述。

第一获取模块32,用于对每一路所述音频采集器的音频数据,分别获取对应音频采集器中的当前帧音频数据的采样后的采样点数,具体可参见如图1所示的实施例中对步骤S12的相关描述。

判断模块33,用于判断采样点数是否小于预设采样点数,具体可参见如图1所示的实施例中对步骤S13的相关描述。

提取模块34,用于如果采样点数小于预设采样点数,则从音频采集器中提取后续帧音频数据进行采样,将采样后的音频数据加入当前帧音频数据中作为待定音频队列,直至待定音频队列中的采样点数大于或等于预设采样点数,将待定音频队列作为目标音频队列。具体可参见如图1所示的实施例中对步骤S14的相关描述。

第一混音模块35,用于将每路音频采集器得到的所述目标音频队列进行混音处理,得到一帧输出混音音频。具体可参见如图1所示的实施例中对步骤S15的相关描述。

作为一种可选地实施方式,当前帧音频数据为第i帧,提取模块34包括:提取单元341,用于如果在第一预设时间内第i+j帧音频数据未提取到,则从音频采集器中提取第i+j-1帧音频数据进行采样,其中i,j为大于0的整数。具体可参见如图1所示的实施例中对步骤S14的可选方案的相关描述。

作为一种可选地实施方式,获取音频采集器中的当前帧音频数据的采样后的采样点数的步骤中与从音频采集器中提取后续帧音频数据进行采样的步骤中的采样频率相同。具体可参见如图1所示的实施例中的相关描述。

作为一种可选地实施方式,还可以包括:第二混音模块36,用于每隔第二预设时间分别对每一路所述音频采集器的音频数据执行一次建立目标音频队列并进行混音处理的步骤,得到总混音音频。具体可参见如图1所示的实施例中的相关描述。

本实施例提供的音频混音装置,通过以预设采样点数为基准,分别为多路音频采集器中的音频数据建立对应的目标音频队列,对未满足预设采样点数要求的当前帧音频数据,从音频采集器中提取后续帧音频数据进行补充得到待定音频队列,并将满足要求的待定音频队列最为最终的目标音频队列,然后将多路目标音频队列进行混音处理,即可得到一帧输出混音音频,对后续帧的多路音频数据每隔预设时间进行一次这种混音处理,最终可得到多路音频数据的总输出混音音频,与现有技术相比,避免了寻找基准采样点数的处理步骤,不仅大幅简化了混音处理过程,而且对于未提取到后续帧音频数据的情况,可以使用该后续帧的前一帧的音频数据进行补充,解决了因某一路音频数据发生卡顿而造成整个混音音频无法正常输出的问题,提高了音频处理效率。

图3是本发明实施例提供的音频混音方法的电子设备的硬件结构示意图,如图3所示,该设备包括一个或多个处理器310以及存储器320,图3中以一个处理器310为例。

音频混音方法的设备还可以包括:输入装置330和输出装置340。

处理器310、存储器320、输入装置330和输出装置340可以通过总线或者其他方式连接,图3中以通过总线连接为例。

处理器310可以为中央处理器(Central Processing Unit,CPU)。处理器310还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器320作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的音频混音方法对应的程序指令/模块(例如,附图2所示的第一获取模块31、第二获取模块32、判断模块33、提取模块34和第一混音模块35)。处理器310通过运行存储在存储器320中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例音频混音方法。

存储器320可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据音频混音装置的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器320可选包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至音频混音装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置330可接收输入的数字或字符信息,以及产生与音频混音装置的用户设置以及功能控制有关的键信号输入。输出装置340可包括显示屏等显示设备。

所述一个或者多个模块存储在所述存储器320中,当被所述一个或者多个处理器310执行时,执行如图1所示的方法。

上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,具体可参见如图1所示的实施例中的相关描述。

本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的音频混音方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。

本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1